@1mcp/agent 0.39.0-beta.0 → 0.39.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/build/admin/assets/{admin-OAuthServicesWorkspace-Bmets2jv.js → admin-OAuthServicesWorkspace-CKPMmDQI.js} +1 -1
  2. package/build/admin/assets/{admin-console-DyzxXXr5.js → admin-console-CwgYre_s.js} +3 -3
  3. package/build/admin/index.html +1 -1
  4. package/build/commands/inspect/index.d.ts.map +1 -1
  5. package/build/commands/inspect/index.js +21 -2
  6. package/build/commands/inspect/index.js.map +1 -1
  7. package/build/commands/inspect/inspect.d.ts +5 -0
  8. package/build/commands/inspect/inspect.d.ts.map +1 -1
  9. package/build/commands/inspect/inspect.js +120 -5
  10. package/build/commands/inspect/inspect.js.map +1 -1
  11. package/build/commands/inspect/inspectUtils.d.ts +2 -1
  12. package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
  13. package/build/commands/inspect/inspectUtils.js +21 -0
  14. package/build/commands/inspect/inspectUtils.js.map +1 -1
  15. package/build/commands/instructions/instructionsUtils.d.ts.map +1 -1
  16. package/build/commands/instructions/instructionsUtils.js +5 -2
  17. package/build/commands/instructions/instructionsUtils.js.map +1 -1
  18. package/build/commands/serve/cooperativeRuntime.d.ts +5 -1
  19. package/build/commands/serve/cooperativeRuntime.d.ts.map +1 -1
  20. package/build/commands/serve/cooperativeRuntime.js +91 -20
  21. package/build/commands/serve/cooperativeRuntime.js.map +1 -1
  22. package/build/commands/serve/index.d.ts +6 -0
  23. package/build/commands/serve/index.d.ts.map +1 -1
  24. package/build/commands/serve/index.js +7 -1
  25. package/build/commands/serve/index.js.map +1 -1
  26. package/build/commands/serve/serveStop.d.ts.map +1 -1
  27. package/build/commands/serve/serveStop.js +41 -5
  28. package/build/commands/serve/serveStop.js.map +1 -1
  29. package/build/commands/shared/inspectApiSchemas.d.ts +25 -0
  30. package/build/commands/shared/inspectApiSchemas.d.ts.map +1 -1
  31. package/build/commands/shared/inspectApiSchemas.js +21 -0
  32. package/build/commands/shared/inspectApiSchemas.js.map +1 -1
  33. package/build/constants/mcp.d.ts +1 -1
  34. package/build/constants/mcp.js +1 -1
  35. package/build/core/capabilities/capabilityCatalog.d.ts +3 -1
  36. package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
  37. package/build/core/capabilities/capabilityCatalog.js +8 -8
  38. package/build/core/capabilities/capabilityCatalog.js.map +1 -1
  39. package/build/core/capabilities/capabilityManager.js +1 -1
  40. package/build/core/capabilities/capabilityManager.js.map +1 -1
  41. package/build/core/capabilities/inspectSearch.d.ts +45 -0
  42. package/build/core/capabilities/inspectSearch.d.ts.map +1 -0
  43. package/build/core/capabilities/inspectSearch.js +102 -0
  44. package/build/core/capabilities/inspectSearch.js.map +1 -0
  45. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +17 -2
  46. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
  47. package/build/core/capabilities/lazyLoadingOrchestrator.js +53 -5
  48. package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
  49. package/build/core/capabilities/metaToolProvider.d.ts +2 -2
  50. package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
  51. package/build/core/capabilities/metaToolProvider.js +11 -10
  52. package/build/core/capabilities/metaToolProvider.js.map +1 -1
  53. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts +2 -0
  54. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -1
  55. package/build/core/capabilities/runtimeCapabilityCatalog.js +19 -2
  56. package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -1
  57. package/build/core/capabilities/toolRegistry.d.ts +3 -0
  58. package/build/core/capabilities/toolRegistry.d.ts.map +1 -1
  59. package/build/core/capabilities/toolRegistry.js +4 -0
  60. package/build/core/capabilities/toolRegistry.js.map +1 -1
  61. package/build/core/instructions/instructionsDistribution.d.ts.map +1 -1
  62. package/build/core/instructions/instructionsDistribution.js +5 -2
  63. package/build/core/instructions/instructionsDistribution.js.map +1 -1
  64. package/build/core/instructions/templateTypes.d.ts +1 -1
  65. package/build/core/instructions/templateTypes.d.ts.map +1 -1
  66. package/build/core/instructions/templateTypes.js +5 -2
  67. package/build/core/instructions/templateTypes.js.map +1 -1
  68. package/build/core/notifications/notificationManager.d.ts.map +1 -1
  69. package/build/core/notifications/notificationManager.js +1 -1
  70. package/build/core/notifications/notificationManager.js.map +1 -1
  71. package/build/core/server/runtimeControl.d.ts +6 -0
  72. package/build/core/server/runtimeControl.d.ts.map +1 -1
  73. package/build/core/server/runtimeControl.js +26 -1
  74. package/build/core/server/runtimeControl.js.map +1 -1
  75. package/build/core/server/runtimeReplacementConfig.d.ts.map +1 -1
  76. package/build/core/server/runtimeReplacementConfig.js +1 -0
  77. package/build/core/server/runtimeReplacementConfig.js.map +1 -1
  78. package/build/core/server/runtimeScopeOwnership.d.ts +3 -1
  79. package/build/core/server/runtimeScopeOwnership.d.ts.map +1 -1
  80. package/build/core/server/runtimeScopeOwnership.js +1 -1
  81. package/build/core/server/runtimeScopeOwnership.js.map +1 -1
  82. package/build/core/server/staleCooperativeRuntime.d.ts +13 -0
  83. package/build/core/server/staleCooperativeRuntime.d.ts.map +1 -0
  84. package/build/core/server/staleCooperativeRuntime.js +91 -0
  85. package/build/core/server/staleCooperativeRuntime.js.map +1 -0
  86. package/build/core/types/server.d.ts +6 -1
  87. package/build/core/types/server.d.ts.map +1 -1
  88. package/build/core/validation/schemaBoundary.d.ts +10 -1
  89. package/build/core/validation/schemaBoundary.d.ts.map +1 -1
  90. package/build/core/validation/schemaBoundary.js +24 -2
  91. package/build/core/validation/schemaBoundary.js.map +1 -1
  92. package/build/core/validation/schemaWorker.js +5 -1
  93. package/build/core/validation/schemaWorker.js.map +1 -1
  94. package/build/gateway/interactions/interactionRoute.d.ts.map +1 -1
  95. package/build/gateway/interactions/interactionRoute.js +5 -1
  96. package/build/gateway/interactions/interactionRoute.js.map +1 -1
  97. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts +7 -0
  98. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts.map +1 -1
  99. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js +141 -0
  100. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js.map +1 -1
  101. package/build/sdk/legacy/client/runtime/modernSubscriptions.d.ts +43 -0
  102. package/build/sdk/legacy/client/runtime/modernSubscriptions.d.ts.map +1 -0
  103. package/build/sdk/legacy/client/runtime/modernSubscriptions.js +186 -0
  104. package/build/sdk/legacy/client/runtime/modernSubscriptions.js.map +1 -0
  105. package/build/sdk/legacy/commands/serve.d.ts +1 -0
  106. package/build/sdk/legacy/commands/serve.d.ts.map +1 -1
  107. package/build/sdk/legacy/commands/serve.js.map +1 -1
  108. package/build/sdk/legacy/server/auth/requestAuthRevalidation.d.ts +5 -0
  109. package/build/sdk/legacy/server/auth/requestAuthRevalidation.d.ts.map +1 -0
  110. package/build/sdk/legacy/server/auth/requestAuthRevalidation.js +19 -0
  111. package/build/sdk/legacy/server/auth/requestAuthRevalidation.js.map +1 -0
  112. package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts +1 -1
  113. package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts.map +1 -1
  114. package/build/sdk/legacy/server/protocol/notificationHandlers.js +36 -34
  115. package/build/sdk/legacy/server/protocol/notificationHandlers.js.map +1 -1
  116. package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts.map +1 -1
  117. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js +6 -1
  118. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js.map +1 -1
  119. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts.map +1 -1
  120. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js +15 -13
  121. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js.map +1 -1
  122. package/build/sdk/legacy/server/protocol/resourceSubscriptions.d.ts +27 -0
  123. package/build/sdk/legacy/server/protocol/resourceSubscriptions.d.ts.map +1 -0
  124. package/build/sdk/legacy/server/protocol/resourceSubscriptions.js +594 -0
  125. package/build/sdk/legacy/server/protocol/resourceSubscriptions.js.map +1 -0
  126. package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts.map +1 -1
  127. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js +15 -4
  128. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js.map +1 -1
  129. package/build/sdk/legacy/server/runtime/connectionManager.d.ts.map +1 -1
  130. package/build/sdk/legacy/server/runtime/connectionManager.js +51 -5
  131. package/build/sdk/legacy/server/runtime/connectionManager.js.map +1 -1
  132. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts +12 -0
  133. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts.map +1 -1
  134. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js +109 -10
  135. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js.map +1 -1
  136. package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -1
  137. package/build/sdk/legacy/server/runtime/serverManager.js +4 -1
  138. package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -1
  139. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts +2 -0
  140. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
  141. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js +8 -14
  142. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
  143. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts +9 -0
  144. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts.map +1 -1
  145. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +84 -6
  146. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -1
  147. package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
  148. package/build/transport/http/routes/inspectRoutes.js +101 -0
  149. package/build/transport/http/routes/inspectRoutes.js.map +1 -1
  150. package/build/transport/http/routes/modernHttpRoutes.d.ts +11 -10
  151. package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -1
  152. package/build/transport/http/routes/modernHttpRoutes.js +26 -3
  153. package/build/transport/http/routes/modernHttpRoutes.js.map +1 -1
  154. package/build/transport/http/routes/modernSubscriptions.d.ts +21 -0
  155. package/build/transport/http/routes/modernSubscriptions.d.ts.map +1 -0
  156. package/build/transport/http/routes/modernSubscriptions.js +425 -0
  157. package/build/transport/http/routes/modernSubscriptions.js.map +1 -0
  158. package/package.json +3 -3
