@vibe-agent-toolkit/agent-skills 0.1.41-rc.6 → 0.1.41-rc.8
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.
- package/dist/content-type-routing.d.ts +18 -1
- package/dist/content-type-routing.d.ts.map +1 -1
- package/dist/content-type-routing.js +17 -0
- package/dist/content-type-routing.js.map +1 -1
- package/dist/evidence/build-evidence.d.ts +38 -0
- package/dist/evidence/build-evidence.d.ts.map +1 -0
- package/dist/evidence/build-evidence.js +60 -0
- package/dist/evidence/build-evidence.js.map +1 -0
- package/dist/evidence/index.d.ts +1 -0
- package/dist/evidence/index.d.ts.map +1 -1
- package/dist/evidence/index.js +1 -0
- package/dist/evidence/index.js.map +1 -1
- package/dist/files-config.d.ts +18 -2
- package/dist/files-config.d.ts.map +1 -1
- package/dist/files-config.js +62 -22
- package/dist/files-config.js.map +1 -1
- package/dist/index.d.ts +6 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/inventory/detectors/declared-but-missing.d.ts +1 -1
- package/dist/inventory/detectors/declared-but-missing.d.ts.map +1 -1
- package/dist/inventory/detectors/declared-but-missing.js +5 -2
- package/dist/inventory/detectors/declared-but-missing.js.map +1 -1
- package/dist/inventory/detectors/marketplace-source-missing.d.ts +1 -1
- package/dist/inventory/detectors/marketplace-source-missing.d.ts.map +1 -1
- package/dist/inventory/detectors/marketplace-source-missing.js +3 -2
- package/dist/inventory/detectors/marketplace-source-missing.js.map +1 -1
- package/dist/inventory/detectors/present-but-undeclared.d.ts +1 -1
- package/dist/inventory/detectors/present-but-undeclared.d.ts.map +1 -1
- package/dist/inventory/detectors/present-but-undeclared.js +14 -12
- package/dist/inventory/detectors/present-but-undeclared.js.map +1 -1
- package/dist/inventory/detectors/reference-target-missing.d.ts +1 -1
- package/dist/inventory/detectors/reference-target-missing.d.ts.map +1 -1
- package/dist/inventory/detectors/reference-target-missing.js +23 -8
- package/dist/inventory/detectors/reference-target-missing.js.map +1 -1
- package/dist/inventory/serialize.d.ts +28 -5
- package/dist/inventory/serialize.d.ts.map +1 -1
- package/dist/inventory/serialize.js +19 -16
- package/dist/inventory/serialize.js.map +1 -1
- package/dist/plugin-distribution-layout.d.ts.map +1 -1
- package/dist/plugin-distribution-layout.js +2 -3
- package/dist/plugin-distribution-layout.js.map +1 -1
- package/dist/post-build-checks.d.ts +16 -1
- package/dist/post-build-checks.d.ts.map +1 -1
- package/dist/post-build-checks.js +22 -2
- package/dist/post-build-checks.js.map +1 -1
- package/dist/schemas/index.d.ts +3 -3
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +2 -3
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/installed-plugins-registry.d.ts +137 -63
- package/dist/schemas/installed-plugins-registry.d.ts.map +1 -1
- package/dist/schemas/installed-plugins-registry.js +94 -6
- package/dist/schemas/installed-plugins-registry.js.map +1 -1
- package/dist/schemas/known-marketplaces-registry.d.ts +165 -100
- package/dist/schemas/known-marketplaces-registry.d.ts.map +1 -1
- package/dist/schemas/known-marketplaces-registry.js +108 -21
- package/dist/schemas/known-marketplaces-registry.js.map +1 -1
- package/dist/schemas/registry-drift.d.ts +53 -0
- package/dist/schemas/registry-drift.d.ts.map +1 -0
- package/dist/schemas/registry-drift.js +50 -0
- package/dist/schemas/registry-drift.js.map +1 -0
- package/dist/skill-packager.d.ts +94 -5
- package/dist/skill-packager.d.ts.map +1 -1
- package/dist/skill-packager.js +215 -50
- package/dist/skill-packager.js.map +1 -1
- package/dist/skill-source/git-clone.d.ts.map +1 -1
- package/dist/skill-source/git-clone.js +32 -11
- package/dist/skill-source/git-clone.js.map +1 -1
- package/dist/skill-test/eval-inputs.js +2 -2
- package/dist/skill-test/eval-inputs.js.map +1 -1
- package/dist/skill-test/eval-lint.js +2 -2
- package/dist/skill-test/eval-lint.js.map +1 -1
- package/dist/skill-test/grader-prompt.js +2 -2
- package/dist/skill-test/grader-prompt.js.map +1 -1
- package/dist/test-input.d.ts +63 -27
- package/dist/test-input.d.ts.map +1 -1
- package/dist/test-input.js +83 -21
- package/dist/test-input.js.map +1 -1
- package/dist/validators/anchor-root.d.ts +35 -0
- package/dist/validators/anchor-root.d.ts.map +1 -0
- package/dist/validators/anchor-root.js +14 -0
- package/dist/validators/anchor-root.js.map +1 -0
- package/dist/validators/bundled-resource-link-detection.d.ts +22 -4
- package/dist/validators/bundled-resource-link-detection.d.ts.map +1 -1
- package/dist/validators/bundled-resource-link-detection.js +82 -37
- package/dist/validators/bundled-resource-link-detection.js.map +1 -1
- package/dist/validators/compat-detectors.d.ts +9 -4
- package/dist/validators/compat-detectors.d.ts.map +1 -1
- package/dist/validators/compat-detectors.js +18 -30
- package/dist/validators/compat-detectors.js.map +1 -1
- package/dist/validators/cross-skill-dependency-detection.d.ts +2 -1
- package/dist/validators/cross-skill-dependency-detection.d.ts.map +1 -1
- package/dist/validators/cross-skill-dependency-detection.js +8 -4
- package/dist/validators/cross-skill-dependency-detection.js.map +1 -1
- package/dist/validators/frontmatter-validation.d.ts +6 -2
- package/dist/validators/frontmatter-validation.d.ts.map +1 -1
- package/dist/validators/frontmatter-validation.js +36 -20
- package/dist/validators/frontmatter-validation.js.map +1 -1
- package/dist/validators/imperative-body-detection.d.ts +5 -0
- package/dist/validators/imperative-body-detection.d.ts.map +1 -1
- package/dist/validators/imperative-body-detection.js +7 -1
- package/dist/validators/imperative-body-detection.js.map +1 -1
- package/dist/validators/index.d.ts +1 -1
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +1 -1
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/marketplace-validator.d.ts +3 -1
- package/dist/validators/marketplace-validator.d.ts.map +1 -1
- package/dist/validators/marketplace-validator.js +15 -6
- package/dist/validators/marketplace-validator.js.map +1 -1
- package/dist/validators/packaging-validator.d.ts +107 -8
- package/dist/validators/packaging-validator.d.ts.map +1 -1
- package/dist/validators/packaging-validator.js +167 -69
- package/dist/validators/packaging-validator.js.map +1 -1
- package/dist/validators/registry-validator.d.ts +5 -2
- package/dist/validators/registry-validator.d.ts.map +1 -1
- package/dist/validators/registry-validator.js +47 -12
- package/dist/validators/registry-validator.js.map +1 -1
- package/dist/validators/rule-engine/rule-engine.d.ts +15 -2
- package/dist/validators/rule-engine/rule-engine.d.ts.map +1 -1
- package/dist/validators/rule-engine/rule-engine.js +9 -0
- package/dist/validators/rule-engine/rule-engine.js.map +1 -1
- package/dist/validators/skill-validator.d.ts.map +1 -1
- package/dist/validators/skill-validator.js +52 -48
- package/dist/validators/skill-validator.js.map +1 -1
- package/dist/validators/types.d.ts +31 -1
- package/dist/validators/types.d.ts.map +1 -1
- package/dist/validators/unified-validator.d.ts +8 -3
- package/dist/validators/unified-validator.d.ts.map +1 -1
- package/dist/validators/unified-validator.js +44 -33
- package/dist/validators/unified-validator.js.map +1 -1
- package/dist/validators/validation-rules.d.ts +45 -7
- package/dist/validators/validation-rules.d.ts.map +1 -1
- package/dist/validators/validation-rules.js +59 -14
- package/dist/validators/validation-rules.js.map +1 -1
- package/dist/validators/validation-utils.d.ts +0 -8
- package/dist/validators/validation-utils.d.ts.map +1 -1
- package/dist/validators/validation-utils.js +0 -15
- package/dist/validators/validation-utils.js.map +1 -1
- package/dist/validators/walker-to-issues.d.ts +2 -2
- package/dist/validators/walker-to-issues.d.ts.map +1 -1
- package/dist/validators/walker-to-issues.js +33 -13
- package/dist/validators/walker-to-issues.js.map +1 -1
- package/dist/walk-link-graph.d.ts +21 -1
- package/dist/walk-link-graph.d.ts.map +1 -1
- package/dist/walk-link-graph.js +107 -46
- package/dist/walk-link-graph.js.map +1 -1
- package/package.json +5 -5
- package/dist/schemas/plugin-json.d.ts +0 -41
- package/dist/schemas/plugin-json.d.ts.map +0 -1
- package/dist/schemas/plugin-json.js +0 -18
- package/dist/schemas/plugin-json.js.map +0 -1
|
@@ -5,8 +5,25 @@
|
|
|
5
5
|
* file extension. This is the single source of truth for extension→subdirectory
|
|
6
6
|
* mapping, isolated so it can be replaced with config-driven routing later.
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* Target subdirectory categories for packaged skill files.
|
|
10
|
+
*
|
|
11
|
+
* Runtime value, not just a type: every consumer that needs to enumerate the
|
|
12
|
+
* bundled-subdirectory vocabulary (e.g. the bundled-resource link detector)
|
|
13
|
+
* derives it from here so the two can never drift apart.
|
|
14
|
+
*/
|
|
15
|
+
export declare const TARGET_SUBDIR_CATEGORIES: readonly ["resources", "scripts", "templates", "assets"];
|
|
8
16
|
/** Target subdirectory categories for packaged skill files */
|
|
9
|
-
export type TargetSubdirCategory =
|
|
17
|
+
export type TargetSubdirCategory = (typeof TARGET_SUBDIR_CATEGORIES)[number];
|
|
18
|
+
/**
|
|
19
|
+
* Subdirectory the `claude-web` packaging target packs every resource into.
|
|
20
|
+
*
|
|
21
|
+
* Target-specific layout name rather than a content-type routing category —
|
|
22
|
+
* claude-web ignores extension routing and flattens everything into
|
|
23
|
+
* `references/`. Consumers enumerating on-disk bundled subdirectories need
|
|
24
|
+
* this alongside {@link TARGET_SUBDIR_CATEGORIES}.
|
|
25
|
+
*/
|
|
26
|
+
export declare const CLAUDE_WEB_REFERENCES_SUBDIR = "references";
|
|
10
27
|
/** Read-only view of the extension→subdirectory map for inspection/testing */
|
|
11
28
|
export declare const CONTENT_TYPE_ROUTING_MAP: ReadonlyMap<string, TargetSubdirCategory>;
|
|
12
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-type-routing.d.ts","sourceRoot":"","sources":["../src/content-type-routing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,8DAA8D;AAC9D,MAAM,MAAM,oBAAoB,GAAG,
|
|
1
|
+
{"version":3,"file":"content-type-routing.d.ts","sourceRoot":"","sources":["../src/content-type-routing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,0DAA2D,CAAC;AAEjG,8DAA8D;AAC9D,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,wBAAwB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7E;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,eAAe,CAAC;AA4DzD,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAiB,CAAC;AAEjG;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAStE"}
|
|
@@ -6,6 +6,23 @@
|
|
|
6
6
|
* mapping, isolated so it can be replaced with config-driven routing later.
|
|
7
7
|
*/
|
|
8
8
|
import { extname } from 'node:path';
|
|
9
|
+
/**
|
|
10
|
+
* Target subdirectory categories for packaged skill files.
|
|
11
|
+
*
|
|
12
|
+
* Runtime value, not just a type: every consumer that needs to enumerate the
|
|
13
|
+
* bundled-subdirectory vocabulary (e.g. the bundled-resource link detector)
|
|
14
|
+
* derives it from here so the two can never drift apart.
|
|
15
|
+
*/
|
|
16
|
+
export const TARGET_SUBDIR_CATEGORIES = ['resources', 'scripts', 'templates', 'assets'];
|
|
17
|
+
/**
|
|
18
|
+
* Subdirectory the `claude-web` packaging target packs every resource into.
|
|
19
|
+
*
|
|
20
|
+
* Target-specific layout name rather than a content-type routing category —
|
|
21
|
+
* claude-web ignores extension routing and flattens everything into
|
|
22
|
+
* `references/`. Consumers enumerating on-disk bundled subdirectories need
|
|
23
|
+
* this alongside {@link TARGET_SUBDIR_CATEGORIES}.
|
|
24
|
+
*/
|
|
25
|
+
export const CLAUDE_WEB_REFERENCES_SUBDIR = 'references';
|
|
9
26
|
/**
|
|
10
27
|
* Static extension→subdirectory mapping.
|
|
11
28
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-type-routing.js","sourceRoot":"","sources":["../src/content-type-routing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"content-type-routing.js","sourceRoot":"","sources":["../src/content-type-routing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,CAAU,CAAC;AAKjG;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,YAAY,CAAC;AAEzD;;;;;GAKG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAA+B;IAC1D,uBAAuB;IACvB,CAAC,KAAK,EAAE,WAAW,CAAC;IAEpB,UAAU;IACV,CAAC,MAAM,EAAE,SAAS,CAAC;IACnB,CAAC,MAAM,EAAE,SAAS,CAAC;IACnB,CAAC,KAAK,EAAE,SAAS,CAAC;IAClB,CAAC,KAAK,EAAE,SAAS,CAAC;IAClB,CAAC,KAAK,EAAE,SAAS,CAAC;IAClB,CAAC,OAAO,EAAE,SAAS,CAAC;IACpB,CAAC,MAAM,EAAE,SAAS,CAAC;IACnB,CAAC,MAAM,EAAE,SAAS,CAAC;IACnB,CAAC,KAAK,EAAE,SAAS,CAAC;IAClB,CAAC,KAAK,EAAE,SAAS,CAAC;IAClB,CAAC,KAAK,EAAE,SAAS,CAAC;IAElB,YAAY;IACZ,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,WAAW,EAAE,WAAW,CAAC;IAC1B,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,MAAM,EAAE,WAAW,CAAC;IACrB,CAAC,OAAO,EAAE,WAAW,CAAC;IACtB,CAAC,MAAM,EAAE,WAAW,CAAC;IAErB,SAAS;IACT,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,OAAO,EAAE,QAAQ,CAAC;IACnB,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACpB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,MAAM,EAAE,QAAQ,CAAC;IAClB,CAAC,MAAM,EAAE,QAAQ,CAAC;CACnB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,wBAAwB,GAA8C,aAAa,CAAC;AAEjG;;;;;;;;GAQG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;IAE5C,kFAAkF;IAClF,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC;AAC/C,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONE construction site for an `EvidenceRecord`.
|
|
3
|
+
*
|
|
4
|
+
* Every evidence producer — the skill-level compat detectors and the
|
|
5
|
+
* plugin-level marketplace scanners alike — routes through {@link buildEvidence}
|
|
6
|
+
* so that an evidence `location` can only ever be a root-relative POSIX path.
|
|
7
|
+
* Two independent copies of this helper previously existed, each taking a
|
|
8
|
+
* pre-formed `filePath` and trusting it: one was handed absolute skill paths and
|
|
9
|
+
* leaked the developer's home directory into audit output, the other was handed
|
|
10
|
+
* plugin-relative paths and silently anchored them at a base the document never
|
|
11
|
+
* stated. Making the root a REQUIRED parameter and relativizing in here makes
|
|
12
|
+
* both shapes unrepresentable.
|
|
13
|
+
*/
|
|
14
|
+
import type { EvidenceRecord } from './types.js';
|
|
15
|
+
/**
|
|
16
|
+
* Anchor a file path at `locationRoot`, the way {@link buildEvidence} anchors
|
|
17
|
+
* `location.file`.
|
|
18
|
+
*
|
|
19
|
+
* Exported for the one legitimate second use: a producer whose `matchText` names
|
|
20
|
+
* the file it found, which must be spelled identically to the location rather
|
|
21
|
+
* than leaking an absolute path into the rendered message. Do NOT reach for this
|
|
22
|
+
* to hand `buildEvidence` a pre-relativized path — pass the root and let it
|
|
23
|
+
* anchor.
|
|
24
|
+
*/
|
|
25
|
+
export declare function anchorEvidencePath(filePath: string, locationRoot: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Build one evidence record, anchoring its `location.file` at `locationRoot`.
|
|
28
|
+
*
|
|
29
|
+
* @param patternId - Registered pattern ID; asserted against PATTERN_REGISTRY.
|
|
30
|
+
* @param filePath - The file the pattern was seen in. Absolute, or already
|
|
31
|
+
* relative to `locationRoot` — both resolve to the same anchored location.
|
|
32
|
+
* @param locationRoot - The ONE base this run states. Required: "relative to
|
|
33
|
+
* what?" has no safe default (see `issueLocation`).
|
|
34
|
+
* @param matchText - What the detector saw; truncated for display.
|
|
35
|
+
* @param line - 1-based line number, when the producer knows it.
|
|
36
|
+
*/
|
|
37
|
+
export declare function buildEvidence(patternId: string, filePath: string, locationRoot: string, matchText: string, line?: number): EvidenceRecord;
|
|
38
|
+
//# sourceMappingURL=build-evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-evidence.d.ts","sourceRoot":"","sources":["../../src/evidence/build-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAUjD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAIjF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,GACZ,cAAc,CAWhB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ONE construction site for an `EvidenceRecord`.
|
|
3
|
+
*
|
|
4
|
+
* Every evidence producer — the skill-level compat detectors and the
|
|
5
|
+
* plugin-level marketplace scanners alike — routes through {@link buildEvidence}
|
|
6
|
+
* so that an evidence `location` can only ever be a root-relative POSIX path.
|
|
7
|
+
* Two independent copies of this helper previously existed, each taking a
|
|
8
|
+
* pre-formed `filePath` and trusting it: one was handed absolute skill paths and
|
|
9
|
+
* leaked the developer's home directory into audit output, the other was handed
|
|
10
|
+
* plugin-relative paths and silently anchored them at a base the document never
|
|
11
|
+
* stated. Making the root a REQUIRED parameter and relativizing in here makes
|
|
12
|
+
* both shapes unrepresentable.
|
|
13
|
+
*/
|
|
14
|
+
import { issueLocation, safePath } from '@vibe-agent-toolkit/utils';
|
|
15
|
+
import { assertPatternRegistered, getPatternDefinition } from './pattern-registry.js';
|
|
16
|
+
const SNIPPET_MAX = 120;
|
|
17
|
+
/** Truncate a matched fragment to a display-safe length. */
|
|
18
|
+
function snippet(s) {
|
|
19
|
+
const trimmed = s.trim();
|
|
20
|
+
return trimmed.length <= SNIPPET_MAX ? trimmed : `${trimmed.slice(0, SNIPPET_MAX - 1)}…`;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Anchor a file path at `locationRoot`, the way {@link buildEvidence} anchors
|
|
24
|
+
* `location.file`.
|
|
25
|
+
*
|
|
26
|
+
* Exported for the one legitimate second use: a producer whose `matchText` names
|
|
27
|
+
* the file it found, which must be spelled identically to the location rather
|
|
28
|
+
* than leaking an absolute path into the rendered message. Do NOT reach for this
|
|
29
|
+
* to hand `buildEvidence` a pre-relativized path — pass the root and let it
|
|
30
|
+
* anchor.
|
|
31
|
+
*/
|
|
32
|
+
export function anchorEvidencePath(filePath, locationRoot) {
|
|
33
|
+
// resolve() first so an already-relative filePath round-trips unchanged and an
|
|
34
|
+
// absolute one is re-based, rather than each caller guessing which it holds.
|
|
35
|
+
return issueLocation(safePath.resolve(locationRoot, filePath), locationRoot);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Build one evidence record, anchoring its `location.file` at `locationRoot`.
|
|
39
|
+
*
|
|
40
|
+
* @param patternId - Registered pattern ID; asserted against PATTERN_REGISTRY.
|
|
41
|
+
* @param filePath - The file the pattern was seen in. Absolute, or already
|
|
42
|
+
* relative to `locationRoot` — both resolve to the same anchored location.
|
|
43
|
+
* @param locationRoot - The ONE base this run states. Required: "relative to
|
|
44
|
+
* what?" has no safe default (see `issueLocation`).
|
|
45
|
+
* @param matchText - What the detector saw; truncated for display.
|
|
46
|
+
* @param line - 1-based line number, when the producer knows it.
|
|
47
|
+
*/
|
|
48
|
+
export function buildEvidence(patternId, filePath, locationRoot, matchText, line) {
|
|
49
|
+
assertPatternRegistered(patternId);
|
|
50
|
+
const def = getPatternDefinition(patternId);
|
|
51
|
+
const file = anchorEvidencePath(filePath, locationRoot);
|
|
52
|
+
return {
|
|
53
|
+
source: 'code',
|
|
54
|
+
patternId,
|
|
55
|
+
location: line === undefined ? { file } : { file, line },
|
|
56
|
+
matchText: snippet(matchText),
|
|
57
|
+
confidence: def?.confidence ?? 'medium',
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=build-evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-evidence.js","sourceRoot":"","sources":["../../src/evidence/build-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGtF,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,4DAA4D;AAC5D,SAAS,OAAO,CAAC,CAAS;IACxB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACzB,OAAO,OAAO,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC;AAC3F,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,YAAoB;IACvE,+EAA+E;IAC/E,6EAA6E;IAC7E,OAAO,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,YAAY,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAiB,EACjB,QAAgB,EAChB,YAAoB,EACpB,SAAiB,EACjB,IAAa;IAEb,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACnC,MAAM,GAAG,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,kBAAkB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACxD,OAAO;QACL,MAAM,EAAE,MAAM;QACd,SAAS;QACT,QAAQ,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;QACxD,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC;QAC7B,UAAU,EAAE,GAAG,EAAE,UAAU,IAAI,QAAQ;KACxC,CAAC;AACJ,CAAC"}
|
package/dist/evidence/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export type { EvidenceRecord, EvidenceSource, EvidenceConfidence, EvidenceLocation, PatternDefinition, Observation, } from './types.js';
|
|
2
2
|
export { PATTERN_REGISTRY, getPatternDefinition, assertPatternRegistered, } from './pattern-registry.js';
|
|
3
|
+
export { anchorEvidencePath, buildEvidence } from './build-evidence.js';
|
|
3
4
|
export { deriveObservationsFromEvidence, EXTERNAL_CLI_BINARIES, type DeriveObservationsOptions, type DerivationSubject, } from './derive-observations.js';
|
|
4
5
|
export { detectInterpreter, extractMcpCommandFromMatchText, } from './interpreter-detection.js';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evidence/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/evidence/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,iBAAiB,GACvB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC"}
|
package/dist/evidence/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { PATTERN_REGISTRY, getPatternDefinition, assertPatternRegistered, } from './pattern-registry.js';
|
|
2
|
+
export { anchorEvidencePath, buildEvidence } from './build-evidence.js';
|
|
2
3
|
export { deriveObservationsFromEvidence, EXTERNAL_CLI_BINARIES, } from './derive-observations.js';
|
|
3
4
|
export { detectInterpreter, extractMcpCommandFromMatchText, } from './interpreter-detection.js';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evidence/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,GAGtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/evidence/index.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EACL,8BAA8B,EAC9B,qBAAqB,GAGtB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,iBAAiB,EACjB,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC"}
|
package/dist/files-config.d.ts
CHANGED
|
@@ -17,6 +17,18 @@ export interface FilesMatchResult {
|
|
|
17
17
|
/** The matching files entry */
|
|
18
18
|
entry: SkillFileEntry;
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Normalize a relative path for comparison: forward slashes, no leading `./`.
|
|
22
|
+
* The path's ROOT is the caller's business; this only fixes the spelling.
|
|
23
|
+
*
|
|
24
|
+
* Exported because it is the spelling every `files:` dest returned by
|
|
25
|
+
* {@link applyFilesConfig} is normalized to, and that spelling must equal the one
|
|
26
|
+
* `checkUnreferencedFiles` computes for a packaged file
|
|
27
|
+
* (`toForwardSlash(safePath.relative(outputDir, file))`) — both are
|
|
28
|
+
* skill-output-relative. A silent mismatch there reads as "not declared in
|
|
29
|
+
* `files:` config" about a copy VAT performed itself.
|
|
30
|
+
*/
|
|
31
|
+
export declare function normalizeRelPath(p: string): string;
|
|
20
32
|
/**
|
|
21
33
|
* Merge defaults and per-skill files entries.
|
|
22
34
|
*
|
|
@@ -52,8 +64,12 @@ export interface ApplyFilesConfigOptions {
|
|
|
52
64
|
/** Absolute skill output dir; each `dest` resolves relative to it. */
|
|
53
65
|
skillOutputDir: string;
|
|
54
66
|
/**
|
|
55
|
-
* Absolute source paths already materialized by link traversal
|
|
56
|
-
*
|
|
67
|
+
* Absolute source paths already materialized by link traversal.
|
|
68
|
+
*
|
|
69
|
+
* Used only by NON-GLOB entries, where the packager's path map guarantees the
|
|
70
|
+
* bundled copy already sits at `entry.dest`, so re-copying is pure duplication.
|
|
71
|
+
* Glob entries carry no such guarantee and copy unconditionally — see
|
|
72
|
+
* {@link copyGlobEntry}. Defaults to none (copy all).
|
|
57
73
|
*/
|
|
58
74
|
bundledFiles?: string[];
|
|
59
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files-config.d.ts","sourceRoot":"","sources":["../src/files-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAYpE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAapE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,+BAA+B;IAC/B,KAAK,EAAE,cAAc,CAAC;CACvB;
|
|
1
|
+
{"version":3,"file":"files-config.d.ts","sourceRoot":"","sources":["../src/files-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAYpE,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAapE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,8CAA8C;IAC9C,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IACzB,+BAA+B;IAC/B,KAAK,EAAE,cAAc,CAAC;CACvB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAMlD;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,cAAc,EAAE,GAAG,SAAS,EACtC,QAAQ,EAAE,cAAc,EAAE,GAAG,SAAS,GACrC,cAAc,EAAE,CA6ClB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,cAAc,EAAE,GACtB,gBAAgB,GAAG,IAAI,CAiCzB;AAED,4CAA4C;AAC5C,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,sEAAsE;IACtE,cAAc,EAAE,MAAM,CAAC;IACvB;;;;;;;OAOG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAC9C,IAAI,CAgBN;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAyBf;AAwMD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAYvF"}
|
package/dist/files-config.js
CHANGED
|
@@ -33,9 +33,17 @@ export function buildArtifactHint(source) {
|
|
|
33
33
|
return '';
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
|
-
* Normalize a path for comparison:
|
|
36
|
+
* Normalize a relative path for comparison: forward slashes, no leading `./`.
|
|
37
|
+
* The path's ROOT is the caller's business; this only fixes the spelling.
|
|
38
|
+
*
|
|
39
|
+
* Exported because it is the spelling every `files:` dest returned by
|
|
40
|
+
* {@link applyFilesConfig} is normalized to, and that spelling must equal the one
|
|
41
|
+
* `checkUnreferencedFiles` computes for a packaged file
|
|
42
|
+
* (`toForwardSlash(safePath.relative(outputDir, file))`) — both are
|
|
43
|
+
* skill-output-relative. A silent mismatch there reads as "not declared in
|
|
44
|
+
* `files:` config" about a copy VAT performed itself.
|
|
37
45
|
*/
|
|
38
|
-
function
|
|
46
|
+
export function normalizeRelPath(p) {
|
|
39
47
|
let normalized = toForwardSlash(p);
|
|
40
48
|
if (normalized.startsWith('./')) {
|
|
41
49
|
normalized = normalized.slice(2);
|
|
@@ -55,7 +63,7 @@ export function mergeFilesConfig(defaults, perSkill) {
|
|
|
55
63
|
if (perSkill) {
|
|
56
64
|
const destSet = new Set();
|
|
57
65
|
for (const entry of perSkill) {
|
|
58
|
-
const normalized =
|
|
66
|
+
const normalized = normalizeRelPath(entry.dest);
|
|
59
67
|
if (destSet.has(normalized)) {
|
|
60
68
|
throw new Error(`Duplicate dest in per-skill files config: '${entry.dest}'. ` +
|
|
61
69
|
`Each dest must be unique within a skill's files configuration.`);
|
|
@@ -75,12 +83,12 @@ export function mergeFilesConfig(defaults, perSkill) {
|
|
|
75
83
|
// Build a map of dest → entry from per-skill (these win)
|
|
76
84
|
const perSkillByDest = new Map();
|
|
77
85
|
for (const entry of perSkill) {
|
|
78
|
-
perSkillByDest.set(
|
|
86
|
+
perSkillByDest.set(normalizeRelPath(entry.dest), entry);
|
|
79
87
|
}
|
|
80
88
|
// Start with defaults that aren't overridden
|
|
81
89
|
const merged = [];
|
|
82
90
|
for (const defaultEntry of defaults) {
|
|
83
|
-
const normalizedDest =
|
|
91
|
+
const normalizedDest = normalizeRelPath(defaultEntry.dest);
|
|
84
92
|
if (!perSkillByDest.has(normalizedDest)) {
|
|
85
93
|
merged.push(defaultEntry);
|
|
86
94
|
}
|
|
@@ -106,7 +114,7 @@ export function mergeFilesConfig(defaults, perSkill) {
|
|
|
106
114
|
* @returns Match result or null if no match
|
|
107
115
|
*/
|
|
108
116
|
export function matchLinkToFiles(linkTarget, files) {
|
|
109
|
-
const normalized =
|
|
117
|
+
const normalized = normalizeRelPath(linkTarget);
|
|
110
118
|
/** True when `candidate` equals `normalized` or is a path-prefix of it. */
|
|
111
119
|
function isPrefixMatch(candidate) {
|
|
112
120
|
return normalized === candidate || normalized.startsWith(candidate + '/');
|
|
@@ -114,24 +122,24 @@ export function matchLinkToFiles(linkTarget, files) {
|
|
|
114
122
|
// Source match has priority (checked before dest across all entries)
|
|
115
123
|
for (const entry of files) {
|
|
116
124
|
if (isGlob(entry.source)) {
|
|
117
|
-
const base =
|
|
125
|
+
const base = normalizeRelPath(staticGlobBase(entry.source));
|
|
118
126
|
if (isPrefixMatch(base)) {
|
|
119
127
|
return { match: 'source', entry };
|
|
120
128
|
}
|
|
121
129
|
}
|
|
122
|
-
else if (
|
|
130
|
+
else if (normalizeRelPath(entry.source) === normalized) {
|
|
123
131
|
return { match: 'source', entry };
|
|
124
132
|
}
|
|
125
133
|
}
|
|
126
134
|
// Then check dest match
|
|
127
135
|
for (const entry of files) {
|
|
128
136
|
if (isGlob(entry.source)) {
|
|
129
|
-
const destBase =
|
|
137
|
+
const destBase = normalizeRelPath(entry.dest);
|
|
130
138
|
if (isPrefixMatch(destBase)) {
|
|
131
139
|
return { match: 'dest', entry };
|
|
132
140
|
}
|
|
133
141
|
}
|
|
134
|
-
else if (
|
|
142
|
+
else if (normalizeRelPath(entry.dest) === normalized) {
|
|
135
143
|
return { match: 'dest', entry };
|
|
136
144
|
}
|
|
137
145
|
}
|
|
@@ -224,13 +232,27 @@ async function copyNonGlobEntry(entry, absoluteSource, skillOutputDir) {
|
|
|
224
232
|
// eslint-disable-next-line security/detect-non-literal-fs-filename -- dest path from validated config
|
|
225
233
|
await mkdir(dirname(absoluteDest), { recursive: true });
|
|
226
234
|
await copyFile(absoluteSource, absoluteDest);
|
|
227
|
-
return { relDest: entry.dest, absSource: absoluteSource, absDest: absoluteDest };
|
|
235
|
+
return { relDest: normalizeRelPath(entry.dest), absSource: absoluteSource, absDest: absoluteDest };
|
|
228
236
|
}
|
|
229
237
|
/**
|
|
230
238
|
* Expand a glob entry, copy all matched files, and return copied rel-dest paths
|
|
231
239
|
* plus source/dest pairs for optional integrity verification.
|
|
240
|
+
*
|
|
241
|
+
* There is deliberately NO bundled-file skip here, unlike {@link applyNonGlobFileEntry}.
|
|
242
|
+
* Both spellings obey one invariant — *after this function runs, every file the
|
|
243
|
+
* entry matches exists at its declared dest and is reported* — but only the
|
|
244
|
+
* non-glob path can satisfy it by skipping: `applyNonGlobEntriesToPathMap`
|
|
245
|
+
* (skill-packager.ts) re-points the path map so link traversal's copy lands AT
|
|
246
|
+
* `entry.dest`, making the skip a pure de-duplication. Glob entries are
|
|
247
|
+
* deliberately absent from that path map (late binding owns their expansion), so
|
|
248
|
+
* traversal drops a link-bundled match at its own resource-named location instead.
|
|
249
|
+
* Skipping the copy here would leave the declared dest subtree short a declared
|
|
250
|
+
* file — silently, and with `integrity: true` silently defeated too, because the
|
|
251
|
+
* skipped file lands in neither `rels` nor the on-disk subtree `verifyDestSet`
|
|
252
|
+
* diffs against. Copying it unconditionally keeps `copied`, `pairs`, and `rels`
|
|
253
|
+
* complete and makes integrity mean what it says.
|
|
232
254
|
*/
|
|
233
|
-
async function copyGlobEntry(entry, projectRoot, skillOutputDir
|
|
255
|
+
async function copyGlobEntry(entry, projectRoot, skillOutputDir) {
|
|
234
256
|
const base = staticGlobBase(entry.source);
|
|
235
257
|
const remainder = globMagicRemainder(entry.source);
|
|
236
258
|
// H2: the static base may legitimately contain leading '..' (the deliberate
|
|
@@ -259,9 +281,7 @@ async function copyGlobEntry(entry, projectRoot, skillOutputDir, bundledFileSet)
|
|
|
259
281
|
// that the rebased dest stays under the skill output dir (write) — H1/H2
|
|
260
282
|
// defense-in-depth against a traversal that slipped past earlier guards.
|
|
261
283
|
const absSource = safePath.joinUnderRoot(absoluteBase, rel);
|
|
262
|
-
|
|
263
|
-
continue;
|
|
264
|
-
const relDest = toForwardSlash(safePath.join(entry.dest, rel));
|
|
284
|
+
const relDest = normalizeRelPath(safePath.join(entry.dest, rel));
|
|
265
285
|
const absDest = safePath.joinUnderRoot(skillOutputDir, entry.dest, rel);
|
|
266
286
|
// eslint-disable-next-line security/detect-non-literal-fs-filename -- dest path from validated config
|
|
267
287
|
await mkdir(dirname(absDest), { recursive: true });
|
|
@@ -281,7 +301,23 @@ async function copyGlobEntry(entry, projectRoot, skillOutputDir, bundledFileSet)
|
|
|
281
301
|
* Claude plugin marketplace build both call it, instead of the latter relying on
|
|
282
302
|
* an external inject script VAT can't see. `source` is resolved the same way the
|
|
283
303
|
* packager does (`resolve(join(projectRoot, source))`, so an absolute-looking
|
|
284
|
-
* source roots UNDER the project).
|
|
304
|
+
* source roots UNDER the project).
|
|
305
|
+
*
|
|
306
|
+
* Returns every skill-output-relative dest path this config accounts for, one per
|
|
307
|
+
* FILE (glob entries expanded), normalized via {@link normalizeRelPath} so each
|
|
308
|
+
* value compares equal to the path `checkUnreferencedFiles` computes for the
|
|
309
|
+
* packaged file. Callers must pass this to the post-build orphan check: a dest
|
|
310
|
+
* declared in `files:` is proof of intent, and a lane that doesn't know the list
|
|
311
|
+
* flags VAT's own copies as files the author forgot to document.
|
|
312
|
+
*
|
|
313
|
+
* ONE invariant, both spellings: when this returns, every file the config matched
|
|
314
|
+
* exists at its declared dest and is reported. A source already materialized by
|
|
315
|
+
* link traversal changes nothing about that answer — it is declared either way,
|
|
316
|
+
* and whether traversal or this copy put the bytes there is an ordering accident.
|
|
317
|
+
* Only the mechanism differs: a non-glob entry's bundled copy already sits AT
|
|
318
|
+
* `entry.dest` (the packager re-points the path map for it), so its copy is
|
|
319
|
+
* skipped as redundant; a glob entry's does not, so it is copied regardless — see
|
|
320
|
+
* {@link copyGlobEntry}.
|
|
285
321
|
*
|
|
286
322
|
* Glob entries (`source` containing `*`, `?`, or `[`) expand late-bound at
|
|
287
323
|
* copy time: all matched files are rebased under `dest` preserving their
|
|
@@ -296,9 +332,9 @@ async function copyGlobEntry(entry, projectRoot, skillOutputDir, bundledFileSet)
|
|
|
296
332
|
* @throws if a declared `source` does not exist — a declared build artifact must
|
|
297
333
|
* be present at copy time (callers that defer existence validate it upstream).
|
|
298
334
|
*/
|
|
299
|
-
/** Copy + optionally integrity-check one GLOB `files:` entry; returns
|
|
300
|
-
async function applyGlobFileEntry(fileEntry, opts
|
|
301
|
-
const { copied, pairs, rels } = await copyGlobEntry(fileEntry, opts.projectRoot, opts.skillOutputDir
|
|
335
|
+
/** Copy + optionally integrity-check one GLOB `files:` entry; returns its declared rel-dests. */
|
|
336
|
+
async function applyGlobFileEntry(fileEntry, opts) {
|
|
337
|
+
const { copied, pairs, rels } = await copyGlobEntry(fileEntry, opts.projectRoot, opts.skillOutputDir);
|
|
302
338
|
if (fileEntry.integrity === true) {
|
|
303
339
|
verifyFilesIntegrity(pairs);
|
|
304
340
|
// Scoped set check: the glob entry owns its dest subtree and the build wiped
|
|
@@ -308,7 +344,7 @@ async function applyGlobFileEntry(fileEntry, opts, bundledFileSet) {
|
|
|
308
344
|
}
|
|
309
345
|
return copied;
|
|
310
346
|
}
|
|
311
|
-
/** Copy + optionally integrity-check one NON-GLOB `files:` entry; returns
|
|
347
|
+
/** Copy + optionally integrity-check one NON-GLOB `files:` entry; returns its declared rel-dests. */
|
|
312
348
|
async function applyNonGlobFileEntry(fileEntry, opts, bundledFileSet) {
|
|
313
349
|
const absoluteSource = safePath.resolve(safePath.join(opts.projectRoot, fileEntry.source));
|
|
314
350
|
if (bundledFileSet.has(toForwardSlash(absoluteSource))) {
|
|
@@ -322,7 +358,11 @@ async function applyNonGlobFileEntry(fileEntry, opts, bundledFileSet) {
|
|
|
322
358
|
const absDest = safePath.joinUnderRoot(opts.skillOutputDir, fileEntry.dest);
|
|
323
359
|
verifyFilesIntegrity([{ absSource: absoluteSource, absDest }]);
|
|
324
360
|
}
|
|
325
|
-
|
|
361
|
+
// The dest is still reported: this function answers "which output paths does
|
|
362
|
+
// `files:` account for," not "which bytes did I move." Whether link traversal
|
|
363
|
+
// or this copy put the file there is an ordering accident, and callers that
|
|
364
|
+
// ask "is this packaged file declared?" must not get a different answer for it.
|
|
365
|
+
return [normalizeRelPath(fileEntry.dest)];
|
|
326
366
|
}
|
|
327
367
|
const { relDest, absSource, absDest } = await copyNonGlobEntry(fileEntry, absoluteSource, opts.skillOutputDir);
|
|
328
368
|
if (fileEntry.integrity === true) {
|
|
@@ -335,7 +375,7 @@ export async function applyFilesConfig(opts) {
|
|
|
335
375
|
const copied = [];
|
|
336
376
|
for (const fileEntry of opts.filesConfig) {
|
|
337
377
|
const entryCopied = isGlob(fileEntry.source)
|
|
338
|
-
? await applyGlobFileEntry(fileEntry, opts
|
|
378
|
+
? await applyGlobFileEntry(fileEntry, opts)
|
|
339
379
|
: await applyNonGlobFileEntry(fileEntry, opts, bundledFileSet);
|
|
340
380
|
copied.push(...entryCopied);
|
|
341
381
|
}
|
package/dist/files-config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files-config.js","sourceRoot":"","sources":["../src/files-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,yBAAyB,EACzB,MAAM,EACN,QAAQ,EACR,cAAc,EACd,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B;;;;;;;;GAQG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;AAEzD,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3E,MAAM,oBAAoB,GACxB,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7E,IAAI,kBAAkB,IAAI,oBAAoB,EAAE,CAAC;QAC/C,OAAO,6FAA6F,CAAC;IACvG,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAUD
|
|
1
|
+
{"version":3,"file":"files-config.js","sourceRoot":"","sources":["../src/files-config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
* Build, validate, and package agent skills in the Agent Skills format
|
|
4
4
|
*/
|
|
5
5
|
export { buildAgentSkill, type BuildOptions, type BuildResult } from './builder.js';
|
|
6
|
-
export { extractH1Title, packageSkill, packageSkills, packagingConfigToPackageOptions, ZipSizeLimitError, type PackageSkillOptions, type PackageSkillResult, type PackagingTarget, type SkillBuildSpec, type SkillMetadata, } from './skill-packager.js';
|
|
6
|
+
export { createProjectRegistry, extractH1Title, packageSkill, packageSkills, packagingConfigToPackageOptions, ZipSizeLimitError, type PackageSkillOptions, type PackageSkillResult, type PackagingTarget, type SkillBuildSpec, type SkillMetadata, type SkillPackageOutcome, } from './skill-packager.js';
|
|
7
7
|
export { walkLinkGraph, type ExcludeRule, type LinkGraphResult, type LinkResolution, type WalkableRegistry, type WalkLinkGraphOptions, } from './walk-link-graph.js';
|
|
8
8
|
export { getTargetSubdir, CONTENT_TYPE_ROUTING_MAP, type TargetSubdirCategory, } from './content-type-routing.js';
|
|
9
9
|
export { applyFilesConfig, mergeFilesConfig, matchLinkToFiles, type ApplyFilesConfigOptions, type FilesMatchResult, } from './files-config.js';
|
|
10
10
|
export { AgentSkillFrontmatterJsonSchema, AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema, type AgentSkillFrontmatter, type VATAgentSkillFrontmatter, } from './schemas/agent-skill-frontmatter.js';
|
|
11
11
|
export { MarketplaceManifestJsonSchema, MarketplaceManifestSchema, type MarketplaceManifest } from './schemas/marketplace-manifest.js';
|
|
12
|
-
export { PluginJsonSchema, type PluginJson } from './schemas/plugin-json.js';
|
|
13
12
|
export { parseFrontmatter, type FrontmatterResult, } from './parsers/frontmatter-parser.js';
|
|
14
13
|
export { readDeclaredSkillName } from './skill-identity.js';
|
|
15
|
-
export {
|
|
14
|
+
export { type AnchorRootOptions, resolveAnchorRoot } from './validators/anchor-root.js';
|
|
15
|
+
export { generateFixSuggestion } from './validators/validation-utils.js';
|
|
16
16
|
export { detectKebabCaseViolation, type KebabCaseSurface } from './validators/kebab-case-detection.js';
|
|
17
17
|
export { detectMissingRecommendedFields } from './validators/plugin-recommended-fields.js';
|
|
18
18
|
export { deriveObservations, observationToIssue, runCompatDetectors, type DetectorOutput, } from './validators/compat-detectors.js';
|
|
@@ -20,7 +20,7 @@ export { validateMarketplace } from './validators/marketplace-validator.js';
|
|
|
20
20
|
export { validateSkill } from './validators/skill-validator.js';
|
|
21
21
|
export { validate, type UnifiedValidateOptions } from './validators/unified-validator.js';
|
|
22
22
|
export { detectResourceFormat, enumerateSurfaces } from './validators/format-detection.js';
|
|
23
|
-
export { crawlAndResolveRegistry, validateSkillForPackaging, type ExcludedReferenceDetail, type PackagingValidationResult, type SkillPackagingConfig, type SkillValidationSharedContext, } from './validators/packaging-validator.js';
|
|
23
|
+
export { activeErrorsOf, activeWarningsOf, crawlAndResolveRegistry, resetPackagingRegistryCache, validateSkillForPackaging, type ExcludedReferenceDetail, type PackagingValidationResult, type SkillPackagingConfig, type SkillValidationSharedContext, } from './validators/packaging-validator.js';
|
|
24
24
|
export { createIssue, NAVIGATION_FILE_PATTERNS, VALIDATION_RULES, VALIDATION_THRESHOLDS, type RuleCategory, type ValidationRule, type ValidationRuleCode, } from './validators/validation-rules.js';
|
|
25
25
|
export type { ValidationResult, ValidateOptions, ResourceFormat, Surface, } from './validators/types.js';
|
|
26
26
|
export { importSkillToAgent, type ImportOptions, type ImportResult, } from './import.js';
|
|
@@ -28,12 +28,12 @@ export { cloneGitSource, type GitCloneResult } from './skill-source/git-clone.js
|
|
|
28
28
|
export { resolveSkillSource, type ResolveSkillSourceOptions } from './skill-source/resolve-skill-source.js';
|
|
29
29
|
export type { SkillSource, ResolvedSkillSource, ResolveSkillSourceContext, } from './skill-source/types.js';
|
|
30
30
|
export type { EvidenceRecord, EvidenceSource, EvidenceConfidence, EvidenceLocation, PatternDefinition, Observation, } from './evidence/index.js';
|
|
31
|
-
export { PATTERN_REGISTRY, getPatternDefinition, assertPatternRegistered, deriveObservationsFromEvidence, } from './evidence/index.js';
|
|
31
|
+
export { PATTERN_REGISTRY, anchorEvidencePath, buildEvidence, getPatternDefinition, assertPatternRegistered, deriveObservationsFromEvidence, } from './evidence/index.js';
|
|
32
32
|
export type { DeriveObservationsOptions, DerivationSubject } from './evidence/index.js';
|
|
33
33
|
export type { AnyInventory, BaseInventory, ComponentRef, DeclaredList, HookRef, InstallInventory, LspRef, MarketplaceInventory, McpRef, ParseError as InventoryParseError, PluginInventory, PluginRef, ResolvedReference, SkillInventory, } from './inventory/index.js';
|
|
34
34
|
export { isInstallInventory, isMarketplaceInventory, isPluginInventory, isSkillInventory, serializeInventory, serializeInventoryShallow, INVENTORY_SCHEMA_VERSION, detectDeclaredButMissing, detectMarketplacePluginSourceMissing, detectPresentButUndeclared, detectReferenceTargetMissing, } from './inventory/index.js';
|
|
35
35
|
export * from './skill-test/index.js';
|
|
36
36
|
export { checkBrokenPackagedLinks } from './post-build-checks.js';
|
|
37
|
-
export { checkPackagedTestInput, packagedFileEntries, resolveTestInputDirs, testInputExcludeRules, type CheckPackagedTestInputInput, } from './test-input.js';
|
|
37
|
+
export { checkPackagedTestInput, packagedFileEntries, resolveTestInputDirs, testInputExcludeRules, type CheckPackagedTestInputInput, type DeclaredEvalSuite, } from './test-input.js';
|
|
38
38
|
export { computeTreeCopiedSkillLocations, findDistributedSkillLocationBySource, getPluginOutputDir, getPluginSourceDir, listPluginSourceSkillDirs, listUntrackedPluginSkillDirs, skillNameToFsPath, type DistributedSkillLocation, } from './plugin-distribution-layout.js';
|
|
39
39
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,+BAA+B,EAC/B,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -3,16 +3,16 @@
|
|
|
3
3
|
* Build, validate, and package agent skills in the Agent Skills format
|
|
4
4
|
*/
|
|
5
5
|
export { buildAgentSkill } from './builder.js';
|
|
6
|
-
export { extractH1Title, packageSkill, packageSkills, packagingConfigToPackageOptions, ZipSizeLimitError, } from './skill-packager.js';
|
|
6
|
+
export { createProjectRegistry, extractH1Title, packageSkill, packageSkills, packagingConfigToPackageOptions, ZipSizeLimitError, } from './skill-packager.js';
|
|
7
7
|
export { walkLinkGraph, } from './walk-link-graph.js';
|
|
8
8
|
export { getTargetSubdir, CONTENT_TYPE_ROUTING_MAP, } from './content-type-routing.js';
|
|
9
9
|
export { applyFilesConfig, mergeFilesConfig, matchLinkToFiles, } from './files-config.js';
|
|
10
10
|
export { AgentSkillFrontmatterJsonSchema, AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema, } from './schemas/agent-skill-frontmatter.js';
|
|
11
11
|
export { MarketplaceManifestJsonSchema, MarketplaceManifestSchema } from './schemas/marketplace-manifest.js';
|
|
12
|
-
export { PluginJsonSchema } from './schemas/plugin-json.js';
|
|
13
12
|
export { parseFrontmatter, } from './parsers/frontmatter-parser.js';
|
|
14
13
|
export { readDeclaredSkillName } from './skill-identity.js';
|
|
15
|
-
export {
|
|
14
|
+
export { resolveAnchorRoot } from './validators/anchor-root.js';
|
|
15
|
+
export { generateFixSuggestion } from './validators/validation-utils.js';
|
|
16
16
|
export { detectKebabCaseViolation } from './validators/kebab-case-detection.js';
|
|
17
17
|
export { detectMissingRecommendedFields } from './validators/plugin-recommended-fields.js';
|
|
18
18
|
export { deriveObservations, observationToIssue, runCompatDetectors, } from './validators/compat-detectors.js';
|
|
@@ -20,14 +20,14 @@ export { validateMarketplace } from './validators/marketplace-validator.js';
|
|
|
20
20
|
export { validateSkill } from './validators/skill-validator.js';
|
|
21
21
|
export { validate } from './validators/unified-validator.js';
|
|
22
22
|
export { detectResourceFormat, enumerateSurfaces } from './validators/format-detection.js';
|
|
23
|
-
export { crawlAndResolveRegistry, validateSkillForPackaging, } from './validators/packaging-validator.js';
|
|
23
|
+
export { activeErrorsOf, activeWarningsOf, crawlAndResolveRegistry, resetPackagingRegistryCache, validateSkillForPackaging, } from './validators/packaging-validator.js';
|
|
24
24
|
export { createIssue, NAVIGATION_FILE_PATTERNS, VALIDATION_RULES, VALIDATION_THRESHOLDS, } from './validators/validation-rules.js';
|
|
25
25
|
export { importSkillToAgent, } from './import.js';
|
|
26
26
|
// Skill source primitives
|
|
27
27
|
export { cloneGitSource } from './skill-source/git-clone.js';
|
|
28
28
|
// Unified skill-source resolution (spec §11c)
|
|
29
29
|
export { resolveSkillSource } from './skill-source/resolve-skill-source.js';
|
|
30
|
-
export { PATTERN_REGISTRY, getPatternDefinition, assertPatternRegistered, deriveObservationsFromEvidence, } from './evidence/index.js';
|
|
30
|
+
export { PATTERN_REGISTRY, anchorEvidencePath, buildEvidence, getPatternDefinition, assertPatternRegistered, deriveObservationsFromEvidence, } from './evidence/index.js';
|
|
31
31
|
export { isInstallInventory, isMarketplaceInventory, isPluginInventory, isSkillInventory, serializeInventory, serializeInventoryShallow, INVENTORY_SCHEMA_VERSION, detectDeclaredButMissing, detectMarketplacePluginSourceMissing, detectPresentButUndeclared, detectReferenceTargetMissing, } from './inventory/index.js';
|
|
32
32
|
export * from './skill-test/index.js';
|
|
33
33
|
export { checkBrokenPackagedLinks } from './post-build-checks.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAuC,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,+BAA+B,EAC/B,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAuC,MAAM,cAAc,CAAC;AAEpF,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,aAAa,EACb,+BAA+B,EAC/B,iBAAiB,GAOlB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,GAMd,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,wBAAwB,GAEzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GAGjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,GAG/B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,6BAA6B,EAAE,yBAAyB,EAA4B,MAAM,mCAAmC,CAAC;AAEvI,OAAO,EACL,gBAAgB,GAEjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAA0B,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,wBAAwB,EAAyB,MAAM,sCAAsC,CAAC;AACvG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAA+B,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC3F,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,GAK1B,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GAItB,MAAM,kCAAkC,CAAC;AAQ1C,OAAO,EACL,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AAErB,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAuB,MAAM,6BAA6B,CAAC;AAElF,8CAA8C;AAC9C,OAAO,EAAE,kBAAkB,EAAkC,MAAM,wCAAwC,CAAC;AAgB5G,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,8BAA8B,GAC/B,MAAM,qBAAqB,CAAC;AAoB7B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,oCAAoC,EACpC,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,cAAc,uBAAuB,CAAC;AAEtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,GAGtB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,+BAA+B,EAC/B,oCAAoC,EACpC,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,iBAAiB,GAElB,MAAM,iCAAiC,CAAC"}
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import type { ValidationIssue } from '@vibe-agent-toolkit/agent-schema';
|
|
9
9
|
import type { PluginInventory } from '../types.js';
|
|
10
|
-
export declare function detectDeclaredButMissing(inv: PluginInventory): ValidationIssue[];
|
|
10
|
+
export declare function detectDeclaredButMissing(inv: PluginInventory, locationRoot: string): ValidationIssue[];
|
|
11
11
|
//# sourceMappingURL=declared-but-missing.d.ts.map
|