@vibe-agent-toolkit/resources 0.1.29-rc.3 → 0.1.29-rc.4
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.
|
@@ -35,7 +35,7 @@ export interface ResourceLookup {
|
|
|
35
35
|
*
|
|
36
36
|
* A rule matches a link when ALL specified criteria are satisfied:
|
|
37
37
|
* - `type`: Link type matches (if specified)
|
|
38
|
-
* - `pattern`: Target
|
|
38
|
+
* - `pattern`: Target file path matches a glob pattern (if specified)
|
|
39
39
|
* - `excludeResourceIds`: Target resource's ID is NOT in the exclusion list
|
|
40
40
|
*/
|
|
41
41
|
export interface LinkRewriteMatch {
|
|
@@ -45,9 +45,15 @@ export interface LinkRewriteMatch {
|
|
|
45
45
|
*/
|
|
46
46
|
type?: LinkType | LinkType[];
|
|
47
47
|
/**
|
|
48
|
-
* Glob pattern(s) to match against the target
|
|
49
|
-
*
|
|
50
|
-
*
|
|
48
|
+
* Glob pattern(s) to match against the target file path.
|
|
49
|
+
*
|
|
50
|
+
* For resolved links (target resource found in the registry), patterns match
|
|
51
|
+
* against `resource.filePath`. For unresolved links (e.g., terminal links to
|
|
52
|
+
* non-markdown files not indexed by the registry), patterns fall back to
|
|
53
|
+
* matching against the link's raw href. This allows exclude rules to apply
|
|
54
|
+
* to assets like YAML, JSON, or images that markdown files reference.
|
|
55
|
+
*
|
|
56
|
+
* If omitted, matches any path.
|
|
51
57
|
* Can be a single glob string or an array of glob strings.
|
|
52
58
|
*/
|
|
53
59
|
pattern?: string | string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-transform.d.ts","sourceRoot":"","sources":["../src/content-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAmC/F;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC3D;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAE7B
|
|
1
|
+
{"version":3,"file":"content-transform.d.ts","sourceRoot":"","sources":["../src/content-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAmC/F;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,0CAA0C;IAC1C,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC3D;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;OAGG;IACH,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAE7B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAE5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,gBAAgB,CAAC;IAExB;;;;;;;;;;;;;;;;;;OAkBG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,oEAAoE;IACpE,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAEpC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAElC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAElC;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAsLD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,EAAE,uBAAuB,GAC/B,MAAM,CAuHR"}
|
|
@@ -106,22 +106,34 @@ function matchesType(linkType, matchType) {
|
|
|
106
106
|
return linkType === matchType;
|
|
107
107
|
}
|
|
108
108
|
/**
|
|
109
|
-
* Check if a link's target
|
|
109
|
+
* Check if a link's target file path matches the rule's pattern criteria.
|
|
110
110
|
*
|
|
111
|
+
* Uses `resource.filePath` when the link is resolved. Falls back to the link's
|
|
112
|
+
* href (anchor stripped) for unresolved links so rules can target terminal
|
|
113
|
+
* assets — YAML, JSON, images — that the registry does not index.
|
|
114
|
+
*
|
|
115
|
+
* @param link - The link being tested
|
|
111
116
|
* @param resource - The target resource (if resolved)
|
|
112
117
|
* @param patterns - The pattern(s) to match against (or undefined = match all)
|
|
113
118
|
* @returns True if the pattern matches or no pattern is specified
|
|
114
119
|
*/
|
|
115
|
-
function matchesPattern(resource, patterns) {
|
|
120
|
+
function matchesPattern(link, resource, patterns) {
|
|
116
121
|
if (patterns === undefined) {
|
|
117
122
|
return true;
|
|
118
123
|
}
|
|
119
|
-
|
|
124
|
+
let pathToMatch;
|
|
120
125
|
if (resource === undefined) {
|
|
121
|
-
|
|
126
|
+
const [hrefWithoutAnchor] = splitHrefAnchor(link.href);
|
|
127
|
+
if (hrefWithoutAnchor === '') {
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
pathToMatch = hrefWithoutAnchor;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
pathToMatch = resource.filePath;
|
|
122
134
|
}
|
|
123
135
|
const patternArray = Array.isArray(patterns) ? patterns : [patterns];
|
|
124
|
-
return patternArray.some((pattern) => matchesGlobPattern(
|
|
136
|
+
return patternArray.some((pattern) => matchesGlobPattern(pathToMatch, pattern));
|
|
125
137
|
}
|
|
126
138
|
/**
|
|
127
139
|
* Check if a link's resolvedId is excluded by the rule.
|
|
@@ -153,7 +165,7 @@ function findMatchingRule(link, resource, rules) {
|
|
|
153
165
|
if (!matchesType(link.type, match.type)) {
|
|
154
166
|
continue;
|
|
155
167
|
}
|
|
156
|
-
if (!matchesPattern(resource, match.pattern)) {
|
|
168
|
+
if (!matchesPattern(link, resource, match.pattern)) {
|
|
157
169
|
continue;
|
|
158
170
|
}
|
|
159
171
|
if (isExcluded(link.resolvedId, match.excludeResourceIds)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-transform.js","sourceRoot":"","sources":["../src/content-transform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAGrF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE;;GAEG;AACH,MAAM,kBAAkB,GAA2B;IACjD,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,iBAAiB;IACxB,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,iBAAiB;IACzB,OAAO,EAAE,WAAW;IACpB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,YAAY;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAErD;;;;;GAKG;AACH,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IACjD,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,iBAAiB,CAAC;AACtD,CAAC;
|
|
1
|
+
{"version":3,"file":"content-transform.js","sourceRoot":"","sources":["../src/content-transform.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.29-rc.
|
|
3
|
+
"version": "0.1.29-rc.4",
|
|
4
4
|
"description": "Markdown resource parsing, validation, and link integrity checking",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
"author": "Jeff Dutton",
|
|
34
34
|
"license": "MIT",
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@vibe-agent-toolkit/agent-schema": "0.1.29-rc.
|
|
37
|
-
"@vibe-agent-toolkit/utils": "0.1.29-rc.
|
|
36
|
+
"@vibe-agent-toolkit/agent-schema": "0.1.29-rc.4",
|
|
37
|
+
"@vibe-agent-toolkit/utils": "0.1.29-rc.4",
|
|
38
38
|
"ajv": "^8.17.1",
|
|
39
39
|
"github-slugger": "^2.0.0",
|
|
40
40
|
"js-yaml": "^4.1.1",
|
package/src/content-transform.ts
CHANGED
|
@@ -75,7 +75,7 @@ export interface ResourceLookup {
|
|
|
75
75
|
*
|
|
76
76
|
* A rule matches a link when ALL specified criteria are satisfied:
|
|
77
77
|
* - `type`: Link type matches (if specified)
|
|
78
|
-
* - `pattern`: Target
|
|
78
|
+
* - `pattern`: Target file path matches a glob pattern (if specified)
|
|
79
79
|
* - `excludeResourceIds`: Target resource's ID is NOT in the exclusion list
|
|
80
80
|
*/
|
|
81
81
|
export interface LinkRewriteMatch {
|
|
@@ -86,9 +86,15 @@ export interface LinkRewriteMatch {
|
|
|
86
86
|
type?: LinkType | LinkType[];
|
|
87
87
|
|
|
88
88
|
/**
|
|
89
|
-
* Glob pattern(s) to match against the target
|
|
90
|
-
*
|
|
91
|
-
*
|
|
89
|
+
* Glob pattern(s) to match against the target file path.
|
|
90
|
+
*
|
|
91
|
+
* For resolved links (target resource found in the registry), patterns match
|
|
92
|
+
* against `resource.filePath`. For unresolved links (e.g., terminal links to
|
|
93
|
+
* non-markdown files not indexed by the registry), patterns fall back to
|
|
94
|
+
* matching against the link's raw href. This allows exclude rules to apply
|
|
95
|
+
* to assets like YAML, JSON, or images that markdown files reference.
|
|
96
|
+
*
|
|
97
|
+
* If omitted, matches any path.
|
|
92
98
|
* Can be a single glob string or an array of glob strings.
|
|
93
99
|
*/
|
|
94
100
|
pattern?: string | string[];
|
|
@@ -233,13 +239,19 @@ function matchesType(linkType: LinkType, matchType: LinkType | LinkType[] | unde
|
|
|
233
239
|
}
|
|
234
240
|
|
|
235
241
|
/**
|
|
236
|
-
* Check if a link's target
|
|
242
|
+
* Check if a link's target file path matches the rule's pattern criteria.
|
|
243
|
+
*
|
|
244
|
+
* Uses `resource.filePath` when the link is resolved. Falls back to the link's
|
|
245
|
+
* href (anchor stripped) for unresolved links so rules can target terminal
|
|
246
|
+
* assets — YAML, JSON, images — that the registry does not index.
|
|
237
247
|
*
|
|
248
|
+
* @param link - The link being tested
|
|
238
249
|
* @param resource - The target resource (if resolved)
|
|
239
250
|
* @param patterns - The pattern(s) to match against (or undefined = match all)
|
|
240
251
|
* @returns True if the pattern matches or no pattern is specified
|
|
241
252
|
*/
|
|
242
253
|
function matchesPattern(
|
|
254
|
+
link: ResourceLink,
|
|
243
255
|
resource: ResourceMetadata | undefined,
|
|
244
256
|
patterns: string | string[] | undefined,
|
|
245
257
|
): boolean {
|
|
@@ -247,13 +259,19 @@ function matchesPattern(
|
|
|
247
259
|
return true;
|
|
248
260
|
}
|
|
249
261
|
|
|
250
|
-
|
|
262
|
+
let pathToMatch: string;
|
|
251
263
|
if (resource === undefined) {
|
|
252
|
-
|
|
264
|
+
const [hrefWithoutAnchor] = splitHrefAnchor(link.href);
|
|
265
|
+
if (hrefWithoutAnchor === '') {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
pathToMatch = hrefWithoutAnchor;
|
|
269
|
+
} else {
|
|
270
|
+
pathToMatch = resource.filePath;
|
|
253
271
|
}
|
|
254
272
|
|
|
255
273
|
const patternArray = Array.isArray(patterns) ? patterns : [patterns];
|
|
256
|
-
return patternArray.some((pattern) => matchesGlobPattern(
|
|
274
|
+
return patternArray.some((pattern) => matchesGlobPattern(pathToMatch, pattern));
|
|
257
275
|
}
|
|
258
276
|
|
|
259
277
|
/**
|
|
@@ -296,7 +314,7 @@ function findMatchingRule(
|
|
|
296
314
|
continue;
|
|
297
315
|
}
|
|
298
316
|
|
|
299
|
-
if (!matchesPattern(resource, match.pattern)) {
|
|
317
|
+
if (!matchesPattern(link, resource, match.pattern)) {
|
|
300
318
|
continue;
|
|
301
319
|
}
|
|
302
320
|
|