@1mcp/agent 0.33.0-beta3 → 0.34.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/serve/index.d.ts +25 -0
- package/build/commands/serve/index.d.ts.map +1 -1
- package/build/commands/serve/index.js +39 -0
- package/build/commands/serve/index.js.map +1 -1
- package/build/commands/serve/runtimeScope.d.ts +13 -0
- package/build/commands/serve/runtimeScope.d.ts.map +1 -0
- package/build/commands/serve/runtimeScope.js +24 -0
- package/build/commands/serve/runtimeScope.js.map +1 -0
- package/build/commands/serve/serve.d.ts +10 -0
- package/build/commands/serve/serve.d.ts.map +1 -1
- package/build/commands/serve/serve.js +64 -28
- package/build/commands/serve/serve.js.map +1 -1
- package/build/commands/serve/serveBackground.d.ts +89 -0
- package/build/commands/serve/serveBackground.d.ts.map +1 -0
- package/build/commands/serve/serveBackground.js +299 -0
- package/build/commands/serve/serveBackground.js.map +1 -0
- package/build/commands/serve/serveRestart.d.ts +24 -0
- package/build/commands/serve/serveRestart.d.ts.map +1 -0
- package/build/commands/serve/serveRestart.js +22 -0
- package/build/commands/serve/serveRestart.js.map +1 -0
- package/build/commands/serve/serveStatus.d.ts +39 -0
- package/build/commands/serve/serveStatus.d.ts.map +1 -0
- package/build/commands/serve/serveStatus.js +58 -0
- package/build/commands/serve/serveStatus.js.map +1 -0
- package/build/commands/serve/serveStop.d.ts +36 -0
- package/build/commands/serve/serveStop.d.ts.map +1 -0
- package/build/commands/serve/serveStop.js +93 -0
- package/build/commands/serve/serveStop.js.map +1 -0
- package/build/constants/mcp.d.ts +1 -1
- package/build/constants/mcp.d.ts.map +1 -1
- package/build/constants/mcp.js +1 -1
- package/build/constants/mcp.js.map +1 -1
- package/build/core/server/pidFileManager.d.ts +35 -4
- package/build/core/server/pidFileManager.d.ts.map +1 -1
- package/build/core/server/pidFileManager.js +105 -25
- package/build/core/server/pidFileManager.js.map +1 -1
- package/build/core/server/runtimeLifecycle.d.ts +69 -0
- package/build/core/server/runtimeLifecycle.d.ts.map +1 -0
- package/build/core/server/runtimeLifecycle.js +100 -0
- package/build/core/server/runtimeLifecycle.js.map +1 -0
- package/build/core/types/transport.d.ts +25 -0
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +23 -2
- package/build/core/types/transport.js.map +1 -1
- package/build/logger/configureGlobalLogger.d.ts +7 -2
- package/build/logger/configureGlobalLogger.d.ts.map +1 -1
- package/build/logger/configureGlobalLogger.js +5 -1
- package/build/logger/configureGlobalLogger.js.map +1 -1
- package/build/logger/logger.d.ts +4 -0
- package/build/logger/logger.d.ts.map +1 -1
- package/build/logger/logger.js +5 -1
- package/build/logger/logger.js.map +1 -1
- package/build/logger/loggingConfig.d.ts +66 -0
- package/build/logger/loggingConfig.d.ts.map +1 -0
- package/build/logger/loggingConfig.js +59 -0
- package/build/logger/loggingConfig.js.map +1 -0
- package/build/utils/validation/urlDetection.d.ts +4 -0
- package/build/utils/validation/urlDetection.d.ts.map +1 -1
- package/build/utils/validation/urlDetection.js +31 -22
- package/build/utils/validation/urlDetection.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { configureLogger } from '../logger/logger.js';
|
|
2
2
|
/**
|
|
3
3
|
* Configure logger for any command using global options
|
|
4
|
-
* @param options Global options that may include log configuration
|
|
4
|
+
* @param options Global options that may include log configuration. `maxSize`
|
|
5
|
+
* and `maxFiles` enable size-based file rotation (set by `serve` from the
|
|
6
|
+
* structured `logging` config); other commands omit them.
|
|
5
7
|
* @param transport Optional transport type (for backward compatibility with serve command)
|
|
6
8
|
*/
|
|
7
9
|
export function configureGlobalLogger(options, transport) {
|
|
8
10
|
configureLogger({
|
|
9
11
|
logLevel: options['log-level'],
|
|
10
12
|
logFile: options['log-file'],
|
|
13
|
+
maxSize: options.maxSize,
|
|
14
|
+
maxFiles: options.maxFiles,
|
|
11
15
|
transport,
|
|
12
16
|
});
|
|
13
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureGlobalLogger.js","sourceRoot":"","sources":["../../src/logger/configureGlobalLogger.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD
|
|
1
|
+
{"version":3,"file":"configureGlobalLogger.js","sourceRoot":"","sources":["../../src/logger/configureGlobalLogger.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAgE,EAChE,SAAkB;IAElB,eAAe,CAAC;QACd,QAAQ,EAAE,OAAO,CAAC,WAAW,CAAC;QAC9B,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS;KACV,CAAC,CAAC;AACL,CAAC"}
|
package/build/logger/logger.d.ts
CHANGED
|
@@ -16,6 +16,10 @@ export interface LoggerOptions {
|
|
|
16
16
|
logLevel?: string;
|
|
17
17
|
logFile?: string;
|
|
18
18
|
transport?: string;
|
|
19
|
+
/** Max size in bytes before the file transport rotates. Enables rotation. */
|
|
20
|
+
maxSize?: number;
|
|
21
|
+
/** Max number of rotated files to retain (used with maxSize). */
|
|
22
|
+
maxFiles?: number;
|
|
19
23
|
}
|
|
20
24
|
/**
|
|
21
25
|
* Configure logger with CLI options and transport awareness
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAgD9B,QAAA,MAAM,MAAM,gBAYV,CAAC;AAEH;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CASlD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,SAAS,CAAC;AAgD9B,QAAA,MAAM,MAAM,gBAYV,CAAC;AAEH;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CASlD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAgE5D;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,MAAM;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,GAAG,IAAI,CA8BjH;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,MAAM;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,GAAG,IAAI,CA8BhH;AAED;;;GAGG;AACH,wBAAgB,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,MAAM;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,GAAG,IAAI,CAyBhH;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,aAAa,EAAE,MAAM,GAAG,CAAC,MAAM;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,GAAG,IAAI,CAyBjH;AAED,eAAe,MAAM,CAAC"}
|
package/build/logger/logger.js
CHANGED
|
@@ -93,11 +93,15 @@ export function configureLogger(options) {
|
|
|
93
93
|
logger.level = winstonLevel;
|
|
94
94
|
// Configure transports based on options
|
|
95
95
|
if (options.logFile) {
|
|
96
|
-
// Add file transport
|
|
96
|
+
// Add file transport, with native size-based rotation when configured.
|
|
97
|
+
// Winston's File transport rotates in place when `maxsize` is set, keeping
|
|
98
|
+
// up to `maxFiles` rotated files — no extra dependency required.
|
|
97
99
|
logger.add(new winston.transports.File({
|
|
98
100
|
filename: options.logFile,
|
|
99
101
|
format: customFormat,
|
|
100
102
|
level: winstonLevel,
|
|
103
|
+
...(options.maxSize ? { maxsize: options.maxSize } : {}),
|
|
104
|
+
...(options.maxFiles ? { maxFiles: options.maxFiles } : {}),
|
|
101
105
|
}));
|
|
102
106
|
// Add console transport except for stdio transport (backward compatibility for serve)
|
|
103
107
|
if (options.transport !== 'stdio') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging configuration resolution.
|
|
3
|
+
*
|
|
4
|
+
* Resolves the effective logging settings from all sources in a single place so
|
|
5
|
+
* the precedence order is explicit and testable, independent of how each source
|
|
6
|
+
* is wired in. Precedence, highest to lowest:
|
|
7
|
+
*
|
|
8
|
+
* CLI flag > structured `logging.*` > deprecated flat alias (`logLevel`/`logFile`) > environment variable > default
|
|
9
|
+
*
|
|
10
|
+
* Rotation (`maxSize`/`maxFiles`) is intentionally only sourced from the
|
|
11
|
+
* structured `logging` block — the deprecated flat keys never supported it.
|
|
12
|
+
*/
|
|
13
|
+
export declare const DEFAULT_LOG_LEVEL = "info";
|
|
14
|
+
export interface ResolvedLoggingConfig {
|
|
15
|
+
level: string;
|
|
16
|
+
file?: string;
|
|
17
|
+
/** Rotation threshold in bytes (parsed from number or size string). */
|
|
18
|
+
maxSize?: number;
|
|
19
|
+
/** Max rotated files to retain. */
|
|
20
|
+
maxFiles?: number;
|
|
21
|
+
}
|
|
22
|
+
export interface LoggingResolution {
|
|
23
|
+
resolved: ResolvedLoggingConfig;
|
|
24
|
+
/**
|
|
25
|
+
* Names of deprecated flat config keys that were present in config
|
|
26
|
+
* (`logLevel`/`logFile`). Callers use this to emit a one-time notice.
|
|
27
|
+
*/
|
|
28
|
+
deprecatedKeys: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface LoggingSources {
|
|
31
|
+
/** Explicit CLI flags (`--log-level`/`--log-file`). Highest priority. */
|
|
32
|
+
cli?: {
|
|
33
|
+
level?: string;
|
|
34
|
+
file?: string;
|
|
35
|
+
};
|
|
36
|
+
/** Structured `logging` block from config. */
|
|
37
|
+
structured?: {
|
|
38
|
+
level?: string;
|
|
39
|
+
file?: string;
|
|
40
|
+
maxSize?: number | string;
|
|
41
|
+
maxFiles?: number;
|
|
42
|
+
};
|
|
43
|
+
/** Deprecated flat config keys (`logLevel`/`logFile`). */
|
|
44
|
+
flat?: {
|
|
45
|
+
level?: string;
|
|
46
|
+
file?: string;
|
|
47
|
+
};
|
|
48
|
+
/** Environment-variable fallback (e.g. legacy `LOG_LEVEL`). */
|
|
49
|
+
env?: {
|
|
50
|
+
level?: string;
|
|
51
|
+
file?: string;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Parse a byte size from a number (bytes) or a string with an optional unit
|
|
56
|
+
* suffix (`k`/`m`/`g`, case-insensitive, optional trailing `b`). Returns
|
|
57
|
+
* undefined for missing, non-positive, or unparseable values.
|
|
58
|
+
*
|
|
59
|
+
* Examples: `1048576` → 1048576, `"10m"` → 10485760, `"1g"` → 1073741824.
|
|
60
|
+
*/
|
|
61
|
+
export declare function parseByteSize(value: number | string | undefined): number | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Resolve effective logging configuration from all sources by precedence.
|
|
64
|
+
*/
|
|
65
|
+
export declare function resolveLoggingConfig(sources: LoggingSources): LoggingResolution;
|
|
66
|
+
//# sourceMappingURL=loggingConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loggingConfig.d.ts","sourceRoot":"","sources":["../../src/logger/loggingConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,iBAAiB,SAAS,CAAC;AAExC,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,qBAAqB,CAAC;IAChC;;;OAGG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,GAAG,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,8CAA8C;IAC9C,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7F,0DAA0D;IAC1D,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,+DAA+D;IAC/D,GAAG,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAmBpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,iBAAiB,CAoB/E"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging configuration resolution.
|
|
3
|
+
*
|
|
4
|
+
* Resolves the effective logging settings from all sources in a single place so
|
|
5
|
+
* the precedence order is explicit and testable, independent of how each source
|
|
6
|
+
* is wired in. Precedence, highest to lowest:
|
|
7
|
+
*
|
|
8
|
+
* CLI flag > structured `logging.*` > deprecated flat alias (`logLevel`/`logFile`) > environment variable > default
|
|
9
|
+
*
|
|
10
|
+
* Rotation (`maxSize`/`maxFiles`) is intentionally only sourced from the
|
|
11
|
+
* structured `logging` block — the deprecated flat keys never supported it.
|
|
12
|
+
*/
|
|
13
|
+
export const DEFAULT_LOG_LEVEL = 'info';
|
|
14
|
+
/**
|
|
15
|
+
* Parse a byte size from a number (bytes) or a string with an optional unit
|
|
16
|
+
* suffix (`k`/`m`/`g`, case-insensitive, optional trailing `b`). Returns
|
|
17
|
+
* undefined for missing, non-positive, or unparseable values.
|
|
18
|
+
*
|
|
19
|
+
* Examples: `1048576` → 1048576, `"10m"` → 10485760, `"1g"` → 1073741824.
|
|
20
|
+
*/
|
|
21
|
+
export function parseByteSize(value) {
|
|
22
|
+
if (value === undefined || value === null) {
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
if (typeof value === 'number') {
|
|
26
|
+
return Number.isFinite(value) && value > 0 ? Math.floor(value) : undefined;
|
|
27
|
+
}
|
|
28
|
+
const match = value.trim().match(/^(\d+(?:\.\d+)?)\s*([kmg])?b?$/i);
|
|
29
|
+
if (!match) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
const amount = parseFloat(match[1]);
|
|
33
|
+
const unit = (match[2] || '').toLowerCase();
|
|
34
|
+
const multiplier = unit === 'g' ? 1024 ** 3 : unit === 'm' ? 1024 ** 2 : unit === 'k' ? 1024 : 1;
|
|
35
|
+
const bytes = Math.floor(amount * multiplier);
|
|
36
|
+
return bytes > 0 ? bytes : undefined;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Resolve effective logging configuration from all sources by precedence.
|
|
40
|
+
*/
|
|
41
|
+
export function resolveLoggingConfig(sources) {
|
|
42
|
+
const { cli = {}, structured = {}, flat = {}, env = {} } = sources;
|
|
43
|
+
const deprecatedKeys = [];
|
|
44
|
+
if (flat.level !== undefined) {
|
|
45
|
+
deprecatedKeys.push('logLevel');
|
|
46
|
+
}
|
|
47
|
+
if (flat.file !== undefined) {
|
|
48
|
+
deprecatedKeys.push('logFile');
|
|
49
|
+
}
|
|
50
|
+
const level = cli.level ?? structured.level ?? flat.level ?? env.level ?? DEFAULT_LOG_LEVEL;
|
|
51
|
+
const file = cli.file ?? structured.file ?? flat.file ?? env.file;
|
|
52
|
+
const maxSize = parseByteSize(structured.maxSize);
|
|
53
|
+
const maxFiles = structured.maxFiles;
|
|
54
|
+
return {
|
|
55
|
+
resolved: { level, file, maxSize, maxFiles },
|
|
56
|
+
deprecatedKeys,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=loggingConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loggingConfig.js","sourceRoot":"","sources":["../../src/logger/loggingConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AA+BxC;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAkC;IAC9D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACpE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC9C,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAC1D,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,UAAU,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;IAEnE,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC7B,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,iBAAiB,CAAC;IAC5F,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;IAClE,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC;IAErC,OAAO;QACL,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC5C,cAAc;KACf,CAAC;AACJ,CAAC"}
|
|
@@ -19,6 +19,10 @@ export declare function detectRunningServerUrl(): Promise<string | null>;
|
|
|
19
19
|
export declare function detectUrlFromEnv(): string | null;
|
|
20
20
|
/**
|
|
21
21
|
* Method 4: Detect URL from PID file (for proxy command)
|
|
22
|
+
*
|
|
23
|
+
* Discovery (and the two-tier staleness rule) is delegated to the lifecycle
|
|
24
|
+
* module: a dead process has its PID file removed; an alive-but-unreachable
|
|
25
|
+
* runtime keeps its PID file so a mid-startup runtime is not stranded.
|
|
22
26
|
*/
|
|
23
27
|
export declare function detectUrlFromPidFile(configDir?: string): Promise<string | null>;
|
|
24
28
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlDetection.d.ts","sourceRoot":"","sources":["../../../src/utils/validation/urlDetection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"urlDetection.d.ts","sourceRoot":"","sources":["../../../src/utils/validation/urlDetection.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AAEH;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAiB7C;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAuBrE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAShD;AAUD;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASrF;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,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA8BjF;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,CA8BD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getConfigDir } from '../../constants.js';
|
|
2
|
-
import {
|
|
2
|
+
import { discoverScopedRuntime } from '../../core/server/runtimeLifecycle.js';
|
|
3
|
+
import { debugIf } from '../../logger/logger.js';
|
|
3
4
|
import { createSafeErrorMessage } from '../../logger/secureLogger.js';
|
|
4
5
|
import { normalizedArgv } from '../../utils/cli/normalizedArgv.js';
|
|
5
6
|
/**
|
|
@@ -41,8 +42,14 @@ export async function detectRunningServerUrl() {
|
|
|
41
42
|
return `http://localhost:${port}/mcp`;
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
|
-
catch {
|
|
45
|
-
//
|
|
45
|
+
catch (error) {
|
|
46
|
+
// Connection refused is the expected case while scanning unused ports, but
|
|
47
|
+
// a TLS/DNS/abort error on a port that IS listening is diagnostic — log it
|
|
48
|
+
// at debug so a misconfigured-but-present server is not invisible.
|
|
49
|
+
debugIf(() => ({
|
|
50
|
+
message: `Port scan probe failed on ${port}`,
|
|
51
|
+
meta: { port, error: error instanceof Error ? error.message : String(error) },
|
|
52
|
+
}));
|
|
46
53
|
}
|
|
47
54
|
}
|
|
48
55
|
return null;
|
|
@@ -59,20 +66,24 @@ export function detectUrlFromEnv() {
|
|
|
59
66
|
const port = process.env.ONE_MCP_PORT || '3050';
|
|
60
67
|
return `http://${host}:${port}/mcp`;
|
|
61
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Reachability probe for client surfaces. Reuses the existing 1mcp-aware
|
|
71
|
+
* validation (OAuth endpoint check) rather than the readiness gate, preserving
|
|
72
|
+
* the attach semantics these commands already had.
|
|
73
|
+
*/
|
|
74
|
+
const clientSurfaceProbe = async (info) => (await validateServer1mcpUrl(info.url)).valid;
|
|
62
75
|
/**
|
|
63
76
|
* Method 4: Detect URL from PID file (for proxy command)
|
|
77
|
+
*
|
|
78
|
+
* Discovery (and the two-tier staleness rule) is delegated to the lifecycle
|
|
79
|
+
* module: a dead process has its PID file removed; an alive-but-unreachable
|
|
80
|
+
* runtime keeps its PID file so a mid-startup runtime is not stranded.
|
|
64
81
|
*/
|
|
65
82
|
export async function detectUrlFromPidFile(configDir) {
|
|
66
83
|
const dir = getConfigDir(configDir);
|
|
67
|
-
const
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
const validation = await validateServer1mcpUrl(serverInfo.url);
|
|
71
|
-
if (validation.valid) {
|
|
72
|
-
return serverInfo.url;
|
|
73
|
-
}
|
|
74
|
-
// Server is dead, clean up stale PID file
|
|
75
|
-
cleanupPidFile(dir);
|
|
84
|
+
const runtime = await discoverScopedRuntime(dir, clientSurfaceProbe);
|
|
85
|
+
if (runtime.status === 'running' && runtime.info) {
|
|
86
|
+
return runtime.info.url;
|
|
76
87
|
}
|
|
77
88
|
return null;
|
|
78
89
|
}
|
|
@@ -105,15 +116,12 @@ export async function discoverServerWithPidFile(configDir, userUrl) {
|
|
|
105
116
|
const normalizedUrl = userUrl.endsWith('/mcp') ? userUrl : `${userUrl}/mcp`;
|
|
106
117
|
return { url: normalizedUrl, source: 'user' };
|
|
107
118
|
}
|
|
108
|
-
// 2. Try PID file
|
|
119
|
+
// 2. Try PID file (lifecycle module owns the two-tier staleness rule:
|
|
120
|
+
// dead → delete; alive-but-unreachable → retain and fall through).
|
|
109
121
|
const dir = getConfigDir(configDir);
|
|
110
|
-
const
|
|
111
|
-
if (
|
|
112
|
-
|
|
113
|
-
if (validation.valid) {
|
|
114
|
-
return { url: serverInfo.url, source: 'pidfile', pid: serverInfo.pid };
|
|
115
|
-
}
|
|
116
|
-
cleanupPidFile(dir);
|
|
122
|
+
const runtime = await discoverScopedRuntime(dir, clientSurfaceProbe);
|
|
123
|
+
if (runtime.status === 'running' && runtime.info) {
|
|
124
|
+
return { url: runtime.info.url, source: 'pidfile', pid: runtime.info.pid };
|
|
117
125
|
}
|
|
118
126
|
// 3. Fallback to port scanning
|
|
119
127
|
const portScanUrl = await detectRunningServerUrl();
|
|
@@ -142,8 +150,9 @@ export async function getServer1mcpUrl(userOverrideUrl) {
|
|
|
142
150
|
*/
|
|
143
151
|
export async function validateServer1mcpUrl(url) {
|
|
144
152
|
try {
|
|
145
|
-
// Remove /mcp suffix to test base URL
|
|
146
|
-
|
|
153
|
+
// Remove a trailing /mcp suffix to test base URL. Anchor to the end so a URL
|
|
154
|
+
// like http://host/mcp-internal/mcp is not mangled by stripping the first match.
|
|
155
|
+
const baseUrl = url.replace(/\/mcp\/?$/, '');
|
|
147
156
|
// Test basic connectivity to OAuth endpoint (which always exists)
|
|
148
157
|
const oauthResponse = await fetch(`${baseUrl}/oauth/`, {
|
|
149
158
|
signal: AbortSignal.timeout(5000),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlDetection.js","sourceRoot":"","sources":["../../../src/utils/validation/urlDetection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"urlDetection.js","sourceRoot":"","sources":["../../../src/utils/validation/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.34.0",
|
|
4
4
|
"description": "One MCP server to aggregate them all - A unified Model Context Protocol server implementation",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mcp",
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"dayjs": "^1.11.13",
|
|
106
106
|
"debug": "^4.4.1",
|
|
107
107
|
"esbuild": "^0.28.0",
|
|
108
|
-
"eslint": "^
|
|
108
|
+
"eslint": "^10.6.0",
|
|
109
109
|
"eslint-config-prettier": "^10.1.1",
|
|
110
110
|
"eslint-plugin-prettier": "^5.2.3",
|
|
111
111
|
"globals": "^17.6.0",
|