agdex 0.4.2 → 0.5.1
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/README.md +42 -5
- package/dist/cli/configurable-select.d.ts +15 -0
- package/dist/cli/configurable-select.d.ts.map +1 -0
- package/dist/cli/index.js +453 -107
- package/dist/{index-2hm5b6yq.js → index-thmt54kg.js} +261 -70
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/lib/agents-md.d.ts +5 -0
- package/dist/lib/agents-md.d.ts.map +1 -1
- package/dist/lib/providers/cuda-feedstock.d.ts +6 -0
- package/dist/lib/providers/cuda-feedstock.d.ts.map +1 -0
- package/dist/lib/providers/generic.d.ts +2 -0
- package/dist/lib/providers/generic.d.ts.map +1 -1
- package/dist/lib/providers/index.d.ts +3 -0
- package/dist/lib/providers/index.d.ts.map +1 -1
- package/dist/lib/providers/nextjs.d.ts.map +1 -1
- package/dist/lib/providers/shadcn-svelte.d.ts +3 -0
- package/dist/lib/providers/shadcn-svelte.d.ts.map +1 -0
- package/dist/lib/providers/sveltekit.d.ts +3 -0
- package/dist/lib/providers/sveltekit.d.ts.map +1 -0
- package/dist/lib/skills.d.ts +13 -2
- package/dist/lib/skills.d.ts.map +1 -1
- package/dist/lib/types.d.ts +20 -3
- package/dist/lib/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/index-4shp3mqh.js +0 -1871
- package/dist/index-57bfejpe.js +0 -1357
- package/dist/index-5h59833k.js +0 -1270
- package/dist/index-6dj5che8.js +0 -859
- package/dist/index-6e18afd7.js +0 -1229
- package/dist/index-7adbtddf.js +0 -1123
- package/dist/index-9gy9s47s.js +0 -1366
- package/dist/index-cfpc7eqp.js +0 -1265
- package/dist/index-db6kreh4.js +0 -1188
- package/dist/index-exr11by8.js +0 -708
- package/dist/index-fxmpwsct.js +0 -779
- package/dist/index-gtzz9131.js +0 -708
- package/dist/index-hr5jh9yq.js +0 -712
- package/dist/index-k299aha0.js +0 -1229
- package/dist/index-ntpyfcve.js +0 -1154
- package/dist/index-p0xjkwcp.js +0 -1283
- package/dist/index-pkx4s2ef.js +0 -2100
- package/dist/index-pry8ssn1.js +0 -636
- package/dist/index-wgnqr8g3.js +0 -882
- package/dist/index-y6zqcrbh.js +0 -788
- package/dist/index-zrmn6fd2.js +0 -1903
|
@@ -40,17 +40,12 @@ async function pullDocs(provider, options) {
|
|
|
40
40
|
} else if (provider.detectVersion) {
|
|
41
41
|
const versionResult = provider.detectVersion(cwd);
|
|
42
42
|
if (!versionResult.version) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
};
|
|
43
|
+
version = provider.defaultBranch || "main";
|
|
44
|
+
} else {
|
|
45
|
+
version = versionResult.version;
|
|
47
46
|
}
|
|
48
|
-
version = versionResult.version;
|
|
49
47
|
} else {
|
|
50
|
-
|
|
51
|
-
success: false,
|
|
52
|
-
error: `No version provided and ${provider.displayName} does not support auto-detection`
|
|
53
|
-
};
|
|
48
|
+
version = provider.defaultBranch || "main";
|
|
54
49
|
}
|
|
55
50
|
const docsPath = docsDir ?? fs.mkdtempSync(path.join(os.tmpdir(), "agdex-"));
|
|
56
51
|
const useTempDir = !docsDir;
|
|
@@ -253,6 +248,15 @@ function hasExistingIndex(content, providerName) {
|
|
|
253
248
|
}
|
|
254
249
|
return content.includes(START_MARKER_PREFIX);
|
|
255
250
|
}
|
|
251
|
+
function getEmbeddedProviders(content) {
|
|
252
|
+
const providers = [];
|
|
253
|
+
const regex = /<!-- AGENTS-MD-EMBED-START:(\S+?) -->/g;
|
|
254
|
+
let match;
|
|
255
|
+
while ((match = regex.exec(content)) !== null) {
|
|
256
|
+
providers.push(match[1]);
|
|
257
|
+
}
|
|
258
|
+
return providers;
|
|
259
|
+
}
|
|
256
260
|
function removeDocsIndex(content, providerName) {
|
|
257
261
|
if (!hasExistingIndex(content, providerName)) {
|
|
258
262
|
return content;
|
|
@@ -351,7 +355,7 @@ async function embed(options) {
|
|
|
351
355
|
version,
|
|
352
356
|
output = "AGENTS.md",
|
|
353
357
|
docsDir: customDocsDir,
|
|
354
|
-
globalCache =
|
|
358
|
+
globalCache = true,
|
|
355
359
|
description
|
|
356
360
|
} = options;
|
|
357
361
|
let docsPath;
|
|
@@ -380,24 +384,39 @@ async function embed(options) {
|
|
|
380
384
|
sizeBefore = Buffer.byteLength(existingContent, "utf-8");
|
|
381
385
|
isNewFile = false;
|
|
382
386
|
}
|
|
383
|
-
const
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
387
|
+
const cacheHit = fs.existsSync(docsPath) && fs.readdirSync(docsPath).length > 0;
|
|
388
|
+
let pullResult;
|
|
389
|
+
if (cacheHit) {
|
|
390
|
+
let resolvedVersion = version;
|
|
391
|
+
if (!resolvedVersion && provider.detectVersion) {
|
|
392
|
+
const detected = provider.detectVersion(cwd);
|
|
393
|
+
resolvedVersion = detected.version || undefined;
|
|
394
|
+
}
|
|
395
|
+
pullResult = {
|
|
396
|
+
success: true,
|
|
397
|
+
docsPath,
|
|
398
|
+
version: resolvedVersion
|
|
392
399
|
};
|
|
400
|
+
} else {
|
|
401
|
+
pullResult = await pullDocs(provider, {
|
|
402
|
+
cwd,
|
|
403
|
+
version,
|
|
404
|
+
docsDir: docsPath
|
|
405
|
+
});
|
|
406
|
+
if (!pullResult.success) {
|
|
407
|
+
return {
|
|
408
|
+
success: false,
|
|
409
|
+
error: pullResult.error
|
|
410
|
+
};
|
|
411
|
+
}
|
|
393
412
|
}
|
|
394
413
|
const docFiles = collectDocFiles(docsPath, {
|
|
395
414
|
extensions: provider.extensions,
|
|
396
415
|
excludePatterns: provider.excludePatterns
|
|
397
416
|
});
|
|
398
417
|
const sections = buildDocTree(docFiles);
|
|
399
|
-
const
|
|
400
|
-
const regenerateCommand = `npx agdex --provider ${provider.name} --output ${output}${
|
|
418
|
+
const localFlag = !globalCache ? " --local" : "";
|
|
419
|
+
const regenerateCommand = `npx agdex --provider ${provider.name} --output ${output}${localFlag}`;
|
|
401
420
|
const indexContent = generateIndex({
|
|
402
421
|
docsPath: docsLinkPath,
|
|
403
422
|
sections,
|
|
@@ -426,7 +445,8 @@ async function embed(options) {
|
|
|
426
445
|
sizeBefore,
|
|
427
446
|
sizeAfter,
|
|
428
447
|
isNewFile,
|
|
429
|
-
gitignoreUpdated
|
|
448
|
+
gitignoreUpdated,
|
|
449
|
+
cacheHit
|
|
430
450
|
};
|
|
431
451
|
}
|
|
432
452
|
|
|
@@ -605,6 +625,7 @@ var nextjsProvider = {
|
|
|
605
625
|
docsPath: "docs",
|
|
606
626
|
extensions: [".mdx", ".md"],
|
|
607
627
|
detectVersion,
|
|
628
|
+
defaultBranch: "canary",
|
|
608
629
|
versionToTag: (version) => version.startsWith("v") ? version : `v${version}`,
|
|
609
630
|
excludePatterns: ["**/index.mdx", "**/index.md"],
|
|
610
631
|
instruction: "IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning for any Next.js tasks."
|
|
@@ -1607,6 +1628,7 @@ function createProvider(options) {
|
|
|
1607
1628
|
docsPath,
|
|
1608
1629
|
extensions = [".mdx", ".md"],
|
|
1609
1630
|
packageName,
|
|
1631
|
+
defaultBranch,
|
|
1610
1632
|
versionToTag = (v) => {
|
|
1611
1633
|
if (v.startsWith("v") || /^\d/.test(v)) {
|
|
1612
1634
|
return v.startsWith("v") ? v : `v${v}`;
|
|
@@ -1651,6 +1673,7 @@ function createProvider(options) {
|
|
|
1651
1673
|
docsPath,
|
|
1652
1674
|
extensions,
|
|
1653
1675
|
detectVersion: detectVersion20,
|
|
1676
|
+
defaultBranch,
|
|
1654
1677
|
versionToTag,
|
|
1655
1678
|
excludePatterns,
|
|
1656
1679
|
instruction: instruction || `IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning for any ${displayName} tasks.`
|
|
@@ -1667,6 +1690,105 @@ function createLocalProvider(options) {
|
|
|
1667
1690
|
instruction: options.instruction || `IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning for any ${options.displayName} tasks.`
|
|
1668
1691
|
};
|
|
1669
1692
|
}
|
|
1693
|
+
// src/lib/providers/sveltekit.ts
|
|
1694
|
+
import fs20 from "fs";
|
|
1695
|
+
import path20 from "path";
|
|
1696
|
+
function detectVersion20(cwd) {
|
|
1697
|
+
const packageJsonPath = path20.join(cwd, "package.json");
|
|
1698
|
+
if (!fs20.existsSync(packageJsonPath)) {
|
|
1699
|
+
return {
|
|
1700
|
+
version: null,
|
|
1701
|
+
error: "No package.json found in the current directory"
|
|
1702
|
+
};
|
|
1703
|
+
}
|
|
1704
|
+
try {
|
|
1705
|
+
const packageJson = JSON.parse(fs20.readFileSync(packageJsonPath, "utf-8"));
|
|
1706
|
+
const dependencies = packageJson.dependencies || {};
|
|
1707
|
+
const devDependencies = packageJson.devDependencies || {};
|
|
1708
|
+
const kitVersion = dependencies["@sveltejs/kit"] || devDependencies["@sveltejs/kit"];
|
|
1709
|
+
if (kitVersion) {
|
|
1710
|
+
const cleanVersion = kitVersion.replace(/^[\^~>=<]+/, "");
|
|
1711
|
+
return { version: cleanVersion };
|
|
1712
|
+
}
|
|
1713
|
+
return {
|
|
1714
|
+
version: null,
|
|
1715
|
+
error: "@sveltejs/kit is not installed in this project."
|
|
1716
|
+
};
|
|
1717
|
+
} catch (err) {
|
|
1718
|
+
return {
|
|
1719
|
+
version: null,
|
|
1720
|
+
error: `Failed to parse package.json: ${err instanceof Error ? err.message : String(err)}`
|
|
1721
|
+
};
|
|
1722
|
+
}
|
|
1723
|
+
}
|
|
1724
|
+
var sveltekitProvider = {
|
|
1725
|
+
name: "sveltekit",
|
|
1726
|
+
displayName: "SvelteKit",
|
|
1727
|
+
repo: "sveltejs/kit",
|
|
1728
|
+
docsPath: "documentation/docs",
|
|
1729
|
+
extensions: [".md"],
|
|
1730
|
+
detectVersion: detectVersion20,
|
|
1731
|
+
versionToTag: (version) => `@sveltejs/kit@${version}`,
|
|
1732
|
+
excludePatterns: ["**/index.md"],
|
|
1733
|
+
instruction: "IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning for any SvelteKit tasks."
|
|
1734
|
+
};
|
|
1735
|
+
// src/lib/providers/shadcn-svelte.ts
|
|
1736
|
+
import fs21 from "fs";
|
|
1737
|
+
import path21 from "path";
|
|
1738
|
+
function detectVersion21(cwd) {
|
|
1739
|
+
const packageJsonPath = path21.join(cwd, "package.json");
|
|
1740
|
+
if (!fs21.existsSync(packageJsonPath)) {
|
|
1741
|
+
return {
|
|
1742
|
+
version: null,
|
|
1743
|
+
error: "No package.json found in the current directory"
|
|
1744
|
+
};
|
|
1745
|
+
}
|
|
1746
|
+
try {
|
|
1747
|
+
const packageJson = JSON.parse(fs21.readFileSync(packageJsonPath, "utf-8"));
|
|
1748
|
+
const dependencies = packageJson.dependencies || {};
|
|
1749
|
+
const devDependencies = packageJson.devDependencies || {};
|
|
1750
|
+
const version = dependencies["shadcn-svelte"] || devDependencies["shadcn-svelte"];
|
|
1751
|
+
if (version) {
|
|
1752
|
+
const cleanVersion = version.replace(/^[\^~>=<]+/, "");
|
|
1753
|
+
return { version: cleanVersion };
|
|
1754
|
+
}
|
|
1755
|
+
return {
|
|
1756
|
+
version: null,
|
|
1757
|
+
error: "shadcn-svelte is not installed in this project."
|
|
1758
|
+
};
|
|
1759
|
+
} catch (err) {
|
|
1760
|
+
return {
|
|
1761
|
+
version: null,
|
|
1762
|
+
error: `Failed to parse package.json: ${err instanceof Error ? err.message : String(err)}`
|
|
1763
|
+
};
|
|
1764
|
+
}
|
|
1765
|
+
}
|
|
1766
|
+
var shadcnSvelteProvider = {
|
|
1767
|
+
name: "shadcn-svelte",
|
|
1768
|
+
displayName: "shadcn-svelte",
|
|
1769
|
+
repo: "huntabyte/shadcn-svelte",
|
|
1770
|
+
docsPath: "docs/content",
|
|
1771
|
+
extensions: [".md"],
|
|
1772
|
+
detectVersion: detectVersion21,
|
|
1773
|
+
versionToTag: (version) => `shadcn-svelte@${version}`,
|
|
1774
|
+
excludePatterns: ["**/index.md"],
|
|
1775
|
+
instruction: "IMPORTANT: Prefer retrieval-led reasoning over pre-training-led reasoning for any shadcn-svelte tasks."
|
|
1776
|
+
};
|
|
1777
|
+
// src/lib/providers/cuda-feedstock.ts
|
|
1778
|
+
function detectVersion22(_cwd) {
|
|
1779
|
+
return { version: "main" };
|
|
1780
|
+
}
|
|
1781
|
+
var cudaFeedstockProvider = {
|
|
1782
|
+
name: "cuda-feedstock",
|
|
1783
|
+
displayName: "CUDA Feedstock",
|
|
1784
|
+
repo: "conda-forge/cuda-feedstock",
|
|
1785
|
+
docsPath: "recipe",
|
|
1786
|
+
extensions: [".md", ".yaml"],
|
|
1787
|
+
detectVersion: detectVersion22,
|
|
1788
|
+
versionToTag: (version) => version,
|
|
1789
|
+
excludePatterns: [],
|
|
1790
|
+
instruction: "This should be used when building and running CUDA packages with rattler-build, conda-forge, pixi."
|
|
1791
|
+
};
|
|
1670
1792
|
// src/lib/providers/index.ts
|
|
1671
1793
|
function getProvider(preset) {
|
|
1672
1794
|
switch (preset) {
|
|
@@ -1686,6 +1808,10 @@ function getProvider(preset) {
|
|
|
1686
1808
|
return bunProvider;
|
|
1687
1809
|
case "svelte":
|
|
1688
1810
|
return svelteProvider;
|
|
1811
|
+
case "sveltekit":
|
|
1812
|
+
return sveltekitProvider;
|
|
1813
|
+
case "shadcn-svelte":
|
|
1814
|
+
return shadcnSvelteProvider;
|
|
1689
1815
|
case "tailwind":
|
|
1690
1816
|
return tailwindProvider;
|
|
1691
1817
|
case "ruff":
|
|
@@ -1708,6 +1834,8 @@ function getProvider(preset) {
|
|
|
1708
1834
|
return ffmpegProvider;
|
|
1709
1835
|
case "manim":
|
|
1710
1836
|
return manimProvider;
|
|
1837
|
+
case "cuda-feedstock":
|
|
1838
|
+
return cudaFeedstockProvider;
|
|
1711
1839
|
case "vue":
|
|
1712
1840
|
case "astro":
|
|
1713
1841
|
return null;
|
|
@@ -1716,23 +1844,33 @@ function getProvider(preset) {
|
|
|
1716
1844
|
}
|
|
1717
1845
|
}
|
|
1718
1846
|
function listProviders() {
|
|
1719
|
-
return ["nextjs", "react", "pixi", "rattler-build", "tauri", "conda-forge", "bun", "vue", "svelte", "astro", "tailwind", "ruff", "ty", "basedpyright", "convex", "polars", "delta-rs", "obsidian", "obsidian-excalidraw", "ffmpeg", "manim"];
|
|
1847
|
+
return ["nextjs", "react", "pixi", "rattler-build", "tauri", "conda-forge", "bun", "vue", "svelte", "sveltekit", "shadcn-svelte", "astro", "tailwind", "ruff", "ty", "basedpyright", "convex", "polars", "delta-rs", "obsidian", "obsidian-excalidraw", "ffmpeg", "manim", "cuda-feedstock"];
|
|
1720
1848
|
}
|
|
1721
1849
|
function isProviderAvailable(preset) {
|
|
1722
1850
|
return getProvider(preset) !== null;
|
|
1723
1851
|
}
|
|
1724
1852
|
|
|
1725
1853
|
// src/lib/skills.ts
|
|
1726
|
-
import
|
|
1727
|
-
import
|
|
1854
|
+
import fs22 from "fs";
|
|
1855
|
+
import path22 from "path";
|
|
1728
1856
|
import os2 from "os";
|
|
1729
1857
|
var SKILLS_START_MARKER = "<!-- AGENTS-MD-SKILLS-START -->";
|
|
1730
1858
|
var SKILLS_END_MARKER = "<!-- AGENTS-MD-SKILLS-END -->";
|
|
1859
|
+
var SKILLS_SH_API_BASE = "https://skills.sh";
|
|
1860
|
+
async function fetchSkillsShSearch(query, limit = 20) {
|
|
1861
|
+
const url = `${SKILLS_SH_API_BASE}/api/search?q=${encodeURIComponent(query)}&limit=${limit}`;
|
|
1862
|
+
const response = await fetch(url);
|
|
1863
|
+
if (!response.ok) {
|
|
1864
|
+
throw new Error(`skills.sh API returned ${response.status}`);
|
|
1865
|
+
}
|
|
1866
|
+
const data = await response.json();
|
|
1867
|
+
return data.skills;
|
|
1868
|
+
}
|
|
1731
1869
|
function parseEnabledPlugins(settingsPath) {
|
|
1732
|
-
if (!
|
|
1870
|
+
if (!fs22.existsSync(settingsPath))
|
|
1733
1871
|
return [];
|
|
1734
1872
|
try {
|
|
1735
|
-
const content =
|
|
1873
|
+
const content = fs22.readFileSync(settingsPath, "utf-8");
|
|
1736
1874
|
const settings = JSON.parse(content);
|
|
1737
1875
|
const enabledPlugins = settings.enabledPlugins || {};
|
|
1738
1876
|
const plugins = [];
|
|
@@ -1753,17 +1891,17 @@ function parseEnabledPlugins(settingsPath) {
|
|
|
1753
1891
|
}
|
|
1754
1892
|
}
|
|
1755
1893
|
function findPluginSkillsPath(pluginRepo, skillName) {
|
|
1756
|
-
const cacheDir =
|
|
1757
|
-
if (!
|
|
1894
|
+
const cacheDir = path22.join(os2.homedir(), ".claude", "plugins", "cache", pluginRepo, skillName);
|
|
1895
|
+
if (!fs22.existsSync(cacheDir))
|
|
1758
1896
|
return null;
|
|
1759
1897
|
try {
|
|
1760
|
-
const entries =
|
|
1898
|
+
const entries = fs22.readdirSync(cacheDir, { withFileTypes: true });
|
|
1761
1899
|
const hashDirs = entries.filter((e) => e.isDirectory() && !e.name.startsWith("."));
|
|
1762
1900
|
if (hashDirs.length === 0)
|
|
1763
1901
|
return null;
|
|
1764
1902
|
const hashDir = hashDirs[0].name;
|
|
1765
|
-
const skillsPath =
|
|
1766
|
-
if (
|
|
1903
|
+
const skillsPath = path22.join(cacheDir, hashDir, "skills");
|
|
1904
|
+
if (fs22.existsSync(skillsPath)) {
|
|
1767
1905
|
return skillsPath;
|
|
1768
1906
|
}
|
|
1769
1907
|
return null;
|
|
@@ -1775,8 +1913,8 @@ function getEnabledPluginSources(cwd) {
|
|
|
1775
1913
|
const sources = [];
|
|
1776
1914
|
const seenPlugins = new Set;
|
|
1777
1915
|
const settingsPaths = [
|
|
1778
|
-
|
|
1779
|
-
|
|
1916
|
+
path22.join(os2.homedir(), ".claude", "settings.json"),
|
|
1917
|
+
path22.join(cwd, ".claude", "settings.json")
|
|
1780
1918
|
];
|
|
1781
1919
|
for (const settingsPath of settingsPaths) {
|
|
1782
1920
|
const plugins = parseEnabledPlugins(settingsPath);
|
|
@@ -1819,12 +1957,12 @@ function parseSkillFrontmatter(content) {
|
|
|
1819
1957
|
function getFilesRecursively(dir, baseDir) {
|
|
1820
1958
|
const files = [];
|
|
1821
1959
|
try {
|
|
1822
|
-
const entries =
|
|
1960
|
+
const entries = fs22.readdirSync(dir, { withFileTypes: true });
|
|
1823
1961
|
for (const entry of entries) {
|
|
1824
1962
|
if (entry.name.startsWith(".") || entry.name === "SKILL.md")
|
|
1825
1963
|
continue;
|
|
1826
|
-
const fullPath =
|
|
1827
|
-
const relativePath =
|
|
1964
|
+
const fullPath = path22.join(dir, entry.name);
|
|
1965
|
+
const relativePath = path22.relative(baseDir, fullPath);
|
|
1828
1966
|
if (entry.isDirectory()) {
|
|
1829
1967
|
files.push(...getFilesRecursively(fullPath, baseDir));
|
|
1830
1968
|
} else {
|
|
@@ -1835,29 +1973,29 @@ function getFilesRecursively(dir, baseDir) {
|
|
|
1835
1973
|
return files;
|
|
1836
1974
|
}
|
|
1837
1975
|
function getSiblingFiles(skillMdPath) {
|
|
1838
|
-
const dir =
|
|
1839
|
-
if (!
|
|
1976
|
+
const dir = path22.dirname(skillMdPath);
|
|
1977
|
+
if (!fs22.existsSync(dir))
|
|
1840
1978
|
return [];
|
|
1841
1979
|
return getFilesRecursively(dir, dir).sort();
|
|
1842
1980
|
}
|
|
1843
1981
|
function discoverPluginSkills(pluginsPath, label) {
|
|
1844
1982
|
const skills = [];
|
|
1845
|
-
const pluginsDir =
|
|
1846
|
-
if (!
|
|
1983
|
+
const pluginsDir = path22.join(pluginsPath, "plugins");
|
|
1984
|
+
if (!fs22.existsSync(pluginsDir)) {
|
|
1847
1985
|
return skills;
|
|
1848
1986
|
}
|
|
1849
|
-
const plugins =
|
|
1987
|
+
const plugins = fs22.readdirSync(pluginsDir, { withFileTypes: true }).filter((d) => d.isDirectory());
|
|
1850
1988
|
for (const plugin of plugins) {
|
|
1851
|
-
const skillsDir =
|
|
1852
|
-
if (!
|
|
1989
|
+
const skillsDir = path22.join(pluginsDir, plugin.name, "skills");
|
|
1990
|
+
if (!fs22.existsSync(skillsDir))
|
|
1853
1991
|
continue;
|
|
1854
|
-
const skillDirs =
|
|
1992
|
+
const skillDirs = fs22.readdirSync(skillsDir, { withFileTypes: true }).filter((d) => d.isDirectory());
|
|
1855
1993
|
for (const skillDir of skillDirs) {
|
|
1856
|
-
const skillMdPath =
|
|
1857
|
-
if (!
|
|
1994
|
+
const skillMdPath = path22.join(skillsDir, skillDir.name, "SKILL.md");
|
|
1995
|
+
if (!fs22.existsSync(skillMdPath))
|
|
1858
1996
|
continue;
|
|
1859
1997
|
try {
|
|
1860
|
-
const content =
|
|
1998
|
+
const content = fs22.readFileSync(skillMdPath, "utf-8");
|
|
1861
1999
|
const frontmatter = parseSkillFrontmatter(content);
|
|
1862
2000
|
if (!frontmatter)
|
|
1863
2001
|
continue;
|
|
@@ -1876,16 +2014,16 @@ function discoverPluginSkills(pluginsPath, label) {
|
|
|
1876
2014
|
}
|
|
1877
2015
|
function discoverFlatSkills(skillsPath, source, label) {
|
|
1878
2016
|
const skills = [];
|
|
1879
|
-
if (!
|
|
2017
|
+
if (!fs22.existsSync(skillsPath)) {
|
|
1880
2018
|
return skills;
|
|
1881
2019
|
}
|
|
1882
|
-
const skillDirs =
|
|
2020
|
+
const skillDirs = fs22.readdirSync(skillsPath, { withFileTypes: true }).filter((d) => d.isDirectory());
|
|
1883
2021
|
for (const skillDir of skillDirs) {
|
|
1884
|
-
const skillMdPath =
|
|
1885
|
-
if (!
|
|
2022
|
+
const skillMdPath = path22.join(skillsPath, skillDir.name, "SKILL.md");
|
|
2023
|
+
if (!fs22.existsSync(skillMdPath))
|
|
1886
2024
|
continue;
|
|
1887
2025
|
try {
|
|
1888
|
-
const content =
|
|
2026
|
+
const content = fs22.readFileSync(skillMdPath, "utf-8");
|
|
1889
2027
|
const frontmatter = parseSkillFrontmatter(content);
|
|
1890
2028
|
if (!frontmatter)
|
|
1891
2029
|
continue;
|
|
@@ -1900,6 +2038,49 @@ function discoverFlatSkills(skillsPath, source, label) {
|
|
|
1900
2038
|
}
|
|
1901
2039
|
return skills;
|
|
1902
2040
|
}
|
|
2041
|
+
function discoverSkillsShRepo(repoDir, repoName) {
|
|
2042
|
+
const skills = [];
|
|
2043
|
+
const seen = new Set;
|
|
2044
|
+
const searchDirs = [
|
|
2045
|
+
"skills",
|
|
2046
|
+
".claude/skills",
|
|
2047
|
+
".agents/skills",
|
|
2048
|
+
"skills/.curated",
|
|
2049
|
+
"skills/.experimental"
|
|
2050
|
+
];
|
|
2051
|
+
const rootSkillMd = path22.join(repoDir, "SKILL.md");
|
|
2052
|
+
if (fs22.existsSync(rootSkillMd)) {
|
|
2053
|
+
try {
|
|
2054
|
+
const content = fs22.readFileSync(rootSkillMd, "utf-8");
|
|
2055
|
+
const frontmatter = parseSkillFrontmatter(content);
|
|
2056
|
+
if (frontmatter) {
|
|
2057
|
+
seen.add(frontmatter.name);
|
|
2058
|
+
skills.push({
|
|
2059
|
+
name: frontmatter.name,
|
|
2060
|
+
description: frontmatter.description,
|
|
2061
|
+
skillMdPath: rootSkillMd,
|
|
2062
|
+
siblingFiles: getSiblingFiles(rootSkillMd),
|
|
2063
|
+
source: "skills-sh",
|
|
2064
|
+
pluginName: repoName
|
|
2065
|
+
});
|
|
2066
|
+
}
|
|
2067
|
+
} catch {}
|
|
2068
|
+
}
|
|
2069
|
+
for (const dir of searchDirs) {
|
|
2070
|
+
const fullDir = path22.join(repoDir, dir);
|
|
2071
|
+
if (!fs22.existsSync(fullDir))
|
|
2072
|
+
continue;
|
|
2073
|
+
const discovered = discoverFlatSkills(fullDir, "skills-sh", repoName);
|
|
2074
|
+
for (const skill of discovered) {
|
|
2075
|
+
if (!seen.has(skill.name)) {
|
|
2076
|
+
seen.add(skill.name);
|
|
2077
|
+
skill.pluginName = repoName;
|
|
2078
|
+
skills.push(skill);
|
|
2079
|
+
}
|
|
2080
|
+
}
|
|
2081
|
+
}
|
|
2082
|
+
return skills;
|
|
2083
|
+
}
|
|
1903
2084
|
function collectAllSkills(sources) {
|
|
1904
2085
|
const allSkills = [];
|
|
1905
2086
|
for (const source of sources) {
|
|
@@ -1923,6 +2104,7 @@ function collectAllSkills(sources) {
|
|
|
1923
2104
|
function generateSkillsIndex(skills, options = {}) {
|
|
1924
2105
|
const parts = ["[Skills Index]"];
|
|
1925
2106
|
const pluginSkills = new Map;
|
|
2107
|
+
const skillsShSkills = new Map;
|
|
1926
2108
|
const userSkills = [];
|
|
1927
2109
|
const projectSkills = [];
|
|
1928
2110
|
for (const skill of skills) {
|
|
@@ -1930,6 +2112,10 @@ function generateSkillsIndex(skills, options = {}) {
|
|
|
1930
2112
|
const existing = pluginSkills.get(skill.pluginName) || [];
|
|
1931
2113
|
existing.push(skill);
|
|
1932
2114
|
pluginSkills.set(skill.pluginName, existing);
|
|
2115
|
+
} else if (skill.source === "skills-sh" && skill.pluginName) {
|
|
2116
|
+
const existing = skillsShSkills.get(skill.pluginName) || [];
|
|
2117
|
+
existing.push(skill);
|
|
2118
|
+
skillsShSkills.set(skill.pluginName, existing);
|
|
1933
2119
|
} else if (skill.source === "user") {
|
|
1934
2120
|
userSkills.push(skill);
|
|
1935
2121
|
} else if (skill.source === "project") {
|
|
@@ -1940,6 +2126,10 @@ function generateSkillsIndex(skills, options = {}) {
|
|
|
1940
2126
|
const skillParts = entries.map((s) => formatSkillEntry(s)).join(";");
|
|
1941
2127
|
parts.push(`plugin:${pluginName}:{${skillParts}}`);
|
|
1942
2128
|
}
|
|
2129
|
+
for (const [repoName, entries] of skillsShSkills) {
|
|
2130
|
+
const skillParts = entries.map((s) => formatSkillEntry(s)).join(";");
|
|
2131
|
+
parts.push(`skills-sh:${repoName}:{${skillParts}}`);
|
|
2132
|
+
}
|
|
1943
2133
|
if (userSkills.length > 0) {
|
|
1944
2134
|
const skillParts = userSkills.map((s) => formatSkillEntry(s)).join(";");
|
|
1945
2135
|
parts.push(`user:{${skillParts}}`);
|
|
@@ -2008,7 +2198,7 @@ function getDefaultSkillSources(cwd, options = {}) {
|
|
|
2008
2198
|
sources.push({
|
|
2009
2199
|
type: "plugin",
|
|
2010
2200
|
path: pluginPath,
|
|
2011
|
-
label:
|
|
2201
|
+
label: path22.basename(pluginPath)
|
|
2012
2202
|
});
|
|
2013
2203
|
}
|
|
2014
2204
|
if (includeEnabledPlugins) {
|
|
@@ -2016,7 +2206,7 @@ function getDefaultSkillSources(cwd, options = {}) {
|
|
|
2016
2206
|
sources.push(...enabledPluginSources);
|
|
2017
2207
|
}
|
|
2018
2208
|
if (includeUser) {
|
|
2019
|
-
const userSkillsPath =
|
|
2209
|
+
const userSkillsPath = path22.join(os2.homedir(), ".claude", "skills");
|
|
2020
2210
|
sources.push({
|
|
2021
2211
|
type: "user",
|
|
2022
2212
|
path: userSkillsPath,
|
|
@@ -2024,7 +2214,7 @@ function getDefaultSkillSources(cwd, options = {}) {
|
|
|
2024
2214
|
});
|
|
2025
2215
|
}
|
|
2026
2216
|
if (includeProject) {
|
|
2027
|
-
const projectSkillsPath =
|
|
2217
|
+
const projectSkillsPath = path22.join(cwd, ".claude", "skills");
|
|
2028
2218
|
sources.push({
|
|
2029
2219
|
type: "project",
|
|
2030
2220
|
path: projectSkillsPath,
|
|
@@ -2035,12 +2225,12 @@ function getDefaultSkillSources(cwd, options = {}) {
|
|
|
2035
2225
|
}
|
|
2036
2226
|
async function embedSkills(options) {
|
|
2037
2227
|
const { cwd, sources, output = "AGENTS.md" } = options;
|
|
2038
|
-
const targetPath =
|
|
2228
|
+
const targetPath = path22.join(cwd, output);
|
|
2039
2229
|
let sizeBefore = 0;
|
|
2040
2230
|
let isNewFile = true;
|
|
2041
2231
|
let existingContent = "";
|
|
2042
|
-
if (
|
|
2043
|
-
existingContent =
|
|
2232
|
+
if (fs22.existsSync(targetPath)) {
|
|
2233
|
+
existingContent = fs22.readFileSync(targetPath, "utf-8");
|
|
2044
2234
|
sizeBefore = Buffer.byteLength(existingContent, "utf-8");
|
|
2045
2235
|
isNewFile = false;
|
|
2046
2236
|
}
|
|
@@ -2054,7 +2244,8 @@ async function embedSkills(options) {
|
|
|
2054
2244
|
const sourceBreakdown = {
|
|
2055
2245
|
plugin: 0,
|
|
2056
2246
|
user: 0,
|
|
2057
|
-
project: 0
|
|
2247
|
+
project: 0,
|
|
2248
|
+
"skills-sh": 0
|
|
2058
2249
|
};
|
|
2059
2250
|
for (const skill of skills) {
|
|
2060
2251
|
sourceBreakdown[skill.source]++;
|
|
@@ -2063,7 +2254,7 @@ async function embedSkills(options) {
|
|
|
2063
2254
|
regenerateCommand: `npx agdex skills embed`
|
|
2064
2255
|
});
|
|
2065
2256
|
const newContent = injectSkillsIndex(existingContent, indexContent);
|
|
2066
|
-
|
|
2257
|
+
fs22.writeFileSync(targetPath, newContent, "utf-8");
|
|
2067
2258
|
const sizeAfter = Buffer.byteLength(newContent, "utf-8");
|
|
2068
2259
|
return {
|
|
2069
2260
|
success: true,
|
|
@@ -2077,24 +2268,24 @@ async function embedSkills(options) {
|
|
|
2077
2268
|
}
|
|
2078
2269
|
|
|
2079
2270
|
// src/lib/config.ts
|
|
2080
|
-
import
|
|
2081
|
-
import
|
|
2271
|
+
import fs23 from "fs";
|
|
2272
|
+
import path23 from "path";
|
|
2082
2273
|
var DEFAULT_CONFIG = {
|
|
2083
2274
|
output: "CLAUDE.md"
|
|
2084
2275
|
};
|
|
2085
2276
|
function loadConfig(cwd = process.cwd()) {
|
|
2086
|
-
const rcPath =
|
|
2087
|
-
if (
|
|
2277
|
+
const rcPath = path23.join(cwd, ".agdexrc.json");
|
|
2278
|
+
if (fs23.existsSync(rcPath)) {
|
|
2088
2279
|
try {
|
|
2089
|
-
const content =
|
|
2280
|
+
const content = fs23.readFileSync(rcPath, "utf-8");
|
|
2090
2281
|
const config = JSON.parse(content);
|
|
2091
2282
|
return { ...DEFAULT_CONFIG, ...config };
|
|
2092
2283
|
} catch {}
|
|
2093
2284
|
}
|
|
2094
|
-
const packageJsonPath =
|
|
2095
|
-
if (
|
|
2285
|
+
const packageJsonPath = path23.join(cwd, "package.json");
|
|
2286
|
+
if (fs23.existsSync(packageJsonPath)) {
|
|
2096
2287
|
try {
|
|
2097
|
-
const content =
|
|
2288
|
+
const content = fs23.readFileSync(packageJsonPath, "utf-8");
|
|
2098
2289
|
const packageJson = JSON.parse(content);
|
|
2099
2290
|
if (packageJson.agdex && typeof packageJson.agdex === "object") {
|
|
2100
2291
|
return { ...DEFAULT_CONFIG, ...packageJson.agdex };
|
|
@@ -2108,4 +2299,4 @@ function getDefaultOutput(cwd = process.cwd()) {
|
|
|
2108
2299
|
return config.output || "AGENTS.md";
|
|
2109
2300
|
}
|
|
2110
2301
|
|
|
2111
|
-
export { __toESM, __commonJS, __require, pullDocs, collectDocFiles, buildDocTree, generateIndex, hasExistingIndex, removeDocsIndex, injectIndex, ensureGitignoreEntry, getGlobalCacheDir, getLocalCacheDir, embed, nextjsProvider, reactProvider, pixiProvider, rattlerBuildProvider, tauriProvider, condaForgeProvider, bunProvider, svelteProvider, tailwindProvider, ruffProvider, tyProvider, basedpyrightProvider, convexProvider, polarsProvider, deltaRsProvider, obsidianProvider, obsidianExcalidrawProvider, ffmpegProvider, manimProvider, createProvider, createLocalProvider, getProvider, listProviders, isProviderAvailable, getEnabledPluginSources, parseSkillFrontmatter, discoverPluginSkills, discoverFlatSkills, collectAllSkills, generateSkillsIndex, hasExistingSkillsIndex, removeSkillsIndex, injectSkillsIndex, getDefaultSkillSources, embedSkills, loadConfig, getDefaultOutput };
|
|
2302
|
+
export { __toESM, __commonJS, __require, pullDocs, collectDocFiles, buildDocTree, generateIndex, hasExistingIndex, getEmbeddedProviders, removeDocsIndex, injectIndex, ensureGitignoreEntry, getGlobalCacheDir, getLocalCacheDir, embed, nextjsProvider, reactProvider, pixiProvider, rattlerBuildProvider, tauriProvider, condaForgeProvider, bunProvider, svelteProvider, tailwindProvider, ruffProvider, tyProvider, basedpyrightProvider, convexProvider, polarsProvider, deltaRsProvider, obsidianProvider, obsidianExcalidrawProvider, ffmpegProvider, manimProvider, createProvider, createLocalProvider, getProvider, listProviders, isProviderAvailable, fetchSkillsShSearch, getEnabledPluginSources, parseSkillFrontmatter, discoverPluginSkills, discoverFlatSkills, discoverSkillsShRepo, collectAllSkills, generateSkillsIndex, hasExistingSkillsIndex, removeSkillsIndex, injectSkillsIndex, getDefaultSkillSources, embedSkills, loadConfig, getDefaultOutput };
|
package/dist/index.d.ts
CHANGED
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
* })
|
|
36
36
|
* ```
|
|
37
37
|
*/
|
|
38
|
-
export { embed, pullDocs, collectDocFiles, buildDocTree, generateIndex, injectIndex, hasExistingIndex, removeDocsIndex, ensureGitignoreEntry, getGlobalCacheDir, getLocalCacheDir, } from './lib/agents-md';
|
|
38
|
+
export { embed, pullDocs, collectDocFiles, buildDocTree, generateIndex, injectIndex, hasExistingIndex, removeDocsIndex, getEmbeddedProviders, ensureGitignoreEntry, getGlobalCacheDir, getLocalCacheDir, } from './lib/agents-md';
|
|
39
39
|
export { nextjsProvider, reactProvider, pixiProvider, rattlerBuildProvider, tauriProvider, condaForgeProvider, bunProvider, createProvider, createLocalProvider, getProvider, listProviders, isProviderAvailable, } from './lib/providers';
|
|
40
40
|
export { embedSkills, collectAllSkills, parseSkillFrontmatter, discoverPluginSkills, discoverFlatSkills, generateSkillsIndex, injectSkillsIndex, hasExistingSkillsIndex, removeSkillsIndex, getDefaultSkillSources, getEnabledPluginSources, } from './lib/skills';
|
|
41
41
|
export { loadConfig, getDefaultOutput } from './lib/config';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,EACL,KAAK,EACL,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG/C,YAAY,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,aAAa,EACb,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAGH,OAAO,EACL,KAAK,EACL,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,cAAc,CAAA;AAGrB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC3D,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAG/C,YAAY,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,aAAa,EACb,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,aAAa,CAAA;AAEpB,YAAY,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
generateSkillsIndex,
|
|
16
16
|
getDefaultOutput,
|
|
17
17
|
getDefaultSkillSources,
|
|
18
|
+
getEmbeddedProviders,
|
|
18
19
|
getEnabledPluginSources,
|
|
19
20
|
getGlobalCacheDir,
|
|
20
21
|
getLocalCacheDir,
|
|
@@ -35,7 +36,7 @@ import {
|
|
|
35
36
|
removeDocsIndex,
|
|
36
37
|
removeSkillsIndex,
|
|
37
38
|
tauriProvider
|
|
38
|
-
} from "./index-
|
|
39
|
+
} from "./index-thmt54kg.js";
|
|
39
40
|
export {
|
|
40
41
|
tauriProvider,
|
|
41
42
|
removeSkillsIndex,
|
|
@@ -57,6 +58,7 @@ export {
|
|
|
57
58
|
getLocalCacheDir,
|
|
58
59
|
getGlobalCacheDir,
|
|
59
60
|
getEnabledPluginSources,
|
|
61
|
+
getEmbeddedProviders,
|
|
60
62
|
getDefaultSkillSources,
|
|
61
63
|
getDefaultOutput,
|
|
62
64
|
generateSkillsIndex,
|
package/dist/lib/agents-md.d.ts
CHANGED
|
@@ -27,6 +27,11 @@ export declare function generateIndex(options: IndexOptions): string;
|
|
|
27
27
|
* If no provider specified, checks for any index
|
|
28
28
|
*/
|
|
29
29
|
export declare function hasExistingIndex(content: string, providerName?: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Get all embedded provider names from content
|
|
32
|
+
* Returns an array of provider name strings found in AGENTS-MD-EMBED-START markers
|
|
33
|
+
*/
|
|
34
|
+
export declare function getEmbeddedProviders(content: string): string[];
|
|
30
35
|
/**
|
|
31
36
|
* Remove the docs index from content
|
|
32
37
|
* If providerName specified, only removes that provider's index
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../src/lib/agents-md.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,SAAS,CAAA;AAkBhB;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3D,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"agents-md.d.ts","sourceRoot":"","sources":["../../src/lib/agents-md.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,SAAS,CAAA;AAkBhB;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3D,OAAO,CAAC,UAAU,CAAC,CAmDrB;AAiDD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC9D,OAAO,EAAE,CA4CX;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CA8E3D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAkC3D;AAkCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAMhF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ9D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAkD9E;AAWD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAkBxG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,eAAe,CAuBlF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAiIvE;AAGD,YAAY,EACV,WAAW,EACX,OAAO,EACP,UAAU,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cuda-feedstock.d.ts","sourceRoot":"","sources":["../../../src/lib/providers/cuda-feedstock.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,UAAU,CAAA;AAM1D,eAAO,MAAM,qBAAqB,EAAE,WAUnC,CAAA"}
|
|
@@ -14,6 +14,8 @@ export interface GenericProviderOptions {
|
|
|
14
14
|
packageName?: string;
|
|
15
15
|
/** Function to convert version to git tag */
|
|
16
16
|
versionToTag?: (version: string) => string;
|
|
17
|
+
/** Default branch to use when version detection fails (default: 'main') */
|
|
18
|
+
defaultBranch?: string;
|
|
17
19
|
/** Files to exclude from index (glob patterns) */
|
|
18
20
|
excludePatterns?: string[];
|
|
19
21
|
/** Custom instruction to include in the index */
|