@vibe-agent-toolkit/resources 0.1.39-rc.1 → 0.1.39-rc.3

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 (51) hide show
  1. package/dist/frontmatter-link-validator.d.ts +4 -4
  2. package/dist/frontmatter-link-validator.d.ts.map +1 -1
  3. package/dist/frontmatter-link-validator.js +3 -3
  4. package/dist/frontmatter-link-validator.js.map +1 -1
  5. package/dist/html-link-parser.d.ts +47 -0
  6. package/dist/html-link-parser.d.ts.map +1 -0
  7. package/dist/html-link-parser.js +111 -0
  8. package/dist/html-link-parser.js.map +1 -0
  9. package/dist/html-transform.d.ts +45 -0
  10. package/dist/html-transform.d.ts.map +1 -0
  11. package/dist/html-transform.js +116 -0
  12. package/dist/html-transform.js.map +1 -0
  13. package/dist/index.d.ts +4 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +3 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/link-parser.d.ts +26 -2
  18. package/dist/link-parser.d.ts.map +1 -1
  19. package/dist/link-parser.js +28 -1
  20. package/dist/link-parser.js.map +1 -1
  21. package/dist/link-validator.d.ts +50 -3
  22. package/dist/link-validator.d.ts.map +1 -1
  23. package/dist/link-validator.js +72 -55
  24. package/dist/link-validator.js.map +1 -1
  25. package/dist/resource-registry.d.ts +46 -11
  26. package/dist/resource-registry.d.ts.map +1 -1
  27. package/dist/resource-registry.js +140 -34
  28. package/dist/resource-registry.js.map +1 -1
  29. package/dist/schemas/link-auth.d.ts +382 -0
  30. package/dist/schemas/link-auth.d.ts.map +1 -0
  31. package/dist/schemas/link-auth.js +124 -0
  32. package/dist/schemas/link-auth.js.map +1 -0
  33. package/dist/schemas/project-config.d.ts +642 -98
  34. package/dist/schemas/project-config.d.ts.map +1 -1
  35. package/dist/schemas/project-config.js +3 -0
  36. package/dist/schemas/project-config.js.map +1 -1
  37. package/dist/schemas/resource-metadata.d.ts +46 -10
  38. package/dist/schemas/resource-metadata.d.ts.map +1 -1
  39. package/dist/schemas/resource-metadata.js +14 -1
  40. package/dist/schemas/resource-metadata.js.map +1 -1
  41. package/package.json +4 -3
  42. package/src/frontmatter-link-validator.ts +5 -5
  43. package/src/html-link-parser.ts +140 -0
  44. package/src/html-transform.ts +157 -0
  45. package/src/index.ts +6 -1
  46. package/src/link-parser.ts +35 -2
  47. package/src/link-validator.ts +102 -82
  48. package/src/resource-registry.ts +157 -39
  49. package/src/schemas/link-auth.ts +146 -0
  50. package/src/schemas/project-config.ts +4 -0
  51. package/src/schemas/resource-metadata.ts +17 -1
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/schemas/project-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/schemas/project-config.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { ValidationConfigSchema } from '@vibe-agent-toolkit/agent-schema';
2
2
  import { z } from 'zod';
