@easynet/agent-tool 1.0.34 → 1.0.36
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/dist/api/adapters/LangChainToolsHub.d.ts.map +1 -1
- package/dist/api/createAgentTools.d.ts.map +1 -1
- package/dist/api/expose/extension-init/index.d.ts +3 -0
- package/dist/api/expose/extension-init/index.d.ts.map +1 -0
- package/dist/api/expose/extension-init/initExtension.d.ts +19 -0
- package/dist/api/expose/extension-init/initExtension.d.ts.map +1 -0
- package/dist/api/extension/dynamicImportAdapter.d.ts +6 -2
- package/dist/api/extension/dynamicImportAdapter.d.ts.map +1 -1
- package/dist/api/extension/generateExtensionManifest.d.ts +2 -2
- package/dist/api/extension/generateExtensionManifest.d.ts.map +1 -1
- package/dist/api/extension/index.d.ts +1 -0
- package/dist/api/extension/index.d.ts.map +1 -1
- package/dist/api/extension/loadToolYaml.d.ts +1 -0
- package/dist/api/extension/loadToolYaml.d.ts.map +1 -1
- package/dist/api/extension/overrideWithConfig.d.ts +6 -0
- package/dist/api/extension/overrideWithConfig.d.ts.map +1 -0
- package/dist/api/extension/registerExtension.d.ts.map +1 -1
- package/dist/api/extension/registerFromManifest.d.ts.map +1 -1
- package/dist/api/main.cjs +14 -14
- package/dist/api/main.js +3 -3
- package/dist/api/runtimeFromConfig.d.ts +8 -0
- package/dist/api/runtimeFromConfig.d.ts.map +1 -1
- package/dist/{chunk-GYUELFVR.js → chunk-3L7CQ6XP.js} +3 -3
- package/dist/{chunk-GYUELFVR.js.map → chunk-3L7CQ6XP.js.map} +1 -1
- package/dist/{chunk-ETZKGTTF.cjs → chunk-5LCB63L7.cjs} +7 -7
- package/dist/{chunk-ETZKGTTF.cjs.map → chunk-5LCB63L7.cjs.map} +1 -1
- package/dist/{chunk-YP6GRCQG.cjs → chunk-6ZGMI6KW.cjs} +53 -16
- package/dist/chunk-6ZGMI6KW.cjs.map +1 -0
- package/dist/{chunk-UUQGKFSG.js → chunk-7VBJ64YC.js} +308 -141
- package/dist/chunk-7VBJ64YC.js.map +1 -0
- package/dist/{chunk-FHHD4FSI.js → chunk-HEMWFWSK.js} +3 -3
- package/dist/{chunk-FHHD4FSI.js.map → chunk-HEMWFWSK.js.map} +1 -1
- package/dist/{chunk-6UOHURU4.js → chunk-JG5T3ZYC.js} +42 -5
- package/dist/chunk-JG5T3ZYC.js.map +1 -0
- package/dist/{chunk-PKUSCCS6.cjs → chunk-LP7KHBA3.cjs} +310 -140
- package/dist/chunk-LP7KHBA3.cjs.map +1 -0
- package/dist/{chunk-LOGUQGCL.cjs → chunk-WFRHBW32.cjs} +9 -9
- package/dist/{chunk-LOGUQGCL.cjs.map → chunk-WFRHBW32.cjs.map} +1 -1
- package/dist/index.cjs +119 -69
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -26
- package/dist/index.js.map +1 -1
- package/dist/tools/util/toolConfig.d.ts +11 -3
- package/dist/tools/util/toolConfig.d.ts.map +1 -1
- package/dist/tools/util/toolDescriptor.d.ts +32 -7
- package/dist/tools/util/toolDescriptor.d.ts.map +1 -1
- package/dist/utils/cli/index.cjs +233 -31
- package/dist/utils/cli/index.cjs.map +1 -1
- package/dist/utils/cli/index.d.ts.map +1 -1
- package/dist/utils/cli/index.js +201 -15
- package/dist/utils/cli/index.js.map +1 -1
- package/dist/utils/npmCache.d.ts +14 -0
- package/dist/utils/npmCache.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-6UOHURU4.js.map +0 -1
- package/dist/chunk-PKUSCCS6.cjs.map +0 -1
- package/dist/chunk-UUQGKFSG.js.map +0 -1
- package/dist/chunk-YP6GRCQG.cjs.map +0 -1
|
@@ -1519,8 +1519,20 @@ function npmDescriptorToRegistryPrefix(descriptor, resolvedVersion) {
|
|
|
1519
1519
|
const lastAt = beforeHash.lastIndexOf("@");
|
|
1520
1520
|
const scopeAndPackage = lastAt <= 0 ? beforeHash : beforeHash.slice(0, lastAt);
|
|
1521
1521
|
let version = lastAt <= 0 ? "latest" : beforeHash.slice(lastAt + 1).trim() || "latest";
|
|
1522
|
-
if (
|
|
1523
|
-
|
|
1522
|
+
if (version === "latest" || !version) {
|
|
1523
|
+
const resolved = (resolvedVersion ?? "").trim();
|
|
1524
|
+
if (resolved !== "" && resolved.toLowerCase() !== "latest") {
|
|
1525
|
+
version = resolved;
|
|
1526
|
+
} else {
|
|
1527
|
+
throw new Error(
|
|
1528
|
+
`Registry prefix requires a concrete version when descriptor uses latest (${descriptor}). Resolve version from registry (e.g. resolveLatestVersionFromRegistry) and pass as resolvedVersion.`
|
|
1529
|
+
);
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
if (!version || version.toLowerCase() === "latest") {
|
|
1533
|
+
throw new Error(
|
|
1534
|
+
`Registry never uses "latest"; pass resolved concrete version for npm descriptor: ${descriptor}`
|
|
1535
|
+
);
|
|
1524
1536
|
}
|
|
1525
1537
|
const slashIdx = scopeAndPackage.indexOf("/");
|
|
1526
1538
|
const scope = slashIdx < 0 ? scopeAndPackage : scopeAndPackage.slice(0, slashIdx).replace(/^@/, "");
|
|
@@ -1530,6 +1542,39 @@ function npmDescriptorToRegistryPrefix(descriptor, resolvedVersion) {
|
|
|
1530
1542
|
if (!normalized) return "";
|
|
1531
1543
|
return "npm." + normalized + ".";
|
|
1532
1544
|
}
|
|
1545
|
+
function npmDescriptorToPackagePrefix(descriptor) {
|
|
1546
|
+
const s = descriptor.trim();
|
|
1547
|
+
if (typeof s !== "string" || !s.startsWith("npm:")) return "";
|
|
1548
|
+
const rest = s.slice(4).trim();
|
|
1549
|
+
const hashIdx = rest.indexOf("#");
|
|
1550
|
+
const beforeHash = hashIdx < 0 ? rest : rest.slice(0, hashIdx);
|
|
1551
|
+
const lastAt = beforeHash.lastIndexOf("@");
|
|
1552
|
+
const scopeAndPackage = lastAt <= 0 ? beforeHash : beforeHash.slice(0, lastAt);
|
|
1553
|
+
const slashIdx = scopeAndPackage.indexOf("/");
|
|
1554
|
+
const scope = slashIdx < 0 ? scopeAndPackage : scopeAndPackage.slice(0, slashIdx).replace(/^@/, "");
|
|
1555
|
+
const pkg = slashIdx < 0 ? "" : scopeAndPackage.slice(slashIdx + 1);
|
|
1556
|
+
const segment = [scope, pkg].filter(Boolean).join(".");
|
|
1557
|
+
const normalized = chunkDYDNPIV2_cjs.normalizeToolName(segment);
|
|
1558
|
+
if (!normalized) return "";
|
|
1559
|
+
return "npm." + normalized;
|
|
1560
|
+
}
|
|
1561
|
+
function npmDescriptorToPackagePrefixWithVersion(descriptor) {
|
|
1562
|
+
const s = descriptor.trim();
|
|
1563
|
+
if (typeof s !== "string" || !s.startsWith("npm:")) return "";
|
|
1564
|
+
const rest = s.slice(4).trim();
|
|
1565
|
+
const hashIdx = rest.indexOf("#");
|
|
1566
|
+
const beforeHash = hashIdx < 0 ? rest : rest.slice(0, hashIdx);
|
|
1567
|
+
const lastAt = beforeHash.lastIndexOf("@");
|
|
1568
|
+
const scopeAndPackage = lastAt <= 0 ? beforeHash : beforeHash.slice(0, lastAt);
|
|
1569
|
+
const version = lastAt <= 0 ? "" : beforeHash.slice(lastAt + 1).trim();
|
|
1570
|
+
const slashIdx = scopeAndPackage.indexOf("/");
|
|
1571
|
+
const scope = slashIdx < 0 ? scopeAndPackage : scopeAndPackage.slice(0, slashIdx).replace(/^@/, "");
|
|
1572
|
+
const pkg = slashIdx < 0 ? "" : scopeAndPackage.slice(slashIdx + 1);
|
|
1573
|
+
const segment = [scope, pkg, version].filter(Boolean).join(".");
|
|
1574
|
+
const normalized = chunkDYDNPIV2_cjs.normalizeToolName(segment);
|
|
1575
|
+
if (!normalized) return "";
|
|
1576
|
+
return "npm." + normalized;
|
|
1577
|
+
}
|
|
1533
1578
|
function isNpmToolDescriptor(descriptor) {
|
|
1534
1579
|
return isToolPath(descriptor) && parseToolPath(descriptor)?.protocol === "npm";
|
|
1535
1580
|
}
|
|
@@ -1573,6 +1618,30 @@ function expandToolDescriptorsToRegistryNames(descriptors, registryNames) {
|
|
|
1573
1618
|
if (registryNames.includes(s) && !seen.has(s)) {
|
|
1574
1619
|
seen.add(s);
|
|
1575
1620
|
out.push(s);
|
|
1621
|
+
continue;
|
|
1622
|
+
}
|
|
1623
|
+
const path = parseToolPath(s);
|
|
1624
|
+
if (path) {
|
|
1625
|
+
const packagePrefix = path.protocol === "npm" ? npmDescriptorToPackagePrefix(s) : path.protocol === "file" ? fileDescriptorToPackagePrefix(s) : "";
|
|
1626
|
+
const prefixWithDot = packagePrefix ? packagePrefix + "." : "";
|
|
1627
|
+
if (prefixWithDot) {
|
|
1628
|
+
if (path.toolName) {
|
|
1629
|
+
const suffix = "." + path.toolName;
|
|
1630
|
+
for (const r of registryNames) {
|
|
1631
|
+
if (r.startsWith(prefixWithDot) && r.endsWith(suffix) && !seen.has(r)) {
|
|
1632
|
+
seen.add(r);
|
|
1633
|
+
out.push(r);
|
|
1634
|
+
}
|
|
1635
|
+
}
|
|
1636
|
+
} else {
|
|
1637
|
+
for (const r of registryNames) {
|
|
1638
|
+
if (r.startsWith(prefixWithDot) && !seen.has(r)) {
|
|
1639
|
+
seen.add(r);
|
|
1640
|
+
out.push(r);
|
|
1641
|
+
}
|
|
1642
|
+
}
|
|
1643
|
+
}
|
|
1644
|
+
}
|
|
1576
1645
|
}
|
|
1577
1646
|
continue;
|
|
1578
1647
|
}
|
|
@@ -1598,6 +1667,18 @@ function normalizeToolList(descriptors) {
|
|
|
1598
1667
|
}
|
|
1599
1668
|
return out;
|
|
1600
1669
|
}
|
|
1670
|
+
function fileDescriptorToPackagePrefix(descriptor) {
|
|
1671
|
+
const path = parseToolPath(descriptor.trim());
|
|
1672
|
+
if (!path || path.protocol !== "file") return "";
|
|
1673
|
+
const pathPart = `${path.scope}/${path.packageWithVersion}`;
|
|
1674
|
+
const normalized = chunkDYDNPIV2_cjs.normalizeToolName(pathPart);
|
|
1675
|
+
if (!normalized) return "";
|
|
1676
|
+
return "file." + normalized;
|
|
1677
|
+
}
|
|
1678
|
+
function fileDescriptorToRegistryPrefix(descriptor) {
|
|
1679
|
+
const prefix = fileDescriptorToPackagePrefix(descriptor);
|
|
1680
|
+
return prefix ? prefix + "." : "";
|
|
1681
|
+
}
|
|
1601
1682
|
function loadToolConfig(toolYamlPath) {
|
|
1602
1683
|
const abs = path.resolve(toolYamlPath);
|
|
1603
1684
|
const raw = fs.readFileSync(abs, "utf8");
|
|
@@ -1605,20 +1686,29 @@ function loadToolConfig(toolYamlPath) {
|
|
|
1605
1686
|
if (!parsed || typeof parsed !== "object") return {};
|
|
1606
1687
|
const toolsBlock = parsed.tools;
|
|
1607
1688
|
if (toolsBlock != null && typeof toolsBlock === "object" && !Array.isArray(toolsBlock)) {
|
|
1689
|
+
const toolDefaults = toolsBlock.defaults != null && typeof toolsBlock.defaults === "object" && !Array.isArray(toolsBlock.defaults) ? toolsBlock.defaults : void 0;
|
|
1690
|
+
const packageToolDefaults2 = toolsBlock.packages != null && typeof toolsBlock.packages === "object" && !Array.isArray(toolsBlock.packages) ? toolsBlock.packages : void 0;
|
|
1691
|
+
const list2 = Array.isArray(toolsBlock.list) && toolsBlock.list.length > 0 ? toolsBlock.list : void 0;
|
|
1608
1692
|
return {
|
|
1609
|
-
tools:
|
|
1693
|
+
tools: list2 ?? (packageToolDefaults2 ? Object.keys(packageToolDefaults2) : void 0),
|
|
1610
1694
|
sandboxedPath: typeof toolsBlock.sandboxedPath === "string" ? toolsBlock.sandboxedPath : parsed.sandboxedPath,
|
|
1611
1695
|
allowedHosts: Array.isArray(toolsBlock.allowedHosts) ? toolsBlock.allowedHosts : parsed.allowedHosts,
|
|
1612
1696
|
blockedHosts: Array.isArray(toolsBlock.blockedHosts) ? toolsBlock.blockedHosts : parsed.blockedHosts,
|
|
1613
|
-
blockedCidrs: Array.isArray(toolsBlock.blockedCidrs) ? toolsBlock.blockedCidrs : parsed.blockedCidrs
|
|
1697
|
+
blockedCidrs: Array.isArray(toolsBlock.blockedCidrs) ? toolsBlock.blockedCidrs : parsed.blockedCidrs,
|
|
1698
|
+
toolDefaults,
|
|
1699
|
+
packageToolDefaults: packageToolDefaults2
|
|
1614
1700
|
};
|
|
1615
1701
|
}
|
|
1702
|
+
const packageToolDefaults = typeof parsed.packageToolDefaults === "object" && !Array.isArray(parsed.packageToolDefaults) ? parsed.packageToolDefaults : void 0;
|
|
1703
|
+
const list = Array.isArray(parsed.tools) && parsed.tools.length > 0 ? parsed.tools : void 0;
|
|
1616
1704
|
return {
|
|
1617
|
-
tools:
|
|
1705
|
+
tools: list ?? (packageToolDefaults ? Object.keys(packageToolDefaults) : void 0),
|
|
1618
1706
|
sandboxedPath: parsed.sandboxedPath,
|
|
1619
1707
|
allowedHosts: Array.isArray(parsed.allowedHosts) ? parsed.allowedHosts : void 0,
|
|
1620
1708
|
blockedHosts: Array.isArray(parsed.blockedHosts) ? parsed.blockedHosts : void 0,
|
|
1621
|
-
blockedCidrs: Array.isArray(parsed.blockedCidrs) ? parsed.blockedCidrs : void 0
|
|
1709
|
+
blockedCidrs: Array.isArray(parsed.blockedCidrs) ? parsed.blockedCidrs : void 0,
|
|
1710
|
+
toolDefaults: typeof parsed.toolDefaults === "object" && !Array.isArray(parsed.toolDefaults) ? parsed.toolDefaults : void 0,
|
|
1711
|
+
packageToolDefaults
|
|
1622
1712
|
};
|
|
1623
1713
|
}
|
|
1624
1714
|
function resolveSandboxedPath(toolYamlPath, sandboxedPath) {
|
|
@@ -1645,6 +1735,37 @@ function findAndLoadToolConfig(dir) {
|
|
|
1645
1735
|
return {};
|
|
1646
1736
|
}
|
|
1647
1737
|
var DEFAULT_CACHE_BASE = path.join(os.homedir(), ".agent", "cache");
|
|
1738
|
+
function isLatestRequest(version) {
|
|
1739
|
+
const v = (version ?? "").trim().toLowerCase();
|
|
1740
|
+
return v === "" || v === "latest";
|
|
1741
|
+
}
|
|
1742
|
+
function resolveLatestVersionFromRegistry(packageName) {
|
|
1743
|
+
const quoted = packageName.includes(" ") ? `"${packageName}"` : packageName;
|
|
1744
|
+
try {
|
|
1745
|
+
const out = child_process.execSync(`npm view ${quoted} version`, {
|
|
1746
|
+
encoding: "utf-8",
|
|
1747
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
1748
|
+
});
|
|
1749
|
+
const version = (out ?? "").trim();
|
|
1750
|
+
if (!version) {
|
|
1751
|
+
throw new Error(`npm view ${packageName} version returned empty`);
|
|
1752
|
+
}
|
|
1753
|
+
return version;
|
|
1754
|
+
} catch (err) {
|
|
1755
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
1756
|
+
throw new Error(`Failed to resolve latest version for ${packageName}: ${msg}`);
|
|
1757
|
+
}
|
|
1758
|
+
}
|
|
1759
|
+
function getCachedPackageVersion(cacheDir) {
|
|
1760
|
+
const pkgPath = path.join(cacheDir, "package.json");
|
|
1761
|
+
if (!fs.existsSync(pkgPath)) return void 0;
|
|
1762
|
+
try {
|
|
1763
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
|
|
1764
|
+
return typeof pkg.version === "string" ? pkg.version : void 0;
|
|
1765
|
+
} catch {
|
|
1766
|
+
return void 0;
|
|
1767
|
+
}
|
|
1768
|
+
}
|
|
1648
1769
|
function packagePathSegments(name) {
|
|
1649
1770
|
const withoutScope = name.replace(/^@/, "");
|
|
1650
1771
|
return withoutScope.split("/").filter(Boolean);
|
|
@@ -1653,17 +1774,29 @@ function resolveCacheDir(cacheBase, packageName, version) {
|
|
|
1653
1774
|
const segments = packagePathSegments(packageName);
|
|
1654
1775
|
return path.join(cacheBase, ...segments, version);
|
|
1655
1776
|
}
|
|
1656
|
-
function getVersionFromTarball(tgzName) {
|
|
1657
|
-
const base = tgzName.replace(/\.tgz$/i, "");
|
|
1658
|
-
const match = base.match(/-(\d+\.\d+\.\d+(-[a-zA-Z0-9.-]+)?)$/);
|
|
1659
|
-
return match ? match[1] : base;
|
|
1660
|
-
}
|
|
1661
1777
|
function ensurePackageInCache(packageName, version = "latest", options = {}) {
|
|
1662
1778
|
const cacheBase = options.cacheBase ?? DEFAULT_CACHE_BASE;
|
|
1779
|
+
let resolvedVersion;
|
|
1780
|
+
if (isLatestRequest(version)) {
|
|
1781
|
+
resolvedVersion = resolveLatestVersionFromRegistry(packageName);
|
|
1782
|
+
} else {
|
|
1783
|
+
resolvedVersion = version;
|
|
1784
|
+
}
|
|
1785
|
+
const cacheDir = resolveCacheDir(cacheBase, packageName, resolvedVersion);
|
|
1786
|
+
const packageJsonPath = path.join(cacheDir, "package.json");
|
|
1787
|
+
const nodeModulesPath = path.join(cacheDir, "node_modules");
|
|
1788
|
+
if (fs.existsSync(packageJsonPath) && fs.existsSync(nodeModulesPath)) {
|
|
1789
|
+
const cachedVersion = getCachedPackageVersion(cacheDir);
|
|
1790
|
+
if (cachedVersion === resolvedVersion) {
|
|
1791
|
+
options.afterInstall?.(cacheDir, packageName);
|
|
1792
|
+
return cacheDir;
|
|
1793
|
+
}
|
|
1794
|
+
fs.rmSync(cacheDir, { recursive: true, force: true });
|
|
1795
|
+
}
|
|
1663
1796
|
const packDest = path.join(cacheBase, ".pack-tmp", packageName.replace(/@/g, "").replace(/\//g, "_"));
|
|
1664
1797
|
fs.mkdirSync(packDest, { recursive: true });
|
|
1665
1798
|
try {
|
|
1666
|
-
child_process.execSync(`npm pack ${packageName}@${
|
|
1799
|
+
child_process.execSync(`npm pack ${packageName}@${resolvedVersion} --pack-destination "${packDest}"`, {
|
|
1667
1800
|
cwd: process.cwd(),
|
|
1668
1801
|
stdio: "pipe",
|
|
1669
1802
|
encoding: "utf-8"
|
|
@@ -1673,15 +1806,6 @@ function ensurePackageInCache(packageName, version = "latest", options = {}) {
|
|
|
1673
1806
|
if (!tgz) {
|
|
1674
1807
|
throw new Error(`npm pack did not produce a .tgz in ${packDest}`);
|
|
1675
1808
|
}
|
|
1676
|
-
const resolvedVersion = getVersionFromTarball(tgz);
|
|
1677
|
-
const cacheDir = resolveCacheDir(cacheBase, packageName, resolvedVersion);
|
|
1678
|
-
const packageJsonPath = path.join(cacheDir, "package.json");
|
|
1679
|
-
const nodeModulesPath = path.join(cacheDir, "node_modules");
|
|
1680
|
-
if (fs.existsSync(packageJsonPath) && fs.existsSync(nodeModulesPath)) {
|
|
1681
|
-
options.afterInstall?.(cacheDir, packageName);
|
|
1682
|
-
fs.rmSync(packDest, { recursive: true, force: true });
|
|
1683
|
-
return cacheDir;
|
|
1684
|
-
}
|
|
1685
1809
|
const extractDir = path.join(packDest, "extract");
|
|
1686
1810
|
fs.mkdirSync(extractDir, { recursive: true });
|
|
1687
1811
|
child_process.execSync(`tar -xzf "${path.join(packDest, tgz)}" -C "${extractDir}"`, {
|
|
@@ -1697,11 +1821,33 @@ function ensurePackageInCache(packageName, version = "latest", options = {}) {
|
|
|
1697
1821
|
fs.rmSync(cacheDir, { recursive: true, force: true });
|
|
1698
1822
|
}
|
|
1699
1823
|
fs.renameSync(extractedPackage, cacheDir);
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1824
|
+
const npmInstallTimeout = 12e4;
|
|
1825
|
+
const maxAttempts = 3;
|
|
1826
|
+
let lastErr;
|
|
1827
|
+
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
1828
|
+
try {
|
|
1829
|
+
child_process.execSync("npm install --prefer-offline --no-audit --no-fund", {
|
|
1830
|
+
cwd: cacheDir,
|
|
1831
|
+
stdio: "pipe",
|
|
1832
|
+
encoding: "utf-8",
|
|
1833
|
+
timeout: npmInstallTimeout
|
|
1834
|
+
});
|
|
1835
|
+
lastErr = void 0;
|
|
1836
|
+
break;
|
|
1837
|
+
} catch (err) {
|
|
1838
|
+
lastErr = err instanceof Error ? err : new Error(String(err));
|
|
1839
|
+
if (attempt < maxAttempts) {
|
|
1840
|
+
const delayMs = 5e3 * attempt;
|
|
1841
|
+
const deadline = Date.now() + delayMs;
|
|
1842
|
+
while (Date.now() < deadline) {
|
|
1843
|
+
}
|
|
1844
|
+
} else {
|
|
1845
|
+
throw new Error(
|
|
1846
|
+
`npm install in cache failed after ${maxAttempts} attempts: ${lastErr.message}`
|
|
1847
|
+
);
|
|
1848
|
+
}
|
|
1849
|
+
}
|
|
1850
|
+
}
|
|
1705
1851
|
options.afterInstall?.(cacheDir, packageName);
|
|
1706
1852
|
return cacheDir;
|
|
1707
1853
|
} finally {
|
|
@@ -1731,7 +1877,7 @@ async function importFromCache(packageRoot) {
|
|
|
1731
1877
|
fileUrl
|
|
1732
1878
|
);
|
|
1733
1879
|
}
|
|
1734
|
-
var requireFromPackage = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-
|
|
1880
|
+
var requireFromPackage = module$1.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-LP7KHBA3.cjs', document.baseURI).href)));
|
|
1735
1881
|
function getProjectRequire() {
|
|
1736
1882
|
const cwd = process.cwd();
|
|
1737
1883
|
if (fs.existsSync(path.join(cwd, "package.json"))) return module$1.createRequire(path.join(cwd, "package.json"));
|
|
@@ -1818,34 +1964,95 @@ function parseNpmDescriptor(entry) {
|
|
|
1818
1964
|
const version = rest.slice(at + 1).split("#")[0]?.trim() || "latest";
|
|
1819
1965
|
return { packageName, version };
|
|
1820
1966
|
}
|
|
1821
|
-
function
|
|
1967
|
+
function loadExtensionFromFileDescriptorSync(descriptor, configFilePath, stepLog) {
|
|
1968
|
+
const entryStr = descriptor.trim();
|
|
1969
|
+
const path$1 = parseToolPath(entryStr);
|
|
1970
|
+
if (!path$1 || path$1.protocol !== "file") return null;
|
|
1971
|
+
const localPath = path.isAbsolute(configFilePath) ? configFilePath : path.resolve(process.cwd(), configFilePath);
|
|
1972
|
+
const configDir = path.dirname(localPath);
|
|
1973
|
+
const pathPart = `${path$1.scope}/${path$1.packageWithVersion}`;
|
|
1974
|
+
const resolvedPath = path.resolve(configDir, pathPart);
|
|
1975
|
+
if (!fs.existsSync(resolvedPath) || !fs.statSync(resolvedPath).isDirectory()) return null;
|
|
1976
|
+
try {
|
|
1977
|
+
const entryPath = getPackageEntryPath(resolvedPath);
|
|
1978
|
+
const req = module$1.createRequire(path.join(resolvedPath, "package.json"));
|
|
1979
|
+
const mod = req(entryPath);
|
|
1980
|
+
const fn = getRegisterFn(mod);
|
|
1981
|
+
if (typeof fn === "function") {
|
|
1982
|
+
if (stepLog) stepLog(`Loaded local extension from ${resolvedPath}`);
|
|
1983
|
+
return { register: fn, descriptor: entryStr, resolvedVersion: "local" };
|
|
1984
|
+
}
|
|
1985
|
+
} catch {
|
|
1986
|
+
}
|
|
1987
|
+
return null;
|
|
1988
|
+
}
|
|
1989
|
+
function loadExtensionForDescriptorSync(descriptor, configFilePath, stepLog) {
|
|
1990
|
+
const entryStr = descriptor.trim();
|
|
1991
|
+
const parsed = parseNpmDescriptor(entryStr);
|
|
1992
|
+
if (!parsed) return null;
|
|
1822
1993
|
const localPath = path.isAbsolute(configFilePath) ? configFilePath : path.resolve(process.cwd(), configFilePath);
|
|
1823
|
-
if (!fs.existsSync(localPath)) return null;
|
|
1824
|
-
const config = loadToolConfig(localPath);
|
|
1825
|
-
const tools = config.tools;
|
|
1826
|
-
if (!Array.isArray(tools) || tools.length === 0) return null;
|
|
1827
1994
|
const configDir = path.dirname(localPath);
|
|
1828
1995
|
const packageJsonPath = path.join(configDir, "package.json");
|
|
1829
|
-
|
|
1830
|
-
const configRequire = module$1.createRequire(packageJsonPath);
|
|
1831
|
-
if (
|
|
1832
|
-
for (const entry of tools) {
|
|
1833
|
-
const entryStr = String(entry).trim();
|
|
1834
|
-
const parsed = parseNpmDescriptor(entryStr);
|
|
1835
|
-
if (!parsed) continue;
|
|
1996
|
+
const useNodeModules = fs.existsSync(packageJsonPath);
|
|
1997
|
+
const configRequire = useNodeModules ? module$1.createRequire(packageJsonPath) : null;
|
|
1998
|
+
if (configRequire) {
|
|
1836
1999
|
try {
|
|
1837
2000
|
const mod = configRequire(parsed.packageName);
|
|
1838
2001
|
const fn = getRegisterFn(mod);
|
|
1839
2002
|
if (typeof fn === "function") {
|
|
1840
|
-
const
|
|
2003
|
+
const installed = getInstalledPackageVersionFromRequire(parsed.packageName, configRequire);
|
|
2004
|
+
const requested = parsed.version === "latest" || !parsed.version?.trim() ? null : parsed.version;
|
|
2005
|
+
const resolvedVersion = installed ?? (requested === null ? resolveLatestVersionFromRegistry(parsed.packageName) : requested);
|
|
2006
|
+
if (requested === null || installed === requested) {
|
|
2007
|
+
if (stepLog) stepLog(`Loaded ${parsed.packageName}@${resolvedVersion} from node_modules`);
|
|
2008
|
+
return { register: fn, descriptor: entryStr, resolvedVersion };
|
|
2009
|
+
}
|
|
2010
|
+
}
|
|
2011
|
+
} catch {
|
|
2012
|
+
}
|
|
2013
|
+
}
|
|
2014
|
+
const cacheBase = getCacheBaseFromToolConfig(localPath);
|
|
2015
|
+
const cacheOpts = cacheBase ? { cacheBase } : {};
|
|
2016
|
+
for (const opts of [cacheOpts, {}]) {
|
|
2017
|
+
try {
|
|
2018
|
+
const cacheDir = ensurePackageInCache(parsed.packageName, parsed.version, opts);
|
|
2019
|
+
if (stepLog) stepLog(`Loaded ${parsed.packageName} from cache: ${cacheDir}`);
|
|
2020
|
+
const entryPath = getPackageEntryPath(cacheDir);
|
|
2021
|
+
const req = module$1.createRequire(path.join(cacheDir, "package.json"));
|
|
2022
|
+
const mod = req(entryPath);
|
|
2023
|
+
const fn = getRegisterFn(mod);
|
|
2024
|
+
if (typeof fn === "function") {
|
|
2025
|
+
const resolvedVersion = path.basename(cacheDir);
|
|
1841
2026
|
return { register: fn, descriptor: entryStr, resolvedVersion };
|
|
1842
2027
|
}
|
|
2028
|
+
break;
|
|
1843
2029
|
} catch {
|
|
1844
|
-
continue;
|
|
2030
|
+
if (Object.keys(opts).length > 0) continue;
|
|
2031
|
+
break;
|
|
1845
2032
|
}
|
|
1846
2033
|
}
|
|
1847
2034
|
return null;
|
|
1848
2035
|
}
|
|
2036
|
+
function loadAllExtensionsFromToolYamlSync(configFilePath, stepLog) {
|
|
2037
|
+
const localPath = path.isAbsolute(configFilePath) ? configFilePath : path.resolve(process.cwd(), configFilePath);
|
|
2038
|
+
if (!fs.existsSync(localPath)) return [];
|
|
2039
|
+
const config = loadToolConfig(localPath);
|
|
2040
|
+
const tools = config.tools;
|
|
2041
|
+
if (!Array.isArray(tools) || tools.length === 0) return [];
|
|
2042
|
+
if (stepLog) stepLog("Loading extensions from tool.yaml (npm + file)");
|
|
2043
|
+
const loaded = [];
|
|
2044
|
+
for (const entry of tools) {
|
|
2045
|
+
const entryStr = String(entry).trim();
|
|
2046
|
+
if (entryStr.startsWith("npm:")) {
|
|
2047
|
+
const result = loadExtensionForDescriptorSync(entryStr, configFilePath, stepLog);
|
|
2048
|
+
if (result) loaded.push(result);
|
|
2049
|
+
} else if (entryStr.startsWith("file:")) {
|
|
2050
|
+
const result = loadExtensionFromFileDescriptorSync(entryStr, configFilePath, stepLog);
|
|
2051
|
+
if (result) loaded.push(result);
|
|
2052
|
+
}
|
|
2053
|
+
}
|
|
2054
|
+
return loaded;
|
|
2055
|
+
}
|
|
1849
2056
|
function getInstalledPackageVersionFromRequire(packageName, req) {
|
|
1850
2057
|
try {
|
|
1851
2058
|
const pkgJsonPath = req.resolve(`${packageName}/package.json`);
|
|
@@ -1856,114 +2063,84 @@ function getInstalledPackageVersionFromRequire(packageName, req) {
|
|
|
1856
2063
|
return null;
|
|
1857
2064
|
}
|
|
1858
2065
|
}
|
|
1859
|
-
function
|
|
2066
|
+
async function loadExtensionForDescriptorAsync(descriptor, configFilePath, stepLog) {
|
|
2067
|
+
const syncResult = loadExtensionForDescriptorSync(descriptor, configFilePath, stepLog);
|
|
2068
|
+
if (syncResult) return syncResult;
|
|
2069
|
+
const entryStr = descriptor.trim();
|
|
2070
|
+
const parsed = parseNpmDescriptor(entryStr);
|
|
2071
|
+
if (!parsed) return null;
|
|
1860
2072
|
const localPath = path.isAbsolute(configFilePath) ? configFilePath : path.resolve(process.cwd(), configFilePath);
|
|
1861
|
-
if (!fs.existsSync(localPath)) return null;
|
|
1862
|
-
const config = loadToolConfig(localPath);
|
|
1863
|
-
const tools = config.tools;
|
|
1864
|
-
if (!Array.isArray(tools)) return null;
|
|
1865
2073
|
const cacheBase = getCacheBaseFromToolConfig(localPath);
|
|
1866
2074
|
const cacheOpts = cacheBase ? { cacheBase } : {};
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
if (stepLog) stepLog(`Using cache: ${cacheDir}`);
|
|
1877
|
-
const entryPath = getPackageEntryPath(cacheDir);
|
|
1878
|
-
const req = module$1.createRequire(path.join(cacheDir, "package.json"));
|
|
1879
|
-
const mod = req(entryPath);
|
|
1880
|
-
const fn = getRegisterFn(mod);
|
|
1881
|
-
if (typeof fn === "function") {
|
|
1882
|
-
const resolvedVersion = path.basename(cacheDir);
|
|
1883
|
-
return { register: fn, descriptor: entryStr, resolvedVersion };
|
|
1884
|
-
}
|
|
1885
|
-
break;
|
|
1886
|
-
} catch {
|
|
1887
|
-
if (Object.keys(opts).length > 0) continue;
|
|
1888
|
-
break;
|
|
2075
|
+
for (const opts of [cacheOpts, {}]) {
|
|
2076
|
+
try {
|
|
2077
|
+
const cacheDir = ensurePackageInCache(parsed.packageName, parsed.version, opts);
|
|
2078
|
+
if (stepLog) stepLog(`Loaded ${parsed.packageName} from cache (async): ${cacheDir}`);
|
|
2079
|
+
const mod = await importFromCache(cacheDir);
|
|
2080
|
+
const fn = getRegisterFn(mod);
|
|
2081
|
+
if (typeof fn === "function") {
|
|
2082
|
+
const resolvedVersion = path.basename(cacheDir);
|
|
2083
|
+
return { register: fn, descriptor: entryStr, resolvedVersion };
|
|
1889
2084
|
}
|
|
2085
|
+
break;
|
|
2086
|
+
} catch {
|
|
2087
|
+
if (Object.keys(opts).length > 0) continue;
|
|
2088
|
+
break;
|
|
1890
2089
|
}
|
|
1891
2090
|
}
|
|
1892
2091
|
return null;
|
|
1893
2092
|
}
|
|
1894
|
-
async function
|
|
2093
|
+
async function loadAllExtensionsFromToolYamlAsync(configFilePath, stepLog) {
|
|
1895
2094
|
const localPath = path.isAbsolute(configFilePath) ? configFilePath : path.resolve(process.cwd(), configFilePath);
|
|
1896
|
-
if (!fs.existsSync(localPath)) return
|
|
2095
|
+
if (!fs.existsSync(localPath)) return [];
|
|
1897
2096
|
const config = loadToolConfig(localPath);
|
|
1898
2097
|
const tools = config.tools;
|
|
1899
|
-
if (!Array.isArray(tools)) return
|
|
1900
|
-
|
|
1901
|
-
const
|
|
1902
|
-
if (stepLog) stepLog("Loading extension from tool.yaml cache (async)");
|
|
2098
|
+
if (!Array.isArray(tools) || tools.length === 0) return [];
|
|
2099
|
+
if (stepLog) stepLog("Loading extensions from tool.yaml (async)");
|
|
2100
|
+
const loaded = [];
|
|
1903
2101
|
for (const entry of tools) {
|
|
1904
2102
|
const entryStr = String(entry).trim();
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1910
|
-
|
|
1911
|
-
if (stepLog) stepLog(`Using cache: ${cacheDir}`);
|
|
1912
|
-
const mod = await importFromCache(cacheDir);
|
|
1913
|
-
const fn = getRegisterFn(mod);
|
|
1914
|
-
if (typeof fn === "function") {
|
|
1915
|
-
const resolvedVersion = path.basename(cacheDir);
|
|
1916
|
-
return { register: fn, descriptor: entryStr, resolvedVersion };
|
|
1917
|
-
}
|
|
1918
|
-
break;
|
|
1919
|
-
} catch {
|
|
1920
|
-
if (Object.keys(opts).length > 0) continue;
|
|
1921
|
-
break;
|
|
1922
|
-
}
|
|
2103
|
+
if (entryStr.startsWith("npm:")) {
|
|
2104
|
+
const result = await loadExtensionForDescriptorAsync(entryStr, configFilePath, stepLog);
|
|
2105
|
+
if (result) loaded.push(result);
|
|
2106
|
+
} else if (entryStr.startsWith("file:")) {
|
|
2107
|
+
const result = loadExtensionFromFileDescriptorSync(entryStr, configFilePath, stepLog);
|
|
2108
|
+
if (result) loaded.push(result);
|
|
1923
2109
|
}
|
|
1924
2110
|
}
|
|
1925
|
-
return
|
|
2111
|
+
return loaded;
|
|
1926
2112
|
}
|
|
1927
2113
|
function createRuntimeFromConfigSync(options = {}) {
|
|
1928
2114
|
const registry = new chunkTOSPHMYU_cjs.ToolRegistry();
|
|
1929
2115
|
const stepLog = options.stepLog;
|
|
1930
2116
|
if (options.coreTools !== void 0) {
|
|
2117
|
+
if (options.configFilePath) {
|
|
2118
|
+
const all = loadAllExtensionsFromToolYamlSync(options.configFilePath, stepLog);
|
|
2119
|
+
if (all.length > 0) {
|
|
2120
|
+
if (stepLog) stepLog(`Registered ${all.length} extension(s) from tool.yaml`);
|
|
2121
|
+
const runtime3 = new PTCRuntime({ registry });
|
|
2122
|
+
for (const ext of all) {
|
|
2123
|
+
const prefix = ext.descriptor.startsWith("file:") ? fileDescriptorToRegistryPrefix(ext.descriptor) : npmDescriptorToRegistryPrefix(ext.descriptor, ext.resolvedVersion);
|
|
2124
|
+
const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
|
|
2125
|
+
const adapter = ext.register(reg, options.coreTools);
|
|
2126
|
+
runtime3.registerAdapter(adapter);
|
|
2127
|
+
}
|
|
2128
|
+
return { runtime: runtime3, registry };
|
|
2129
|
+
}
|
|
2130
|
+
}
|
|
1931
2131
|
if (stepLog) stepLog("Trying extension from node_modules");
|
|
1932
|
-
|
|
2132
|
+
const extensionNode = loadExtensionFromNodeModules();
|
|
1933
2133
|
if (extensionNode) {
|
|
1934
2134
|
if (stepLog) stepLog("Registered extension from node_modules");
|
|
1935
2135
|
const descriptor = `npm:${extensionNode.packageName}`;
|
|
1936
|
-
const resolvedVersion = getInstalledPackageVersion(extensionNode.packageName);
|
|
1937
|
-
const prefix = npmDescriptorToRegistryPrefix(descriptor, resolvedVersion
|
|
2136
|
+
const resolvedVersion = getInstalledPackageVersion(extensionNode.packageName) ?? resolveLatestVersionFromRegistry(extensionNode.packageName);
|
|
2137
|
+
const prefix = npmDescriptorToRegistryPrefix(descriptor, resolvedVersion);
|
|
1938
2138
|
const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
|
|
1939
2139
|
const coreAdapter = extensionNode.register(reg, options.coreTools);
|
|
1940
2140
|
const runtime3 = new PTCRuntime({ registry });
|
|
1941
2141
|
runtime3.registerAdapter(coreAdapter);
|
|
1942
2142
|
return { runtime: runtime3, registry };
|
|
1943
2143
|
}
|
|
1944
|
-
if (options.configFilePath) {
|
|
1945
|
-
const extensionFromNodeModules = loadExtensionFromToolYamlNodeModules(options.configFilePath, stepLog);
|
|
1946
|
-
if (extensionFromNodeModules) {
|
|
1947
|
-
if (stepLog) stepLog("Registered extension from tool.yaml list (node_modules)");
|
|
1948
|
-
const prefix = npmDescriptorToRegistryPrefix(extensionFromNodeModules.descriptor, extensionFromNodeModules.resolvedVersion);
|
|
1949
|
-
const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
|
|
1950
|
-
const coreAdapter = extensionFromNodeModules.register(reg, options.coreTools);
|
|
1951
|
-
const runtime3 = new PTCRuntime({ registry });
|
|
1952
|
-
runtime3.registerAdapter(coreAdapter);
|
|
1953
|
-
return { runtime: runtime3, registry };
|
|
1954
|
-
}
|
|
1955
|
-
if (stepLog) stepLog("No extension in node_modules, loading from tool.yaml cache");
|
|
1956
|
-
const extensionCache = loadExtensionFromToolYamlCache(options.configFilePath, stepLog);
|
|
1957
|
-
if (extensionCache) {
|
|
1958
|
-
if (stepLog) stepLog("Registered extension from cache");
|
|
1959
|
-
const prefix = npmDescriptorToRegistryPrefix(extensionCache.descriptor, extensionCache.resolvedVersion);
|
|
1960
|
-
const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
|
|
1961
|
-
const coreAdapter = extensionCache.register(reg, options.coreTools);
|
|
1962
|
-
const runtime3 = new PTCRuntime({ registry });
|
|
1963
|
-
runtime3.registerAdapter(coreAdapter);
|
|
1964
|
-
return { runtime: runtime3, registry };
|
|
1965
|
-
}
|
|
1966
|
-
}
|
|
1967
2144
|
const runtime2 = new PTCRuntime({ registry });
|
|
1968
2145
|
return { runtime: runtime2, registry };
|
|
1969
2146
|
}
|
|
@@ -1972,27 +2149,17 @@ function createRuntimeFromConfigSync(options = {}) {
|
|
|
1972
2149
|
}
|
|
1973
2150
|
async function createRuntimeFromConfig(options = {}) {
|
|
1974
2151
|
if (options.coreTools !== void 0 && options.configFilePath) {
|
|
1975
|
-
const
|
|
1976
|
-
if (
|
|
1977
|
-
if (options.stepLog) options.stepLog(
|
|
2152
|
+
const all = await loadAllExtensionsFromToolYamlAsync(options.configFilePath, options.stepLog);
|
|
2153
|
+
if (all.length > 0) {
|
|
2154
|
+
if (options.stepLog) options.stepLog(`Registered ${all.length} extension(s) from tool.yaml`);
|
|
1978
2155
|
const registry = new chunkTOSPHMYU_cjs.ToolRegistry();
|
|
1979
|
-
const prefix = npmDescriptorToRegistryPrefix(fromNodeModules.descriptor, fromNodeModules.resolvedVersion);
|
|
1980
|
-
const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
|
|
1981
|
-
const coreAdapter = fromNodeModules.register(reg, options.coreTools);
|
|
1982
2156
|
const runtime = new PTCRuntime({ registry });
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
if (options.stepLog) options.stepLog("Registered extension from cache");
|
|
1990
|
-
const registry = new chunkTOSPHMYU_cjs.ToolRegistry();
|
|
1991
|
-
const prefix = npmDescriptorToRegistryPrefix(fromCache.descriptor, fromCache.resolvedVersion);
|
|
1992
|
-
const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
|
|
1993
|
-
const coreAdapter = fromCache.register(reg, options.coreTools);
|
|
1994
|
-
const runtime = new PTCRuntime({ registry });
|
|
1995
|
-
runtime.registerAdapter(coreAdapter);
|
|
2157
|
+
for (const ext of all) {
|
|
2158
|
+
const prefix = ext.descriptor.startsWith("file:") ? fileDescriptorToRegistryPrefix(ext.descriptor) : npmDescriptorToRegistryPrefix(ext.descriptor, ext.resolvedVersion);
|
|
2159
|
+
const reg = prefix ? createPrefixingRegistry(registry, prefix) : registry;
|
|
2160
|
+
const adapter = ext.register(reg, options.coreTools);
|
|
2161
|
+
runtime.registerAdapter(adapter);
|
|
2162
|
+
}
|
|
1996
2163
|
return { runtime, registry };
|
|
1997
2164
|
}
|
|
1998
2165
|
}
|
|
@@ -2024,6 +2191,7 @@ exports.createRuntimeFromConfig = createRuntimeFromConfig;
|
|
|
2024
2191
|
exports.createRuntimeFromConfigSync = createRuntimeFromConfigSync;
|
|
2025
2192
|
exports.ensurePackageInCache = ensurePackageInCache;
|
|
2026
2193
|
exports.expandToolDescriptorsToRegistryNames = expandToolDescriptorsToRegistryNames;
|
|
2194
|
+
exports.fileDescriptorToPackagePrefix = fileDescriptorToPackagePrefix;
|
|
2027
2195
|
exports.findAndLoadToolConfig = findAndLoadToolConfig;
|
|
2028
2196
|
exports.getDisplayScope = getDisplayScope;
|
|
2029
2197
|
exports.getPackageEntryPath = getPackageEntryPath;
|
|
@@ -2032,12 +2200,14 @@ exports.isBarePackageDescriptor = isBarePackageDescriptor;
|
|
|
2032
2200
|
exports.isNpmToolDescriptor = isNpmToolDescriptor;
|
|
2033
2201
|
exports.loadToolConfig = loadToolConfig;
|
|
2034
2202
|
exports.normalizeToolList = normalizeToolList;
|
|
2203
|
+
exports.npmDescriptorToPackagePrefixWithVersion = npmDescriptorToPackagePrefixWithVersion;
|
|
2035
2204
|
exports.npmDescriptorToRegistryPrefix = npmDescriptorToRegistryPrefix;
|
|
2036
2205
|
exports.parseNpmToolDescriptor = parseNpmToolDescriptor;
|
|
2206
|
+
exports.resolveLatestVersionFromRegistry = resolveLatestVersionFromRegistry;
|
|
2037
2207
|
exports.resolveNpmToolDescriptor = resolveNpmToolDescriptor;
|
|
2038
2208
|
exports.resolveSandboxedPath = resolveSandboxedPath;
|
|
2039
2209
|
exports.resolveToolDescriptor = resolveToolDescriptor;
|
|
2040
2210
|
exports.sanitizeForLog = sanitizeForLog;
|
|
2041
2211
|
exports.summarizeForLog = summarizeForLog;
|
|
2042
|
-
//# sourceMappingURL=chunk-
|
|
2043
|
-
//# sourceMappingURL=chunk-
|
|
2212
|
+
//# sourceMappingURL=chunk-LP7KHBA3.cjs.map
|
|
2213
|
+
//# sourceMappingURL=chunk-LP7KHBA3.cjs.map
|