@1mcp/agent 0.35.0-beta.4 → 0.36.0

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 (262) hide show
  1. package/build/admin/assets/{admin-AboutRuntimeWorkspace-CM2ZafTJ.js → admin-AboutRuntimeWorkspace-DH2QC2nJ.js} +1 -1
  2. package/build/admin/assets/admin-BackendLogsWorkspace-BKavXT9B.js +1 -0
  3. package/build/admin/assets/admin-InstructionTemplatesWorkspace-CvG4EPdZ.js +1 -0
  4. package/build/admin/assets/admin-OAuthServicesWorkspace-BCGj2hP4.js +1 -0
  5. package/build/admin/assets/admin-PresetAuthoringWorkspace-BboJVBFl.js +1 -0
  6. package/build/admin/assets/admin-console-D6jyI73o.css +1 -0
  7. package/build/admin/assets/admin-console-xbgqUjbT.js +3 -0
  8. package/build/admin/assets/admin-icons-CYGTDZA5.js +1 -0
  9. package/build/admin/assets/admin-mantine-xwbfu5Gd.js +53 -0
  10. package/build/admin/index.html +4 -4
  11. package/build/auth/sdkOAuthClientProvider.d.ts +4 -0
  12. package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -1
  13. package/build/auth/sdkOAuthClientProvider.js +29 -0
  14. package/build/auth/sdkOAuthClientProvider.js.map +1 -1
  15. package/build/commands/instructions/instructions.d.ts.map +1 -1
  16. package/build/commands/instructions/instructions.js +56 -1
  17. package/build/commands/instructions/instructions.js.map +1 -1
  18. package/build/commands/mcp/add.js +2 -2
  19. package/build/commands/mcp/add.js.map +1 -1
  20. package/build/commands/mcp/list.js +1 -1
  21. package/build/commands/mcp/list.js.map +1 -1
  22. package/build/commands/mcp/update.js +1 -1
  23. package/build/commands/mcp/update.js.map +1 -1
  24. package/build/commands/shared/serveTargetResolver.d.ts.map +1 -1
  25. package/build/commands/shared/serveTargetResolver.js +17 -22
  26. package/build/commands/shared/serveTargetResolver.js.map +1 -1
  27. package/build/config/configContext.d.ts +2 -0
  28. package/build/config/configContext.d.ts.map +1 -1
  29. package/build/config/configContext.js +5 -0
  30. package/build/config/configContext.js.map +1 -1
  31. package/build/config/configLoader.d.ts +8 -0
  32. package/build/config/configLoader.d.ts.map +1 -1
  33. package/build/config/configLoader.js +35 -11
  34. package/build/config/configLoader.js.map +1 -1
  35. package/build/config/configManager.d.ts +16 -1
  36. package/build/config/configManager.d.ts.map +1 -1
  37. package/build/config/configManager.js +77 -0
  38. package/build/config/configManager.js.map +1 -1
  39. package/build/config/configWatcher.d.ts +2 -0
  40. package/build/config/configWatcher.d.ts.map +1 -1
  41. package/build/config/configWatcher.js +9 -4
  42. package/build/config/configWatcher.js.map +1 -1
  43. package/build/config/configuredServerTargets.d.ts +3 -0
  44. package/build/config/configuredServerTargets.d.ts.map +1 -0
  45. package/build/config/configuredServerTargets.js +8 -0
  46. package/build/config/configuredServerTargets.js.map +1 -0
  47. package/build/config/envProcessor.d.ts +2 -1
  48. package/build/config/envProcessor.d.ts.map +1 -1
  49. package/build/config/envProcessor.js +16 -9
  50. package/build/config/envProcessor.js.map +1 -1
  51. package/build/config/mcpConfigManager.d.ts +3 -0
  52. package/build/config/mcpConfigManager.d.ts.map +1 -1
  53. package/build/config/mcpConfigManager.js +15 -0
  54. package/build/config/mcpConfigManager.js.map +1 -1
  55. package/build/config/runtimeScopeEnv.d.ts +15 -0
  56. package/build/config/runtimeScopeEnv.d.ts.map +1 -0
  57. package/build/config/runtimeScopeEnv.js +231 -0
  58. package/build/config/runtimeScopeEnv.js.map +1 -0
  59. package/build/config/runtimeTargetFingerprint.d.ts +3 -0
  60. package/build/config/runtimeTargetFingerprint.d.ts.map +1 -0
  61. package/build/config/runtimeTargetFingerprint.js +66 -0
  62. package/build/config/runtimeTargetFingerprint.js.map +1 -0
  63. package/build/config/types.d.ts +5 -0
  64. package/build/config/types.d.ts.map +1 -1
  65. package/build/config/types.js +1 -0
  66. package/build/config/types.js.map +1 -1
  67. package/build/constants/api.d.ts +1 -0
  68. package/build/constants/api.d.ts.map +1 -1
  69. package/build/constants/api.js +1 -0
  70. package/build/constants/api.js.map +1 -1
  71. package/build/constants/mcp.d.ts +1 -1
  72. package/build/constants/mcp.d.ts.map +1 -1
  73. package/build/constants/mcp.js +1 -1
  74. package/build/constants/mcp.js.map +1 -1
  75. package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
  76. package/build/core/capabilities/capabilityAggregator.js +33 -14
  77. package/build/core/capabilities/capabilityAggregator.js.map +1 -1
  78. package/build/core/capabilities/capabilityCatalog.d.ts +1 -1
  79. package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
  80. package/build/core/capabilities/capabilityCatalog.js +19 -7
  81. package/build/core/capabilities/capabilityCatalog.js.map +1 -1
  82. package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
  83. package/build/core/capabilities/capabilityPagination.js +7 -4
  84. package/build/core/capabilities/capabilityPagination.js.map +1 -1
  85. package/build/core/capabilities/configuredToolSnapshot.d.ts +34 -0
  86. package/build/core/capabilities/configuredToolSnapshot.d.ts.map +1 -0
  87. package/build/core/capabilities/configuredToolSnapshot.js +137 -0
  88. package/build/core/capabilities/configuredToolSnapshot.js.map +1 -0
  89. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
  90. package/build/core/capabilities/lazyLoadingOrchestrator.js +8 -4
  91. package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
  92. package/build/core/capabilities/metaToolProvider.js +3 -3
  93. package/build/core/capabilities/metaToolProvider.js.map +1 -1
  94. package/build/core/client/clientManager.d.ts.map +1 -1
  95. package/build/core/client/clientManager.js +31 -19
  96. package/build/core/client/clientManager.js.map +1 -1
  97. package/build/core/client/connectionHandler.d.ts.map +1 -1
  98. package/build/core/client/connectionHandler.js +9 -6
  99. package/build/core/client/connectionHandler.js.map +1 -1
  100. package/build/core/client/postAuthOAuthRecovery.d.ts +6 -0
  101. package/build/core/client/postAuthOAuthRecovery.d.ts.map +1 -0
  102. package/build/core/client/postAuthOAuthRecovery.js +74 -0
  103. package/build/core/client/postAuthOAuthRecovery.js.map +1 -0
  104. package/build/core/configChangeHandler.d.ts +5 -0
  105. package/build/core/configChangeHandler.d.ts.map +1 -1
  106. package/build/core/configChangeHandler.js +58 -14
  107. package/build/core/configChangeHandler.js.map +1 -1
  108. package/build/core/instructions/effectiveServerInstructions.d.ts +17 -0
  109. package/build/core/instructions/effectiveServerInstructions.d.ts.map +1 -0
  110. package/build/core/instructions/effectiveServerInstructions.js +12 -0
  111. package/build/core/instructions/effectiveServerInstructions.js.map +1 -0
  112. package/build/core/instructions/instructionAggregator.d.ts +51 -2
  113. package/build/core/instructions/instructionAggregator.d.ts.map +1 -1
  114. package/build/core/instructions/instructionAggregator.js +191 -30
  115. package/build/core/instructions/instructionAggregator.js.map +1 -1
  116. package/build/core/instructions/instructionsDistribution.d.ts +53 -0
  117. package/build/core/instructions/instructionsDistribution.d.ts.map +1 -1
  118. package/build/core/instructions/instructionsDistribution.js +25 -0
  119. package/build/core/instructions/instructionsDistribution.js.map +1 -1
  120. package/build/core/instructions/templateTypes.d.ts +25 -3
  121. package/build/core/instructions/templateTypes.d.ts.map +1 -1
  122. package/build/core/instructions/templateTypes.js +45 -0
  123. package/build/core/instructions/templateTypes.js.map +1 -1
  124. package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
  125. package/build/core/loading/mcpLoadingManager.js +5 -3
  126. package/build/core/loading/mcpLoadingManager.js.map +1 -1
  127. package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
  128. package/build/core/protocol/requestHandlerUtils.js +3 -3
  129. package/build/core/protocol/requestHandlerUtils.js.map +1 -1
  130. package/build/core/protocol/toolRequestHandlers.d.ts.map +1 -1
  131. package/build/core/protocol/toolRequestHandlers.js +18 -5
  132. package/build/core/protocol/toolRequestHandlers.js.map +1 -1
  133. package/build/core/server/backendStdioSupervisor.d.ts.map +1 -1
  134. package/build/core/server/backendStdioSupervisor.js +2 -1
  135. package/build/core/server/backendStdioSupervisor.js.map +1 -1
  136. package/build/core/server/clientInstanceFactory.d.ts +2 -1
  137. package/build/core/server/clientInstanceFactory.d.ts.map +1 -1
  138. package/build/core/server/clientInstanceFactory.js +9 -2
  139. package/build/core/server/clientInstanceFactory.js.map +1 -1
  140. package/build/core/server/clientInstancePool.d.ts +1 -0
  141. package/build/core/server/clientInstancePool.d.ts.map +1 -1
  142. package/build/core/server/clientInstancePool.js +92 -55
  143. package/build/core/server/clientInstancePool.js.map +1 -1
  144. package/build/core/server/clientInstancePoolTypes.d.ts +2 -0
  145. package/build/core/server/clientInstancePoolTypes.d.ts.map +1 -1
  146. package/build/core/server/disabledTools.d.ts +2 -0
  147. package/build/core/server/disabledTools.d.ts.map +1 -1
  148. package/build/core/server/disabledTools.js +7 -4
  149. package/build/core/server/disabledTools.js.map +1 -1
  150. package/build/core/server/mcpServerLifecycleManager.d.ts +0 -4
  151. package/build/core/server/mcpServerLifecycleManager.d.ts.map +1 -1
  152. package/build/core/server/mcpServerLifecycleManager.js +18 -40
  153. package/build/core/server/mcpServerLifecycleManager.js.map +1 -1
  154. package/build/core/server/serverManager.d.ts +1 -0
  155. package/build/core/server/serverManager.d.ts.map +1 -1
  156. package/build/core/server/serverManager.js +32 -0
  157. package/build/core/server/serverManager.js.map +1 -1
  158. package/build/core/server/templateIdentity.d.ts +1 -0
  159. package/build/core/server/templateIdentity.d.ts.map +1 -1
  160. package/build/core/server/templateIdentity.js +11 -1
  161. package/build/core/server/templateIdentity.js.map +1 -1
  162. package/build/core/server/templateServerManager.d.ts +13 -1
  163. package/build/core/server/templateServerManager.d.ts.map +1 -1
  164. package/build/core/server/templateServerManager.js +68 -13
  165. package/build/core/server/templateServerManager.js.map +1 -1
  166. package/build/core/server/toolDescriptionOverrides.d.ts +9 -0
  167. package/build/core/server/toolDescriptionOverrides.d.ts.map +1 -0
  168. package/build/core/server/toolDescriptionOverrides.js +44 -0
  169. package/build/core/server/toolDescriptionOverrides.js.map +1 -0
  170. package/build/core/tools/handlers/serverManagementHandler.d.ts +22 -8
  171. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
  172. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +3 -1
  173. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
  174. package/build/core/tools/internal/schemas/discovery.d.ts +1 -1
  175. package/build/core/tools/internal/schemas/index.d.ts +3 -3
  176. package/build/core/tools/internal/schemas/management.d.ts +2 -2
  177. package/build/core/types/transport.d.ts +39 -6
  178. package/build/core/types/transport.d.ts.map +1 -1
  179. package/build/core/types/transport.js +61 -2
  180. package/build/core/types/transport.js.map +1 -1
  181. package/build/domains/admin/adminConfiguredServerService.d.ts +65 -4
  182. package/build/domains/admin/adminConfiguredServerService.d.ts.map +1 -1
  183. package/build/domains/admin/adminConfiguredServerService.js +292 -49
  184. package/build/domains/admin/adminConfiguredServerService.js.map +1 -1
  185. package/build/domains/admin/adminDomain.d.ts +19 -0
  186. package/build/domains/admin/adminDomain.d.ts.map +1 -1
  187. package/build/domains/admin/adminDomain.js +17 -0
  188. package/build/domains/admin/adminDomain.js.map +1 -1
  189. package/build/domains/admin/adminInstructionPreviewRuntime.d.ts +7 -0
  190. package/build/domains/admin/adminInstructionPreviewRuntime.d.ts.map +1 -0
  191. package/build/domains/admin/adminInstructionPreviewRuntime.js +154 -0
  192. package/build/domains/admin/adminInstructionPreviewRuntime.js.map +1 -0
  193. package/build/domains/admin/adminInstructionTemplateService.d.ts +169 -0
  194. package/build/domains/admin/adminInstructionTemplateService.d.ts.map +1 -0
  195. package/build/domains/admin/adminInstructionTemplateService.js +181 -0
  196. package/build/domains/admin/adminInstructionTemplateService.js.map +1 -0
  197. package/build/domains/admin/configuredToolInventory.d.ts +64 -0
  198. package/build/domains/admin/configuredToolInventory.d.ts.map +1 -0
  199. package/build/domains/admin/configuredToolInventory.js +182 -0
  200. package/build/domains/admin/configuredToolInventory.js.map +1 -0
  201. package/build/domains/admin/runtimeConfiguredToolInspectionService.d.ts +21 -0
  202. package/build/domains/admin/runtimeConfiguredToolInspectionService.d.ts.map +1 -0
  203. package/build/domains/admin/runtimeConfiguredToolInspectionService.js +255 -0
  204. package/build/domains/admin/runtimeConfiguredToolInspectionService.js.map +1 -0
  205. package/build/domains/config-change/configChange.d.ts +1 -1
  206. package/build/domains/config-change/configChange.d.ts.map +1 -1
  207. package/build/domains/config-change/configChange.js +153 -13
  208. package/build/domains/config-change/configChange.js.map +1 -1
  209. package/build/domains/config-change/types.d.ts +30 -2
  210. package/build/domains/config-change/types.d.ts.map +1 -1
  211. package/build/domains/instruction-template/instructionTemplateManager.d.ts +58 -0
  212. package/build/domains/instruction-template/instructionTemplateManager.d.ts.map +1 -0
  213. package/build/domains/instruction-template/instructionTemplateManager.js +167 -0
  214. package/build/domains/instruction-template/instructionTemplateManager.js.map +1 -0
  215. package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts +1 -0
  216. package/build/domains/runtime-targets/runtimeIdentityVerification.d.ts.map +1 -1
  217. package/build/domains/runtime-targets/runtimeIdentityVerification.js +6 -5
  218. package/build/domains/runtime-targets/runtimeIdentityVerification.js.map +1 -1
  219. package/build/transport/http/routes/adminRoutes.d.ts +2 -0
  220. package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
  221. package/build/transport/http/routes/adminRoutes.js +345 -9
  222. package/build/transport/http/routes/adminRoutes.js.map +1 -1
  223. package/build/transport/http/routes/apiRoutes.d.ts.map +1 -1
  224. package/build/transport/http/routes/apiRoutes.js +2 -0
  225. package/build/transport/http/routes/apiRoutes.js.map +1 -1
  226. package/build/transport/http/routes/inspectRequestContext.d.ts +2 -0
  227. package/build/transport/http/routes/inspectRequestContext.d.ts.map +1 -1
  228. package/build/transport/http/routes/inspectRequestContext.js +2 -2
  229. package/build/transport/http/routes/inspectRequestContext.js.map +1 -1
  230. package/build/transport/http/routes/inspectRoutes.d.ts +9 -0
  231. package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
  232. package/build/transport/http/routes/inspectRoutes.js +15 -10
  233. package/build/transport/http/routes/inspectRoutes.js.map +1 -1
  234. package/build/transport/http/routes/instructionsRoutes.d.ts +4 -0
  235. package/build/transport/http/routes/instructionsRoutes.d.ts.map +1 -0
  236. package/build/transport/http/routes/instructionsRoutes.js +147 -0
  237. package/build/transport/http/routes/instructionsRoutes.js.map +1 -0
  238. package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
  239. package/build/transport/http/routes/toolRoutes.js +5 -4
  240. package/build/transport/http/routes/toolRoutes.js.map +1 -1
  241. package/build/transport/http/server.d.ts.map +1 -1
  242. package/build/transport/http/server.js +16 -0
  243. package/build/transport/http/server.js.map +1 -1
  244. package/build/transport/transportFactory.d.ts.map +1 -1
  245. package/build/transport/transportFactory.js +34 -12
  246. package/build/transport/transportFactory.js.map +1 -1
  247. package/build/utils/validation/discoveredServer.d.ts +15 -0
  248. package/build/utils/validation/discoveredServer.d.ts.map +1 -0
  249. package/build/utils/validation/discoveredServer.js +2 -0
  250. package/build/utils/validation/discoveredServer.js.map +1 -0
  251. package/build/utils/validation/urlDetection.d.ts +4 -5
  252. package/build/utils/validation/urlDetection.d.ts.map +1 -1
  253. package/build/utils/validation/urlDetection.js +94 -25
  254. package/build/utils/validation/urlDetection.js.map +1 -1
  255. package/package.json +7 -2
  256. package/build/admin/assets/admin-BackendLogsWorkspace-CvJs1npx.js +0 -1
  257. package/build/admin/assets/admin-OAuthServicesWorkspace-BswG57Gm.js +0 -1
  258. package/build/admin/assets/admin-PresetAuthoringWorkspace-BIIRs_EN.js +0 -1
  259. package/build/admin/assets/admin-console-Brz9bnhv.css +0 -1
  260. package/build/admin/assets/admin-console-MT8QZmIC.js +0 -3
  261. package/build/admin/assets/admin-icons-D-JtMXSq.js +0 -1
  262. package/build/admin/assets/admin-mantine-DSFdoMaN.js +0 -53
