@vibe-agent-toolkit/resources 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +223 -1
  2. package/dist/checksum.d.ts +9 -0
  3. package/dist/checksum.d.ts.map +1 -0
  4. package/dist/checksum.js +16 -0
  5. package/dist/checksum.js.map +1 -0
  6. package/dist/index.d.ts +3 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +4 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/resource-collection-interface.d.ts +70 -0
  11. package/dist/resource-collection-interface.d.ts.map +1 -0
  12. package/dist/resource-collection-interface.js +16 -0
  13. package/dist/resource-collection-interface.js.map +1 -0
  14. package/dist/resource-collection.d.ts +87 -0
  15. package/dist/resource-collection.d.ts.map +1 -0
  16. package/dist/resource-collection.js +131 -0
  17. package/dist/resource-collection.js.map +1 -0
  18. package/dist/resource-query.d.ts +136 -0
  19. package/dist/resource-query.d.ts.map +1 -0
  20. package/dist/resource-query.js +153 -0
  21. package/dist/resource-query.js.map +1 -0
  22. package/dist/resource-registry.d.ts +171 -1
  23. package/dist/resource-registry.d.ts.map +1 -1
  24. package/dist/resource-registry.js +249 -30
  25. package/dist/resource-registry.js.map +1 -1
  26. package/dist/schemas/checksum.d.ts +8 -0
  27. package/dist/schemas/checksum.d.ts.map +1 -0
  28. package/dist/schemas/checksum.js +11 -0
  29. package/dist/schemas/checksum.js.map +1 -0
  30. package/dist/schemas/resource-metadata.d.ts +9 -6
  31. package/dist/schemas/resource-metadata.d.ts.map +1 -1
  32. package/dist/schemas/resource-metadata.js +2 -0
  33. package/dist/schemas/resource-metadata.js.map +1 -1
  34. package/dist/schemas/validation-result.d.ts +6 -6
  35. package/dist/types.d.ts +2 -0
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/types.js +1 -1
  38. package/dist/types.js.map +1 -1
  39. package/dist/utils.d.ts +19 -0
  40. package/dist/utils.d.ts.map +1 -1
  41. package/dist/utils.js +38 -0
  42. package/dist/utils.js.map +1 -1
  43. package/package.json +2 -2
  44. package/src/checksum.ts +18 -0
  45. package/src/index.ts +9 -0
  46. package/src/resource-collection-interface.ts +75 -0
  47. package/src/resource-collection.ts +142 -0
  48. package/src/resource-query.ts +175 -0
  49. package/src/resource-registry.ts +281 -35
  50. package/src/schemas/checksum.ts +13 -0
  51. package/src/schemas/resource-metadata.ts +3 -0
  52. package/src/types.ts +4 -0
  53. package/src/utils.ts +43 -0
@@ -8,11 +8,11 @@
8
8
  * - Query capabilities (by path, ID, or glob pattern)
9
9
  */
10
10
  import path from 'node:path';
11
- import { crawlDirectory, toUnixPath } from '@vibe-agent-toolkit/utils';
12
- import picomatch from 'picomatch';
11
+ import { crawlDirectory } from '@vibe-agent-toolkit/utils';
12
+ import { calculateChecksum } from './checksum.js';
13
13
  import { parseMarkdown } from './link-parser.js';
14
14
  import { validateLink } from './link-validator.js';
15
- import { splitHrefAnchor } from './utils.js';
15
+ import { matchesGlobPattern, splitHrefAnchor } from './utils.js';
16
16
  /**
17
17
  * Resource registry for managing collections of markdown resources.
18
18
  *
@@ -43,12 +43,95 @@ import { splitHrefAnchor } from './utils.js';
43
43
  * ```
44
44
  */
