@easynet/agent-tool 1.0.38 → 1.0.40

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 (43) hide show
  1. package/dist/api/createAgentTools.d.ts.map +1 -1
  2. package/dist/api/main.cjs +14 -14
  3. package/dist/api/main.js +3 -3
  4. package/dist/api/runtimeFromConfig.d.ts +2 -0
  5. package/dist/api/runtimeFromConfig.d.ts.map +1 -1
  6. package/dist/{chunk-7VBJ64YC.js → chunk-3AEYVD7K.js} +54 -8
  7. package/dist/chunk-3AEYVD7K.js.map +1 -0
  8. package/dist/{chunk-WFRHBW32.cjs → chunk-4NNTCCJ6.cjs} +18 -9
  9. package/dist/chunk-4NNTCCJ6.cjs.map +1 -0
  10. package/dist/{chunk-HEMWFWSK.js → chunk-GWUMQRCN.js} +12 -3
  11. package/dist/chunk-GWUMQRCN.js.map +1 -0
  12. package/dist/{chunk-LP7KHBA3.cjs → chunk-J5VQMYUV.cjs} +56 -8
  13. package/dist/chunk-J5VQMYUV.cjs.map +1 -0
  14. package/dist/{chunk-NJ46JOBI.js → chunk-OSENBU42.js} +3 -3
  15. package/dist/{chunk-NJ46JOBI.js.map → chunk-OSENBU42.js.map} +1 -1
  16. package/dist/{chunk-NCPOKCX5.js → chunk-QRI34I5Z.js} +10 -5
  17. package/dist/chunk-QRI34I5Z.js.map +1 -0
  18. package/dist/{chunk-DTWOUO7M.cjs → chunk-TSJRMNOB.cjs} +7 -7
  19. package/dist/{chunk-DTWOUO7M.cjs.map → chunk-TSJRMNOB.cjs.map} +1 -1
  20. package/dist/{chunk-4HPV2K7P.cjs → chunk-ZPXO5IOW.cjs} +21 -16
  21. package/dist/chunk-ZPXO5IOW.cjs.map +1 -0
  22. package/dist/index.cjs +59 -90
  23. package/dist/index.cjs.map +1 -1
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +7 -45
  27. package/dist/index.js.map +1 -1
  28. package/dist/security/sandbox.d.ts +1 -0
  29. package/dist/security/sandbox.d.ts.map +1 -1
  30. package/dist/tools/util/toolConfig.d.ts +2 -0
  31. package/dist/tools/util/toolConfig.d.ts.map +1 -1
  32. package/dist/utils/cli/index.cjs +25 -20
  33. package/dist/utils/cli/index.cjs.map +1 -1
  34. package/dist/utils/cli/index.d.ts.map +1 -1
  35. package/dist/utils/cli/index.js +12 -7
  36. package/dist/utils/cli/index.js.map +1 -1
  37. package/package.json +1 -1
  38. package/dist/chunk-4HPV2K7P.cjs.map +0 -1
  39. package/dist/chunk-7VBJ64YC.js.map +0 -1
  40. package/dist/chunk-HEMWFWSK.js.map +0 -1
  41. package/dist/chunk-LP7KHBA3.cjs.map +0 -1
  42. package/dist/chunk-NCPOKCX5.js.map +0 -1
  43. package/dist/chunk-WFRHBW32.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"createAgentTools.d.ts","sourceRoot":"","sources":["../../src/api/createAgentTools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACnE,sHAAsH;IACtH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkFD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,uBAAuB,GAAG,MAAM,GACzC,uBAAuB,EAAE,CAsB3B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAoBpC"}
