agentinit 1.6.0 → 1.7.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/CHANGELOG.md +14 -0
- package/README.md +93 -10
- package/dist/agentinit-1.7.0.tgz +0 -0
- package/dist/cli.js +315 -36
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +2 -2
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/verifyMcp.d.ts.map +1 -1
- package/dist/commands/verifyMcp.js +26 -4
- package/dist/commands/verifyMcp.js.map +1 -1
- package/dist/constants/index.d.ts +1 -1
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +1 -1
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/mcp.d.ts +1 -0
- package/dist/constants/mcp.d.ts.map +1 -1
- package/dist/constants/mcp.js +2 -0
- package/dist/constants/mcp.js.map +1 -1
- package/dist/core/mcpClient.d.ts +124 -6
- package/dist/core/mcpClient.d.ts.map +1 -1
- package/dist/core/mcpClient.js +385 -39
- package/dist/core/mcpClient.js.map +1 -1
- package/dist/lib/utils/index.d.ts +3 -1
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/index.js +4 -1
- package/dist/lib/utils/index.js.map +1 -1
- package/dist/types/index.d.ts +10 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/jsonSchema.d.ts +31 -0
- package/dist/types/jsonSchema.d.ts.map +1 -0
- package/dist/types/jsonSchema.js +6 -0
- package/dist/types/jsonSchema.js.map +1 -0
- package/dist/utils/packageVersion.d.ts +105 -0
- package/dist/utils/packageVersion.d.ts.map +1 -0
- package/dist/utils/packageVersion.js +219 -0
- package/dist/utils/packageVersion.js.map +1 -0
- package/package.json +1 -1
- package/dist/agentinit-1.6.0.tgz +0 -0
|
@@ -6,13 +6,15 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* ```typescript
|
|
9
|
-
* import { countTokens, MCPParser } from 'agentinit/utils';
|
|
9
|
+
* import { countTokens, MCPParser, fetchLatestVersion } from 'agentinit/utils';
|
|
10
10
|
*
|
|
11
11
|
* const tokens = countTokens('Hello world');
|
|
12
12
|
* const parsed = MCPParser.parseArguments(['--mcp-stdio', 'server', 'npx', 'mcp-server']);
|
|
13
|
+
* const version = await fetchLatestVersion('chrome-devtools-mcp');
|
|
13
14
|
* ```
|
|
14
15
|
*/
|
|
15
16
|
export { countTokens } from 'contextcalc';
|
|
16
17
|
export { MCPParser, MCPParseError } from '../../core/mcpParser.js';
|
|
17
18
|
export { Logger, logger } from '../../utils/logger.js';
|
|
19
|
+
export { extractExplicitVersion, extractPackageName, extractPackageFromCommand, fetchLatestVersion, clearVersionCache, getVersionCacheStats } from '../../utils/packageVersion.js';
|
|
18
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGnE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,+BAA+B,CAAC"}
|
package/dist/lib/utils/index.js
CHANGED
|
@@ -6,10 +6,11 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @example
|
|
8
8
|
* ```typescript
|
|
9
|
-
* import { countTokens, MCPParser } from 'agentinit/utils';
|
|
9
|
+
* import { countTokens, MCPParser, fetchLatestVersion } from 'agentinit/utils';
|
|
10
10
|
*
|
|
11
11
|
* const tokens = countTokens('Hello world');
|
|
12
12
|
* const parsed = MCPParser.parseArguments(['--mcp-stdio', 'server', 'npx', 'mcp-server']);
|
|
13
|
+
* const version = await fetchLatestVersion('chrome-devtools-mcp');
|
|
13
14
|
* ```
|
|
14
15
|
*/
|
|
15
16
|
// Re-export token counting utility
|
|
@@ -18,4 +19,6 @@ export { countTokens } from 'contextcalc';
|
|
|
18
19
|
export { MCPParser, MCPParseError } from '../../core/mcpParser.js';
|
|
19
20
|
// Re-export logger for library users who want consistent logging
|
|
20
21
|
export { Logger, logger } from '../../utils/logger.js';
|
|
22
|
+
// Re-export package version utilities
|
|
23
|
+
export { extractExplicitVersion, extractPackageName, extractPackageFromCommand, fetchLatestVersion, clearVersionCache, getVersionCacheStats } from '../../utils/packageVersion.js';
|
|
21
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,mCAAmC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,uBAAuB;AACvB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEnE,iEAAiE;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEvD,sCAAsC;AACtC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,+BAA+B,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -138,16 +138,18 @@ export interface MCPTransformation {
|
|
|
138
138
|
reason: string;
|
|
139
139
|
}
|
|
140
140
|
export type { RuleTemplate, RulesConfig, RemoteRulesOptions, AppliedRules, RuleApplicationResult, RuleSection } from './rules.js';
|
|
141
|
+
export type { JSONSchema, JSONSchemaProperty } from './jsonSchema.js';
|
|
141
142
|
export interface MCPTool {
|
|
142
143
|
name: string;
|
|
143
144
|
description?: string;
|
|
144
|
-
inputSchema?:
|
|
145
|
+
inputSchema?: import('./jsonSchema.js').JSONSchema;
|
|
145
146
|
}
|
|
146
147
|
export interface MCPResource {
|
|
147
148
|
uri: string;
|
|
148
149
|
name?: string;
|
|
149
150
|
description?: string;
|
|
150
151
|
mimeType?: string;
|
|
152
|
+
contents?: string | Uint8Array;
|
|
151
153
|
}
|
|
152
154
|
export interface MCPPrompt {
|
|
153
155
|
name: string;
|
|
@@ -157,6 +159,13 @@ export interface MCPPrompt {
|
|
|
157
159
|
description?: string;
|
|
158
160
|
required?: boolean;
|
|
159
161
|
}>;
|
|
162
|
+
template?: string;
|
|
163
|
+
}
|
|
164
|
+
export interface MCPVerificationOptions {
|
|
165
|
+
timeout?: number;
|
|
166
|
+
includeResourceContents?: boolean;
|
|
167
|
+
includePromptDetails?: boolean;
|
|
168
|
+
includeTokenCounts?: boolean;
|
|
160
169
|
}
|
|
161
170
|
export interface MCPCapabilities {
|
|
162
171
|
tools: MCPTool[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON Schema type definitions for MCP tool parameter schemas
|
|
3
|
+
* Based on JSON Schema Draft 07 specification
|
|
4
|
+
*/
|
|
5
|
+
export interface JSONSchemaProperty {
|
|
6
|
+
type?: string | string[];
|
|
7
|
+
description?: string;
|
|
8
|
+
enum?: any[];
|
|
9
|
+
default?: any;
|
|
10
|
+
minimum?: number;
|
|
11
|
+
maximum?: number;
|
|
12
|
+
minLength?: number;
|
|
13
|
+
maxLength?: number;
|
|
14
|
+
pattern?: string;
|
|
15
|
+
items?: JSONSchemaProperty;
|
|
16
|
+
minItems?: number;
|
|
17
|
+
maxItems?: number;
|
|
18
|
+
properties?: Record<string, JSONSchemaProperty>;
|
|
19
|
+
required?: string[];
|
|
20
|
+
additionalProperties?: boolean | JSONSchemaProperty;
|
|
21
|
+
}
|
|
22
|
+
export interface JSONSchema {
|
|
23
|
+
$schema?: string;
|
|
24
|
+
type?: string | string[];
|
|
25
|
+
properties?: Record<string, JSONSchemaProperty>;
|
|
26
|
+
required?: string[];
|
|
27
|
+
additionalProperties?: boolean | JSONSchemaProperty;
|
|
28
|
+
description?: string;
|
|
29
|
+
title?: string;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=jsonSchema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonSchema.d.ts","sourceRoot":"","sources":["../../src/types/jsonSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;CACrD;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,oBAAoB,CAAC,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonSchema.js","sourceRoot":"","sources":["../../src/types/jsonSchema.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Version Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for extracting package names and versions from command strings
|
|
5
|
+
* and fetching version information from package registries (npm, PyPI).
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Extract explicit version from a package specifier
|
|
9
|
+
*
|
|
10
|
+
* @param packageSpec - Package specification (e.g., "chrome-devtools-mcp@0.7.0")
|
|
11
|
+
* @returns Version string or null if not found
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* extractExplicitVersion("chrome-devtools-mcp@0.7.0") // "0.7.0"
|
|
16
|
+
* extractExplicitVersion("@org/package@1.2.3") // "1.2.3"
|
|
17
|
+
* extractExplicitVersion("package@latest") // null (not explicit)
|
|
18
|
+
* extractExplicitVersion("package") // null (no version)
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare function extractExplicitVersion(packageSpec: string): string | null;
|
|
22
|
+
/**
|
|
23
|
+
* Extract package name from a package specifier
|
|
24
|
+
*
|
|
25
|
+
* Strips version tags and handles scoped packages.
|
|
26
|
+
*
|
|
27
|
+
* @param packageSpec - Package specification with or without version
|
|
28
|
+
* @returns Clean package name
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* extractPackageName("chrome-devtools-mcp@latest") // "chrome-devtools-mcp"
|
|
33
|
+
* extractPackageName("@modelcontextprotocol/server@1.0.0") // "@modelcontextprotocol/server"
|
|
34
|
+
* extractPackageName("package") // "package"
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function extractPackageName(packageSpec: string): string;
|
|
38
|
+
/**
|
|
39
|
+
* Extract package information from a command and its arguments
|
|
40
|
+
*
|
|
41
|
+
* Handles various package managers and command formats:
|
|
42
|
+
* - npx, bunx, pnpm dlx
|
|
43
|
+
* - With or without -y flag
|
|
44
|
+
* - Scoped and unscoped packages
|
|
45
|
+
* - Version specifiers (@version, @latest)
|
|
46
|
+
*
|
|
47
|
+
* @param command - Command being executed (e.g., "npx", "bunx")
|
|
48
|
+
* @param args - Command arguments array
|
|
49
|
+
* @returns Package name/specifier or null if not found
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```typescript
|
|
53
|
+
* extractPackageFromCommand("npx", ["-y", "chrome-devtools-mcp@latest"])
|
|
54
|
+
* // "chrome-devtools-mcp@latest"
|
|
55
|
+
*
|
|
56
|
+
* extractPackageFromCommand("bunx", ["@modelcontextprotocol/server-everything"])
|
|
57
|
+
* // "@modelcontextprotocol/server-everything"
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export declare function extractPackageFromCommand(command: string | undefined, args: string[] | undefined): string | null;
|
|
61
|
+
/**
|
|
62
|
+
* Fetch the latest version of an npm package from the registry
|
|
63
|
+
*
|
|
64
|
+
* Uses in-memory caching to avoid repeated API calls. Handles network
|
|
65
|
+
* errors and invalid package names gracefully.
|
|
66
|
+
*
|
|
67
|
+
* @param packageSpec - Package name or specification
|
|
68
|
+
* @param options - Fetch options
|
|
69
|
+
* @param options.timeout - Request timeout in milliseconds (default: 5000)
|
|
70
|
+
* @param options.useCache - Whether to use cached results (default: true)
|
|
71
|
+
* @returns Version string or null if not found
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const version = await fetchLatestVersion("chrome-devtools-mcp");
|
|
76
|
+
* // "0.7.0"
|
|
77
|
+
*
|
|
78
|
+
* const version = await fetchLatestVersion("@modelcontextprotocol/server-everything");
|
|
79
|
+
* // "0.6.2"
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export declare function fetchLatestVersion(packageSpec: string, options?: {
|
|
83
|
+
timeout?: number;
|
|
84
|
+
useCache?: boolean;
|
|
85
|
+
}): Promise<string | null>;
|
|
86
|
+
/**
|
|
87
|
+
* Clear the version cache
|
|
88
|
+
*
|
|
89
|
+
* Useful for testing or when you want to force fresh registry lookups.
|
|
90
|
+
*/
|
|
91
|
+
export declare function clearVersionCache(): void;
|
|
92
|
+
/**
|
|
93
|
+
* Get cache statistics
|
|
94
|
+
*
|
|
95
|
+
* @returns Object with cache size and entry details
|
|
96
|
+
*/
|
|
97
|
+
export declare function getVersionCacheStats(): {
|
|
98
|
+
size: number;
|
|
99
|
+
entries: Array<{
|
|
100
|
+
package: string;
|
|
101
|
+
version: string;
|
|
102
|
+
age: number;
|
|
103
|
+
}>;
|
|
104
|
+
};
|
|
105
|
+
//# sourceMappingURL=packageVersion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../../src/utils/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAUzE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAO9D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,GACzB,MAAM,GAAG,IAAI,CAsCf;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GACrD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmExB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAY1H"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package Version Utilities
|
|
3
|
+
*
|
|
4
|
+
* Utilities for extracting package names and versions from command strings
|
|
5
|
+
* and fetching version information from package registries (npm, PyPI).
|
|
6
|
+
*/
|
|
7
|
+
import { logger } from './logger.js';
|
|
8
|
+
/**
|
|
9
|
+
* Cache for registry API responses to avoid repeated requests
|
|
10
|
+
* Key: package name, Value: { version: string, timestamp: number }
|
|
11
|
+
*/
|
|
12
|
+
const versionCache = new Map();
|
|
13
|
+
const CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
14
|
+
/**
|
|
15
|
+
* Extract explicit version from a package specifier
|
|
16
|
+
*
|
|
17
|
+
* @param packageSpec - Package specification (e.g., "chrome-devtools-mcp@0.7.0")
|
|
18
|
+
* @returns Version string or null if not found
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* extractExplicitVersion("chrome-devtools-mcp@0.7.0") // "0.7.0"
|
|
23
|
+
* extractExplicitVersion("@org/package@1.2.3") // "1.2.3"
|
|
24
|
+
* extractExplicitVersion("package@latest") // null (not explicit)
|
|
25
|
+
* extractExplicitVersion("package") // null (no version)
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export function extractExplicitVersion(packageSpec) {
|
|
29
|
+
// Match semantic version patterns: @1.2.3, @1.2.3-beta.1, etc.
|
|
30
|
+
const versionMatch = packageSpec.match(/@([\d]+\.[\d]+\.[\d]+(?:[-+].+)?$)/);
|
|
31
|
+
if (versionMatch && versionMatch[1]) {
|
|
32
|
+
logger.debug(`[extractExplicitVersion] Found explicit version: ${versionMatch[1]} in "${packageSpec}"`);
|
|
33
|
+
return versionMatch[1];
|
|
34
|
+
}
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Extract package name from a package specifier
|
|
39
|
+
*
|
|
40
|
+
* Strips version tags and handles scoped packages.
|
|
41
|
+
*
|
|
42
|
+
* @param packageSpec - Package specification with or without version
|
|
43
|
+
* @returns Clean package name
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* extractPackageName("chrome-devtools-mcp@latest") // "chrome-devtools-mcp"
|
|
48
|
+
* extractPackageName("@modelcontextprotocol/server@1.0.0") // "@modelcontextprotocol/server"
|
|
49
|
+
* extractPackageName("package") // "package"
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
52
|
+
export function extractPackageName(packageSpec) {
|
|
53
|
+
// Remove version specifiers (@1.2.3, @latest, @next, etc.)
|
|
54
|
+
return packageSpec
|
|
55
|
+
.replace(/@[\d]+\.[\d]+\.[\d]+(?:[-+].+)?$/, '') // Remove semantic versions
|
|
56
|
+
.replace(/@latest$/, '') // Remove @latest
|
|
57
|
+
.replace(/@next$/, '') // Remove @next
|
|
58
|
+
.replace(/@canary$/, ''); // Remove @canary
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Extract package information from a command and its arguments
|
|
62
|
+
*
|
|
63
|
+
* Handles various package managers and command formats:
|
|
64
|
+
* - npx, bunx, pnpm dlx
|
|
65
|
+
* - With or without -y flag
|
|
66
|
+
* - Scoped and unscoped packages
|
|
67
|
+
* - Version specifiers (@version, @latest)
|
|
68
|
+
*
|
|
69
|
+
* @param command - Command being executed (e.g., "npx", "bunx")
|
|
70
|
+
* @param args - Command arguments array
|
|
71
|
+
* @returns Package name/specifier or null if not found
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* extractPackageFromCommand("npx", ["-y", "chrome-devtools-mcp@latest"])
|
|
76
|
+
* // "chrome-devtools-mcp@latest"
|
|
77
|
+
*
|
|
78
|
+
* extractPackageFromCommand("bunx", ["@modelcontextprotocol/server-everything"])
|
|
79
|
+
* // "@modelcontextprotocol/server-everything"
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export function extractPackageFromCommand(command, args) {
|
|
83
|
+
if (!command || !args || args.length === 0) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
// Only handle package manager commands
|
|
87
|
+
const packageManagers = ['npx', 'bunx', 'pnpm', 'yarn'];
|
|
88
|
+
if (!packageManagers.includes(command)) {
|
|
89
|
+
logger.debug(`[extractPackageFromCommand] Not a package manager command: ${command}`);
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
// Skip flags and find the first package-like argument
|
|
93
|
+
for (const arg of args) {
|
|
94
|
+
// Skip flags
|
|
95
|
+
if (arg.startsWith('-')) {
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
// Skip special pnpm/yarn subcommands
|
|
99
|
+
if (arg === 'dlx' || arg === 'exec') {
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
// Check if looks like a package name
|
|
103
|
+
// Scoped: @scope/package or @scope/package@version
|
|
104
|
+
// Unscoped: package or package@version
|
|
105
|
+
// Allow letters, numbers, hyphens, and underscores
|
|
106
|
+
const packagePattern = /^(@[a-z0-9-]+\/)?[a-z0-9_-]+(@[\w.-]+)?$/i;
|
|
107
|
+
if (packagePattern.test(arg)) {
|
|
108
|
+
logger.debug(`[extractPackageFromCommand] Found package: ${arg}`);
|
|
109
|
+
return arg;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
logger.debug(`[extractPackageFromCommand] No package found in args: ${args.join(' ')}`);
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Fetch the latest version of an npm package from the registry
|
|
117
|
+
*
|
|
118
|
+
* Uses in-memory caching to avoid repeated API calls. Handles network
|
|
119
|
+
* errors and invalid package names gracefully.
|
|
120
|
+
*
|
|
121
|
+
* @param packageSpec - Package name or specification
|
|
122
|
+
* @param options - Fetch options
|
|
123
|
+
* @param options.timeout - Request timeout in milliseconds (default: 5000)
|
|
124
|
+
* @param options.useCache - Whether to use cached results (default: true)
|
|
125
|
+
* @returns Version string or null if not found
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* const version = await fetchLatestVersion("chrome-devtools-mcp");
|
|
130
|
+
* // "0.7.0"
|
|
131
|
+
*
|
|
132
|
+
* const version = await fetchLatestVersion("@modelcontextprotocol/server-everything");
|
|
133
|
+
* // "0.6.2"
|
|
134
|
+
* ```
|
|
135
|
+
*/
|
|
136
|
+
export async function fetchLatestVersion(packageSpec, options = {}) {
|
|
137
|
+
const { timeout = 5000, useCache = true } = options;
|
|
138
|
+
// First, check for explicit version in the package spec
|
|
139
|
+
const explicitVersion = extractExplicitVersion(packageSpec);
|
|
140
|
+
if (explicitVersion) {
|
|
141
|
+
return explicitVersion;
|
|
142
|
+
}
|
|
143
|
+
// Clean the package name (remove @latest, @next, etc.)
|
|
144
|
+
const cleanPackageName = extractPackageName(packageSpec);
|
|
145
|
+
// Check cache first
|
|
146
|
+
if (useCache) {
|
|
147
|
+
const cached = versionCache.get(cleanPackageName);
|
|
148
|
+
if (cached && Date.now() - cached.timestamp < CACHE_TTL_MS) {
|
|
149
|
+
logger.debug(`[fetchLatestVersion] Cache hit for: ${cleanPackageName} -> ${cached.version}`);
|
|
150
|
+
return cached.version;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
try {
|
|
154
|
+
logger.debug(`[fetchLatestVersion] Fetching from npm registry: ${cleanPackageName}`);
|
|
155
|
+
// Create abort controller for timeout
|
|
156
|
+
const controller = new AbortController();
|
|
157
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
158
|
+
const url = `https://registry.npmjs.org/${cleanPackageName}/latest`;
|
|
159
|
+
const response = await fetch(url, {
|
|
160
|
+
headers: { Accept: 'application/json' },
|
|
161
|
+
signal: controller.signal,
|
|
162
|
+
});
|
|
163
|
+
clearTimeout(timeoutId);
|
|
164
|
+
if (!response.ok) {
|
|
165
|
+
logger.debug(`[fetchLatestVersion] npm registry returned ${response.status} for ${cleanPackageName}`);
|
|
166
|
+
return null;
|
|
167
|
+
}
|
|
168
|
+
const data = await response.json();
|
|
169
|
+
if (!data.version) {
|
|
170
|
+
logger.debug(`[fetchLatestVersion] No version field in response for ${cleanPackageName}`);
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
// Cache the result
|
|
174
|
+
versionCache.set(cleanPackageName, {
|
|
175
|
+
version: data.version,
|
|
176
|
+
timestamp: Date.now(),
|
|
177
|
+
});
|
|
178
|
+
logger.debug(`[fetchLatestVersion] Success: ${cleanPackageName}@${data.version}`);
|
|
179
|
+
return data.version;
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
if (error instanceof Error) {
|
|
183
|
+
if (error.name === 'AbortError') {
|
|
184
|
+
logger.debug(`[fetchLatestVersion] Timeout fetching version for ${cleanPackageName}`);
|
|
185
|
+
}
|
|
186
|
+
else {
|
|
187
|
+
logger.debug(`[fetchLatestVersion] Error fetching version: ${error.message}`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Clear the version cache
|
|
195
|
+
*
|
|
196
|
+
* Useful for testing or when you want to force fresh registry lookups.
|
|
197
|
+
*/
|
|
198
|
+
export function clearVersionCache() {
|
|
199
|
+
versionCache.clear();
|
|
200
|
+
logger.debug('[clearVersionCache] Cache cleared');
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get cache statistics
|
|
204
|
+
*
|
|
205
|
+
* @returns Object with cache size and entry details
|
|
206
|
+
*/
|
|
207
|
+
export function getVersionCacheStats() {
|
|
208
|
+
const now = Date.now();
|
|
209
|
+
const entries = Array.from(versionCache.entries()).map(([pkg, data]) => ({
|
|
210
|
+
package: pkg,
|
|
211
|
+
version: data.version,
|
|
212
|
+
age: now - data.timestamp,
|
|
213
|
+
}));
|
|
214
|
+
return {
|
|
215
|
+
size: versionCache.size,
|
|
216
|
+
entries,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=packageVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../../src/utils/packageVersion.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/agentinit-1.6.0.tgz
DELETED
|
Binary file
|