@1mcp/agent 0.23.1 → 0.24.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 (128) hide show
  1. package/build/commands/mcp/tokens.d.ts.map +1 -1
  2. package/build/commands/mcp/tokens.js +4 -2
  3. package/build/commands/mcp/tokens.js.map +1 -1
  4. package/build/commands/mcp/utils/configUtils.d.ts.map +1 -1
  5. package/build/commands/mcp/utils/configUtils.js +12 -1
  6. package/build/commands/mcp/utils/configUtils.js.map +1 -1
  7. package/build/commands/proxy/index.d.ts +20 -0
  8. package/build/commands/proxy/index.d.ts.map +1 -0
  9. package/build/commands/proxy/index.js +87 -0
  10. package/build/commands/proxy/index.js.map +1 -0
  11. package/build/commands/proxy/proxy.d.ts +6 -0
  12. package/build/commands/proxy/proxy.d.ts.map +1 -0
  13. package/build/commands/proxy/proxy.js +84 -0
  14. package/build/commands/proxy/proxy.js.map +1 -0
  15. package/build/commands/serve/serve.d.ts.map +1 -1
  16. package/build/commands/serve/serve.js +42 -4
  17. package/build/commands/serve/serve.js.map +1 -1
  18. package/build/config/mcpConfigManager.d.ts.map +1 -1
  19. package/build/config/mcpConfigManager.js +15 -6
  20. package/build/config/mcpConfigManager.js.map +1 -1
  21. package/build/constants.d.ts +1 -1
  22. package/build/constants.js +1 -1
  23. package/build/core/capabilities/asyncLoadingOrchestrator.d.ts.map +1 -1
  24. package/build/core/capabilities/asyncLoadingOrchestrator.js +11 -8
  25. package/build/core/capabilities/asyncLoadingOrchestrator.js.map +1 -1
  26. package/build/core/capabilities/capabilityAggregator.js +8 -8
  27. package/build/core/capabilities/capabilityAggregator.js.map +1 -1
  28. package/build/{capabilities → core/capabilities}/capabilityManager.d.ts +1 -1
  29. package/build/core/capabilities/capabilityManager.d.ts.map +1 -0
  30. package/build/{capabilities → core/capabilities}/capabilityManager.js +3 -3
  31. package/build/core/capabilities/capabilityManager.js.map +1 -0
  32. package/build/core/client/clientManager.d.ts +17 -0
  33. package/build/core/client/clientManager.d.ts.map +1 -1
  34. package/build/core/client/clientManager.js +126 -6
  35. package/build/core/client/clientManager.js.map +1 -1
  36. package/build/core/filtering/filteringService.d.ts.map +1 -1
  37. package/build/core/filtering/filteringService.js +89 -55
  38. package/build/core/filtering/filteringService.js.map +1 -1
  39. package/build/core/instructions/instructionAggregator.d.ts.map +1 -1
  40. package/build/core/instructions/instructionAggregator.js +54 -26
  41. package/build/core/instructions/instructionAggregator.js.map +1 -1
  42. package/build/core/instructions/templateHelpers.d.ts +7 -0
  43. package/build/core/instructions/templateHelpers.d.ts.map +1 -0
  44. package/build/core/instructions/templateHelpers.js +116 -0
  45. package/build/core/instructions/templateHelpers.js.map +1 -0
  46. package/build/core/instructions/templateTypes.d.ts +14 -4
  47. package/build/core/instructions/templateTypes.d.ts.map +1 -1
  48. package/build/core/instructions/templateTypes.js +10 -2
  49. package/build/core/instructions/templateTypes.js.map +1 -1
  50. package/build/core/loading/loadingStateTracker.d.ts +16 -8
  51. package/build/core/loading/loadingStateTracker.d.ts.map +1 -1
  52. package/build/core/loading/loadingStateTracker.js +22 -10
  53. package/build/core/loading/loadingStateTracker.js.map +1 -1
  54. package/build/core/loading/mcpLoadingManager.d.ts +19 -9
  55. package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
  56. package/build/core/loading/mcpLoadingManager.js +29 -15
  57. package/build/core/loading/mcpLoadingManager.js.map +1 -1
  58. package/build/core/notifications/notificationManager.d.ts.map +1 -1
  59. package/build/core/notifications/notificationManager.js +9 -6
  60. package/build/core/notifications/notificationManager.js.map +1 -1
  61. package/build/core/server/serverManager.js +6 -6
  62. package/build/core/server/serverManager.js.map +1 -1
  63. package/build/core/types/transport.d.ts +32 -0
  64. package/build/core/types/transport.d.ts.map +1 -1
  65. package/build/core/types/transport.js +3 -1
  66. package/build/core/types/transport.js.map +1 -1
  67. package/build/handlers/requestHandlers.js +8 -8
  68. package/build/handlers/requestHandlers.js.map +1 -1
  69. package/build/index.js +16 -2
  70. package/build/index.js.map +1 -1
  71. package/build/logger/logger.d.ts +39 -0
  72. package/build/logger/logger.d.ts.map +1 -1
  73. package/build/logger/logger.js +133 -0
  74. package/build/logger/logger.js.map +1 -1
  75. package/build/server.d.ts.map +1 -1
  76. package/build/server.js +5 -2
  77. package/build/server.js.map +1 -1
  78. package/build/services/configReloadService.js +1 -1
  79. package/build/services/configReloadService.js.map +1 -1
  80. package/build/transport/http/middlewares/mcpAvailabilityMiddleware.d.ts.map +1 -1
  81. package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js +10 -4
  82. package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js.map +1 -1
  83. package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -1
  84. package/build/transport/http/middlewares/tagsExtractor.js +9 -6
  85. package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
  86. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  87. package/build/transport/http/routes/oauthRoutes.js +5 -21
  88. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  89. package/build/transport/restartableStdioTransport.d.ts.map +1 -1
  90. package/build/transport/restartableStdioTransport.js +7 -4
  91. package/build/transport/restartableStdioTransport.js.map +1 -1
  92. package/build/transport/stdioProxyTransport.d.ts +39 -0
  93. package/build/transport/stdioProxyTransport.d.ts.map +1 -0
  94. package/build/transport/stdioProxyTransport.js +138 -0
  95. package/build/transport/stdioProxyTransport.js.map +1 -0
  96. package/build/transport/transportFactory.d.ts.map +1 -1
  97. package/build/transport/transportFactory.js +29 -13
  98. package/build/transport/transportFactory.js.map +1 -1
  99. package/build/utils/appDiscovery.js +1 -1
  100. package/build/utils/appDiscovery.js.map +1 -1
  101. package/build/utils/clientFiltering.d.ts.map +1 -1
  102. package/build/utils/clientFiltering.js +64 -36
  103. package/build/utils/clientFiltering.js.map +1 -1
  104. package/build/utils/envProcessor.d.ts.map +1 -1
  105. package/build/utils/envProcessor.js +9 -7
  106. package/build/utils/envProcessor.js.map +1 -1
  107. package/build/utils/pagination.d.ts.map +1 -1
  108. package/build/utils/pagination.js +6 -4
  109. package/build/utils/pagination.js.map +1 -1
  110. package/build/utils/pidFileManager.d.ts +45 -0
  111. package/build/utils/pidFileManager.d.ts.map +1 -0
  112. package/build/utils/pidFileManager.js +120 -0
  113. package/build/utils/pidFileManager.js.map +1 -0
  114. package/build/utils/projectConfigLoader.d.ts +25 -0
  115. package/build/utils/projectConfigLoader.d.ts.map +1 -0
  116. package/build/utils/projectConfigLoader.js +74 -0
  117. package/build/utils/projectConfigLoader.js.map +1 -0
  118. package/build/utils/projectConfigTypes.d.ts +28 -0
  119. package/build/utils/projectConfigTypes.d.ts.map +1 -0
  120. package/build/utils/projectConfigTypes.js +22 -0
  121. package/build/utils/projectConfigTypes.js.map +1 -0
  122. package/build/utils/urlDetection.d.ts +14 -2
  123. package/build/utils/urlDetection.d.ts.map +1 -1
  124. package/build/utils/urlDetection.js +51 -4
  125. package/build/utils/urlDetection.js.map +1 -1
  126. package/package.json +2 -1
  127. package/build/capabilities/capabilityManager.d.ts.map +0 -1
  128. package/build/capabilities/capabilityManager.js.map +0 -1