@@ -0,0 +1,594 @@
1
+ import { acquireRuntimeCapabilityCatalog, } from '../../../../core/capabilities/runtimeCapabilityCatalog.js';
2
+ import { getRequestSession, resolveCapabilityVisibility } from '../../../../core/protocol/requestHandlerUtils.js';
3
+ import { ClientStatus, ServerStatus } from '../../../../core/types/index.js';
4
+ import logger from '../../../../logger/logger.js';
5
+ import { toJsonValue } from '../../../contracts/index.js';
6
+ import { requestLegacyOutbound, setOutboundNotificationHandler, } from '../../client/runtime/legacyOutboundConnection.js';
7
+ import { openModernSubscription, } from '../../client/runtime/modernSubscriptions.js';
8
+ import { resolveResourceRoute } from '../../shared/resourceTemplateRouting.js';
9
+ import { ResourceUpdatedNotificationSchema } from '../../types.js';
10
+ import { z } from 'zod';
11
+ // Limits include setup reservations and in-flight delivery, not just buffered work.
12
+ const MAX_PROCESS_WATCHES = 1024;
13
+ const MAX_OWNER_WATCHES = 64;
14
+ const MAX_URI_BYTES = 8192;
15
+ const MAX_PENDING_UPDATES = 64;
16
+ const MAX_PENDING_BYTES = 1024 * 1024;
17
+ let watchCount = 0;
18
+ let ownerCount = 0;
19
+ let setupCount = 0;
20
+ let pendingUpdates = 0;
21
+ let pendingBytes = 0;
22
+ const catalogOwners = new WeakMap();
23
+ const owners = new WeakMap();
24
+ const upstreamWatches = new WeakMap();
25
+ // Unconfirmed teardown retains process capacity even after its local owner is gone.
26
+ const upstreamReservations = new Set();
27
+ const installed = new WeakMap();
28
+ function releaseClosedUpstreamReservations() {
29
+ for (const upstream of upstreamReservations) {
30
+ if (upstream.connection.adapter.state !== 'stopped')
31
+ continue;
32
+ removeUpstreamRecord(upstream);
33
+ upstream.subscribed = false;
34
+ upstream.cleanupFailed = false;
35
+ }
36
+ }
37
+ function removeUpstreamRecord(upstream) {
38
+ upstreamReservations.delete(upstream);
39
+ if (upstream.registry.get(upstream.uri) === upstream)
40
+ upstream.registry.delete(upstream.uri);
41
+ }
42
+ function countUnconfirmedUpstreamWatches() {
43
+ let count = 0;
44
+ for (const upstream of upstreamReservations) {
45
+ if (upstream.owners.size)
46
+ continue;
47
+ if (!upstream.subscribed)
48
+ continue;
49
+ count++;
50
+ }
51
+ return count;
52
+ }
53
+ async function acquireOwnerCatalog(owner) {
54
+ const visibility = resolveCapabilityVisibility(owner.connections, owner.inbound, getRequestSession(owner.inbound), 'resources');
55
+ return acquireRuntimeCapabilityCatalog(owner.connections, visibility, { signal: owner.abort.signal });
56
+ }
57
+ async function resolve(owner, uri, snapshot) {
58
+ snapshot ??= await acquireOwnerCatalog(owner);
59
+ return resolveResourceRoute(snapshot, uri);
60
+ }
61
+ export function setupOwnedResourceNotifications(connection) {
62
+ if (installed.get(connection) === connection.adapter)
63
+ return;
64
+ const adapter = connection.adapter;
65
+ installed.set(connection, adapter);
66
+ setOutboundNotificationHandler(connection, ResourceUpdatedNotificationSchema, (notification) => {
67
+ if (connection.adapter === adapter)
68
+ deliverOwnedResourceUpdate(connection, notification);
69
+ });
70
+ if (connection.adapter.protocol?.era === 'modern') {
71
+ setOutboundNotificationHandler(connection, z.object({
72
+ method: z.literal('notifications/1mcp/subscription_lost'),
73
+ params: z.object({ uri: z.string().optional(), catalog: z.boolean().optional() }),
74
+ }), (notification) => {
75
+ if (connection.adapter !== adapter)
76
+ return;
77
+ if (notification.params?.catalog === true) {
78
+ for (const owner of Array.from(catalogOwners.get(connection) ?? []))
79
+ terminate(owner);
80
+ }
81
+ if (typeof notification.params?.uri === 'string') {
82
+ loseOwnedResourceCoverage(connection, notification.params.uri);
83
+ }
84
+ });
85
+ }
86
+ }
87
+ function removeReservation(watch) {
88
+ if (!watch.active)
89
+ return;
90
+ watch.active = false;
91
+ watchCount--;
92
+ if (watch.owner.watches.get(watch.uri) === watch)
93
+ watch.owner.watches.delete(watch.uri);
94
+ if (!watch.owner.watches.size && !watch.owner.authorize && !watch.owner.catalogs.size) {
95
+ clearInterval(watch.owner.monitor);
96
+ watch.owner.monitor = undefined;
97
+ }
98
+ }
99
+ async function detach(watch) {
100
+ removeReservation(watch);
101
+ watch.abort.abort();
102
+ try {
103
+ await closeUpstreamWatch(watch);
104
+ }
105
+ catch (error) {
106
+ logger.warn('Resource subscription cleanup incomplete', { failedWatches: 1 });
107
+ throw error;
108
+ }
109
+ }
110
+ async function closeUpstreamWatch(watch) {
111
+ if (watch.modern) {
112
+ await watch.modern.close();
113
+ return;
114
+ }
115
+ const { connection, upstreamUri } = watch;
116
+ if (!connection || upstreamUri === undefined)
117
+ return;
118
+ const upstream = watch.upstream;
119
+ if (!upstream || !upstream.owners.delete(watch))
120
+ return;
121
+ const operation = upstream.operation
122
+ .catch(() => { })
123
+ .then(async () => {
124
+ if (upstream.owners.size)
125
+ return;
126
+ if (!upstream.subscribed)
127
+ return;
128
+ try {
129
+ await requestLegacyOutbound(upstream.connection, 'resources/unsubscribe', { uri: upstreamUri });
130
+ upstream.subscribed = false;
131
+ upstream.cleanupFailed = false;
132
+ }
133
+ catch (error) {
134
+ upstream.cleanupFailed = true;
135
+ throw error;
136
+ }
137
+ });
138
+ upstream.operation = operation;
139
+ try {
140
+ await operation;
141
+ }
142
+ finally {
143
+ // A later attachment may have queued behind this unsubscribe.
144
+ releaseUpstreamWatch(upstream, operation);
145
+ }
146
+ }
147
+ function releaseUpstreamWatch(upstream, operation) {
148
+ if (upstream.owners.size)
149
+ return;
150
+ if (upstream.operation !== operation)
151
+ return;
152
+ if (upstream.subscribed)
153
+ return;
154
+ removeUpstreamRecord(upstream);
155
+ }
156
+ export async function cleanupOwnedResources(inbound) {
157
+ const owner = owners.get(inbound);
158
+ if (!owner || owner.closed)
159
+ return;
160
+ owner.closed = true;
161
+ ownerCount--;
162
+ owner.abort.abort();
163
+ clearInterval(owner.monitor);
164
+ for (const { connection } of owner.catalogs.values())
165
+ catalogOwners.get(connection)?.delete(owner);
166
+ owner.catalogs.clear();
167
+ const results = await Promise.allSettled(Array.from(owner.watches.values(), detach));
168
+ const failedWatches = results.filter((result) => result.status === 'rejected').length;
169
+ if (failedWatches) {
170
+ throw new Error('Resource subscription cleanup incomplete');
171
+ }
172
+ }
173
+ function terminate(owner) {
174
+ if (owner.closed)
175
+ return;
176
+ // Revoke ownership synchronously, without waiting for an upstream or a slow recipient.
177
+ void cleanupOwnedResources(owner.inbound).catch(() => undefined);
178
+ void (owner.inbound.adapter.closeWhenIdle?.() ?? owner.inbound.adapter.close()).catch(() => { });
179
+ }
180
+ /** Retained legacy URI watches are independent; a modern listen owns its complete acknowledged filter. */
181
+ function loseWatchCoverage(watch) {
182
+ if (!watch.active || watch.owner.closed)
183
+ return;
184
+ if (watch.owner.inbound.subscriptionListKinds !== undefined) {
185
+ terminate(watch.owner);
186
+ return;
187
+ }
188
+ void detach(watch).catch(() => undefined);
189
+ }
190
+ function getOwner(connections, inbound) {
191
+ let owner = owners.get(inbound);
192
+ if (!owner) {
193
+ if (ownerCount >= MAX_PROCESS_WATCHES)
194
+ throw new Error('Subscription owner admission limit exceeded');
195
+ ownerCount++;
196
+ owner = {
197
+ inbound,
198
+ connections,
199
+ watches: new Map(),
200
+ catalogs: new Map(),
201
+ abort: new AbortController(),
202
+ closed: false,
203
+ setups: 0,
204
+ pending: 0,
205
+ bytes: 0,
206
+ delivery: Promise.resolve(),
207
+ checking: false,
208
+ };
209
+ owners.set(inbound, owner);
210
+ }
211
+ return owner;
212
+ }
213
+ async function assertWatchCurrent(watch, snapshot) {
214
+ if (!watch.active || watch.owner.closed)
215
+ return;
216
+ if (watch.owner.inbound.status !== ServerStatus.Connected)
217
+ throw new Error('Resource subscription disconnected');
218
+ if (watch.authorize && !(await watch.authorize()))
219
+ throw new Error('Resource subscription authorization lost');
220
+ const route = await resolve(watch.owner, watch.uri, snapshot);
221
+ if (!watch.active || watch.owner.closed)
222
+ return;
223
+ if (route.connection !== watch.connection ||
224
+ route.connection.adapter !== watch.adapter ||
225
+ route.upstreamIdentity !== watch.upstreamUri) {
226
+ throw new Error('Resource subscription coverage changed');
227
+ }
228
+ }
229
+ function supportsListChanged(connection, kind) {
230
+ const capability = connection.capabilities?.[kind];
231
+ if (!capability || typeof capability !== 'object' || Array.isArray(capability))
232
+ return false;
233
+ return capability.listChanged === true;
234
+ }
235
+ function assertCatalogCurrent(owner) {
236
+ for (const source of owner.catalogs.values()) {
237
+ const visibility = resolveCapabilityVisibility(owner.connections, owner.inbound, getRequestSession(owner.inbound), source.kind);
238
+ if (owner.connections.get(source.connectionKey) !== source.connection ||
239
+ source.connection.adapter !== source.adapter ||
240
+ source.connection.status !== ClientStatus.Connected ||
241
+ !supportsListChanged(source.connection, source.kind) ||
242
+ !visibility.serverCandidates.has(source.connectionKey)) {
243
+ throw new Error('Catalog subscription coverage changed');
244
+ }
245
+ }
246
+ }
247
+ function monitorOwner(owner) {
248
+ if (owner.monitor)
249
+ return;
250
+ owner.monitor = setInterval(() => {
251
+ if (owner.closed || owner.checking)
252
+ return;
253
+ owner.checking = true;
254
+ void deliverBounded(owner, async () => {
255
+ if (owner.inbound.status === ServerStatus.Connecting)
256
+ return;
257
+ if (owner.inbound.status !== ServerStatus.Connected)
258
+ throw new Error('Subscription owner disconnected');
259
+ assertCatalogCurrent(owner);
260
+ if (owner.requiresAuthorization && !owner.authorize)
261
+ return;
262
+ if (owner.authorize && !(await owner.authorize()))
263
+ throw new Error('Subscription authorization lost');
264
+ const watches = Array.from(owner.watches.values()).filter((watch) => watch.active && watch.connection);
265
+ if (!watches.length)
266
+ return;
267
+ const snapshot = await acquireOwnerCatalog(owner);
268
+ for (const watch of watches) {
269
+ if (owner.closed)
270
+ return;
271
+ try {
272
+ await assertWatchCurrent(watch, snapshot);
273
+ }
274
+ catch {
275
+ loseWatchCoverage(watch);
276
+ }
277
+ }
278
+ })
279
+ .catch(() => terminate(owner))
280
+ .finally(() => {
281
+ owner.checking = false;
282
+ });
283
+ }, 1000);
284
+ owner.monitor.unref();
285
+ }
286
+ async function deliverBounded(owner, delivery) {
287
+ if (owner.closed)
288
+ return;
289
+ let timer;
290
+ let abort = () => { };
291
+ const stopped = new Promise((_resolve, reject) => {
292
+ abort = () => reject(new Error('Subscription delivery stopped'));
293
+ owner.abort.signal.addEventListener('abort', abort, { once: true });
294
+ timer = setTimeout(() => reject(new Error('Subscription delivery deadline exceeded')), 30_000);
295
+ timer.unref();
296
+ });
297
+ try {
298
+ await Promise.race([delivery(), stopped]);
299
+ }
300
+ finally {
301
+ clearTimeout(timer);
302
+ owner.abort.signal.removeEventListener('abort', abort);
303
+ }
304
+ }
305
+ function enqueue(owner, bytes, delivery) {
306
+ if (owner.closed)
307
+ return;
308
+ if (owner.requiresAuthorization && !owner.authorize)
309
+ return;
310
+ if (owner.pending >= MAX_PENDING_UPDATES ||
311
+ owner.bytes + bytes > MAX_PENDING_BYTES ||
312
+ pendingUpdates >= 4096 ||
313
+ pendingBytes + bytes > 16 * MAX_PENDING_BYTES) {
314
+ terminate(owner);
315
+ return;
316
+ }
317
+ owner.pending++;
318
+ pendingUpdates++;
319
+ pendingBytes += bytes;
320
+ owner.bytes += bytes;
321
+ owner.delivery = owner.delivery
322
+ .then(async () => {
323
+ if (owner.closed)
324
+ return;
325
+ await deliverBounded(owner, async () => {
326
+ if (owner.inbound.status !== ServerStatus.Connected)
327
+ throw new Error('Subscription owner disconnected');
328
+ assertCatalogCurrent(owner);
329
+ if (owner.authorize && !(await owner.authorize()))
330
+ throw new Error('Subscription authorization lost');
331
+ if (owner.closed)
332
+ return;
333
+ await delivery();
334
+ });
335
+ })
336
+ .catch(() => terminate(owner))
337
+ .finally(() => {
338
+ owner.pending--;
339
+ pendingUpdates--;
340
+ pendingBytes -= bytes;
341
+ owner.bytes -= bytes;
342
+ });
343
+ }
344
+ /** Legacy inbound connections implicitly receive supported catalog changes; private modern bridges pin their filters. */
345
+ export function registerOwnedCatalogConnection(connections, inbound, connection, kind) {
346
+ if (inbound.requestOnly)
347
+ return;
348
+ const selected = inbound.subscriptionListKinds;
349
+ if (selected && !selected.includes(kind))
350
+ return;
351
+ if (!supportsListChanged(connection, kind))
352
+ return;
353
+ const key = Array.from(connections).find(([, candidate]) => candidate === connection)?.[0];
354
+ if (key === undefined)
355
+ return;
356
+ const visibility = resolveCapabilityVisibility(connections, inbound, getRequestSession(inbound), kind);
357
+ if (!visibility.serverCandidates.has(key))
358
+ return;
359
+ const owner = getOwner(connections, inbound);
360
+ const coverageKey = `${key}\0${kind}`;
361
+ const existing = owner.catalogs.get(coverageKey);
362
+ if (existing) {
363
+ if (existing.connection !== connection || existing.adapter !== connection.adapter)
364
+ terminate(owner);
365
+ return;
366
+ }
367
+ if (owner.catalogs.size >= 128) {
368
+ terminate(owner);
369
+ throw new Error('Catalog subscription source limit exceeded');
370
+ }
371
+ owner.catalogs.set(coverageKey, { connection, adapter: connection.adapter, connectionKey: key, kind });
372
+ let listeners = catalogOwners.get(connection);
373
+ if (!listeners)
374
+ catalogOwners.set(connection, (listeners = new Set()));
375
+ listeners.add(owner);
376
+ setupOwnedResourceNotifications(connection);
377
+ monitorOwner(owner);
378
+ }
379
+ export function bindOwnedCatalogConnections(connections, inbound, kind) {
380
+ for (const connection of connections.values())
381
+ registerOwnedCatalogConnection(connections, inbound, connection, kind);
382
+ }
383
+ /** HTTP sessions cannot send unsolicited data before their initializing request binds its grant. */
384
+ export function requireOwnedNotificationAuthorization(connections, inbound) {
385
+ getOwner(connections, inbound).requiresAuthorization = true;
386
+ }
387
+ /** Bind the admitted request grant before allowing unsolicited catalog delivery. */
388
+ export function bindOwnedNotificationAuthorization(connections, inbound, authorize) {
389
+ if (inbound.requestOnly)
390
+ return;
391
+ const owner = getOwner(connections, inbound);
392
+ owner.authorize ??= authorize;
393
+ monitorOwner(owner);
394
+ }
395
+ /** Only the exact source/kind whose coverage belongs to this owner may enqueue a catalog event. */
396
+ export function enqueueOwnedCatalogNotification(connections, inbound, connection, notification) {
397
+ const owner = owners.get(inbound);
398
+ if (!owner || owner.closed)
399
+ return;
400
+ const kind = notification.method.split('/')[1];
401
+ const covered = Array.from(owner.catalogs.values()).some((source) => source.connection === connection && source.adapter === connection.adapter && source.kind === kind);
402
+ if (!covered)
403
+ return;
404
+ enqueueOwnedNotification(connections, inbound, notification);
405
+ }
406
+ /** Catalog invalidation remains synchronous upstream; recipient delivery never blocks its peers. */
407
+ export function enqueueOwnedNotification(connections, inbound, notification) {
408
+ if (inbound.requestOnly)
409
+ return;
410
+ const kinds = {
411
+ 'notifications/tools/list_changed': 'tools',
412
+ 'notifications/resources/list_changed': 'resources',
413
+ 'notifications/prompts/list_changed': 'prompts',
414
+ };
415
+ const kind = kinds[notification.method];
416
+ if (kind && inbound.subscriptionListKinds && !inbound.subscriptionListKinds.includes(kind))
417
+ return;
418
+ const owner = getOwner(connections, inbound);
419
+ const encoded = JSON.stringify(notification);
420
+ const snapshot = structuredClone(notification);
421
+ enqueue(owner, Buffer.byteLength(encoded), async () => {
422
+ await inbound.adapter.notify({ method: snapshot.method, params: toJsonValue(snapshot.params ?? {}) });
423
+ });
424
+ }
425
+ export async function subscribeOwnedResource(connections, inbound, uri, signal, authorize) {
426
+ if (signal?.aborted)
427
+ throw new Error('Resource subscription cancelled');
428
+ const owner = getOwner(connections, inbound);
429
+ if (owner.closed)
430
+ throw new Error('Resource subscription owner is closed');
431
+ if (authorize)
432
+ owner.authorize ??= authorize;
433
+ const existing = owner.watches.get(uri);
434
+ if (existing)
435
+ return existing.ready;
436
+ if (Buffer.byteLength(uri) > MAX_URI_BYTES)
437
+ throw new Error('Resource subscription URI exceeds limit');
438
+ releaseClosedUpstreamReservations();
439
+ if (owner.watches.size >= MAX_OWNER_WATCHES ||
440
+ owner.setups >= MAX_OWNER_WATCHES ||
441
+ watchCount + countUnconfirmedUpstreamWatches() >= MAX_PROCESS_WATCHES ||
442
+ setupCount >= MAX_PROCESS_WATCHES) {
443
+ throw new Error('Resource subscription admission limit exceeded');
444
+ }
445
+ const watch = { owner, uri, abort: new AbortController(), active: true, ready: Promise.resolve(), authorize };
446
+ owner.watches.set(uri, watch);
447
+ watchCount++;
448
+ setupCount++;
449
+ owner.setups++;
450
+ const cancel = () => {
451
+ void detach(watch).catch(() => { });
452
+ };
453
+ signal?.addEventListener('abort', cancel, { once: true });
454
+ watch.ready = (async () => {
455
+ try {
456
+ if (authorize && !(await authorize()))
457
+ throw new Error('Resource subscription authorization lost');
458
+ const route = await resolve(owner, uri);
459
+ if (!watch.active || owner.closed)
460
+ throw new Error('Resource subscription cancelled');
461
+ watch.connection = route.connection;
462
+ watch.adapter = route.connection.adapter;
463
+ watch.upstreamUri = route.upstreamIdentity;
464
+ setupOwnedResourceNotifications(route.connection);
465
+ if (route.connection.adapter.protocol?.era === 'modern') {
466
+ const handle = await openModernSubscription(route.connection.adapter, { resourceSubscriptions: [route.upstreamIdentity] }, (notification) => deliverWatch(watch, notification), () => loseWatchCoverage(watch), AbortSignal.any([owner.abort.signal, watch.abort.signal]));
467
+ watch.modern = handle;
468
+ if (!handle.honoredFilter.resourceSubscriptions?.includes(route.upstreamIdentity)) {
469
+ await handle.close();
470
+ throw new Error('Upstream did not accept resource subscription');
471
+ }
472
+ if (!watch.active || owner.closed)
473
+ throw new Error('Resource subscription cancelled');
474
+ await assertWatchCurrent(watch);
475
+ monitorOwner(owner);
476
+ return;
477
+ }
478
+ let watches = upstreamWatches.get(route.connection);
479
+ if (!watches) {
480
+ watches = new Map();
481
+ upstreamWatches.set(route.connection, watches);
482
+ }
483
+ let upstream = watches.get(route.upstreamIdentity);
484
+ if (!upstream || upstream.connection.adapter !== watch.adapter) {
485
+ releaseClosedUpstreamReservations();
486
+ if (upstreamReservations.size >= MAX_PROCESS_WATCHES)
487
+ throw new Error('Upstream watch capacity exceeded');
488
+ upstream = {
489
+ connection: { ...route.connection, adapter: watch.adapter },
490
+ registry: watches,
491
+ uri: route.upstreamIdentity,
492
+ owners: new Set(),
493
+ operation: Promise.resolve(),
494
+ subscribed: false,
495
+ cleanupFailed: false,
496
+ };
497
+ upstreamReservations.add(upstream);
498
+ watches.set(route.upstreamIdentity, upstream);
499
+ }
500
+ watch.upstream = upstream;
501
+ upstream.owners.add(watch);
502
+ const selected = upstream;
503
+ const operation = upstream.operation
504
+ .catch(() => { })
505
+ .then(async () => {
506
+ if (!watch.active)
507
+ return;
508
+ if (selected.subscribed && !selected.cleanupFailed)
509
+ return;
510
+ await requestLegacyOutbound(selected.connection, 'resources/subscribe', { uri: route.upstreamIdentity });
511
+ selected.subscribed = true;
512
+ selected.cleanupFailed = false;
513
+ });
514
+ upstream.operation = operation;
515
+ await operation;
516
+ if (!watch.active || owner.closed)
517
+ throw new Error('Resource subscription cancelled');
518
+ await assertWatchCurrent(watch);
519
+ monitorOwner(owner);
520
+ }
521
+ catch (error) {
522
+ await detach(watch).catch(() => { });
523
+ throw error;
524
+ }
525
+ finally {
526
+ signal?.removeEventListener('abort', cancel);
527
+ setupCount--;
528
+ owner.setups--;
529
+ }
530
+ })();
531
+ return watch.ready;
532
+ }
533
+ export async function unsubscribeOwnedResource(inbound, uri) {
534
+ const watch = owners.get(inbound)?.watches.get(uri);
535
+ if (watch)
536
+ await detach(watch);
537
+ }
538
+ /** One upstream callback fans out without awaiting any recipient's delivery queue. */
539
+ export function deliverOwnedResourceUpdate(connection, notification) {
540
+ const uri = notification.params?.uri;
541
+ if (typeof uri !== 'string')
542
+ return;
543
+ const upstream = upstreamWatches.get(connection)?.get(uri);
544
+ if (!upstream)
545
+ return;
546
+ for (const watch of upstream.owners)
547
+ deliverWatch(watch, notification);
548
+ }
549
+ function deliverWatch(watch, notification) {
550
+ if (!watch.active ||
551
+ notification.method !== 'notifications/resources/updated' ||
552
+ notification.params?.uri !== watch.upstreamUri)
553
+ return;
554
+ const encoded = JSON.stringify(notification);
555
+ const snapshot = structuredClone(notification);
556
+ enqueue(watch.owner, Buffer.byteLength(encoded), async () => {
557
+ await watch.ready;
558
+ if (!watch.active || watch.owner.closed)
559
+ return;
560
+ try {
561
+ await assertWatchCurrent(watch);
562
+ }
563
+ catch {
564
+ loseWatchCoverage(watch);
565
+ return;
566
+ }
567
+ if (!watch.active || watch.owner.closed)
568
+ return;
569
+ const params = { ...snapshot.params, uri: watch.uri, server: watch.connection?.name };
570
+ const meta = snapshot.params?._meta;
571
+ if (meta && typeof meta === 'object' && !Array.isArray(meta)) {
572
+ Object.assign(params, {
573
+ _meta: Object.fromEntries(Object.entries(meta).filter(([key]) => key !== 'io.modelcontextprotocol/subscriptionId')),
574
+ });
575
+ }
576
+ await watch.owner.inbound.adapter.notify({
577
+ method: snapshot.method,
578
+ params: toJsonValue(params),
579
+ });
580
+ });
581
+ }
582
+ /** Coverage loss is terminal; streams are never silently reattached or replayed. */
583
+ export function loseOwnedResourceCoverage(connection, uri) {
584
+ const watches = upstreamWatches.get(connection);
585
+ if (!watches)
586
+ return;
587
+ for (const [upstreamUri, upstream] of watches) {
588
+ if (uri !== undefined && upstreamUri !== uri)
589
+ continue;
590
+ for (const watch of Array.from(upstream.owners))
591
+ loseWatchCoverage(watch);
592
+ }
593
+ }
594
+ //# sourceMappingURL=resourceSubscriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceSubscriptions.js","sourceRoot":"","sources":["../../../../../src/sdk/legacy/server/protocol/resourceSubscriptions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"toolRequestHandlers.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/legacy/server/protocol/toolRequestHandlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAc5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AAa5G,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,yBAAyB,EACxC,WAAW,EAAE,iBAAiB,EAC9B,uBAAuB,CAAC,EAAE,uBAAuB,GAChD,IAAI,CAkKN"}
1
+ {"version":3,"file":"toolRequestHandlers.d.ts","sourceRoot":"","sources":["../../../../../src/sdk/legacy/server/protocol/toolRequestHandlers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAe5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAI7D,OAAO,EAAE,KAAK,yBAAyB,EAAE,MAAM,4DAA4D,CAAC;AAe5G,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,yBAAyB,EACxC,WAAW,EAAE,iBAAiB,EAC9B,uBAAuB,CAAC,EAAE,uBAAuB,GAChD,IAAI,CA4KN"}