@@ -0,0 +1,182 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { TokenEstimationService } from '../../application/services/tokenEstimationService.js';
3
+ import { publishCompleteConfiguredToolInspection, readCompleteConfiguredToolTargetSnapshot, readConfiguredToolSnapshot, } from '../../core/capabilities/configuredToolSnapshot.js';
4
+ import { getDisabledTools, getLogicalToolName, isToolDisabled } from '../../core/server/disabledTools.js';
5
+ import { applyEffectiveToolDescription, getToolDescriptionOverrides, } from '../../core/server/toolDescriptionOverrides.js';
6
+ import { ClientStatus, } from '../../core/types/index.js';
7
+ import { isConfiguredServerTargetDisabled } from '../../domains/config-change/configChange.js';
8
+ export async function createConfiguredToolInventory(input) {
9
+ const model = input.model?.trim() || 'gpt-4o';
10
+ const matchingConnections = input.instances
11
+ ? input.instances.map(({ instanceId, connection }) => [instanceId, connection])
12
+ : Array.from(input.connections.entries()).filter(([connectionKey, connection]) => {
13
+ if (connection.status !== ClientStatus.Connected || connection.name !== input.targetName)
14
+ return false;
15
+ return input.source === 'mcpServers' ? connectionKey === input.targetName : connectionKey !== input.targetName;
16
+ });
17
+ const activeInstanceCount = input.inspection?.instances.length ?? matchingConnections.length;
18
+ const toolsByName = new Map();
19
+ const canUseLiveSnapshots = input.inspection?.status !== 'failed' && input.inspection?.status !== 'unavailable';
20
+ const currentInstanceSnapshots = (canUseLiveSnapshots ? matchingConnections : [])
21
+ .map(([instanceId, connection]) => ({ instanceId, connection, tools: readConfiguredToolSnapshot(connection) }))
22
+ .filter((instance) => instance.tools !== undefined);
23
+ const successfulInstances = currentInstanceSnapshots.length;
24
+ for (const { instanceId, tools } of currentInstanceSnapshots) {
25
+ for (const tool of tools) {
26
+ const existing = toolsByName.get(tool.name);
27
+ if (existing)
28
+ existing.instances.add(instanceId);
29
+ else
30
+ toolsByName.set(tool.name, { tool, instances: new Set([instanceId]), live: true });
31
+ }
32
+ }
33
+ // Passive construction promotes a fully observed current set into retained state.
34
+ // Explicit runtime inspections publish separately after validating the instance set.
35
+ let retainedSnapshot = readCompleteConfiguredToolTargetSnapshot(input.source, input.targetName);
36
+ if (!input.inspection &&
37
+ activeInstanceCount > 0 &&
38
+ successfulInstances === activeInstanceCount &&
39
+ !snapshotMatchesInstances(retainedSnapshot, currentInstanceSnapshots)) {
40
+ publishCompleteConfiguredToolInspection({
41
+ source: input.source,
42
+ targetName: input.targetName,
43
+ instances: currentInstanceSnapshots.map(({ instanceId, connection, tools }) => ({
44
+ instanceId,
45
+ connections: [connection],
46
+ tools,
47
+ })),
48
+ });
49
+ retainedSnapshot = readCompleteConfiguredToolTargetSnapshot(input.source, input.targetName);
50
+ }
51
+ for (const instance of retainedSnapshot?.instances ?? []) {
52
+ for (const tool of instance.tools) {
53
+ if (!toolsByName.has(tool.name))
54
+ toolsByName.set(tool.name, { tool, instances: new Set(), live: false });
55
+ }
56
+ }
57
+ const overrides = getToolDescriptionOverrides(input.config);
58
+ const configuredNames = new Set([
59
+ ...getDisabledTools(input.config).map((name) => getLogicalToolName(input.targetName, name)),
60
+ ...Object.keys(overrides).map((name) => getLogicalToolName(input.targetName, name)),
61
+ ]);
62
+ const allNames = new Set([...toolsByName.keys(), ...configuredNames]);
63
+ const tokenEstimator = new TokenEstimationService(model);
64
+ const serverConfigs = { [input.targetName]: input.config };
65
+ let rows;
66
+ try {
67
+ rows = Array.from(allNames)
68
+ .sort((left, right) => left.localeCompare(right))
69
+ .map((name) => {
70
+ const observed = toolsByName.get(name);
71
+ const effectiveTool = observed
72
+ ? applyEffectiveToolDescription(observed.tool, input.config, input.targetName)
73
+ : undefined;
74
+ const approximateTokens = effectiveTool
75
+ ? (tokenEstimator.estimateServerTokens(input.targetName, [effectiveTool], [], [], true).breakdown.tools[0]
76
+ ?.tokens ?? 0)
77
+ : 0;
78
+ const observedInstanceCount = observed?.instances.size ?? 0;
79
+ const descriptionOverride = overrides[name];
80
+ return {
81
+ name,
82
+ ...(observed?.tool.description !== undefined ? { upstreamDescription: observed.tool.description } : {}),
83
+ ...(effectiveTool?.description !== undefined
84
+ ? { effectiveDescription: effectiveTool.description }
85
+ : descriptionOverride !== undefined
86
+ ? { effectiveDescription: descriptionOverride }
87
+ : {}),
88
+ ...(descriptionOverride !== undefined ? { descriptionOverride } : {}),
89
+ descriptionOverridden: descriptionOverride !== undefined,
90
+ enabled: !isToolDisabled(serverConfigs, input.targetName, name),
91
+ observed: observed?.live ?? false,
92
+ stale: observed !== undefined && !observed.live,
93
+ unresolved: observed === undefined,
94
+ observedInstanceCount,
95
+ activeInstanceCount,
96
+ observedInSomeInstances: successfulInstances === activeInstanceCount &&
97
+ observedInstanceCount > 0 &&
98
+ observedInstanceCount < activeInstanceCount,
99
+ approximateTokens,
100
+ };
101
+ });
102
+ }
103
+ finally {
104
+ tokenEstimator.dispose();
105
+ }
106
+ const allObservedTokens = rows.reduce((total, row) => total + row.approximateTokens, 0);
107
+ const enabledTokens = rows.reduce((total, row) => total + (row.enabled ? row.approximateTokens : 0), 0);
108
+ const generationInstances = retainedSnapshot &&
109
+ (input.inspection?.status === 'failed' ||
110
+ input.inspection?.status === 'unavailable' ||
111
+ snapshotMatchesInstances(retainedSnapshot, currentInstanceSnapshots))
112
+ ? (retainedSnapshot?.instances ?? [])
113
+ : currentInstanceSnapshots;
114
+ const generation = createHash('sha256')
115
+ .update(JSON.stringify({
116
+ targetName: input.targetName,
117
+ source: input.source,
118
+ instances: normalizeInstanceLayout(generationInstances),
119
+ }))
120
+ .digest('base64url');
121
+ const live = activeInstanceCount > 0 && successfulInstances === activeInstanceCount;
122
+ const inspection = input.inspection ??
123
+ (live
124
+ ? {
125
+ status: 'complete',
126
+ retryable: false,
127
+ instances: matchingConnections.map(([instanceId]) => ({ instanceId, status: 'complete' })),
128
+ }
129
+ : {
130
+ status: 'unavailable',
131
+ reason: isConfiguredServerTargetDisabled(input.config.disabled) ? 'target_disabled' : 'snapshot_unavailable',
132
+ retryable: !isConfiguredServerTargetDisabled(input.config.disabled),
133
+ instances: matchingConnections.map(([instanceId]) => ({ instanceId, status: 'unavailable' })),
134
+ });
135
+ return {
136
+ targetName: input.targetName,
137
+ source: input.source,
138
+ targetEnabled: !isConfiguredServerTargetDisabled(input.config.disabled),
139
+ freshness: live && inspection.status === 'complete' ? 'live' : 'unavailable',
140
+ model,
141
+ generation,
142
+ activeInstanceCount,
143
+ inspection,
144
+ rows,
145
+ counts: {
146
+ observed: rows.filter((row) => row.observed).length,
147
+ enabled: rows.filter((row) => row.enabled).length,
148
+ disabled: rows.filter((row) => !row.enabled).length,
149
+ unresolved: rows.filter((row) => row.unresolved).length,
150
+ },
151
+ approximateTokens: {
152
+ enabled: enabledTokens,
153
+ allObserved: allObservedTokens,
154
+ savings: allObservedTokens - enabledTokens,
155
+ },
156
+ };
157
+ }
158
+ function snapshotMatchesInstances(snapshot, instances) {
159
+ if (!snapshot)
160
+ return false;
161
+ return (JSON.stringify(normalizeInstanceLayout(snapshot.instances)) === JSON.stringify(normalizeInstanceLayout(instances)));
162
+ }
163
+ function normalizeInstanceLayout(instances) {
164
+ return instances
165
+ .map(({ instanceId, tools }) => ({
166
+ instanceId,
167
+ tools: tools
168
+ .map((tool) => normalizeGenerationValue(tool))
169
+ .sort((left, right) => String(left.name).localeCompare(String(right.name))),
170
+ }))
171
+ .sort((left, right) => left.instanceId.localeCompare(right.instanceId));
172
+ }
173
+ function normalizeGenerationValue(value) {
174
+ if (Array.isArray(value))
175
+ return value.map(normalizeGenerationValue);
176
+ if (!value || typeof value !== 'object')
177
+ return value;
178
+ return Object.fromEntries(Object.entries(value)
179
+ .sort(([left], [right]) => left.localeCompare(right))
180
+ .map(([key, nested]) => [key, normalizeGenerationValue(nested)]));
181
+ }
182
+ //# sourceMappingURL=configuredToolInventory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configuredToolInventory.js","sourceRoot":"","sources":["../../../src/domains/admin/configuredToolInventory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { ServerManager } from '../../core/server/serverManager.js';
2
+ import { type MCPServerParams } from '../../core/types/index.js';
3
+ import { type ConfiguredToolInventory, type ConfiguredToolTargetSource } from './configuredToolInventory.js';
4
+ export interface RefreshConfiguredToolInventoryInput {
5
+ targetName: string;
6
+ source: ConfiguredToolTargetSource;
7
+ config: MCPServerParams;
8
+ model?: string;
9
+ }
10
+ export declare class RuntimeConfiguredToolInspectionService {
11
+ private readonly serverManager;
12
+ private readonly inFlight;
13
+ constructor(serverManager: ServerManager);
14
+ read(input: RefreshConfiguredToolInventoryInput): Promise<ConfiguredToolInventory>;
15
+ refresh(input: RefreshConfiguredToolInventoryInput): Promise<ConfiguredToolInventory>;
16
+ private inspect;
17
+ private inspectCandidate;
18
+ private resolveCandidates;
19
+ private terminal;
20
+ }
21
+ //# sourceMappingURL=runtimeConfiguredToolInspectionService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeConfiguredToolInspectionService.d.ts","sourceRoot":"","sources":["../../../src/domains/admin/runtimeConfiguredToolInspectionService.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAgB,KAAK,eAAe,EAA2B,MAAM,0BAA0B,CAAC;AAIvG,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAEhC,MAAM,8BAA8B,CAAC;AAqBtC,MAAM,WAAW,mCAAmC;IAClD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,0BAA0B,CAAC;IACnC,MAAM,EAAE,eAAe,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,sCAAsC;IAGrC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;gBAE5C,aAAa,EAAE,aAAa;IAEnD,IAAI,CAAC,KAAK,EAAE,mCAAmC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAgDlF,OAAO,CAAC,KAAK,EAAE,mCAAmC,GAAG,OAAO,CAAC,uBAAuB,CAAC;YAsB7E,OAAO;YAqGP,gBAAgB;IAsB9B,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,QAAQ;CAYjB"}
@@ -0,0 +1,255 @@
1
+ import { DEFAULT_REQUEST_TIMEOUT_MSEC } from '@modelcontextprotocol/sdk/shared/protocol.js';
2
+ import { collectConfiguredToolPages, publishCompleteConfiguredToolInspection, readConfiguredToolSnapshot, } from '../../core/capabilities/configuredToolSnapshot.js';
3
+ import { ClientStatus } from '../../core/types/index.js';
4
+ import { isConfiguredServerTargetDisabled } from '../../domains/config-change/configChange.js';
5
+ import { getRequestTimeout } from '../../utils/core/timeoutUtils.js';
6
+ import { createConfiguredToolInventory, } from './configuredToolInventory.js';
7
+ const INSPECTION_PAGE_TIMEOUT_BUDGET = 4;
8
+ export class RuntimeConfiguredToolInspectionService {
9
+ serverManager;
10
+ inFlight = new Map();
11
+ constructor(serverManager) {
12
+ this.serverManager = serverManager;
13
+ }
14
+ async read(input) {
15
+ const resolution = this.resolveCandidates(input.source, input.targetName);
16
+ let inspection;
17
+ if (isConfiguredServerTargetDisabled(input.config.disabled)) {
18
+ inspection = { status: 'unavailable', reason: 'target_disabled', retryable: false, instances: [] };
19
+ }
20
+ else if (resolution.activeInstanceIds.length === 0) {
21
+ inspection = {
22
+ status: 'unavailable',
23
+ reason: input.source === 'mcpTemplates' ? 'no_active_instances' : 'target_disconnected',
24
+ retryable: true,
25
+ instances: [],
26
+ };
27
+ }
28
+ else if (resolution.unavailable.length > 0) {
29
+ inspection = {
30
+ status: 'unavailable',
31
+ reason: 'active_instance_unavailable',
32
+ retryable: true,
33
+ instances: [
34
+ ...resolution.candidates.map(({ instanceId }) => ({ instanceId, status: 'unavailable' })),
35
+ ...resolution.unavailable,
36
+ ],
37
+ };
38
+ }
39
+ else {
40
+ const instanceFacts = resolution.candidates.map(({ instanceId, connection }) => ({
41
+ instanceId,
42
+ status: readConfiguredToolSnapshot(connection) === undefined ? 'unavailable' : 'complete',
43
+ }));
44
+ const complete = instanceFacts.length === resolution.activeInstanceIds.length &&
45
+ instanceFacts.every((fact) => fact.status === 'complete');
46
+ inspection = complete
47
+ ? { status: 'complete', retryable: false, instances: instanceFacts }
48
+ : {
49
+ status: 'unavailable',
50
+ reason: 'snapshot_unavailable',
51
+ retryable: true,
52
+ instances: instanceFacts,
53
+ };
54
+ }
55
+ return createConfiguredToolInventory({
56
+ ...input,
57
+ connections: this.serverManager.getClients(),
58
+ instances: resolution.candidates.map(({ instanceId, connection }) => ({ instanceId, connection })),
59
+ inspection,
60
+ });
61
+ }
62
+ async refresh(input) {
63
+ const key = `${input.source}\0${input.targetName}`;
64
+ let inspection = this.inFlight.get(key);
65
+ if (!inspection) {
66
+ inspection = this.inspect(input);
67
+ this.inFlight.set(key, inspection);
68
+ void inspection
69
+ .finally(() => {
70
+ if (this.inFlight.get(key) === inspection)
71
+ this.inFlight.delete(key);
72
+ })
73
+ .catch(() => undefined);
74
+ }
75
+ const result = await inspection;
76
+ return createConfiguredToolInventory({
77
+ ...input,
78
+ connections: this.serverManager.getClients(),
79
+ instances: result.instances,
80
+ inspection: result.inspection,
81
+ });
82
+ }
83
+ async inspect(input) {
84
+ if (isConfiguredServerTargetDisabled(input.config.disabled)) {
85
+ return this.terminal('unavailable', 'target_disabled', false, []);
86
+ }
87
+ const initial = this.resolveCandidates(input.source, input.targetName);
88
+ if (initial.activeInstanceIds.length === 0) {
89
+ return this.terminal('unavailable', input.source === 'mcpTemplates' ? 'no_active_instances' : 'target_disconnected', true, []);
90
+ }
91
+ if (initial.unavailable.length > 0 || initial.candidates.length !== initial.activeInstanceIds.length) {
92
+ return {
93
+ inspection: {
94
+ status: 'failed',
95
+ reason: 'active_instance_unavailable',
96
+ retryable: true,
97
+ instances: [
98
+ ...initial.candidates.map(({ instanceId }) => ({ instanceId, status: 'unavailable' })),
99
+ ...initial.unavailable,
100
+ ],
101
+ },
102
+ instances: initial.candidates.map(({ instanceId, connection }) => ({ instanceId, connection })),
103
+ };
104
+ }
105
+ const settled = await Promise.allSettled(initial.candidates.map(async (candidate) => ({
106
+ candidate,
107
+ tools: await this.inspectCandidate(candidate),
108
+ })));
109
+ const complete = [];
110
+ const failures = [];
111
+ settled.forEach((result, index) => {
112
+ if (result.status === 'fulfilled') {
113
+ complete.push(result.value);
114
+ return;
115
+ }
116
+ failures.push({
117
+ instanceId: initial.candidates[index].instanceId,
118
+ status: 'failed',
119
+ error: errorMessage(result.reason),
120
+ });
121
+ });
122
+ if (failures.length > 0) {
123
+ return {
124
+ inspection: {
125
+ status: 'failed',
126
+ reason: 'inspection_failed',
127
+ retryable: true,
128
+ instances: [
129
+ ...complete.map(({ candidate }) => ({ instanceId: candidate.instanceId, status: 'complete' })),
130
+ ...failures,
131
+ ],
132
+ },
133
+ instances: initial.candidates.map(({ instanceId, connection }) => ({ instanceId, connection })),
134
+ };
135
+ }
136
+ const current = this.resolveCandidates(input.source, input.targetName);
137
+ if (!sameCandidates(initial, current)) {
138
+ return this.terminal('failed', 'active_instances_changed', true, current.activeInstanceIds.map((instanceId) => ({
139
+ instanceId,
140
+ status: 'failed',
141
+ error: 'Instance set changed',
142
+ })), current.candidates);
143
+ }
144
+ publishCompleteConfiguredToolInspection({
145
+ source: input.source,
146
+ targetName: input.targetName,
147
+ instances: complete.map(({ candidate, tools }) => ({
148
+ instanceId: candidate.instanceId,
149
+ connections: candidate.connections,
150
+ tools,
151
+ })),
152
+ });
153
+ return {
154
+ inspection: {
155
+ status: 'complete',
156
+ retryable: false,
157
+ instances: complete.map(({ candidate }) => ({ instanceId: candidate.instanceId, status: 'complete' })),
158
+ },
159
+ instances: complete.map(({ candidate }) => ({
160
+ instanceId: candidate.instanceId,
161
+ connection: candidate.connection,
162
+ })),
163
+ };
164
+ }
165
+ async inspectCandidate(candidate) {
166
+ const requestTimeout = getRequestTimeout(candidate.connection.transport);
167
+ const totalTimeout = (requestTimeout ?? DEFAULT_REQUEST_TIMEOUT_MSEC) * INSPECTION_PAGE_TIMEOUT_BUDGET;
168
+ const controller = new AbortController();
169
+ const deadline = setTimeout(() => {
170
+ controller.abort(new Error(`Tool inspection exceeded the ${totalTimeout}ms deadline`));
171
+ }, totalTimeout);
172
+ try {
173
+ return (await collectConfiguredToolPages((cursor) => candidate.connection.client.listTools(cursor === undefined ? undefined : { cursor }, {
174
+ timeout: requestTimeout,
175
+ signal: controller.signal,
176
+ }))).tools;
177
+ }
178
+ finally {
179
+ clearTimeout(deadline);
180
+ }
181
+ }
182
+ resolveCandidates(source, targetName) {
183
+ const connections = this.serverManager.getClients();
184
+ if (source === 'mcpServers') {
185
+ const connection = connections.get(targetName);
186
+ if (!connection || connection.name !== targetName || connection.status !== ClientStatus.Connected) {
187
+ return { candidates: [], activeInstanceIds: [], unavailable: [] };
188
+ }
189
+ return {
190
+ candidates: [{ instanceId: 'static', connection, connections: [connection] }],
191
+ activeInstanceIds: ['static'],
192
+ unavailable: [],
193
+ };
194
+ }
195
+ const instances = this.serverManager
196
+ .getTemplateServerManager()
197
+ .getTemplateInstances(targetName)
198
+ .filter((instance) => instance.referenceCount > 0);
199
+ const candidates = [];
200
+ const unavailable = [];
201
+ for (const instance of instances) {
202
+ const instanceConnections = Array.from(instance.outboundKeys)
203
+ .map((key) => connections.get(key))
204
+ .filter((connection) => connection !== undefined &&
205
+ connection.name === targetName &&
206
+ connection.client === instance.client &&
207
+ connection.status === ClientStatus.Connected);
208
+ const uniqueConnections = Array.from(new Set(instanceConnections));
209
+ if (instance.status !== 'active' || uniqueConnections.length === 0) {
210
+ unavailable.push({
211
+ instanceId: instance.id,
212
+ status: 'unavailable',
213
+ error: instance.status !== 'active' ? `Instance is ${instance.status}` : 'Connected outbound instance not found',
214
+ });
215
+ continue;
216
+ }
217
+ candidates.push({
218
+ instanceId: instance.id,
219
+ connection: uniqueConnections[0],
220
+ connections: uniqueConnections,
221
+ });
222
+ }
223
+ return {
224
+ candidates,
225
+ activeInstanceIds: instances.map((instance) => instance.id).sort(),
226
+ unavailable,
227
+ };
228
+ }
229
+ terminal(status, reason, retryable, instances, candidates = []) {
230
+ return {
231
+ inspection: { status, reason, retryable, instances },
232
+ instances: candidates.map(({ instanceId, connection }) => ({ instanceId, connection })),
233
+ };
234
+ }
235
+ }
236
+ function sameCandidates(left, right) {
237
+ if (left.unavailable.length > 0 || right.unavailable.length > 0)
238
+ return false;
239
+ if (left.activeInstanceIds.join('\0') !== right.activeInstanceIds.join('\0'))
240
+ return false;
241
+ if (left.candidates.length !== right.candidates.length)
242
+ return false;
243
+ const rightById = new Map(right.candidates.map((candidate) => [candidate.instanceId, candidate]));
244
+ return left.candidates.every((candidate) => {
245
+ const other = rightById.get(candidate.instanceId);
246
+ return (other !== undefined &&
247
+ other.connection === candidate.connection &&
248
+ other.connections.length === candidate.connections.length &&
249
+ other.connections.every((connection, connectionIndex) => connection === candidate.connections[connectionIndex]));
250
+ });
251
+ }
252
+ function errorMessage(error) {
253
+ return error instanceof Error ? error.message : String(error);
254
+ }
255
+ //# sourceMappingURL=runtimeConfiguredToolInspectionService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtimeConfiguredToolInspectionService.js","sourceRoot":"","sources":["../../../src/domains/admin/runtimeConfiguredToolInspectionService.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { MCPServerParams } from '../../core/types/index.js';
2
2
  import type { ConfigChangePorts, ConfigChangeService } from './types.js';