@@ -2,7 +2,7 @@ import { ClientStatus } from '../types/client.js';
2
2
  import { TagQueryParser } from '../../utils/tagQueryParser.js';
3
3
  import { TagQueryEvaluator } from '../../utils/tagQueryEvaluator.js';
4
4
  import { normalizeTag } from '../../utils/sanitization.js';
5
- import logger from '../../logger/logger.js';
5
+ import logger, { debugIf } from '../../logger/logger.js';
6
6
  /**
7
7
  * Unified filtering service that consolidates all filtering logic across the application.
8
8
  * This service provides a single source of truth for filtering MCP server connections
@@ -18,13 +18,16 @@ export class FilteringService {
18
18
  * @returns Filtered map of connections
19
19
  */
20
20
  static getFilteredConnections(connections, config) {
21
- logger.debug('FilteringService: Filtering connections', {
22
- totalConnections: connections.size,
23
- filterMode: config.tagFilterMode,
24
- tags: config.tags,
25
- hasTagExpression: !!config.tagExpression,
26
- hasTagQuery: !!config.tagQuery,
27
- });
21
+ debugIf(() => ({
22
+ message: 'FilteringService: Filtering connections',
23
+ meta: {
24
+ totalConnections: connections.size,
25
+ filterMode: config.tagFilterMode,
26
+ tags: config.tags,
27
+ hasTagExpression: !!config.tagExpression,
28
+ hasTagQuery: !!config.tagQuery,
29
+ },
30
+ }));
28
31
  // Only include connected clients in filtering
29
32
  const connectedClients = new Map();
30
33
  for (const [name, connection] of connections) {
@@ -32,20 +35,26 @@ export class FilteringService {
32
35
  connectedClients.set(name, connection);
33
36
  }
34
37
  }
35
- logger.debug('FilteringService: Connected clients', {
36
- connectedCount: connectedClients.size,
37
- connectedNames: Array.from(connectedClients.keys()),
38
- });
38
+ debugIf(() => ({
39
+ message: 'FilteringService: Connected clients',
40
+ meta: {
41
+ connectedCount: connectedClients.size,
42
+ connectedNames: Array.from(connectedClients.keys()),
43
+ },
44
+ }));
39
45
  if (!config.tagFilterMode || config.tagFilterMode === 'none') {
40
- logger.debug('FilteringService: No filtering specified, returning all connected clients');
46
+ debugIf('FilteringService: No filtering specified, returning all connected clients');
41
47
  return connectedClients;
42
48
  }
43
49
  const filter = this.createFilter(config);
44
50
  const filteredConnections = filter(connectedClients);
45
- logger.debug('FilteringService: Filtering completed', {
46
- filteredCount: filteredConnections.size,
47
- filteredNames: Array.from(filteredConnections.keys()),
48
- });
51
+ debugIf(() => ({
52
+ message: 'FilteringService: Filtering completed',
53
+ meta: {
54
+ filteredCount: filteredConnections.size,
55
+ filteredNames: Array.from(filteredConnections.keys()),
56
+ },
57
+ }));
49
58
  return filteredConnections;
50
59
  }
