@neuledge/context 0.6.0 → 0.8.0
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 +21 -2
- package/dist/cli.d.ts +16 -3
- package/dist/cli.js +135 -10
- package/dist/cli.js.map +1 -1
- package/dist/llms-txt.d.ts +45 -0
- package/dist/llms-txt.js +131 -0
- package/dist/llms-txt.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -169,7 +169,7 @@ Or access via **Windsurf Settings > Cascade > MCP Servers**.
|
|
|
169
169
|
<details>
|
|
170
170
|
<summary><strong>Zed</strong></summary>
|
|
171
171
|
|
|
172
|
-
Add to your Zed settings (`cmd+,` or `ctrl+,`):
|
|
172
|
+
Add to your Zed `settings.json` (press `cmd+,` or `ctrl+,` twice):
|
|
173
173
|
|
|
174
174
|
```json
|
|
175
175
|
{
|
|
@@ -271,7 +271,7 @@ Context runs entirely on your machine. Docs are downloaded once and stored as co
|
|
|
271
271
|
|
|
272
272
|
## Beyond the Registry
|
|
273
273
|
|
|
274
|
-
The registry covers popular open-source libraries, but Context also works with any documentation source. Use `context add` to build packages from private repos, internal libraries, or anything not yet in the registry.
|
|
274
|
+
The registry covers popular open-source libraries, but Context also works with any documentation source. Use `context add` to build packages from private repos, internal libraries, websites with [llms.txt](https://llmstxt.org/), or anything not yet in the registry.
|
|
275
275
|
|
|
276
276
|
```bash
|
|
277
277
|
# Build from a git repository
|
|
@@ -282,6 +282,9 @@ context add ./my-project
|
|
|
282
282
|
|
|
283
283
|
# Specific version tag
|
|
284
284
|
context add https://github.com/vercel/next.js/tree/v16.0.0
|
|
285
|
+
|
|
286
|
+
# Build from a website's llms.txt
|
|
287
|
+
context add https://svelte.dev
|
|
285
288
|
```
|
|
286
289
|
|
|
287
290
|
Once built, share packages with your team — they're portable `.db` files that install instantly:
|
|
@@ -403,6 +406,22 @@ context add https://github.com/vercel/next.js --save ./packages/
|
|
|
403
406
|
context add ./my-docs --save ./my-package.db
|
|
404
407
|
```
|
|
405
408
|
|
|
409
|
+
**From website ([llms.txt](https://llmstxt.org/)):**
|
|
410
|
+
|
|
411
|
+
Many websites publish an `llms.txt` file with AI-ready documentation. Context auto-detects and fetches it. When the site only provides `llms.txt` (an index of links rather than the inlined `llms-full.txt`), Context follows each link and fetches the linked document:
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
# Auto-fetches llms-full.txt or llms.txt from the site
|
|
415
|
+
context add https://svelte.dev
|
|
416
|
+
context add https://mui.com/material-ui
|
|
417
|
+
|
|
418
|
+
# Direct URL to a specific llms.txt file
|
|
419
|
+
context add https://svelte.dev/docs/svelte/llms.txt
|
|
420
|
+
|
|
421
|
+
# Custom package name
|
|
422
|
+
context add https://react-aria.adobe.com --name react-aria
|
|
423
|
+
```
|
|
424
|
+
|
|
406
425
|
**From URL:**
|
|
407
426
|
|
|
408
427
|
```bash
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,7 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
type SourceType = "file" | "url" | "git" | "local-dir";
|
|
2
|
+
type SourceType = "file" | "url" | "git" | "local-dir" | "website";
|
|
3
3
|
/** Detect the type of source based on the input string. */
|
|
4
4
|
export declare function detectSourceType(source: string): SourceType;
|
|
5
|
+
/**
|
|
6
|
+
* Derive a package name from a website URL.
|
|
7
|
+
* e.g., "https://react-aria.adobe.com" → "react-aria.adobe.com"
|
|
8
|
+
*/
|
|
9
|
+
export declare function packageNameFromUrl(url: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* Resolve the llms.txt URL to fetch.
|
|
12
|
+
* If the URL already points to a specific llms.txt file, use it directly.
|
|
13
|
+
* Otherwise, try well-known paths from the site root.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveLlmsTxtUrls(source: string): string[];
|
|
5
16
|
export interface AddFromGitOptions {
|
|
6
17
|
tag?: string;
|
|
7
18
|
version?: string;
|
|
@@ -11,11 +22,13 @@ export interface AddFromGitOptions {
|
|
|
11
22
|
lang?: string;
|
|
12
23
|
}
|
|
13
24
|
/**
|
|
14
|
-
* Parse a "registry/name" string (e.g., "npm/next",
|
|
15
|
-
*
|
|
25
|
+
* Parse a "registry/name[@version]" string (e.g., "npm/next",
|
|
26
|
+
* "pip/django", "npm/next@16.1.7", "npm/@trpc/server@10.0.0").
|
|
27
|
+
* Returns { registry, name, version? } or null if the format is invalid.
|
|
16
28
|
*/
|
|
17
29
|
export declare function parseRegistryPackage(input: string): {
|
|
18
30
|
registry: string;
|
|
19
31
|
name: string;
|
|
32
|
+
version?: string;
|
|
20
33
|
} | null;
|
|
21
34
|
export {};
|
package/dist/cli.js
CHANGED
|
@@ -12,6 +12,7 @@ import { initDatabase } from "./database.js";
|
|
|
12
12
|
import { downloadPackage, searchPackages } from "./download.js";
|
|
13
13
|
import { checkoutRef, cloneRepository, detectLocalDocsFolder, detectVersion, extractRepoName, fetchTagsWithMetadata, getDefaultBranch, isGitUrl, parseGitUrl, parseMonorepoTag, readLocalDocsFiles, sortTagsForSelection, } from "./git.js";
|
|
14
14
|
import { GET_DOCS_TOPIC_DESCRIPTION, NO_DOCUMENTATION_FOUND_MESSAGE, SEARCH_PACKAGES_NAME_DESCRIPTION, } from "./guidance.js";
|
|
15
|
+
import { fetchLinkedDocs } from "./llms-txt.js";
|
|
15
16
|
import { buildPackage } from "./package-builder.js";
|
|
16
17
|
import { search } from "./search.js";
|
|
17
18
|
import { ContextServer } from "./server.js";
|
|
@@ -26,9 +27,18 @@ export function detectSourceType(source) {
|
|
|
26
27
|
if (isGitUrl(source)) {
|
|
27
28
|
return "git";
|
|
28
29
|
}
|
|
29
|
-
// URL: starts with http:// or https://
|
|
30
|
+
// URL: starts with http:// or https://
|
|
30
31
|
if (source.startsWith("http://") || source.startsWith("https://")) {
|
|
31
|
-
|
|
32
|
+
// .db files are direct package downloads
|
|
33
|
+
if (source.endsWith(".db")) {
|
|
34
|
+
return "url";
|
|
35
|
+
}
|
|
36
|
+
// URLs ending with llms.txt or llms-full.txt are treated as direct website sources
|
|
37
|
+
if (source.endsWith("/llms.txt") || source.endsWith("/llms-full.txt")) {
|
|
38
|
+
return "website";
|
|
39
|
+
}
|
|
40
|
+
// Other URLs are websites — we'll try to fetch llms.txt from them
|
|
41
|
+
return "website";
|
|
32
42
|
}
|
|
33
43
|
// Local directory: check if path exists and is a directory
|
|
34
44
|
const resolvedPath = resolve(source);
|
|
@@ -67,6 +77,99 @@ function formatBytes(bytes) {
|
|
|
67
77
|
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
68
78
|
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
69
79
|
}
|
|
80
|
+
/** Well-known llms.txt file paths to try, in order of preference. */
|
|
81
|
+
const LLMS_TXT_PATHS = ["/llms-full.txt", "/llms.txt"];
|
|
82
|
+
/**
|
|
83
|
+
* Derive a package name from a website URL.
|
|
84
|
+
* e.g., "https://react-aria.adobe.com" → "react-aria.adobe.com"
|
|
85
|
+
*/
|
|
86
|
+
export function packageNameFromUrl(url) {
|
|
87
|
+
const parsed = new URL(url);
|
|
88
|
+
return parsed.hostname.replace(/^www\./, "");
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Resolve the llms.txt URL to fetch.
|
|
92
|
+
* If the URL already points to a specific llms.txt file, use it directly.
|
|
93
|
+
* Otherwise, try well-known paths from the site root.
|
|
94
|
+
*/
|
|
95
|
+
export function resolveLlmsTxtUrls(source) {
|
|
96
|
+
const url = new URL(source);
|
|
97
|
+
if (url.pathname.endsWith("/llms.txt") ||
|
|
98
|
+
url.pathname.endsWith("/llms-full.txt")) {
|
|
99
|
+
return [source];
|
|
100
|
+
}
|
|
101
|
+
// Build base URL (ensure trailing slash handling)
|
|
102
|
+
const base = url.origin + url.pathname.replace(/\/$/, "");
|
|
103
|
+
return LLMS_TXT_PATHS.map((path) => `${base}${path}`);
|
|
104
|
+
}
|
|
105
|
+
/** Install a package from a website's llms.txt file. */
|
|
106
|
+
async function addFromWebsite(source, options) {
|
|
107
|
+
const urls = resolveLlmsTxtUrls(source);
|
|
108
|
+
let content = null;
|
|
109
|
+
let resolvedUrl = null;
|
|
110
|
+
for (const url of urls) {
|
|
111
|
+
console.log(`Trying ${url}...`);
|
|
112
|
+
try {
|
|
113
|
+
const response = await fetch(url);
|
|
114
|
+
if (response.ok) {
|
|
115
|
+
const text = await response.text();
|
|
116
|
+
// Sanity check: must have some meaningful content
|
|
117
|
+
if (text.trim().length > 0) {
|
|
118
|
+
content = text;
|
|
119
|
+
resolvedUrl = url;
|
|
120
|
+
console.log(`✓ Found ${url}`);
|
|
121
|
+
break;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
// Network error — continue to next URL
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (!content || !resolvedUrl) {
|
|
130
|
+
throw new Error(`No llms.txt found at ${source}. Tried:\n${urls.map((u) => ` - ${u}`).join("\n")}\n\nThis website may not provide an llms.txt file. See https://llmstxt.org/ for details.`);
|
|
131
|
+
}
|
|
132
|
+
const packageName = options.name ?? packageNameFromUrl(source);
|
|
133
|
+
const versionLabel = options.version ?? "latest";
|
|
134
|
+
const isFullIndex = resolvedUrl.endsWith("/llms-full.txt");
|
|
135
|
+
// Always include the index itself so the H1/intro content is preserved.
|
|
136
|
+
const files = [
|
|
137
|
+
{
|
|
138
|
+
path: isFullIndex ? "llms-full.txt" : "llms.txt",
|
|
139
|
+
content,
|
|
140
|
+
},
|
|
141
|
+
];
|
|
142
|
+
// llms.txt is a curated index of links — follow them to fetch the actual
|
|
143
|
+
// documentation. llms-full.txt already inlines everything, so skip.
|
|
144
|
+
if (!isFullIndex) {
|
|
145
|
+
const linkedFiles = await fetchLinkedDocs(content, resolvedUrl, {
|
|
146
|
+
log: (msg) => {
|
|
147
|
+
console.log(msg);
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
files.push(...linkedFiles);
|
|
151
|
+
}
|
|
152
|
+
// Build the package
|
|
153
|
+
ensureDataDir();
|
|
154
|
+
const outputPath = join(DATA_DIR, getPackageFileName(packageName, versionLabel));
|
|
155
|
+
console.log(`Building package...`);
|
|
156
|
+
const result = buildPackage(outputPath, files, {
|
|
157
|
+
name: packageName,
|
|
158
|
+
version: versionLabel,
|
|
159
|
+
sourceUrl: source,
|
|
160
|
+
});
|
|
161
|
+
if (result.sectionCount === 0) {
|
|
162
|
+
throw new Error(`No documentation sections could be extracted from ${resolvedUrl}. The file may be empty or in an unsupported format.`);
|
|
163
|
+
}
|
|
164
|
+
console.log(`✓ Built package: ${packageName}@${versionLabel}`);
|
|
165
|
+
console.log(`✓ Saved to ${outputPath}`);
|
|
166
|
+
// Save to custom path if specified
|
|
167
|
+
if (options.save) {
|
|
168
|
+
savePackageCopy(outputPath, options.save, packageName, versionLabel);
|
|
169
|
+
}
|
|
170
|
+
const sizeBytes = statSync(outputPath).size;
|
|
171
|
+
console.log(`\nInstalled: ${packageName}@${versionLabel} (${formatBytes(sizeBytes)}, ${result.sectionCount} sections)`);
|
|
172
|
+
}
|
|
70
173
|
const LOW_DOCS_THRESHOLD = 50;
|
|
71
174
|
/** Build a Google search URL to help find documentation repos. */
|
|
72
175
|
function buildDocsSearchUrl(repoName) {
|
|
@@ -425,8 +528,8 @@ async function addFromLocalDir(source, options) {
|
|
|
425
528
|
}
|
|
426
529
|
program
|
|
427
530
|
.command("add")
|
|
428
|
-
.description("Install a documentation package from file, URL, GitHub, git repo, or local directory")
|
|
429
|
-
.argument("<source>", "Package source: local .db file, URL (.db), GitHub URL, git URL, or local directory")
|
|
531
|
+
.description("Install a documentation package from file, URL, GitHub, git repo, website (llms.txt), or local directory")
|
|
532
|
+
.argument("<source>", "Package source: local .db file, URL (.db), GitHub URL, git URL, website URL (auto-fetches llms.txt), or local directory")
|
|
430
533
|
.option("--tag <tag>", "Git tag to checkout (for git repos)")
|
|
431
534
|
.option("--pkg-version <version>", "Custom version label")
|
|
432
535
|
.option("--path <path>", "Path to docs folder in repo/directory")
|
|
@@ -454,6 +557,9 @@ program
|
|
|
454
557
|
case "local-dir":
|
|
455
558
|
await addFromLocalDir(source, internalOptions);
|
|
456
559
|
break;
|
|
560
|
+
case "website":
|
|
561
|
+
await addFromWebsite(source, internalOptions);
|
|
562
|
+
break;
|
|
457
563
|
}
|
|
458
564
|
}
|
|
459
565
|
catch (err) {
|
|
@@ -596,8 +702,9 @@ program
|
|
|
596
702
|
}
|
|
597
703
|
});
|
|
598
704
|
/**
|
|
599
|
-
* Parse a "registry/name" string (e.g., "npm/next",
|
|
600
|
-
*
|
|
705
|
+
* Parse a "registry/name[@version]" string (e.g., "npm/next",
|
|
706
|
+
* "pip/django", "npm/next@16.1.7", "npm/@trpc/server@10.0.0").
|
|
707
|
+
* Returns { registry, name, version? } or null if the format is invalid.
|
|
601
708
|
*/
|
|
602
709
|
export function parseRegistryPackage(input) {
|
|
603
710
|
// Handle scoped packages: npm/@scope/name → registry=npm, name=@scope/name
|
|
@@ -605,10 +712,22 @@ export function parseRegistryPackage(input) {
|
|
|
605
712
|
if (firstSlash <= 0)
|
|
606
713
|
return null;
|
|
607
714
|
const registry = input.slice(0, firstSlash);
|
|
608
|
-
|
|
715
|
+
let name = input.slice(firstSlash + 1);
|
|
609
716
|
if (!name)
|
|
610
717
|
return null;
|
|
611
|
-
|
|
718
|
+
// Split off an optional trailing "@version". Use lastIndexOf so scoped
|
|
719
|
+
// package names like "@trpc/server" aren't mistaken for a version marker.
|
|
720
|
+
let version;
|
|
721
|
+
const atIdx = name.lastIndexOf("@");
|
|
722
|
+
if (atIdx > 0) {
|
|
723
|
+
const v = name.slice(atIdx + 1);
|
|
724
|
+
if (v)
|
|
725
|
+
version = v;
|
|
726
|
+
name = name.slice(0, atIdx);
|
|
727
|
+
}
|
|
728
|
+
if (!name)
|
|
729
|
+
return null;
|
|
730
|
+
return version ? { registry, name, version } : { registry, name };
|
|
612
731
|
}
|
|
613
732
|
program
|
|
614
733
|
.command("browse")
|
|
@@ -618,7 +737,9 @@ program
|
|
|
618
737
|
.action(async (pkg, options) => {
|
|
619
738
|
try {
|
|
620
739
|
const serverUrl = getServerUrl(options.server);
|
|
621
|
-
// Parse "registry/name" or treat as name-only search
|
|
740
|
+
// Parse "registry/name[@version]" or treat as name-only search.
|
|
741
|
+
// The version suffix (if any) is ignored — browse always lists all
|
|
742
|
+
// available versions for the package.
|
|
622
743
|
const parsed = parseRegistryPackage(pkg);
|
|
623
744
|
const registry = parsed?.registry ?? "npm";
|
|
624
745
|
const name = parsed?.name ?? pkg;
|
|
@@ -654,8 +775,12 @@ program
|
|
|
654
775
|
console.error(`Error: Invalid package format "${pkg}". Use registry/name (e.g., npm/next, pip/django).`);
|
|
655
776
|
process.exit(1);
|
|
656
777
|
}
|
|
778
|
+
if (parsed.version && versionArg && parsed.version !== versionArg) {
|
|
779
|
+
console.error(`Error: Conflicting versions: "${parsed.version}" in "${pkg}" and "${versionArg}" as separate argument.`);
|
|
780
|
+
process.exit(1);
|
|
781
|
+
}
|
|
657
782
|
const serverUrl = getServerUrl(options.server);
|
|
658
|
-
let targetVersion = versionArg;
|
|
783
|
+
let targetVersion = versionArg ?? parsed.version;
|
|
659
784
|
// If no version specified, find the latest
|
|
660
785
|
if (!targetVersion) {
|
|
661
786
|
const results = await searchPackages(serverUrl, parsed.registry, parsed.name);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* llms.txt index handling.
|
|
3
|
+
*
|
|
4
|
+
* The llms.txt spec (https://llmstxt.org/) defines llms.txt as a curated index
|
|
5
|
+
* of links to documentation, organized under H2 sections. To build a useful
|
|
6
|
+
* package from such an index, we must follow the links and fetch the linked
|
|
7
|
+
* documents — otherwise we end up with only the table of contents.
|
|
8
|
+
*
|
|
9
|
+
* llms-full.txt, by contrast, already inlines the full documentation and
|
|
10
|
+
* doesn't need link following.
|
|
11
|
+
*/
|
|
12
|
+
import type { MarkdownFile } from "./package-builder.js";
|
|
13
|
+
/** A link extracted from an llms.txt index. */
|
|
14
|
+
export interface LlmsTxtLink {
|
|
15
|
+
/** The H2 section the link appeared under, or null for top-level links. */
|
|
16
|
+
section: string | null;
|
|
17
|
+
/** Display title from the markdown link. */
|
|
18
|
+
title: string;
|
|
19
|
+
/** Absolute URL of the linked resource. */
|
|
20
|
+
url: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Parse markdown link list items grouped by H2 section from an llms.txt file.
|
|
24
|
+
* Resolves relative URLs against `baseUrl`. Invalid URLs are skipped silently.
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseLlmsTxtLinks(content: string, baseUrl: string): LlmsTxtLink[];
|
|
27
|
+
export interface FetchLinkedDocsOptions {
|
|
28
|
+
/** Maximum number of concurrent fetches. Default 5. */
|
|
29
|
+
concurrency?: number;
|
|
30
|
+
/** Per-request timeout in milliseconds. Default 30s. */
|
|
31
|
+
timeoutMs?: number;
|
|
32
|
+
/** Maximum number of links to follow. Default 500. */
|
|
33
|
+
maxLinks?: number;
|
|
34
|
+
/** Only follow links on the same hostname as `baseUrl`. Default true. */
|
|
35
|
+
sameOriginOnly?: boolean;
|
|
36
|
+
/** Custom fetch implementation (for tests). Defaults to global fetch. */
|
|
37
|
+
fetchImpl?: typeof fetch;
|
|
38
|
+
/** Optional logger for progress messages. */
|
|
39
|
+
log?: (message: string) => void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Fetch all links from an llms.txt index and return them as MarkdownFile entries
|
|
43
|
+
* ready to be passed to `buildPackage`. Failed fetches are skipped silently.
|
|
44
|
+
*/
|
|
45
|
+
export declare function fetchLinkedDocs(content: string, baseUrl: string, options?: FetchLinkedDocsOptions): Promise<MarkdownFile[]>;
|
package/dist/llms-txt.js
ADDED
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* llms.txt index handling.
|
|
3
|
+
*
|
|
4
|
+
* The llms.txt spec (https://llmstxt.org/) defines llms.txt as a curated index
|
|
5
|
+
* of links to documentation, organized under H2 sections. To build a useful
|
|
6
|
+
* package from such an index, we must follow the links and fetch the linked
|
|
7
|
+
* documents — otherwise we end up with only the table of contents.
|
|
8
|
+
*
|
|
9
|
+
* llms-full.txt, by contrast, already inlines the full documentation and
|
|
10
|
+
* doesn't need link following.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Parse markdown link list items grouped by H2 section from an llms.txt file.
|
|
14
|
+
* Resolves relative URLs against `baseUrl`. Invalid URLs are skipped silently.
|
|
15
|
+
*/
|
|
16
|
+
export function parseLlmsTxtLinks(content, baseUrl) {
|
|
17
|
+
const links = [];
|
|
18
|
+
let currentSection = null;
|
|
19
|
+
// Match markdown list items with a link: "- [title](url)" or "* [title](url)".
|
|
20
|
+
const linkRegex = /^\s*[-*]\s*\[([^\]]+)\]\(([^)\s]+)(?:\s+"[^"]*")?\)/;
|
|
21
|
+
for (const line of content.split(/\r?\n/)) {
|
|
22
|
+
// Track current H2 section
|
|
23
|
+
const headingMatch = line.match(/^##\s+(.+?)\s*$/);
|
|
24
|
+
if (headingMatch?.[1]) {
|
|
25
|
+
currentSection = headingMatch[1].trim();
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
const linkMatch = line.match(linkRegex);
|
|
29
|
+
if (linkMatch?.[1] && linkMatch[2]) {
|
|
30
|
+
const title = linkMatch[1].trim();
|
|
31
|
+
const rawUrl = linkMatch[2].trim();
|
|
32
|
+
try {
|
|
33
|
+
const resolved = new URL(rawUrl, baseUrl).toString();
|
|
34
|
+
links.push({ section: currentSection, title, url: resolved });
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// Skip invalid URLs
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return links;
|
|
42
|
+
}
|
|
43
|
+
/** Fetch a single URL and convert it to a MarkdownFile, or return null on failure. */
|
|
44
|
+
async function fetchLink(url, fetchImpl, timeoutMs) {
|
|
45
|
+
const controller = new AbortController();
|
|
46
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
47
|
+
try {
|
|
48
|
+
const response = await fetchImpl(url, { signal: controller.signal });
|
|
49
|
+
if (!response.ok)
|
|
50
|
+
return null;
|
|
51
|
+
const text = await response.text();
|
|
52
|
+
if (!text.trim())
|
|
53
|
+
return null;
|
|
54
|
+
// Choose an extension so parseDocument routes to the right parser.
|
|
55
|
+
const contentType = response.headers.get("content-type")?.toLowerCase() ?? "";
|
|
56
|
+
const isHtml = contentType.includes("text/html") ||
|
|
57
|
+
contentType.includes("application/xhtml") ||
|
|
58
|
+
// Fall back to sniffing when servers don't set content-type properly
|
|
59
|
+
(!contentType && /<html[\s>]/i.test(text.slice(0, 1024)));
|
|
60
|
+
const path = pathFromUrl(url, isHtml ? ".html" : ".md");
|
|
61
|
+
return { url, file: { path, content: text } };
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
clearTimeout(timer);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/** Derive a stable, human-readable file path from a URL. */
|
|
71
|
+
function pathFromUrl(url, defaultExt) {
|
|
72
|
+
const parsed = new URL(url);
|
|
73
|
+
let path = parsed.pathname.replace(/\/$/, "") || "/index";
|
|
74
|
+
// If the path already has a recognized extension, keep it.
|
|
75
|
+
if (!/\.(md|mdx|html?|adoc|rst|txt)$/i.test(path)) {
|
|
76
|
+
path += defaultExt;
|
|
77
|
+
}
|
|
78
|
+
return parsed.host + path;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Fetch all links from an llms.txt index and return them as MarkdownFile entries
|
|
82
|
+
* ready to be passed to `buildPackage`. Failed fetches are skipped silently.
|
|
83
|
+
*/
|
|
84
|
+
export async function fetchLinkedDocs(content, baseUrl, options = {}) {
|
|
85
|
+
const { concurrency = 5, timeoutMs = 30_000, maxLinks = 500, sameOriginOnly = true, fetchImpl = fetch, log, } = options;
|
|
86
|
+
const baseHost = new URL(baseUrl).host;
|
|
87
|
+
const allLinks = parseLlmsTxtLinks(content, baseUrl);
|
|
88
|
+
// Filter and dedupe
|
|
89
|
+
const seen = new Set();
|
|
90
|
+
const links = [];
|
|
91
|
+
for (const link of allLinks) {
|
|
92
|
+
if (sameOriginOnly && new URL(link.url).host !== baseHost)
|
|
93
|
+
continue;
|
|
94
|
+
if (seen.has(link.url))
|
|
95
|
+
continue;
|
|
96
|
+
seen.add(link.url);
|
|
97
|
+
links.push(link);
|
|
98
|
+
if (links.length >= maxLinks)
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
if (links.length === 0)
|
|
102
|
+
return [];
|
|
103
|
+
log?.(`Following ${links.length} link${links.length === 1 ? "" : "s"} from llms.txt...`);
|
|
104
|
+
const results = [];
|
|
105
|
+
let index = 0;
|
|
106
|
+
let completed = 0;
|
|
107
|
+
let failed = 0;
|
|
108
|
+
async function worker() {
|
|
109
|
+
while (true) {
|
|
110
|
+
const i = index++;
|
|
111
|
+
if (i >= links.length)
|
|
112
|
+
return;
|
|
113
|
+
const link = links[i];
|
|
114
|
+
if (!link)
|
|
115
|
+
return;
|
|
116
|
+
const fetched = await fetchLink(link.url, fetchImpl, timeoutMs);
|
|
117
|
+
completed++;
|
|
118
|
+
if (fetched) {
|
|
119
|
+
results.push(fetched.file);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
failed++;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
const workers = Array.from({ length: Math.min(concurrency, links.length) }, () => worker());
|
|
127
|
+
await Promise.all(workers);
|
|
128
|
+
log?.(`✓ Fetched ${completed - failed}/${completed} linked documents${failed > 0 ? ` (${failed} failed)` : ""}`);
|
|
129
|
+
return results;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=llms-txt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llms-txt.js","sourceRoot":"","sources":["../src/llms-txt.ts"],"names":[],"mappings":"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"}
|