@1mcp/agent 0.18.1 → 0.20.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 (77) hide show
  1. package/README.md +64 -27
  2. package/build/commands/mcp/add.d.ts +3 -0
  3. package/build/commands/mcp/add.d.ts.map +1 -1
  4. package/build/commands/mcp/add.js +24 -0
  5. package/build/commands/mcp/add.js.map +1 -1
  6. package/build/commands/mcp/index.d.ts.map +1 -1
  7. package/build/commands/mcp/index.js +24 -0
  8. package/build/commands/mcp/index.js.map +1 -1
  9. package/build/commands/mcp/list.d.ts +1 -0
  10. package/build/commands/mcp/list.d.ts.map +1 -1
  11. package/build/commands/mcp/list.js +26 -8
  12. package/build/commands/mcp/list.js.map +1 -1
  13. package/build/commands/mcp/update.d.ts +3 -0
  14. package/build/commands/mcp/update.d.ts.map +1 -1
  15. package/build/commands/mcp/update.js +21 -0
  16. package/build/commands/mcp/update.js.map +1 -1
  17. package/build/config/mcpConfigManager.d.ts.map +1 -1
  18. package/build/config/mcpConfigManager.js +7 -3
  19. package/build/config/mcpConfigManager.js.map +1 -1
  20. package/build/constants.d.ts +1 -1
  21. package/build/constants.js +1 -1
  22. package/build/core/types/server.d.ts +3 -0
  23. package/build/core/types/server.d.ts.map +1 -1
  24. package/build/core/types/server.js.map +1 -1
  25. package/build/core/types/transport.d.ts +27 -5
  26. package/build/core/types/transport.d.ts.map +1 -1
  27. package/build/core/types/transport.js +7 -2
  28. package/build/core/types/transport.js.map +1 -1
  29. package/build/handlers/requestHandlers.d.ts.map +1 -1
  30. package/build/handlers/requestHandlers.js +20 -5
  31. package/build/handlers/requestHandlers.js.map +1 -1
  32. package/build/index.js +39 -5
  33. package/build/index.js.map +1 -1
  34. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts +9 -0
  35. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
  36. package/build/transport/http/middlewares/scopeAuthMiddleware.js +55 -6
  37. package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
  38. package/build/transport/http/middlewares/tagsExtractor.d.ts +8 -2
  39. package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -1
  40. package/build/transport/http/middlewares/tagsExtractor.js +109 -7
  41. package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
  42. package/build/transport/http/routes/oauthRoutes.d.ts +2 -1
  43. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  44. package/build/transport/http/routes/oauthRoutes.js +13 -1
  45. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  46. package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
  47. package/build/transport/http/routes/sseRoutes.js +6 -2
  48. package/build/transport/http/routes/sseRoutes.js.map +1 -1
  49. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
  50. package/build/transport/http/routes/streamableHttpRoutes.js +6 -2
  51. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
  52. package/build/transport/http/server.js +1 -1
  53. package/build/transport/http/server.js.map +1 -1
  54. package/build/transport/restartableStdioTransport.d.ts +84 -0
  55. package/build/transport/restartableStdioTransport.d.ts.map +1 -0
  56. package/build/transport/restartableStdioTransport.js +185 -0
  57. package/build/transport/restartableStdioTransport.js.map +1 -0
  58. package/build/transport/transportFactory.d.ts.map +1 -1
  59. package/build/transport/transportFactory.js +38 -2
  60. package/build/transport/transportFactory.js.map +1 -1
  61. package/build/utils/clientFiltering.d.ts +8 -1
  62. package/build/utils/clientFiltering.d.ts.map +1 -1
  63. package/build/utils/clientFiltering.js +38 -3
  64. package/build/utils/clientFiltering.js.map +1 -1
  65. package/build/utils/envProcessor.d.ts +45 -0
  66. package/build/utils/envProcessor.d.ts.map +1 -0
  67. package/build/utils/envProcessor.js +214 -0
  68. package/build/utils/envProcessor.js.map +1 -0
  69. package/build/utils/sanitization.d.ts +63 -0
  70. package/build/utils/sanitization.d.ts.map +1 -1
  71. package/build/utils/sanitization.js +308 -0
  72. package/build/utils/sanitization.js.map +1 -1
  73. package/build/utils/tagQueryParser.d.ts +76 -0
  74. package/build/utils/tagQueryParser.d.ts.map +1 -0
  75. package/build/utils/tagQueryParser.js +336 -0
  76. package/build/utils/tagQueryParser.js.map +1 -0
  77. package/package.json +1 -1