51
60
  /**
@@ -78,9 +87,9 @@ export class FilteringService {
78
87
  */
79
88
  static byTags(tags) {
80
89
  return (connections) => {
81
- logger.debug(`FilteringService.byTags: Filtering for tags: ${tags ? tags.join(', ') : 'none'}`);
90
+ debugIf(() => ({ message: `FilteringService.byTags: Filtering for tags: ${tags ? tags.join(', ') : 'none'}` }));
82
91
  if (!tags || tags.length === 0) {
83
- logger.debug('FilteringService.byTags: No tags specified, returning all connections');
92
+ debugIf('FilteringService.byTags: No tags specified, returning all connections');
84
93
  return connections;
85
94
  }
86
95
  // Normalize the filter tags for consistent comparison
@@ -90,13 +99,16 @@ export class FilteringService {
90
99
  // Normalize client tags for comparison
91
100
  const normalizedClientTags = clientTags.map((tag) => normalizeTag(tag));
92
101
  const hasMatchingTags = normalizedClientTags.some((clientTag) => normalizedFilterTags.includes(clientTag));
93
- logger.debug(`FilteringService.byTags: Connection ${name}`, {
94
- clientTags,
95
- normalizedClientTags,
96
- requiredTags: tags,
97
- normalizedRequiredTags: normalizedFilterTags,
98
- hasMatchingTags,
99
- });
102
+ debugIf(() => ({
103
+ message: `FilteringService.byTags: Connection ${name}`,
104
+ meta: {
105
+ clientTags,
106
+ normalizedClientTags,
107
+ requiredTags: tags,
108
+ normalizedRequiredTags: normalizedFilterTags,
109
+ hasMatchingTags,
110
+ },
111
+ }));
100
112
  if (hasMatchingTags) {
101
113
  filtered.set(name, connection);
102
114
  }
@@ -112,15 +124,20 @@ export class FilteringService {
112
124
  */
113
125
  static byTagExpression(expression) {
114
126
  return (connections) => {
115
- logger.debug(`FilteringService.byTagExpression: Filtering with expression: ${TagQueryParser.expressionToString(expression)}`);
127
+ debugIf(() => ({
128
+ message: `FilteringService.byTagExpression: Filtering with expression: ${TagQueryParser.expressionToString(expression)}`,
129
+ }));
116
130
  return Array.from(connections.entries()).reduce((filtered, [name, connection]) => {
117
131
  const clientTags = connection.transport.tags || [];
118
132
  const matches = TagQueryParser.evaluate(expression, clientTags);
119
- logger.debug(`FilteringService.byTagExpression: Connection ${name}`, {
120
- clientTags,
121
- expression: TagQueryParser.expressionToString(expression),
122
- matches,
123
- });
133
+ debugIf(() => ({
134
+ message: `FilteringService.byTagExpression: Connection ${name}`,
135
+ meta: {
136
+ clientTags,
137
+ expression: TagQueryParser.expressionToString(expression),
138
+ matches,
139
+ },
140
+ }));
124
141
  if (matches) {
125
142
  filtered.set(name, connection);
126
143
  }
@@ -136,7 +153,7 @@ export class FilteringService {
136
153
  */
137
154
  static byTagQuery(query) {
138
155
  return (connections) => {
139
- logger.debug('FilteringService.byTagQuery: Filtering with tag query', { query });
156
+ debugIf(() => ({ message: 'FilteringService.byTagQuery: Filtering with tag query', meta: { query } }));
140
157
  const filtered = new Map();
141
158
  for (const [name, connection] of connections.entries()) {
142
159
  if (connection.status !== ClientStatus.Connected) {
@@ -146,10 +163,13 @@ export class FilteringService {
146
163
  try {
147
164
  if (TagQueryEvaluator.evaluate(query, clientTags)) {
148
165
  filtered.set(name, connection);
149
- logger.debug(`FilteringService.byTagQuery: Connection ${name} matches query`, {
150
- clientTags,
151
- query,
152
- });
166
+ debugIf(() => ({
167
+ message: `FilteringService.byTagQuery: Connection ${name} matches query`,
168
+ meta: {
169
+ clientTags,
170
+ query,
171
+ },
172
+ }));
153
173
  }
154
174
  }
155
175
  catch (error) {
@@ -172,16 +192,21 @@ export class FilteringService {
172
192
  static byCapabilities(requiredCapabilities) {
173
193
  return (connections) => {
174
194
  const requiredCaps = Object.keys(requiredCapabilities);
175
- logger.debug(`FilteringService.byCapabilities: Filtering for capabilities: ${requiredCaps.join(', ')}`);
195
+ debugIf(() => ({
196
+ message: `FilteringService.byCapabilities: Filtering for capabilities: ${requiredCaps.join(', ')}`,
197
+ }));
176
198
  return Array.from(connections.entries()).reduce((filtered, [name, connection]) => {
177
199
  const clientCaps = connection.capabilities ? Object.keys(connection.capabilities) : [];
178
200
  const hasCapabilities = requiredCaps.every((cap) => connection.capabilities && cap in connection.capabilities);
179
- logger.debug(`FilteringService.byCapabilities: Connection ${name}`, {
180
- clientCapabilities: clientCaps,
181
- requiredCapabilities: requiredCaps,
182
- hasCapabilities,
183
- clientCapabilitiesObject: connection.capabilities,
184
- });
201
+ debugIf(() => ({
202
+ message: `FilteringService.byCapabilities: Connection ${name}`,
203
+ meta: {
204
+ clientCapabilities: clientCaps,
205
+ requiredCapabilities: requiredCaps,
206
+ hasCapabilities,
207
+ clientCapabilitiesObject: connection.capabilities,
208
+ },
209
+ }));
185
210
  if (hasCapabilities) {
186
211
  filtered.set(name, connection);
187
212
  }
@@ -198,23 +223,32 @@ export class FilteringService {
198
223
  */
199
224
  static combineFilters(...filters) {
200
225
  return (connections) => {
201
- logger.debug(`FilteringService.combineFilters: Starting with ${connections.size} connections`, {
202
- connectionNames: Array.from(connections.keys()),
203
- filterCount: filters.length,
204
- });
226
+ debugIf(() => ({
227
+ message: `FilteringService.combineFilters: Starting with ${connections.size} connections`,
228
+ meta: {
229
+ connectionNames: Array.from(connections.keys()),
230
+ filterCount: filters.length,
231
+ },
232
+ }));
205
233
  const result = filters.reduce((filteredConnections, filter, index) => {
206
234
  const beforeCount = filteredConnections.size;
207
235
  const afterFiltering = filter(filteredConnections);
208
236
  const afterCount = afterFiltering.size;
209
- logger.debug(`FilteringService.combineFilters: Filter ${index} reduced connections from ${beforeCount} to ${afterCount}`, {
210
- beforeNames: Array.from(filteredConnections.keys()),
211
- afterNames: Array.from(afterFiltering.keys()),
212
- });
237
+ debugIf(() => ({
238
+ message: `FilteringService.combineFilters: Filter ${index} reduced connections from ${beforeCount} to ${afterCount}`,
239
+ meta: {
240
+ beforeNames: Array.from(filteredConnections.keys()),
241
+ afterNames: Array.from(afterFiltering.keys()),
242
+ },
243
+ }));
213
244
  return afterFiltering;
214
245
  }, connections);
215
- logger.debug(`FilteringService.combineFilters: Final result has ${result.size} connections`, {
216
- finalNames: Array.from(result.keys()),
217
- });
246
+ debugIf(() => ({
247
+ message: `FilteringService.combineFilters: Final result has ${result.size} connections`,
248
+ meta: {
249
+ finalNames: Array.from(result.keys()),
250
+ },
251
+ }));
218
252
  return result;
219
253
  };
220
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filteringService.js","sourceRoot":"","sources":["../../../src/core/filtering/filteringService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filteringService.js","sourceRoot":"","sources":["../../../src/core/filtering/filteringService.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"instructionAggregator.d.ts","sourceRoot":"","sources":["../../../src/core/instructions/instructionAggregator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAQjF;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,aAAa,CAAkB;;IAOvC;;;;OAIG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAuBlF;;;OAGG;IACI,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAU7C;;;;;;;OAOG;IACI,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,GAAG,MAAM;IAsCzG;;;OAGG;IACI,cAAc,IAAI,MAAM;IAI/B;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;;;OAIG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAInD;;;;OAIG;IACI,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpE;;OAEG;IACI,KAAK,IAAI,IAAI;IAUpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACI,UAAU,IAAI,MAAM;IAM3B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAoCtB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IA2DjC;;;OAGG;IACI,OAAO,IAAI,IAAI;CAcvB"}
1
+ {"version":3,"file":"instructionAggregator.d.ts","sourceRoot":"","sources":["../../../src/core/instructions/instructionAggregator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AASjF;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,qBAAsB,SAAQ,YAAY;IACrD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,aAAa,CAAkB;;IAUvC;;;;OAIG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAuBlF;;;OAGG;IACI,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAU7C;;;;;;;OAOG;IACI,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,GAAG,MAAM;IAyCzG;;;OAGG;IACI,cAAc,IAAI,MAAM;IAI/B;;;OAGG;IACI,cAAc,IAAI,MAAM,EAAE;IAIjC;;;;OAIG;IACI,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAInD;;;;OAIG;IACI,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpE;;OAEG;IACI,KAAK,IAAI,IAAI;IAUpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACI,UAAU,IAAI,MAAM;IAM3B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAuCtB;;;;;OAKG;IACH,OAAO,CAAC,yBAAyB;IA+EjC;;;OAGG;IACI,OAAO,IAAI,IAAI;CAcvB"}
@@ -1,8 +1,9 @@
1
1
  import { EventEmitter } from 'events';
2
2
  import Handlebars from 'handlebars';
3
- import logger from '../../logger/logger.js';
3
+ import logger, { debugIf } from '../../logger/logger.js';
4
4
  import { FilteringService } from '../filtering/filteringService.js';
5
5
  import { DEFAULT_TEMPLATE_CONFIG, DEFAULT_INSTRUCTION_TEMPLATE, } from './templateTypes.js';
6
+ import { registerTemplateHelpers } from './templateHelpers.js';
6
7
  /**
7
8
  * Aggregates instructions from multiple MCP servers into a single instruction string.
8
9
  * Provides both simple concatenation and filtered instructions with educational templates.
@@ -28,6 +29,8 @@ export class InstructionAggregator extends EventEmitter {
28
29
  constructor() {
29
30
  super();
30
31
  this.setMaxListeners(50);
32
+ // Register custom Handlebars helpers for template processing
33
+ registerTemplateHelpers();
31
34
  }
32
35
  /**
33
36
  * Set or update instructions for a specific server
@@ -39,15 +42,15 @@ export class InstructionAggregator extends EventEmitter {
39
42
  const hasChanges = previousInstructions !== instructions;
40
43
  if (instructions?.trim()) {
41
44
  this.serverInstructions.set(serverName, instructions.trim());
42
- logger.debug(`Updated instructions for server: ${serverName}`);
45
+ debugIf(() => ({ message: `Updated instructions for server: ${serverName}`, meta: { serverName } }));
43
46
  }
44
47
  else {
45
48
  this.serverInstructions.delete(serverName);
46
- logger.debug(`Removed instructions for server: ${serverName}`);
49
+ debugIf(() => ({ message: `Removed instructions for server: ${serverName}`, meta: { serverName } }));
47
50
  }
48
51
  if (!this.isInitialized) {
49
52
  this.isInitialized = true;
50
- logger.debug('InstructionAggregator initialized');
53
+ debugIf('InstructionAggregator initialized');
51
54
  }
52
55
  if (hasChanges) {
53
56
  logger.info(`Instructions changed. Total servers with instructions: ${this.serverInstructions.size}`);
@@ -75,12 +78,15 @@ export class InstructionAggregator extends EventEmitter {
75
78
  * @returns Formatted instruction string with educational template or custom template
76
79
  */
77
80
  getFilteredInstructions(config, connections) {
78
- logger.debug('InstructionAggregator: Getting filtered instructions', {
79
- filterMode: config.tagFilterMode,
80
- totalConnections: connections.size,
81
- totalInstructions: this.serverInstructions.size,
82
- hasCustomTemplate: !!config.customTemplate,
83
- });
81
+ debugIf(() => ({
82
+ message: 'InstructionAggregator: Getting filtered instructions',
83
+ meta: {
84
+ filterMode: config.tagFilterMode,
85
+ totalConnections: connections.size,
86
+ totalInstructions: this.serverInstructions.size,
87
+ hasCustomTemplate: !!config.customTemplate,
88
+ },
89
+ }));
84
90
  // Filter connections based on client configuration
85
91
  const filteredConnections = FilteringService.getFilteredConnections(connections, config);
86
92
  // Get filtering summary for logging
@@ -145,7 +151,7 @@ export class InstructionAggregator extends EventEmitter {
145
151
  const hadInstructions = this.serverInstructions.size > 0;
146
152
  this.serverInstructions.clear();
147
153
  if (hadInstructions) {
148
- logger.debug('Cleared all server instructions');
154
+ debugIf('Cleared all server instructions');
149
155
  this.emit('instructions-changed');
150
156
  }
151
157
  }
@@ -199,11 +205,14 @@ export class InstructionAggregator extends EventEmitter {
199
205
  const variables = this.generateTemplateVariables(filteredConnections, config);
200
206
  // Render template
201
207
  const rendered = compiledTemplate(variables);
202
- logger.debug('InstructionAggregator: Template rendered successfully', {
203
- templateLength: template.length,
204
- variableCount: Object.keys(variables).length,
205
- renderedLength: rendered.length,
206
- });
208
+ debugIf(() => ({
209
+ message: 'InstructionAggregator: Compiled and cached new template',
210
+ meta: {
211
+ templateLength: template.length,
212
+ variableCount: Object.keys(variables).length,
213
+ renderedLength: rendered.length,
214
+ },
215
+ }));
207
216
  return rendered;
208
217
  }
209
218
  /**
@@ -214,26 +223,39 @@ export class InstructionAggregator extends EventEmitter {
214
223
  */
215
224
  generateTemplateVariables(filteredConnections, config) {
216
225
  // Get server data for both arrays and individual server objects
217
- const availableServers = [];
218
226
  const serverInstructionSections = [];
219
227
  const servers = [];
220
228
  // Sort filtered connections by name for consistent output
221
229
  const sortedConnections = Array.from(filteredConnections.entries()).sort(([a], [b]) => a.localeCompare(b));
222
230
  for (const [serverName, _connection] of sortedConnections) {
223
231
  const serverInstructions = this.serverInstructions.get(serverName);
224
- if (serverInstructions?.trim()) {
225
- availableServers.push(serverName);
226
- serverInstructionSections.push(`<${serverName}>\n${serverInstructions.trim()}\n</${serverName}>`);
232
+ const instructions = serverInstructions?.trim() || '';
233
+ if (instructions) {
234
+ // Wrap instructions in XML-like tags
235
+ const wrappedInstructions = `<${serverName}>\n${instructions}\n</${serverName}>`;
236
+ serverInstructionSections.push(wrappedInstructions);
227
237
  // Add individual server data for iteration
228
238
  servers.push({
229
239
  name: serverName,
230
- instructions: serverInstructions.trim(),
240
+ instructions: instructions,
231
241
  hasInstructions: true,
232
242
  });
233
243
  }
244
+ else {
245
+ servers.push({
246
+ name: serverName,
247
+ instructions: '',
248
+ hasInstructions: false,
249
+ });
250
+ }
234
251
  }
235
- const serverCount = availableServers.length;
236
- const hasServers = serverCount > 0;
252
+ const connectedServerCount = filteredConnections.size;
253
+ const hasInstructionalServers = serverInstructionSections.length > 0;
254
+ const serverCount = serverInstructionSections.length;
255
+ const hasServers = serverInstructionSections.length > 0;
256
+ // Generate server lists (only servers with instructions)
257
+ const serverNames = servers.filter((server) => server.hasInstructions).map((server) => server.name);
258
+ const serverList = serverNames.join('\n');
237
259
  // Merge configuration with defaults
238
260
  const templateConfig = {
239
261
  ...DEFAULT_TEMPLATE_CONFIG,
@@ -243,13 +265,19 @@ export class InstructionAggregator extends EventEmitter {
243
265
  };
244
266
  return {
245
267
  // Server state
268
+ connectedServerCount,
269
+ hasInstructionalServers,
246
270
  serverCount,
271
+ instructionalServerCount: serverCount, // Alias for clarity
247
272
  hasServers,
248
- serverList: availableServers.join('\n'),
249
- serverNames: availableServers,
273
+ serverList,
274
+ serverNames,
250
275
  servers,
251
276
  pluralServers: serverCount === 1 ? 'server' : 'servers',
252
277
  isAre: serverCount === 1 ? 'is' : 'are',
278
+ // Grammar helpers for connected servers
279
+ connectedPluralServers: connectedServerCount === 1 ? 'server' : 'servers',
280
+ connectedIsAre: connectedServerCount === 1 ? 'is' : 'are',
253
281
  // Content
254
282
  instructions: serverInstructionSections.join('\n\n'),
255
283
  filterContext: this.getFilterContext(config),
@@ -264,7 +292,7 @@ export class InstructionAggregator extends EventEmitter {
264
292
  * Should be called when the aggregator is no longer needed
265
293
  */
266
294
  cleanup() {
267
- logger.debug('InstructionAggregator: Starting cleanup');
295
+ debugIf('InstructionAggregator: Starting cleanup');
268
296
  // Clear all event listeners
269
297
  this.removeAllListeners();
270
298
  // Clear server instructions
@@ -1 +1 @@
1
- {"version":3,"file":"instructionAggregator.js","sourceRoot":"","sources":["../../../src/core/instructions/instructionAggregator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instructionAggregator.js","sourceRoot":"","sources":["../../../src/core/instructions/instructionAggregator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Register custom Handlebars helpers for template processing
3
+ * These helpers provide mathematical, comparison, and string operations
4
+ * that are commonly needed in instruction templates
5
+ */
6
+ export declare function registerTemplateHelpers(): void;
7
+ //# sourceMappingURL=templateHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateHelpers.d.ts","sourceRoot":"","sources":["../../../src/core/instructions/templateHelpers.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CA6H9C"}
@@ -0,0 +1,116 @@
1
+ import Handlebars from 'handlebars';
2
+ /**
3
+ * Register custom Handlebars helpers for template processing
4
+ * These helpers provide mathematical, comparison, and string operations
5
+ * that are commonly needed in instruction templates
6
+ */
7
+ export function registerTemplateHelpers() {
8
+ // Math helpers - handles chained operations like "a '/' b '*' 100"
9
+ Handlebars.registerHelper('math', function (...args) {
10
+ // Remove the last argument (options object)
11
+ const values = args.slice(0, -1);
12
+ if (values.length < 3) {
13
+ return 0;
14
+ }
15
+ let result = parseFloat(values[0]);
16
+ // Process operations in pairs (operator, value)
17
+ for (let i = 1; i < values.length; i += 2) {
18
+ const operator = values[i];
19
+ const value = parseFloat(values[i + 1]);
20
+ switch (operator) {
21
+ case '+':
22
+ result = result + value;
23
+ break;
24
+ case '-':
25
+ result = result - value;
26
+ break;
27
+ case '*':
28
+ result = result * value;
29
+ break;
30
+ case '/':
31
+ result = result / value;
32
+ break;
33
+ case '%':
34
+ result = result % value;
35
+ break;
36
+ case '**':
37
+ result = result ** value;
38
+ break;
39
+ default:
40
+ return 0;
41
+ }
42
+ }
43
+ // Round to nearest integer for percentage calculations
44
+ return Math.round(result);
45
+ });
46
+ // Comparison helpers
47
+ Handlebars.registerHelper('eq', function (a, b) {
48
+ return a === b;
49
+ });
50
+ Handlebars.registerHelper('ne', function (a, b) {
51
+ return a !== b;
52
+ });
53
+ Handlebars.registerHelper('gt', function (a, b) {
54
+ return a > b;
55
+ });
56
+ Handlebars.registerHelper('lt', function (a, b) {
57
+ return a < b;
58
+ });
59
+ // Logical helpers
60
+ Handlebars.registerHelper('and', function (...args) {
61
+ // Remove the last argument (options object)
62
+ const values = args.slice(0, -1);
63
+ return values.every((value) => !!value);
64
+ });
65
+ Handlebars.registerHelper('or', function (...args) {
66
+ // Remove the last argument (options object)
67
+ const values = args.slice(0, -1);
68
+ return values.some((value) => !!value);
69
+ });
70
+ // String helpers
71
+ Handlebars.registerHelper('contains', function (str, substring) {
72
+ if (typeof str !== 'string' || typeof substring !== 'string') {
73
+ return false;
74
+ }
75
+ return str.includes(substring);
76
+ });
77
+ Handlebars.registerHelper('startsWith', function (str, prefix) {
78
+ if (typeof str !== 'string' || typeof prefix !== 'string') {
79
+ return false;
80
+ }
81
+ return str.startsWith(prefix);
82
+ });
83
+ Handlebars.registerHelper('endsWith', function (str, suffix) {
84
+ if (typeof str !== 'string' || typeof suffix !== 'string') {
85
+ return false;
86
+ }
87
+ return str.endsWith(suffix);
88
+ });
89
+ // Math operation helpers
90
+ Handlebars.registerHelper('subtract', function (a, b) {
91
+ return (a || 0) - (b || 0);
92
+ });
93
+ Handlebars.registerHelper('div', function (a, b) {
94
+ if (b === 0)
95
+ return 0;
96
+ return (a || 0) / (b || 1);
97
+ });
98
+ // String length helper
99
+ Handlebars.registerHelper('len', function (str) {
100
+ if (typeof str !== 'string') {
101
+ return 0;
102
+ }
103
+ return str.length;
104
+ });
105
+ // String substring helper
106
+ Handlebars.registerHelper('substring', function (str, start, end) {
107
+ if (typeof str !== 'string') {
108
+ return '';
109
+ }
110
+ if (end !== undefined) {
111
+ return str.substring(start, end);
112
+ }
113
+ return str.substring(start);
114
+ });
115
+ }
116
+ //# sourceMappingURL=templateHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateHelpers.js","sourceRoot":"","sources":["../../../src/core/instructions/templateHelpers.ts"],"names":[],"mappings":"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"}