@samanhappy/mcphub 1.1.7 → 1.1.9
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/clients/openapi.js +2 -1
- package/dist/clients/openapi.js.map +1 -1
- package/dist/controllers/authController.js +27 -1
- package/dist/controllers/authController.js.map +1 -1
- package/dist/controllers/configController.js +4 -1
- package/dist/controllers/configController.js.map +1 -1
- package/dist/controllers/oauthServerController.js +12 -14
- package/dist/controllers/oauthServerController.js.map +1 -1
- package/dist/controllers/promptController.js +2 -2
- package/dist/controllers/promptController.js.map +1 -1
- package/dist/controllers/serverController.js +201 -12
- package/dist/controllers/serverController.js.map +1 -1
- package/dist/dao/OAuthTokenDaoDbImpl.js +2 -0
- package/dist/dao/OAuthTokenDaoDbImpl.js.map +1 -1
- package/dist/dao/ServerDao.js.map +1 -1
- package/dist/dao/ServerDaoDbImpl.js.map +1 -1
- package/dist/db/entities/OAuthToken.js +4 -0
- package/dist/db/entities/OAuthToken.js.map +1 -1
- package/dist/db/entities/Server.js.map +1 -1
- package/dist/middlewares/auth.js +7 -25
- package/dist/middlewares/auth.js.map +1 -1
- package/dist/middlewares/userContext.js +6 -34
- package/dist/middlewares/userContext.js.map +1 -1
- package/dist/models/OAuth.js +14 -93
- package/dist/models/OAuth.js.map +1 -1
- package/dist/routes/index.js +3 -1
- package/dist/routes/index.js.map +1 -1
- package/dist/services/betterAuthConfig.js +1 -0
- package/dist/services/betterAuthConfig.js.map +1 -1
- package/dist/services/contextCostService.js +3 -1
- package/dist/services/contextCostService.js.map +1 -1
- package/dist/services/credentialBindingService.js +8 -3
- package/dist/services/credentialBindingService.js.map +1 -1
- package/dist/services/elicitationService.js +93 -0
- package/dist/services/elicitationService.js.map +1 -0
- package/dist/services/mcpService.js +167 -95
- package/dist/services/mcpService.js.map +1 -1
- package/dist/services/oauthServerService.js +15 -1
- package/dist/services/oauthServerService.js.map +1 -1
- package/dist/services/openApiGeneratorService.js +3 -1
- package/dist/services/openApiGeneratorService.js.map +1 -1
- package/dist/services/personalOAuthService.js +70 -8
- package/dist/services/personalOAuthService.js.map +1 -1
- package/dist/services/registrationService.js +28 -0
- package/dist/services/registrationService.js.map +1 -0
- package/dist/services/serverConfigPresenter.js +6 -1
- package/dist/services/serverConfigPresenter.js.map +1 -1
- package/dist/services/smartRoutingService.js +7 -6
- package/dist/services/smartRoutingService.js.map +1 -1
- package/dist/services/sseService.js +1 -2
- package/dist/services/sseService.js.map +1 -1
- package/dist/services/templateService.js +5 -4
- package/dist/services/templateService.js.map +1 -1
- package/dist/services/userService.js +22 -4
- package/dist/services/userService.js.map +1 -1
- package/dist/utils/credentialTemplate.js +76 -6
- package/dist/utils/credentialTemplate.js.map +1 -1
- package/dist/utils/migration.js +1 -0
- package/dist/utils/migration.js.map +1 -1
- package/dist/utils/namePattern.js +28 -0
- package/dist/utils/namePattern.js.map +1 -0
- package/dist/utils/oauthBearer.js +4 -2
- package/dist/utils/oauthBearer.js.map +1 -1
- package/dist/utils/passthroughHeaders.js +17 -0
- package/dist/utils/passthroughHeaders.js.map +1 -0
- package/dist/utils/rateLimit.js +1 -1
- package/dist/utils/rateLimit.js.map +1 -1
- package/dist/utils/serverConfigPersistence.js +1 -3
- package/dist/utils/serverConfigPersistence.js.map +1 -1
- package/dist/utils/serverConfigValidation.js +2 -1
- package/dist/utils/serverConfigValidation.js.map +1 -1
- package/dist/utils/settingsSync.js +5 -1
- package/dist/utils/settingsSync.js.map +1 -1
- package/dist/utils/toolConfig.js +93 -0
- package/dist/utils/toolConfig.js.map +1 -0
- package/dist/utils/upstreamError.js +9 -2
- package/dist/utils/upstreamError.js.map +1 -1
- package/dist/utils/userSession.js +29 -0
- package/dist/utils/userSession.js.map +1 -0
- package/frontend/dist/assets/{ActivityPage-BEpHoGLB.js → ActivityPage-CFRX20v4.js} +2 -2
- package/frontend/dist/assets/{ActivityPage-BEpHoGLB.js.map → ActivityPage-CFRX20v4.js.map} +1 -1
- package/frontend/dist/assets/{CopyClientConfigDialog-B4RDMLQ7.js → CopyClientConfigDialog-CDEiSInj.js} +2 -2
- package/frontend/dist/assets/{CopyClientConfigDialog-B4RDMLQ7.js.map → CopyClientConfigDialog-CDEiSInj.js.map} +1 -1
- package/frontend/dist/assets/CredentialsPage-BCLHY_fN.js +2 -0
- package/frontend/dist/assets/CredentialsPage-BCLHY_fN.js.map +1 -0
- package/frontend/dist/assets/{Dashboard-Bp8ZGDp5.js → Dashboard-B3Y6nAFL.js} +2 -2
- package/frontend/dist/assets/{Dashboard-Bp8ZGDp5.js.map → Dashboard-B3Y6nAFL.js.map} +1 -1
- package/frontend/dist/assets/{EndpointCopy-CH7rfwDL.js → EndpointCopy-BMxT99Ne.js} +2 -2
- package/frontend/dist/assets/{EndpointCopy-CH7rfwDL.js.map → EndpointCopy-BMxT99Ne.js.map} +1 -1
- package/frontend/dist/assets/GroupsPage-5iCk1LKT.js +33 -0
- package/frontend/dist/assets/GroupsPage-5iCk1LKT.js.map +1 -0
- package/frontend/dist/assets/LoginPage-BjYzY6RH.js +2 -0
- package/frontend/dist/assets/LoginPage-BjYzY6RH.js.map +1 -0
- package/frontend/dist/assets/{LogsPage-B4RyT3TS.js → LogsPage-CGcFNKJn.js} +2 -2
- package/frontend/dist/assets/{LogsPage-B4RyT3TS.js.map → LogsPage-CGcFNKJn.js.map} +1 -1
- package/frontend/dist/assets/{MarketPage-DV7Bs6bj.js → MarketPage-B7JPqFw3.js} +2 -2
- package/frontend/dist/assets/{MarketPage-DV7Bs6bj.js.map → MarketPage-B7JPqFw3.js.map} +1 -1
- package/frontend/dist/assets/{OAuthConsentPage-DdxMIqDO.js → OAuthConsentPage-BYi_kgNj.js} +2 -2
- package/frontend/dist/assets/{OAuthConsentPage-DdxMIqDO.js.map → OAuthConsentPage-BYi_kgNj.js.map} +1 -1
- package/frontend/dist/assets/{PromptsPage-61Uj8gCp.js → PromptsPage-x6X5trLX.js} +2 -2
- package/frontend/dist/assets/{PromptsPage-61Uj8gCp.js.map → PromptsPage-x6X5trLX.js.map} +1 -1
- package/frontend/dist/assets/{ResourcesPage-BSgOwVld.js → ResourcesPage-BJZCPBs8.js} +2 -2
- package/frontend/dist/assets/{ResourcesPage-BSgOwVld.js.map → ResourcesPage-BJZCPBs8.js.map} +1 -1
- package/frontend/dist/assets/ServersPage-CsyGLden.js +39 -0
- package/frontend/dist/assets/ServersPage-CsyGLden.js.map +1 -0
- package/frontend/dist/assets/{SettingsPage-C8zYH_jq.js → SettingsPage-C53DI0Sz.js} +6 -6
- package/frontend/dist/assets/SettingsPage-C53DI0Sz.js.map +1 -0
- package/frontend/dist/assets/{StatusDot-R86yLB-f.js → StatusDot-BDJd3Iix.js} +2 -2
- package/frontend/dist/assets/{StatusDot-R86yLB-f.js.map → StatusDot-BDJd3Iix.js.map} +1 -1
- package/frontend/dist/assets/{ToggleGroup-DN1ttokb.js → ToggleGroup-BbmRhILg.js} +2 -2
- package/frontend/dist/assets/{ToggleGroup-DN1ttokb.js.map → ToggleGroup-BbmRhILg.js.map} +1 -1
- package/frontend/dist/assets/{UsersPage-BCMjm9JG.js → UsersPage-NUG6vF8C.js} +2 -2
- package/frontend/dist/assets/{UsersPage-BCMjm9JG.js.map → UsersPage-NUG6vF8C.js.map} +1 -1
- package/frontend/dist/assets/{clipboard-DjzVWhkB.js → clipboard-7BggsilD.js} +2 -2
- package/frontend/dist/assets/{clipboard-DjzVWhkB.js.map → clipboard-7BggsilD.js.map} +1 -1
- package/frontend/dist/assets/index-B_IITM9e.js +3 -0
- package/frontend/dist/assets/index-B_IITM9e.js.map +1 -0
- package/frontend/dist/assets/index-CnqLKewL.css +1 -0
- package/frontend/dist/assets/{resourceService-DRZl8_Vm.js → resourceService-B674Fopr.js} +2 -2
- package/frontend/dist/assets/{resourceService-DRZl8_Vm.js.map → resourceService-B674Fopr.js.map} +1 -1
- package/frontend/dist/assets/{useCostData-DVLGVcuy.js → useCostData-8Z1HjAL5.js} +2 -2
- package/frontend/dist/assets/{useCostData-DVLGVcuy.js.map → useCostData-8Z1HjAL5.js.map} +1 -1
- package/frontend/dist/assets/variableDetection-C0nP3Jj2.js +18 -0
- package/frontend/dist/assets/variableDetection-C0nP3Jj2.js.map +1 -0
- package/frontend/dist/index.html +2 -2
- package/package.json +2 -2
- package/frontend/dist/assets/CredentialsPage-46Z8Qv7O.js +0 -2
- package/frontend/dist/assets/CredentialsPage-46Z8Qv7O.js.map +0 -1
- package/frontend/dist/assets/GroupsPage-DTjOja6T.js +0 -33
- package/frontend/dist/assets/GroupsPage-DTjOja6T.js.map +0 -1
- package/frontend/dist/assets/LoginPage-o6ibb_j3.js +0 -2
- package/frontend/dist/assets/LoginPage-o6ibb_j3.js.map +0 -1
- package/frontend/dist/assets/ServersPage-DYumMhzV.js +0 -39
- package/frontend/dist/assets/ServersPage-DYumMhzV.js.map +0 -1
- package/frontend/dist/assets/SettingsPage-C8zYH_jq.js.map +0 -1
- package/frontend/dist/assets/index--NhF_yyy.css +0 -1
- package/frontend/dist/assets/index-P_O2kAcB.js +0 -3
- package/frontend/dist/assets/index-P_O2kAcB.js.map +0 -1
- package/frontend/dist/assets/variableDetection-DiE4h0o7.js +0 -16
- package/frontend/dist/assets/variableDetection-DiE4h0o7.js.map +0 -1
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const relays = new WeakMap();
|
|
2
|
+
export const getElicitationCapabilities = (server) => {
|
|
3
|
+
const capability = server?.getClientCapabilities()?.elicitation;
|
|
4
|
+
if (!capability)
|
|
5
|
+
return undefined;
|
|
6
|
+
// An empty legacy capability means form support, not both modes.
|
|
7
|
+
const modes = {
|
|
8
|
+
...(capability.form || Object.keys(capability).length === 0 ? { form: {} } : {}),
|
|
9
|
+
...(capability.url ? { url: {} } : {}),
|
|
10
|
+
};
|
|
11
|
+
return Object.keys(modes).length ? modes : undefined;
|
|
12
|
+
};
|
|
13
|
+
// Legacy upstream requests carry no portable parent request ID. Serialize each
|
|
14
|
+
// session's isolated connection instead of guessing which concurrent call owns it.
|
|
15
|
+
class ElicitationRelay {
|
|
16
|
+
constructor(client, downstream) {
|
|
17
|
+
this.tail = Promise.resolve();
|
|
18
|
+
this.lifetime = new AbortController();
|
|
19
|
+
const capabilities = getElicitationCapabilities(downstream);
|
|
20
|
+
const onclose = client.onclose;
|
|
21
|
+
client.onclose = () => {
|
|
22
|
+
this.lifetime.abort();
|
|
23
|
+
onclose?.();
|
|
24
|
+
};
|
|
25
|
+
client.setRequestHandler('elicitation/create', async (request, extra) => {
|
|
26
|
+
const active = this.active;
|
|
27
|
+
if (!active)
|
|
28
|
+
throw new Error('Elicitation requires an active tool call');
|
|
29
|
+
if (!capabilities?.[request.params.mode ?? 'form']) {
|
|
30
|
+
throw new Error('Client does not support this elicitation mode');
|
|
31
|
+
}
|
|
32
|
+
try {
|
|
33
|
+
return await active.context.send({ method: 'elicitation/create', params: request.params }, {
|
|
34
|
+
...active.options,
|
|
35
|
+
signal: AbortSignal.any([
|
|
36
|
+
active.context.signal,
|
|
37
|
+
extra.mcpReq.signal,
|
|
38
|
+
this.lifetime.signal,
|
|
39
|
+
]),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
this.lifetime.abort();
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
client.setNotificationHandler('notifications/elicitation/complete', (notification) => downstream.notification(notification));
|
|
48
|
+
}
|
|
49
|
+
get closed() {
|
|
50
|
+
return this.lifetime.signal.aborted;
|
|
51
|
+
}
|
|
52
|
+
async run(context, options, call) {
|
|
53
|
+
const previous = this.tail;
|
|
54
|
+
let release;
|
|
55
|
+
this.tail = new Promise((resolve) => {
|
|
56
|
+
release = resolve;
|
|
57
|
+
});
|
|
58
|
+
let callStarted = false;
|
|
59
|
+
try {
|
|
60
|
+
await previous;
|
|
61
|
+
if (!context)
|
|
62
|
+
throw new Error('Elicitation requires a downstream request');
|
|
63
|
+
const signal = AbortSignal.any([context.signal, this.lifetime.signal]);
|
|
64
|
+
signal.throwIfAborted();
|
|
65
|
+
this.active = { context, options };
|
|
66
|
+
callStarted = true;
|
|
67
|
+
return await call({ ...options, signal });
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
// A timed-out call can still elicit later; never hand its connection to
|
|
71
|
+
// the next caller. Session lookup replaces this closed client on demand.
|
|
72
|
+
// Cancelling a queued call has not affected the upstream connection.
|
|
73
|
+
if (callStarted || !context)
|
|
74
|
+
this.lifetime.abort();
|
|
75
|
+
throw error;
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
this.active = undefined;
|
|
79
|
+
release();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export const installElicitationRelay = (client, downstream) => {
|
|
84
|
+
relays.set(client, new ElicitationRelay(client, downstream));
|
|
85
|
+
};
|
|
86
|
+
export const isElicitationClientClosed = (client) => relays.get(client)?.closed ?? false;
|
|
87
|
+
export const withElicitation = (client, context, options, call) => {
|
|
88
|
+
const relay = relays.get(client);
|
|
89
|
+
if (!relay)
|
|
90
|
+
return call(options);
|
|
91
|
+
return relay.run(context, options, call);
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=elicitationService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elicitationService.js","sourceRoot":"","sources":["../../src/services/elicitationService.ts"],"names":[],"mappings":"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"}
|