@easynet/agent-tool 1.0.24 → 1.0.26

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 (49) 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 +29 -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 +12 -10
  16. package/dist/api/runtimeFromConfig.d.ts.map +1 -1
  17. package/dist/{chunk-ZRDI2RKU.js → chunk-7J2DRVCV.js} +3 -3
  18. package/dist/{chunk-ZRDI2RKU.js.map → chunk-7J2DRVCV.js.map} +1 -1
  19. package/dist/{chunk-FWIMPZC2.cjs → chunk-EJSCDVKD.cjs} +14 -14
  20. package/dist/{chunk-FWIMPZC2.cjs.map → chunk-EJSCDVKD.cjs.map} +1 -1
  21. package/dist/{chunk-P2LVZGZ4.cjs → chunk-ETZKGTTF.cjs} +7 -7
  22. package/dist/{chunk-P2LVZGZ4.cjs.map → chunk-ETZKGTTF.cjs.map} +1 -1
  23. package/dist/{chunk-QP5FIRC2.js → chunk-GYUELFVR.js} +3 -3
  24. package/dist/{chunk-QP5FIRC2.js.map → chunk-GYUELFVR.js.map} +1 -1
  25. package/dist/{chunk-AH4NI4GN.cjs → chunk-PKUSCCS6.cjs} +84 -54
  26. package/dist/chunk-PKUSCCS6.cjs.map +1 -0
  27. package/dist/{chunk-BPHY6UVK.js → chunk-UUQGKFSG.js} +83 -53
  28. package/dist/chunk-UUQGKFSG.js.map +1 -0
  29. package/dist/{chunk-BOMOGAFZ.js → chunk-XRCHMWOC.js} +5 -4
  30. package/dist/chunk-XRCHMWOC.js.map +1 -0
  31. package/dist/{chunk-AT3N7SQK.cjs → chunk-ZOQWKN2O.cjs} +11 -10
  32. package/dist/chunk-ZOQWKN2O.cjs.map +1 -0
  33. package/dist/index.cjs +175 -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 +120 -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 +20 -18
  41. package/dist/utils/cli/index.cjs.map +1 -1
  42. package/dist/utils/cli/index.d.ts.map +1 -1
  43. package/dist/utils/cli/index.js +6 -4
  44. package/dist/utils/cli/index.js.map +1 -1
  45. package/package.json +1 -1
  46. package/dist/chunk-AH4NI4GN.cjs.map +0 -1
  47. package/dist/chunk-AT3N7SQK.cjs.map +0 -1
  48. package/dist/chunk-BOMOGAFZ.js.map +0 -1
  49. package/dist/chunk-BPHY6UVK.js.map +0 -1
@@ -1728,11 +1728,7 @@ function getProjectRequire() {
1728
1728
  if (existsSync(join(cwd, "tool.yaml"))) return createRequire(join(cwd, "tool.yaml"));
1729
1729
  return null;
1730
1730
  }
1731
- var DEFAULT_EXTENSION_PACKAGES = [
1732
- "@easynet/agent-tool-builtin-tools",
1733
- "@easynet/agent-tool-builtin",
1734
- "@easynet/agent-tool-buildin"
1735
- ];
1731
+ var DEFAULT_EXTENSION_PACKAGES = [];
1736
1732
  function getInstalledPackageVersion(packageName) {
1737
1733
  const projectRequire = getProjectRequire();
1738
1734
  const requirers = [requireFromPackage];
@@ -1749,6 +1745,9 @@ function getInstalledPackageVersion(packageName) {
1749
1745
  }
1750
1746
  return null;
1751
1747
  }
