@vibe-agent-toolkit/resources 0.1.38 → 0.1.39-rc.2

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.
Files changed (75) hide show
  1. package/README.md +33 -24
  2. package/dist/frontmatter-link-validator.d.ts +9 -9
  3. package/dist/frontmatter-link-validator.d.ts.map +1 -1
  4. package/dist/frontmatter-link-validator.js +28 -27
  5. package/dist/frontmatter-link-validator.js.map +1 -1
  6. package/dist/frontmatter-validator.d.ts +3 -2
  7. package/dist/frontmatter-validator.d.ts.map +1 -1
  8. package/dist/frontmatter-validator.js +8 -14
  9. package/dist/frontmatter-validator.js.map +1 -1
  10. package/dist/html-link-parser.d.ts +47 -0
  11. package/dist/html-link-parser.d.ts.map +1 -0
  12. package/dist/html-link-parser.js +111 -0
  13. package/dist/html-link-parser.js.map +1 -0
  14. package/dist/html-transform.d.ts +45 -0
  15. package/dist/html-transform.d.ts.map +1 -0
  16. package/dist/html-transform.js +116 -0
  17. package/dist/html-transform.js.map +1 -0
  18. package/dist/index.d.ts +4 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/link-parser.d.ts +26 -2
  23. package/dist/link-parser.d.ts.map +1 -1
  24. package/dist/link-parser.js +40 -6
  25. package/dist/link-parser.js.map +1 -1
  26. package/dist/link-validator.d.ts +53 -6
  27. package/dist/link-validator.d.ts.map +1 -1
  28. package/dist/link-validator.js +100 -131
  29. package/dist/link-validator.js.map +1 -1
  30. package/dist/multi-schema-validator.d.ts.map +1 -1
  31. package/dist/multi-schema-validator.js +6 -8
  32. package/dist/multi-schema-validator.js.map +1 -1
  33. package/dist/resource-registry.d.ts +56 -13
  34. package/dist/resource-registry.d.ts.map +1 -1
  35. package/dist/resource-registry.js +165 -66
  36. package/dist/resource-registry.js.map +1 -1
  37. package/dist/schemas/link-auth.d.ts +382 -0
  38. package/dist/schemas/link-auth.d.ts.map +1 -0
  39. package/dist/schemas/link-auth.js +124 -0
  40. package/dist/schemas/link-auth.js.map +1 -0
  41. package/dist/schemas/project-config.d.ts +763 -171
  42. package/dist/schemas/project-config.d.ts.map +1 -1
  43. package/dist/schemas/project-config.js +5 -0
  44. package/dist/schemas/project-config.js.map +1 -1
  45. package/dist/schemas/resource-metadata.d.ts +46 -10
  46. package/dist/schemas/resource-metadata.d.ts.map +1 -1
  47. package/dist/schemas/resource-metadata.js +14 -1
  48. package/dist/schemas/resource-metadata.js.map +1 -1
  49. package/dist/schemas/validation-result.d.ts +36 -57
  50. package/dist/schemas/validation-result.d.ts.map +1 -1
  51. package/dist/schemas/validation-result.js +5 -27
  52. package/dist/schemas/validation-result.js.map +1 -1
  53. package/dist/types/resources.d.ts +1 -1
  54. package/dist/types/resources.d.ts.map +1 -1
  55. package/dist/types/resources.js.map +1 -1
  56. package/dist/utils.d.ts +10 -0
  57. package/dist/utils.d.ts.map +1 -1
  58. package/dist/utils.js +14 -0
  59. package/dist/utils.js.map +1 -1
  60. package/package.json +4 -3
  61. package/src/frontmatter-link-validator.ts +28 -30
  62. package/src/frontmatter-validator.ts +19 -16
  63. package/src/html-link-parser.ts +140 -0
  64. package/src/html-transform.ts +157 -0
  65. package/src/index.ts +6 -1
  66. package/src/link-parser.ts +60 -11
  67. package/src/link-validator.ts +175 -145
  68. package/src/multi-schema-validator.ts +10 -8
  69. package/src/resource-registry.ts +205 -72
  70. package/src/schemas/link-auth.ts +146 -0
  71. package/src/schemas/project-config.ts +6 -0
  72. package/src/schemas/resource-metadata.ts +17 -1
  73. package/src/schemas/validation-result.ts +5 -29
  74. package/src/types/resources.ts +2 -1
  75. package/src/utils.ts +15 -0
