@llmindset/hf-mcp-server 0.3.2 → 0.3.3
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 +2 -2
- package/dist/server/application.d.ts.map +1 -1
- package/dist/server/application.js +1 -1
- package/dist/server/application.js.map +1 -1
- package/dist/server/gradio-endpoint-connector.d.ts.map +1 -1
- package/dist/server/gradio-endpoint-connector.js +18 -11
- package/dist/server/gradio-endpoint-connector.js.map +1 -1
- package/dist/server/mcp-proxy.d.ts.map +1 -1
- package/dist/server/mcp-proxy.js +36 -3
- package/dist/server/mcp-proxy.js.map +1 -1
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/mcp-server.js +14 -2
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/server/resources/gradio-widget-content.d.ts +1 -1
- package/dist/server/resources/gradio-widget-content.d.ts.map +1 -1
- package/dist/server/resources/gradio-widget-content.js +1 -1
- package/dist/server/resources/gradio-widget-resource.d.ts +1 -1
- package/dist/server/resources/gradio-widget-resource.d.ts.map +1 -1
- package/dist/server/run-application.d.ts +7 -0
- package/dist/server/run-application.d.ts.map +1 -0
- package/dist/server/run-application.js +42 -0
- package/dist/server/run-application.js.map +1 -0
- package/dist/server/stdio.js +3 -32
- package/dist/server/stdio.js.map +1 -1
- package/dist/server/streamableHttp.js +3 -32
- package/dist/server/streamableHttp.js.map +1 -1
- package/dist/server/transport/json-rpc-errors.d.ts +4 -4
- package/dist/server/transport/json-rpc-errors.d.ts.map +1 -1
- package/dist/server/transport/json-rpc-errors.js +2 -2
- package/dist/server/transport/json-rpc-errors.js.map +1 -1
- package/dist/server/utils/api-metrics.d.ts +1 -1
- package/dist/server/utils/api-metrics.d.ts.map +1 -1
- package/dist/server/utils/capability-utils.d.ts +2 -1
- package/dist/server/utils/capability-utils.d.ts.map +1 -1
- package/dist/server/utils/gradio-cache.d.ts +1 -1
- package/dist/server/utils/gradio-cache.d.ts.map +1 -1
- package/dist/server/utils/gradio-discovery.d.ts +3 -2
- package/dist/server/utils/gradio-discovery.d.ts.map +1 -1
- package/dist/server/utils/gradio-discovery.js +87 -97
- package/dist/server/utils/gradio-discovery.js.map +1 -1
- package/dist/server/utils/gradio-metrics.d.ts +3 -2
- package/dist/server/utils/gradio-metrics.d.ts.map +1 -1
- package/dist/server/utils/gradio-metrics.js +1 -1
- package/dist/server/utils/gradio-metrics.js.map +1 -1
- package/dist/server/utils/gradio-result-processor.d.ts +2 -1
- package/dist/server/utils/gradio-result-processor.d.ts.map +1 -1
- package/dist/server/utils/gradio-utils.d.ts +3 -3
- package/dist/server/utils/gradio-utils.d.ts.map +1 -1
- package/dist/server/utils/gradio-utils.js +1 -1
- package/dist/server/utils/gradio-utils.js.map +1 -1
- package/dist/server/utils/hf-dataset-transport.d.ts +2 -1
- package/dist/server/utils/hf-dataset-transport.d.ts.map +1 -1
- package/dist/server/utils/mcp-api-client.d.ts +2 -1
- package/dist/server/utils/mcp-api-client.d.ts.map +1 -1
- package/dist/server/utils/mcp-api-client.js +29 -8
- package/dist/server/utils/mcp-api-client.js.map +1 -1
- package/dist/server/utils/proxy-tools-config.d.ts +0 -5
- package/dist/server/utils/proxy-tools-config.d.ts.map +1 -1
- package/dist/server/utils/proxy-tools-config.js +8 -10
- package/dist/server/utils/proxy-tools-config.js.map +1 -1
- package/dist/server/utils/query-logger.d.ts +0 -21
- package/dist/server/utils/query-logger.d.ts.map +1 -1
- package/dist/server/utils/query-logger.js +6 -29
- package/dist/server/utils/query-logger.js.map +1 -1
- package/dist/server/utils/streamable-http-tool-caller.d.ts.map +1 -1
- package/dist/server/utils/streamable-http-tool-caller.js +10 -1
- package/dist/server/utils/streamable-http-tool-caller.js.map +1 -1
- package/dist/server/utils/tool-selection-strategy.d.ts +2 -1
- package/dist/server/utils/tool-selection-strategy.d.ts.map +1 -1
- package/dist/server/utils/ui/audio-player.d.ts +2 -2
- package/dist/server/utils/ui/audio-player.d.ts.map +1 -1
- package/dist/server/utils/ui/audio-player.js +1 -1
- package/dist/server/utils/ui/audio-player.js.map +1 -1
- package/dist/shared/bouquet-presets.d.ts +6 -5
- package/dist/shared/bouquet-presets.d.ts.map +1 -1
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/transport-metrics.d.ts +2 -3
- package/dist/shared/transport-metrics.d.ts.map +1 -1
- package/dist/shared/transport-metrics.js +2 -2
- package/dist/shared/transport-metrics.js.map +1 -1
- package/dist/web/assets/{gradioWidgetDev-BTbDFx4A.js → gradioWidgetDev-DKjSxsth.js} +1 -1
- package/dist/web/assets/index-C82JscI3.css +1 -0
- package/dist/web/assets/main-VwOEai0c.js +145 -0
- package/dist/web/gradio-widget-dev.html +3 -3
- package/dist/web/gradio-widget.html +1 -1
- package/dist/web/index.html +3 -3
- package/dist/web/mcp-welcome.html +44 -128
- package/package.json +2 -3
- package/dist/web/assets/index-DA_tuFd-.css +0 -1
- package/dist/web/assets/main-CdA2xGil.js +0 -229
- /package/dist/web/assets/{index-BVX5KR1A.js → index-CZS9IJ_2.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradio-widget-resource.d.ts","sourceRoot":"","sources":["../../../src/server/resources/gradio-widget-resource.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,WAAW;;;;CAwBhB,CAAC;AAEF,
|
|
1
|
+
{"version":3,"file":"gradio-widget-resource.d.ts","sourceRoot":"","sources":["../../../src/server/resources/gradio-widget-resource.ts"],"names":[],"mappings":"AAQA,QAAA,MAAM,WAAW;;;;CAwBhB,CAAC;AAEF,UAAU,0BAA0B;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE;QACT,kBAAkB,EAAE,OAAO,WAAW,CAAC;QACvC,eAAe,EAAE;YAChB,GAAG,EAAE,OAAO,WAAW,CAAC;SACxB,CAAC;KACF,CAAC;CACF;AAOD,wBAAgB,gCAAgC,CAAC,OAAO,EAAE,MAAM,GAAG,0BAA0B,CAgB5F"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type TransportType } from '../shared/constants.js';
|
|
2
|
+
export interface RunApplicationOptions {
|
|
3
|
+
transportType: Exclude<TransportType, 'unknown'>;
|
|
4
|
+
port: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function runApplication(options: RunApplicationOptions): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=run-application.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-application.d.ts","sourceRoot":"","sources":["../../src/server/run-application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAK5D,MAAM,WAAW,qBAAqB;IACrC,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACjD,IAAI,EAAE,MAAM,CAAC;CACb;AAkCD,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CAUlF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import {} from '../shared/constants.js';
|
|
2
|
+
import { Application } from './application.js';
|
|
3
|
+
import { logger } from './utils/logger.js';
|
|
4
|
+
import { WebServer } from './web-server.js';
|
|
5
|
+
function attachShutdownHandlers(app) {
|
|
6
|
+
let shutdownInProgress = false;
|
|
7
|
+
const shutdown = async () => {
|
|
8
|
+
logger.info('Shutting down server...');
|
|
9
|
+
shutdownInProgress = true;
|
|
10
|
+
try {
|
|
11
|
+
await app.stop();
|
|
12
|
+
logger.info('Server shutdown complete');
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
logger.error({ error }, 'Error during shutdown');
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
process.once('SIGINT', () => {
|
|
20
|
+
void shutdown();
|
|
21
|
+
process.once('SIGINT', () => {
|
|
22
|
+
if (shutdownInProgress) {
|
|
23
|
+
logger.warn('Force exit requested, terminating immediately...');
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
process.once('SIGTERM', () => {
|
|
29
|
+
void shutdown();
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
export async function runApplication(options) {
|
|
33
|
+
const webServer = new WebServer();
|
|
34
|
+
const app = new Application({
|
|
35
|
+
transportType: options.transportType,
|
|
36
|
+
webAppPort: options.port,
|
|
37
|
+
webServerInstance: webServer,
|
|
38
|
+
});
|
|
39
|
+
await app.start();
|
|
40
|
+
attachShutdownHandlers(app);
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=run-application.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-application.js","sourceRoot":"","sources":["../../src/server/run-application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAO5C,SAAS,sBAAsB,CAAC,GAAgB;IAC/C,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAE/B,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC3B,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACvC,kBAAkB,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC;YACJ,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,uBAAuB,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACF,CAAC,CAAC;IAEF,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC3B,KAAK,QAAQ,EAAE,CAAC;QAGhB,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC3B,IAAI,kBAAkB,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACjB,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE;QAC5B,KAAK,QAAQ,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAA8B;IAClE,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC;QAC3B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,UAAU,EAAE,OAAO,CAAC,IAAI;QACxB,iBAAiB,EAAE,SAAS;KAC5B,CAAC,CAAC;IAEH,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;IAClB,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC"}
|
package/dist/server/stdio.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
process.env.NODE_ENV = process.env.NODE_ENV || 'production';
|
|
3
3
|
process.env.TRANSPORT = process.env.TRANSPORT || 'STDIO';
|
|
4
|
-
import { Application } from './application.js';
|
|
5
|
-
import { WebServer } from './web-server.js';
|
|
6
4
|
import { DEFAULT_WEB_APP_PORT } from '../shared/constants.js';
|
|
7
5
|
import { parseArgs } from 'node:util';
|
|
8
6
|
import { logger, forceLoggerToStderr } from './utils/logger.js';
|
|
7
|
+
import { runApplication } from './run-application.js';
|
|
9
8
|
forceLoggerToStderr();
|
|
10
9
|
const { values } = parseArgs({
|
|
11
10
|
options: {
|
|
@@ -16,37 +15,9 @@ const { values } = parseArgs({
|
|
|
16
15
|
logger.info('Starting (STDIO) server...');
|
|
17
16
|
const port = parseInt(values.port || process.env.WEB_APP_PORT || DEFAULT_WEB_APP_PORT.toString());
|
|
18
17
|
async function main() {
|
|
19
|
-
|
|
20
|
-
const app = new Application({
|
|
18
|
+
await runApplication({
|
|
21
19
|
transportType: 'stdio',
|
|
22
|
-
|
|
23
|
-
webServerInstance: webServer,
|
|
24
|
-
});
|
|
25
|
-
await app.start();
|
|
26
|
-
let shutdownInProgress = false;
|
|
27
|
-
const shutdown = async () => {
|
|
28
|
-
logger.info('Shutting down server...');
|
|
29
|
-
shutdownInProgress = true;
|
|
30
|
-
try {
|
|
31
|
-
await app.stop();
|
|
32
|
-
logger.info('Server shutdown complete');
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
logger.error({ error }, 'Error during shutdown');
|
|
36
|
-
process.exit(1);
|
|
37
|
-
}
|
|
38
|
-
};
|
|
39
|
-
process.once('SIGINT', () => {
|
|
40
|
-
void shutdown();
|
|
41
|
-
process.once('SIGINT', () => {
|
|
42
|
-
if (shutdownInProgress) {
|
|
43
|
-
logger.warn('Force exit requested, terminating immediately...');
|
|
44
|
-
process.exit(1);
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
});
|
|
48
|
-
process.once('SIGTERM', () => {
|
|
49
|
-
void shutdown();
|
|
20
|
+
port,
|
|
50
21
|
});
|
|
51
22
|
}
|
|
52
23
|
main().catch((error) => {
|
package/dist/server/stdio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":";AAGA,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAC;AAC5D,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC;AAEzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/server/stdio.ts"],"names":[],"mappings":";AAGA,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAC;AAC5D,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,OAAO,CAAC;AAEzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,mBAAmB,EAAE,CAAC;AAGtB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE;QACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;KACpC;IACD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AAE1C,MAAM,IAAI,GAAG,QAAQ,CAAE,MAAM,CAAC,IAAe,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAE9G,KAAK,UAAU,IAAI;IAClB,MAAM,cAAc,CAAC;QACpB,aAAa,EAAE,OAAO;QACtB,IAAI;KACJ,CAAC,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC/B,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,cAAc,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { Application } from './application.js';
|
|
3
|
-
import { WebServer } from './web-server.js';
|
|
4
2
|
import { DEFAULT_WEB_APP_PORT } from '../shared/constants.js';
|
|
5
3
|
import { parseArgs } from 'node:util';
|
|
6
4
|
import { logger } from './utils/logger.js';
|
|
5
|
+
import { runApplication } from './run-application.js';
|
|
7
6
|
const { values } = parseArgs({
|
|
8
7
|
options: {
|
|
9
8
|
port: { type: 'string', short: 'p' },
|
|
@@ -20,37 +19,9 @@ const port = parseInt(values.port || process.env.WEB_APP_PORT || DEFAULT_WEB_APP
|
|
|
20
19
|
async function start() {
|
|
21
20
|
const useJsonMode = values.json || false;
|
|
22
21
|
const transportType = useJsonMode ? 'streamableHttpJson' : 'streamableHttp';
|
|
23
|
-
|
|
24
|
-
const app = new Application({
|
|
22
|
+
await runApplication({
|
|
25
23
|
transportType,
|
|
26
|
-
|
|
27
|
-
webServerInstance: webServer,
|
|
28
|
-
});
|
|
29
|
-
await app.start();
|
|
30
|
-
let shutdownInProgress = false;
|
|
31
|
-
const shutdown = async () => {
|
|
32
|
-
logger.info('Shutting down server...');
|
|
33
|
-
shutdownInProgress = true;
|
|
34
|
-
try {
|
|
35
|
-
await app.stop();
|
|
36
|
-
logger.info('Server shutdown complete');
|
|
37
|
-
}
|
|
38
|
-
catch (error) {
|
|
39
|
-
logger.error({ error }, 'Error during shutdown');
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
process.once('SIGINT', () => {
|
|
44
|
-
void shutdown();
|
|
45
|
-
process.once('SIGINT', () => {
|
|
46
|
-
if (shutdownInProgress) {
|
|
47
|
-
logger.warn('Force exit requested, terminating immediately...');
|
|
48
|
-
process.exit(1);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
process.once('SIGTERM', () => {
|
|
53
|
-
void shutdown();
|
|
24
|
+
port,
|
|
54
25
|
});
|
|
55
26
|
}
|
|
56
27
|
start().catch((error) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamableHttp.js","sourceRoot":"","sources":["../../src/server/streamableHttp.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"streamableHttp.js","sourceRoot":"","sources":["../../src/server/streamableHttp.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,OAAO,EAAE;QACR,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE;QACpC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;KACrC;IACD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AAEH,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;AAClD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IACjB,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AAC3C,CAAC;AAGD,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,YAAY,CAAC;AAG5D,MAAM,IAAI,GAAG,QAAQ,CAAE,MAAM,CAAC,IAAe,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC;AAE9G,KAAK,UAAU,KAAK;IACnB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC;IAGzC,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAE5E,MAAM,cAAc,CAAC;QACpB,aAAa;QACb,IAAI;KACJ,CAAC,CAAC;AACJ,CAAC;AAGD,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAChC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
declare const JSON_RPC_ERROR_CODES: {
|
|
2
2
|
readonly PARSE_ERROR: -32700;
|
|
3
3
|
readonly INVALID_REQUEST: -32600;
|
|
4
4
|
readonly METHOD_NOT_FOUND: -32601;
|
|
@@ -11,8 +11,8 @@ export declare const JSON_RPC_ERROR_CODES: {
|
|
|
11
11
|
readonly STALE_CONNECTION: -32004;
|
|
12
12
|
readonly AUTHENTICATION_FAILED: -32005;
|
|
13
13
|
};
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
type JsonRpcErrorCode = (typeof JSON_RPC_ERROR_CODES)[keyof typeof JSON_RPC_ERROR_CODES];
|
|
15
|
+
interface JsonRpcError {
|
|
16
16
|
jsonrpc: '2.0';
|
|
17
17
|
error: {
|
|
18
18
|
code: JsonRpcErrorCode;
|
|
@@ -21,7 +21,6 @@ export interface JsonRpcError {
|
|
|
21
21
|
};
|
|
22
22
|
id: string | number | null;
|
|
23
23
|
}
|
|
24
|
-
export declare function createJsonRpcError(code: JsonRpcErrorCode, message: string, id?: string | number | null, data?: unknown): JsonRpcError;
|
|
25
24
|
export declare function extractJsonRpcId(body: unknown): string | number | null;
|
|
26
25
|
export declare const JsonRpcErrors: {
|
|
27
26
|
readonly internalError: (id?: string | number | null, details?: string) => JsonRpcError;
|
|
@@ -33,4 +32,5 @@ export declare const JsonRpcErrors: {
|
|
|
33
32
|
readonly invalidRequest: (id?: string | number | null, message?: string) => JsonRpcError;
|
|
34
33
|
readonly authenticationFailed: (id?: string | number | null, message?: string) => JsonRpcError;
|
|
35
34
|
};
|
|
35
|
+
export {};
|
|
36
36
|
//# sourceMappingURL=json-rpc-errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-rpc-errors.d.ts","sourceRoot":"","sources":["../../../src/server/transport/json-rpc-errors.ts"],"names":[],"mappings":"AACA,
|
|
1
|
+
{"version":3,"file":"json-rpc-errors.d.ts","sourceRoot":"","sources":["../../../src/server/transport/json-rpc-errors.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,oBAAoB;;;;;;;;;;;;CAehB,CAAC;AAEX,KAAK,gBAAgB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAEzF,UAAU,YAAY;IACrB,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE;QACN,IAAI,EAAE,gBAAgB,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC3B;AA8BD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CActE;AAKD,eAAO,MAAM,aAAa;kCACL,MAAM,GAAG,MAAM,GAAG,IAAI,YAAmB,MAAM;sCAG1C,MAAM,OAAM,MAAM,GAAG,MAAM,GAAG,IAAI;0CAG9B,MAAM,OAAM,MAAM,GAAG,MAAM,GAAG,IAAI;uCAGtC,MAAM,GAAG,MAAM,GAAG,IAAI;+CAGb,MAAM,OAAM,MAAM,GAAG,MAAM,GAAG,IAAI;qCAG7C,MAAM,GAAG,MAAM,GAAG,IAAI,YAAkB,MAAM;mCAGhD,MAAM,GAAG,MAAM,GAAG,IAAI,YAAkB,MAAM;yCAGxC,MAAM,GAAG,MAAM,GAAG,IAAI,YAAkB,MAAM;CAEhE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
const JSON_RPC_ERROR_CODES = {
|
|
2
2
|
PARSE_ERROR: -32700,
|
|
3
3
|
INVALID_REQUEST: -32600,
|
|
4
4
|
METHOD_NOT_FOUND: -32601,
|
|
@@ -11,7 +11,7 @@ export const JSON_RPC_ERROR_CODES = {
|
|
|
11
11
|
STALE_CONNECTION: -32004,
|
|
12
12
|
AUTHENTICATION_FAILED: -32005,
|
|
13
13
|
};
|
|
14
|
-
|
|
14
|
+
function createJsonRpcError(code, message, id = null, data) {
|
|
15
15
|
const error = {
|
|
16
16
|
jsonrpc: '2.0',
|
|
17
17
|
error: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-rpc-errors.js","sourceRoot":"","sources":["../../../src/server/transport/json-rpc-errors.ts"],"names":[],"mappings":"AACA,MAAM,
|
|
1
|
+
{"version":3,"file":"json-rpc-errors.js","sourceRoot":"","sources":["../../../src/server/transport/json-rpc-errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-metrics.d.ts","sourceRoot":"","sources":["../../../src/server/utils/api-metrics.ts"],"names":[],"mappings":"AAKA,
|
|
1
|
+
{"version":3,"file":"api-metrics.d.ts","sourceRoot":"","sources":["../../../src/server/utils/api-metrics.ts"],"names":[],"mappings":"AAKA,UAAU,cAAc;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED,cAAM,mBAAmB;IACxB,OAAO,CAAC,OAAO,CAKb;IAOF,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAkBnD,UAAU,IAAI,cAAc;IAO5B,YAAY,IAAI,IAAI;CAQpB;AAGD,eAAO,MAAM,UAAU,qBAA4B,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { McpApiClient } from './mcp-api-client.js';
|
|
3
|
-
|
|
3
|
+
interface RegisterCapabilitiesOptions {
|
|
4
4
|
hasResources?: boolean;
|
|
5
5
|
}
|
|
6
6
|
export declare function registerCapabilities(server: McpServer, sharedApiClient: McpApiClient, options?: RegisterCapabilitiesOptions): void;
|
|
7
|
+
export {};
|
|
7
8
|
//# sourceMappingURL=capability-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capability-utils.d.ts","sourceRoot":"","sources":["../../../src/server/utils/capability-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,
|
|
1
|
+
{"version":3,"file":"capability-utils.d.ts","sourceRoot":"","sources":["../../../src/server/utils/capability-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD,UAAU,2BAA2B;IAKpC,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB;AAcD,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,SAAS,EACjB,eAAe,EAAE,YAAY,EAC7B,OAAO,GAAE,2BAAgC,GACvC,IAAI,CA+BN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradio-cache.d.ts","sourceRoot":"","sources":["../../../src/server/utils/gradio-cache.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAK/D,eAAO,MAAM,YAAY;;;;;;CAexB,CAAC;AAQF,MAAM,WAAW,mBAAmB;IAEnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IAGZ,OAAO,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CAClB;AAQD,MAAM,WAAW,YAAY;IAE5B,KAAK,EAAE,IAAI,EAAE,CAAC;IAGd,SAAS,EAAE,MAAM,CAAC;CAClB;AAKD,
|
|
1
|
+
{"version":3,"file":"gradio-cache.d.ts","sourceRoot":"","sources":["../../../src/server/utils/gradio-cache.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAK/D,eAAO,MAAM,YAAY;;;;;;CAexB,CAAC;AAQF,MAAM,WAAW,mBAAmB;IAEnC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IAGZ,OAAO,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CAClB;AAQD,MAAM,WAAW,YAAY;IAE5B,KAAK,EAAE,IAAI,EAAE,CAAC;IAGd,SAAS,EAAE,MAAM,CAAC;CAClB;AAKD,UAAU,UAAU;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,yBAAyB,EAAE,MAAM,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;CACxB;AAKD,cAAM,kBAAkB;IACvB,OAAO,CAAC,KAAK,CAA0C;IACvD,OAAO,CAAC,KAAK,CAIX;IAQF,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IA2BlD,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;IAOjE,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAQ3D,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAYxC,KAAK,IAAI,IAAI;IAWb,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAQrF;AAKD,cAAM,WAAW;IAChB,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,KAAK,CAGX;IAQF,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IA2B3C,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAQlD,KAAK,IAAI,IAAI;IAUb,QAAQ,IAAI;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAO1D;AAKD,eAAO,MAAM,kBAAkB,oBAA2B,CAAC;AAC3D,eAAO,MAAM,WAAW,aAAoB,CAAC;AAK7C,wBAAgB,aAAa,IAAI,UAAU,CAa1C;AAKD,wBAAgB,cAAc,IAAI,IAAI,CAIrC;AAKD,wBAAgB,aAAa,IAAI,IAAI,CA+BpC;AAKD,wBAAgB,wBAAwB,IAAI;IAC3C,aAAa,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACvB,CAsCA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
|
|
2
|
+
interface GradioSpaceInfo {
|
|
3
3
|
name: string;
|
|
4
4
|
subdomain: string;
|
|
5
5
|
_id: string;
|
|
@@ -13,11 +13,12 @@ export interface GradioSpaceInfo {
|
|
|
13
13
|
};
|
|
14
14
|
cached: boolean;
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
interface GetGradioSpacesOptions {
|
|
17
17
|
skipSchemas?: boolean;
|
|
18
18
|
includeRuntime?: boolean;
|
|
19
19
|
timeout?: number;
|
|
20
20
|
}
|
|
21
21
|
export declare function getGradioSpaces(spaceNames: string[], hfToken?: string, options?: GetGradioSpacesOptions): Promise<GradioSpaceInfo[]>;
|
|
22
22
|
export declare function getGradioSpace(spaceName: string, hfToken?: string, options?: GetGradioSpacesOptions): Promise<GradioSpaceInfo | null>;
|
|
23
|
+
export {};
|
|
23
24
|
//# sourceMappingURL=gradio-discovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradio-discovery.d.ts","sourceRoot":"","sources":["../../../src/server/utils/gradio-discovery.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"gradio-discovery.d.ts","sourceRoot":"","sources":["../../../src/server/utils/gradio-discovery.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAmB/D,UAAU,eAAe;IAExB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IAGd,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IAGZ,KAAK,EAAE,IAAI,EAAE,CAAC;IAGd,OAAO,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,MAAM,EAAE,OAAO,CAAC;CAChB;AAKD,UAAU,sBAAsB;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AA+ZD,wBAAsB,eAAe,CACpC,UAAU,EAAE,MAAM,EAAE,EACpB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,eAAe,EAAE,CAAC,CAgE5B;AAmBD,wBAAsB,cAAc,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,sBAAsB,GAC9B,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAGjC"}
|
|
@@ -2,6 +2,8 @@ import { logger } from './logger.js';
|
|
|
2
2
|
import { gradioMetrics } from './gradio-metrics.js';
|
|
3
3
|
import { spaceMetadataCache, schemaCache, CACHE_CONFIG, logCacheStats, } from './gradio-cache.js';
|
|
4
4
|
import { parseSchemaResponse } from '../gradio-endpoint-connector.js';
|
|
5
|
+
import { fetchWithProfile, NETWORK_FETCH_PROFILES } from '@llmindset/hf-mcp/network';
|
|
6
|
+
const HF_HUB_PROFILE = NETWORK_FETCH_PROFILES.hfHub();
|
|
5
7
|
async function fetchSpaceMetadata(spaceName, hfToken, options) {
|
|
6
8
|
const timeout = options?.timeout || CACHE_CONFIG.SPACE_INFO_TIMEOUT;
|
|
7
9
|
try {
|
|
@@ -13,62 +15,56 @@ async function fetchSpaceMetadata(spaceName, hfToken, options) {
|
|
|
13
15
|
const stale = spaceMetadataCache.getForRevalidation(spaceName);
|
|
14
16
|
const etag = stale?.etag;
|
|
15
17
|
logger.debug({ spaceName, hasEtag: !!etag }, 'Fetching space metadata from HuggingFace API');
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const response = await fetch(url, {
|
|
18
|
+
const additionalFields = ['subdomain', 'private', 'sdk'];
|
|
19
|
+
if (options?.includeRuntime) {
|
|
20
|
+
additionalFields.push('runtime');
|
|
21
|
+
}
|
|
22
|
+
const url = `https://huggingface.co/api/spaces/${spaceName}`;
|
|
23
|
+
const headers = {};
|
|
24
|
+
if (hfToken) {
|
|
25
|
+
headers['Authorization'] = `Bearer ${hfToken}`;
|
|
26
|
+
}
|
|
27
|
+
if (etag) {
|
|
28
|
+
headers['If-None-Match'] = etag;
|
|
29
|
+
}
|
|
30
|
+
const { response } = await fetchWithProfile(url, HF_HUB_PROFILE, {
|
|
31
|
+
timeoutMs: timeout,
|
|
32
|
+
requestInit: {
|
|
32
33
|
headers,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
throw new Error('Space does not have a subdomain');
|
|
48
|
-
}
|
|
49
|
-
const metadata = {
|
|
50
|
-
_id: info._id || `gradio_${info.subdomain}`,
|
|
51
|
-
name: spaceName,
|
|
52
|
-
subdomain: info.subdomain,
|
|
53
|
-
emoji: '🔧',
|
|
54
|
-
private: info.private || false,
|
|
55
|
-
sdk: info.sdk || 'gradio',
|
|
56
|
-
runtime: info.runtime,
|
|
57
|
-
etag: newEtag,
|
|
58
|
-
fetchedAt: Date.now(),
|
|
59
|
-
};
|
|
60
|
-
if (!metadata.private) {
|
|
61
|
-
spaceMetadataCache.set(spaceName, metadata);
|
|
62
|
-
logger.debug({ spaceName, subdomain: metadata.subdomain, hasEtag: !!newEtag }, 'Space metadata fetched and cached');
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
logger.debug({ spaceName, subdomain: metadata.subdomain }, 'Private space metadata fetched (not cached)');
|
|
66
|
-
}
|
|
67
|
-
return { success: true, metadata, cached: false };
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
if (response.status === 304 && stale) {
|
|
37
|
+
logger.debug({ spaceName }, 'Space metadata not modified (304), using cached data');
|
|
38
|
+
spaceMetadataCache.updateTimestamp(spaceName);
|
|
39
|
+
return { success: true, metadata: stale, cached: true };
|
|
40
|
+
}
|
|
41
|
+
if (!response.ok) {
|
|
42
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
43
|
+
}
|
|
44
|
+
const info = (await response.json());
|
|
45
|
+
const newEtag = response.headers.get('etag') || undefined;
|
|
46
|
+
if (!info.subdomain) {
|
|
47
|
+
throw new Error('Space does not have a subdomain');
|
|
68
48
|
}
|
|
69
|
-
|
|
70
|
-
|
|
49
|
+
const metadata = {
|
|
50
|
+
_id: info._id || `gradio_${info.subdomain}`,
|
|
51
|
+
name: spaceName,
|
|
52
|
+
subdomain: info.subdomain,
|
|
53
|
+
emoji: '🔧',
|
|
54
|
+
private: info.private || false,
|
|
55
|
+
sdk: info.sdk || 'gradio',
|
|
56
|
+
runtime: info.runtime,
|
|
57
|
+
etag: newEtag,
|
|
58
|
+
fetchedAt: Date.now(),
|
|
59
|
+
};
|
|
60
|
+
if (!metadata.private) {
|
|
61
|
+
spaceMetadataCache.set(spaceName, metadata);
|
|
62
|
+
logger.debug({ spaceName, subdomain: metadata.subdomain, hasEtag: !!newEtag }, 'Space metadata fetched and cached');
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
logger.debug({ spaceName, subdomain: metadata.subdomain }, 'Private space metadata fetched (not cached)');
|
|
71
66
|
}
|
|
67
|
+
return { success: true, metadata, cached: false };
|
|
72
68
|
}
|
|
73
69
|
catch (error) {
|
|
74
70
|
logger.warn({
|
|
@@ -95,7 +91,7 @@ async function fetchSpaceMetadataWithCache(spaceNames, hfToken, options) {
|
|
|
95
91
|
batchSize: concurrency,
|
|
96
92
|
}, 'Fetching space metadata in parallel batches');
|
|
97
93
|
for (const batch of batches) {
|
|
98
|
-
const batchPromises = batch.map(spaceName => fetchSpaceMetadata(spaceName, hfToken, options));
|
|
94
|
+
const batchPromises = batch.map((spaceName) => fetchSpaceMetadata(spaceName, hfToken, options));
|
|
99
95
|
const batchResults = await Promise.all(batchPromises);
|
|
100
96
|
for (const result of batchResults) {
|
|
101
97
|
if (result.success) {
|
|
@@ -127,52 +123,46 @@ async function fetchSchema(metadata, hfToken, options) {
|
|
|
127
123
|
if (metadata.private && hfToken) {
|
|
128
124
|
headers['X-HF-Authorization'] = `Bearer ${hfToken}`;
|
|
129
125
|
}
|
|
130
|
-
const
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
const response = await fetch(schemaUrl, {
|
|
126
|
+
const { response } = await fetchWithProfile(schemaUrl, NETWORK_FETCH_PROFILES.gradioSchemaHost(`${metadata.subdomain}.hf.space`), {
|
|
127
|
+
timeoutMs: timeout,
|
|
128
|
+
requestInit: {
|
|
134
129
|
method: 'GET',
|
|
135
130
|
headers,
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
},
|
|
158
|
-
};
|
|
159
|
-
});
|
|
160
|
-
const schema = {
|
|
161
|
-
tools,
|
|
162
|
-
fetchedAt: Date.now(),
|
|
131
|
+
},
|
|
132
|
+
});
|
|
133
|
+
if (!response.ok) {
|
|
134
|
+
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
135
|
+
}
|
|
136
|
+
const schemaResponse = (await response.json());
|
|
137
|
+
const endpointId = `gradio_${metadata.subdomain}`;
|
|
138
|
+
const parsed = parseSchemaResponse(schemaResponse, endpointId, metadata.subdomain);
|
|
139
|
+
const tools = parsed
|
|
140
|
+
.filter((parsedTool) => !parsedTool.name.toLowerCase().includes('<lambda'))
|
|
141
|
+
.map((parsedTool) => {
|
|
142
|
+
const inputSchema = parsedTool.inputSchema;
|
|
143
|
+
return {
|
|
144
|
+
name: parsedTool.name,
|
|
145
|
+
description: parsedTool.description || `${parsedTool.name} tool`,
|
|
146
|
+
inputSchema: {
|
|
147
|
+
type: 'object',
|
|
148
|
+
properties: inputSchema.properties || {},
|
|
149
|
+
required: inputSchema.required || [],
|
|
150
|
+
description: inputSchema.description,
|
|
151
|
+
},
|
|
163
152
|
};
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
153
|
+
});
|
|
154
|
+
const schema = {
|
|
155
|
+
tools,
|
|
156
|
+
fetchedAt: Date.now(),
|
|
157
|
+
};
|
|
158
|
+
if (!metadata.private) {
|
|
159
|
+
schemaCache.set(spaceName, schema);
|
|
160
|
+
logger.debug({ spaceName, toolCount: tools.length }, 'Schema fetched and cached');
|
|
172
161
|
}
|
|
173
|
-
|
|
174
|
-
|
|
162
|
+
else {
|
|
163
|
+
logger.debug({ spaceName, toolCount: tools.length }, 'Private space schema fetched (not cached)');
|
|
175
164
|
}
|
|
165
|
+
return { success: true, spaceName, schema, cached: false };
|
|
176
166
|
}
|
|
177
167
|
catch (error) {
|
|
178
168
|
const isFirstError = gradioMetrics.schemaFetchError(spaceName);
|
|
@@ -195,7 +185,7 @@ async function fetchSchemasWithCache(metadataList, hfToken, options) {
|
|
|
195
185
|
return results;
|
|
196
186
|
}
|
|
197
187
|
logger.debug({ count: metadataList.length }, 'Fetching schemas in parallel');
|
|
198
|
-
const schemaPromises = metadataList.map(metadata => fetchSchema(metadata, hfToken, options));
|
|
188
|
+
const schemaPromises = metadataList.map((metadata) => fetchSchema(metadata, hfToken, options));
|
|
199
189
|
const schemaResults = await Promise.all(schemaPromises);
|
|
200
190
|
for (const result of schemaResults) {
|
|
201
191
|
if (result.success) {
|
|
@@ -248,7 +238,7 @@ export async function getGradioSpaces(spaceNames, hfToken, options) {
|
|
|
248
238
|
timeout: options?.timeout,
|
|
249
239
|
concurrency: CACHE_CONFIG.DISCOVERY_CONCURRENCY,
|
|
250
240
|
});
|
|
251
|
-
const gradioMetadata = Array.from(metadataMap.values()).filter(m => m.sdk === 'gradio' && m.subdomain);
|
|
241
|
+
const gradioMetadata = Array.from(metadataMap.values()).filter((m) => m.sdk === 'gradio' && m.subdomain);
|
|
252
242
|
logger.debug({
|
|
253
243
|
total: metadataMap.size,
|
|
254
244
|
gradio: gradioMetadata.length,
|