@samanhappy/mcphub 1.0.24 → 1.0.25

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 (47) hide show
  1. package/dist/db/connection.js +96 -60
  2. package/dist/db/connection.js.map +1 -1
  3. package/dist/db/repositories/SystemConfigRepository.js +37 -15
  4. package/dist/db/repositories/SystemConfigRepository.js.map +1 -1
  5. package/dist/services/mcpService.js +46 -1
  6. package/dist/services/mcpService.js.map +1 -1
  7. package/dist/utils/dbRetry.js +1 -0
  8. package/dist/utils/dbRetry.js.map +1 -1
  9. package/frontend/dist/assets/{ActivityPage-ClYamLqW.js → ActivityPage-BuY3HRab.js} +2 -2
  10. package/frontend/dist/assets/{ActivityPage-ClYamLqW.js.map → ActivityPage-BuY3HRab.js.map} +1 -1
  11. package/frontend/dist/assets/{Dashboard-XMPV4Ypu.js → Dashboard-bO5Xtzsq.js} +2 -2
  12. package/frontend/dist/assets/{Dashboard-XMPV4Ypu.js.map → Dashboard-bO5Xtzsq.js.map} +1 -1
  13. package/frontend/dist/assets/{EndpointCopy-Ch7HbIsp.js → EndpointCopy-5nz6zs3k.js} +2 -2
  14. package/frontend/dist/assets/{EndpointCopy-Ch7HbIsp.js.map → EndpointCopy-5nz6zs3k.js.map} +1 -1
  15. package/frontend/dist/assets/{GroupsPage-DkUg6Xih.js → GroupsPage-cW-uxB8G.js} +2 -2
  16. package/frontend/dist/assets/{GroupsPage-DkUg6Xih.js.map → GroupsPage-cW-uxB8G.js.map} +1 -1
  17. package/frontend/dist/assets/{LoginPage-Chm4p59K.js → LoginPage-E5RJsYsm.js} +2 -2
  18. package/frontend/dist/assets/{LoginPage-Chm4p59K.js.map → LoginPage-E5RJsYsm.js.map} +1 -1
  19. package/frontend/dist/assets/{LogsPage-D0QA2y2j.js → LogsPage-B7NIiglx.js} +2 -2
  20. package/frontend/dist/assets/{LogsPage-D0QA2y2j.js.map → LogsPage-B7NIiglx.js.map} +1 -1
  21. package/frontend/dist/assets/{MarketPage-CU9wn6vM.js → MarketPage-B_DUnxPX.js} +2 -2
  22. package/frontend/dist/assets/{MarketPage-CU9wn6vM.js.map → MarketPage-B_DUnxPX.js.map} +1 -1
  23. package/frontend/dist/assets/{PromptsPage-Iht1gTW7.js → PromptsPage-DRsO8XiQ.js} +2 -2
  24. package/frontend/dist/assets/{PromptsPage-Iht1gTW7.js.map → PromptsPage-DRsO8XiQ.js.map} +1 -1
  25. package/frontend/dist/assets/{ResourcesPage-DsOhIF8m.js → ResourcesPage-bVfPTdff.js} +2 -2
  26. package/frontend/dist/assets/{ResourcesPage-DsOhIF8m.js.map → ResourcesPage-bVfPTdff.js.map} +1 -1
  27. package/frontend/dist/assets/{ServersPage-Dq_yBsZM.js → ServersPage-V8rY98M6.js} +4 -4
  28. package/frontend/dist/assets/{ServersPage-Dq_yBsZM.js.map → ServersPage-V8rY98M6.js.map} +1 -1
  29. package/frontend/dist/assets/{SettingsPage-DoHjlHsl.js → SettingsPage-Cq_1HeWE.js} +2 -2
  30. package/frontend/dist/assets/{SettingsPage-DoHjlHsl.js.map → SettingsPage-Cq_1HeWE.js.map} +1 -1
  31. package/frontend/dist/assets/{StatusDot-BF-uWsCA.js → StatusDot-BoDsWVzY.js} +2 -2
  32. package/frontend/dist/assets/{StatusDot-BF-uWsCA.js.map → StatusDot-BoDsWVzY.js.map} +1 -1
  33. package/frontend/dist/assets/{ToggleGroup-DMC5NEP5.js → ToggleGroup-D8PkTqMI.js} +2 -2
  34. package/frontend/dist/assets/{ToggleGroup-DMC5NEP5.js.map → ToggleGroup-D8PkTqMI.js.map} +1 -1
  35. package/frontend/dist/assets/{UsersPage-BA9TJs2F.js → UsersPage-135nXZTG.js} +2 -2
  36. package/frontend/dist/assets/{UsersPage-BA9TJs2F.js.map → UsersPage-135nXZTG.js.map} +1 -1
  37. package/frontend/dist/assets/{contextCost-KhOeuF-d.js → contextCost-4glX9T0N.js} +2 -2
  38. package/frontend/dist/assets/{contextCost-KhOeuF-d.js.map → contextCost-4glX9T0N.js.map} +1 -1
  39. package/frontend/dist/assets/{index-xwxOTCc_.js → index-CXPQETnb.js} +3 -3
  40. package/frontend/dist/assets/{index-xwxOTCc_.js.map → index-CXPQETnb.js.map} +1 -1
  41. package/frontend/dist/assets/{resourceService-OokeUb4C.js → resourceService-DsVPipmK.js} +2 -2
  42. package/frontend/dist/assets/{resourceService-OokeUb4C.js.map → resourceService-DsVPipmK.js.map} +1 -1
  43. package/frontend/dist/assets/useSettingsData-BHaYBWNy.js +2 -0
  44. package/frontend/dist/assets/{useSettingsData-DegWU8bg.js.map → useSettingsData-BHaYBWNy.js.map} +1 -1
  45. package/frontend/dist/index.html +1 -1
  46. package/package.json +4 -4
  47. package/frontend/dist/assets/useSettingsData-DegWU8bg.js +0 -2
