@vielzeug/codex 2.0.2 → 2.1.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 +1 -1
- package/data/catalog.json +2 -5
- package/data/llms-full.txt +13 -7
- package/data/llms.txt +1 -1
- package/data/manifest.json +1 -1
- package/data/packages/codex.json +1 -1
- package/data/packages/ripple.json +12 -14
- package/data/refine.json +5034 -5052
- package/data/search.json +6 -6
- package/dist/http.js +8 -2
- package/dist/http.js.map +1 -1
- package/package.json +2 -2
- package/dist/__tests__/server.test.js +0 -346
- package/dist/__tests__/server.test.js.map +0 -1
- package/dist/__tests__/unit.test.js +0 -502
- package/dist/__tests__/unit.test.js.map +0 -1
- package/dist/data.js +0 -91
- package/dist/data.js.map +0 -1
- package/dist/frontmatter.js +0 -72
- package/dist/frontmatter.js.map +0 -1
- package/dist/generator.js +0 -176
- package/dist/generator.js.map +0 -1
- package/dist/llms.js +0 -162
- package/dist/llms.js.map +0 -1
- package/dist/resources.js +0 -4
- package/dist/resources.js.map +0 -1
- package/dist/search.js +0 -125
- package/dist/search.js.map +0 -1
- package/dist/tools.js +0 -1040
- package/dist/tools.js.map +0 -1
package/dist/frontmatter.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Minimal YAML frontmatter parser.
|
|
3
|
-
* Supported formats: inline arrays [a,b,c], block sequences (- item),
|
|
4
|
-
* quoted strings, values containing colons, and CRLF line endings.
|
|
5
|
-
*/
|
|
6
|
-
const MAX_FRONTMATTER_INPUT = 102_400; // 100 KB — frontmatter is always tiny; guard against crafted large inputs
|
|
7
|
-
export function parseFrontmatter(markdown) {
|
|
8
|
-
const match = /^---\r?\n([\s\S]*?)\r?\n---/.exec(markdown.slice(0, MAX_FRONTMATTER_INPUT));
|
|
9
|
-
if (!match?.[1])
|
|
10
|
-
return {};
|
|
11
|
-
const lines = match[1].split(/\r?\n/);
|
|
12
|
-
const result = {};
|
|
13
|
-
let i = 0;
|
|
14
|
-
while (i < lines.length) {
|
|
15
|
-
const line = lines[i];
|
|
16
|
-
// Skip empty lines and comments
|
|
17
|
-
if (!line || line.trimStart().startsWith('#')) {
|
|
18
|
-
i++;
|
|
19
|
-
continue;
|
|
20
|
-
}
|
|
21
|
-
const colonIdx = line.indexOf(':');
|
|
22
|
-
if (colonIdx < 1) {
|
|
23
|
-
i++;
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
const key = line.slice(0, colonIdx).trim();
|
|
27
|
-
if (key === '__proto__' || key === 'constructor' || key === 'prototype') {
|
|
28
|
-
i++;
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
const rest = line.slice(colonIdx + 1).trim();
|
|
32
|
-
// Inline array: keywords: [mcp, ai-agent, claude]
|
|
33
|
-
if (rest.startsWith('[') && rest.endsWith(']')) {
|
|
34
|
-
result[key] = rest
|
|
35
|
-
.slice(1, -1)
|
|
36
|
-
.split(',')
|
|
37
|
-
.map((s) => s.trim().replace(/^['"`]|['"`]$/g, ''))
|
|
38
|
-
.filter(Boolean);
|
|
39
|
-
i++;
|
|
40
|
-
continue;
|
|
41
|
-
}
|
|
42
|
-
// Empty value → look ahead for block sequence items (- item)
|
|
43
|
-
if (rest === '') {
|
|
44
|
-
i++;
|
|
45
|
-
const items = [];
|
|
46
|
-
while (i < lines.length) {
|
|
47
|
-
const next = lines[i];
|
|
48
|
-
if (!next?.trim())
|
|
49
|
-
break;
|
|
50
|
-
const trimmed = next.trim();
|
|
51
|
-
if (trimmed.startsWith('- ')) {
|
|
52
|
-
items.push(trimmed
|
|
53
|
-
.slice(2)
|
|
54
|
-
.replace(/^['"`]|['"`]$/g, '')
|
|
55
|
-
.trim());
|
|
56
|
-
i++;
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (items.length > 0)
|
|
63
|
-
result[key] = items;
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
// Regular string — strip surrounding quotes
|
|
67
|
-
result[key] = rest.replace(/^['"`]|['"`]$/g, '');
|
|
68
|
-
i++;
|
|
69
|
-
}
|
|
70
|
-
return result;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=frontmatter.js.map
|
package/dist/frontmatter.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter.js","sourceRoot":"","sources":["../src/frontmatter.ts"],"names":[],"mappings":"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"}
|
package/dist/generator.js
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
import { createHash } from 'node:crypto';
|
|
2
|
-
import { existsSync, readFileSync } from 'node:fs';
|
|
3
|
-
import { dirname, resolve } from 'node:path';
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
5
|
-
// NOTE: These imports intentionally use .ts extensions (unlike other src/ files).
|
|
6
|
-
// This file is loaded transitively by scripts/generate-bundled-data.ts under Node's
|
|
7
|
-
// --experimental-strip-types, which resolves literal import specifiers — .ts is required
|
|
8
|
-
// to locate the source files at runtime. tsc rewrites these to .js in dist/ via
|
|
9
|
-
// rewriteRelativeImportExtensions in tsconfig.json.
|
|
10
|
-
import { parseFrontmatter } from "./frontmatter.js";
|
|
11
|
-
import { DOC_PAGES, SCHEMA_VERSION, } from "./types.js";
|
|
12
|
-
// Resolves to dist/ in the compiled build, src/ when loaded directly under --experimental-strip-types.
|
|
13
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
14
|
-
// ---------------------------------------------------------------------------
|
|
15
|
-
// File helpers
|
|
16
|
-
// ---------------------------------------------------------------------------
|
|
17
|
-
function readJson(filePath) {
|
|
18
|
-
return JSON.parse(readFileSync(filePath, 'utf8'));
|
|
19
|
-
}
|
|
20
|
-
function readTextIfExists(filePath) {
|
|
21
|
-
return filePath && existsSync(filePath) ? readFileSync(filePath, 'utf8') : null;
|
|
22
|
-
}
|
|
23
|
-
function resolveDocsFile(repoRoot, slug, page) {
|
|
24
|
-
const candidates = [
|
|
25
|
-
resolve(repoRoot, `docs/${slug}/${page}.md`),
|
|
26
|
-
...(page === 'index' ? [resolve(repoRoot, `packages/${slug}/README.md`)] : []),
|
|
27
|
-
];
|
|
28
|
-
return candidates.find((c) => existsSync(c)) ?? null;
|
|
29
|
-
}
|
|
30
|
-
// ---------------------------------------------------------------------------
|
|
31
|
-
// Sigil CEM declarations
|
|
32
|
-
// ---------------------------------------------------------------------------
|
|
33
|
-
function readSigilDeclarations(repoRoot) {
|
|
34
|
-
const manifestPath = resolve(repoRoot, 'packages/sigil/dist/custom-elements.json');
|
|
35
|
-
if (!existsSync(manifestPath))
|
|
36
|
-
return [];
|
|
37
|
-
const manifest = readJson(manifestPath);
|
|
38
|
-
const modules = Array.isArray(manifest['modules']) ? manifest['modules'] : [];
|
|
39
|
-
return modules.flatMap((mod) => Array.isArray(mod['declarations']) ? mod['declarations'] : []);
|
|
40
|
-
}
|
|
41
|
-
// ---------------------------------------------------------------------------
|
|
42
|
-
// Incremental hashing
|
|
43
|
-
// ---------------------------------------------------------------------------
|
|
44
|
-
function hashPackageFiles(repoRoot, folder, slug) {
|
|
45
|
-
const paths = [
|
|
46
|
-
resolve(repoRoot, folder, 'package.json'),
|
|
47
|
-
resolve(repoRoot, folder, 'src/index.ts'),
|
|
48
|
-
resolve(repoRoot, folder, 'README.md'),
|
|
49
|
-
...DOC_PAGES.flatMap((page) => {
|
|
50
|
-
const f = resolveDocsFile(repoRoot, slug, page);
|
|
51
|
-
return f ? [f] : [];
|
|
52
|
-
}),
|
|
53
|
-
// Include CEM manifest so a sigil-only component change invalidates the cache
|
|
54
|
-
...(slug === 'sigil' ? [resolve(repoRoot, 'packages/sigil/dist/custom-elements.json')] : []),
|
|
55
|
-
];
|
|
56
|
-
const hash = createHash('sha256');
|
|
57
|
-
for (const p of paths) {
|
|
58
|
-
if (existsSync(p)) {
|
|
59
|
-
hash.update(p);
|
|
60
|
-
hash.update(readFileSync(p));
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
return hash.digest('hex');
|
|
64
|
-
}
|
|
65
|
-
function toStringArray(value, key) {
|
|
66
|
-
if (Array.isArray(value)) {
|
|
67
|
-
// parseFrontmatter always returns string[], but guard defensively for future callers.
|
|
68
|
-
const nonStrings = value.filter((v) => typeof v !== 'string');
|
|
69
|
-
if (nonStrings.length > 0) {
|
|
70
|
-
process.stderr.write(`codex generator warning: frontmatter field "${key ?? 'unknown'}" contains non-string items (${nonStrings.map(String).join(', ')}) — coercing to string.\n`);
|
|
71
|
-
}
|
|
72
|
-
return value.map(String);
|
|
73
|
-
}
|
|
74
|
-
return value ? [String(value)] : [];
|
|
75
|
-
}
|
|
76
|
-
function processPackage(repoRoot, project, sigilComponents) {
|
|
77
|
-
const slug = project.projectFolder.replace('packages/', '');
|
|
78
|
-
const pkgJson = readJson(resolve(repoRoot, project.projectFolder, 'package.json'));
|
|
79
|
-
const apiSource = readTextIfExists(resolve(repoRoot, project.projectFolder, 'src/index.ts'));
|
|
80
|
-
const indexContent = readTextIfExists(resolveDocsFile(repoRoot, slug, 'index')) ?? '';
|
|
81
|
-
const frontmatter = parseFrontmatter(indexContent);
|
|
82
|
-
const docs = {};
|
|
83
|
-
for (const page of DOC_PAGES) {
|
|
84
|
-
const content = readTextIfExists(resolveDocsFile(repoRoot, slug, page));
|
|
85
|
-
if (typeof content === 'string' && content.length > 0) {
|
|
86
|
-
docs[page] = content;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
const availableDocPages = DOC_PAGES.filter((page) => docs[page] !== undefined);
|
|
90
|
-
return {
|
|
91
|
-
apiSource: typeof apiSource === 'string' && apiSource.length > 0 ? apiSource : null,
|
|
92
|
-
availableDocPages,
|
|
93
|
-
category: typeof frontmatter['category'] === 'string' ? frontmatter['category'] : '',
|
|
94
|
-
components: slug === 'sigil' ? sigilComponents : [],
|
|
95
|
-
description: typeof frontmatter['description'] === 'string' && frontmatter['description'].length > 0
|
|
96
|
-
? frontmatter['description']
|
|
97
|
-
: typeof pkgJson['description'] === 'string'
|
|
98
|
-
? pkgJson['description']
|
|
99
|
-
: '',
|
|
100
|
-
docs,
|
|
101
|
-
exports: toStringArray(frontmatter['exports'], 'exports'),
|
|
102
|
-
keywords: toStringArray(frontmatter['keywords'], 'keywords'),
|
|
103
|
-
name: String(project.packageName),
|
|
104
|
-
related: toStringArray(frontmatter['related'], 'related'),
|
|
105
|
-
slug,
|
|
106
|
-
version: typeof pkgJson['version'] === 'string' ? pkgJson['version'] : '0.0.0',
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
export function generateBundledData(options = {}) {
|
|
110
|
-
const packageRoot = resolve(__dirname, '..');
|
|
111
|
-
const repoRoot = options.repoRoot ?? resolve(packageRoot, '../..');
|
|
112
|
-
const incremental = options.incremental ?? false;
|
|
113
|
-
const existingDataFile = resolve(packageRoot, 'data/vielzeug-data.json');
|
|
114
|
-
const mcpPackageJson = readJson(resolve(packageRoot, 'package.json'));
|
|
115
|
-
const rushJson = readJson(resolve(repoRoot, 'rush.json'));
|
|
116
|
-
const sigilComponents = readSigilDeclarations(repoRoot);
|
|
117
|
-
// Load incremental cache
|
|
118
|
-
let hashCache = {};
|
|
119
|
-
let existingPackages = new Map();
|
|
120
|
-
if (incremental) {
|
|
121
|
-
const cacheFile = resolve(packageRoot, 'data/.cache.json');
|
|
122
|
-
if (existsSync(existingDataFile) && existsSync(cacheFile)) {
|
|
123
|
-
try {
|
|
124
|
-
hashCache = JSON.parse(readFileSync(cacheFile, 'utf8'));
|
|
125
|
-
const existingRaw = JSON.parse(readFileSync(existingDataFile, 'utf8'));
|
|
126
|
-
if (existingRaw['schemaVersion'] !== SCHEMA_VERSION) {
|
|
127
|
-
process.stderr.write(`codex: schema version mismatch (found ${String(existingRaw['schemaVersion'])}, expected ${SCHEMA_VERSION}) — discarding cache.\n`);
|
|
128
|
-
hashCache = {};
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
const existing = existingRaw;
|
|
132
|
-
existingPackages = new Map(existing.packages.map((p) => [p.slug, p]));
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
catch (err) {
|
|
136
|
-
process.stderr.write(`codex: incremental cache read failed, falling back to full regeneration: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
137
|
-
hashCache = {};
|
|
138
|
-
existingPackages = new Map();
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
let cacheHits = 0;
|
|
143
|
-
const newHashes = {};
|
|
144
|
-
const packages = rushJson.projects
|
|
145
|
-
.map((project) => {
|
|
146
|
-
const slug = project.projectFolder.replace('packages/', '');
|
|
147
|
-
if (incremental) {
|
|
148
|
-
const currentHash = hashPackageFiles(repoRoot, project.projectFolder, slug);
|
|
149
|
-
newHashes[slug] = currentHash;
|
|
150
|
-
if (hashCache[slug] === currentHash) {
|
|
151
|
-
const cached = existingPackages.get(slug);
|
|
152
|
-
if (cached) {
|
|
153
|
-
cacheHits++;
|
|
154
|
-
// Always refresh sigil components — they come from dist/, not source files
|
|
155
|
-
if (slug === 'sigil')
|
|
156
|
-
return { ...cached, components: sigilComponents };
|
|
157
|
-
return cached;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
return processPackage(repoRoot, project, sigilComponents);
|
|
162
|
-
})
|
|
163
|
-
.sort((a, b) => a.slug.localeCompare(b.slug));
|
|
164
|
-
if (incremental && cacheHits > 0) {
|
|
165
|
-
process.stderr.write(`Incremental: reused ${cacheHits}/${packages.length} packages from cache.\n`);
|
|
166
|
-
}
|
|
167
|
-
return {
|
|
168
|
-
data: {
|
|
169
|
-
packages,
|
|
170
|
-
schemaVersion: SCHEMA_VERSION,
|
|
171
|
-
version: typeof mcpPackageJson['version'] === 'string' ? mcpPackageJson['version'] : '0.0.0',
|
|
172
|
-
},
|
|
173
|
-
...(incremental && { hashes: newHashes }),
|
|
174
|
-
};
|
|
175
|
-
}
|
|
176
|
-
//# sourceMappingURL=generator.js.map
|
package/dist/generator.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
package/dist/llms.js
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
// ---------------------------------------------------------------------------
|
|
2
|
-
// Markup stripping
|
|
3
|
-
// ---------------------------------------------------------------------------
|
|
4
|
-
export function stripDocMarkup(md) {
|
|
5
|
-
return md
|
|
6
|
-
.replace(/^---\n[\s\S]*?\n---\n?/, '') // frontmatter
|
|
7
|
-
.replace(/<!--[\s\S]*?-->/g, '') // HTML comments
|
|
8
|
-
.replace(/<[^>]+>/g, '') // HTML tags
|
|
9
|
-
.replace(/^\[\[toc]]\s*$/gm, '') // VitePress TOC directive
|
|
10
|
-
.replace(/^:::[\s\S]*?:::\s*$/gm, (m) => m.replace(/^:::[^\n]*\n?|^:::\s*$/gm, '')) // containers
|
|
11
|
-
.replace(/\n{3,}/g, '\n\n') // normalise consecutive blank lines
|
|
12
|
-
.trim();
|
|
13
|
-
}
|
|
14
|
-
// ---------------------------------------------------------------------------
|
|
15
|
-
// Category ordering
|
|
16
|
-
// ---------------------------------------------------------------------------
|
|
17
|
-
const CATEGORY_ORDER = [
|
|
18
|
-
'state',
|
|
19
|
-
'ui',
|
|
20
|
-
'ui-components',
|
|
21
|
-
'ui-primitives',
|
|
22
|
-
'ui-interaction',
|
|
23
|
-
'ui-performance',
|
|
24
|
-
'forms',
|
|
25
|
-
'data',
|
|
26
|
-
'http',
|
|
27
|
-
'websockets',
|
|
28
|
-
'events',
|
|
29
|
-
'workers',
|
|
30
|
-
'storage',
|
|
31
|
-
'auth',
|
|
32
|
-
'routing',
|
|
33
|
-
'i18n',
|
|
34
|
-
'di',
|
|
35
|
-
'validation',
|
|
36
|
-
'utilities',
|
|
37
|
-
'time',
|
|
38
|
-
'logging',
|
|
39
|
-
'ai-tooling',
|
|
40
|
-
];
|
|
41
|
-
function groupByCategory(packages) {
|
|
42
|
-
const map = new Map();
|
|
43
|
-
for (const pkg of packages) {
|
|
44
|
-
const cat = pkg.category || 'general';
|
|
45
|
-
if (!map.has(cat))
|
|
46
|
-
map.set(cat, []);
|
|
47
|
-
map.get(cat).push(pkg);
|
|
48
|
-
}
|
|
49
|
-
return map;
|
|
50
|
-
}
|
|
51
|
-
function sortedCategories(grouped) {
|
|
52
|
-
return [...grouped.keys()].sort((a, b) => {
|
|
53
|
-
const ai = CATEGORY_ORDER.indexOf(a);
|
|
54
|
-
const bi = CATEGORY_ORDER.indexOf(b);
|
|
55
|
-
if (ai !== -1 && bi !== -1)
|
|
56
|
-
return ai - bi;
|
|
57
|
-
if (ai !== -1)
|
|
58
|
-
return -1;
|
|
59
|
-
if (bi !== -1)
|
|
60
|
-
return 1;
|
|
61
|
-
return a.localeCompare(b);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
// ---------------------------------------------------------------------------
|
|
65
|
-
// llms.txt — summary file
|
|
66
|
-
// ---------------------------------------------------------------------------
|
|
67
|
-
function buildLlmsTxt(packages, version) {
|
|
68
|
-
const grouped = groupByCategory(packages);
|
|
69
|
-
const categories = sortedCategories(grouped);
|
|
70
|
-
const lines = [
|
|
71
|
-
'# Vielzeug',
|
|
72
|
-
'',
|
|
73
|
-
`> ${packages.length} focused TypeScript packages for state, UI, data, storage, routing, utilities, and AI tooling. Version: ${version}`,
|
|
74
|
-
'',
|
|
75
|
-
'Vielzeug is a monorepo of focused TypeScript packages — from low-level utilities to UI primitives,',
|
|
76
|
-
'routing, storage, validation, workers, and an MCP server for AI assistants. Packages are designed',
|
|
77
|
-
'to be independently consumable, ship ESM + CJS output, and target ES2022.',
|
|
78
|
-
'',
|
|
79
|
-
'Install any package independently: `pnpm add @vielzeug/<name>`',
|
|
80
|
-
'',
|
|
81
|
-
'**MCP (AI agents):** `npx -y @vielzeug/codex` runs the Vielzeug MCP server in standalone stdio mode',
|
|
82
|
-
'with bundled data — no monorepo checkout required. Use `npx -y @vielzeug/codex --port 3100`',
|
|
83
|
-
'for Streamable HTTP with package discovery, docs lookup, source inspection, and Sigil component metadata.',
|
|
84
|
-
'',
|
|
85
|
-
'## Packages',
|
|
86
|
-
'',
|
|
87
|
-
];
|
|
88
|
-
for (const cat of categories) {
|
|
89
|
-
const pkgs = grouped.get(cat);
|
|
90
|
-
lines.push(`### ${cat}`);
|
|
91
|
-
lines.push('');
|
|
92
|
-
for (const pkg of pkgs) {
|
|
93
|
-
const pageLinks = pkg.availableDocPages
|
|
94
|
-
.filter((p) => p !== 'index')
|
|
95
|
-
.map((p) => `[${p}](/${pkg.slug}/${p})`)
|
|
96
|
-
.join(' · ');
|
|
97
|
-
let line = `- [${pkg.name}](/${pkg.slug}/): ${pkg.description}`;
|
|
98
|
-
if (pageLinks)
|
|
99
|
-
line += ` → ${pageLinks}`;
|
|
100
|
-
lines.push(line);
|
|
101
|
-
}
|
|
102
|
-
lines.push('');
|
|
103
|
-
}
|
|
104
|
-
return lines.join('\n').trimEnd() + '\n';
|
|
105
|
-
}
|
|
106
|
-
// ---------------------------------------------------------------------------
|
|
107
|
-
// llms-full.txt — complete documentation
|
|
108
|
-
// ---------------------------------------------------------------------------
|
|
109
|
-
const PAGE_LABELS = {
|
|
110
|
-
api: 'API Reference',
|
|
111
|
-
examples: 'Examples',
|
|
112
|
-
index: 'Overview',
|
|
113
|
-
usage: 'Usage Guide',
|
|
114
|
-
};
|
|
115
|
-
const PAGE_ORDER = ['index', 'api', 'usage', 'examples'];
|
|
116
|
-
function buildLlmsFullTxt(packages, version) {
|
|
117
|
-
const lines = [
|
|
118
|
-
'# Vielzeug — Full Documentation',
|
|
119
|
-
'',
|
|
120
|
-
`> Complete documentation for all ${packages.length} Vielzeug packages. Version: ${version}`,
|
|
121
|
-
];
|
|
122
|
-
for (const pkg of packages) {
|
|
123
|
-
lines.push('');
|
|
124
|
-
lines.push('---');
|
|
125
|
-
lines.push('');
|
|
126
|
-
lines.push(`## ${pkg.name}`);
|
|
127
|
-
lines.push('');
|
|
128
|
-
lines.push(`**Category:** ${pkg.category || 'general'}`);
|
|
129
|
-
if (pkg.keywords.length > 0) {
|
|
130
|
-
lines.push(`**Keywords:** ${pkg.keywords.join(', ')}`);
|
|
131
|
-
}
|
|
132
|
-
if (pkg.exports.length > 0) {
|
|
133
|
-
const shown = pkg.exports.slice(0, 12);
|
|
134
|
-
const overflow = pkg.exports.length > 12 ? ` (+${pkg.exports.length - 12} more)` : '';
|
|
135
|
-
lines.push(`**Key exports:** ${shown.join(', ')}${overflow}`);
|
|
136
|
-
}
|
|
137
|
-
if (pkg.related.length > 0) {
|
|
138
|
-
lines.push(`**Related:** ${pkg.related.join(', ')}`);
|
|
139
|
-
}
|
|
140
|
-
lines.push('');
|
|
141
|
-
for (const page of PAGE_ORDER) {
|
|
142
|
-
const content = pkg.docs[page];
|
|
143
|
-
if (!content)
|
|
144
|
-
continue;
|
|
145
|
-
const stripped = stripDocMarkup(content);
|
|
146
|
-
if (!stripped)
|
|
147
|
-
continue;
|
|
148
|
-
lines.push(`### ${PAGE_LABELS[page]}`);
|
|
149
|
-
lines.push('');
|
|
150
|
-
lines.push(stripped);
|
|
151
|
-
lines.push('');
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
return lines.join('\n').trimEnd() + '\n';
|
|
155
|
-
}
|
|
156
|
-
export function generateLlmsTxt(data) {
|
|
157
|
-
return {
|
|
158
|
-
llmsFullTxt: buildLlmsFullTxt(data.packages, data.version),
|
|
159
|
-
llmsTxt: buildLlmsTxt(data.packages, data.version),
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
//# sourceMappingURL=llms.js.map
|
package/dist/llms.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llms.js","sourceRoot":"","sources":["../src/llms.ts"],"names":[],"mappings":"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"}
|
package/dist/resources.js
DELETED
package/dist/resources.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resources.js","sourceRoot":"","sources":["../src/resources.ts"],"names":[],"mappings":";AAAA,+EAA+E;AAC/E,wFAAwF"}
|
package/dist/search.js
DELETED
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
// ---------------------------------------------------------------------------
|
|
2
|
-
// Normalisation
|
|
3
|
-
// ---------------------------------------------------------------------------
|
|
4
|
-
function normalise(s) {
|
|
5
|
-
return s.toLowerCase().replace(/-/g, ' ');
|
|
6
|
-
}
|
|
7
|
-
export function normalisePackage(pkg) {
|
|
8
|
-
const docs = {};
|
|
9
|
-
for (const page of pkg.availableDocPages) {
|
|
10
|
-
const content = pkg.docs[page];
|
|
11
|
-
if (typeof content === 'string')
|
|
12
|
-
docs[page] = normalise(content);
|
|
13
|
-
}
|
|
14
|
-
return {
|
|
15
|
-
availableDocPages: pkg.availableDocPages,
|
|
16
|
-
category: normalise(pkg.category),
|
|
17
|
-
description: normalise(pkg.description),
|
|
18
|
-
docs,
|
|
19
|
-
examples: pkg.examples.map((e) => ({ id: e.id, text: normalise(`${e.name} ${e.code}`) })),
|
|
20
|
-
exports: pkg.exports.map(normalise).join(' '),
|
|
21
|
-
keywords: pkg.keywords.map(normalise).join(' '),
|
|
22
|
-
name: pkg.name,
|
|
23
|
-
related: pkg.related.map(normalise).join(' '),
|
|
24
|
-
slug: pkg.slug,
|
|
25
|
-
source: pkg.apiSource ? normalise(pkg.apiSource) : null,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
// ---------------------------------------------------------------------------
|
|
29
|
-
// Scoring
|
|
30
|
-
// ---------------------------------------------------------------------------
|
|
31
|
-
/** Returns true if every term appears in the already-normalised haystack. */
|
|
32
|
-
function allTermsMatch(haystack, terms) {
|
|
33
|
-
return terms.every((t) => haystack.includes(t));
|
|
34
|
-
}
|
|
35
|
-
/** Weighted scores — higher = stronger signal within tier. */
|
|
36
|
-
const W = {
|
|
37
|
-
category: 3.5,
|
|
38
|
-
description: 3.1,
|
|
39
|
-
docs: 1.0,
|
|
40
|
-
examples: 0.95,
|
|
41
|
-
exports: 2.2,
|
|
42
|
-
keywords: 2.5,
|
|
43
|
-
name: 3.9,
|
|
44
|
-
related: 2.0,
|
|
45
|
-
source: 0.9,
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Ordered highest-to-lowest for `describeScoreTiers()`. Single source of truth for the
|
|
49
|
-
* search-packages tool description's "score: name(3.9) > category(3.5) > ..." prose — the
|
|
50
|
-
* numbers used to be hand-typed into that description separately from `W`, so retuning a
|
|
51
|
-
* weight silently made the description lie about the actual scoring.
|
|
52
|
-
*/
|
|
53
|
-
const SCORE_TIERS = [
|
|
54
|
-
['name', W.name],
|
|
55
|
-
['category', W.category],
|
|
56
|
-
['description', W.description],
|
|
57
|
-
['keywords', W.keywords],
|
|
58
|
-
['exports', W.exports],
|
|
59
|
-
['related', W.related],
|
|
60
|
-
['docs', W.docs],
|
|
61
|
-
['examples', W.examples],
|
|
62
|
-
['source', W.source],
|
|
63
|
-
];
|
|
64
|
-
export function describeScoreTiers() {
|
|
65
|
-
return SCORE_TIERS.map(([label, weight]) => `${label}(${weight})`).join(' > ');
|
|
66
|
-
}
|
|
67
|
-
/** Fields matched by simple substring inclusion, where the matchedIn category name equals the field name. */
|
|
68
|
-
const SIMPLE_FIELDS = ['keywords', 'exports', 'related', 'source'];
|
|
69
|
-
/** Score a pre-normalised package against a query. The query is normalised here; fields are pre-normalised. */
|
|
70
|
-
export function scorePackage(pkg, query) {
|
|
71
|
-
const terms = normalise(query)
|
|
72
|
-
.split(/\s+/)
|
|
73
|
-
.filter((t) => t.length > 0);
|
|
74
|
-
if (terms.length === 0)
|
|
75
|
-
return null;
|
|
76
|
-
let score = 0;
|
|
77
|
-
const matched = new Set();
|
|
78
|
-
const matchedPages = [];
|
|
79
|
-
const matchedExamples = [];
|
|
80
|
-
if (allTermsMatch(normalise(pkg.name), terms)) {
|
|
81
|
-
score = Math.max(score, W.name);
|
|
82
|
-
matched.add('metadata');
|
|
83
|
-
}
|
|
84
|
-
if (allTermsMatch(pkg.category, terms)) {
|
|
85
|
-
score = Math.max(score, W.category);
|
|
86
|
-
matched.add('metadata');
|
|
87
|
-
}
|
|
88
|
-
if (allTermsMatch(pkg.description, terms)) {
|
|
89
|
-
score = Math.max(score, W.description);
|
|
90
|
-
matched.add('metadata');
|
|
91
|
-
}
|
|
92
|
-
for (const field of SIMPLE_FIELDS) {
|
|
93
|
-
const value = pkg[field];
|
|
94
|
-
if (value && allTermsMatch(value, terms)) {
|
|
95
|
-
score = Math.max(score, W[field]);
|
|
96
|
-
matched.add(field);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
for (const page of pkg.availableDocPages) {
|
|
100
|
-
const content = pkg.docs[page];
|
|
101
|
-
if (typeof content === 'string' && allTermsMatch(content, terms)) {
|
|
102
|
-
score = Math.max(score, W.docs);
|
|
103
|
-
matched.add('docs');
|
|
104
|
-
matchedPages.push(page);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
for (const example of pkg.examples) {
|
|
108
|
-
if (allTermsMatch(example.text, terms)) {
|
|
109
|
-
score = Math.max(score, W.examples);
|
|
110
|
-
matched.add('examples');
|
|
111
|
-
matchedExamples.push(example.id);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
if (score === 0)
|
|
115
|
-
return null;
|
|
116
|
-
return {
|
|
117
|
-
...(matchedExamples.length > 0 && { matchedExamples }),
|
|
118
|
-
matchedIn: [...matched],
|
|
119
|
-
...(matchedPages.length > 0 && { matchedPages }),
|
|
120
|
-
name: pkg.name,
|
|
121
|
-
score,
|
|
122
|
-
slug: pkg.slug,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=search.js.map
|
package/dist/search.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
|