1
+ {"version":3,"file":"createAgentTools.d.ts","sourceRoot":"","sources":["../../src/api/createAgentTools.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,MAAM,WAAW,uBAAwB,SAAQ,oBAAoB;IACnE,sHAAsH;IACtH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAwFD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,uBAAuB,GAAG,MAAM,GACzC,uBAAuB,EAAE,CAsB3B;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAoBpC"}
package/dist/api/main.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var chunk4HPV2K7P_cjs = require('../chunk-4HPV2K7P.cjs');
4
- var chunkDTWOUO7M_cjs = require('../chunk-DTWOUO7M.cjs');
5
- var chunkLP7KHBA3_cjs = require('../chunk-LP7KHBA3.cjs');
3
+ var chunkZPXO5IOW_cjs = require('../chunk-ZPXO5IOW.cjs');
4
+ var chunkTSJRMNOB_cjs = require('../chunk-TSJRMNOB.cjs');
5
+ var chunkJ5VQMYUV_cjs = require('../chunk-J5VQMYUV.cjs');
6
6
  require('../chunk-TOSPHMYU.cjs');
7
7
  require('../chunk-DYDNPIV2.cjs');
8
8
  require('../chunk-UUNG3GL3.cjs');
@@ -11,47 +11,47 @@ require('../chunk-UUNG3GL3.cjs');
11
11
 
12
12
  Object.defineProperty(exports, "createAgentTools", {
13
13
  enumerable: true,
14
- get: function () { return chunk4HPV2K7P_cjs.createAgentTools; }
14
+ get: function () { return chunkZPXO5IOW_cjs.createAgentTools; }
15
15
  });
16
16
  Object.defineProperty(exports, "createLangChainToolsAsync", {
17
17
  enumerable: true,
18
- get: function () { return chunk4HPV2K7P_cjs.createLangChainToolsAsync; }
18
+ get: function () { return chunkZPXO5IOW_cjs.createLangChainToolsAsync; }
19
19
  });
20
20
  Object.defineProperty(exports, "createHttpService", {
21
21
  enumerable: true,
22
- get: function () { return chunkDTWOUO7M_cjs.createHttpService; }
22
+ get: function () { return chunkTSJRMNOB_cjs.createHttpService; }
23
23
  });
24
24
  Object.defineProperty(exports, "createMCPServer", {
25
25
  enumerable: true,
26
- get: function () { return chunkDTWOUO7M_cjs.createMCPServer; }
26
+ get: function () { return chunkTSJRMNOB_cjs.createMCPServer; }
27
27
  });
28
28
  Object.defineProperty(exports, "createMCPServerStreamableHttp", {
29
29
  enumerable: true,
30
- get: function () { return chunkDTWOUO7M_cjs.createMCPServerStreamableHttp; }
30
+ get: function () { return chunkTSJRMNOB_cjs.createMCPServerStreamableHttp; }
31
31
  });
32
32
  Object.defineProperty(exports, "createMCPStreamableHttpHandler", {
33
33
  enumerable: true,
34
- get: function () { return chunkDTWOUO7M_cjs.createMCPStreamableHttpHandler; }
34
+ get: function () { return chunkTSJRMNOB_cjs.createMCPStreamableHttpHandler; }
35
35
  });
36
36
  Object.defineProperty(exports, "createOpenAPIServer", {
37
37
  enumerable: true,
38
- get: function () { return chunkDTWOUO7M_cjs.createHttpService; }
38
+ get: function () { return chunkTSJRMNOB_cjs.createHttpService; }
39
39
  });
40
40
  Object.defineProperty(exports, "runMCPServerOverStdio", {
41
41
  enumerable: true,
42
- get: function () { return chunkDTWOUO7M_cjs.runMCPServerOverStdio; }
42
+ get: function () { return chunkTSJRMNOB_cjs.runMCPServerOverStdio; }
43
43
  });
44
44
  Object.defineProperty(exports, "PTCRuntime", {
45
45
  enumerable: true,
46
- get: function () { return chunkLP7KHBA3_cjs.PTCRuntime; }
46
+ get: function () { return chunkJ5VQMYUV_cjs.PTCRuntime; }
47
47
  });
48
48
  Object.defineProperty(exports, "createRuntimeFromConfig", {
49
49
  enumerable: true,
50
- get: function () { return chunkLP7KHBA3_cjs.createRuntimeFromConfig; }
50
+ get: function () { return chunkJ5VQMYUV_cjs.createRuntimeFromConfig; }
51
51
  });
52
52
  Object.defineProperty(exports, "createRuntimeFromConfigSync", {
53
53
  enumerable: true,
54
- get: function () { return chunkLP7KHBA3_cjs.createRuntimeFromConfigSync; }
54
+ get: function () { return chunkJ5VQMYUV_cjs.createRuntimeFromConfigSync; }
55
55
  });
56
56
  //# sourceMappingURL=main.cjs.map
57
57
  //# sourceMappingURL=main.cjs.map
package/dist/api/main.js CHANGED
@@ -1,6 +1,6 @@
1
- export { createAgentTools, createLangChainToolsAsync } from '../chunk-NCPOKCX5.js';
2
- export { createHttpService, createMCPServer, createMCPServerStreamableHttp, createMCPStreamableHttpHandler, createHttpService as createOpenAPIServer, runMCPServerOverStdio } from '../chunk-NJ46JOBI.js';
3
- export { PTCRuntime, createRuntimeFromConfig, createRuntimeFromConfigSync } from '../chunk-7VBJ64YC.js';
1
+ export { createAgentTools, createLangChainToolsAsync } from '../chunk-QRI34I5Z.js';
2
+ export { createHttpService, createMCPServer, createMCPServerStreamableHttp, createMCPStreamableHttpHandler, createHttpService as createOpenAPIServer, runMCPServerOverStdio } from '../chunk-OSENBU42.js';
3
+ export { PTCRuntime, createRuntimeFromConfig, createRuntimeFromConfigSync } from '../chunk-3AEYVD7K.js';
4
4
  import '../chunk-ZRHPGW7W.js';
5
5
  import '../chunk-KDB3MY2H.js';
6
6
  import '../chunk-NTWOVFEY.js';
@@ -21,6 +21,8 @@ export declare const DEFAULT_EXTENSION_PACKAGES: string[];
21
21
  /** Config passed to extension's register(registry, options). */
22
22
  export interface CoreToolsUserConfig {
23
23
  sandboxRoot?: string;
24
+ /** Whether to enforce sandbox boundary checks in fs path resolution. Default: false. */
25
+ enableSandboxValidation?: boolean;
24
26
  /** Allowed hosts (e.g. ["*"] or ["api.github.com"]). Merged with tool.yaml. */
25
27
  allowedHosts?: string[];
26
28
  /** Block these hosts even if allowed. Merged with tool.yaml. */
@@ -1 +1 @@
1
- {"version":3,"file":"runtimeFromConfig.d.ts","sourceRoot":"","sources":["../../src/api/runtimeFromConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAyB3D;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,EAAO,CAAC;AAEvD,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8PAA8P;IAC9P,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,qKAAqK;IACrK,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3D;AAED,uDAAuD;AACvD,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,oEAAoE;IACpE,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,yEAAyE;IACzE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAqFD,qKAAqK;AACrK,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQjG;AAiMD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,oBAAyB,GAAG,mBAAmB,CA0CnG;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAmB9B"}
1
+ {"version":3,"file":"runtimeFromConfig.d.ts","sourceRoot":"","sources":["../../src/api/runtimeFromConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AA0B3D;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,EAAO,CAAC;AAEvD,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wFAAwF;IACxF,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,kFAAkF;IAClF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,8PAA8P;IAC9P,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,qKAAqK;IACrK,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3D;AAED,uDAAuD;AACvD,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,iFAAiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,oEAAoE;IACpE,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,yEAAyE;IACzE,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAqFD,qKAAqK;AACrK,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAQjG;AAiMD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,oBAAyB,GAAG,mBAAmB,CA2CnG;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAoB9B"}
@@ -6,8 +6,9 @@ import { bulkhead, circuitBreaker, handleAll, ConsecutiveBreaker } from 'cockati
6
6
  import { EventEmitter } from 'eventemitter3';
7
7
  import { v4 } from 'uuid';
8
8
  import pTimeout from 'p-timeout';
9
+ import { join, resolve, normalize, dirname, basename, isAbsolute } from 'path';
10
+ import { realpath, access } from 'fs/promises';
9
11
  import { readFileSync, existsSync, rmSync, mkdirSync, readdirSync, renameSync, statSync } from 'fs';
10
- import { join, resolve, dirname, isAbsolute, basename } from 'path';
11
12
  import { homedir } from 'os';
12
13
  import yaml from 'js-yaml';
13
14
  import { execSync } from 'child_process';
@@ -1479,6 +1480,47 @@ function buildInputSchemaHint(inputSchema) {
1479
1480
  if (names.length === 0) return null;
1480
1481
  return `This tool expects input property ${names.length === 1 ? `'${names[0]}'` : `one of [${names.map((n) => `'${n}'`).join(", ")}]`}. Use the exact property names from the tool schema.`;
1481
1482
  }
1483
+ var sandboxValidationEnabled = false;
1484
+ function setSandboxValidationEnabled(enabled) {
1485
+ sandboxValidationEnabled = enabled;
1486
+ }
1487
+ async function resolveSandboxedPath(inputPath, sandboxRoot) {
1488
+ let normalizedRoot;
1489
+ try {
1490
+ normalizedRoot = await realpath(resolve(sandboxRoot));
1491
+ } catch {
1492
+ normalizedRoot = normalize(resolve(sandboxRoot));
1493
+ }
1494
+ const resolved = resolve(normalizedRoot, inputPath);
1495
+ let real;
1496
+ try {
1497
+ await access(resolved);
1498
+ real = await realpath(resolved);
1499
+ } catch {
1500
+ const parentDir = dirname(resolved);
1501
+ let realParent;
1502
+ try {
1503
+ await access(parentDir);
1504
+ realParent = await realpath(parentDir);
1505
+ } catch {
1506
+ realParent = normalize(parentDir);
1507
+ }
1508
+ real = resolve(realParent, basename(resolved));
1509
+ }
1510
+ if (sandboxValidationEnabled && !isWithinRoot(real, normalizedRoot)) {
1511
+ throw createTaggedError(
1512
+ "PATH_OUTSIDE_SANDBOX",
1513
+ `Path "${inputPath}" resolves to "${real}" which is outside sandbox "${normalizedRoot}"`,
1514
+ { inputPath, resolvedPath: real, sandboxRoot: normalizedRoot }
1515
+ );
1516
+ }
1517
+ return real;
1518
+ }
1519
+ function isWithinRoot(path, root) {
1520
+ const normalizedPath = normalize(path);
1521
+ const normalizedRoot = normalize(root);
1522
+ return normalizedPath === normalizedRoot || normalizedPath.startsWith(normalizedRoot + "/");
1523
+ }
1482
1524
 
1483
1525
  // src/tools/util/toolDescriptor.ts
1484
1526
  var TOOL_PATH_REGEX = /^([a-z][a-z0-9-]*):([^/]+)\/([^#]+)(#(.+))?$/;
@@ -1682,6 +1724,7 @@ function loadToolConfig(toolYamlPath) {
1682
1724
  return {
1683
1725
  tools: list2 ?? (packageToolDefaults2 ? Object.keys(packageToolDefaults2) : void 0),
1684
1726
  sandboxedPath: typeof toolsBlock.sandboxedPath === "string" ? toolsBlock.sandboxedPath : parsed.sandboxedPath,
1727
+ enableSandboxValidation: typeof toolsBlock.enableSandboxValidation === "boolean" ? toolsBlock.enableSandboxValidation : parsed.enableSandboxValidation,
1685
1728
  allowedHosts: Array.isArray(toolsBlock.allowedHosts) ? toolsBlock.allowedHosts : parsed.allowedHosts,
1686
1729
  blockedHosts: Array.isArray(toolsBlock.blockedHosts) ? toolsBlock.blockedHosts : parsed.blockedHosts,
1687
1730
  blockedCidrs: Array.isArray(toolsBlock.blockedCidrs) ? toolsBlock.blockedCidrs : parsed.blockedCidrs,
@@ -1694,6 +1737,7 @@ function loadToolConfig(toolYamlPath) {
1694
1737
  return {
1695
1738
  tools: list ?? (packageToolDefaults ? Object.keys(packageToolDefaults) : void 0),
1696
1739
  sandboxedPath: parsed.sandboxedPath,
1740
+ enableSandboxValidation: typeof parsed.enableSandboxValidation === "boolean" ? parsed.enableSandboxValidation : void 0,
1697
1741
  allowedHosts: Array.isArray(parsed.allowedHosts) ? parsed.allowedHosts : void 0,
1698
1742
  blockedHosts: Array.isArray(parsed.blockedHosts) ? parsed.blockedHosts : void 0,
1699
1743
  blockedCidrs: Array.isArray(parsed.blockedCidrs) ? parsed.blockedCidrs : void 0,
@@ -1701,7 +1745,7 @@ function loadToolConfig(toolYamlPath) {
1701
1745
  packageToolDefaults
1702
1746
  };
1703
1747
  }
1704
- function resolveSandboxedPath(toolYamlPath, sandboxedPath) {
1748
+ function resolveSandboxedPath2(toolYamlPath, sandboxedPath) {
1705
1749
  const expanded = sandboxedPath.startsWith("~/") ? join(homedir(), sandboxedPath.slice(2)) : sandboxedPath === "~" ? homedir() : sandboxedPath.startsWith("~") && (sandboxedPath.length === 1 || sandboxedPath[1] === "/") ? join(homedir(), sandboxedPath.slice(1)) : sandboxedPath;
1706
1750
  const configDir = dirname(resolve(toolYamlPath));
1707
1751
  return resolve(configDir, expanded);
@@ -1710,7 +1754,7 @@ var CACHE_SUBDIR = ".agent/cache";
1710
1754
  function getCacheBaseFromToolConfig(toolYamlPath) {
1711
1755
  const config = loadToolConfig(toolYamlPath);
1712
1756
  if (!config.sandboxedPath || typeof config.sandboxedPath !== "string") return void 0;
1713
- const sandboxRoot = resolveSandboxedPath(toolYamlPath, config.sandboxedPath);
1757
+ const sandboxRoot = resolveSandboxedPath2(toolYamlPath, config.sandboxedPath);
1714
1758
  return join(sandboxRoot, CACHE_SUBDIR);
1715
1759
  }
1716
1760
  function findAndLoadToolConfig(dir) {
@@ -1992,8 +2036,8 @@ function loadExtensionForDescriptorSync(descriptor, configFilePath, stepLog) {
1992
2036
  if (typeof fn === "function") {
1993
2037
  const installed = getInstalledPackageVersionFromRequire(parsed.packageName, configRequire);
1994
2038
  const requested = parsed.version === "latest" || !parsed.version?.trim() ? null : parsed.version;
1995
- const resolvedVersion = installed ?? (requested === null ? resolveLatestVersionFromRegistry(parsed.packageName) : requested);
1996
- if (requested === null || installed === requested) {
2039
+ const resolvedVersion = requested === null ? resolveLatestVersionFromRegistry(parsed.packageName) : requested;
2040
+ if (installed === resolvedVersion) {
1997
2041
  if (stepLog) stepLog(`Loaded ${parsed.packageName}@${resolvedVersion} from node_modules`);
1998
2042
  return { register: fn, descriptor: entryStr, resolvedVersion };
1999
2043
  }
@@ -2103,6 +2147,7 @@ async function loadAllExtensionsFromToolYamlAsync(configFilePath, stepLog) {
2103
2147
  function createRuntimeFromConfigSync(options = {}) {
2104
2148
  const registry = new ToolRegistry();
2105
2149
  const stepLog = options.stepLog;
2150
+ setSandboxValidationEnabled(options.coreTools?.enableSandboxValidation === true);
2106
2151
  if (options.coreTools !== void 0) {
2107
2152
  if (options.configFilePath) {
2108
2153
  const all = loadAllExtensionsFromToolYamlSync(options.configFilePath, stepLog);
@@ -2138,6 +2183,7 @@ function createRuntimeFromConfigSync(options = {}) {
2138
2183
  return { runtime, registry };
2139
2184
  }
2140
2185
  async function createRuntimeFromConfig(options = {}) {
2186
+ setSandboxValidationEnabled(options.coreTools?.enableSandboxValidation === true);
2141
2187
  if (options.coreTools !== void 0 && options.configFilePath) {
2142
2188
  const all = await loadAllExtensionsFromToolYamlAsync(options.configFilePath, options.stepLog);
2143
2189
  if (all.length > 0) {
@@ -2163,6 +2209,6 @@ var MCP_KIND = "mcp";
2163
2209
  var LANGCHAIN_KIND = "langchain";
2164
2210
  var LANGCHAIN_DIR_NAME = "langchain";
2165
2211
 
2166
- export { BudgetManager, EventLog, LANGCHAIN_DIR_NAME, LANGCHAIN_KIND, MCP_KIND, Metrics, PTCRuntime, PolicyDeniedError, PolicyEngine, SchemaValidationError, SchemaValidator, Tracing, buildEvidence, createLogger, createRuntimeFromConfig, createRuntimeFromConfigSync, ensurePackageInCache, expandToolDescriptorsToRegistryNames, fileDescriptorToPackagePrefix, findAndLoadToolConfig, getDisplayScope, getPackageEntryPath, importFromCache, isBarePackageDescriptor, isNpmToolDescriptor, loadToolConfig, normalizeToolList, npmDescriptorToPackagePrefixWithVersion, npmDescriptorToRegistryPrefix, parseNpmToolDescriptor, resolveLatestVersionFromRegistry, resolveNpmToolDescriptor, resolveSandboxedPath, resolveToolDescriptor, sanitizeForLog, summarizeForLog };
2167
- //# sourceMappingURL=chunk-7VBJ64YC.js.map
2168
- //# sourceMappingURL=chunk-7VBJ64YC.js.map
2212
+ export { BudgetManager, EventLog, LANGCHAIN_DIR_NAME, LANGCHAIN_KIND, MCP_KIND, Metrics, PTCRuntime, PolicyDeniedError, PolicyEngine, SchemaValidationError, SchemaValidator, Tracing, buildEvidence, createLogger, createRuntimeFromConfig, createRuntimeFromConfigSync, ensurePackageInCache, expandToolDescriptorsToRegistryNames, fileDescriptorToPackagePrefix, findAndLoadToolConfig, getDisplayScope, getPackageEntryPath, importFromCache, isBarePackageDescriptor, isNpmToolDescriptor, loadToolConfig, normalizeToolList, npmDescriptorToPackagePrefixWithVersion, npmDescriptorToRegistryPrefix, parseNpmToolDescriptor, resolveLatestVersionFromRegistry, resolveNpmToolDescriptor, resolveSandboxedPath, resolveSandboxedPath2, resolveToolDescriptor, sanitizeForLog, setSandboxValidationEnabled, summarizeForLog };
2213
+ //# sourceMappingURL=chunk-3AEYVD7K.js.map
2214
+ //# sourceMappingURL=chunk-3AEYVD7K.js.map