@easynet/agent-tool 1.0.24 → 1.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/api/extension/createExtension.d.ts +38 -0
  2. package/dist/api/extension/createExtension.d.ts.map +1 -0
  3. package/dist/api/extension/dynamicImportAdapter.d.ts +3 -2
  4. package/dist/api/extension/dynamicImportAdapter.d.ts.map +1 -1
  5. package/dist/api/extension/generateExtensionManifest.d.ts +24 -0
  6. package/dist/api/extension/generateExtensionManifest.d.ts.map +1 -0
  7. package/dist/api/extension/index.d.ts +4 -0
  8. package/dist/api/extension/index.d.ts.map +1 -1
  9. package/dist/api/extension/registerExtension.d.ts +6 -5
  10. package/dist/api/extension/registerExtension.d.ts.map +1 -1
  11. package/dist/api/extension/registerFromManifest.d.ts +2 -2
  12. package/dist/api/extension/registerFromManifest.d.ts.map +1 -1
  13. package/dist/api/main.cjs +14 -14
  14. package/dist/api/main.js +3 -3
  15. package/dist/api/runtimeFromConfig.d.ts +8 -8
  16. package/dist/api/runtimeFromConfig.d.ts.map +1 -1
  17. package/dist/{chunk-AT3N7SQK.cjs → chunk-5CDN24FP.cjs} +11 -10
  18. package/dist/chunk-5CDN24FP.cjs.map +1 -0
  19. package/dist/{chunk-ZRDI2RKU.js → chunk-AO2RY5AI.js} +3 -3
  20. package/dist/{chunk-ZRDI2RKU.js.map → chunk-AO2RY5AI.js.map} +1 -1
  21. package/dist/{chunk-AH4NI4GN.cjs → chunk-AOEZBP6L.cjs} +18 -46
  22. package/dist/chunk-AOEZBP6L.cjs.map +1 -0
  23. package/dist/{chunk-P2LVZGZ4.cjs → chunk-B5CAENK6.cjs} +7 -7
  24. package/dist/{chunk-P2LVZGZ4.cjs.map → chunk-B5CAENK6.cjs.map} +1 -1
  25. package/dist/{chunk-QP5FIRC2.js → chunk-JEP26OIY.js} +3 -3
  26. package/dist/{chunk-QP5FIRC2.js.map → chunk-JEP26OIY.js.map} +1 -1
  27. package/dist/{chunk-FWIMPZC2.cjs → chunk-NA2YBWZJ.cjs} +14 -14
  28. package/dist/{chunk-FWIMPZC2.cjs.map → chunk-NA2YBWZJ.cjs.map} +1 -1
  29. package/dist/{chunk-BOMOGAFZ.js → chunk-P5YQNWQT.js} +5 -4
  30. package/dist/chunk-P5YQNWQT.js.map +1 -0
  31. package/dist/{chunk-BPHY6UVK.js → chunk-SO32CIHJ.js} +17 -45
  32. package/dist/chunk-SO32CIHJ.js.map +1 -0
  33. package/dist/index.cjs +166 -73
  34. package/dist/index.cjs.map +1 -1
  35. package/dist/index.d.ts +2 -2
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +112 -21
  38. package/dist/index.js.map +1 -1
  39. package/dist/tools/function/scanner.d.ts.map +1 -1
  40. package/dist/utils/cli/index.cjs +17 -17
  41. package/dist/utils/cli/index.js +3 -3
  42. package/package.json +1 -1
  43. package/dist/chunk-AH4NI4GN.cjs.map +0 -1
  44. package/dist/chunk-AT3N7SQK.cjs.map +0 -1
  45. package/dist/chunk-BOMOGAFZ.js.map +0 -1
  46. package/dist/chunk-BPHY6UVK.js.map +0 -1