@@ -8,15 +8,36 @@
8
8
  * - Query capabilities (by path, ID, or glob pattern)
9
9
  */
10
10
  import path from 'node:path';
11
+ import { createRegistryIssue, runValidationFramework } from '@vibe-agent-toolkit/agent-schema';
11
12
  import { crawlDirectory, normalizedTmpdir, resolveAssetReference, safePath, toForwardSlash } from '@vibe-agent-toolkit/utils';
12
13
  import { calculateChecksum } from './checksum.js';
13
14
  import { getCollectionsForFile } from './collection-matcher.js';
14
15
  import { ExternalLinkValidator } from './external-link-validator.js';
15
16
  import { validateFrontmatterLinks, } from './frontmatter-link-validator.js';
16
17
  import { validateFrontmatter } from './frontmatter-validator.js';
18
+ import { parseHtml } from './html-link-parser.js';
17
19
  import { parseMarkdown } from './link-parser.js';
18
- import { validateLink } from './link-validator.js';
19
- import { matchesGlobPattern, splitHrefAnchor } from './utils.js';
20
+ import { fragmentIndexEntry, validateLink } from './link-validator.js';
21
+ import { issueLocation, matchesGlobPattern, splitHrefAnchor } from './utils.js';
22
+ /**
23
+ * Typed error thrown when two resources produce the same ID.
24
+ *
25
+ * Carries the authoritative id and both paths so callers can record accurate
26
+ * issue data without re-deriving the id from the file path (which would be
27
+ * wrong when the id came from a frontmatter `idField` value).
28
+ */
29
+ export class DuplicateResourceIdError extends Error {
30
+ id;
31
+ existingPath;
32
+ conflictingPath;
33
+ constructor(id, conflictingPath, existingPath) {
34
+ super(`Duplicate resource ID '${id}': '${conflictingPath}' conflicts with '${existingPath}'`);
35
+ this.name = 'DuplicateResourceIdError';
36
+ this.id = id;
37
+ this.existingPath = existingPath;
38
+ this.conflictingPath = conflictingPath;
39
+ }
40
+ }
20
41
  /**
21
42
  * Resource registry for managing collections of markdown resources.
22
43
  *
@@ -65,6 +86,11 @@ export class ResourceRegistry {
65
86
  * collectExternalUrls so the URLs feed into the existing health-check pass.
66
87
  */
67
88
  frontmatterExternalUrlsByResource = new Map();
