@llmindset/hf-mcp 0.2.53 → 0.2.54
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.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/space/commands/discover.js +1 -1
- package/dist/space/commands/discover.js.map +1 -1
- package/dist/space/commands/invoke.d.ts.map +1 -1
- package/dist/space/commands/invoke.js +14 -110
- package/dist/space/commands/invoke.js.map +1 -1
- package/dist/space/dynamic-space-tool.d.ts.map +1 -1
- package/dist/space/dynamic-space-tool.js +16 -32
- package/dist/space/dynamic-space-tool.js.map +1 -1
- package/dist/space/types.d.ts +2 -1
- package/dist/space/types.d.ts.map +1 -1
- package/dist/space/types.js +9 -5
- package/dist/space/types.js.map +1 -1
- package/dist/space/utils/gradio-caller.d.ts +14 -0
- package/dist/space/utils/gradio-caller.d.ts.map +1 -0
- package/dist/space/utils/gradio-caller.js +138 -0
- package/dist/space/utils/gradio-caller.js.map +1 -0
- package/dist/space/utils/gradio-schema.d.ts +13 -0
- package/dist/space/utils/gradio-schema.d.ts.map +1 -0
- package/dist/space/utils/gradio-schema.js +44 -0
- package/dist/space/utils/gradio-schema.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +2 -0
- package/src/space/commands/discover.ts +1 -1
- package/src/space/commands/invoke.ts +13 -147
- package/src/space/dynamic-space-tool.ts +16 -31
- package/src/space/types.ts +18 -12
- package/src/space/utils/gradio-caller.ts +204 -0
- package/src/space/utils/gradio-schema.ts +74 -0
- package/test/gradio-caller.test.ts +77 -0
package/dist/index.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export * from './readme-utils.js';
|
|
|
20
20
|
export * from './use-space.js';
|
|
21
21
|
export * from './jobs/jobs-tool.js';
|
|
22
22
|
export * from './space/dynamic-space-tool.js';
|
|
23
|
+
export * from './space/utils/gradio-caller.js';
|
|
24
|
+
export * from './space/utils/gradio-schema.js';
|
|
23
25
|
export * from './types/tool-result.js';
|
|
24
26
|
export * from './tool-ids.js';
|
|
25
27
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,8 @@ export * from './readme-utils.js';
|
|
|
20
20
|
export * from './use-space.js';
|
|
21
21
|
export * from './jobs/jobs-tool.js';
|
|
22
22
|
export * from './space/dynamic-space-tool.js';
|
|
23
|
+
export * from './space/utils/gradio-caller.js';
|
|
24
|
+
export * from './space/utils/gradio-schema.js';
|
|
23
25
|
export * from './types/tool-result.js';
|
|
24
26
|
export * from './tool-ids.js';
|
|
25
27
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAG/C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/space/commands/discover.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../src/space/commands/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/space/commands/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAQ,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../src/space/commands/invoke.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAQ,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAClG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAUxF,wBAAsB,WAAW,CAChC,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC5D,OAAO,CAAC,YAAY,GAAG,UAAU,CAAC,CA+FpC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { CallToolResultSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
3
|
-
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
|
|
4
1
|
import { analyzeSchemaComplexity, validateParameters, applyDefaults } from '../utils/schema-validator.js';
|
|
5
2
|
import { formatComplexSchemaError, formatValidationError } from '../utils/parameter-formatter.js';
|
|
3
|
+
import { callGradioToolWithHeaders } from '../utils/gradio-caller.js';
|
|
4
|
+
import { parseGradioSchemaResponse, normalizeParsedTools } from '../utils/gradio-schema.js';
|
|
6
5
|
export async function invokeSpace(spaceName, parametersJson, hfToken, extra) {
|
|
7
6
|
try {
|
|
8
7
|
let inputParameters;
|
|
@@ -59,42 +58,16 @@ export async function invokeSpace(spaceName, parametersJson, hfToken, extra) {
|
|
|
59
58
|
}
|
|
60
59
|
const finalParameters = applyDefaults(inputParameters, schemaResult);
|
|
61
60
|
const sseUrl = `https://${metadata.subdomain}.hf.space/gradio_api/mcp/sse`;
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
progress: progress.progress,
|
|
73
|
-
total: progress.total,
|
|
74
|
-
message: progress.message,
|
|
75
|
-
},
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
const result = await client.request({
|
|
80
|
-
method: 'tools/call',
|
|
81
|
-
params: {
|
|
82
|
-
name: tool.name,
|
|
83
|
-
arguments: finalParameters,
|
|
84
|
-
_meta: progressToken !== undefined ? { progressToken } : undefined,
|
|
85
|
-
},
|
|
86
|
-
}, CallToolResultSchema, requestOptions);
|
|
87
|
-
return {
|
|
88
|
-
result,
|
|
89
|
-
warnings,
|
|
90
|
-
totalResults: 1,
|
|
91
|
-
resultsShared: 1,
|
|
92
|
-
isError: result.isError,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
finally {
|
|
96
|
-
await client.close();
|
|
97
|
-
}
|
|
61
|
+
const { result } = await callGradioToolWithHeaders(sseUrl, tool.name, finalParameters, hfToken, extra, {
|
|
62
|
+
logProxiedReplica: true,
|
|
63
|
+
});
|
|
64
|
+
return {
|
|
65
|
+
result,
|
|
66
|
+
warnings,
|
|
67
|
+
totalResults: 1,
|
|
68
|
+
resultsShared: 1,
|
|
69
|
+
isError: result.isError,
|
|
70
|
+
};
|
|
98
71
|
}
|
|
99
72
|
catch (error) {
|
|
100
73
|
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
@@ -157,80 +130,11 @@ async function fetchGradioSchema(subdomain, isPrivate, hfToken) {
|
|
|
157
130
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
158
131
|
}
|
|
159
132
|
const schemaResponse = (await response.json());
|
|
160
|
-
|
|
133
|
+
const parsed = parseGradioSchemaResponse(schemaResponse);
|
|
134
|
+
return normalizeParsedTools(parsed);
|
|
161
135
|
}
|
|
162
136
|
finally {
|
|
163
137
|
clearTimeout(timeoutId);
|
|
164
138
|
}
|
|
165
139
|
}
|
|
166
|
-
function parseSchemaResponse(schemaResponse) {
|
|
167
|
-
const tools = [];
|
|
168
|
-
if (Array.isArray(schemaResponse)) {
|
|
169
|
-
for (const item of schemaResponse) {
|
|
170
|
-
if (typeof item === 'object' &&
|
|
171
|
-
item !== null &&
|
|
172
|
-
'name' in item &&
|
|
173
|
-
'inputSchema' in item) {
|
|
174
|
-
const itemRecord = item;
|
|
175
|
-
if (typeof itemRecord.name === 'string') {
|
|
176
|
-
const tool = itemRecord;
|
|
177
|
-
tools.push({
|
|
178
|
-
name: tool.name,
|
|
179
|
-
description: tool.description || `${tool.name} tool`,
|
|
180
|
-
inputSchema: {
|
|
181
|
-
type: 'object',
|
|
182
|
-
...tool.inputSchema,
|
|
183
|
-
},
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
else if (typeof schemaResponse === 'object' && schemaResponse !== null) {
|
|
190
|
-
for (const [name, toolSchema] of Object.entries(schemaResponse)) {
|
|
191
|
-
if (typeof toolSchema === 'object' && toolSchema !== null) {
|
|
192
|
-
const schema = toolSchema;
|
|
193
|
-
tools.push({
|
|
194
|
-
name,
|
|
195
|
-
description: schema.description || `${name} tool`,
|
|
196
|
-
inputSchema: {
|
|
197
|
-
type: 'object',
|
|
198
|
-
...toolSchema,
|
|
199
|
-
},
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
return tools.filter((tool) => !tool.name.toLowerCase().includes('<lambda'));
|
|
205
|
-
}
|
|
206
|
-
async function createLazyConnection(sseUrl, hfToken) {
|
|
207
|
-
const remoteClient = new Client({
|
|
208
|
-
name: 'hf-mcp-space-client',
|
|
209
|
-
version: '1.0.0',
|
|
210
|
-
}, {
|
|
211
|
-
capabilities: {},
|
|
212
|
-
});
|
|
213
|
-
const transportOptions = {};
|
|
214
|
-
if (hfToken) {
|
|
215
|
-
const headerName = 'X-HF-Authorization';
|
|
216
|
-
const customHeaders = {
|
|
217
|
-
[headerName]: `Bearer ${hfToken}`,
|
|
218
|
-
};
|
|
219
|
-
transportOptions.requestInit = {
|
|
220
|
-
headers: customHeaders,
|
|
221
|
-
};
|
|
222
|
-
transportOptions.eventSourceInit = {
|
|
223
|
-
fetch: (url, init) => {
|
|
224
|
-
const headers = new Headers(init.headers);
|
|
225
|
-
Object.entries(customHeaders).forEach(([key, value]) => {
|
|
226
|
-
headers.set(key, value);
|
|
227
|
-
});
|
|
228
|
-
return fetch(url.toString(), { ...init, headers });
|
|
229
|
-
},
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
const transport = new SSEClientTransport(new URL(sseUrl), transportOptions);
|
|
233
|
-
await remoteClient.connect(transport);
|
|
234
|
-
return remoteClient;
|
|
235
|
-
}
|
|
236
140
|
//# sourceMappingURL=invoke.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/space/commands/invoke.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../../src/space/commands/invoke.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-space-tool.d.ts","sourceRoot":"","sources":["../../src/space/dynamic-space-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAEN,KAAK,SAAS,EACd,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"dynamic-space-tool.d.ts","sourceRoot":"","sources":["../../src/space/dynamic-space-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAC5F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAEN,KAAK,SAAS,EACd,KAAK,YAAY,EAMjB,MAAM,YAAY,CAAC;AAOpB,cAAc,YAAY,CAAC;AAkI3B,wBAAgB,yBAAyB,IAAI;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IACnC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;CAC9E,CAgBA;AAKD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;CAW5B,CAAC;AAKX,qBAAa,SAAS;IACrB,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,OAAO,CAAC,EAAE,MAAM;IAStB,OAAO,CACZ,MAAM,EAAE,SAAS,EACjB,KAAK,CAAC,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAC5D,OAAO,CAAC,YAAY,GAAG,UAAU,CAAC;YAgEvB,UAAU;YAOV,cAAc;YAOd,oBAAoB;YAyBpB,YAAY;CA+C1B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { spaceArgsSchema, isDynamicSpaceMode, getOperationNames, getSpaceArgsSchema, VIEW_PARAMETERS, } from './types.js';
|
|
1
|
+
import { spaceArgsSchema, isDynamicSpaceMode, getOperationNames, getSpaceArgsSchema, VIEW_PARAMETERS, FILE_HANDLING_TEXT, } from './types.js';
|
|
2
2
|
import { findSpaces } from './commands/dynamic-find.js';
|
|
3
3
|
import { discoverSpaces } from './commands/discover.js';
|
|
4
4
|
import { viewParameters } from './commands/view-parameters.js';
|
|
@@ -7,11 +7,6 @@ export * from './types.js';
|
|
|
7
7
|
const USAGE_INSTRUCTIONS = `# Gradio Space Interaction
|
|
8
8
|
|
|
9
9
|
Dynamically interact with any Gradio MCP Space. Find spaces, view space parameter schemas, and invoke spaces.
|
|
10
|
-
|
|
11
|
-
## Supported Schema Types
|
|
12
|
-
|
|
13
|
-
✅ **Simple types** (supported):
|
|
14
|
-
- Strings, numbers, booleans
|
|
15
10
|
- Enums (predefined value sets)
|
|
16
11
|
- Arrays of primitives
|
|
17
12
|
- Shallow objects (one level deep)
|
|
@@ -61,25 +56,25 @@ Execute a space's first tool with provided parameters.
|
|
|
61
56
|
1. **Find Spaces** - Use \`find\` to find MCP-enabled spaces for your task
|
|
62
57
|
2. **Inspect Parameters** - Use \`${VIEW_PARAMETERS}\` to see what a space accepts
|
|
63
58
|
3. **Invoke the Space** - Use \`invoke\` with the required parameters
|
|
64
|
-
|
|
65
|
-
## File Handling
|
|
66
|
-
|
|
67
59
|
For parameters that accept files (FileData types):
|
|
68
60
|
- Provide a publicly accessible URL (http:// or https://)
|
|
69
61
|
- Example: \`{"image": "https://example.com/photo.jpg"}\`
|
|
70
|
-
- Outputs from one tool may be used as inputs to another
|
|
71
|
-
|
|
72
|
-
## Tips
|
|
73
|
-
|
|
74
|
-
- Focus searches on specific tasks (e.g., "video generation", "object detection")
|
|
75
62
|
- The tool automatically applies default values for optional parameters
|
|
76
63
|
- Unknown parameters generate warnings but are still passed through (permissive inputs)
|
|
77
64
|
- Enum parameters show all allowed values in ${VIEW_PARAMETERS} output
|
|
78
65
|
- Required parameters are clearly marked and validated
|
|
79
66
|
`;
|
|
80
|
-
const DYNAMIC_USAGE_INSTRUCTIONS = `#
|
|
67
|
+
const DYNAMIC_USAGE_INSTRUCTIONS = `# Hugging Face Space Dynamic Use
|
|
68
|
+
|
|
69
|
+
Perform Tasks using Hugging Face Spaces.
|
|
70
|
+
|
|
71
|
+
## Workflow
|
|
72
|
+
|
|
73
|
+
1. **Discover Taks and Spaces** - Use \`discover\` operation to see available spaces
|
|
74
|
+
2. **View Parameters** - Use \`${VIEW_PARAMETERS}\` operation to inspect parameter schema
|
|
75
|
+
3. **Invoke the Space** - Use \`invoke\` operation with the necessary parameters
|
|
81
76
|
|
|
82
|
-
|
|
77
|
+
${FILE_HANDLING_TEXT}
|
|
83
78
|
|
|
84
79
|
## Available Operations
|
|
85
80
|
|
|
@@ -94,7 +89,7 @@ List recommended spaces and their categories.
|
|
|
94
89
|
\`\`\`
|
|
95
90
|
|
|
96
91
|
### ${VIEW_PARAMETERS}
|
|
97
|
-
Display the parameter schema for
|
|
92
|
+
Display the parameter schema for the Space.
|
|
98
93
|
|
|
99
94
|
**Example:**
|
|
100
95
|
\`\`\`json
|
|
@@ -105,7 +100,7 @@ Display the parameter schema for a space's first tool.
|
|
|
105
100
|
\`\`\`
|
|
106
101
|
|
|
107
102
|
### invoke
|
|
108
|
-
Execute a
|
|
103
|
+
Execute a Task on a Space.
|
|
109
104
|
|
|
110
105
|
**Example:**
|
|
111
106
|
\`\`\`json
|
|
@@ -116,18 +111,7 @@ Execute a space's first tool with provided parameters.
|
|
|
116
111
|
}
|
|
117
112
|
\`\`\`
|
|
118
113
|
|
|
119
|
-
## Workflow
|
|
120
|
-
|
|
121
|
-
1. **Discover Spaces** - Use \`discover\` to see available spaces
|
|
122
|
-
2. **Inspect Parameters** - Use \`${VIEW_PARAMETERS}\` to see what a space accepts
|
|
123
|
-
3. **Invoke the Space** - Use \`invoke\` with the required parameters
|
|
124
|
-
|
|
125
|
-
## File Handling
|
|
126
114
|
|
|
127
|
-
For parameters that accept files (FileData types):
|
|
128
|
-
- Provide a publicly accessible URL (http:// or https://)
|
|
129
|
-
- Example: \`{"image": "https://example.com/photo.jpg"}\`
|
|
130
|
-
- Output url's from one tool may be used as inputs to another.
|
|
131
115
|
`;
|
|
132
116
|
function getUsageInstructions() {
|
|
133
117
|
return isDynamicSpaceMode() ? DYNAMIC_USAGE_INSTRUCTIONS : USAGE_INSTRUCTIONS;
|
|
@@ -137,10 +121,10 @@ export function getDynamicSpaceToolConfig() {
|
|
|
137
121
|
return {
|
|
138
122
|
name: 'dynamic_space',
|
|
139
123
|
description: dynamicMode
|
|
140
|
-
? 'Perform
|
|
141
|
-
'Call with no
|
|
124
|
+
? 'Perform Tasks with Hugging Face Spaces. Use "discover" to view available Tasks. Examples are Image Generation/Editing, Background Removal, Text to Speech, OCR and many more. ' +
|
|
125
|
+
'Call with no arguments for full usage instructions.'
|
|
142
126
|
: 'Find (semantic/task search), inspect (view parameter schema) and dynamically invoke Hugging Face Spaces. ' +
|
|
143
|
-
'Call with no
|
|
127
|
+
'Call with no arguments for full usage instructions.',
|
|
144
128
|
schema: getSpaceArgsSchema(),
|
|
145
129
|
annotations: {
|
|
146
130
|
title: 'Dynamically use Hugging Face Spaces',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-space-tool.js","sourceRoot":"","sources":["../../src/space/dynamic-space-tool.ts"],"names":[],"mappings":"AAIA,OAAO,EACN,eAAe,EAGf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,
|
|
1
|
+
{"version":3,"file":"dynamic-space-tool.js","sourceRoot":"","sources":["../../src/space/dynamic-space-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/space/types.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ export declare const OPERATION_NAMES: readonly ["find", "view_parameters", "invo
|
|
|
4
4
|
export declare const DYNAMIC_OPERATION_NAMES: readonly ["discover", "view_parameters", "invoke"];
|
|
5
5
|
export type OperationName = (typeof OPERATION_NAMES)[number];
|
|
6
6
|
export type DynamicOperationName = (typeof DYNAMIC_OPERATION_NAMES)[number];
|
|
7
|
+
export declare const FILE_INPUT_HELP_MESSAGE: string;
|
|
8
|
+
export declare const FILE_HANDLING_TEXT = "For parameters that accept files (FileData, Images, file URL types):\n- Provide a publicly accessible URL (http:// or https://)\n- Example: `{\"image\": \"https://example.com/photo.jpg\"}`\n- URL's generated by one Space can be used as inputs to another Space.";
|
|
7
9
|
export declare function isDynamicSpaceMode(): boolean;
|
|
8
10
|
export declare function getOperationNames(): readonly string[];
|
|
9
11
|
export declare const spaceArgsSchema: z.ZodObject<{
|
|
@@ -82,7 +84,6 @@ export interface JsonSchema {
|
|
|
82
84
|
description?: string;
|
|
83
85
|
[key: string]: unknown;
|
|
84
86
|
}
|
|
85
|
-
export declare const FILE_INPUT_HELP_MESSAGE: string;
|
|
86
87
|
export declare function isFileDataProperty(prop: JsonSchemaProperty): boolean;
|
|
87
88
|
export declare function hasFileData(schema: JsonSchema): boolean;
|
|
88
89
|
export interface InvokeResult {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/space/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,eAAO,MAAM,eAAe,oBAAoB,CAAC;AACjD,eAAO,MAAM,eAAe,gDAA+C,CAAC;AAC5E,eAAO,MAAM,uBAAuB,oDAAmD,CAAC;AACxF,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7D,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAK5E,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAKD,wBAAgB,iBAAiB,IAAI,SAAS,MAAM,EAAE,CAErD;AAKD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/space/types.ts"],"names":[],"mappings":"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"}
|
package/dist/space/types.js
CHANGED
|
@@ -2,6 +2,12 @@ import { z } from 'zod';
|
|
|
2
2
|
export const VIEW_PARAMETERS = 'view_parameters';
|
|
3
3
|
export const OPERATION_NAMES = ['find', VIEW_PARAMETERS, 'invoke'];
|
|
4
4
|
export const DYNAMIC_OPERATION_NAMES = ['discover', VIEW_PARAMETERS, 'invoke'];
|
|
5
|
+
export const FILE_INPUT_HELP_MESSAGE = 'Provide a publicly accessible URL (http:// or https://) for the file input. ' +
|
|
6
|
+
"Previously generated URL's are usable. ";
|
|
7
|
+
export const FILE_HANDLING_TEXT = `For parameters that accept files (FileData, Images, file URL types):
|
|
8
|
+
- Provide a publicly accessible URL (http:// or https://)
|
|
9
|
+
- Example: \`{"image": "https://example.com/photo.jpg"}\`
|
|
10
|
+
- URL's generated by one Space can be used as inputs to another Space.`;
|
|
5
11
|
export function isDynamicSpaceMode() {
|
|
6
12
|
return !!process.env.DYNAMIC_SPACE_DATA;
|
|
7
13
|
}
|
|
@@ -13,8 +19,8 @@ export const spaceArgsSchema = z.object({
|
|
|
13
19
|
space_name: z
|
|
14
20
|
.string()
|
|
15
21
|
.optional()
|
|
16
|
-
.describe(`
|
|
17
|
-
parameters: z.string().optional().describe('
|
|
22
|
+
.describe(`Space ID (format: "username/space-name"). Required for operation = ${VIEW_PARAMETERS} or invoke.`),
|
|
23
|
+
parameters: z.string().optional().describe('Required for invoke operation: JSON object string of parameters'),
|
|
18
24
|
search_query: z
|
|
19
25
|
.string()
|
|
20
26
|
.optional()
|
|
@@ -27,13 +33,11 @@ export const dynamicSpaceArgsSchema = z.object({
|
|
|
27
33
|
.string()
|
|
28
34
|
.optional()
|
|
29
35
|
.describe(`Space ID (format: "username/space-name"). Required for "${VIEW_PARAMETERS}" and "invoke" operations.`),
|
|
30
|
-
parameters: z.string().optional().describe('JSON object string of parameters. Only
|
|
36
|
+
parameters: z.string().optional().describe('JSON object string of parameters. Only used for "invoke" operation.'),
|
|
31
37
|
});
|
|
32
38
|
export function getSpaceArgsSchema() {
|
|
33
39
|
return isDynamicSpaceMode() ? dynamicSpaceArgsSchema : spaceArgsSchema;
|
|
34
40
|
}
|
|
35
|
-
export const FILE_INPUT_HELP_MESSAGE = 'Provide a publicly accessible URL (http:// or https://) for the Gradio file input. ' +
|
|
36
|
-
"Content previously generated by 'invoke' is usable, as well as Hub Repository URLs. ";
|
|
37
41
|
export function isFileDataProperty(prop) {
|
|
38
42
|
return (prop.title === 'ImageData' ||
|
|
39
43
|
prop.title === 'FileData' ||
|
package/dist/space/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/space/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAU,CAAC;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,CAAU,CAAC;AAOxF,MAAM,UAAU,kBAAkB;IACjC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AACzC,CAAC;AAKD,MAAM,UAAU,iBAAiB;IAChC,OAAO,kBAAkB,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC;AACzE,CAAC;AAKD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC/E,UAAU,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/space/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAQxB,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AACjD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAU,CAAC;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,CAAU,CAAC;AAOxF,MAAM,CAAC,MAAM,uBAAuB,GACnC,8EAA8E;IAC9E,yCAAyC,CAAC;AAK3C,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;uEAGqC,CAAC;AAKxE,MAAM,UAAU,kBAAkB;IACjC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AACzC,CAAC;AAKD,MAAM,UAAU,iBAAiB;IAChC,OAAO,kBAAkB,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,eAAe,CAAC;AACzE,CAAC;AAKD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC/E,UAAU,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sEAAsE,eAAe,aAAa,CAAC;IAC9G,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC7G,YAAY,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACR,kLAAkL,CAClL;IACF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uEAAuE,CAAC;CAC9G,CAAC,CAAC;AAKH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IACvF,UAAU,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,eAAe,4BAA4B,CAAC;IAClH,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;CACjH,CAAC,CAAC;AAKH,MAAM,UAAU,kBAAkB;IACjC,OAAO,kBAAkB,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe,CAAC;AACxE,CAAC;AAqED,MAAM,UAAU,kBAAkB,CAAC,IAAwB;IAC1D,OAAO,CACN,IAAI,CAAC,KAAK,KAAK,WAAW;QAC1B,IAAI,CAAC,KAAK,KAAK,UAAU;QACzB,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAChE,KAAK,CACL,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC7C,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAErC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CallToolResultSchema, type ServerNotification, type ServerRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import type { RequestHandlerExtra } from '@modelcontextprotocol/sdk/shared/protocol.js';
|
|
3
|
+
export interface GradioCallResult {
|
|
4
|
+
result: typeof CallToolResultSchema._type;
|
|
5
|
+
capturedHeaders: Record<string, string>;
|
|
6
|
+
}
|
|
7
|
+
export interface GradioCallOptions {
|
|
8
|
+
onHeaders?: (headers: Headers) => void;
|
|
9
|
+
logProxiedReplica?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function extractReplicaId(headerValue: string | undefined): string | null;
|
|
12
|
+
export declare function rewriteReplicaUrlsInResult(result: typeof CallToolResultSchema._type, proxiedReplicaHeader: string | undefined): typeof CallToolResultSchema._type;
|
|
13
|
+
export declare function callGradioToolWithHeaders(sseUrl: string, toolName: string, parameters: Record<string, unknown>, hfToken: string | undefined, extra: RequestHandlerExtra<ServerRequest, ServerNotification> | undefined, options?: GradioCallOptions): Promise<GradioCallResult>;
|
|
14
|
+
//# sourceMappingURL=gradio-caller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradio-caller.d.ts","sourceRoot":"","sources":["../../../src/space/utils/gradio-caller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,KAAK,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACvH,OAAO,KAAK,EAAE,mBAAmB,EAAkB,MAAM,8CAA8C,CAAC;AAExG,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,OAAO,oBAAoB,CAAC,KAAK,CAAC;IAC1C,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAEjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAEvC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAMD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAO/E;AAOD,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,OAAO,oBAAoB,CAAC,KAAK,EACzC,oBAAoB,EAAE,MAAM,GAAG,SAAS,GACtC,OAAO,oBAAoB,CAAC,KAAK,CAuCnC;AAMD,wBAAsB,yBAAyB,CAC9C,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,mBAAmB,CAAC,aAAa,EAAE,kBAAkB,CAAC,GAAG,SAAS,EACzE,OAAO,GAAE,iBAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAiH3B"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
2
|
+
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
|
|
3
|
+
import { CallToolResultSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
4
|
+
export function extractReplicaId(headerValue) {
|
|
5
|
+
if (!headerValue)
|
|
6
|
+
return null;
|
|
7
|
+
const parts = headerValue.split('-');
|
|
8
|
+
if (parts.length < 2)
|
|
9
|
+
return null;
|
|
10
|
+
const replicaId = parts[parts.length - 1];
|
|
11
|
+
if (!replicaId || replicaId.trim() === '')
|
|
12
|
+
return null;
|
|
13
|
+
return replicaId;
|
|
14
|
+
}
|
|
15
|
+
export function rewriteReplicaUrlsInResult(result, proxiedReplicaHeader) {
|
|
16
|
+
if (process.env.NO_REPLICA_REWRITE)
|
|
17
|
+
return result;
|
|
18
|
+
const replicaId = extractReplicaId(proxiedReplicaHeader);
|
|
19
|
+
if (!replicaId)
|
|
20
|
+
return result;
|
|
21
|
+
const urlPattern = /https:\/\/([^\s"']+)\/gradio_api(\S*)?/g;
|
|
22
|
+
const rewriteText = (text) => text.replace(urlPattern, (_match, host, rest = '') => {
|
|
23
|
+
return `https://${host}/--replicas/${replicaId}/gradio_api${rest}`;
|
|
24
|
+
});
|
|
25
|
+
let changed = false;
|
|
26
|
+
const newContent = result.content.map((item) => {
|
|
27
|
+
if (typeof item === 'string') {
|
|
28
|
+
const rewritten = rewriteText(item);
|
|
29
|
+
if (rewritten !== item) {
|
|
30
|
+
changed = true;
|
|
31
|
+
return { type: 'text', text: rewritten };
|
|
32
|
+
}
|
|
33
|
+
return { type: 'text', text: item };
|
|
34
|
+
}
|
|
35
|
+
if (item && typeof item === 'object' && 'text' in item && typeof item.text === 'string') {
|
|
36
|
+
const rewritten = rewriteText(item.text);
|
|
37
|
+
if (rewritten !== item.text) {
|
|
38
|
+
changed = true;
|
|
39
|
+
return { ...item, text: rewritten };
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return item;
|
|
43
|
+
});
|
|
44
|
+
if (!changed)
|
|
45
|
+
return result;
|
|
46
|
+
return {
|
|
47
|
+
...result,
|
|
48
|
+
content: newContent,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
export async function callGradioToolWithHeaders(sseUrl, toolName, parameters, hfToken, extra, options = {}) {
|
|
52
|
+
const capturedHeaders = {};
|
|
53
|
+
let loggedHeader = false;
|
|
54
|
+
const handleHeaders = (headers) => {
|
|
55
|
+
const proxiedReplica = headers.get('x-proxied-replica') ?? '';
|
|
56
|
+
if (proxiedReplica) {
|
|
57
|
+
capturedHeaders['x-proxied-replica'] = proxiedReplica;
|
|
58
|
+
}
|
|
59
|
+
if (options.logProxiedReplica && !loggedHeader) {
|
|
60
|
+
loggedHeader = true;
|
|
61
|
+
}
|
|
62
|
+
options.onHeaders?.(headers);
|
|
63
|
+
};
|
|
64
|
+
const captureHeadersFetch = async (url, init) => {
|
|
65
|
+
const response = await fetch(url, init);
|
|
66
|
+
handleHeaders(response.headers);
|
|
67
|
+
return response;
|
|
68
|
+
};
|
|
69
|
+
const buildEventSourceFetch = (extraHeaders) => (url, init) => {
|
|
70
|
+
const headers = new Headers(init?.headers);
|
|
71
|
+
if (extraHeaders) {
|
|
72
|
+
Object.entries(extraHeaders).forEach(([key, value]) => headers.set(key, value));
|
|
73
|
+
}
|
|
74
|
+
const requestInit = { ...init, headers };
|
|
75
|
+
return captureHeadersFetch(url.toString(), requestInit);
|
|
76
|
+
};
|
|
77
|
+
const remoteClient = new Client({
|
|
78
|
+
name: 'hf-mcp-gradio-client',
|
|
79
|
+
version: '1.0.0',
|
|
80
|
+
}, {
|
|
81
|
+
capabilities: {},
|
|
82
|
+
});
|
|
83
|
+
const transportOptions = {
|
|
84
|
+
fetch: captureHeadersFetch,
|
|
85
|
+
};
|
|
86
|
+
if (hfToken) {
|
|
87
|
+
const headerName = 'X-HF-Authorization';
|
|
88
|
+
const customHeaders = {
|
|
89
|
+
[headerName]: `Bearer ${hfToken}`,
|
|
90
|
+
};
|
|
91
|
+
transportOptions.requestInit = {
|
|
92
|
+
headers: customHeaders,
|
|
93
|
+
};
|
|
94
|
+
transportOptions.eventSourceInit = {
|
|
95
|
+
fetch: buildEventSourceFetch(customHeaders),
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
transportOptions.eventSourceInit = {
|
|
100
|
+
fetch: buildEventSourceFetch(),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
const transport = new SSEClientTransport(new URL(sseUrl), transportOptions);
|
|
104
|
+
await remoteClient.connect(transport);
|
|
105
|
+
try {
|
|
106
|
+
const progressToken = extra?._meta?.progressToken;
|
|
107
|
+
const requestOptions = {};
|
|
108
|
+
if (progressToken !== undefined && extra) {
|
|
109
|
+
requestOptions.onprogress = (progress) => {
|
|
110
|
+
void extra.sendNotification({
|
|
111
|
+
method: 'notifications/progress',
|
|
112
|
+
params: {
|
|
113
|
+
progressToken,
|
|
114
|
+
progress: progress.progress,
|
|
115
|
+
total: progress.total,
|
|
116
|
+
message: progress.message,
|
|
117
|
+
},
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
requestOptions.resetTimeoutOnProgress = true;
|
|
121
|
+
}
|
|
122
|
+
const result = await remoteClient.request({
|
|
123
|
+
method: 'tools/call',
|
|
124
|
+
params: {
|
|
125
|
+
name: toolName,
|
|
126
|
+
arguments: parameters,
|
|
127
|
+
_meta: progressToken !== undefined ? { progressToken } : undefined,
|
|
128
|
+
},
|
|
129
|
+
}, CallToolResultSchema, requestOptions);
|
|
130
|
+
const proxiedReplica = capturedHeaders['x-proxied-replica'];
|
|
131
|
+
const rewritten = rewriteReplicaUrlsInResult(result, proxiedReplica);
|
|
132
|
+
return { result: rewritten, capturedHeaders };
|
|
133
|
+
}
|
|
134
|
+
finally {
|
|
135
|
+
await remoteClient.close();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=gradio-caller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradio-caller.js","sourceRoot":"","sources":["../../../src/space/utils/gradio-caller.ts"],"names":[],"mappings":"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"}
|