3
- export type { ConfigBackupPolicy, ConfigBackupResult, ConfigChangeOperation, ConfigChangePorts, ConfigChangeReason, ConfigChangeResult, ConfigChangeService, ConfigChangeStatus, ConfigReloadResult, ConfigReloadStatus, ConfigRetentionCleanupResult, ConfiguredServerTargetRef, ConfiguredServerTargetSource, CreateStaticConfiguredServerTargetInput, EditConfiguredServerTargetInput, RemoveConfiguredServerTargetInput, SetConfiguredServerTargetEnabledStateInput, SetStaticConfiguredServerTargetInput, } from './types.js';
3
+ export type { ConfigBackupPolicy, ConfigBackupResult, ConfigChangeOperation, ConfigChangePorts, ConfigChangeReason, ConfigChangeResult, ConfigChangeService, ConfigChangeStatus, ConfigReloadResult, ConfigReloadStatus, ConfigRetentionCleanupResult, ConfiguredServerTargetRef, ConfiguredServerTargetSource, InstructionOverrideMutation, ChangeConfiguredServerInstructionOverrideInput, CreateStaticConfiguredServerTargetInput, EditConfiguredServerTargetInput, RemoveConfiguredServerTargetInput, SetConfiguredServerTargetEnabledStateInput, SetInstructionTemplateConfigurationInput, SetStaticConfiguredServerTargetInput, } from './types.js';
4
4
  export declare function createConfigChangeService(ports?: ConfigChangePorts): ConfigChangeService;