3
+ import { LinkAuthConfigSchema } from './link-auth.js';
3
4
  /**
4
5
  * Official semver regex from https://semver.org/ (anchored).
5
6
  *
@@ -83,6 +84,8 @@ export const ResourcesConfigSchema = z.object({
83
84
  .describe('Named collections of resources'),
84
85
  validation: ValidationConfigSchema.optional()
85
86
  .describe('Validation framework config: severity overrides and per-code allow entries (applied inside ResourceRegistry.validate)'),
87
+ linkAuth: LinkAuthConfigSchema.optional()
88
+ .describe('Authenticated external link resolution config (issue #113 / link-auth engine)'),
86
89
  }).describe('Resources section of project configuration');
87
90
  // ---------------------------------------------------------------------------
88
91
  // Skill packaging configuration (self-contained — no agent-schema dependency)
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/schemas/project-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;GAQG;AACH,gKAAgK;AAChK,MAAM,YAAY,GAAG,qLAAqL,CAAC;AAE3M,gGAAgG;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;KACjE,QAAQ,CAAC,mDAAmD,CAAC,CAAC;AAIjE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,oDAAoD,CAAC;IACjE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;SAC5C,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC/B,QAAQ,CAAC,sDAAsD,CAAC;IACnE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SAC3C,QAAQ,CAAC,yEAAyE,CAAC;CACvF,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC;AAIrD;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACrC,QAAQ,CAAC,mJAAmJ,CAAC;IAChK,IAAI,EAAE,oBAAoB,CAAC,QAAQ,EAAE;SAClC,QAAQ,CAAC,mCAAmC,CAAC;IAChD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAClC,QAAQ,CAAC,yDAAyD,CAAC;IACtE,eAAe,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SACpC,QAAQ,CAAC,iFAAiF,CAAC;IAC9F,qBAAqB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC1C,QAAQ,CAAC,wJAAwJ,CAAC;IACrK,YAAY,EAAE,2BAA2B,CAAC,QAAQ,EAAE;SACjD,QAAQ,CAAC,uCAAuC,CAAC;CACrD,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC,CAAC;AAIzD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAChC,QAAQ,CAAC,qDAAqD,CAAC;IAClE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACpC,QAAQ,CAAC,0BAA0B,CAAC;IACvC,UAAU,EAAE,0BAA0B,CAAC,QAAQ,EAAE;SAC9C,QAAQ,CAAC,8CAA8C,CAAC;CAC5D,CAAC,CAAC,QAAQ,CAAC,mDAAmD,CAAC,CAAC;AAIjE;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACpC,QAAQ,CAAC,sEAAsE,CAAC;IACnF,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;SACpC,QAAQ,CAAC,sEAAsE,CAAC;IACnF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,QAAQ,EAAE;SACjE,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,UAAU,EAAE,sBAAsB,CAAC,QAAQ,EAAE;SAC1C,QAAQ,CAAC,uHAAuH,CAAC;CACrI,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC;AAI1D,8EAA8E;AAC9E,8EAA8E;AAC9E,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IACnG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;CACrG,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACjE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;CACxH,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IAC1E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,qDAAqD,CAAC;CACxF,CAAC,CAAC;AAIH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;SAC5B,QAAQ,CAAC,2GAA2G,CAAC;IACxH,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjF,cAAc,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC9C,2BAA2B,EAAE,iCAAiC,CAAC,QAAQ,EAAE;IACzE,UAAU,EAAE,sBAAsB,CAAC,QAAQ,EAAE;SAC1C,QAAQ,CAAC,4EAA4E,CAAC;IACzF,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SACjF,QAAQ,CAAC,qFAAqF,CAAC;IAClG,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8FAA8F,CAAC;CACzJ,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC;AAItD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mEAAmE,CAAC;IACjH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IAC5E,QAAQ,EAAE,0BAA0B,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACnG,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;CAC3I,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC,CAAC;AAIrE,8EAA8E;AAC9E,mCAAmC;AACnC,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC,MAAM,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;SACb,KAAK,CAAC,sBAAsB,EAAE,uFAAuF,CAAC;SACtH,QAAQ,CAAC,mDAAmD,CAAC;IAChE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,QAAQ,CAAC,oBAAoB,CAAC;IACjC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SACnD,QAAQ,CAAC,kEAAkE,CAAC;IAC/E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,oDAAoD,CAAC;IACjE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,QAAQ,EAAE;SAC5C,QAAQ,CAAC,wFAAwF,CAAC;IACrG,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE;QACtC,OAAO,EAAE,uEAAuE;KACjF,CAAC,CAAC,QAAQ,EAAE;SACV,QAAQ,CAAC,iFAAiF,CAAC;IAC9F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC7B,QAAQ,CAAC,2GAA2G,CAAC;CACzH,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC,CAAC;AAIxE;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,gJAAgJ,CAAC;IAC7J,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC7B,QAAQ,CAAC,mIAAmI,CAAC;IAChJ,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,QAAQ,CAAC,oGAAoG,CAAC;IACjH,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC3B,QAAQ,CAAC,wEAAwE,CAAC;IACrF,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;SACtD,QAAQ,CAAC,4EAA4E,CAAC;CAC1F,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC,CAAC;AAI3E;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC7B,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IAErD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;SAC9D,QAAQ,CAAC,mNAAmN,CAAC;IAEhO,OAAO,EAAE,8BAA8B,CAAC,QAAQ,EAAE;SAC/C,QAAQ,CAAC,oDAAoD,CAAC;IAEjE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACxD,QAAQ,CAAC,0CAA0C,CAAC;CACxD,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CAAC;AAItE;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACnC,QAAQ,CAAC,+EAA+E,CAAC;IAC5F,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC,QAAQ,EAAE;SACnE,QAAQ,CAAC,2DAA2D,CAAC;CACzE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC,CAAC;AAI9D;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;SAClB,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;SAClC,QAAQ,CAAC,8CAA8C,CAAC;IAC3D,SAAS,EAAE,qBAAqB,CAAC,QAAQ,EAAE;SACxC,QAAQ,CAAC,yBAAyB,CAAC;IACtC,MAAM,EAAE,kBAAkB,CAAC,QAAQ,EAAE;SAClC,QAAQ,CAAC,gEAAgE,CAAC;CAC9E,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC"}
1
+ {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/schemas/project-config.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,13 @@ import { z } from 'zod';
3
3
  * Type of link found in markdown resources.
4
4
  *
5
5
  * - `local_file`: Link to a local file (relative or absolute path)
6
+ * - `local_directory`: Link to a local directory, e.g. a ref ending in `/`
6
7
  * - `anchor`: Link to a heading anchor (e.g., #heading-slug)
7
8
  * - `external`: HTTP/HTTPS URL to external resource
8
9
  * - `email`: Mailto link
9
10
  * - `unknown`: Unclassified link type
10
11
  */