package/dist/index.cjs CHANGED
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkFWIMPZC2_cjs = require('./chunk-FWIMPZC2.cjs');
4
- var chunkAT3N7SQK_cjs = require('./chunk-AT3N7SQK.cjs');
5
- var chunkAH4NI4GN_cjs = require('./chunk-AH4NI4GN.cjs');
3
+ var chunkNA2YBWZJ_cjs = require('./chunk-NA2YBWZJ.cjs');
4
+ var chunk5CDN24FP_cjs = require('./chunk-5CDN24FP.cjs');
5
+ var chunkAOEZBP6L_cjs = require('./chunk-AOEZBP6L.cjs');
6
6
  var chunkTOSPHMYU_cjs = require('./chunk-TOSPHMYU.cjs');
7
7
  require('./chunk-4KTWJQ32.cjs');
8
8
  var chunkDYDNPIV2_cjs = require('./chunk-DYDNPIV2.cjs');
9
9
  var promises = require('dns/promises');
10
- var path2 = require('path');
10
+ var path6 = require('path');
11
11
  var promises$1 = require('fs/promises');
12
12
  var async_hooks = require('async_hooks');
13
13
  var url = require('url');
@@ -16,7 +16,7 @@ var yaml = require('js-yaml');
16
16
 
17
17
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
18
18
 
19
- var path2__default = /*#__PURE__*/_interopDefault(path2);
19
+ var path6__default = /*#__PURE__*/_interopDefault(path6);
20
20
  var yaml__default = /*#__PURE__*/_interopDefault(yaml);
21
21
 