89
+ /**
90
+ * Collisions recorded by addResources() when two files produce the same resource id.
91
+ * Cleared by clear(). Surfaced as DUPLICATE_RESOURCE_ID issues in validate().
92
+ */
93
+ duplicateIdCollisions = [];
68
94
  constructor(options) {
69
95
  if (options?.baseDir !== undefined) {
70
96
  this.baseDir = options.baseDir;
@@ -122,7 +148,7 @@ export class ResourceRegistry {
122
148
  // Check for duplicate ID
123
149
  const existingById = registry.resourcesById.get(resource.id);
124
150
  if (existingById) {
125
- throw new Error(`Duplicate resource ID '${resource.id}': '${resource.filePath}' conflicts with '${existingById.filePath}'`);
151
+ throw new DuplicateResourceIdError(resource.id, resource.filePath, existingById.filePath);
126
152
  }
127
153
  // Add to path index
128
154
  registry.resourcesByPath.set(resource.filePath, resource);
@@ -180,14 +206,18 @@ export class ResourceRegistry {
180
206
  async addResource(filePath) {
181
207
  // Normalize path to absolute
182
208
  const absolutePath = safePath.resolve(filePath);
183
- // Parse the markdown file (needed before ID generation for frontmatter lookup)
184
- const parseResult = await parseMarkdown(absolutePath);
209
+ // Parse the file HTML or markdown depending on extension
210
+ const lowerPath = absolutePath.toLowerCase();
211
+ const isHtml = lowerPath.endsWith('.html') || lowerPath.endsWith('.htm');
212
+ const parseResult = isHtml
213
+ ? await parseHtml(absolutePath)
214
+ : await parseMarkdown(absolutePath);
185
215
  // Generate ID using priority chain: frontmatter field → relative path → filename stem
186
216
  const id = this.generateId(absolutePath, parseResult.frontmatter);
187
217
  // Check for duplicate ID (allow re-adding same file path)
188
218
  const existingById = this.resourcesById.get(id);
189
219
  if (existingById && existingById.filePath !== absolutePath) {
190
- throw new Error(`Duplicate resource ID '${id}': '${absolutePath}' conflicts with '${existingById.filePath}'`);
220
+ throw new DuplicateResourceIdError(id, absolutePath, existingById.filePath);
191
221
  }
192
222
  // Get file modified time
193
223
  const fs = await import('node:fs/promises');
@@ -204,6 +234,8 @@ export class ResourceRegistry {
204
234
  filePath: absolutePath,
205
235
  links: parseResult.links,
206
236
  headings: parseResult.headings,
237
+ ...(parseResult.anchors !== undefined && { anchors: parseResult.anchors }),
238
+ ...(parseResult.parseErrors !== undefined && { parseErrors: parseResult.parseErrors }),
207
239
  ...(parseResult.frontmatter !== undefined && { frontmatter: parseResult.frontmatter }),
208
240
  ...(parseResult.frontmatterError !== undefined && { frontmatterError: parseResult.frontmatterError }),
209
241
  sizeBytes: parseResult.sizeBytes,
@@ -237,7 +269,22 @@ export class ResourceRegistry {
237
269
  async addResources(filePaths) {
238
270
  const results = [];
239
271
  for (const fp of filePaths) {
240
- results.push(await this.addResource(fp));
272
+ try {
273
+ results.push(await this.addResource(fp));
274
+ }
275
+ catch (error) {
276
+ if (error instanceof DuplicateResourceIdError) {
277
+ this.duplicateIdCollisions.push({
278
+ id: error.id,
279
+ existingPath: error.existingPath,
280
+ conflictingPath: error.conflictingPath,
281
+ });
282
+ // First-added wins; skip conflicting file and continue crawling.
283
+ }
284
+ else {
285
+ throw error;
286
+ }
287
+ }
241
288
  }
242
289
  return results;
243
290
  }
@@ -258,7 +305,7 @@ export class ResourceRegistry {
258
305
  * ```
259
306
  */
260
307
  async crawl(options) {
261
- const { baseDir, include = ['**/*.md'], exclude = ['**/node_modules/**', '**/.git/**', '**/dist/**'], followSymlinks = false, } = options;
308
+ const { baseDir, include = ['**/*.md', '**/*.html', '**/*.htm'], exclude = ['**/node_modules/**', '**/.git/**', '**/dist/**'], followSymlinks = false, } = options;
262
309
  // Propagate baseDir to registry if not already set (enables path-relative IDs)
263
310
  if (baseDir && !this.baseDir) {
264
311
  this.baseDir = baseDir;
@@ -284,22 +331,39 @@ export class ResourceRegistry {
284
331
  const issues = [];
285
332
  for (const resource of this.resourcesByPath.values()) {
286
333
  if (resource.frontmatterError) {
287
- issues.push({
288
- resourcePath: resource.filePath,
289
- line: 1,
290
- type: 'frontmatter_invalid_yaml',
291
- link: '',
292
- message: `Invalid YAML syntax in frontmatter: ${resource.frontmatterError}`,
293
- });
334
+ issues.push(createRegistryIssue('FRONTMATTER_INVALID_YAML', `Invalid YAML syntax in frontmatter: ${resource.frontmatterError}`, { location: issueLocation(resource.filePath, this.baseDir), line: 1 }));
335
+ }
336
+ }
337
+ return issues;
338
+ }
339
+ /**
340
+ * Emit MALFORMED_HTML issues from each resource's HTML parse errors.
341
+ * @private
342
+ */
343
+ collectHtmlParseErrors() {
344
+ const issues = [];
345
+ for (const resource of this.resourcesByPath.values()) {
346
+ for (const parseError of resource.parseErrors ?? []) {
347
+ issues.push(createRegistryIssue('MALFORMED_HTML', `Malformed HTML: ${parseError.message}`, {
348
+ location: issueLocation(resource.filePath, this.baseDir),
349
+ ...(parseError.line !== undefined && { line: parseError.line }),
350
+ }));
294
351
  }
295
352
  }
296
353
  return issues;
297
354
  }
355
+ /**
356
+ * Emit DUPLICATE_RESOURCE_ID errors for collisions recorded by addResources().
357
+ * @private
358
+ */
359
+ collectDuplicateIdErrors() {
360
+ return this.duplicateIdCollisions.map(({ id, existingPath, conflictingPath }) => createRegistryIssue('DUPLICATE_RESOURCE_ID', `Two files resolve to the same resource id '${id}': '${issueLocation(existingPath, this.baseDir)}' and '${issueLocation(conflictingPath, this.baseDir)}'. Rename one of the files so they produce distinct resource ids.`));
361
+ }
298
362
  /**
299
363
  * Validate all links in all resources.
300
364
  * @private
301
365
  */
302
- async validateAllLinks(headingsByFile, skipGitIgnoreCheck) {
366
+ async validateAllLinks(fragmentsByFile, skipGitIgnoreCheck) {
303
367
  const issues = [];
304
368
  for (const resource of this.resourcesByPath.values()) {
305
369
  for (const link of resource.links) {
@@ -311,7 +375,7 @@ export class ResourceRegistry {
311
375
  skipGitIgnoreCheck,
312
376
  ...(this.gitTracker !== undefined && { gitTracker: this.gitTracker })
313
377
  };
314
- const issue = await validateLink(link, resource.filePath, headingsByFile, validateOptions);
378
+ const issue = await validateLink(link, resource.filePath, fragmentsByFile, validateOptions);
315
379
  if (issue) {
316
380
  issues.push(issue);
317
381
  }
@@ -326,7 +390,7 @@ export class ResourceRegistry {
326
390
  validateAllFrontmatter(schema, mode = 'strict') {
327
391
  const issues = [];
328
392
  for (const resource of this.resourcesByPath.values()) {
329
- const frontmatterIssues = validateFrontmatter(resource.frontmatter, schema, resource.filePath, mode);
393
+ const frontmatterIssues = validateFrontmatter(resource.frontmatter, schema, resource.filePath, mode, undefined, this.baseDir);
330
394
  issues.push(...frontmatterIssues);
331
395
  }
332
396
  return issues;
@@ -335,7 +399,7 @@ export class ResourceRegistry {
335
399
  * Validate frontmatter against per-collection schemas.
336
400
  * @private
337
401
  */
338
- async validateCollectionFrontmatter(headingsByFile, skipGitIgnoreCheck) {
402
+ async validateCollectionFrontmatter(fragmentsByFile, skipGitIgnoreCheck) {
339
403
  const issues = [];
340
404
  // Skip if no config
341
405
  if (!this.config?.resources?.collections) {
@@ -348,7 +412,7 @@ export class ResourceRegistry {
348
412
  continue;
349
413
  }
350
414
  // Validate against each collection's schema
351
- const collectionIssues = await this.validateResourceCollectionSchemas(resource, fsPromises, headingsByFile, skipGitIgnoreCheck);
415
+ const collectionIssues = await this.validateResourceCollectionSchemas(resource, fsPromises, fragmentsByFile, skipGitIgnoreCheck);
352
416
  issues.push(...collectionIssues);
353
417
  }
354
418
  return issues;
@@ -357,7 +421,7 @@ export class ResourceRegistry {
357
421
  * Validate a single resource against its collection schemas.
358
422
  * @private
359
423
  */
360
- async validateResourceCollectionSchemas(resource, fsModule, headingsByFile, skipGitIgnoreCheck) {
424
+ async validateResourceCollectionSchemas(resource, fsModule, fragmentsByFile, skipGitIgnoreCheck) {
361
425
  const issues = [];
362
426
  if (!resource.collections || !this.config?.resources?.collections) {
363
427
  return issues;
@@ -368,7 +432,7 @@ export class ResourceRegistry {
368
432
  if (!collection?.validation?.frontmatterSchema) {
369
433
  continue;
370
434
  }
371
- const collectionIssues = await this.validateAgainstCollectionSchema(resource, collection.validation, fsModule, headingsByFile, skipGitIgnoreCheck);
435
+ const collectionIssues = await this.validateAgainstCollectionSchema(resource, collection.validation, fsModule, fragmentsByFile, skipGitIgnoreCheck);
372
436
  issues.push(...collectionIssues);
373
437
  }
374
438
  return issues;
@@ -377,7 +441,7 @@ export class ResourceRegistry {
377
441
  * Validate resource frontmatter against a specific collection schema.
378
442
  * @private
379
443
  */
380
- async validateAgainstCollectionSchema(resource, validation, fsModule, headingsByFile, skipGitIgnoreCheck) {
444
+ async validateAgainstCollectionSchema(resource, validation, fsModule, fragmentsByFile, skipGitIgnoreCheck) {
381
445
  if (!validation?.frontmatterSchema) {
382
446
  return [];
383
447
  }
@@ -388,7 +452,7 @@ export class ResourceRegistry {
388
452
  // Determine validation mode (default to permissive)
389
453
  const mode = validation.mode ?? 'permissive';
390
454
  // Validate frontmatter against JSON Schema
391
- const issues = validateFrontmatter(resource.frontmatter, schema, resource.filePath, mode, schemaPath);
455
+ const issues = validateFrontmatter(resource.frontmatter, schema, resource.filePath, mode, schemaPath, this.baseDir);
392
456
  // New: walk URI-family frontmatter values. Default-on; explicit `false` disables.
393
457
  if (validation.checkFrontmatterLinks !== false && resource.frontmatter) {
394
458
  const linkOptions = this.baseDir === undefined
@@ -398,7 +462,7 @@ export class ResourceRegistry {
398
462
  skipGitIgnoreCheck,
399
463
  ...(this.gitTracker !== undefined && { gitTracker: this.gitTracker }),
400
464
  };
401
- const { issues: linkIssues, externalUrls } = await validateFrontmatterLinks(resource.frontmatter, schema, resource.filePath, headingsByFile, linkOptions);
465
+ const { issues: linkIssues, externalUrls } = await validateFrontmatterLinks(resource.frontmatter, schema, resource.filePath, fragmentsByFile, linkOptions);
402
466
  issues.push(...linkIssues);
403
467
  if (externalUrls.length > 0) {
404
468
  const prior = this.frontmatterExternalUrlsByResource.get(resource.filePath) ?? [];
@@ -410,13 +474,9 @@ export class ResourceRegistry {
410
474
  catch (error) {
411
475
  // Handle missing or invalid schema files gracefully
412
476
  const errorMessage = error instanceof Error ? error.message : String(error);
413
- return [{
414
- resourcePath: resource.filePath,
415
- line: 1,
416
- type: 'frontmatter_schema_error',
417
- link: '',
418
- message: `Failed to load or parse frontmatter schema '${validation.frontmatterSchema}': ${errorMessage}`,
419
- }];
477
+ return [
478
+ createRegistryIssue('FRONTMATTER_SCHEMA_ERROR', `Failed to load or parse frontmatter schema '${validation.frontmatterSchema}': ${errorMessage}`, { location: issueLocation(resource.filePath, this.baseDir), line: 1 }),
479
+ ];
420
480
  }
421
481
  }
422
482
  /**
@@ -452,19 +512,21 @@ export class ResourceRegistry {
452
512
  */
453
513
  async validate(options) {
454
514
  const startTime = Date.now();
455
- // Build headings map for validation
456
- const headingsByFile = this.buildHeadingsByFileMap();
515
+ // Build fragment index for anchor validation
516
+ const fragmentsByFile = this.buildFragmentIndex();
457
517
  // Reset frontmatter external URL state for this validation run
458
518
  this.frontmatterExternalUrlsByResource.clear();
459
519
  // Collect all validation issues
460
520
  const issues = [];
461
- // Check for YAML parsing errors first
462
- issues.push(...this.collectYamlErrors());
521
+ // Surface parse-time diagnostics: YAML frontmatter errors first, then HTML
522
+ // well-formedness, then duplicate-id collisions. Combined into one push() call
523
+ // (SonarCloud S7778).
524
+ issues.push(...this.collectYamlErrors(), ...this.collectHtmlParseErrors(), ...this.collectDuplicateIdErrors());
463
525
  // Validate each link in each resource
464
- const linkIssues = await this.validateAllLinks(headingsByFile, options?.skipGitIgnoreCheck ?? false);
526
+ const linkIssues = await this.validateAllLinks(fragmentsByFile, options?.skipGitIgnoreCheck ?? false);
465
527
  issues.push(...linkIssues);
466
528
  // Per-collection frontmatter validation
467
- const collectionFrontmatterIssues = await this.validateCollectionFrontmatter(headingsByFile, options?.skipGitIgnoreCheck ?? false);
529
+ const collectionFrontmatterIssues = await this.validateCollectionFrontmatter(fragmentsByFile, options?.skipGitIgnoreCheck ?? false);
468
530
  issues.push(...collectionFrontmatterIssues);
469
531
  // Global frontmatter validation (if schema provided)
470
532
  if (options?.frontmatterSchema) {
@@ -476,8 +538,11 @@ export class ResourceRegistry {
476
538
  const externalUrlIssues = await this.validateExternalUrls(options.noCache ?? false);
477
539
  issues.push(...externalUrlIssues);
478
540
  }
479
- // Count issues (all are errors now)
480
- const errorCount = issues.length;
541
+ // Resolve severity + apply allow-filter INSIDE the library (not the CLI).
542
+ // `emitted` = post-allow-filter, severity-resolved, with `ignore`d dropped.
543
+ const framework = runValidationFramework(issues, options?.validationConfig ?? {});
544
+ const emitted = framework.emitted;
545
+ const errorCount = emitted.length;
481
546
  // Count links by type
482
547
  const linksByType = {};
483
548
  for (const resource of this.resourcesByPath.values()) {
@@ -490,9 +555,10 @@ export class ResourceRegistry {
490
555
  totalResources: this.resourcesByPath.size,
491
556
  totalLinks: [...this.resourcesByPath.values()].reduce((sum, r) => sum + r.links.length, 0),
492
557
  linksByType,
493
- issues,
558
+ issues: emitted,
494
559
  errorCount,
495
560
  passed: errorCount === 0,
561
+ hasErrors: framework.hasErrors,
496
562
  durationMs,
497
563
  timestamp: new Date(),
498
564
  };
@@ -577,33 +643,31 @@ export class ResourceRegistry {
577
643
  if (!locations) {
578
644
  continue;
579
645
  }
580
- const issueType = this.determineExternalUrlIssueType(result.statusCode, result.error);
646
+ const issueCode = this.determineExternalUrlIssueCode(result.statusCode, result.error);
581
647
  const errorMessage = result.error ?? `HTTP ${result.statusCode}`;
582
648
  for (const location of locations) {
583
- issues.push({
584
- resourcePath: location.resourcePath,
585
- line: location.line,
586
- type: issueType,
649
+ issues.push(createRegistryIssue(issueCode, `External URL failed: ${errorMessage}`, {
650
+ location: issueLocation(location.resourcePath, this.baseDir),
587
651
  link: result.url,
588
- message: `External URL failed: ${errorMessage}`,
589
- });
652
+ ...(location.line !== undefined && { line: location.line }),
653
+ }));
590
654
  }
591
655
  }
592
656
  return issues;
593
657
  }
594
658
  /**
595
- * Determine issue type based on validation error.
659
+ * Determine the registry issue code based on the external-URL validation error.
596
660
  * @private
597
661
  */
598
- determineExternalUrlIssueType(statusCode, error) {
662
+ determineExternalUrlIssueCode(statusCode, error) {
599
663
  if (statusCode === 0) {
600
664
  const errorLower = error?.toString().toLowerCase();
601
665
  if (errorLower?.includes('timeout')) {
602
- return 'external_url_timeout';
666
+ return 'EXTERNAL_URL_TIMEOUT';
603
667
  }
604
- return 'external_url_error';
668
+ return 'EXTERNAL_URL_ERROR';
605
669
  }
606
- return 'external_url_dead';
670
+ return 'EXTERNAL_URL_DEAD';
607
671
  }
608
672
  /**
609
673
  * Resolve links between resources in the registry.
@@ -761,6 +825,7 @@ export class ResourceRegistry {
761
825
  this.resourcesById.clear();
762
826
  this.resourcesByName.clear();
763
827
  this.resourcesByChecksum.clear();
828
+ this.duplicateIdCollisions = [];
764
829
  }
765
830
  /**
766
831
  * Get the number of resources in the registry.
@@ -951,14 +1016,20 @@ export class ResourceRegistry {
951
1016
  return generateIdFromPath(filePath, this.baseDir);
952
1017
  }
953
1018
  /**
954
- * Build a map of file paths to their heading trees.
955
- *
956
- * Used for link validation.
1019
+ * Build a format-neutral fragment index for anchor validation: each file's
1020
+ * absolute path → the set of valid fragment targets. Markdown contributes
1021
+ * heading slugs (lowercased); HTML contributes its `id`/`name` anchors.
957
1022
  */
958
- buildHeadingsByFileMap() {
1023
+ buildFragmentIndex() {
959
1024
  const map = new Map();
960
1025
  for (const resource of this.resourcesByPath.values()) {
961
- map.set(resource.filePath, resource.headings);
1026
+ const fragments = new Set();
1027
+ collectHeadingSlugs(resource.headings, fragments);
1028
+ for (const anchor of resource.anchors ?? []) {
1029
+ fragments.add(anchor);
1030
+ }
1031
+ // Policy (case-sensitive ids vs folded slugs) is derived from the file type.
1032
+ map.set(resource.filePath, fragmentIndexEntry(resource.filePath, fragments));
962
1033
  }
963
1034
  return map;
964
1035
  }
@@ -1011,29 +1082,46 @@ export class ResourceRegistry {
1011
1082
  return safePath.resolve(sourceDir, filePath);
1012
1083
  }
1013
1084
  }
1085
+ /** Recursively collect lowercased heading slugs into `out`. */
1086
+ function collectHeadingSlugs(headings, out) {
1087
+ for (const heading of headings) {
1088
+ out.add(heading.slug.toLowerCase());
1089
+ if (heading.children) {
1090
+ collectHeadingSlugs(heading.children, out);
1091
+ }
1092
+ }
1093
+ }
1014
1094
  /**
1015
1095
  * Generate an ID from a file path.
1016
1096
  *
1097
+ * Every resource id includes a `-<ext>` suffix derived from the file extension
1098
+ * (dot stripped, lowercased). This makes ids from different file types distinct
1099
+ * even when the stem is identical (e.g. `foo.md` → `foo-md`, `foo.html` → `foo-html`).
1100
+ * Extensionless files (e.g. `Makefile`) receive no suffix.
1101
+ *
1017
1102
  * When `baseDir` is provided, computes a relative path from baseDir and uses the full
1018
1103
  * directory structure in the ID. When no `baseDir`, uses the filename stem only.
1019
1104
  *
1020
1105
  * @param filePath - Absolute file path
1021
1106
  * @param baseDir - Base directory for relative path computation (optional)
1022
- * @returns Generated ID in kebab-case
1107
+ * @returns Generated ID in kebab-case with `-<ext>` suffix
1023
1108
  *
1024
1109
  * @example
1025
1110
  * ```typescript
1026
- * // Without baseDir: filename stem only
1027
- * generateIdFromPath('/project/docs/User Guide.md') // 'user-guide'
1028
- * generateIdFromPath('/project/README.md') // 'readme'
1111
+ * // Without baseDir: filename stem + extension suffix
1112
+ * generateIdFromPath('/project/docs/User Guide.md') // 'user-guide-md'
1113
+ * generateIdFromPath('/project/README.md') // 'readme-md'
1114
+ * generateIdFromPath('/project/page.html') // 'page-html'
1115
+ * generateIdFromPath('/project/Makefile') // 'makefile'
1029
1116
  *
1030
- * // With baseDir: relative path
1031
- * generateIdFromPath('/project/docs/concepts/core/overview.md', '/project/docs') // 'concepts-core-overview'
1032
- * generateIdFromPath('/project/docs/guide.md', '/project/docs') // 'guide'
1117
+ * // With baseDir: relative path + extension suffix
1118
+ * generateIdFromPath('/project/docs/concepts/core/overview.md', '/project/docs') // 'concepts-core-overview-md'
1119
+ * generateIdFromPath('/project/docs/guide.md', '/project/docs') // 'guide-md'
1033
1120
  * ```
1034
1121
  */
1035
1122
  export function generateIdFromPath(filePath, baseDir) {
1036
1123
  let rawId;
1124
+ let extSuffix = '';
1037
1125
  if (baseDir) {
1038
1126
  // Compute relative path from baseDir, remove extension
1039
1127
  const relativePath = safePath.relative(baseDir, filePath);
@@ -1041,11 +1129,22 @@ export function generateIdFromPath(filePath, baseDir) {
1041
1129
  const withoutExt = ext ? relativePath.slice(0, -ext.length) : relativePath;
1042
1130
  // Normalize path separators to forward slashes (cross-platform), then replace with hyphens
1043
1131
  rawId = toForwardSlash(withoutExt).replaceAll('/', '-');
1132
+ if (ext) {
1133
+ // Strip the leading dot; lowercasing happens in the kebab pipeline below
1134
+ extSuffix = `-${ext.slice(1)}`;
1135
+ }
1044
1136
  }
1045
1137
  else {
1046
1138
  // Fallback: basename only (no directory context)
1047
- rawId = path.basename(filePath, path.extname(filePath));
1139
+ const ext = path.extname(filePath);
1140
+ rawId = path.basename(filePath, ext);
1141
+ if (ext) {
1142
+ extSuffix = `-${ext.slice(1)}`;
1143
+ }
1048
1144
  }
1145
+ // Append extension suffix before the kebab pipeline so hyphen-collapse and
1146
+ // trim apply uniformly (e.g. suffixed-.md → 'suffixed--md' → 'suffixed-md')
1147
+ rawId = `${rawId}${extSuffix}`;
1049
1148
  // Convert to kebab-case:
1050
1149
  // 1. Replace underscores and spaces with hyphens
1051
1150
  // 2. Convert to lowercase
@@ -1 +1 @@
1
- {"version":3,"file":"resource-registry.js","sourceRoot":"","sources":["../src/resource-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-registry.js","sourceRoot":"","sources":["../src/resource-registry.ts"],"names":[],"mappings":"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"}