@@ -12,7 +12,7 @@ const CONNECTION_CONFIG = {
12
12
  poolSize: parseInt(process.env.DB_POOL_SIZE || '10', 10),
13
13
  poolIdleTimeout: parseInt(process.env.DB_POOL_IDLE_TIMEOUT || '30000', 10), // 30 seconds
14
14
  connectionTimeout: parseInt(process.env.DB_CONNECTION_TIMEOUT || '60000', 10), // 60 seconds
15
- // Retry settings for initial connection
15
+ // Automatic reconnection settings
16
16
  maxConnectionRetries: parseInt(process.env.DB_MAX_CONNECTION_RETRIES || '5', 10),
17
17
  connectionRetryDelayMs: parseInt(process.env.DB_CONNECTION_RETRY_DELAY || '3000', 10),
18
18
  // Health check settings
@@ -24,6 +24,7 @@ let healthCheckInterval = null;
24
24
  let isHealthy = false;
25
25
  let lastHealthCheckError = null;
26
26
  let reconnectionInProgress = false;
27
+ let reconnectionPromise = null;
27
28
  // Helper function to create required PostgreSQL extensions
28
29
  const createRequiredExtensions = async (dataSource) => {
29
30
  try {
@@ -125,19 +126,10 @@ export const getAppDataSource = () => {
125
126
  }
126
127
  return appDataSource;
127
128
  };
128
- // Reconnect database with updated configuration
129
+ // Reconnect the database using the current DataSource configuration
129
130
  export const reconnectDatabase = async () => {
130
131
  try {
131
- // Close existing connection if it exists
132
- if (appDataSource && appDataSource.isInitialized) {
133
- console.log('Closing existing database connection...');
134
- await appDataSource.destroy();
135
- }
136
- // Reset initialization promise to allow fresh initialization
137
- initializationPromise = null;
138
- // Update configuration and reconnect
139
- appDataSource = await updateDataSourceConfig();
140
- return await initializeDatabase();
132
+ return await attemptReconnection();
141
133
  }
142
134
  catch (error) {
143
135
  console.error('Error during database reconnection:', error);
@@ -380,11 +372,25 @@ export const getDatabaseHealth = () => {
380
372
  };
381
373
  // Perform a health check on the database connection
382
374
  export const checkDatabaseHealth = async () => {
383
- if (!appDataSource || !appDataSource.isInitialized) {
375
+ if (!appDataSource) {
384
376
  isHealthy = false;
385
377
  lastHealthCheckError = new Error('Database not initialized');
386
378
  return false;
387
379
  }
380
+ if (!appDataSource.isInitialized) {
381
+ isHealthy = false;
382
+ lastHealthCheckError = new Error('Database not initialized');
383
+ console.log('[DB Health] DataSource is disconnected, attempting reconnection...');
384
+ try {
385
+ await attemptReconnection();
386
+ return true;
387
+ }
388
+ catch (error) {
389
+ lastHealthCheckError = error instanceof Error ? error : new Error(String(error));
390
+ console.error('[DB Health] Reconnection attempt failed:', lastHealthCheckError.message);
391
+ return false;
392
+ }
393
+ }
388
394
  try {
389
395
  // Simple query to check connection
390
396
  await appDataSource.query('SELECT 1');
@@ -397,11 +403,17 @@ export const checkDatabaseHealth = async () => {
397
403
  lastHealthCheckError = error instanceof Error ? error : new Error(String(error));
398
404
  console.warn('[DB Health] Health check failed:', lastHealthCheckError.message);
399
405
  // If it's a retryable error, attempt reconnection
400
- if (isRetryableDbError(error) && !reconnectionInProgress) {
406
+ if (isRetryableDbError(error)) {
401
407
  console.log('[DB Health] Detected connection issue, attempting reconnection...');
402
- attemptReconnection().catch((err) => {
403
- console.error('[DB Health] Reconnection attempt failed:', err.message);
404
- });
408
+ try {
409
+ await attemptReconnection();
410
+ return true;
411
+ }
412
+ catch (reconnectError) {
413
+ lastHealthCheckError =
414
+ reconnectError instanceof Error ? reconnectError : new Error(String(reconnectError));
415
+ console.error('[DB Health] Reconnection attempt failed:', lastHealthCheckError.message);
416
+ }
405
417
  }
406
418
  return false;
407
419
  }
@@ -427,55 +439,79 @@ export const stopHealthCheck = () => {
427
439
  }
428
440
  };
429
441
  // Attempt to reconnect to the database with retries
430
- const attemptReconnection = async () => {
431
- if (reconnectionInProgress) {
432
- console.log('[DB Reconnect] Reconnection already in progress, skipping...');
433
- return;
442
+ const attemptReconnection = () => {
443
+ if (reconnectionPromise) {
444
+ console.log('[DB Reconnect] Reconnection already in progress, waiting...');
445
+ return reconnectionPromise;
434
446
  }
435
- reconnectionInProgress = true;
436
- console.log('[DB Reconnect] Starting reconnection attempt...');
437
- try {
438
- // Close existing connection if it exists
439
- if (appDataSource && appDataSource.isInitialized) {
440
- try {
441
- console.log('[DB Reconnect] Closing existing connection...');
442
- await appDataSource.destroy();
443
- }
444
- catch (closeError) {
445
- console.warn('[DB Reconnect] Error closing connection:', closeError.message);
447
+ const promise = (async () => {
448
+ reconnectionInProgress = true;
449
+ console.log('[DB Reconnect] Starting reconnection attempt...');
450
+ try {
451
+ if (!appDataSource) {
452
+ return await initializeDatabase();
446
453
  }
447
- }
448
- // Reset state
449
- initializationPromise = null;
450
- // Retry connection with exponential backoff
451
- let lastError = null;
452
- for (let attempt = 1; attempt <= CONNECTION_CONFIG.maxConnectionRetries; attempt++) {
453
- try {
454
- console.log(`[DB Reconnect] Connection attempt ${attempt}/${CONNECTION_CONFIG.maxConnectionRetries}...`);
455
- appDataSource = await updateDataSourceConfig();
456
- await performDatabaseInitialization();
457
- console.log('[DB Reconnect] Successfully reconnected to database');
458
- isHealthy = true;
459
- lastHealthCheckError = null;
460
- return;
454
+ const dataSource = appDataSource;
455
+ if (dataSource.isInitialized) {
456
+ try {
457
+ console.log('[DB Reconnect] Closing existing connection...');
458
+ await dataSource.destroy();
459
+ }
460
+ catch (closeError) {
461
+ console.warn('[DB Reconnect] Error closing connection:', closeError.message);
462
+ // TypeORM only clears this flag after driver.disconnect() succeeds.
463
+ // If the driver pool is already gone, destroy() throws first and leaves
464
+ // the DataSource incorrectly marked as initialized.
465
+ Object.assign(dataSource, { isInitialized: false });
466
+ }
461
467
  }
462
- catch (error) {
463
- lastError = error instanceof Error ? error : new Error(String(error));
464
- console.warn(`[DB Reconnect] Attempt ${attempt} failed: ${lastError.message}`);
465
- if (attempt < CONNECTION_CONFIG.maxConnectionRetries) {
466
- const delay = CONNECTION_CONFIG.connectionRetryDelayMs * Math.pow(2, attempt - 1);
467
- console.log(`[DB Reconnect] Waiting ${delay}ms before next attempt...`);
468
- await new Promise((resolve) => setTimeout(resolve, delay));
468
+ let lastError = null;
469
+ for (let attempt = 1; attempt <= CONNECTION_CONFIG.maxConnectionRetries; attempt++) {
470
+ try {
471
+ console.log(`[DB Reconnect] Connection attempt ${attempt}/${CONNECTION_CONFIG.maxConnectionRetries}...`);
472
+ await dataSource.initialize();
473
+ registerPostgresVectorType(dataSource);
474
+ appDataSource = dataSource;
475
+ console.log('[DB Reconnect] Successfully reconnected to database');
476
+ isHealthy = true;
477
+ lastHealthCheckError = null;
478
+ return dataSource;
479
+ }
480
+ catch (error) {
481
+ lastError = error instanceof Error ? error : new Error(String(error));
482
+ console.warn(`[DB Reconnect] Attempt ${attempt} failed: ${lastError.message}`);
483
+ if (dataSource.isInitialized) {
484
+ try {
485
+ await dataSource.destroy();
486
+ }
487
+ catch (destroyError) {
488
+ console.warn('[DB Reconnect] Error cleaning up partially initialized connection:', destroyError.message);
489
+ Object.assign(dataSource, { isInitialized: false });
490
+ }
491
+ }
492
+ if (attempt < CONNECTION_CONFIG.maxConnectionRetries) {
493
+ const delay = CONNECTION_CONFIG.connectionRetryDelayMs * Math.pow(2, attempt - 1);
494
+ console.log(`[DB Reconnect] Waiting ${delay}ms before next attempt...`);
495
+ await new Promise((resolve) => setTimeout(resolve, delay));
496
+ }
469
497
  }
470
498
  }
499
+ console.error(`[DB Reconnect] Failed to reconnect after ${CONNECTION_CONFIG.maxConnectionRetries} attempts`);
500
+ lastHealthCheckError = lastError;
501
+ throw lastError || new Error('Database reconnection failed');
471
502
  }
472
- // All retries exhausted
473
- console.error(`[DB Reconnect] Failed to reconnect after ${CONNECTION_CONFIG.maxConnectionRetries} attempts`);
474
- lastHealthCheckError = lastError;
475
- }
476
- finally {
477
- reconnectionInProgress = false;
478
- }
503
+ finally {
504
+ reconnectionInProgress = false;
505
+ reconnectionPromise = null;
506
+ initializationPromise = null;
507
+ }
508
+ })();
509
+ // Reuse the existing DataSource options. Resolving the URL through the
510
+ // database-backed system config is impossible while that database is down.
511
+ // Initialization callers must wait for the same reconnection attempt.
512
+ reconnectionPromise = promise;
513
+ initializationPromise = promise;
514
+ return promise;
479
515
  };
480
516
  // Close database connection
481
517
  export const closeDatabase = async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/db/connection.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { SystemConfig } from '../entities/SystemConfig.js';
2
- import { getAppDataSource } from '../connection.js';
2
+ import { getAppDataSource, reconnectDatabase } from '../connection.js';
3
3
  import { cloneDefaultOAuthServerConfig } from '../../constants/oauthServerDefaults.js';
4
+ import { isRetryableDbError } from '../../utils/dbRetry.js';
4
5
  /**
5
6
  * Repository for SystemConfig entity
6
7
  * Uses singleton pattern with id = 'default'
@@ -8,16 +9,27 @@ import { cloneDefaultOAuthServerConfig } from '../../constants/oauthServerDefaul
8
9
  export class SystemConfigRepository {
9
10
  constructor() {
10
11
  this.DEFAULT_ID = 'default';
11
- this.repository = getAppDataSource().getRepository(SystemConfig);
12
12
  }
13
- /**
14
- * Get system configuration (singleton)
15
- */
16
- async get() {
17
- let config = await this.repository.findOne({ where: { id: this.DEFAULT_ID } });
18
- // Create default if doesn't exist
13
+ getRepository() {
14
+ return getAppDataSource().getRepository(SystemConfig);
15
+ }
16
+ async withConnectionRecovery(operation) {
17
+ try {
18
+ return await operation(this.getRepository());
19
+ }
20
+ catch (error) {
21
+ if (!isRetryableDbError(error)) {
22
+ throw error;
23
+ }
24
+ console.warn('[DB Recovery] System config operation failed, reconnecting...');
25
+ await reconnectDatabase();
26
+ return await operation(this.getRepository());
27
+ }
28
+ }
29
+ async getConfig(repository) {
30
+ let config = await repository.findOne({ where: { id: this.DEFAULT_ID } });
19
31
  if (!config) {
20
- config = this.repository.create({
32
+ config = repository.create({
21
33
  id: this.DEFAULT_ID,
22
34
  routing: {},
23
35
  install: {},
@@ -31,24 +43,34 @@ export class SystemConfigRepository {
31
43
  enableSessionRebuild: false,
32
44
  discovery: {},
33
45
  });
34
- config = await this.repository.save(config);
46
+ config = await repository.save(config);
35
47
  }
36
48
  return config;
37
49
  }
50
+ /**
51
+ * Get system configuration (singleton)
52
+ */
53
+ async get() {
54
+ return this.withConnectionRecovery((repository) => this.getConfig(repository));
55
+ }
38
56
  /**
39
57
  * Update system configuration
40
58
  */
41
59
  async update(configData) {
42
- const config = await this.get();
43
- const updated = this.repository.merge(config, configData);
44
- return await this.repository.save(updated);
60
+ return this.withConnectionRecovery(async (repository) => {
61
+ const config = await this.getConfig(repository);
62
+ const updated = repository.merge(config, configData);
63
+ return await repository.save(updated);
64
+ });
45
65
  }
46
66
  /**
47
67
  * Reset system configuration to defaults
48
68
  */
49
69
  async reset() {
50
- await this.repository.delete({ id: this.DEFAULT_ID });
51
- return await this.get();
70
+ return this.withConnectionRecovery(async (repository) => {
71
+ await repository.delete({ id: this.DEFAULT_ID });
72
+ return await this.getConfig(repository);
73
+ });
52
74
  }
53
75
  /**
54
76
  * Get a specific configuration section
@@ -1 +1 @@
1
- {"version":3,"file":"SystemConfigRepository.js","sourceRoot":"","sources":["../../../src/db/repositories/SystemConfigRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,wCAAwC,CAAC;AAEvF;;;GAGG;AACH,MAAM,OAAO,sBAAsB;IAIjC;QAFiB,eAAU,GAAG,SAAS,CAAC;QAGtC,IAAI,CAAC,UAAU,GAAG,gBAAgB,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG;QACP,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAE/E,kCAAkC;QAClC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC9B,EAAE,EAAE,IAAI,CAAC,UAAU;gBACnB,OAAO,EAAE,EAAE;gBACX,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,EAAE;gBAChB,qBAAqB,EAAE,EAAE;gBACzB,SAAS,EAAE,EAAE;gBACb,aAAa,EAAE,GAAG;gBAClB,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE,6BAA6B,EAAE;gBAC5C,IAAI,EAAE,EAAE;gBACR,oBAAoB,EAAE,KAAK;gBAC3B,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;YACH,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,UAAiC;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC1D,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACtD,OAAO,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAA+B,OAAU;QACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,OAAU,EACV,KAAsB;QAEtB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAA2B,CAAC,CAAC;IAC1E,CAAC;CACF;AAED,eAAe,sBAAsB,CAAC"}
1
+ {"version":3,"file":"SystemConfigRepository.js","sourceRoot":"","sources":["../../../src/db/repositories/SystemConfigRepository.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,44 @@ ${proxyLine}
114
114
  console.log(`[${serverName}] Generated proxychains4 config: ${configPath}`);
115
115
  return configPath;
116
116
  };
117
+ /**
118
+ * Validate that a command is safe to execute.
119
+ * Blocks shell builtins and common injection patterns.
120
+ */
121
+ const isSafeCommand = (command) => {
122
+ // Block shell builtins that could be used for command injection
123
+ const blockedCommands = new Set([
124
+ 'sh', 'bash', 'zsh', 'fish', 'csh', 'ksh', 'tcsh',
125
+ 'cmd', 'powershell', 'pwsh',
126
+ 'eval', 'exec', 'source', '.',
127
+ ]);
128
+ const basename = command.split('/').pop()?.split('\\').pop()?.toLowerCase() || '';
129
+ if (blockedCommands.has(basename)) {
130
+ return false;
131
+ }
132
+ // Block commands with shell metacharacters
133
+ if (/[;&|`$(){}[\]!]/.test(command)) {
134
+ return false;
135
+ }
136
+ return true;
137
+ };
138
+ /**
139
+ * Sanitize arguments to prevent command injection.
140
+ * Removes shell metacharacters and dangerous patterns.
141
+ */
142
+ const sanitizeArgs = (args) => {
143
+ return args.map(arg => {
144
+ // Remove shell metacharacters that could be used for injection
145
+ // Allow common flags (-f, --flag, -vvv) and paths
146
+ if (/^[a-zA-Z0-9._/\\:@=+,-]+$/.test(arg)) {
147
+ return arg;
148
+ }
149
+ // For arguments with special characters, log a warning
150
+ // Also block redirection operators (>, <, >>) and newlines
151
+ console.warn(`[proxychains] Potentially unsafe argument blocked: ${arg}`);
152
+ return arg.replace(/[;&|`$(){}[\]!><\n\r]/g, '');
153
+ });
154
+ };
117
155
  /**
118
156
  * Wrap a command with proxychains4 if proxy is configured and available.
119
157
  * Returns modified command and args if proxychains4 is used, original values otherwise.
@@ -128,6 +166,11 @@ const wrapWithProxychains = (serverName, command, args, proxyConfig) => {
128
166
  console.warn(`[${serverName}] proxychains4 proxy is not supported on Windows, ignoring proxy configuration`);
129
167
  return { command, args };
130
168
  }
169
+ // SECURITY: Validate command is safe
170
+ if (!isSafeCommand(command)) {
171
+ console.error(`[${serverName}] Blocked unsafe command for proxychains4 wrapping: ${command}`);
172
+ throw new Error(`[${serverName}] Unsafe command blocked: ${command}. Shell builtins and metacharacters are not allowed.`);
173
+ }
131
174
  // Find proxychains4 binary
132
175
  const proxychains4Path = findProxychains4();
133
176
  if (!proxychains4Path) {
@@ -140,11 +183,13 @@ const wrapWithProxychains = (serverName, command, args, proxyConfig) => {
140
183
  console.warn(`[${serverName}] Failed to setup proxychains4 configuration, skipping proxy`);
141
184
  return { command, args };
142
185
  }
186
+ // SECURITY: Sanitize arguments
187
+ const sanitizedArgs = sanitizeArgs(args);
143
188
  // Wrap command with proxychains4
144
189
  console.log(`[${serverName}] Using proxychains4 proxy: ${proxyConfig.type || 'socks5'}://${proxyConfig.host}:${proxyConfig.port}`);
145
190
  return {
146
191
  command: proxychains4Path,
147
- args: ['-f', configPath, command, ...args],
192
+ args: ['-f', configPath, command, ...sanitizedArgs],
148
193
  };
149
194
  };
150
195
  export const initUpstreamServers = async () => {