5
5
  export declare function fingerprintConfiguredServerTarget(serverConfig: MCPServerParams): string;
6
6
  export declare function fingerprintConfiguredServerDefaults(serverDefaults: unknown): string;
@@ -1 +1 @@
1
- {"version":3,"file":"configChange.d.ts","sourceRoot":"","sources":["../../../src/domains/config-change/configChange.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAiBhE,OAAO,KAAK,EAGV,iBAAiB,EAGjB,mBAAmB,EAUpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,4BAA4B,EAC5B,uCAAuC,EACvC,+BAA+B,EAC/B,iCAAiC,EACjC,0CAA0C,EAC1C,oCAAoC,GACrC,MAAM,YAAY,CAAC;AAEpB,wBAAgB,yBAAyB,CAAC,KAAK,GAAE,iBAAsB,GAAG,mBAAmB,CAE5F;AAID,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,eAAe,GAAG,MAAM,CAEvF;AAED,wBAAgB,mCAAmC,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,CAEnF;AAED,wBAAgB,yCAAyC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAQjF;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,OAAO,CAI5F"}
1
+ {"version":3,"file":"configChange.d.ts","sourceRoot":"","sources":["../../../src/domains/config-change/configChange.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAkBhE,OAAO,KAAK,EAIV,iBAAiB,EAGjB,mBAAmB,EAYpB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,4BAA4B,EAC5B,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,EAC3B,8CAA8C,EAC9C,uCAAuC,EACvC,+BAA+B,EAC/B,iCAAiC,EACjC,0CAA0C,EAC1C,wCAAwC,EACxC,oCAAoC,GACrC,MAAM,YAAY,CAAC;AAEpB,wBAAgB,yBAAyB,CAAC,KAAK,GAAE,iBAAsB,GAAG,mBAAmB,CAE5F;AAID,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,eAAe,GAAG,MAAM,CAEvF;AAED,wBAAgB,mCAAmC,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,CAEnF;AAED,wBAAgB,yCAAyC,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAQjF;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5E;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,OAAO,CAI5F"}