@@ -0,0 +1,185 @@
1
+ import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
2
+ import logger from '../logger/logger.js';
3
+ /**
4
+ * Wrapper around StdioClientTransport that provides automatic restart functionality
5
+ * Implements Transport interface and adds OAuth provider support
6
+ */
7
+ export class RestartableStdioTransport {
8
+ serverParams;
9
+ restartConfig;
10
+ _currentTransport = null;
11
+ _restartCount = 0;
12
+ _isStarting = false;
13
+ _isClosing = false;
14
+ _restartTimer = null;
15
+ // Extended properties for AuthProviderTransport compatibility
16
+ timeout;
17
+ tags;
18
+ oauthProvider;
19
+ // Event handlers
20
+ onclose;
21
+ onerror;
22
+ onmessage;
23
+ constructor(serverParams, restartConfig) {
24
+ this.serverParams = serverParams;
25
+ this.restartConfig = restartConfig;
26
+ logger.debug(`Creating RestartableStdioTransport for command: ${serverParams.command}`);
27
+ }
28
+ /**
29
+ * Creates a new underlying transport instance
30
+ */
31
+ createTransport() {
32
+ const transport = new StdioClientTransport(this.serverParams);
33
+ // Forward event handlers
34
+ transport.onclose = () => this.handleTransportClose();
35
+ transport.onerror = (error) => this.handleTransportError(error);
36
+ transport.onmessage = (message) => this.handleTransportMessage(message);
37
+ return transport;
38
+ }
39
+ /**
40
+ * Handles transport close events
41
+ */
42
+ handleTransportClose() {
43
+ if (this._isClosing) {
44
+ // Expected close, forward the event
45
+ this.onclose?.();
46
+ return;
47
+ }
48
+ // Unexpected close, attempt restart if configured
49
+ if (this.restartConfig.restartOnExit) {
50
+ this.attemptRestart();
51
+ }
52
+ else {
53
+ // No restart configured, forward close event
54
+ this.onclose?.();
55
+ }
56
+ }
57
+ /**
58
+ * Handles transport error events
59
+ */
60
+ handleTransportError(error) {
61
+ logger.error(`Transport error: ${error.message}`);
62
+ this.onerror?.(error);
63
+ }
64
+ /**
65
+ * Handles transport message events
66
+ */
67
+ handleTransportMessage(message) {
68
+ this.onmessage?.(message);
69
+ }
70
+ /**
71
+ * Attempts to restart the transport
72
+ */
73
+ attemptRestart() {
74
+ if (this._isClosing) {
75
+ return; // Don't restart if we're intentionally closing
76
+ }
77
+ const maxRestarts = this.restartConfig.maxRestarts;
78
+ if (maxRestarts !== undefined && this._restartCount >= maxRestarts) {
79
+ logger.error(`Max restart limit reached (${maxRestarts}), stopping transport`);
80
+ this.onerror?.(new Error(`Transport failed after ${maxRestarts} restart attempts`));
81
+ return;
82
+ }
83
+ this._restartCount++;
84
+ const restartDelay = this.restartConfig.restartDelay ?? 1000;
85
+ logger.info(`Attempting transport restart ${this._restartCount} in ${restartDelay}ms...`);
86
+ this._restartTimer = setTimeout(async () => {
87
+ this._restartTimer = null;
88
+ try {
89
+ await this.restartTransport();
90
+ logger.info(`Transport restarted successfully (attempt ${this._restartCount})`);
91
+ }
92
+ catch (error) {
93
+ logger.error(`Transport restart failed: ${error}`);
94
+ this.onerror?.(error instanceof Error ? error : new Error(String(error)));
95
+ }
96
+ }, restartDelay);
97
+ }
98
+ /**
99
+ * Restarts the underlying transport
100
+ */
101
+ async restartTransport() {
102
+ if (this._isStarting || this._isClosing) {
103
+ return;
104
+ }
105
+ this._isStarting = true;
106
+ try {
107
+ // Close old transport if it exists
108
+ if (this._currentTransport) {
109
+ await this._currentTransport.close();
110
+ }
111
+ // Create and start new transport
112
+ this._currentTransport = this.createTransport();
113
+ await this._currentTransport.start();
114
+ }
115
+ finally {
116
+ this._isStarting = false;
117
+ }
118
+ }
119
+ /**
120
+ * Starts the transport
121
+ */
122
+ async start() {
123
+ if (this._currentTransport) {
124
+ throw new Error('RestartableStdioTransport already started!');
125
+ }
126
+ this._isStarting = true;
127
+ this._restartCount = 0;
128
+ try {
129
+ this._currentTransport = this.createTransport();
130
+ await this._currentTransport.start();
131
+ logger.debug('RestartableStdioTransport started successfully');
132
+ }
133
+ finally {
134
+ this._isStarting = false;
135
+ }
136
+ }
137
+ /**
138
+ * Gets the stderr stream from the current transport
139
+ */
140
+ get stderr() {
141
+ return this._currentTransport?.stderr ?? null;
142
+ }
143
+ /**
144
+ * Gets the process PID from the current transport
145
+ */
146
+ get pid() {
147
+ return this._currentTransport?.pid ?? null;
148
+ }
149
+ /**
150
+ * Sends a message through the current transport
151
+ */
152
+ async send(message) {
153
+ if (!this._currentTransport) {
154
+ throw new Error('Transport not started');
155
+ }
156
+ return this._currentTransport.send(message);
157
+ }
158
+ /**
159
+ * Closes the transport and prevents restart
160
+ */
161
+ async close() {
162
+ this._isClosing = true;
163
+ // Clear any pending restart timer
164
+ if (this._restartTimer) {
165
+ clearTimeout(this._restartTimer);
166
+ this._restartTimer = null;
167
+ }
168
+ // Close current transport if it exists
169
+ if (this._currentTransport) {
170
+ await this._currentTransport.close();
171
+ this._currentTransport = null;
172
+ }
173
+ logger.debug('RestartableStdioTransport closed');
174
+ }
175
+ /**
176
+ * Gets restart statistics
177
+ */
178
+ getRestartStats() {
179
+ return {
180
+ restartCount: this._restartCount,
181
+ isRestarting: this._isStarting,
182
+ };
183
+ }
184
+ }
185
+ //# sourceMappingURL=restartableStdioTransport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restartableStdioTransport.js","sourceRoot":"","sources":["../../src/transport/restartableStdioTransport.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transportFactory.d.ts","sourceRoot":"","sources":["../../src/transport/transportFactory.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAyB,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAKzD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAuBzF;AA4HD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CA2B/G"}
1
+ {"version":3,"file":"transportFactory.d.ts","sourceRoot":"","sources":["../../src/transport/transportFactory.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAyB,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAOzD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAuBzF;AAmKD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CA2B/G"}
@@ -7,6 +7,8 @@ import { transportConfigSchema } from '../core/types/index.js';
7
7
  import { SDKOAuthClientProvider } from '../auth/sdkOAuthClientProvider.js';
8
8
  import { AUTH_CONFIG } from '../constants.js';
9
9
  import { AgentConfigManager } from '../core/server/agentConfig.js';
10
+ import { processEnvironment } from '../utils/envProcessor.js';
11
+ import { RestartableStdioTransport } from './restartableStdioTransport.js';
10
12
  /**
11
13
  * Infers transport type from configuration parameters
12
14
  */
@@ -82,13 +84,47 @@ function createHTTPTransport(name, validatedTransport) {
82
84
  return transport;
83
85
  }
84
86
  /**
85
- * Creates stdio transport
87
+ * Creates stdio transport with enhanced environment processing and optional restart capability
86
88
  */
87
89
  function createStdioTransport(name, validatedTransport) {
88
90
  if (!validatedTransport.command) {
89
91
  throw new Error(`Command is required for stdio transport: ${name}`);
90
92
  }
91
- return new StdioClientTransport(validatedTransport);
93
+ // Process environment variables with new features
94
+ const envResult = processEnvironment({
95
+ inheritParentEnv: validatedTransport.inheritParentEnv,
96
+ envFilter: validatedTransport.envFilter,
97
+ env: validatedTransport.env,
98
+ });
99
+ logger.debug(`Environment processing for ${name}:`, {
100
+ totalVariables: Object.keys(envResult.processedEnv).length,
101
+ sdkDefaults: envResult.sources.sdkDefaults.length,
102
+ inherited: envResult.sources.inherited.length,
103
+ custom: envResult.sources.custom.length,
104
+ filtered: envResult.sources.filtered.length,
105
+ });
106
+ // Create SDK-compatible parameters with processed environment
107
+ const stdioParams = {
108
+ command: validatedTransport.command,
109
+ args: validatedTransport.args,
110
+ stderr: validatedTransport.stderr, // IOType validation is complex, trust Zod validation
111
+ cwd: validatedTransport.cwd,
112
+ env: envResult.processedEnv,
113
+ };
114
+ // Create transport with restart capability if enabled
115
+ if (validatedTransport.restartOnExit) {
116
+ logger.info(`Creating restartable stdio transport for: ${name}`);
117
+ const restartableTransport = new RestartableStdioTransport(stdioParams, {
118
+ restartOnExit: true,
119
+ maxRestarts: validatedTransport.maxRestarts, // Use config value or undefined for unlimited
120
+ restartDelay: validatedTransport.restartDelay ?? 1000, // Use config value or default to 1 second
121
+ });
122
+ // Add AuthProviderTransport properties
123
+ return restartableTransport;
124
+ }
125
+ // Create standard stdio transport
126
+ logger.debug(`Creating standard stdio transport for: ${name}`);
127
+ return new StdioClientTransport(stdioParams);
92
128
  }
93
129
  /**
94
130
  * Creates a single transport instance
@@ -1 +1 @@
1
- {"version":3,"file":"transportFactory.js","sourceRoot":"","sources":["../../src/transport/transportFactory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transportFactory.js","sourceRoot":"","sources":["../../src/transport/transportFactory.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ServerCapabilities } from '@modelcontextprotocol/sdk/types.js';
2
2
  import { OutboundConnections } from '../core/types/index.js';
3
+ import { TagExpression } from './tagQueryParser.js';
3
4
  /**
4
5
  * Filters clients by tags
5
6
  * @param clients Record of client instances
@@ -28,10 +29,16 @@ export declare function filterClients(...filters: ClientFilter[]): ClientFilter;
28
29
  */
29
30
  export declare function byCapabilities(requiredCapabilities: ServerCapabilities): ClientFilter;
30
31
  /**
31
- * Filters clients by tags
32
+ * Filters clients by tags using OR logic (backward compatible)
32
33
  * @param tags Array of tags to filter by
33
34
  * @returns Filtered record of client instances
34
35
  */
35
36
  export declare function byTags(tags?: string[]): ClientFilter;
37
+ /**
38
+ * Filters clients by advanced tag expression (new)
39
+ * @param expression Parsed tag expression to evaluate
40
+ * @returns Filtered record of client instances
41
+ */
42
+ export declare function byTagExpression(expression: TagExpression): ClientFilter;
36
43
  export {};
37
44
  //# sourceMappingURL=clientFiltering.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientFiltering.d.ts","sourceRoot":"","sources":["../../src/utils/clientFiltering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAsB,MAAM,wBAAwB,CAAC;AAGjF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAyBtG;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,mBAAmB,EAC5B,YAAY,EAAE,kBAAkB,GAC/B,mBAAmB,CAwBrB;AAED,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,mBAAmB,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CA0BtE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,oBAAoB,EAAE,kBAAkB,GAAG,YAAY,CAsBrF;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,YAAY,CAyBpD"}
1
+ {"version":3,"file":"clientFiltering.d.ts","sourceRoot":"","sources":["../../src/utils/clientFiltering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAsB,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAkB,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpE;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,mBAAmB,CA8BtG;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,mBAAmB,EAC5B,YAAY,EAAE,kBAAkB,GAC/B,mBAAmB,CAwBrB;AAED,KAAK,YAAY,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,mBAAmB,CAAC;AAE1E;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,GAAG,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,CA0BtE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,oBAAoB,EAAE,kBAAkB,GAAG,YAAY,CAsBrF;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,YAAY,CAgCpD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,aAAa,GAAG,YAAY,CAoBvE"}
@@ -1,3 +1,5 @@
1
+ import { TagQueryParser } from './tagQueryParser.js';
2
+ import { normalizeTag } from './sanitization.js';
1
3
  import logger from '../logger/logger.js';
2
4
  /**
3
5
  * Filters clients by tags
@@ -11,9 +13,13 @@ export function filterClientsByTags(clients, tags) {
11
13
  }
12
14
  const filteredClients = new Map();
13
15
  let matchedClients = 0;
16
+ // Normalize the filter tags for consistent comparison
17
+ const normalizedFilterTags = tags.map((tag) => normalizeTag(tag));
14
18
  for (const [name, clientInfo] of clients.entries()) {
15
19
  const clientTags = clientInfo.transport.tags || [];
16
- const hasMatchingTags = clientTags.some((clientTag) => tags.includes(clientTag));
20
+ // Normalize client tags for comparison
21
+ const normalizedClientTags = clientTags.map((tag) => normalizeTag(tag));
22
+ const hasMatchingTags = normalizedClientTags.some((clientTag) => normalizedFilterTags.includes(clientTag));
17
23
  if (hasMatchingTags) {
18
24
  filteredClients.set(name, clientInfo);
19
25
  matchedClients++;
@@ -108,7 +114,7 @@ export function byCapabilities(requiredCapabilities) {
108
114
  };
109
115
  }
110
116
  /**
111
- * Filters clients by tags
117
+ * Filters clients by tags using OR logic (backward compatible)
112
118
  * @param tags Array of tags to filter by
113
119
  * @returns Filtered record of client instances
114
120
  */
@@ -119,12 +125,18 @@ export function byTags(tags) {
119
125
  logger.debug('byTags: No tags specified, returning all clients');
120
126
  return clients;
121
127
  }
128
+ // Normalize the filter tags for consistent comparison
129
+ const normalizedFilterTags = tags.map((tag) => normalizeTag(tag));
122
130
  return Array.from(clients.entries()).reduce((filtered, [name, clientInfo]) => {
123
131
  const clientTags = clientInfo.transport.tags || [];
124
- const hasMatchingTags = clientTags.some((clientTag) => tags.includes(clientTag));
132
+ // Normalize client tags for comparison
133
+ const normalizedClientTags = clientTags.map((tag) => normalizeTag(tag));
134
+ const hasMatchingTags = normalizedClientTags.some((clientTag) => normalizedFilterTags.includes(clientTag));
125
135
  logger.debug(`byTags: Client ${name}`, {
126
136
  clientTags,
137
+ normalizedClientTags,
127
138
  requiredTags: tags,
139
+ normalizedRequiredTags: normalizedFilterTags,
128
140
  hasMatchingTags,
129
141
  });
130
142
  if (hasMatchingTags) {
@@ -134,4 +146,27 @@ export function byTags(tags) {
134
146
  }, new Map());
135
147
  };
136
148
  }
149
+ /**
150
+ * Filters clients by advanced tag expression (new)
151
+ * @param expression Parsed tag expression to evaluate
152
+ * @returns Filtered record of client instances
153
+ */
154
+ export function byTagExpression(expression) {
155
+ return (clients) => {
156
+ logger.debug(`byTagExpression: Filtering with expression: ${TagQueryParser.expressionToString(expression)}`);
157
+ return Array.from(clients.entries()).reduce((filtered, [name, clientInfo]) => {
158
+ const clientTags = clientInfo.transport.tags || [];
159
+ const matches = TagQueryParser.evaluate(expression, clientTags);
160
+ logger.debug(`byTagExpression: Client ${name}`, {
161
+ clientTags,
162
+ expression: TagQueryParser.expressionToString(expression),
163
+ matches,
164
+ });
165
+ if (matches) {
166
+ filtered.set(name, clientInfo);
167
+ }
168
+ return filtered;
169
+ }, new Map());
170
+ };
171
+ }
137
172
  //# sourceMappingURL=clientFiltering.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientFiltering.js","sourceRoot":"","sources":["../../src/utils/clientFiltering.ts"],"names":[],"mappings":"AAEA,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAA4B,EAAE,IAAe;IAC/E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC9D,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;QACnD,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAEjF,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtC,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,SAAS,cAAc,2BAA2B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAA4B,EAC5B,YAAgC;IAEhC,MAAM,eAAe,GAAG,IAAI,GAAG,EAA8B,CAAC;IAC9D,IAAI,cAAc,GAAG,CAAC,CAAC;IAEvB,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,MAAM,kBAAkB,GAAG,UAAU,CAAC,YAAY,IAAI,EAAE,CAAC;QACzD,MAAM,uBAAuB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,EAAE;YAC7E,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,UAAsC,CAAC,CAAC;YACpF,OAAO,gBAAgB,KAAK,SAAS,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,uBAAuB,EAAE,CAAC;YAC5B,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACtC,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,CAAC,SAAS,cAAc,mCAAmC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACzG,CAAC;IAED,OAAO,eAAe,CAAC;AACzB,CAAC;AAID;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,GAAG,OAAuB;IACtD,OAAO,CAAC,OAA4B,EAAE,EAAE;QACtC,MAAM,CAAC,KAAK,CAAC,gCAAgC,OAAO,CAAC,IAAI,UAAU,EAAE;YACnE,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACvC,WAAW,EAAE,OAAO,CAAC,MAAM;SAC5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;YAC/D,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;YACzC,MAAM,cAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,cAAc,CAAC,IAAI,CAAC;YAEvC,MAAM,CAAC,KAAK,CAAC,yBAAyB,KAAK,yBAAyB,WAAW,OAAO,UAAU,EAAE,EAAE;gBAClG,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;gBAC/C,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;aAC9C,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC;QACxB,CAAC,EAAE,OAAO,CAAC,CAAC;QAEZ,MAAM,CAAC,KAAK,CAAC,mCAAmC,MAAM,CAAC,IAAI,UAAU,EAAE;YACrE,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACtC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,oBAAwC;IACrE,OAAO,CAAC,OAA4B,EAAE,EAAE;QACtC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,+CAA+C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvF,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;YAC3E,MAAM,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACvF,MAAM,eAAe,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,IAAI,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,CAAC;YAE/G,MAAM,CAAC,KAAK,CAAC,0BAA0B,IAAI,EAAE,EAAE;gBAC7C,kBAAkB,EAAE,UAAU;gBAC9B,oBAAoB,EAAE,YAAY;gBAClC,eAAe;gBACf,wBAAwB,EAAE,UAAU,CAAC,YAAY;aAClD,CAAC,CAAC;YAEH,IAAI,eAAe,EAAE,CAAC;gBACpB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,EAAE,IAAI,GAAG,EAA8B,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,IAAe;IACpC,OAAO,CAAC,OAA4B,EAAE,EAAE;QACtC,MAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAE/E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACjE,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,EAAE;YAC3E,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;YACnD,MAAM,eAAe,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;YAEjF,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,EAAE,EAAE;gBACrC,UAAU;gBACV,YAAY,EAAE,IAAI;gBAClB,eAAe;aAChB,CAAC,CAAC;YAEH,IAAI,eAAe,EAAE,CAAC;gBACpB,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC,EAAE,IAAI,GAAG,EAA8B,CAAC,CAAC;IAC5C,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"clientFiltering.js","sourceRoot":"","sources":["../../src/utils/clientFiltering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Configuration for environment processing
3
+ */
4
+ export interface EnvProcessingConfig {
5
+ readonly inheritParentEnv?: boolean;
6
+ readonly envFilter?: string[];
7
+ readonly env?: Record<string, string> | string[];
8
+ }
9
+ /**
10
+ * Result of environment processing
11
+ */
12
+ export interface ProcessedEnvironment {
13
+ readonly processedEnv: Record<string, string>;
14
+ readonly sources: {
15
+ readonly sdkDefaults: string[];
16
+ readonly inherited: string[];
17
+ readonly custom: string[];
18
+ readonly filtered: string[];
19
+ };
20
+ }
21
+ /**
22
+ * Converts environment array format to object format
23
+ * @param envArray Array in format ["KEY=value", "PATH=/usr/bin"]
24
+ * @returns Object in format {KEY: "value", PATH: "/usr/bin"}
25
+ */
26
+ export declare function parseEnvArray(envArray: string[]): Record<string, string>;
27
+ /**
28
+ * Substitutes environment variables in configuration values
29
+ * @param configValue Configuration value that may contain ${VAR} patterns
30
+ * @returns Value with environment variables substituted
31
+ */
32
+ export declare function substituteEnvVars(configValue: string): string;
33
+ /**
34
+ * Recursively substitutes environment variables in a configuration object
35
+ * @param config Configuration object
36
+ * @returns Configuration object with environment variables substituted
37
+ */
38
+ export declare function substituteEnvVarsInConfig(config: any): any;
39
+ /**
40
+ * Processes environment configuration for stdio transport
41
+ * @param config Environment processing configuration
42
+ * @returns Processed environment variables with metadata
43
+ */
44
+ export declare function processEnvironment(config: EnvProcessingConfig): ProcessedEnvironment;
45
+ //# sourceMappingURL=envProcessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envProcessor.d.ts","sourceRoot":"","sources":["../../src/utils/envProcessor.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,CAAC;CAClD;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;KAC7B,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqBxE;AAwGD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAS7D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAkB1D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,mBAAmB,GAAG,oBAAoB,CAiEpF"}