agentinit 1.5.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +93 -10
  3. package/dist/agentinit-1.7.0.tgz +0 -0
  4. package/dist/agents/DroidAgent.d.ts +52 -0
  5. package/dist/agents/DroidAgent.d.ts.map +1 -0
  6. package/dist/agents/DroidAgent.js +228 -0
  7. package/dist/agents/DroidAgent.js.map +1 -0
  8. package/dist/cli.js +501 -48
  9. package/dist/commands/apply.d.ts.map +1 -1
  10. package/dist/commands/apply.js +2 -2
  11. package/dist/commands/apply.js.map +1 -1
  12. package/dist/commands/verifyMcp.d.ts.map +1 -1
  13. package/dist/commands/verifyMcp.js +26 -4
  14. package/dist/commands/verifyMcp.js.map +1 -1
  15. package/dist/constants/index.d.ts +1 -1
  16. package/dist/constants/index.d.ts.map +1 -1
  17. package/dist/constants/index.js +1 -1
  18. package/dist/constants/index.js.map +1 -1
  19. package/dist/constants/mcp.d.ts +1 -0
  20. package/dist/constants/mcp.d.ts.map +1 -1
  21. package/dist/constants/mcp.js +2 -0
  22. package/dist/constants/mcp.js.map +1 -1
  23. package/dist/core/agentManager.d.ts.map +1 -1
  24. package/dist/core/agentManager.js +3 -1
  25. package/dist/core/agentManager.js.map +1 -1
  26. package/dist/core/mcpClient.d.ts +124 -6
  27. package/dist/core/mcpClient.d.ts.map +1 -1
  28. package/dist/core/mcpClient.js +385 -39
  29. package/dist/core/mcpClient.js.map +1 -1
  30. package/dist/lib/utils/index.d.ts +3 -1
  31. package/dist/lib/utils/index.d.ts.map +1 -1
  32. package/dist/lib/utils/index.js +4 -1
  33. package/dist/lib/utils/index.js.map +1 -1
  34. package/dist/types/index.d.ts +10 -1
  35. package/dist/types/index.d.ts.map +1 -1
  36. package/dist/types/jsonSchema.d.ts +31 -0
  37. package/dist/types/jsonSchema.d.ts.map +1 -0
  38. package/dist/types/jsonSchema.js +6 -0
  39. package/dist/types/jsonSchema.js.map +1 -0
  40. package/dist/utils/packageVersion.d.ts +105 -0
  41. package/dist/utils/packageVersion.d.ts.map +1 -0
  42. package/dist/utils/packageVersion.js +219 -0
  43. package/dist/utils/packageVersion.js.map +1 -0
  44. package/package.json +1 -1
  45. package/dist/agentinit-1.5.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;;;;;;;;;;;;;GAaG;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"}
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"}
@@ -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;;;;;;;;;;;;;GAaG;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"}
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"}
@@ -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?: any;
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":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,cAAc,GAAG,UAAU,CAAC;IACzC,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,cAAc,EAAE;QACd,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE;QACX,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KACtC,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,oBAAY,aAAa;IACvB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAC9C;AAGD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE;QACH,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,OAAO,CAAC;KACd,CAAC;IACF,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,GAAG,KAAK,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC;IACxG,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,iBAAiB,CAAC;IAChC,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,oBAAoB,EAAE,KAAK,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,oBAAoB,CAAC,SAAS,CAAe,EACtD,MAAM,GAAE,oBAAoB,CAAC,QAAQ,CAAU,EAC/C,IAAI,GAAE,oBAAoB,CAAC,MAAM,CAAU,EAC3C,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,oBAAoB,CAStB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,oBAAoB,EAAE,CAEzE;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,eAAe,EAAE,iBAAiB,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,eAAe,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,YAAY,EACV,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACZ,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,iBAAiB,EAAE,UAAU,CAAC;CACpD;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACxC,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
@@ -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,6 @@
1
+ /**
2
+ * JSON Schema type definitions for MCP tool parameter schemas
3
+ * Based on JSON Schema Draft 07 specification
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=jsonSchema.js.map
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentinit",
3
- "version": "1.5.0",
3
+ "version": "1.7.0",
4
4
  "description": "CLI tool and library for managing AI coding agents and verifying MCP servers",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
Binary file