@open-agent-toolkit/cli 0.3.25 → 0.3.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/bundle-metadata.json +1 -1
- package/assets/docs/docs-tooling/add-docs-to-a-repo.md +14 -6
- package/assets/docs/docs-tooling/commands.md +12 -9
- package/assets/docs/reference/cli-reference.md +1 -1
- package/assets/docs/reference/configuration.md +2 -1
- package/assets/docs/reference/docs-index-contract.md +19 -6
- package/assets/docs/reference/oat-directory-structure.md +13 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/oat-docs-bootstrap/SKILL.md +11 -4
- package/assets/templates/docs-app-fuma/package.json.template +1 -1
- package/assets/templates/docs-app-fuma/source.config.ts +6 -1
- package/assets/templates/docs-app-mkdocs/package.json.template +2 -2
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +21 -3
- package/dist/commands/docs/index-generate/generator.d.ts +4 -34
- package/dist/commands/docs/index-generate/generator.d.ts.map +1 -1
- package/dist/commands/docs/index-generate/generator.js +51 -157
- package/dist/commands/docs/index-generate/index.d.ts +1 -1
- package/dist/commands/docs/index-generate/index.d.ts.map +1 -1
- package/dist/commands/docs/index-generate/index.js +26 -8
- package/dist/commands/docs/init/index.d.ts.map +1 -1
- package/dist/commands/docs/init/index.js +21 -1
- package/dist/commands/docs/init/scaffold.d.ts.map +1 -1
- package/dist/commands/docs/init/scaffold.js +20 -13
- package/dist/commands/docs/nav/contents.d.ts +13 -3
- package/dist/commands/docs/nav/contents.d.ts.map +1 -1
- package/dist/commands/docs/nav/contents.js +85 -24
- package/dist/commands/docs/nav/fumadocs.d.ts +1 -0
- package/dist/commands/docs/nav/fumadocs.d.ts.map +1 -1
- package/dist/commands/docs/nav/fumadocs.js +26 -9
- package/dist/commands/docs/nav/sync.d.ts +2 -0
- package/dist/commands/docs/nav/sync.d.ts.map +1 -1
- package/dist/commands/docs/nav/sync.js +21 -1
- package/dist/commands/docs/shared/exclusions.d.ts +37 -0
- package/dist/commands/docs/shared/exclusions.d.ts.map +1 -0
- package/dist/commands/docs/shared/exclusions.js +161 -0
- package/dist/config/oat-config.d.ts +2 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +6 -3
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +1 -0
- package/package.json +2 -2
|
@@ -1,28 +1,75 @@
|
|
|
1
1
|
import { readFile } from 'node:fs/promises';
|
|
2
2
|
import { basename, dirname, extname, join, relative, resolve } from 'node:path';
|
|
3
|
+
import { createExclusionMatcher, isExcludedPath, } from '../../docs/shared/exclusions.js';
|
|
3
4
|
import { dirExists, fileExists } from '../../../fs/io.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
/** Mask fenced examples without changing authored source line numbers. */
|
|
6
|
+
function unfencedLines(markdown) {
|
|
7
|
+
let fence;
|
|
8
|
+
return markdown.split(/\r?\n/).map((line) => {
|
|
9
|
+
if (fence) {
|
|
10
|
+
const closing = line.match(/^ {0,3}(`{3,}|~{3,})[ \t]*$/);
|
|
11
|
+
if (closing &&
|
|
12
|
+
closing[1][0] === fence.marker &&
|
|
13
|
+
closing[1].length >= fence.length) {
|
|
14
|
+
fence = undefined;
|
|
15
|
+
}
|
|
16
|
+
return '';
|
|
17
|
+
}
|
|
18
|
+
const opening = line.match(/^ {0,3}(`{3,}|~{3,})(.*)$/);
|
|
19
|
+
if (opening && (opening[1][0] === '~' || !opening[2].includes('`'))) {
|
|
20
|
+
fence = { marker: opening[1][0], length: opening[1].length };
|
|
21
|
+
return '';
|
|
22
|
+
}
|
|
23
|
+
return line;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
function contentsHeadingIndex(lines) {
|
|
27
|
+
return lines.findIndex((line) => /^##\s+Contents\s*$/.test(line.trim()));
|
|
28
|
+
}
|
|
29
|
+
/** Shared discovery lets inventory generation retain its no-map fallback. */
|
|
30
|
+
export function hasIndexContents(markdown) {
|
|
31
|
+
return contentsHeadingIndex(unfencedLines(markdown)) >= 0;
|
|
32
|
+
}
|
|
33
|
+
export function parseIndexContents(markdown, sourcePath = 'index.md', options = {}) {
|
|
34
|
+
const lines = unfencedLines(markdown);
|
|
35
|
+
const headingIndex = contentsHeadingIndex(lines);
|
|
36
|
+
if (headingIndex < 0) {
|
|
8
37
|
throw new Error(`Missing required ## Contents section in ${sourcePath}`);
|
|
9
38
|
}
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
39
|
+
const entries = [];
|
|
40
|
+
let group;
|
|
41
|
+
let groupEntries = 0;
|
|
42
|
+
const checkGroup = () => {
|
|
43
|
+
if (group && groupEntries === 0) {
|
|
44
|
+
throw new Error(`${sourcePath}:${group.line}: Contents group "${group.title}" has no entries`);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
for (let i = headingIndex + 1; i < lines.length; i += 1) {
|
|
48
|
+
const line = lines[i];
|
|
49
|
+
if (/^##\s+/.test(line.trim()))
|
|
50
|
+
break;
|
|
51
|
+
const heading = line.match(/^###\s+(.+?)\s*$/);
|
|
52
|
+
if (heading) {
|
|
53
|
+
checkGroup();
|
|
54
|
+
group = { title: heading[1].trim(), line: i + 1 };
|
|
55
|
+
groupEntries = 0;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (/^\s*[*+]\s+\[[^\]]+\]\([^)]+\)/.test(line)) {
|
|
59
|
+
throw new Error(`${sourcePath}:${i + 1}: Contents links must use a dash (-) bullet`);
|
|
60
|
+
}
|
|
61
|
+
const match = line.match(/^\s*-\s+\[([^\]]+)\]\(([^)]+)\)/);
|
|
62
|
+
if (match) {
|
|
63
|
+
entries.push({
|
|
64
|
+
title: match[1].trim(),
|
|
65
|
+
href: match[2].trim(),
|
|
66
|
+
...(group ? { group } : {}),
|
|
67
|
+
});
|
|
68
|
+
groupEntries += 1;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
checkGroup();
|
|
72
|
+
if (entries.length === 0 && !options.allowEmpty) {
|
|
26
73
|
throw new Error(`No machine-readable links found under ## Contents in ${sourcePath}`);
|
|
27
74
|
}
|
|
28
75
|
return entries;
|
|
@@ -35,7 +82,7 @@ export async function resolveEntryTarget(docsRoot, directoryPath, dirRelativePat
|
|
|
35
82
|
* Page extensions a Contents link may target. MkDocs renders only `.md`;
|
|
36
83
|
* Fumadocs also renders `.mdx` pages.
|
|
37
84
|
*/
|
|
38
|
-
pageExtensions = ['.md']) {
|
|
85
|
+
pageExtensions = ['.md'], matcher) {
|
|
39
86
|
const href = entry.href.split('#', 1)[0]?.trim() ?? '';
|
|
40
87
|
if (!href) {
|
|
41
88
|
throw new Error(`Invalid contents link "${entry.href}" in ${join(docsRoot, dirRelativePath, 'index.md')}`);
|
|
@@ -53,6 +100,9 @@ pageExtensions = ['.md']) {
|
|
|
53
100
|
relativeTargetPath.length === 0) {
|
|
54
101
|
throw new Error(`Contents link "${entry.href}" escapes the docs directory from ${join(docsRoot, dirRelativePath, 'index.md')}`);
|
|
55
102
|
}
|
|
103
|
+
if (matcher && isExcludedPath(matcher, relativeTargetPath)) {
|
|
104
|
+
return { kind: 'excluded', path: relativeTargetPath };
|
|
105
|
+
}
|
|
56
106
|
if (!(await fileExists(targetPath))) {
|
|
57
107
|
throw new Error(`Contents link "${entry.href}" in ${join(docsRoot, dirRelativePath, 'index.md')} does not resolve to a Markdown file`);
|
|
58
108
|
}
|
|
@@ -80,17 +130,27 @@ export async function buildDocsNavTree(options) {
|
|
|
80
130
|
}
|
|
81
131
|
const indexMarkdown = await readFile(indexPath, 'utf8');
|
|
82
132
|
const contentsEntries = parseIndexContents(indexMarkdown, indexPath);
|
|
133
|
+
const matcher = createExclusionMatcher(options.nonReaderPaths ?? []);
|
|
83
134
|
const nav = dirRelativePath === '.'
|
|
84
135
|
? [{ Home: 'index.md' }]
|
|
85
136
|
: [toPosixPath(join(dirRelativePath, 'index.md'))];
|
|
137
|
+
let currentGroup;
|
|
138
|
+
let groupNav = nav;
|
|
86
139
|
for (const entry of contentsEntries) {
|
|
87
|
-
const resolvedTarget = await resolveEntryTarget(options.docsRoot, directoryPath, dirRelativePath, entry);
|
|
140
|
+
const resolvedTarget = await resolveEntryTarget(options.docsRoot, directoryPath, dirRelativePath, entry, ['.md'], matcher);
|
|
141
|
+
if (resolvedTarget.kind === 'excluded')
|
|
142
|
+
continue;
|
|
88
143
|
if (resolvedTarget.kind === 'section' &&
|
|
89
144
|
resolvedTarget.path === toPosixPath(join(dirRelativePath, 'index.md'))) {
|
|
90
145
|
continue;
|
|
91
146
|
}
|
|
147
|
+
if (entry.group !== currentGroup) {
|
|
148
|
+
currentGroup = entry.group;
|
|
149
|
+
groupNav = [];
|
|
150
|
+
nav.push({ [currentGroup.title]: groupNav });
|
|
151
|
+
}
|
|
92
152
|
if (resolvedTarget.kind === 'page') {
|
|
93
|
-
|
|
153
|
+
groupNav.push({ [entry.title]: resolvedTarget.path });
|
|
94
154
|
continue;
|
|
95
155
|
}
|
|
96
156
|
const childDirRelativePath = toPosixPath(dirname(resolvedTarget.path));
|
|
@@ -99,11 +159,12 @@ export async function buildDocsNavTree(options) {
|
|
|
99
159
|
}
|
|
100
160
|
const childVisitedDirectories = new Set(visitedDirectories);
|
|
101
161
|
childVisitedDirectories.add(childDirRelativePath);
|
|
102
|
-
|
|
162
|
+
groupNav.push({
|
|
103
163
|
[entry.title]: await buildDocsNavTree({
|
|
104
164
|
docsRoot: options.docsRoot,
|
|
105
165
|
dirRelativePath: childDirRelativePath,
|
|
106
166
|
visitedDirectories: childVisitedDirectories,
|
|
167
|
+
nonReaderPaths: options.nonReaderPaths,
|
|
107
168
|
}),
|
|
108
169
|
});
|
|
109
170
|
}
|
|
@@ -54,5 +54,6 @@ export declare function syncFumadocsNavigation(options: {
|
|
|
54
54
|
docsRoot: string;
|
|
55
55
|
/** Compute and compare only; never write. */
|
|
56
56
|
check?: boolean;
|
|
57
|
+
nonReaderPaths?: readonly string[];
|
|
57
58
|
}): Promise<SyncFumadocsNavigationResult>;
|
|
58
59
|
//# sourceMappingURL=fumadocs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fumadocs.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/nav/fumadocs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fumadocs.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/nav/fumadocs.ts"],"names":[],"mappings":"AAoBA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,4BAA4B;IAC3C,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,mEAAmE;IACnE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB;;;OAGG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA6DD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAoCvE;AA8BD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAkMD;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAuExC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { readdir, readFile, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { basename, extname, join, posix } from 'node:path';
|
|
3
3
|
import { isDeepStrictEqual } from 'node:util';
|
|
4
|
+
import { createExclusionMatcher, } from '../../docs/shared/exclusions.js';
|
|
4
5
|
import { getFrontmatterBlock, parseFrontmatterScalarFields, } from '../../shared/frontmatter.js';
|
|
5
6
|
import { fileExists } from '../../../fs/io.js';
|
|
6
|
-
import { parseIndexContents, resolveEntryTarget } from './contents.js';
|
|
7
|
+
import { parseIndexContents, resolveEntryTarget, } from './contents.js';
|
|
7
8
|
const PAGE_EXTENSIONS = ['.md', '.mdx'];
|
|
8
9
|
const GROUP_FOLDER = /^\(.+\)$/;
|
|
9
10
|
// The `pages` item grammar of the fumadocs-core 16.10.2 page-tree builder
|
|
@@ -18,7 +19,7 @@ const FENCE = /^\s*(```|~~~)/;
|
|
|
18
19
|
function parentDir(path) {
|
|
19
20
|
return posix.dirname(path);
|
|
20
21
|
}
|
|
21
|
-
async function inventoryDocs(docsRoot) {
|
|
22
|
+
async function inventoryDocs(docsRoot, matcher) {
|
|
22
23
|
const directories = [];
|
|
23
24
|
const pages = [];
|
|
24
25
|
async function walk(relativeDir) {
|
|
@@ -32,11 +33,14 @@ async function inventoryDocs(docsRoot) {
|
|
|
32
33
|
}
|
|
33
34
|
const entryPath = posix.join(relativeDir, entry.name);
|
|
34
35
|
if (entry.isDirectory()) {
|
|
36
|
+
if (matcher.excludesDirectory(entryPath))
|
|
37
|
+
continue;
|
|
35
38
|
await walk(entryPath);
|
|
36
39
|
}
|
|
37
40
|
else if (entry.isFile() &&
|
|
38
41
|
PAGE_EXTENSIONS.includes(extname(entry.name))) {
|
|
39
|
-
|
|
42
|
+
if (!matcher.excludesFile(entryPath))
|
|
43
|
+
pages.push(entryPath);
|
|
40
44
|
}
|
|
41
45
|
}
|
|
42
46
|
}
|
|
@@ -150,13 +154,15 @@ function hrefFragment(href) {
|
|
|
150
154
|
* only if `pages` lists it.
|
|
151
155
|
*/
|
|
152
156
|
function hasImplicitIndex(relativeDir, existing) {
|
|
153
|
-
if (relativeDir === '.' ||
|
|
157
|
+
if (relativeDir === '.' ||
|
|
158
|
+
existing?.root === true ||
|
|
159
|
+
(typeof existing?.root === 'string' && existing.root.trim().length > 0)) {
|
|
154
160
|
return false;
|
|
155
161
|
}
|
|
156
162
|
const pagesIndex = existing?.pagesIndex;
|
|
157
163
|
return pagesIndex === undefined || pagesIndex === 'index';
|
|
158
164
|
}
|
|
159
|
-
async function buildFolderPages(docsRoot, relativeDir, markdown, implicitIndex) {
|
|
165
|
+
async function buildFolderPages(docsRoot, relativeDir, markdown, implicitIndex, matcher) {
|
|
160
166
|
const indexPath = join(docsRoot, relativeDir, 'index.md');
|
|
161
167
|
const entries = parseIndexContents(markdown, indexPath);
|
|
162
168
|
// A folder the loader gives no implicit index (the docs root, a `root: true`
|
|
@@ -164,8 +170,11 @@ async function buildFolderPages(docsRoot, relativeDir, markdown, implicitIndex)
|
|
|
164
170
|
// `index` would demote the folder index to an ordinary child, so it is left
|
|
165
171
|
// implicit.
|
|
166
172
|
const pages = implicitIndex ? [] : ['index'];
|
|
173
|
+
let currentGroup;
|
|
167
174
|
for (const entry of entries) {
|
|
168
|
-
const target = await resolveEntryTarget(docsRoot, join(docsRoot, relativeDir), relativeDir, entry, PAGE_EXTENSIONS);
|
|
175
|
+
const target = await resolveEntryTarget(docsRoot, join(docsRoot, relativeDir), relativeDir, entry, PAGE_EXTENSIONS, matcher);
|
|
176
|
+
if (target.kind === 'excluded')
|
|
177
|
+
continue;
|
|
169
178
|
const targetDir = parentDir(target.path);
|
|
170
179
|
let item;
|
|
171
180
|
if (target.kind === 'section' && targetDir === relativeDir) {
|
|
@@ -182,6 +191,12 @@ async function buildFolderPages(docsRoot, relativeDir, markdown, implicitIndex)
|
|
|
182
191
|
item = `[${entry.title}](${pageUrl(target.path)}${hrefFragment(entry.href)})`;
|
|
183
192
|
}
|
|
184
193
|
if (!pages.includes(item)) {
|
|
194
|
+
if (entry.group !== currentGroup) {
|
|
195
|
+
currentGroup = entry.group;
|
|
196
|
+
// A leading space prevents the loader treating a literal [label] as an icon.
|
|
197
|
+
const title = currentGroup.title;
|
|
198
|
+
pages.push(`---${title.startsWith('[') ? ' ' : ''}${title}---`);
|
|
199
|
+
}
|
|
185
200
|
pages.push(item);
|
|
186
201
|
}
|
|
187
202
|
}
|
|
@@ -274,13 +289,15 @@ function collectUnlisted(inventory, metas, implicitIndexDirs) {
|
|
|
274
289
|
*/
|
|
275
290
|
export async function syncFumadocsNavigation(options) {
|
|
276
291
|
const { docsRoot } = options;
|
|
277
|
-
const
|
|
292
|
+
const matcher = createExclusionMatcher(options.nonReaderPaths ?? []);
|
|
293
|
+
const inventory = await inventoryDocs(docsRoot, matcher);
|
|
278
294
|
const metas = new Map();
|
|
279
295
|
const existingMetas = new Map();
|
|
280
296
|
const implicitIndexDirs = new Set();
|
|
281
297
|
for (const relativeDir of inventory.directories) {
|
|
282
298
|
const indexPath = join(docsRoot, relativeDir, 'index.md');
|
|
283
|
-
if (
|
|
299
|
+
if (matcher.excludesFile(posix.join(relativeDir, 'index.md')) ||
|
|
300
|
+
!(await fileExists(indexPath))) {
|
|
284
301
|
continue;
|
|
285
302
|
}
|
|
286
303
|
// Index handling depends on the effective metadata, which keeps the
|
|
@@ -295,7 +312,7 @@ export async function syncFumadocsNavigation(options) {
|
|
|
295
312
|
const title = resolveFolderTitle(markdown);
|
|
296
313
|
metas.set(relativeDir, {
|
|
297
314
|
...(title === undefined ? {} : { title }),
|
|
298
|
-
pages: await buildFolderPages(docsRoot, relativeDir, markdown, implicitIndex),
|
|
315
|
+
pages: await buildFolderPages(docsRoot, relativeDir, markdown, implicitIndex, matcher),
|
|
299
316
|
});
|
|
300
317
|
}
|
|
301
318
|
if (!metas.has('.')) {
|
|
@@ -12,6 +12,7 @@ interface SyncDocsNavigationOptions {
|
|
|
12
12
|
configuredTooling?: string | null;
|
|
13
13
|
/** Compute the navigation and compare it with the files; write nothing. */
|
|
14
14
|
check?: boolean;
|
|
15
|
+
nonReaderPaths?: readonly string[];
|
|
15
16
|
}
|
|
16
17
|
interface MkDocsNavigationResult {
|
|
17
18
|
framework: 'mkdocs';
|
|
@@ -35,6 +36,7 @@ type SyncDocsNavigationResult = MkDocsNavigationResult | FumadocsNavigationResul
|
|
|
35
36
|
interface DocsNavSyncDependencies {
|
|
36
37
|
buildCommandContext: (options: GlobalOptions) => CommandContext;
|
|
37
38
|
resolveConfiguredTooling: (cwd: string, appRoot: string) => Promise<string | null>;
|
|
39
|
+
resolveNonReaderPaths?: (cwd: string, appRoot: string) => Promise<string[]>;
|
|
38
40
|
syncDocsNavigation: (options: SyncDocsNavigationOptions) => Promise<SyncDocsNavigationResult>;
|
|
39
41
|
}
|
|
40
42
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/nav/sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAOrD,UAAU,yBAAyB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/nav/sync.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAG5C,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAChE,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,QAAQ,CAAC;AAOrD,UAAU,yBAAyB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,UAAU,sBAAsB;IAC9B,SAAS,EAAE,QAAQ,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,WAAW,CAAC;IACjB,uEAAuE;IACvE,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,UAAU,wBAAwB;IAChC,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,KAAK,wBAAwB,GACzB,sBAAsB,GACtB,wBAAwB,CAAC;AAE7B,UAAU,uBAAuB;IAC/B,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,cAAc,CAAC;IAChE,wBAAwB,EAAE,CACxB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC5B,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5E,kBAAkB,EAAE,CAClB,OAAO,EAAE,yBAAyB,KAC/B,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACxC;AAsBD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAChC,OAAO,CAAC,gBAAgB,CAAC,CAe3B;AAuED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,wBAAwB,CAAC,CA8CnC;AAuJD,wBAAgB,wBAAwB,CACtC,SAAS,GAAE,OAAO,CAAC,uBAAuB,CAAM,GAC/C,OAAO,CA4BT"}
|
|
@@ -58,9 +58,24 @@ async function resolveConfiguredTooling(cwd, appRoot) {
|
|
|
58
58
|
return null;
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
|
+
async function resolveNonReaderPaths(cwd, appRoot) {
|
|
62
|
+
let repoRoot;
|
|
63
|
+
try {
|
|
64
|
+
repoRoot = await resolveProjectRoot(cwd);
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return [];
|
|
68
|
+
} // Explicit app targets also work outside a configured repository.
|
|
69
|
+
const config = await readOatConfig(repoRoot);
|
|
70
|
+
const root = config.documentation?.root?.trim();
|
|
71
|
+
return root && resolve(repoRoot, root) === appRoot
|
|
72
|
+
? (config.documentation?.nonReaderPaths ?? [])
|
|
73
|
+
: [];
|
|
74
|
+
}
|
|
61
75
|
const DEFAULT_DEPENDENCIES = {
|
|
62
76
|
buildCommandContext,
|
|
63
77
|
resolveConfiguredTooling,
|
|
78
|
+
resolveNonReaderPaths,
|
|
64
79
|
syncDocsNavigation,
|
|
65
80
|
};
|
|
66
81
|
function replaceTopLevelYamlSection(source, key, replacement) {
|
|
@@ -90,6 +105,7 @@ export async function syncDocsNavigation(options) {
|
|
|
90
105
|
const result = await syncFumadocsNavigation({
|
|
91
106
|
docsRoot,
|
|
92
107
|
check: options.check,
|
|
108
|
+
nonReaderPaths: options.nonReaderPaths,
|
|
93
109
|
});
|
|
94
110
|
return {
|
|
95
111
|
framework,
|
|
@@ -99,7 +115,10 @@ export async function syncDocsNavigation(options) {
|
|
|
99
115
|
};
|
|
100
116
|
}
|
|
101
117
|
const mkdocsPath = join(options.appRoot, 'mkdocs.yml');
|
|
102
|
-
const nav = await buildDocsNavTree({
|
|
118
|
+
const nav = await buildDocsNavTree({
|
|
119
|
+
docsRoot,
|
|
120
|
+
nonReaderPaths: options.nonReaderPaths,
|
|
121
|
+
});
|
|
103
122
|
const mkdocsSource = await readFile(mkdocsPath, 'utf8');
|
|
104
123
|
const navSection = YAML.stringify({ nav }).trimEnd();
|
|
105
124
|
const updatedMkdocsSource = replaceTopLevelYamlSection(mkdocsSource, 'nav', navSection);
|
|
@@ -198,6 +217,7 @@ async function runDocsNavSyncCommand(context, options, dependencies) {
|
|
|
198
217
|
appRoot,
|
|
199
218
|
configuredTooling: await dependencies.resolveConfiguredTooling(context.cwd, appRoot),
|
|
200
219
|
check: options.check === true,
|
|
220
|
+
nonReaderPaths: await dependencies.resolveNonReaderPaths?.(context.cwd, appRoot),
|
|
201
221
|
});
|
|
202
222
|
if (options.check) {
|
|
203
223
|
process.exitCode = reportCheckResult(context, targetDir, result) ? 0 : 1;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A compiled exclusion list.
|
|
3
|
+
*
|
|
4
|
+
* Files and directories are asked separately so a trailing-slash pattern can
|
|
5
|
+
* mean "directories only" while every other pattern applies to both.
|
|
6
|
+
*/
|
|
7
|
+
export interface ExclusionMatcher {
|
|
8
|
+
excludesFile: (relativePath: string) => boolean;
|
|
9
|
+
excludesDirectory: (relativePath: string) => boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Compile exclusion globs matched against **docs-root-relative POSIX paths**
|
|
13
|
+
* (`api/auth.md`, `api/nested`), never against absolute or CWD-relative ones.
|
|
14
|
+
*
|
|
15
|
+
* Grammar, defined once and documented in
|
|
16
|
+
* `apps/oat-docs/docs/reference/oat-directory-structure.md`:
|
|
17
|
+
*
|
|
18
|
+
* - `*` matches any run of characters inside a single path segment.
|
|
19
|
+
* - `**` spans `/` only as a whole segment, where it covers zero or more
|
|
20
|
+
* segments: `**\/CLAUDE.md` matches `CLAUDE.md` and `api/CLAUDE.md`. Inside a
|
|
21
|
+
* segment (`a**b`) it is an ordinary single-segment wildcard.
|
|
22
|
+
* - Patterns are anchored at both ends against the whole relative path, so a
|
|
23
|
+
* bare `CLAUDE.md` matches only the root-level file. Use `**\/CLAUDE.md` for
|
|
24
|
+
* every depth.
|
|
25
|
+
* - A trailing `/` restricts a pattern to directories: `drafts/` prunes the
|
|
26
|
+
* `drafts` directory and everything beneath it, and never matches a file.
|
|
27
|
+
* Without it, a pattern that matches a directory path prunes it too.
|
|
28
|
+
* - Matching is case-sensitive, `/` is the separator on every platform, and
|
|
29
|
+
* `*` is the only metacharacter — `.`, `+`, and friends are literal.
|
|
30
|
+
*
|
|
31
|
+
* Entries are trimmed; a leading `./` or `/` is stripped so both spellings
|
|
32
|
+
* anchor at the docs root. Blank entries are ignored.
|
|
33
|
+
*/
|
|
34
|
+
export declare function createExclusionMatcher(patterns: readonly string[]): ExclusionMatcher;
|
|
35
|
+
/** Explicit Contents targets must also respect pruned ancestor directories. */
|
|
36
|
+
export declare function isExcludedPath(matcher: ExclusionMatcher, path: string, directory?: boolean): boolean;
|
|
37
|
+
//# sourceMappingURL=exclusions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exclusions.d.ts","sourceRoot":"","sources":["../../../../src/commands/docs/shared/exclusions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IAChD,iBAAiB,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CACtD;AAmHD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,gBAAgB,CAwClB;AAED,+EAA+E;AAC/E,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,MAAM,EACZ,SAAS,UAAQ,GAChB,OAAO,CAQT"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
const NO_EXCLUSIONS = {
|
|
2
|
+
excludesFile: () => false,
|
|
3
|
+
excludesDirectory: () => false,
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Match one path segment against one pattern segment, where `*` is the only
|
|
7
|
+
* metacharacter and never crosses `/`.
|
|
8
|
+
*
|
|
9
|
+
* This is the classic greedy two-pointer wildcard match, deliberately not a
|
|
10
|
+
* compiled regular expression: a pattern like `*a*a*a...` translates to
|
|
11
|
+
* nested-quantifier alternatives that backtrack exponentially, and exclusion
|
|
12
|
+
* patterns come from config and flags where a typo should not hang generation.
|
|
13
|
+
* Restarting from the last `*` instead bounds the work at O(pattern x text).
|
|
14
|
+
*/
|
|
15
|
+
function matchSegment(pattern, text) {
|
|
16
|
+
let patternIndex = 0;
|
|
17
|
+
let textIndex = 0;
|
|
18
|
+
let starPatternIndex = -1;
|
|
19
|
+
let starTextIndex = 0;
|
|
20
|
+
while (textIndex < text.length) {
|
|
21
|
+
if (pattern[patternIndex] === '*') {
|
|
22
|
+
// Collapse a run of stars: within a segment they are all equivalent.
|
|
23
|
+
while (pattern[patternIndex] === '*') {
|
|
24
|
+
patternIndex += 1;
|
|
25
|
+
}
|
|
26
|
+
if (patternIndex === pattern.length) {
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
starPatternIndex = patternIndex;
|
|
30
|
+
starTextIndex = textIndex;
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
if (patternIndex < pattern.length &&
|
|
34
|
+
pattern[patternIndex] === text[textIndex]) {
|
|
35
|
+
patternIndex += 1;
|
|
36
|
+
textIndex += 1;
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (starPatternIndex === -1) {
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
// Give the last star one more character and retry from just after it.
|
|
43
|
+
starTextIndex += 1;
|
|
44
|
+
patternIndex = starPatternIndex;
|
|
45
|
+
textIndex = starTextIndex;
|
|
46
|
+
}
|
|
47
|
+
while (pattern[patternIndex] === '*') {
|
|
48
|
+
patternIndex += 1;
|
|
49
|
+
}
|
|
50
|
+
return patternIndex === pattern.length;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Match a docs-root-relative path against a pattern, segment by segment, where
|
|
54
|
+
* a whole-segment `**` spans zero or more path segments.
|
|
55
|
+
*
|
|
56
|
+
* Same greedy-restart shape as {@link matchSegment}, one level up, so a pattern
|
|
57
|
+
* full of `**` segments stays bounded too.
|
|
58
|
+
*/
|
|
59
|
+
function matchPath(patternSegments, pathSegments) {
|
|
60
|
+
let patternIndex = 0;
|
|
61
|
+
let pathIndex = 0;
|
|
62
|
+
let starPatternIndex = -1;
|
|
63
|
+
let starPathIndex = 0;
|
|
64
|
+
while (pathIndex < pathSegments.length) {
|
|
65
|
+
if (patternSegments[patternIndex] === '**') {
|
|
66
|
+
while (patternSegments[patternIndex] === '**') {
|
|
67
|
+
patternIndex += 1;
|
|
68
|
+
}
|
|
69
|
+
if (patternIndex === patternSegments.length) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
starPatternIndex = patternIndex;
|
|
73
|
+
starPathIndex = pathIndex;
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
if (patternIndex < patternSegments.length &&
|
|
77
|
+
matchSegment(patternSegments[patternIndex], pathSegments[pathIndex])) {
|
|
78
|
+
patternIndex += 1;
|
|
79
|
+
pathIndex += 1;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (starPatternIndex === -1) {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
starPathIndex += 1;
|
|
86
|
+
patternIndex = starPatternIndex;
|
|
87
|
+
pathIndex = starPathIndex;
|
|
88
|
+
}
|
|
89
|
+
while (patternSegments[patternIndex] === '**') {
|
|
90
|
+
patternIndex += 1;
|
|
91
|
+
}
|
|
92
|
+
return patternIndex === patternSegments.length;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Compile exclusion globs matched against **docs-root-relative POSIX paths**
|
|
96
|
+
* (`api/auth.md`, `api/nested`), never against absolute or CWD-relative ones.
|
|
97
|
+
*
|
|
98
|
+
* Grammar, defined once and documented in
|
|
99
|
+
* `apps/oat-docs/docs/reference/oat-directory-structure.md`:
|
|
100
|
+
*
|
|
101
|
+
* - `*` matches any run of characters inside a single path segment.
|
|
102
|
+
* - `**` spans `/` only as a whole segment, where it covers zero or more
|
|
103
|
+
* segments: `**\/CLAUDE.md` matches `CLAUDE.md` and `api/CLAUDE.md`. Inside a
|
|
104
|
+
* segment (`a**b`) it is an ordinary single-segment wildcard.
|
|
105
|
+
* - Patterns are anchored at both ends against the whole relative path, so a
|
|
106
|
+
* bare `CLAUDE.md` matches only the root-level file. Use `**\/CLAUDE.md` for
|
|
107
|
+
* every depth.
|
|
108
|
+
* - A trailing `/` restricts a pattern to directories: `drafts/` prunes the
|
|
109
|
+
* `drafts` directory and everything beneath it, and never matches a file.
|
|
110
|
+
* Without it, a pattern that matches a directory path prunes it too.
|
|
111
|
+
* - Matching is case-sensitive, `/` is the separator on every platform, and
|
|
112
|
+
* `*` is the only metacharacter — `.`, `+`, and friends are literal.
|
|
113
|
+
*
|
|
114
|
+
* Entries are trimmed; a leading `./` or `/` is stripped so both spellings
|
|
115
|
+
* anchor at the docs root. Blank entries are ignored.
|
|
116
|
+
*/
|
|
117
|
+
export function createExclusionMatcher(patterns) {
|
|
118
|
+
const filePatterns = [];
|
|
119
|
+
const directoryPatterns = [];
|
|
120
|
+
for (const rawPattern of patterns) {
|
|
121
|
+
const trimmedPattern = rawPattern.trim();
|
|
122
|
+
if (!trimmedPattern) {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const directoryOnly = trimmedPattern.endsWith('/');
|
|
126
|
+
const normalized = trimmedPattern
|
|
127
|
+
.replace(/\/+$/, '')
|
|
128
|
+
.replace(/^\.\//, '')
|
|
129
|
+
.replace(/^\/+/, '');
|
|
130
|
+
if (!normalized) {
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
const segments = normalized.split('/');
|
|
134
|
+
directoryPatterns.push(segments);
|
|
135
|
+
if (!directoryOnly) {
|
|
136
|
+
filePatterns.push(segments);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
if (directoryPatterns.length === 0) {
|
|
140
|
+
return NO_EXCLUSIONS;
|
|
141
|
+
}
|
|
142
|
+
const matches = (compiled, relativePath) => {
|
|
143
|
+
const pathSegments = relativePath.split('/');
|
|
144
|
+
return compiled.some((segments) => matchPath(segments, pathSegments));
|
|
145
|
+
};
|
|
146
|
+
return {
|
|
147
|
+
excludesFile: (relativePath) => matches(filePatterns, relativePath),
|
|
148
|
+
excludesDirectory: (relativePath) => matches(directoryPatterns, relativePath),
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/** Explicit Contents targets must also respect pruned ancestor directories. */
|
|
152
|
+
export function isExcludedPath(matcher, path, directory = false) {
|
|
153
|
+
const parts = path.split('/');
|
|
154
|
+
for (let i = 1; i < parts.length; i += 1) {
|
|
155
|
+
if (matcher.excludesDirectory(parts.slice(0, i).join('/')))
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
return directory
|
|
159
|
+
? matcher.excludesDirectory(path)
|
|
160
|
+
: matcher.excludesFile(path);
|
|
161
|
+
}
|
|
@@ -35,6 +35,8 @@ export interface OatDocumentationIa {
|
|
|
35
35
|
export interface OatDocumentationConfig {
|
|
36
36
|
/** Repository-only mirror; the authored decision and local guidance own IA. */
|
|
37
37
|
ia?: OatDocumentationIa;
|
|
38
|
+
/** Content-root-relative globs excluded from reader navigation and manifests. */
|
|
39
|
+
nonReaderPaths?: string[];
|
|
38
40
|
/** Absent is undeclared. Markdown ignores sidebar ownership. */
|
|
39
41
|
navOwner?: 'nav-sync' | 'hand-authored';
|
|
40
42
|
/** Ordered advisory IA source paths/URLs; selected as a layer, never merged. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oat-config.d.ts","sourceRoot":"","sources":["../../src/config/oat-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oat-config.d.ts","sourceRoot":"","sources":["../../src/config/oat-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -860,13 +860,13 @@ async function normalizeReadableProjectPath(repoRoot, pathValue) {
|
|
|
860
860
|
* publish pages the operator believed were excluded, with no signal anywhere.
|
|
861
861
|
* An absent key and an empty array are both "no exclusions".
|
|
862
862
|
*/
|
|
863
|
-
function normalizeDocumentationExcludes(value, configPath) {
|
|
863
|
+
function normalizeDocumentationExcludes(value, configPath, key = 'excludes') {
|
|
864
864
|
if (value === undefined) {
|
|
865
865
|
return [];
|
|
866
866
|
}
|
|
867
867
|
const invalid = () => {
|
|
868
|
-
throw new CliError(`Invalid documentation
|
|
869
|
-
|
|
868
|
+
throw new CliError(`Invalid documentation.${key} in ${configPath}: expected an array of non-empty strings. ` +
|
|
869
|
+
`Repair it with oat config set documentation.${key} "<glob>,<glob>" (an empty value clears it).`, 2);
|
|
870
870
|
};
|
|
871
871
|
if (!Array.isArray(value)) {
|
|
872
872
|
invalid();
|
|
@@ -1097,6 +1097,9 @@ function normalizeOatConfig(parsed, configPath = '.oat/config.json', onWarning)
|
|
|
1097
1097
|
doc.requireForProjectCompletion =
|
|
1098
1098
|
parsed.documentation.requireForProjectCompletion;
|
|
1099
1099
|
}
|
|
1100
|
+
const nonReaderPaths = normalizeDocumentationExcludes(parsed.documentation.nonReaderPaths, configPath, 'nonReaderPaths');
|
|
1101
|
+
if (nonReaderPaths.length > 0)
|
|
1102
|
+
doc.nonReaderPaths = nonReaderPaths;
|
|
1100
1103
|
const excludes = normalizeDocumentationExcludes(parsed.documentation.excludes, configPath);
|
|
1101
1104
|
if (excludes.length > 0) {
|
|
1102
1105
|
doc.excludes = excludes;
|