@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.
- package/build/commands/mcp/tokens.d.ts.map +1 -1
- package/build/commands/mcp/tokens.js +4 -2
- package/build/commands/mcp/tokens.js.map +1 -1
- package/build/commands/mcp/utils/configUtils.d.ts.map +1 -1
- package/build/commands/mcp/utils/configUtils.js +12 -1
- package/build/commands/mcp/utils/configUtils.js.map +1 -1
- package/build/commands/proxy/index.d.ts +20 -0
- package/build/commands/proxy/index.d.ts.map +1 -0
- package/build/commands/proxy/index.js +87 -0
- package/build/commands/proxy/index.js.map +1 -0
- package/build/commands/proxy/proxy.d.ts +6 -0
- package/build/commands/proxy/proxy.d.ts.map +1 -0
- package/build/commands/proxy/proxy.js +84 -0
- package/build/commands/proxy/proxy.js.map +1 -0
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +42 -4
- package/build/commands/serve/serve.js.map +1 -1
- package/build/config/mcpConfigManager.d.ts.map +1 -1
- package/build/config/mcpConfigManager.js +15 -6
- package/build/config/mcpConfigManager.js.map +1 -1
- package/build/constants.d.ts +1 -1
- package/build/constants.js +1 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.d.ts.map +1 -1
- package/build/core/capabilities/asyncLoadingOrchestrator.js +11 -8
- package/build/core/capabilities/asyncLoadingOrchestrator.js.map +1 -1
- package/build/core/capabilities/capabilityAggregator.js +8 -8
- package/build/core/capabilities/capabilityAggregator.js.map +1 -1
- package/build/{capabilities → core/capabilities}/capabilityManager.d.ts +1 -1
- package/build/core/capabilities/capabilityManager.d.ts.map +1 -0
- package/build/{capabilities → core/capabilities}/capabilityManager.js +3 -3
- package/build/core/capabilities/capabilityManager.js.map +1 -0
- package/build/core/client/clientManager.d.ts +17 -0
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +126 -6
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/filtering/filteringService.d.ts.map +1 -1
- package/build/core/filtering/filteringService.js +89 -55
- package/build/core/filtering/filteringService.js.map +1 -1
- package/build/core/instructions/instructionAggregator.d.ts.map +1 -1
- package/build/core/instructions/instructionAggregator.js +54 -26
- package/build/core/instructions/instructionAggregator.js.map +1 -1
- package/build/core/instructions/templateHelpers.d.ts +7 -0
- package/build/core/instructions/templateHelpers.d.ts.map +1 -0
- package/build/core/instructions/templateHelpers.js +116 -0
- package/build/core/instructions/templateHelpers.js.map +1 -0
- package/build/core/instructions/templateTypes.d.ts +14 -4
- package/build/core/instructions/templateTypes.d.ts.map +1 -1
- package/build/core/instructions/templateTypes.js +10 -2
- package/build/core/instructions/templateTypes.js.map +1 -1
- package/build/core/loading/loadingStateTracker.d.ts +16 -8
- package/build/core/loading/loadingStateTracker.d.ts.map +1 -1
- package/build/core/loading/loadingStateTracker.js +22 -10
- package/build/core/loading/loadingStateTracker.js.map +1 -1
- package/build/core/loading/mcpLoadingManager.d.ts +19 -9
- package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
- package/build/core/loading/mcpLoadingManager.js +29 -15
- package/build/core/loading/mcpLoadingManager.js.map +1 -1
- package/build/core/notifications/notificationManager.d.ts.map +1 -1
- package/build/core/notifications/notificationManager.js +9 -6
- package/build/core/notifications/notificationManager.js.map +1 -1
- package/build/core/server/serverManager.js +6 -6
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/types/transport.d.ts +32 -0
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +3 -1
- package/build/core/types/transport.js.map +1 -1
- package/build/handlers/requestHandlers.js +8 -8
- package/build/handlers/requestHandlers.js.map +1 -1
- package/build/index.js +16 -2
- package/build/index.js.map +1 -1
- package/build/logger/logger.d.ts +39 -0
- package/build/logger/logger.d.ts.map +1 -1
- package/build/logger/logger.js +133 -0
- package/build/logger/logger.js.map +1 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +5 -2
- package/build/server.js.map +1 -1
- package/build/services/configReloadService.js +1 -1
- package/build/services/configReloadService.js.map +1 -1
- package/build/transport/http/middlewares/mcpAvailabilityMiddleware.d.ts.map +1 -1
- package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js +10 -4
- package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -1
- package/build/transport/http/middlewares/tagsExtractor.js +9 -6
- package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
- package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/oauthRoutes.js +5 -21
- package/build/transport/http/routes/oauthRoutes.js.map +1 -1
- package/build/transport/restartableStdioTransport.d.ts.map +1 -1
- package/build/transport/restartableStdioTransport.js +7 -4
- package/build/transport/restartableStdioTransport.js.map +1 -1
- package/build/transport/stdioProxyTransport.d.ts +39 -0
- package/build/transport/stdioProxyTransport.d.ts.map +1 -0
- package/build/transport/stdioProxyTransport.js +138 -0
- package/build/transport/stdioProxyTransport.js.map +1 -0
- package/build/transport/transportFactory.d.ts.map +1 -1
- package/build/transport/transportFactory.js +29 -13
- package/build/transport/transportFactory.js.map +1 -1
- package/build/utils/appDiscovery.js +1 -1
- package/build/utils/appDiscovery.js.map +1 -1
- package/build/utils/clientFiltering.d.ts.map +1 -1
- package/build/utils/clientFiltering.js +64 -36
- package/build/utils/clientFiltering.js.map +1 -1
- package/build/utils/envProcessor.d.ts.map +1 -1
- package/build/utils/envProcessor.js +9 -7
- package/build/utils/envProcessor.js.map +1 -1
- package/build/utils/pagination.d.ts.map +1 -1
- package/build/utils/pagination.js +6 -4
- package/build/utils/pagination.js.map +1 -1
- package/build/utils/pidFileManager.d.ts +45 -0
- package/build/utils/pidFileManager.d.ts.map +1 -0
- package/build/utils/pidFileManager.js +120 -0
- package/build/utils/pidFileManager.js.map +1 -0
- package/build/utils/projectConfigLoader.d.ts +25 -0
- package/build/utils/projectConfigLoader.d.ts.map +1 -0
- package/build/utils/projectConfigLoader.js +74 -0
- package/build/utils/projectConfigLoader.js.map +1 -0
- package/build/utils/projectConfigTypes.d.ts +28 -0
- package/build/utils/projectConfigTypes.d.ts.map +1 -0
- package/build/utils/projectConfigTypes.js +22 -0
- package/build/utils/projectConfigTypes.js.map +1 -0
- package/build/utils/urlDetection.d.ts +14 -2
- package/build/utils/urlDetection.d.ts.map +1 -1
- package/build/utils/urlDetection.js +51 -4
- package/build/utils/urlDetection.js.map +1 -1
- package/package.json +2 -1
- package/build/capabilities/capabilityManager.d.ts.map +0 -1
- package/build/capabilities/capabilityManager.js.map +0 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import logger from '../logger/logger.js';
|
|
4
|
+
const PID_FILE_NAME = 'server.pid';
|
|
5
|
+
/**
|
|
6
|
+
* Get PID file path for a given config directory
|
|
7
|
+
*/
|
|
8
|
+
export function getPidFilePath(configDir) {
|
|
9
|
+
return path.join(configDir, PID_FILE_NAME);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Check if a process is alive
|
|
13
|
+
* @param pid Process ID to check
|
|
14
|
+
* @returns true if process is alive, false otherwise
|
|
15
|
+
*/
|
|
16
|
+
export function isProcessAlive(pid) {
|
|
17
|
+
try {
|
|
18
|
+
// Send signal 0 (no-op) to check if process exists
|
|
19
|
+
// This doesn't actually send a signal, just checks permissions
|
|
20
|
+
process.kill(pid, 0);
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
// ESRCH = process doesn't exist
|
|
25
|
+
// EPERM = process exists but no permission (still alive)
|
|
26
|
+
return err.code === 'EPERM';
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Write PID file with server information
|
|
31
|
+
* @param configDir Configuration directory
|
|
32
|
+
* @param serverInfo Server information to write
|
|
33
|
+
*/
|
|
34
|
+
export function writePidFile(configDir, serverInfo) {
|
|
35
|
+
const pidFilePath = getPidFilePath(configDir);
|
|
36
|
+
try {
|
|
37
|
+
// Ensure config directory exists
|
|
38
|
+
if (!fs.existsSync(configDir)) {
|
|
39
|
+
fs.mkdirSync(configDir, { recursive: true });
|
|
40
|
+
}
|
|
41
|
+
// Write PID file atomically
|
|
42
|
+
const content = JSON.stringify(serverInfo, null, 2);
|
|
43
|
+
fs.writeFileSync(pidFilePath, content, { encoding: 'utf-8' });
|
|
44
|
+
logger.info(`PID file written: ${pidFilePath}`);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
logger.error(`Failed to write PID file: ${error}`);
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Read PID file and validate process is alive
|
|
53
|
+
* @param configDir Configuration directory
|
|
54
|
+
* @returns Server info if valid, null if file doesn't exist or process is dead
|
|
55
|
+
*/
|
|
56
|
+
export function readPidFile(configDir) {
|
|
57
|
+
const pidFilePath = getPidFilePath(configDir);
|
|
58
|
+
try {
|
|
59
|
+
if (!fs.existsSync(pidFilePath)) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
62
|
+
const content = fs.readFileSync(pidFilePath, 'utf-8');
|
|
63
|
+
const serverInfo = JSON.parse(content);
|
|
64
|
+
// Validate required fields
|
|
65
|
+
if (!serverInfo.pid || !serverInfo.url || !serverInfo.port) {
|
|
66
|
+
logger.warn(`Invalid PID file format: ${pidFilePath}`);
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
// Check if process is still alive
|
|
70
|
+
if (!isProcessAlive(serverInfo.pid)) {
|
|
71
|
+
logger.warn(`PID file points to dead process (PID: ${serverInfo.pid})`);
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
return serverInfo;
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
logger.error(`Failed to read PID file: ${error}`);
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Cleanup (delete) PID file
|
|
83
|
+
* @param configDir Configuration directory
|
|
84
|
+
*/
|
|
85
|
+
export function cleanupPidFile(configDir) {
|
|
86
|
+
const pidFilePath = getPidFilePath(configDir);
|
|
87
|
+
try {
|
|
88
|
+
if (fs.existsSync(pidFilePath)) {
|
|
89
|
+
fs.unlinkSync(pidFilePath);
|
|
90
|
+
logger.info(`PID file cleaned up: ${pidFilePath}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
logger.error(`Failed to cleanup PID file: ${error}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Register cleanup handlers to remove PID file on process exit
|
|
99
|
+
* @param configDir Configuration directory
|
|
100
|
+
*/
|
|
101
|
+
export function registerPidFileCleanup(configDir) {
|
|
102
|
+
const cleanup = () => {
|
|
103
|
+
cleanupPidFile(configDir);
|
|
104
|
+
};
|
|
105
|
+
// Register cleanup for various exit scenarios
|
|
106
|
+
process.on('exit', cleanup);
|
|
107
|
+
process.on('SIGINT', () => {
|
|
108
|
+
cleanup();
|
|
109
|
+
process.exit(0);
|
|
110
|
+
});
|
|
111
|
+
process.on('SIGTERM', () => {
|
|
112
|
+
cleanup();
|
|
113
|
+
process.exit(0);
|
|
114
|
+
});
|
|
115
|
+
process.on('SIGHUP', () => {
|
|
116
|
+
cleanup();
|
|
117
|
+
process.exit(0);
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=pidFileManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pidFileManager.js","sourceRoot":"","sources":["../../src/utils/pidFileManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAezC,MAAM,aAAa,GAAG,YAAY,CAAC;AAEnC;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,IAAI,CAAC;QACH,mDAAmD;QACnD,+DAA+D;QAC/D,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,gCAAgC;QAChC,yDAAyD;QACzD,OAAO,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;IAC9B,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB,EAAE,UAAyB;IACvE,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,iCAAiC;QACjC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,4BAA4B;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACpD,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAE9D,MAAM,CAAC,IAAI,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;IAClD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;QACnD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,UAAU,GAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtD,2BAA2B;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;YAC3D,MAAM,CAAC,IAAI,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,yCAAyC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC3B,MAAM,CAAC,IAAI,CAAC,wBAAwB,WAAW,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ProjectConfig } from './projectConfigTypes.js';
|
|
2
|
+
/**
|
|
3
|
+
* Project configuration file name
|
|
4
|
+
*/
|
|
5
|
+
export declare const PROJECT_CONFIG_FILE = ".1mcprc";
|
|
6
|
+
/**
|
|
7
|
+
* Load project configuration from .1mcprc file
|
|
8
|
+
*
|
|
9
|
+
* Searches for .1mcprc in the current working directory.
|
|
10
|
+
* Returns null if file doesn't exist or is invalid.
|
|
11
|
+
*
|
|
12
|
+
* @param cwd - Current working directory (defaults to process.cwd())
|
|
13
|
+
* @returns ProjectConfig or null if not found/invalid
|
|
14
|
+
*/
|
|
15
|
+
export declare function loadProjectConfig(cwd?: string): Promise<ProjectConfig | null>;
|
|
16
|
+
/**
|
|
17
|
+
* Normalize tags to array format
|
|
18
|
+
*
|
|
19
|
+
* Converts string (comma-separated) or array to normalized array.
|
|
20
|
+
*
|
|
21
|
+
* @param tags - Tags as string or array
|
|
22
|
+
* @returns Normalized array of tags
|
|
23
|
+
*/
|
|
24
|
+
export declare function normalizeTags(tags: string | string[] | undefined): string[] | undefined;
|
|
25
|
+
//# sourceMappingURL=projectConfigLoader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectConfigLoader.d.ts","sourceRoot":"","sources":["../../src/utils/projectConfigLoader.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAyB,MAAM,yBAAyB,CAAC;AAE/E;;GAEG;AACH,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAoClG;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,SAAS,CAavF"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { readFile } from 'fs/promises';
|
|
2
|
+
import JSON5 from 'json5';
|
|
3
|
+
import { resolve } from 'path';
|
|
4
|
+
import { existsSync } from 'fs';
|
|
5
|
+
import logger from '../logger/logger.js';
|
|
6
|
+
import { validateProjectConfig } from './projectConfigTypes.js';
|
|
7
|
+
/**
|
|
8
|
+
* Project configuration file name
|
|
9
|
+
*/
|
|
10
|
+
export const PROJECT_CONFIG_FILE = '.1mcprc';
|
|
11
|
+
/**
|
|
12
|
+
* Load project configuration from .1mcprc file
|
|
13
|
+
*
|
|
14
|
+
* Searches for .1mcprc in the current working directory.
|
|
15
|
+
* Returns null if file doesn't exist or is invalid.
|
|
16
|
+
*
|
|
17
|
+
* @param cwd - Current working directory (defaults to process.cwd())
|
|
18
|
+
* @returns ProjectConfig or null if not found/invalid
|
|
19
|
+
*/
|
|
20
|
+
export async function loadProjectConfig(cwd = process.cwd()) {
|
|
21
|
+
const configPath = resolve(cwd, PROJECT_CONFIG_FILE);
|
|
22
|
+
// Check if file exists
|
|
23
|
+
if (!existsSync(configPath)) {
|
|
24
|
+
logger.debug(`No ${PROJECT_CONFIG_FILE} found in ${cwd}`);
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
try {
|
|
28
|
+
logger.debug(`Loading project config from ${configPath}`);
|
|
29
|
+
// Read and parse JSON
|
|
30
|
+
const content = await readFile(configPath, 'utf-8');
|
|
31
|
+
const data = JSON5.parse(content);
|
|
32
|
+
// Validate with Zod schema
|
|
33
|
+
const config = validateProjectConfig(data);
|
|
34
|
+
logger.info(`📄 Loaded configuration from ${PROJECT_CONFIG_FILE}`, {
|
|
35
|
+
preset: config.preset,
|
|
36
|
+
tags: config.tags,
|
|
37
|
+
filter: config.filter,
|
|
38
|
+
});
|
|
39
|
+
return config;
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
if (error instanceof SyntaxError) {
|
|
43
|
+
logger.warn(`Invalid JSON in ${PROJECT_CONFIG_FILE}: ${error.message}`);
|
|
44
|
+
}
|
|
45
|
+
else if (error instanceof Error) {
|
|
46
|
+
logger.warn(`Failed to load ${PROJECT_CONFIG_FILE}: ${error.message}`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
logger.warn(`Failed to load ${PROJECT_CONFIG_FILE}: Unknown error`);
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Normalize tags to array format
|
|
56
|
+
*
|
|
57
|
+
* Converts string (comma-separated) or array to normalized array.
|
|
58
|
+
*
|
|
59
|
+
* @param tags - Tags as string or array
|
|
60
|
+
* @returns Normalized array of tags
|
|
61
|
+
*/
|
|
62
|
+
export function normalizeTags(tags) {
|
|
63
|
+
if (!tags) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
if (typeof tags === 'string') {
|
|
67
|
+
return tags
|
|
68
|
+
.split(',')
|
|
69
|
+
.map((tag) => tag.trim())
|
|
70
|
+
.filter((tag) => tag.length > 0);
|
|
71
|
+
}
|
|
72
|
+
return tags.filter((tag) => tag.length > 0);
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=projectConfigLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectConfigLoader.js","sourceRoot":"","sources":["../../src/utils/projectConfigLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EAAiB,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,SAAS,CAAC;AAE7C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACjE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAErD,uBAAuB;IACvB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,mBAAmB,aAAa,GAAG,EAAE,CAAC,CAAC;QAC1D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;QAE1D,sBAAsB;QACtB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAElC,2BAA2B;QAC3B,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,CAAC,IAAI,CAAC,gCAAgC,mBAAmB,EAAE,EAAE;YACjE,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,mBAAmB,mBAAmB,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1E,CAAC;aAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,kBAAkB,mBAAmB,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,kBAAkB,mBAAmB,iBAAiB,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAAmC;IAC/D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI;aACR,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Project-level configuration for .1mcprc file
|
|
4
|
+
*
|
|
5
|
+
* This file allows projects to specify default connection settings
|
|
6
|
+
* that will be automatically detected by the proxy command.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Zod schema for .1mcprc validation
|
|
10
|
+
*/
|
|
11
|
+
export declare const ProjectConfigSchema: z.ZodObject<{
|
|
12
|
+
preset: z.ZodOptional<z.ZodString>;
|
|
13
|
+
tags: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
14
|
+
filter: z.ZodOptional<z.ZodString>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
/**
|
|
17
|
+
* TypeScript interface for project configuration
|
|
18
|
+
*/
|
|
19
|
+
export interface ProjectConfig {
|
|
20
|
+
preset?: string;
|
|
21
|
+
tags?: string | string[];
|
|
22
|
+
filter?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Validate project configuration
|
|
26
|
+
*/
|
|
27
|
+
export declare function validateProjectConfig(data: unknown): ProjectConfig;
|
|
28
|
+
//# sourceMappingURL=projectConfigTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectConfigTypes.d.ts","sourceRoot":"","sources":["../../src/utils/projectConfigTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,aAAa,CAElE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Project-level configuration for .1mcprc file
|
|
4
|
+
*
|
|
5
|
+
* This file allows projects to specify default connection settings
|
|
6
|
+
* that will be automatically detected by the proxy command.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Zod schema for .1mcprc validation
|
|
10
|
+
*/
|
|
11
|
+
export const ProjectConfigSchema = z.object({
|
|
12
|
+
preset: z.string().optional(),
|
|
13
|
+
tags: z.union([z.string(), z.array(z.string())]).optional(),
|
|
14
|
+
filter: z.string().optional(),
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* Validate project configuration
|
|
18
|
+
*/
|
|
19
|
+
export function validateProjectConfig(data) {
|
|
20
|
+
return ProjectConfigSchema.parse(data);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=projectConfigTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectConfigTypes.js","sourceRoot":"","sources":["../../src/utils/projectConfigTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAWH;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -18,11 +18,23 @@ export declare function detectRunningServerUrl(): Promise<string | null>;
|
|
|
18
18
|
*/
|
|
19
19
|
export declare function detectUrlFromEnv(): string | null;
|
|
20
20
|
/**
|
|
21
|
-
* Method 4:
|
|
21
|
+
* Method 4: Detect URL from PID file (for proxy command)
|
|
22
|
+
*/
|
|
23
|
+
export declare function detectUrlFromPidFile(configDir?: string): Promise<string | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Method 5: Combined detection with priority fallback (primary implementation)
|
|
22
26
|
*/
|
|
23
27
|
export declare function detectServer1mcpUrl(): Promise<string>;
|
|
24
28
|
/**
|
|
25
|
-
* Method
|
|
29
|
+
* Method 6: Combined detection with PID file support (for proxy command)
|
|
30
|
+
* Priority: user URL → PID file → port scanning → error
|
|
31
|
+
*/
|
|
32
|
+
export declare function discoverServerWithPidFile(configDir?: string, userUrl?: string): Promise<{
|
|
33
|
+
url: string;
|
|
34
|
+
source: 'user' | 'pidfile' | 'portscan';
|
|
35
|
+
}>;
|
|
36
|
+
/**
|
|
37
|
+
* Method 7: Get URL with user override (for command-specific URLs)
|
|
26
38
|
*/
|
|
27
39
|
export declare function getServer1mcpUrl(userOverrideUrl?: string): Promise<string>;
|
|
28
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlDetection.d.ts","sourceRoot":"","sources":["../../src/utils/urlDetection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"urlDetection.d.ts","sourceRoot":"","sources":["../../src/utils/urlDetection.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AAEH;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAiB7C;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAShD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAerF;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAe3D;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAA;CAAE,CAAC,CA2BnE;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhF;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAChE,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA2BD"}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { readPidFile, cleanupPidFile } from './pidFileManager.js';
|
|
2
|
+
import { getConfigDir } from '../constants.js';
|
|
3
|
+
import { createSafeErrorMessage } from '../logger/secureLogger.js';
|
|
1
4
|
/**
|
|
2
5
|
* Multi-method URL detection system for app commands.
|
|
3
6
|
*
|
|
@@ -56,7 +59,24 @@ export function detectUrlFromEnv() {
|
|
|
56
59
|
return `http://${host}:${port}/mcp`;
|
|
57
60
|
}
|
|
58
61
|
/**
|
|
59
|
-
* Method 4:
|
|
62
|
+
* Method 4: Detect URL from PID file (for proxy command)
|
|
63
|
+
*/
|
|
64
|
+
export async function detectUrlFromPidFile(configDir) {
|
|
65
|
+
const dir = getConfigDir(configDir);
|
|
66
|
+
const serverInfo = readPidFile(dir);
|
|
67
|
+
if (serverInfo) {
|
|
68
|
+
// Validate server is still responding
|
|
69
|
+
const validation = await validateServer1mcpUrl(serverInfo.url);
|
|
70
|
+
if (validation.valid) {
|
|
71
|
+
return serverInfo.url;
|
|
72
|
+
}
|
|
73
|
+
// Server is dead, clean up stale PID file
|
|
74
|
+
cleanupPidFile(dir);
|
|
75
|
+
}
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Method 5: Combined detection with priority fallback (primary implementation)
|
|
60
80
|
*/
|
|
61
81
|
export async function detectServer1mcpUrl() {
|
|
62
82
|
// 1. Try CLI args first (highest priority)
|
|
@@ -75,7 +95,34 @@ export async function detectServer1mcpUrl() {
|
|
|
75
95
|
return 'http://localhost:3050/mcp';
|
|
76
96
|
}
|
|
77
97
|
/**
|
|
78
|
-
* Method
|
|
98
|
+
* Method 6: Combined detection with PID file support (for proxy command)
|
|
99
|
+
* Priority: user URL → PID file → port scanning → error
|
|
100
|
+
*/
|
|
101
|
+
export async function discoverServerWithPidFile(configDir, userUrl) {
|
|
102
|
+
// 1. User override (highest priority)
|
|
103
|
+
if (userUrl) {
|
|
104
|
+
const normalizedUrl = userUrl.endsWith('/mcp') ? userUrl : `${userUrl}/mcp`;
|
|
105
|
+
return { url: normalizedUrl, source: 'user' };
|
|
106
|
+
}
|
|
107
|
+
// 2. Try PID file
|
|
108
|
+
const pidFileUrl = await detectUrlFromPidFile(configDir);
|
|
109
|
+
if (pidFileUrl) {
|
|
110
|
+
return { url: pidFileUrl, source: 'pidfile' };
|
|
111
|
+
}
|
|
112
|
+
// 3. Fallback to port scanning
|
|
113
|
+
const portScanUrl = await detectRunningServerUrl();
|
|
114
|
+
if (portScanUrl) {
|
|
115
|
+
return { url: portScanUrl, source: 'portscan' };
|
|
116
|
+
}
|
|
117
|
+
// 4. No server found
|
|
118
|
+
throw new Error('No running 1MCP server found.\n\n' +
|
|
119
|
+
'Start a server first:\n' +
|
|
120
|
+
' 1mcp serve\n\n' +
|
|
121
|
+
'Or specify URL manually:\n' +
|
|
122
|
+
' 1mcp proxy --url http://localhost:3050/mcp');
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Method 7: Get URL with user override (for command-specific URLs)
|
|
79
126
|
*/
|
|
80
127
|
export async function getServer1mcpUrl(userOverrideUrl) {
|
|
81
128
|
if (userOverrideUrl) {
|
|
@@ -98,7 +145,7 @@ export async function validateServer1mcpUrl(url) {
|
|
|
98
145
|
if (!oauthResponse.ok) {
|
|
99
146
|
return {
|
|
100
147
|
valid: false,
|
|
101
|
-
error: `1mcp server not responding (HTTP ${oauthResponse.status})
|
|
148
|
+
error: createSafeErrorMessage(`1mcp server not responding (HTTP ${oauthResponse.status})`),
|
|
102
149
|
};
|
|
103
150
|
}
|
|
104
151
|
// For MCP endpoint, we just verify OAuth is working since MCP requires POST with specific payload
|
|
@@ -108,7 +155,7 @@ export async function validateServer1mcpUrl(url) {
|
|
|
108
155
|
catch (error) {
|
|
109
156
|
return {
|
|
110
157
|
valid: false,
|
|
111
|
-
error: `Cannot connect to 1mcp server: ${error.message}
|
|
158
|
+
error: createSafeErrorMessage(`Cannot connect to 1mcp server: ${error.message}`),
|
|
112
159
|
};
|
|
113
160
|
}
|
|
114
161
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlDetection.js","sourceRoot":"","sources":["../../src/utils/urlDetection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,0BAA0B;IAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,gBAAgB,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;IAC3F,IAAI,gBAAgB,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,GAAG,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,sBAAsB;IACtB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;IAC5E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC;IAE5E,MAAM,IAAI,GAAG,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACzF,MAAM,IAAI,GAAG,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpF,OAAO,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,mEAAmE;IACnE,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,SAAS,EAAE;gBAC9D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,oBAAoB,IAAI,MAAM,CAAC;YACxC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACrD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,GAAG,WAAW,MAAM,CAAC;IAC9B,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,WAAW,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC;IAChD,OAAO,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,2CAA2C;IAC3C,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,IAAI,MAAM,KAAK,2BAA2B;QAAE,OAAO,MAAM,CAAC,CAAC,0BAA0B;IAErF,kCAAkC;IAClC,MAAM,UAAU,GAAG,MAAM,sBAAsB,EAAE,CAAC;IAClD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAC;IAElC,+BAA+B;IAC/B,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,IAAI,MAAM,IAAI,MAAM,KAAK,2BAA2B;QAAE,OAAO,MAAM,CAAC;IAEpE,sBAAsB;IACtB,OAAO,2BAA2B,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,eAAwB;IAC7D,IAAI,eAAe,EAAE,CAAC;QACpB,mDAAmD;QACnD,OAAO,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,MAAM,CAAC;IACvF,CAAC;IAED,OAAO,MAAM,mBAAmB,EAAE,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAW;IAIrD,IAAI,CAAC;QACH,sCAAsC;QACtC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAExC,kEAAkE;QAClE,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,EAAE;YACrD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QAEH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;YACtB,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,oCAAoC,aAAa,CAAC,MAAM,GAAG;
|
|
1
|
+
{"version":3,"file":"urlDetection.js","sourceRoot":"","sources":["../../src/utils/urlDetection.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@1mcp/agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "One MCP server to aggregate them all - A unified Model Context Protocol server implementation",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -135,6 +135,7 @@
|
|
|
135
135
|
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
136
136
|
"test:e2e:watch": "vitest --config vitest.e2e.config.ts",
|
|
137
137
|
"test:e2e:coverage": "vitest run --config vitest.e2e.config.ts --coverage",
|
|
138
|
+
"test:e2e:performance": "node scripts/test-e2e-performance.js",
|
|
138
139
|
"docs:dev": "vitepress dev docs",
|
|
139
140
|
"docs:build": "vitepress build docs",
|
|
140
141
|
"docs:preview": "vitepress preview docs",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityManager.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhF;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;GAYlG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"capabilityManager.js","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"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"}
|