22
22
  async function validateUrl(url, options) {
@@ -196,25 +196,25 @@ function expandIpv6(ip) {
196
196
  async function resolveSandboxedPath(inputPath, sandboxRoot) {
197
197
  let normalizedRoot;
198
198
  try {
199
- normalizedRoot = await promises$1.realpath(path2.resolve(sandboxRoot));
199
+ normalizedRoot = await promises$1.realpath(path6.resolve(sandboxRoot));
200
200
  } catch {
201
- normalizedRoot = path2.normalize(path2.resolve(sandboxRoot));
201
+ normalizedRoot = path6.normalize(path6.resolve(sandboxRoot));
202
202
  }
203
- const resolved = path2.resolve(normalizedRoot, inputPath);
203
+ const resolved = path6.resolve(normalizedRoot, inputPath);
204
204
  let real;
205
205
  try {
206
206
  await promises$1.access(resolved);
207
207
  real = await promises$1.realpath(resolved);
208
208
  } catch {
209
- const parentDir = path2.dirname(resolved);
209
+ const parentDir = path6.dirname(resolved);
210
210
  let realParent;
211
211
  try {
212
212
  await promises$1.access(parentDir);
213
213
  realParent = await promises$1.realpath(parentDir);
214
214
  } catch {
215
- realParent = path2.normalize(parentDir);
215
+ realParent = path6.normalize(parentDir);
216
216
  }
217
- real = path2.resolve(realParent, path2.basename(resolved));
217
+ real = path6.resolve(realParent, path6.basename(resolved));
218
218
  }
219
219
  if (!isWithinRoot(real, normalizedRoot)) {
220
220
  throw chunkTOSPHMYU_cjs.createTaggedError(
@@ -225,9 +225,9 @@ async function resolveSandboxedPath(inputPath, sandboxRoot) {
225
225
  }
226
226
  return real;
227
227
  }
228
- function isWithinRoot(path5, root) {
229
- const normalizedPath = path2.normalize(path5);
230
- const normalizedRoot = path2.normalize(root);
228
+ function isWithinRoot(path7, root) {
229
+ const normalizedPath = path6.normalize(path7);
230
+ const normalizedRoot = path6.normalize(root);
231
231
  return normalizedPath === normalizedRoot || normalizedPath.startsWith(normalizedRoot + "/");
232
232
  }
233
233
  function createContextRunner() {
@@ -258,7 +258,7 @@ function createDynamicImportAdapter(options) {
258
258
  }
259
259
  const defaultArgs = meta?.defaultArgs ?? {};
260
260
  const mergedArgs = Object.keys(defaultArgs).length === 0 ? args : { ...defaultArgs, ...args };
261
- const modulePath = path2__default.default.join(packageRoot, `${sourcePath}.js`);
261
+ const modulePath = path6__default.default.join(packageRoot, `${sourcePath}.js`);
262
262
  const mod = await import(url.pathToFileURL(modulePath).href);
263
263
  const handler = mod[exportName];
264
264
  if (typeof handler !== "function") {
@@ -266,16 +266,16 @@ function createDynamicImportAdapter(options) {
266
266
  `Extension tool ${spec.name}: export "${exportName}" from ${sourcePath} is not a function`
267
267
  );
268
268
  }
269
- const ctx = getExtensionContext(execCtx);
269
+ const ctx = getExtensionContext(execCtx, spec);
270
270
  const output = await contextRunner.runWith(ctx, () => handler(mergedArgs));
271
271
  return { result: output.result, raw: { evidence: output.evidence } };
272
272
  }
273
273
  };
274
274
  }
275
275
  function loadToolYaml(packageRoot, sourcePath) {
276
- const dir = path2__default.default.dirname(sourcePath);
277
- const base = path2__default.default.basename(sourcePath);
278
- const yamlPath = path2__default.default.join(packageRoot, dir, `${base}.tool.yaml`);
276
+ const dir = path6__default.default.dirname(sourcePath);
277
+ const base = path6__default.default.basename(sourcePath);
278
+ const yamlPath = path6__default.default.join(packageRoot, dir, `${base}.tool.yaml`);
279
279
  if (!fs.existsSync(yamlPath)) return void 0;
280
280
  try {
281
281
  const raw = fs.readFileSync(yamlPath, "utf-8");
@@ -296,14 +296,16 @@ function loadToolYaml(packageRoot, sourcePath) {
296
296
  return void 0;
297
297
  }
298
298
  }
299
+
300
+ // src/api/extension/registerFromManifest.ts
299
301
  function loadExtensionManifest(manifestPathOrDir) {
300
- const p = path2__default.default.resolve(manifestPathOrDir);
302
+ const p = path6__default.default.resolve(manifestPathOrDir);
301
303
  let manifestPath;
302
304
  if (fs.existsSync(p) && fs.statSync(p).isFile()) {
303
305
  manifestPath = p;
304
306
  } else {
305
- const inDir = path2__default.default.join(p, "core-tools-manifest.json");
306
- const inDist = path2__default.default.join(p, "dist", "core-tools-manifest.json");
307
+ const inDir = path6__default.default.join(p, "core-tools-manifest.json");
308
+ const inDist = path6__default.default.join(p, "dist", "core-tools-manifest.json");
307
309
  manifestPath = fs.existsSync(inDir) ? inDir : inDist;
308
310
  }
309
311
  const raw = fs.readFileSync(manifestPath, "utf-8");
@@ -350,8 +352,8 @@ function registerToolsFromManifest(registry, options) {
350
352
  return registered;
351
353
  }
352
354
  function resolveExtensionPackageRoot(metaUrlOrPath) {
353
- const dir = metaUrlOrPath.startsWith("file:") ? path2__default.default.dirname(url.fileURLToPath(metaUrlOrPath)) : path2__default.default.resolve(metaUrlOrPath);
354
- const dist = path2__default.default.join(dir, "dist");
355
+ const dir = metaUrlOrPath.startsWith("file:") ? path6__default.default.dirname(url.fileURLToPath(metaUrlOrPath)) : path6__default.default.resolve(metaUrlOrPath);
356
+ const dist = path6__default.default.join(dir, "dist");
355
357
  return fs.existsSync(dist) ? dist : dir;
356
358
  }
357
359
 
@@ -372,7 +374,10 @@ function registerExtension(registry, options) {
372
374
  const adapter = createDynamicImportAdapter({
373
375
  kind,
374
376
  packageRoot,
375
- getExtensionContext: (execCtx) => ({ execCtx, config }),
377
+ getExtensionContext: (execCtx, spec) => ({
378
+ execCtx,
379
+ config: config !== void 0 ? { ...config, ...spec._meta?.defaultArgs ?? {} } : spec._meta?.defaultArgs ?? {}
380
+ }),
376
381
  contextRunner: {
377
382
  runWith(ctx, fn) {
378
383
  return contextRunner.runWith(ctx, fn);
@@ -382,6 +387,92 @@ function registerExtension(registry, options) {
382
387
  return adapter;
383
388
  }
384
389
 
390
+ // src/api/extension/createExtension.ts
391
+ function resolvePackagePath(options) {
392
+ if (options.packagePath != null && options.packagePath !== "") return options.packagePath;
393
+ if (options.importMeta?.url) return path6__default.default.dirname(url.fileURLToPath(options.importMeta.url));
394
+ throw new Error("createExtension: provide packagePath or importMeta");
395
+ }
396
+ function createExtension(options) {
397
+ const packagePath = resolvePackagePath(options);
398
+ const kind = options.kind;
399
+ const buildConfig = "buildConfig" in options ? options.buildConfig : void 0;
400
+ const contextRunner = createContextRunner();
401
+ return {
402
+ register(registry, userConfigOrOpts, opts) {
403
+ const config = buildConfig ? buildConfig(userConfigOrOpts) : void 0;
404
+ return registerExtension(registry, {
405
+ packagePath,
406
+ kind,
407
+ config,
408
+ getContextRunner: () => contextRunner,
409
+ only: opts?.only ?? userConfigOrOpts?.only,
410
+ namePrefixes: opts?.namePrefixes ?? userConfigOrOpts?.namePrefixes
411
+ });
412
+ },
413
+ getContext() {
414
+ return contextRunner.getContext();
415
+ },
416
+ runWith(ctx, fn) {
417
+ return contextRunner.runWith(ctx, fn);
418
+ }
419
+ };
420
+ }
421
+ function generateExtensionManifest(projectRoot = process.cwd(), options = {}) {
422
+ const root = path6__default.default.resolve(projectRoot);
423
+ const outDir = path6__default.default.resolve(options.outDir ?? path6__default.default.join(root, "dist"));
424
+ const kind = options.kind ?? "core";
425
+ const { specs, errors } = chunk5CDN24FP_cjs.scanForTools({
426
+ projectPath: root,
427
+ include: options.include ?? ["**/*.ts"],
428
+ tsconfigPath: options.tsconfigPath
429
+ });
430
+ if (errors.length > 0) {
431
+ console.warn("generateExtensionManifest: scan errors", errors);
432
+ }
433
+ const entries = specs.map((spec) => {
434
+ const sourcePathNoExt = (spec.sourcePath ?? "").replace(/\.(ts|tsx)$/i, "");
435
+ const coreName = `${kind}/${sourcePathNoExt.replace(/\//g, ".")}`;
436
+ const sideEffect = spec._meta?.hitl?.sideEffect ?? "none";
437
+ return {
438
+ coreName,
439
+ description: spec.description ?? sourcePathNoExt,
440
+ inputSchema: spec.inputSchema ?? { type: "object", additionalProperties: true },
441
+ outputSchema: spec.outputSchema ?? { type: "object", additionalProperties: true },
442
+ sourcePath: sourcePathNoExt,
443
+ exportName: spec.exportName ?? "",
444
+ sideEffect
445
+ };
446
+ });
447
+ if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });
448
+ const manifestPath = path6__default.default.join(outDir, "core-tools-manifest.json");
449
+ fs.writeFileSync(
450
+ manifestPath,
451
+ JSON.stringify({ kind, tools: entries }, null, 2),
452
+ "utf-8"
453
+ );
454
+ let toolYamlCopied = 0;
455
+ const copyDirs = options.copyToolYamlDirs;
456
+ if (copyDirs?.length) {
457
+ for (const d of copyDirs) {
458
+ const srcDir = path6__default.default.join(root, d);
459
+ const destDir = path6__default.default.join(outDir, d);
460
+ if (!fs.existsSync(srcDir)) continue;
461
+ try {
462
+ for (const e of fs.readdirSync(srcDir, { withFileTypes: true })) {
463
+ if (e.isFile() && e.name.endsWith(".tool.yaml")) {
464
+ if (!fs.existsSync(destDir)) fs.mkdirSync(destDir, { recursive: true });
465
+ fs.copyFileSync(path6__default.default.join(srcDir, e.name), path6__default.default.join(destDir, e.name));
466
+ toolYamlCopied++;
467
+ }
468
+ }
469
+ } catch {
470
+ }
471
+ }
472
+ }
473
+ return { manifestPath, toolsCount: entries.length, toolYamlCopied };
474
+ }
475
+
385
476
  // src/api/extension/groupPrefix.ts
386
477
  function getGroupNamePrefixes(options) {
387
478
  const { groups, only, groupPrefixMap } = options;
@@ -406,7 +497,7 @@ var MCPClientAdapter = class {
406
497
  constructor(client) {
407
498
  this.client = client;
408
499
  }
409
- kind = chunkAH4NI4GN_cjs.MCP_KIND;
500
+ kind = chunkAOEZBP6L_cjs.MCP_KIND;
410
501
  async invoke(spec, args, _ctx) {
411
502
  const params = args != null && typeof args === "object" && !Array.isArray(args) ? args : {};
412
503
  const result = await this.client.callTool({ name: spec.name, arguments: params });
@@ -447,7 +538,7 @@ function mcpToolsToSpecs(tools) {
447
538
  return tools.map((t) => ({
448
539
  name: t.name,
449
540
  version: "1.0.0",
450
- kind: chunkAH4NI4GN_cjs.MCP_KIND,
541
+ kind: chunkAOEZBP6L_cjs.MCP_KIND,
451
542
  description: t.description ?? `MCP tool: ${t.name}`,
452
543
  inputSchema: t.inputSchema ?? chunkDYDNPIV2_cjs.DEFAULT_INPUT_SCHEMA,
453
544
  outputSchema: chunkDYDNPIV2_cjs.DEFAULT_OUTPUT_SCHEMA,
@@ -484,11 +575,11 @@ var MCPProcessManager = class {
484
575
 
485
576
  // src/tools/mcp/registerMCPTools.ts
486
577
  async function registerMCPToolsFromConfig(runtime, registry, options = {}) {
487
- const configPath = options.configPath ?? process.env.MCP_CONFIG_PATH ?? path2.join(process.cwd(), "mcp.json");
488
- const dirPath = path2.dirname(configPath);
489
- const entryPoint = path2.basename(configPath);
490
- const toolName = options.toolName ?? chunkAH4NI4GN_cjs.MCP_KIND;
491
- const loaded = await chunkAT3N7SQK_cjs.loadMCPTool(dirPath, { kind: chunkAH4NI4GN_cjs.MCP_KIND, name: toolName, entryPoint });
578
+ const configPath = options.configPath ?? process.env.MCP_CONFIG_PATH ?? path6.join(process.cwd(), "mcp.json");
579
+ const dirPath = path6.dirname(configPath);
580
+ const entryPoint = path6.basename(configPath);
581
+ const toolName = options.toolName ?? chunkAOEZBP6L_cjs.MCP_KIND;
582
+ const loaded = await chunk5CDN24FP_cjs.loadMCPTool(dirPath, { kind: chunkAOEZBP6L_cjs.MCP_KIND, name: toolName, entryPoint });
492
583
  if (!loaded.mcpConfig) {
493
584
  throw new Error("mcp.json must have command or url");
494
585
  }
@@ -504,167 +595,167 @@ async function registerMCPToolsFromConfig(runtime, registry, options = {}) {
504
595
 
505
596
  Object.defineProperty(exports, "LangChainToolsHub", {
506
597
  enumerable: true,
507
- get: function () { return chunkFWIMPZC2_cjs.LangChainToolsHub; }
598
+ get: function () { return chunkNA2YBWZJ_cjs.LangChainToolsHub; }
508
599
  });
509
600
  Object.defineProperty(exports, "createAgentTools", {
510
601
  enumerable: true,
511
- get: function () { return chunkFWIMPZC2_cjs.createAgentTools; }
602
+ get: function () { return chunkNA2YBWZJ_cjs.createAgentTools; }
512
603
  });
513
604
  Object.defineProperty(exports, "DirectoryScanner", {
514
605
  enumerable: true,
515
- get: function () { return chunkAT3N7SQK_cjs.DirectoryScanner; }
606
+ get: function () { return chunk5CDN24FP_cjs.DirectoryScanner; }
516
607
  });
517
608
  Object.defineProperty(exports, "DiscoveryError", {
518
609
  enumerable: true,
519
- get: function () { return chunkAT3N7SQK_cjs.DiscoveryError; }
610
+ get: function () { return chunk5CDN24FP_cjs.DiscoveryError; }
520
611
  });
521
612
  Object.defineProperty(exports, "SkillManifestError", {
522
613
  enumerable: true,
523
- get: function () { return chunkAT3N7SQK_cjs.SkillManifestError; }
614
+ get: function () { return chunk5CDN24FP_cjs.SkillManifestError; }
524
615
  });
525
616
  Object.defineProperty(exports, "buildFunctionToTool", {
526
617
  enumerable: true,
527
- get: function () { return chunkAT3N7SQK_cjs.buildFunctionToTool; }
618
+ get: function () { return chunk5CDN24FP_cjs.buildFunctionToTool; }
528
619
  });
529
620
  Object.defineProperty(exports, "buildMcpPackage", {
530
621
  enumerable: true,
531
- get: function () { return chunkAT3N7SQK_cjs.buildMcpPackage; }
622
+ get: function () { return chunk5CDN24FP_cjs.buildMcpPackage; }
532
623
  });
533
624
  Object.defineProperty(exports, "initProject", {
534
625
  enumerable: true,
535
- get: function () { return chunkAT3N7SQK_cjs.initProject; }
626
+ get: function () { return chunk5CDN24FP_cjs.initProject; }
536
627
  });
537
628
  Object.defineProperty(exports, "loadMCPTool", {
538
629
  enumerable: true,
539
- get: function () { return chunkAT3N7SQK_cjs.loadMCPTool; }
630
+ get: function () { return chunk5CDN24FP_cjs.loadMCPTool; }
540
631
  });
541
632
  Object.defineProperty(exports, "loadSkillDefinition", {
542
633
  enumerable: true,
543
- get: function () { return chunkAT3N7SQK_cjs.loadSkillDefinition; }
634
+ get: function () { return chunk5CDN24FP_cjs.loadSkillDefinition; }
544
635
  });
545
636
  Object.defineProperty(exports, "parseSkillMd", {
546
637
  enumerable: true,
547
- get: function () { return chunkAT3N7SQK_cjs.parseSkillMd; }
638
+ get: function () { return chunk5CDN24FP_cjs.parseSkillMd; }
548
639
  });
549
640
  Object.defineProperty(exports, "runGeneratedMCP", {
550
641
  enumerable: true,
551
- get: function () { return chunkAT3N7SQK_cjs.runGeneratedMCP; }
642
+ get: function () { return chunk5CDN24FP_cjs.runGeneratedMCP; }
552
643
  });
553
644
  Object.defineProperty(exports, "runMcpServer", {
554
645
  enumerable: true,
555
- get: function () { return chunkAT3N7SQK_cjs.runMcpServer; }
646
+ get: function () { return chunk5CDN24FP_cjs.runMcpServer; }
556
647
  });
557
648
  Object.defineProperty(exports, "scan", {
558
649
  enumerable: true,
559
- get: function () { return chunkAT3N7SQK_cjs.scan; }
650
+ get: function () { return chunk5CDN24FP_cjs.scan; }
560
651
  });
561
652
  Object.defineProperty(exports, "scanForTools", {
562
653
  enumerable: true,
563
- get: function () { return chunkAT3N7SQK_cjs.scanForTools; }
654
+ get: function () { return chunk5CDN24FP_cjs.scanForTools; }
564
655
  });
565
656
  Object.defineProperty(exports, "scanSkillResources", {
566
657
  enumerable: true,
567
- get: function () { return chunkAT3N7SQK_cjs.scanSkillResources; }
658
+ get: function () { return chunk5CDN24FP_cjs.scanSkillResources; }
568
659
  });
569
660
  Object.defineProperty(exports, "validateFrontmatter", {
570
661
  enumerable: true,
571
- get: function () { return chunkAT3N7SQK_cjs.validateFrontmatter; }
662
+ get: function () { return chunk5CDN24FP_cjs.validateFrontmatter; }
572
663
  });
573
664
  Object.defineProperty(exports, "BudgetManager", {
574
665
  enumerable: true,
575
- get: function () { return chunkAH4NI4GN_cjs.BudgetManager; }
666
+ get: function () { return chunkAOEZBP6L_cjs.BudgetManager; }
576
667
  });
577
668
  Object.defineProperty(exports, "EventLog", {
578
669
  enumerable: true,
579
- get: function () { return chunkAH4NI4GN_cjs.EventLog; }
670
+ get: function () { return chunkAOEZBP6L_cjs.EventLog; }
580
671
  });
581
672
  Object.defineProperty(exports, "Metrics", {
582
673
  enumerable: true,
583
- get: function () { return chunkAH4NI4GN_cjs.Metrics; }
674
+ get: function () { return chunkAOEZBP6L_cjs.Metrics; }
584
675
  });
585
676
  Object.defineProperty(exports, "PTCRuntime", {
586
677
  enumerable: true,
587
- get: function () { return chunkAH4NI4GN_cjs.PTCRuntime; }
678
+ get: function () { return chunkAOEZBP6L_cjs.PTCRuntime; }
588
679
  });
589
680
  Object.defineProperty(exports, "PolicyDeniedError", {
590
681
  enumerable: true,
591
- get: function () { return chunkAH4NI4GN_cjs.PolicyDeniedError; }
682
+ get: function () { return chunkAOEZBP6L_cjs.PolicyDeniedError; }
592
683
  });
593
684
  Object.defineProperty(exports, "PolicyEngine", {
594
685
  enumerable: true,
595
- get: function () { return chunkAH4NI4GN_cjs.PolicyEngine; }
686
+ get: function () { return chunkAOEZBP6L_cjs.PolicyEngine; }
596
687
  });
597
688
  Object.defineProperty(exports, "SchemaValidationError", {
598
689
  enumerable: true,
599
- get: function () { return chunkAH4NI4GN_cjs.SchemaValidationError; }
690
+ get: function () { return chunkAOEZBP6L_cjs.SchemaValidationError; }
600
691
  });
601
692
  Object.defineProperty(exports, "SchemaValidator", {
602
693
  enumerable: true,
603
- get: function () { return chunkAH4NI4GN_cjs.SchemaValidator; }
694
+ get: function () { return chunkAOEZBP6L_cjs.SchemaValidator; }
604
695
  });
605
696
  Object.defineProperty(exports, "Tracing", {
606
697
  enumerable: true,
607
- get: function () { return chunkAH4NI4GN_cjs.Tracing; }
698
+ get: function () { return chunkAOEZBP6L_cjs.Tracing; }
608
699
  });
609
700
  Object.defineProperty(exports, "buildEvidence", {
610
701
  enumerable: true,
611
- get: function () { return chunkAH4NI4GN_cjs.buildEvidence; }
702
+ get: function () { return chunkAOEZBP6L_cjs.buildEvidence; }
612
703
  });
613
704
  Object.defineProperty(exports, "createLogger", {
614
705
  enumerable: true,
615
- get: function () { return chunkAH4NI4GN_cjs.createLogger; }
706
+ get: function () { return chunkAOEZBP6L_cjs.createLogger; }
616
707
  });
617
708
  Object.defineProperty(exports, "ensurePackageInCache", {
618
709
  enumerable: true,
619
- get: function () { return chunkAH4NI4GN_cjs.ensurePackageInCache; }
710
+ get: function () { return chunkAOEZBP6L_cjs.ensurePackageInCache; }
620
711
  });
621
712
  Object.defineProperty(exports, "expandToolDescriptorsToRegistryNames", {
622
713
  enumerable: true,
623
- get: function () { return chunkAH4NI4GN_cjs.expandToolDescriptorsToRegistryNames; }
714
+ get: function () { return chunkAOEZBP6L_cjs.expandToolDescriptorsToRegistryNames; }
624
715
  });
625
716
  Object.defineProperty(exports, "getPackageEntryPath", {
626
717
  enumerable: true,
627
- get: function () { return chunkAH4NI4GN_cjs.getPackageEntryPath; }
718
+ get: function () { return chunkAOEZBP6L_cjs.getPackageEntryPath; }
628
719
  });
629
720
  Object.defineProperty(exports, "importFromCache", {
630
721
  enumerable: true,
631
- get: function () { return chunkAH4NI4GN_cjs.importFromCache; }
722
+ get: function () { return chunkAOEZBP6L_cjs.importFromCache; }
632
723
  });
633
724
  Object.defineProperty(exports, "isNpmToolDescriptor", {
634
725
  enumerable: true,
635
- get: function () { return chunkAH4NI4GN_cjs.isNpmToolDescriptor; }
726
+ get: function () { return chunkAOEZBP6L_cjs.isNpmToolDescriptor; }
636
727
  });
637
728
  Object.defineProperty(exports, "loadToolConfig", {
638
729
  enumerable: true,
639
- get: function () { return chunkAH4NI4GN_cjs.loadToolConfig; }
730
+ get: function () { return chunkAOEZBP6L_cjs.loadToolConfig; }
640
731
  });
641
732
  Object.defineProperty(exports, "normalizeToolList", {
642
733
  enumerable: true,
643
- get: function () { return chunkAH4NI4GN_cjs.normalizeToolList; }
734
+ get: function () { return chunkAOEZBP6L_cjs.normalizeToolList; }
644
735
  });
645
736
  Object.defineProperty(exports, "npmDescriptorToRegistryPrefix", {
646
737
  enumerable: true,
647
- get: function () { return chunkAH4NI4GN_cjs.npmDescriptorToRegistryPrefix; }
738
+ get: function () { return chunkAOEZBP6L_cjs.npmDescriptorToRegistryPrefix; }
648
739
  });
649
740
  Object.defineProperty(exports, "parseNpmToolDescriptor", {
650
741
  enumerable: true,
651
- get: function () { return chunkAH4NI4GN_cjs.parseNpmToolDescriptor; }
742
+ get: function () { return chunkAOEZBP6L_cjs.parseNpmToolDescriptor; }
652
743
  });
653
744
  Object.defineProperty(exports, "resolveNpmToolDescriptor", {
654
745
  enumerable: true,
655
- get: function () { return chunkAH4NI4GN_cjs.resolveNpmToolDescriptor; }
746
+ get: function () { return chunkAOEZBP6L_cjs.resolveNpmToolDescriptor; }
656
747
  });
657
748
  Object.defineProperty(exports, "resolveToolDescriptor", {
658
749
  enumerable: true,
659
- get: function () { return chunkAH4NI4GN_cjs.resolveToolDescriptor; }
750
+ get: function () { return chunkAOEZBP6L_cjs.resolveToolDescriptor; }
660
751
  });
661
752
  Object.defineProperty(exports, "sanitizeForLog", {
662
753
  enumerable: true,
663
- get: function () { return chunkAH4NI4GN_cjs.sanitizeForLog; }
754
+ get: function () { return chunkAOEZBP6L_cjs.sanitizeForLog; }
664
755
  });
665
756
  Object.defineProperty(exports, "summarizeForLog", {
666
757
  enumerable: true,
667
- get: function () { return chunkAH4NI4GN_cjs.summarizeForLog; }
758
+ get: function () { return chunkAOEZBP6L_cjs.summarizeForLog; }
668
759
  });
669
760
  Object.defineProperty(exports, "ToolRegistry", {
670
761
  enumerable: true,
@@ -703,6 +794,8 @@ exports.MCPProcessManager = MCPProcessManager;
703
794
  exports.connectMCP = connectMCP;
704
795
  exports.createContextRunner = createContextRunner;
705
796
  exports.createDynamicImportAdapter = createDynamicImportAdapter;
797
+ exports.createExtension = createExtension;
798
+ exports.generateExtensionManifest = generateExtensionManifest;
706
799
  exports.getGroupNamePrefixes = getGroupNamePrefixes;
707
800
  exports.isIpInBlockedCidrs = isIpInBlockedCidrs;
708
801
  exports.loadExtensionManifest = loadExtensionManifest;