45
45
  export class ResourceRegistry {
46
+ /** Optional root directory for resources */
47
+ rootDir;
46
48
  resourcesByPath = new Map();
47
49
  resourcesById = new Map();
50
+ resourcesByName = new Map();
51
+ resourcesByChecksum = new Map();
48
52
  validateOnAdd;
49
53
  constructor(options) {
54
+ if (options?.rootDir !== undefined) {
55
+ this.rootDir = options.rootDir;
56
+ }
50
57
  this.validateOnAdd = options?.validateOnAdd ?? false;
51
58
  }
59
+ /**
60
+ * Create an empty registry with a root directory.
61
+ *
62
+ * @param rootDir - Root directory for resources
63
+ * @param options - Additional options
64
+ * @returns New empty registry
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const registry = ResourceRegistry.empty('/project/docs');
69
+ * console.log(registry.rootDir); // '/project/docs'
70
+ * console.log(registry.size()); // 0
71
+ * ```
72
+ */
73
+ static empty(rootDir, options) {
74
+ return new ResourceRegistry({ ...options, rootDir });
75
+ }
76
+ /**
77
+ * Create a registry from an existing array of resources.
78
+ *
79
+ * Initializes all indexes (by path, ID, name, checksum) from the provided resources.
80
+ *
81
+ * @param rootDir - Root directory for resources
82
+ * @param resources - Array of resource metadata
83
+ * @param options - Additional options
84
+ * @returns New registry with resources
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * const resources = [resource1, resource2];
89
+ * const registry = ResourceRegistry.fromResources('/project', resources);
90
+ * console.log(`Created registry with ${registry.size()} resources`);
91
+ * ```
92
+ */
93
+ static fromResources(rootDir, resources, options) {
94
+ const registry = new ResourceRegistry({ ...options, rootDir });
95
+ // Add all resources to indexes
96
+ for (const resource of resources) {
97
+ // Add to path index
98
+ registry.resourcesByPath.set(resource.filePath, resource);
99
+ // Add to ID index
100
+ registry.resourcesById.set(resource.id, resource);
101
+ // Add to name index
102
+ const filename = path.basename(resource.filePath);
103
+ const existingByName = registry.resourcesByName.get(filename) ?? [];
104
+ registry.resourcesByName.set(filename, [...existingByName, resource]);
105
+ // Add to checksum index
106
+ const existingByChecksum = registry.resourcesByChecksum.get(resource.checksum) ?? [];
107
+ registry.resourcesByChecksum.set(resource.checksum, [...existingByChecksum, resource]);
108
+ }
109
+ return registry;
110
+ }
111
+ /**
112
+ * Create a registry by crawling a directory.
113
+ *
114
+ * Combines registry creation and directory crawling in a single operation.
115
+ *
116
+ * @param crawlOptions - Crawl options including baseDir
117
+ * @param registryOptions - Additional registry options
118
+ * @returns New registry with crawled resources
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const registry = await ResourceRegistry.fromCrawl({
123
+ * baseDir: '/project/docs',
124
+ * include: ['**.md'],
125
+ * exclude: ['node_modules'],
126
+ * });
127
+ * console.log(`Crawled ${registry.size()} resources`);
128
+ * ```
129
+ */
130
+ static async fromCrawl(crawlOptions, registryOptions) {
131
+ const registry = new ResourceRegistry({ ...registryOptions, rootDir: crawlOptions.baseDir });
132
+ await registry.crawl(crawlOptions);
133
+ return registry;
134
+ }
52
135
  /**
53
136
  * Add a single resource to the registry.
54
137
  *
@@ -75,6 +158,8 @@ export class ResourceRegistry {
75
158
  // Get file modified time
76
159
  const fs = await import('node:fs/promises');
77
160
  const stats = await fs.stat(absolutePath);
161
+ // Calculate checksum eagerly
162
+ const checksum = await calculateChecksum(absolutePath);
78
163
  // Create resource metadata
79
164
  const resource = {
80
165
  id,
@@ -84,10 +169,10 @@ export class ResourceRegistry {
84
169
  sizeBytes: parseResult.sizeBytes,
85
170
  estimatedTokenCount: parseResult.estimatedTokenCount,
86
171
  modifiedAt: stats.mtime,
172
+ checksum,
87
173
  };
88
- // Store in both maps
89
- this.resourcesByPath.set(absolutePath, resource);
90
- this.resourcesById.set(id, resource);
174
+ // Index the resource
175
+ this.indexResource(resource);
91
176
  // Validate if requested
92
177
  if (this.validateOnAdd) {
93
178
  const headingsByFile = this.buildHeadingsByFileMap();
@@ -295,6 +380,47 @@ export class ResourceRegistry {
295
380
  getAllResources() {
296
381
  return [...this.resourcesByPath.values()];
297
382
  }
383
+ /**
384
+ * Get resources by filename (basename).
385
+ *
386
+ * Returns all resources with the given filename, regardless of directory.
387
+ * Useful for finding duplicate filenames or locating files by name.
388
+ *
389
+ * @param name - Filename to search for (e.g., 'README.md')
390
+ * @returns Array of resources with matching filename (empty if none found)
391
+ *
392
+ * @example
393
+ * ```typescript
394
+ * // Find all README.md files
395
+ * const readmes = registry.getResourcesByName('README.md');
396
+ * console.log(`Found ${readmes.length} README files`);
397
+ * ```
398
+ */
399
+ getResourcesByName(name) {
400
+ return this.resourcesByName.get(name) ?? [];
401
+ }
402
+ /**
403
+ * Get resources by checksum.
404
+ *
405
+ * Returns all resources with identical content (same SHA-256 hash).
406
+ * Useful for detecting duplicate content across different files.
407
+ *
408
+ * @param checksum - SHA-256 checksum to search for
409
+ * @returns Array of resources with matching checksum (empty if none found)
410
+ *
411
+ * @example
412
+ * ```typescript
413
+ * const resource = registry.getResource('./docs/README.md');
414
+ * const duplicates = registry.getResourcesByChecksum(resource.checksum);
415
+ * if (duplicates.length > 1) {
416
+ * console.log('Found duplicate content in:');
417
+ * duplicates.forEach(r => console.log(` ${r.filePath}`));
418
+ * }
419
+ * ```
420
+ */
421
+ getResourcesByChecksum(checksum) {
422
+ return this.resourcesByChecksum.get(checksum) ?? [];
423
+ }
298
424
  /**
299
425
  * Get resources matching a glob pattern.
300
426
  *
@@ -312,30 +438,7 @@ export class ResourceRegistry {
312
438
  * ```
313
439
  */
314
440
  getResourcesByPattern(pattern) {
315
- // Create matchers:
316
- // 1. matchBase: true for simple filename patterns (e.g., '*.md', '**/file.md')
317
- const matcherWithBase = picomatch(pattern, { matchBase: true });
318
- // 2. matchBase: false for testing against path segments
319
- const matcher = picomatch(pattern);
320
- return [...this.resourcesByPath.values()].filter((resource) => {
321
- const unixPath = toUnixPath(resource.filePath);
322
- // Strategy 1: Try with matchBase for simple filename matching
323
- if (matcherWithBase(unixPath)) {
324
- return true;
325
- }
326
- // Strategy 2: For directory patterns like '**/subdir/**', try matching
327
- // against progressively longer path segments from the end
328
- const segments = unixPath.split('/');
329
- // Try matching the last 10, 9, 8, ... segments
330
- // This allows patterns like '**/subdir/**' to match paths ending in '.../subdir/file.md'
331
- for (let i = Math.min(10, segments.length); i > 0; i--) {
332
- const partialPath = segments.slice(-i).join('/');
333
- if (matcher(partialPath)) {
334
- return true;
335
- }
336
- }
337
- return false;
338
- });
441
+ return [...this.resourcesByPath.values()].filter((resource) => matchesGlobPattern(resource.filePath, pattern));
339
442
  }
340
443
  /**
341
444
  * Clear all resources from the registry.
@@ -349,6 +452,88 @@ export class ResourceRegistry {
349
452
  clear() {
350
453
  this.resourcesByPath.clear();
351
454
  this.resourcesById.clear();
455
+ this.resourcesByName.clear();
456
+ this.resourcesByChecksum.clear();
457
+ }
458
+ /**
459
+ * Get the number of resources in the registry.
460
+ *
461
+ * @returns Number of resources
462
+ *
463
+ * @example
464
+ * ```typescript
465
+ * console.log(`Registry has ${registry.size()} resources`);
466
+ * ```
467
+ */
468
+ size() {
469
+ return this.resourcesByPath.size;
470
+ }
471
+ /**
472
+ * Check if the registry is empty.
473
+ *
474
+ * @returns True if the registry has no resources
475
+ *
476
+ * @example
477
+ * ```typescript
478
+ * if (registry.isEmpty()) {
479
+ * console.log('No resources yet');
480
+ * }
481
+ * ```
482
+ */
483
+ isEmpty() {
484
+ return this.resourcesByPath.size === 0;
485
+ }
486
+ /**
487
+ * Get groups of duplicate resources based on checksum.
488
+ *
489
+ * Returns an array where each element is an array of resources
490
+ * that have the same checksum (i.e., identical content).
491
+ * Only groups with 2+ resources are included.
492
+ *
493
+ * @returns Array of duplicate groups
494
+ *
495
+ * @example
496
+ * ```typescript
497
+ * const duplicates = registry.getDuplicates();
498
+ * for (const group of duplicates) {
499
+ * console.log(`Found ${group.length} duplicates:`);
500
+ * for (const resource of group) {
501
+ * console.log(` - ${resource.filePath}`);
502
+ * }
503
+ * }
504
+ * ```
505
+ */
506
+ getDuplicates() {
507
+ const duplicateGroups = [];
508
+ for (const group of this.resourcesByChecksum.values()) {
509
+ if (group.length >= 2) {
510
+ duplicateGroups.push(group);
511
+ }
512
+ }
513
+ return duplicateGroups;
514
+ }
515
+ /**
516
+ * Get one representative resource for each unique checksum.
517
+ *
518
+ * When multiple resources have the same checksum, only the first
519
+ * one encountered is included in the result.
520
+ *
521
+ * @returns Array of unique resources (one per checksum)
522
+ *
523
+ * @example
524
+ * ```typescript
525
+ * const unique = registry.getUniqueByChecksum();
526
+ * console.log(`${unique.length} unique resources by content`);
527
+ * ```
528
+ */
529
+ getUniqueByChecksum() {
530
+ const unique = [];
531
+ for (const group of this.resourcesByChecksum.values()) {
532
+ if (group[0]) {
533
+ unique.push(group[0]);
534
+ }
535
+ }
536
+ return unique;
352
537
  }
353
538
  /**
354
539
  * Get statistics about the resources in the registry.
@@ -415,6 +600,40 @@ export class ResourceRegistry {
415
600
  }
416
601
  return map;
417
602
  }
603
+ /**
604
+ * Add a resource to all indexes.
605
+ *
606
+ * Indexes maintained:
607
+ * - byPath: Single resource per absolute path (Map)
608
+ * - byId: Single resource per unique ID (Map)
609
+ * - byName: Multiple resources per filename (Map<string, Array>)
610
+ * - byChecksum: Multiple resources per content hash (Map<SHA256, Array>)
611
+ *
612
+ * @param resource - Resource to index
613
+ */
614
+ indexResource(resource) {
615
+ // Index by path (1:1)
616
+ this.resourcesByPath.set(resource.filePath, resource);
617
+ // Index by ID (1:1)
618
+ this.resourcesById.set(resource.id, resource);
619
+ // Index by name (1:many)
620
+ const name = path.basename(resource.filePath);
621
+ const nameArray = this.resourcesByName.get(name);
622
+ if (nameArray) {
623
+ nameArray.push(resource);
624
+ }
625
+ else {
626
+ this.resourcesByName.set(name, [resource]);
627
+ }
628
+ // Index by checksum (1:many)
629
+ const checksumArray = this.resourcesByChecksum.get(resource.checksum);
630
+ if (checksumArray) {
631
+ checksumArray.push(resource);
632
+ }
633
+ else {
634
+ this.resourcesByChecksum.set(resource.checksum, [resource]);
635
+ }
636
+ }
418
637
  /**
419
638
  * Resolve a relative link href to an absolute file path.
420
639
  *
@@ -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":"AAAA;;;;;;;;GAQG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,cAAc,EAA0C,MAAM,2BAA2B,CAAC;AAEnG,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmCjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,OAAO,gBAAgB;IAC3B,4CAA4C;IACnC,OAAO,CAAU;IAET,eAAe,GAAkC,IAAI,GAAG,EAAE,CAAC;IAC3D,aAAa,GAAkC,IAAI,GAAG,EAAE,CAAC;IACzD,eAAe,GAAoC,IAAI,GAAG,EAAE,CAAC;IAC7D,mBAAmB,GAAoC,IAAI,GAAG,EAAE,CAAC;IACjE,aAAa,CAAU;IAExC,YAAY,OAAiC;QAC3C,IAAI,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,KAAK,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,KAAK,CAAC,OAAe,EAAE,OAAkD;QAC9E,OAAO,IAAI,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,aAAa,CAClB,OAAe,EACf,SAA6B,EAC7B,OAAkD;QAElD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAE/D,+BAA+B;QAC/B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,oBAAoB;YACpB,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAE1D,kBAAkB;YAClB,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YAElD,oBAAoB;YACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,cAAc,GAAG,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACpE,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,GAAG,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEtE,wBAAwB;YACxB,MAAM,kBAAkB,GAAG,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrF,QAAQ,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,KAAK,CAAC,SAAS,CACpB,YAA0B,EAC1B,eAA0D;QAE1D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7F,MAAM,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,WAAW,CAAC,QAAgB;QAChC,6BAA6B;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5C,0BAA0B;QAC1B,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,CAAC;QAEtD,oCAAoC;QACpC,MAAM,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAE/C,yBAAyB;QACzB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1C,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAEvD,2BAA2B;QAC3B,MAAM,QAAQ,GAAqB;YACjC,EAAE;YACF,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,mBAAmB,EAAE,WAAW,CAAC,mBAAmB;YACpD,UAAU,EAAE,KAAK,CAAC,KAAK;YACvB,QAAQ;SACT,CAAC;QAEF,qBAAqB;QACrB,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAE7B,wBAAwB;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;gBACrE,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,YAAY,CAAC,SAAmB;QACpC,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,KAAK,CAAC,OAAqB;QAC/B,MAAM,EACJ,OAAO,EACP,OAAO,GAAG,CAAC,SAAS,CAAC,EACrB,OAAO,GAAG,CAAC,oBAAoB,EAAE,YAAY,EAAE,YAAY,CAAC,EAC5D,cAAc,GAAG,KAAK,GACvB,GAAG,OAAO,CAAC;QAEZ,yBAAyB;QACzB,MAAM,YAAY,GAAsB;YACtC,OAAO;YACP,OAAO;YACP,OAAO;YACP,cAAc;YACd,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE,IAAI;SAChB,CAAC;QAEF,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,CAAC;QAEjD,sBAAsB;QACtB,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,oCAAoC;QACpC,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAErD,gCAAgC;QAChC,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,sCAAsC;QACtC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAC1E,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;QACvE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;QAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;QAErE,sBAAsB;QACtB,MAAM,WAAW,GAA2B,EAAE,CAAC;QAC/C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAE1C,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI;YACzC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACnD,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAChC,CAAC,CACF;YACD,WAAW;YACX,MAAM;YACN,UAAU;YACV,YAAY;YACZ,SAAS;YACT,MAAM,EAAE,UAAU,KAAK,CAAC;YACxB,UAAU;YACV,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,YAAY;QACV,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;oBAC/B,+BAA+B;oBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBAE9E,2BAA2B;oBAC3B,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAE5D,IAAI,cAAc,EAAE,CAAC;wBACnB,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,EAAE,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,WAAW,CAAC,QAAgB;QAC1B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAU;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;;;;;OAUG;IACH,eAAe;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,kBAAkB,CAAC,IAAY;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,sBAAsB,CAAC,QAAgB;QACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,qBAAqB,CAAC,OAAe;QACnC,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAC5D,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC/C,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;OAWG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACH,aAAa;QACX,MAAM,eAAe,GAAyB,EAAE,CAAC;QACjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,mBAAmB;QACjB,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;gBACb,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,QAAQ;QACN,MAAM,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QACjD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,MAAM,WAAW,GAA2B,EAAE,CAAC;QAE/C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,UAAU,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAClC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,OAAO;YACL,cAAc;YACd,UAAU;YACV,WAAW;SACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;OAUG;IACK,gBAAgB,CAAC,QAAgB;QACvC,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAE5C,sBAAsB;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,uCAAuC;QACvC,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,EAAE,CAAC;YACrD,MAAM,EAAE,CAAC;QACX,CAAC;QAED,OAAO,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACK,sBAAsB;QAC5B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAyB,CAAC;QAC7C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACrD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;;;OAUG;IACK,aAAa,CAAC,QAA0B;QAC9C,sBAAsB;QACtB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAEtD,oBAAoB;QACpB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;QAE9C,yBAAyB;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,CAAC;QAED,6BAA6B;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtE,IAAI,aAAa,EAAE,CAAC;YAClB,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACK,uBAAuB,CAAC,QAAgB,EAAE,cAAsB;QACtE,0BAA0B;QAC1B,MAAM,CAAC,QAAQ,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE7C,8CAA8C;QAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,kBAAkB,CAAC,QAAgB;IAC1C,iCAAiC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjE,yBAAyB;IACzB,iDAAiD;IACjD,0BAA0B;IAC1B,4CAA4C;IAC5C,+BAA+B;IAC/B,OAAO,QAAQ;SACZ,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC;SAC1B,WAAW,EAAE;SACb,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC;SAC5B,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,wCAAwC;SAClE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,sBAAsB;SACxC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB;AAC/C,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * SHA-256 checksum - 64 lowercase hexadecimal characters
4
+ * @example "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
5
+ */
6
+ export declare const SHA256Schema: z.ZodBranded<z.ZodString, "SHA256">;
7
+ export type SHA256 = z.infer<typeof SHA256Schema>;
8
+ //# sourceMappingURL=checksum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../src/schemas/checksum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,YAAY,qCAIP,CAAC;AAEnB,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * SHA-256 checksum - 64 lowercase hexadecimal characters
4
+ * @example "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
5
+ */
6
+ export const SHA256Schema = z
7
+ .string()
8
+ .length(64, 'SHA-256 hash must be exactly 64 characters')
9
+ .regex(/^[a-f0-9]{64}$/, 'SHA-256 hash must contain only lowercase hexadecimal characters')
10
+ .brand('SHA256');
11
+ //# sourceMappingURL=checksum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checksum.js","sourceRoot":"","sources":["../../src/schemas/checksum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,EAAE;KACR,MAAM,CAAC,EAAE,EAAE,4CAA4C,CAAC;KACxD,KAAK,CAAC,gBAAgB,EAAE,iEAAiE,CAAC;KAC1F,KAAK,CAAC,QAAQ,CAAC,CAAC"}
@@ -45,7 +45,7 @@ export declare const ResourceLinkSchema: z.ZodObject<{
45
45
  anchorTarget: z.ZodOptional<z.ZodString>;
46
46
  resolvedId: z.ZodOptional<z.ZodString>;
47
47
  }, "strip", z.ZodTypeAny, {
48
- type: "local_file" | "anchor" | "external" | "email" | "unknown";
48
+ type: "anchor" | "local_file" | "external" | "email" | "unknown";
49
49
  text: string;
50
50
  href: string;
51
51
  line?: number | undefined;
@@ -53,7 +53,7 @@ export declare const ResourceLinkSchema: z.ZodObject<{
53
53
  anchorTarget?: string | undefined;
54
54
  resolvedId?: string | undefined;
55
55
  }, {
56
- type: "local_file" | "anchor" | "external" | "email" | "unknown";
56
+ type: "anchor" | "local_file" | "external" | "email" | "unknown";
57
57
  text: string;
58
58
  href: string;
59
59
  line?: number | undefined;
@@ -80,7 +80,7 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
80
80
  anchorTarget: z.ZodOptional<z.ZodString>;
81
81
  resolvedId: z.ZodOptional<z.ZodString>;
82
82
  }, "strip", z.ZodTypeAny, {
83
- type: "local_file" | "anchor" | "external" | "email" | "unknown";
83
+ type: "anchor" | "local_file" | "external" | "email" | "unknown";
84
84
  text: string;
85
85
  href: string;
86
86
  line?: number | undefined;
@@ -88,7 +88,7 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
88
88
  anchorTarget?: string | undefined;
89
89
  resolvedId?: string | undefined;
90
90
  }, {
91
- type: "local_file" | "anchor" | "external" | "email" | "unknown";
91
+ type: "anchor" | "local_file" | "external" | "email" | "unknown";
92
92
  text: string;
93
93
  href: string;
94
94
  line?: number | undefined;
@@ -100,11 +100,12 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
100
100
  sizeBytes: z.ZodNumber;
101
101
  estimatedTokenCount: z.ZodNumber;
102
102
  modifiedAt: z.ZodDate;
103
+ checksum: z.ZodBranded<z.ZodString, "SHA256">;
103
104
  }, "strip", z.ZodTypeAny, {
104
105
  id: string;
105
106
  filePath: string;
106
107
  links: {
107
- type: "local_file" | "anchor" | "external" | "email" | "unknown";
108
+ type: "anchor" | "local_file" | "external" | "email" | "unknown";
108
109
  text: string;
109
110
  href: string;
110
111
  line?: number | undefined;
@@ -116,11 +117,12 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
116
117
  sizeBytes: number;
117
118
  estimatedTokenCount: number;
118
119
  modifiedAt: Date;
120
+ checksum: string & z.BRAND<"SHA256">;
119
121
  }, {
120
122
  id: string;
121
123
  filePath: string;
122
124
  links: {
123
- type: "local_file" | "anchor" | "external" | "email" | "unknown";
125
+ type: "anchor" | "local_file" | "external" | "email" | "unknown";
124
126
  text: string;
125
127
  href: string;
126
128
  line?: number | undefined;
@@ -132,6 +134,7 @@ export declare const ResourceMetadataSchema: z.ZodObject<{
132
134
  sizeBytes: number;
133
135
  estimatedTokenCount: number;
134
136
  modifiedAt: Date;
137
+ checksum: string;
135
138
  }>;
136
139
  export type ResourceMetadata = z.infer<typeof ResourceMetadataSchema>;
137
140
  //# sourceMappingURL=resource-metadata.d.ts.map
@@ -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;AAExB;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,qEAM4B,CAAC;AAExD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;EAQiB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQqB,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;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,qEAM4B,CAAC;AAExD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;;;;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;;;;;;;;;;;;;;;;;;;;;;;;EAQiB,CAAC;AAEjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASqB,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { z } from 'zod';
2
+ import { SHA256Schema } from './checksum.js';
2
3
  /**
3
4
  * Type of link found in markdown resources.
4
5
  *
@@ -57,5 +58,6 @@ export const ResourceMetadataSchema = z.object({
57
58
  sizeBytes: z.number().int().nonnegative().describe('File size in bytes'),
58
59
  estimatedTokenCount: z.number().int().nonnegative().describe('Estimated token count for LLM context (roughly 1 token per 4 chars)'),
59
60
  modifiedAt: z.date().describe('Last modified timestamp'),
61
+ checksum: SHA256Schema.describe('SHA-256 checksum of file content'),
60
62
  }).describe('Complete metadata for a markdown resource');
61
63
  //# 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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"}
@@ -25,17 +25,17 @@ export declare const ValidationIssueSchema: z.ZodObject<{
25
25
  }, "strip", z.ZodTypeAny, {
26
26
  message: string;
27
27
  type: string;
28
+ link: string;
28
29
  severity: "error" | "warning" | "info";
29
30
  resourcePath: string;
30
- link: string;
31
31
  line?: number | undefined;
32
32
  suggestion?: string | undefined;
33
33
  }, {
34
34
  message: string;
35
35
  type: string;
36
+ link: string;
36
37
  severity: "error" | "warning" | "info";
37
38
  resourcePath: string;
38
- link: string;
39
39
  line?: number | undefined;
40
40
  suggestion?: string | undefined;
41
41
  }>;
@@ -61,17 +61,17 @@ export declare const ValidationResultSchema: z.ZodObject<{
61
61
  }, "strip", z.ZodTypeAny, {
62
62
  message: string;
63
63
  type: string;
64
+ link: string;
64
65
  severity: "error" | "warning" | "info";
65
66
  resourcePath: string;
66
- link: string;
67
67
  line?: number | undefined;
68
68
  suggestion?: string | undefined;
69
69
  }, {
70
70
  message: string;
71
71
  type: string;
72
+ link: string;
72
73
  severity: "error" | "warning" | "info";
73
74
  resourcePath: string;
74
- link: string;
75
75
  line?: number | undefined;
76
76
  suggestion?: string | undefined;
77
77
  }>, "many">;
@@ -85,9 +85,9 @@ export declare const ValidationResultSchema: z.ZodObject<{
85
85
  issues: {
86
86
  message: string;
87
87
  type: string;
88
+ link: string;
88
89
  severity: "error" | "warning" | "info";
89
90
  resourcePath: string;
90
- link: string;
91
91
  line?: number | undefined;
92
92
  suggestion?: string | undefined;
93
93
  }[];
@@ -104,9 +104,9 @@ export declare const ValidationResultSchema: z.ZodObject<{
104
104
  issues: {
105
105
  message: string;
106
106
  type: string;
107
+ link: string;
107
108
  severity: "error" | "warning" | "info";
108
109
  resourcePath: string;
109
- link: string;
110
110
  line?: number | undefined;
111
111
  suggestion?: string | undefined;
112
112
  }[];
package/dist/types.d.ts CHANGED
@@ -10,6 +10,8 @@
10
10
  * import type { ResourceMetadata, ValidationResult } from '@vibe-agent-toolkit/resources';
11
11
  * ```
12
12
  */
13
+ export type { SHA256 } from './schemas/checksum.js';
14
+ export { SHA256Schema } from './schemas/checksum.js';
13
15
  export type { LinkType, HeadingNode, ResourceLink, ResourceMetadata, } from './schemas/resource-metadata.js';
14
16
  export type { ValidationSeverity, ValidationIssue, ValidationResult, } from './schemas/validation-result.js';
15
17
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,gCAAgC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,YAAY,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGrD,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,MAAM,gCAAgC,CAAC;AAGxC,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,gCAAgC,CAAC"}
package/dist/types.js CHANGED
@@ -10,5 +10,5 @@
10
10
  * import type { ResourceMetadata, ValidationResult } from '@vibe-agent-toolkit/resources';
11
11
  * ```
12
12
  */
13
- export {};
13
+ export { SHA256Schema } from './schemas/checksum.js';
14
14
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/utils.d.ts CHANGED
@@ -2,6 +2,25 @@
2
2
  * Internal utility functions for the resources package.
3
3
  * These are not exported from the public API.
4
4
  */
5
+ /**
6
+ * Check if a file path matches a glob pattern.
7
+ *
8
+ * Uses picomatch with Unix-style paths for cross-platform compatibility.
9
+ * Implements two matching strategies:
10
+ * 1. matchBase for simple filename patterns
11
+ * 2. Segment-based matching for directory patterns
12
+ *
13
+ * @param filePath - File path to match (will be normalized to Unix-style)
14
+ * @param pattern - Glob pattern to match against
15
+ * @returns True if the path matches the pattern
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * matchesGlobPattern('/project/docs/README.md', 'docs/**') // true
20
+ * matchesGlobPattern('/project/src/index.ts', '*.md') // false
21
+ * ```
22
+ */
23
+ export declare function matchesGlobPattern(filePath: string, pattern: string): boolean;
5
24
  /**
6
25
  * Split an href into file path and anchor parts.
7
26
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAS1E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAoB7E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAS1E"}