11
- export declare const LinkTypeSchema: z.ZodEnum<["local_file", "anchor", "external", "email", "unknown"]>;
12
+ export declare const LinkTypeSchema: z.ZodEnum<["local_file", "local_directory", "anchor", "external", "email", "unknown"]>;
12
13
  export type LinkType = z.infer<typeof LinkTypeSchema>;
13
14
  /**
14
15
  * AST node type that produced a link entry.
@@ -19,6 +20,20 @@ export type LinkType = z.infer<typeof LinkTypeSchema>;
19
20
  */
20
21
  export declare const LinkNodeTypeSchema: z.ZodEnum<["link", "linkReference", "definition"]>;
21
22
  export type LinkNodeType = z.infer<typeof LinkNodeTypeSchema>;
23
+ /**
24
+ * Zod schema for an HTML well-formedness diagnostic.
25
+ */
26
+ export declare const HtmlParseErrorSchema: z.ZodObject<{
27
+ message: z.ZodString;
28
+ line: z.ZodOptional<z.ZodNumber>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ message: string;
31
+ line?: number | undefined;
32
+ }, {
33
+ message: string;
34
+ line?: number | undefined;
35
+ }>;
36
+ export type HtmlParseError = z.infer<typeof HtmlParseErrorSchema>;
22
37
  /**
23
38
  * Represents a heading node in the document's table of contents.
24
39
  *
@@ -48,14 +63,14 @@ export declare const HeadingNodeSchema: z.ZodType<HeadingNode>;
48
63
  export declare const ResourceLinkSchema: z.ZodObject<{
49
64
  text: z.ZodString;
50
65
  href: z.ZodString;
51
- type: z.ZodEnum<["local_file", "anchor", "external", "email", "unknown"]>;
66
+ type: z.ZodEnum<["local_file", "local_directory", "anchor", "external", "email", "unknown"]>;
52
67
  line: z.ZodOptional<z.ZodNumber>;
53
68
  resolvedPath: z.ZodOptional<z.ZodString>;
54
69
  anchorTarget: z.ZodOptional<z.ZodString>;
55
70
  resolvedId: z.ZodOptional<z.ZodString>;
56
71
  nodeType: z.ZodOptional<z.ZodEnum<["link", "linkReference", "definition"]>>;
57
72
  }, "strip", z.ZodTypeAny, {
58
- type: "anchor" | "unknown" | "email" | "local_file" | "external";
73
+ type: "anchor" | "email" | "unknown" | "local_file" | "local_directory" | "external";
59
74
  text: string;
60
75
  href: string;
61
76
  line?: number | undefined;
@@ -64,7 +79,7 @@ export declare const ResourceLinkSchema: z.ZodObject<{
64
79
  resolvedId?: string | undefined;
65
80
  nodeType?: "link" | "linkReference" | "definition" | undefined;
66
81
  }, {
67
- type: "anchor" | "unknown" | "email" | "local_file" | "external";
82
+ type: "anchor" | "email" | "unknown" | "local_file" | "local_directory" | "external";
68
83
  text: string;
69
84
  href: string;
70
85
  line?: number | undefined;
@@ -86,14 +101,14 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
86
101
  links: z.ZodArray<z.ZodObject<{
87
102
  text: z.ZodString;
88
103
  href: z.ZodString;
89
- type: z.ZodEnum<["local_file", "anchor", "external", "email", "unknown"]>;
104
+ type: z.ZodEnum<["local_file", "local_directory", "anchor", "external", "email", "unknown"]>;
90
105
  line: z.ZodOptional<z.ZodNumber>;
91
106
  resolvedPath: z.ZodOptional<z.ZodString>;
92
107
  anchorTarget: z.ZodOptional<z.ZodString>;
93
108
  resolvedId: z.ZodOptional<z.ZodString>;
94
109
  nodeType: z.ZodOptional<z.ZodEnum<["link", "linkReference", "definition"]>>;
95
110
  }, "strip", z.ZodTypeAny, {
96
- type: "anchor" | "unknown" | "email" | "local_file" | "external";
111
+ type: "anchor" | "email" | "unknown" | "local_file" | "local_directory" | "external";
97
112
  text: string;
98
113
  href: string;
99
114
  line?: number | undefined;
@@ -102,7 +117,7 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
102
117
  resolvedId?: string | undefined;
103
118
  nodeType?: "link" | "linkReference" | "definition" | undefined;
104
119
  }, {
105
- type: "anchor" | "unknown" | "email" | "local_file" | "external";
120
+ type: "anchor" | "email" | "unknown" | "local_file" | "local_directory" | "external";
106
121
  text: string;
107
122
  href: string;
108
123
  line?: number | undefined;
@@ -112,6 +127,17 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
112
127
  nodeType?: "link" | "linkReference" | "definition" | undefined;
113
128
  }>, "many">;
114
129
  headings: z.ZodArray<z.ZodType<HeadingNode, z.ZodTypeDef, HeadingNode>, "many">;
130
+ anchors: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
131
+ parseErrors: z.ZodOptional<z.ZodArray<z.ZodObject<{
132
+ message: z.ZodString;
133
+ line: z.ZodOptional<z.ZodNumber>;
134
+ }, "strip", z.ZodTypeAny, {
135
+ message: string;
136
+ line?: number | undefined;
137
+ }, {
138
+ message: string;
139
+ line?: number | undefined;
140
+ }>, "many">>;
115
141
  frontmatter: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
116
142
  frontmatterError: z.ZodOptional<z.ZodString>;
117
143
  sizeBytes: z.ZodNumber;
@@ -119,11 +145,11 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
119
145
  modifiedAt: z.ZodDate;
120
146
  checksum: z.ZodBranded<z.ZodString, "SHA256">;
121
147
  collections: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
122
- }, "strip", z.ZodTypeAny, {
148
+ }, "strict", z.ZodTypeAny, {
123
149
  id: string;
124
150
  filePath: string;
125
151
  links: {
126
- type: "anchor" | "unknown" | "email" | "local_file" | "external";
152
+ type: "anchor" | "email" | "unknown" | "local_file" | "local_directory" | "external";
127
153
  text: string;
128
154
  href: string;
129
155
  line?: number | undefined;
@@ -138,13 +164,18 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
138
164
  modifiedAt: Date;
139
165
  checksum: string & z.BRAND<"SHA256">;
140
166
  collections?: string[] | undefined;
167
+ anchors?: string[] | undefined;
168
+ parseErrors?: {
169
+ message: string;
170
+ line?: number | undefined;
171
+ }[] | undefined;
141
172
  frontmatter?: Record<string, unknown> | undefined;
142
173
  frontmatterError?: string | undefined;
143
174
  }, {
144
175
  id: string;
145
176
  filePath: string;
146
177
  links: {
147
- type: "anchor" | "unknown" | "email" | "local_file" | "external";
178
+ type: "anchor" | "email" | "unknown" | "local_file" | "local_directory" | "external";
148
179
  text: string;
149
180
  href: string;
150
181
  line?: number | undefined;
@@ -159,6 +190,11 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
159
190
  modifiedAt: Date;
160
191
  checksum: string;
161
192
  collections?: string[] | undefined;
193
+ anchors?: string[] | undefined;
194
+ parseErrors?: {
195
+ message: string;
196
+ line?: number | undefined;
197
+ }[] | undefined;
162
198
  frontmatter?: Record<string, unknown> | undefined;
163
199
  frontmatterError?: string | undefined;
164
200
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-metadata.d.ts","sourceRoot":"","sources":["../../src/schemas/resource-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,qEAM4B,CAAC;AAExD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,oDAIqB,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAQpD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASiB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAeqB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"resource-metadata.d.ts","sourceRoot":"","sources":["../../src/schemas/resource-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,wFAO4B,CAAC;AAExD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,oDAIqB,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;EAGa,CAAC;AAE/C,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAQpD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASiB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB8B,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -4,6 +4,7 @@ import { SHA256Schema } from './checksum.js';
4
4
  * Type of link found in markdown resources.
5
5
  *
6
6
  * - `local_file`: Link to a local file (relative or absolute path)
7
+ * - `local_directory`: Link to a local directory, e.g. a ref ending in `/`
7
8
  * - `anchor`: Link to a heading anchor (e.g., #heading-slug)
8
9
  * - `external`: HTTP/HTTPS URL to external resource
9
10
  * - `email`: Mailto link
@@ -11,6 +12,7 @@ import { SHA256Schema } from './checksum.js';
11
12
  */