1748
+ function getRegisterFn(mod) {
1749
+ return mod?.register ?? mod?.registerCoreTools;
1750
+ }
1752
1751
  function loadExtensionFromNodeModules() {
1753
1752
  const projectRequire = getProjectRequire();
1754
1753
  const requirers = [requireFromPackage];
@@ -1757,7 +1756,8 @@ function loadExtensionFromNodeModules() {
1757
1756
  for (const pkg of DEFAULT_EXTENSION_PACKAGES) {
1758
1757
  try {
1759
1758
  const mod = req(pkg);
1760
- if (mod && typeof mod.registerCoreTools === "function") return { registerCoreTools: mod.registerCoreTools, packageName: pkg };
1759
+ const fn = getRegisterFn(mod);
1760
+ if (typeof fn === "function") return { register: fn, packageName: pkg };
1761
1761
  } catch {
1762
1762
  continue;
1763
1763
  }
@@ -1808,6 +1808,44 @@ function parseNpmDescriptor(entry) {
1808
1808
  const version = rest.slice(at + 1).split("#")[0]?.trim() || "latest";
1809
1809
  return { packageName, version };
1810
1810
  }
1811
+ function loadExtensionFromToolYamlNodeModules(configFilePath, stepLog) {
1812
+ const localPath = isAbsolute(configFilePath) ? configFilePath : resolve(process.cwd(), configFilePath);
1813
+ if (!existsSync(localPath)) return null;
1814
+ const config = loadToolConfig(localPath);
1815
+ const tools = config.tools;
1816
+ if (!Array.isArray(tools) || tools.length === 0) return null;
1817
+ const configDir = dirname(localPath);
1818
+ const packageJsonPath = join(configDir, "package.json");
1819
+ if (!existsSync(packageJsonPath)) return null;
1820
+ const configRequire = createRequire(packageJsonPath);
1821
+ if (stepLog) stepLog("Trying tool.yaml npm entries from node_modules");
1822
+ for (const entry of tools) {
1823
+ const entryStr = String(entry).trim();
1824
+ const parsed = parseNpmDescriptor(entryStr);
1825
+ if (!parsed) continue;
1826
+ try {
1827
+ const mod = configRequire(parsed.packageName);
1828
+ const fn = getRegisterFn(mod);
1829
+ if (typeof fn === "function") {
1830
+ const resolvedVersion = getInstalledPackageVersionFromRequire(parsed.packageName, configRequire) ?? "latest";
1831
+ return { register: fn, descriptor: entryStr, resolvedVersion };
1832
+ }
1833
+ } catch {
1834
+ continue;
1835
+ }
1836
+ }
1837
+ return null;
1838
+ }
1839
+ function getInstalledPackageVersionFromRequire(packageName, req) {
1840
+ try {
1841
+ const pkgJsonPath = req.resolve(`${packageName}/package.json`);
1842
+ const json = readFileSync(pkgJsonPath, "utf-8");
1843
+ const pkg = JSON.parse(json);
1844
+ return pkg.version ?? null;
1845
+ } catch {
1846
+ return null;
1847
+ }
1848
+ }
1811
1849
  function loadExtensionFromToolYamlCache(configFilePath, stepLog) {
1812
1850
  const localPath = isAbsolute(configFilePath) ? configFilePath : resolve(process.cwd(), configFilePath);
1813
1851
  if (!existsSync(localPath)) return null;
@@ -1829,9 +1867,10 @@ function loadExtensionFromToolYamlCache(configFilePath, stepLog) {
1829
1867
  const entryPath = getPackageEntryPath(cacheDir);
1830
1868
  const req = createRequire(join(cacheDir, "package.json"));
1831
1869
  const mod = req(entryPath);
1832
- if (mod && typeof mod.registerCoreTools === "function") {
1870
+ const fn = getRegisterFn(mod);
1871
+ if (typeof fn === "function") {
1833
1872
  const resolvedVersion = basename(cacheDir);
1834
- return { registerCoreTools: mod.registerCoreTools, descriptor: entryStr, resolvedVersion };
1873
+ return { register: fn, descriptor: entryStr, resolvedVersion };
1835
1874
  }
1836
1875
  break;
1837
1876
  } catch {
@@ -1861,9 +1900,10 @@ async function loadExtensionFromToolYamlCacheAsync(configFilePath, stepLog) {
1861
1900
  const cacheDir = ensurePackageInCache(parsed.packageName, parsed.version, opts);
1862
1901
  if (stepLog) stepLog(`Using cache: ${cacheDir}`);
1863
1902
  const mod = await importFromCache(cacheDir);
1864
- if (mod && typeof mod.registerCoreTools === "function") {
1903
+ const fn = getRegisterFn(mod);
1904
+ if (typeof fn === "function") {
1865
1905
  const resolvedVersion = basename(cacheDir);
1866
- return { registerCoreTools: mod.registerCoreTools, descriptor: entryStr, resolvedVersion };
1906
+ return { register: fn, descriptor: entryStr, resolvedVersion };
1867
1907
  }
1868
1908
  break;
1869
1909
  } catch {
@@ -1874,13 +1914,6 @@ async function loadExtensionFromToolYamlCacheAsync(configFilePath, stepLog) {
1874
1914
  }
1875
1915
  return null;
1876
1916
  }
1877
- function loadExampleTools() {
1878
- try {
1879
- return requireFromPackage("@easynet/agent-tool-example-tools");
1880
- } catch {
1881
- return null;
1882
- }
1883
- }
1884
1917
  function createRuntimeFromConfigSync(options = {}) {
1885
1918
  const registry = new ToolRegistry();
1886
1919
  const stepLog = options.stepLog;
@@ -1893,70 +1926,67 @@ function createRuntimeFromConfigSync(options = {}) {
1893
1926
  const resolvedVersion = getInstalledPackageVersion(extensionNode.packageName);
1894
1927
  const prefix = npmDescriptorToRegistryPrefix(descriptor, resolvedVersion ?? void 0);
1895
1928
  const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
1896
- const coreAdapter = extensionNode.registerCoreTools(reg, options.coreTools);
1929
+ const coreAdapter = extensionNode.register(reg, options.coreTools);
1897
1930
  const runtime3 = new PTCRuntime({ registry });
1898
1931
  runtime3.registerAdapter(coreAdapter);
1899
- if (options.exampleTools !== void 0) {
1900
- const example = loadExampleTools();
1901
- if (example) {
1902
- const exampleAdapter = example.registerExampleTools(registry, options.exampleTools);
1903
- runtime3.registerAdapter(exampleAdapter);
1904
- }
1905
- }
1906
1932
  return { runtime: runtime3, registry };
1907
1933
  }
1908
1934
  if (options.configFilePath) {
1935
+ const extensionFromNodeModules = loadExtensionFromToolYamlNodeModules(options.configFilePath, stepLog);
1936
+ if (extensionFromNodeModules) {
1937
+ if (stepLog) stepLog("Registered extension from tool.yaml list (node_modules)");
1938
+ const prefix = npmDescriptorToRegistryPrefix(extensionFromNodeModules.descriptor, extensionFromNodeModules.resolvedVersion);
1939
+ const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
1940
+ const coreAdapter = extensionFromNodeModules.register(reg, options.coreTools);
1941
+ const runtime3 = new PTCRuntime({ registry });
1942
+ runtime3.registerAdapter(coreAdapter);
1943
+ return { runtime: runtime3, registry };
1944
+ }
1909
1945
  if (stepLog) stepLog("No extension in node_modules, loading from tool.yaml cache");
1910
1946
  const extensionCache = loadExtensionFromToolYamlCache(options.configFilePath, stepLog);
1911
1947
  if (extensionCache) {
1912
1948
  if (stepLog) stepLog("Registered extension from cache");
1913
1949
  const prefix = npmDescriptorToRegistryPrefix(extensionCache.descriptor, extensionCache.resolvedVersion);
1914
1950
  const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
1915
- const coreAdapter = extensionCache.registerCoreTools(reg, options.coreTools);
1951
+ const coreAdapter = extensionCache.register(reg, options.coreTools);
1916
1952
  const runtime3 = new PTCRuntime({ registry });
1917
1953
  runtime3.registerAdapter(coreAdapter);
1918
- if (options.exampleTools !== void 0) {
1919
- const example = loadExampleTools();
1920
- if (example) {
1921
- const exampleAdapter = example.registerExampleTools(registry, options.exampleTools);
1922
- runtime3.registerAdapter(exampleAdapter);
1923
- }
1924
- }
1925
1954
  return { runtime: runtime3, registry };
1926
1955
  }
1927
1956
  }
1928
1957
  const runtime2 = new PTCRuntime({ registry });
1929
1958
  return { runtime: runtime2, registry };
1930
1959
  }
1931
- if (options.exampleTools !== void 0) {
1932
- const example = loadExampleTools();
1933
- if (example) {
1934
- const exampleAdapter = example.registerExampleTools(registry, options.exampleTools);
1935
- const runtime2 = new PTCRuntime({ registry });
1936
- runtime2.registerAdapter(exampleAdapter);
1937
- return { runtime: runtime2, registry };
1938
- }
1939
- }
1940
1960
  const runtime = new PTCRuntime({ registry });
1941
1961
  return { runtime, registry };
1942
1962
  }
1943
1963
  async function createRuntimeFromConfig(options = {}) {
1944
- const syncResult = createRuntimeFromConfigSync(options);
1945
- if (options.coreTools !== void 0 && options.configFilePath && syncResult.registry.snapshot().length === 0) {
1946
- if (options.stepLog) options.stepLog("No extension from sync, trying async cache load");
1947
- const extension = await loadExtensionFromToolYamlCacheAsync(options.configFilePath, options.stepLog);
1948
- if (extension) {
1949
- if (options.stepLog) options.stepLog("Registered extension from async cache");
1964
+ if (options.coreTools !== void 0 && options.configFilePath) {
1965
+ const fromNodeModules = loadExtensionFromToolYamlNodeModules(options.configFilePath, options.stepLog);
1966
+ if (fromNodeModules) {
1967
+ if (options.stepLog) options.stepLog("Registered extension from tool.yaml list (node_modules)");
1968
+ const registry = new ToolRegistry();
1969
+ const prefix = npmDescriptorToRegistryPrefix(fromNodeModules.descriptor, fromNodeModules.resolvedVersion);
1970
+ const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
1971
+ const coreAdapter = fromNodeModules.register(reg, options.coreTools);
1972
+ const runtime = new PTCRuntime({ registry });
1973
+ runtime.registerAdapter(coreAdapter);
1974
+ return { runtime, registry };
1975
+ }
1976
+ if (options.stepLog) options.stepLog("Loading extension from tool.yaml cache (dynamic: npm pack + import)");
1977
+ const fromCache = await loadExtensionFromToolYamlCacheAsync(options.configFilePath, options.stepLog);
1978
+ if (fromCache) {
1979
+ if (options.stepLog) options.stepLog("Registered extension from cache");
1950
1980
  const registry = new ToolRegistry();
1951
- const prefix = npmDescriptorToRegistryPrefix(extension.descriptor, extension.resolvedVersion);
1981
+ const prefix = npmDescriptorToRegistryPrefix(fromCache.descriptor, fromCache.resolvedVersion);
1952
1982
  const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
1953
- const coreAdapter = extension.registerCoreTools(reg, options.coreTools);
1983
+ const coreAdapter = fromCache.register(reg, options.coreTools);
1954
1984
  const runtime = new PTCRuntime({ registry });
1955
1985
  runtime.registerAdapter(coreAdapter);
1956
1986
  return { runtime, registry };
1957
1987
  }
1958
1988
  }
1959
- return syncResult;
1989
+ return createRuntimeFromConfigSync(options);
1960
1990
  }
1961
1991
 
1962
1992
  // src/tools/mcp/types.ts
@@ -1967,5 +1997,5 @@ var LANGCHAIN_KIND = "langchain";
1967
1997
  var LANGCHAIN_DIR_NAME = "langchain";
1968
1998
 
1969
1999
  export { BudgetManager, EventLog, LANGCHAIN_DIR_NAME, LANGCHAIN_KIND, MCP_KIND, Metrics, PTCRuntime, PolicyDeniedError, PolicyEngine, SchemaValidationError, SchemaValidator, Tracing, buildEvidence, createLogger, createRuntimeFromConfig, createRuntimeFromConfigSync, ensurePackageInCache, expandToolDescriptorsToRegistryNames, findAndLoadToolConfig, getDisplayScope, getPackageEntryPath, importFromCache, isBarePackageDescriptor, isNpmToolDescriptor, loadToolConfig, normalizeToolList, npmDescriptorToRegistryPrefix, parseNpmToolDescriptor, resolveNpmToolDescriptor, resolveSandboxedPath, resolveToolDescriptor, sanitizeForLog, summarizeForLog };
1970
- //# sourceMappingURL=chunk-BPHY6UVK.js.map
1971
- //# sourceMappingURL=chunk-BPHY6UVK.js.map
2000
+ //# sourceMappingURL=chunk-UUQGKFSG.js.map
2001
+ //# sourceMappingURL=chunk-UUQGKFSG.js.map