@vibe-agent-toolkit/resources 0.1.29-rc.4 → 0.1.29
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.
|
@@ -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;;;;;;;;;;;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;
|
|
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;AA0LD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,EAAE,uBAAuB,GAC/B,MAAM,CA2HR"}
|
|
@@ -60,9 +60,11 @@ function inferMimeType(filePath) {
|
|
|
60
60
|
* @param resource - The resolved target resource (if available)
|
|
61
61
|
* @param extraContext - Additional context variables
|
|
62
62
|
* @param sourceFilePath - Absolute path of the source document (for relativePath computation)
|
|
63
|
+
* @param rawText - Raw markdown text between the `[` and `]` (with inline formatting preserved).
|
|
64
|
+
* When omitted, `link.rawText` falls back to `link.text`.
|
|
63
65
|
* @returns Template context object
|
|
64
66
|
*/
|
|
65
|
-
function buildTemplateContext(link, hrefWithoutFragment, fragment, resource, extraContext, sourceFilePath) {
|
|
67
|
+
function buildTemplateContext(link, hrefWithoutFragment, fragment, resource, extraContext, sourceFilePath, rawText) {
|
|
66
68
|
const resourceContext = resource === undefined
|
|
67
69
|
? undefined
|
|
68
70
|
: {
|
|
@@ -82,6 +84,7 @@ function buildTemplateContext(link, hrefWithoutFragment, fragment, resource, ext
|
|
|
82
84
|
...extraContext,
|
|
83
85
|
link: {
|
|
84
86
|
text: link.text,
|
|
87
|
+
rawText: rawText ?? link.text,
|
|
85
88
|
href: hrefWithoutFragment,
|
|
86
89
|
fragment,
|
|
87
90
|
type: link.type,
|
|
@@ -243,24 +246,26 @@ export function transformContent(content, links, options) {
|
|
|
243
246
|
return content;
|
|
244
247
|
}
|
|
245
248
|
// === Pass 1: Inline links [text](href) ===
|
|
246
|
-
// Build a lookup map
|
|
247
|
-
//
|
|
248
|
-
//
|
|
249
|
-
|
|
249
|
+
// Build a lookup map keyed by href → ResourceLink. We intentionally key by href
|
|
250
|
+
// rather than "[text](href)" because the regex below captures the RAW markdown
|
|
251
|
+
// text (including backticks, emphasis markers, etc.), while `link.text` is
|
|
252
|
+
// already rendered (formatting stripped). Keying by text causes a signature
|
|
253
|
+
// mismatch for any formatted link text; keying by href avoids that class of
|
|
254
|
+
// bug entirely. When multiple inline links share an href, the first wins —
|
|
255
|
+
// their match criteria (type, resolvedId) are identical for lookup purposes.
|
|
256
|
+
const linkByHref = new Map();
|
|
250
257
|
for (const link of links) {
|
|
251
258
|
if (link.nodeType === 'definition') {
|
|
252
259
|
continue; // Definitions are handled in pass 2
|
|
253
260
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
linkBySignature.set(signature, link);
|
|
261
|
+
if (!linkByHref.has(link.href)) {
|
|
262
|
+
linkByHref.set(link.href, link);
|
|
257
263
|
}
|
|
258
264
|
}
|
|
259
265
|
// Replace inline markdown links in content
|
|
260
|
-
let result = content.replaceAll(MARKDOWN_LINK_REGEX, (fullMatch,
|
|
261
|
-
// Find the corresponding ResourceLink
|
|
262
|
-
const
|
|
263
|
-
const link = linkBySignature.get(signature);
|
|
266
|
+
let result = content.replaceAll(MARKDOWN_LINK_REGEX, (fullMatch, rawText, href) => {
|
|
267
|
+
// Find the corresponding ResourceLink by href
|
|
268
|
+
const link = linkByHref.get(href);
|
|
264
269
|
if (!link) {
|
|
265
270
|
// Link not in the parsed links array - leave untouched
|
|
266
271
|
return fullMatch;
|
|
@@ -280,8 +285,10 @@ export function transformContent(content, links, options) {
|
|
|
280
285
|
// Parse fragment from href
|
|
281
286
|
const [hrefWithoutFragment, anchor] = splitHrefAnchor(href);
|
|
282
287
|
const fragment = anchor === undefined ? '' : `#${anchor}`;
|
|
283
|
-
// Build template context and render
|
|
284
|
-
|
|
288
|
+
// Build template context and render. rawText preserves any inline
|
|
289
|
+
// formatting the author wrote (backticks, bold, italics) so templates
|
|
290
|
+
// targeting bundled links can render the link with original styling.
|
|
291
|
+
const templateContext = buildTemplateContext(link, hrefWithoutFragment, fragment, resource, context, sourceFilePath, rawText);
|
|
285
292
|
return renderTemplate(template, templateContext);
|
|
286
293
|
});
|
|
287
294
|
// === Pass 2: Reference-style definitions [ref]: url ===
|
|
@@ -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;AAqHD
|
|
1
|
+
{"version":3,"file":"content-transform.js","sourceRoot":"","sources":["../src/content-transform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/schemas/project-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,qCAC+B,CAAC;AAEjE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;EASY,CAAC;AAErD,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWiB,CAAC;AAEzD,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO6B,CAAC;AAEjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOuB,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMpE;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;EAGrC,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;EAG5C,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/schemas/project-config.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
|
|
3
|
+
"version": "0.1.29",
|
|
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
|
|
37
|
-
"@vibe-agent-toolkit/utils": "0.1.29
|
|
36
|
+
"@vibe-agent-toolkit/agent-schema": "0.1.29",
|
|
37
|
+
"@vibe-agent-toolkit/utils": "0.1.29",
|
|
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
|
@@ -183,6 +183,8 @@ export interface ContentTransformOptions {
|
|
|
183
183
|
* @param resource - The resolved target resource (if available)
|
|
184
184
|
* @param extraContext - Additional context variables
|
|
185
185
|
* @param sourceFilePath - Absolute path of the source document (for relativePath computation)
|
|
186
|
+
* @param rawText - Raw markdown text between the `[` and `]` (with inline formatting preserved).
|
|
187
|
+
* When omitted, `link.rawText` falls back to `link.text`.
|
|
186
188
|
* @returns Template context object
|
|
187
189
|
*/
|
|
188
190
|
function buildTemplateContext(
|
|
@@ -192,6 +194,7 @@ function buildTemplateContext(
|
|
|
192
194
|
resource: ResourceMetadata | undefined,
|
|
193
195
|
extraContext: Record<string, unknown> | undefined,
|
|
194
196
|
sourceFilePath: string | undefined,
|
|
197
|
+
rawText: string | undefined,
|
|
195
198
|
): Record<string, unknown> {
|
|
196
199
|
const resourceContext = resource === undefined
|
|
197
200
|
? undefined
|
|
@@ -213,6 +216,7 @@ function buildTemplateContext(
|
|
|
213
216
|
...extraContext,
|
|
214
217
|
link: {
|
|
215
218
|
text: link.text,
|
|
219
|
+
rawText: rawText ?? link.text,
|
|
216
220
|
href: hrefWithoutFragment,
|
|
217
221
|
fragment,
|
|
218
222
|
type: link.type,
|
|
@@ -405,25 +409,27 @@ export function transformContent(
|
|
|
405
409
|
|
|
406
410
|
// === Pass 1: Inline links [text](href) ===
|
|
407
411
|
|
|
408
|
-
// Build a lookup map
|
|
409
|
-
//
|
|
410
|
-
//
|
|
411
|
-
|
|
412
|
+
// Build a lookup map keyed by href → ResourceLink. We intentionally key by href
|
|
413
|
+
// rather than "[text](href)" because the regex below captures the RAW markdown
|
|
414
|
+
// text (including backticks, emphasis markers, etc.), while `link.text` is
|
|
415
|
+
// already rendered (formatting stripped). Keying by text causes a signature
|
|
416
|
+
// mismatch for any formatted link text; keying by href avoids that class of
|
|
417
|
+
// bug entirely. When multiple inline links share an href, the first wins —
|
|
418
|
+
// their match criteria (type, resolvedId) are identical for lookup purposes.
|
|
419
|
+
const linkByHref = new Map<string, ResourceLink>();
|
|
412
420
|
for (const link of links) {
|
|
413
421
|
if (link.nodeType === 'definition') {
|
|
414
422
|
continue; // Definitions are handled in pass 2
|
|
415
423
|
}
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
linkBySignature.set(signature, link);
|
|
424
|
+
if (!linkByHref.has(link.href)) {
|
|
425
|
+
linkByHref.set(link.href, link);
|
|
419
426
|
}
|
|
420
427
|
}
|
|
421
428
|
|
|
422
429
|
// Replace inline markdown links in content
|
|
423
|
-
let result = content.replaceAll(MARKDOWN_LINK_REGEX, (fullMatch,
|
|
424
|
-
// Find the corresponding ResourceLink
|
|
425
|
-
const
|
|
426
|
-
const link = linkBySignature.get(signature);
|
|
430
|
+
let result = content.replaceAll(MARKDOWN_LINK_REGEX, (fullMatch, rawText: string, href: string) => {
|
|
431
|
+
// Find the corresponding ResourceLink by href
|
|
432
|
+
const link = linkByHref.get(href);
|
|
427
433
|
|
|
428
434
|
if (!link) {
|
|
429
435
|
// Link not in the parsed links array - leave untouched
|
|
@@ -449,8 +455,10 @@ export function transformContent(
|
|
|
449
455
|
const [hrefWithoutFragment, anchor] = splitHrefAnchor(href);
|
|
450
456
|
const fragment = anchor === undefined ? '' : `#${anchor}`;
|
|
451
457
|
|
|
452
|
-
// Build template context and render
|
|
453
|
-
|
|
458
|
+
// Build template context and render. rawText preserves any inline
|
|
459
|
+
// formatting the author wrote (backticks, bold, italics) so templates
|
|
460
|
+
// targeting bundled links can render the link with original styling.
|
|
461
|
+
const templateContext = buildTemplateContext(link, hrefWithoutFragment, fragment, resource, context, sourceFilePath, rawText);
|
|
454
462
|
return renderTemplate(template, templateContext);
|
|
455
463
|
});
|
|
456
464
|
|