12
13
  export const LinkTypeSchema = z.enum([
13
14
  'local_file',
15
+ 'local_directory',
14
16
  'anchor',
15
17
  'external',
16
18
  'email',
@@ -28,6 +30,13 @@ export const LinkNodeTypeSchema = z.enum([
28
30
  'linkReference',
29
31
  'definition',
30
32
  ]).describe('AST node type that produced this link');
33
+ /**
34
+ * Zod schema for an HTML well-formedness diagnostic.
35
+ */
36
+ export const HtmlParseErrorSchema = z.object({
37
+ message: z.string().describe('parse5 error code (e.g. "missing-end-tag")'),
38
+ line: z.number().int().positive().optional().describe('1-based source line, when known'),
39
+ }).describe('HTML well-formedness diagnostic');
31
40
  /**
32
41
  * Zod schema for heading nodes in the document's table of contents.
33
42
  *
@@ -68,6 +77,10 @@ export const ResourceMetadataSchema = z.object({
68
77
  filePath: z.string().describe('Absolute path to the resource file'),
69
78
  links: z.array(ResourceLinkSchema).describe('All links found in the resource'),
70
79
  headings: z.array(HeadingNodeSchema).describe('Document table of contents (top-level headings only; children are nested)'),
80
+ anchors: z.array(z.string()).optional()
81
+ .describe('Fragment targets for anchor validation (HTML id/name attributes)'),
82
+ parseErrors: z.array(HtmlParseErrorSchema).optional()
83
+ .describe('HTML well-formedness diagnostics (populated for HTML resources only)'),
71
84
  frontmatter: z.record(z.string(), z.unknown()).optional()
72
85
  .describe('Parsed YAML frontmatter (if present in markdown file)'),
73
86
  frontmatterError: z.string().optional()
@@ -78,5 +91,5 @@ export const ResourceMetadataSchema = z.object({
78
91
  checksum: SHA256Schema.describe('SHA-256 checksum of file content'),
79
92
  collections: z.array(z.string()).optional()
80
93
  .describe('Collection names this resource belongs to (populated when using config-based discovery)'),
81
- }).describe('Complete metadata for a markdown resource');
94
+ }).strict().describe('Complete metadata for a markdown resource');
82
95
  //# sourceMappingURL=resource-metadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource-metadata.js","sourceRoot":"","sources":["../../src/schemas/resource-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-metadata.js","sourceRoot":"","sources":["../../src/schemas/resource-metadata.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibe-agent-toolkit/resources",
3
- "version": "0.1.39-rc.1",
3
+ "version": "0.1.39-rc.3",
4
4
  "description": "Markdown resource parsing, validation, and link integrity checking",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -33,12 +33,13 @@
33
33
  "author": "Jeff Dutton",
34
34
  "license": "MIT",
35
35
  "dependencies": {
36
- "@vibe-agent-toolkit/agent-schema": "0.1.39-rc.1",
37
- "@vibe-agent-toolkit/utils": "0.1.39-rc.1",
36
+ "@vibe-agent-toolkit/agent-schema": "0.1.39-rc.3",
37
+ "@vibe-agent-toolkit/utils": "0.1.39-rc.3",
38
38
  "ajv": "^8.17.1",
39
39
  "ajv-formats": "^3.0.1",
40
40
  "github-slugger": "^2.0.0",
41
41
  "markdown-link-check": "^3.14.2",
42
+ "parse5": "^7.2.1",
42
43
  "picomatch": "^4.0.3",
43
44
  "remark-frontmatter": "^5.0.0",
44
45
  "remark-gfm": "^4.0.0",
@@ -21,9 +21,9 @@
21
21
  import { createRegistryIssue, type IssueCode } from '@vibe-agent-toolkit/agent-schema';
22
22
 
23
23
  import { classifyLink } from './link-parser.js';
24
- import { validateLink, type ValidateLinkOptions } from './link-validator.js';
24
+ import { validateLink, type FragmentIndex, type ValidateLinkOptions } from './link-validator.js';
25
25
  import { walkFrontmatterUriReferences } from './schema-uri-walker.js';
26
- import type { HeadingNode, ResourceLink, ValidationIssue } from './types.js';
26
+ import type { ResourceLink, ValidationIssue } from './types.js';
27
27
 
28
28
  /** Map the link-level code emitted by validateLink to its frontmatter-scoped code. */
29
29
  const LINK_CODE_TO_FRONTMATTER_CODE: Partial<Record<IssueCode, IssueCode>> = {
@@ -51,14 +51,14 @@ export interface FrontmatterLinkValidationResult {
51
51
  * @param frontmatter - Parsed frontmatter (or undefined)
52
52
  * @param schema - JSON Schema for the collection
53
53
  * @param sourceFilePath - Absolute path to the source file
54
- * @param headingsByFile - Heading trees (for anchor validation)
54
+ * @param fragmentsByFile - Fragment index (file path → set of valid fragments) for anchor validation
55
55
  * @param options - Same shape as validateLink (projectRoot, gitTracker, ...)
56
56
  */
57
57
  export async function validateFrontmatterLinks(
58
58
  frontmatter: Record<string, unknown> | undefined,
59
59
  schema: object,
60
60
  sourceFilePath: string,
61
- headingsByFile: Map<string, HeadingNode[]>,
61
+ fragmentsByFile: FragmentIndex,
62
62
  options?: ValidateLinkOptions,
63
63
  ): Promise<FrontmatterLinkValidationResult> {
64
64
  if (!frontmatter) return { issues: [], externalUrls: [] };
@@ -89,7 +89,7 @@ export async function validateFrontmatterLinks(
89
89
  line: 1, // Frontmatter per-field line numbers are post-v1.
90
90
  };
91
91
 
92
- const issue = await validateLink(syntheticLink, sourceFilePath, headingsByFile, options);
92
+ const issue = await validateLink(syntheticLink, sourceFilePath, fragmentsByFile, options);
93
93
  if (!issue) continue;
94
94
 
95
95
  issues.push(rewriteIssue(issue, capture.dottedPath));
@@ -0,0 +1,140 @@
1
+ /**
2
+ * HTML resource parser.
3
+ *
4
+ * Parses local HTML files into the shared `ParseResult` shape:
5
+ * - `<a href>` and `<img src>` links (classified by `classifyLink`)
6
+ * - `id` / `name` attributes as fragment anchors
7
+ * - well-formedness diagnostics from parse5's `onParseError`
8
+ *
9
+ * Uses parse5 (WHATWG-conformant). The parse5 document + element walker are
10
+ * exported so the link rewriter (html-transform.ts) shares one parser path.
11
+ *
12
+ * Non-goal: `<base href>` is not honored — relative links are resolved against
13
+ * the file's own directory, not a document base.
14
+ */
15
+
16
+ import { readFile, stat } from 'node:fs/promises';
17
+
18
+ import { parse, type DefaultTreeAdapterMap } from 'parse5';
19
+
20
+ import { classifyLink, type ParseResult } from './link-parser.js';
21
+ import type { HtmlParseError } from './schemas/resource-metadata.js';
22
+ import type { ResourceLink } from './types.js';
23
+
24
+ type P5Node = DefaultTreeAdapterMap['node'];
25
+ type P5Element = DefaultTreeAdapterMap['element'];
26
+ type P5ChildNode = DefaultTreeAdapterMap['childNode'];
27
+
28
+ /** A parsed parse5 document together with any well-formedness diagnostics. */
29
+ export interface HtmlDocument {
30
+ document: DefaultTreeAdapterMap['document'];
31
+ parseErrors: HtmlParseError[];
32
+ }
33
+
34
+ /**
35
+ * Parse an HTML source string with source-location info and collect parser
36
+ * errors. Shared by `parseHtml` (link/anchor extraction) and `rewriteHtmlLinks`
37
+ * (attribute offset splicing).
38
+ */
39
+ export function parseHtmlDocument(source: string): HtmlDocument {
40
+ const parseErrors: HtmlParseError[] = [];
41
+ const document = parse(source, {
42
+ sourceCodeLocationInfo: true,
43
+ onParseError: (err) => {
44
+ // parse5's ParserError extends Location which always has startLine: number.
45
+ // We always include line since it is always present.
46
+ parseErrors.push({ message: err.code, line: err.startLine });
47
+ },
48
+ });
49
+ return { document, parseErrors };
50
+ }
51
+
52
+ /**
53
+ * Depth-first walk yielding every element node in the tree.
54
+ *
55
+ * Deliberate gap: a `<template>` element's content lives in its separate
56
+ * `content` fragment (not `childNodes`), so links inside `<template>` are not
57
+ * walked, and foreign-content (SVG/MathML) subtrees are not special-cased.
58
+ * Both are rare in the content link graph we rewrite.
59
+ */
60
+ export function* walkElements(node: P5Node): Generator<P5Element> {
61
+ if ('tagName' in node) {
62
+ yield node;
63
+ }
64
+ if ('childNodes' in node) {
65
+ for (const child of node.childNodes as P5ChildNode[]) {
66
+ yield* walkElements(child);
67
+ }
68
+ }
69
+ }
70
+
71
+ function getAttr(element: P5Element, name: string): string | undefined {
72
+ return element.attrs.find((a) => a.name === name)?.value;
73
+ }
74
+
75
+ function makeLink(href: string, line: number | undefined): ResourceLink {
76
+ return { text: '', href, type: classifyLink(href), ...(line !== undefined && { line }) };
77
+ }
78
+
79
+ function visitElement(
80
+ element: P5Element,
81
+ links: ResourceLink[],
82
+ anchors: Set<string>,
83
+ ): void {
84
+ const line = element.sourceCodeLocation?.startLine;
85
+
86
+ if (element.tagName === 'a') {
87
+ const href = getAttr(element, 'href');
88
+ if (href !== undefined) {
89
+ links.push(makeLink(href, line));
90
+ }
91
+ const name = getAttr(element, 'name');
92
+ if (name !== undefined && name !== '') {
93
+ anchors.add(name);
94
+ }
95
+ } else if (element.tagName === 'img') {
96
+ const src = getAttr(element, 'src');
97
+ if (src !== undefined) {
98
+ links.push(makeLink(src, line));
99
+ }
100
+ }
101
+
102
+ const id = getAttr(element, 'id');
103
+ if (id !== undefined && id !== '') {
104
+ anchors.add(id);
105
+ }
106
+ }
107
+
108
+ /**
109
+ * Parse an HTML file into a `ParseResult`.
110
+ *
111
+ * @param filePath - Absolute path to the HTML file.
112
+ */
113
+ export async function parseHtml(filePath: string): Promise<ParseResult> {
114
+ const [content, stats] = await Promise.all([
115
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- filePath is a user-provided path parameter
116
+ readFile(filePath, 'utf-8'),
117
+ // eslint-disable-next-line security/detect-non-literal-fs-filename -- filePath is a user-provided path parameter
118
+ stat(filePath),
119
+ ]);
120
+
121
+ const { document, parseErrors } = parseHtmlDocument(content);
122
+
123
+ const links: ResourceLink[] = [];
124
+ const anchors = new Set<string>();
125
+
126
+ for (const element of walkElements(document)) {
127
+ visitElement(element, links, anchors);
128
+ }
129
+
130
+ const anchorList = [...anchors];
131
+ return {
132
+ links,
133
+ headings: [],
134
+ content,
135
+ sizeBytes: stats.size,
136
+ estimatedTokenCount: Math.ceil(content.length / 4),
137
+ ...(anchorList.length > 0 && { anchors: anchorList }),
138
+ ...(parseErrors.length > 0 && { parseErrors }),
139
+ };
140
+ }