@vibe-agent-toolkit/agent-skills 0.2.0-rc.6 → 0.2.0-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/README.md +5 -5
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +7 -17
- package/dist/builder.js.map +1 -1
- package/dist/content-type-routing.d.ts +32 -0
- package/dist/content-type-routing.d.ts.map +1 -1
- package/dist/content-type-routing.js +23 -0
- package/dist/content-type-routing.js.map +1 -1
- package/dist/files-config.d.ts +2 -2
- package/dist/files-config.d.ts.map +1 -1
- package/dist/files-config.js +1 -7
- package/dist/files-config.js.map +1 -1
- package/dist/import.d.ts.map +1 -1
- package/dist/import.js +0 -4
- package/dist/import.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/inventory/types.d.ts +8 -0
- package/dist/inventory/types.d.ts.map +1 -1
- package/dist/inventory/types.js.map +1 -1
- package/dist/parsers/frontmatter-parser.d.ts.map +1 -1
- package/dist/parsers/frontmatter-parser.js +30 -6
- package/dist/parsers/frontmatter-parser.js.map +1 -1
- package/dist/plugin-distribution-layout.d.ts.map +1 -1
- package/dist/plugin-distribution-layout.js +13 -2
- package/dist/plugin-distribution-layout.js.map +1 -1
- package/dist/post-build-checks.d.ts +9 -1
- package/dist/post-build-checks.d.ts.map +1 -1
- package/dist/post-build-checks.js +21 -13
- package/dist/post-build-checks.js.map +1 -1
- package/dist/schemas/allowed-tools.d.ts +31 -0
- package/dist/schemas/allowed-tools.d.ts.map +1 -0
- package/dist/schemas/allowed-tools.js +88 -0
- package/dist/schemas/allowed-tools.js.map +1 -0
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/installed-plugins-registry.d.ts.map +1 -1
- package/dist/schemas/installed-plugins-registry.js +7 -1
- package/dist/schemas/installed-plugins-registry.js.map +1 -1
- package/dist/schemas/marketplace-manifest.d.ts.map +1 -1
- package/dist/schemas/marketplace-manifest.js +17 -6
- package/dist/schemas/marketplace-manifest.js.map +1 -1
- package/dist/skill-identity.d.ts +8 -3
- package/dist/skill-identity.d.ts.map +1 -1
- package/dist/skill-identity.js +13 -6
- package/dist/skill-identity.js.map +1 -1
- package/dist/skill-packager.d.ts +87 -14
- package/dist/skill-packager.d.ts.map +1 -1
- package/dist/skill-packager.js +200 -72
- package/dist/skill-packager.js.map +1 -1
- package/dist/skill-source/content-hash.d.ts.map +1 -1
- package/dist/skill-source/content-hash.js +21 -10
- package/dist/skill-source/content-hash.js.map +1 -1
- package/dist/skill-source/fetch-cache.d.ts.map +1 -1
- package/dist/skill-source/fetch-cache.js +0 -5
- package/dist/skill-source/fetch-cache.js.map +1 -1
- package/dist/skill-source/git-clone.d.ts.map +1 -1
- package/dist/skill-source/git-clone.js +0 -2
- package/dist/skill-source/git-clone.js.map +1 -1
- package/dist/skill-source/sources/url-source.d.ts.map +1 -1
- package/dist/skill-source/sources/url-source.js +0 -1
- package/dist/skill-source/sources/url-source.js.map +1 -1
- package/dist/skill-source/stage.d.ts.map +1 -1
- package/dist/skill-source/stage.js +0 -6
- package/dist/skill-source/stage.js.map +1 -1
- package/dist/skill-test/baseline-integrity.d.ts.map +1 -1
- package/dist/skill-test/baseline-integrity.js +8 -2
- package/dist/skill-test/baseline-integrity.js.map +1 -1
- package/dist/skill-test/build-hook.d.ts +3 -2
- package/dist/skill-test/build-hook.d.ts.map +1 -1
- package/dist/skill-test/build-hook.js +4 -4
- package/dist/skill-test/build-hook.js.map +1 -1
- package/dist/skill-test/declared-env.d.ts +5 -4
- package/dist/skill-test/declared-env.d.ts.map +1 -1
- package/dist/skill-test/declared-env.js +7 -9
- package/dist/skill-test/declared-env.js.map +1 -1
- package/dist/skill-test/eval-executor.d.ts +1 -1
- package/dist/skill-test/eval-executor.js +2 -2
- package/dist/skill-test/eval-executor.js.map +1 -1
- package/dist/skill-test/eval-fragment.d.ts +12 -8
- package/dist/skill-test/eval-fragment.d.ts.map +1 -1
- package/dist/skill-test/eval-fragment.js +18 -10
- package/dist/skill-test/eval-fragment.js.map +1 -1
- package/dist/skill-test/eval-grader.d.ts +64 -6
- package/dist/skill-test/eval-grader.d.ts.map +1 -1
- package/dist/skill-test/eval-grader.js +139 -77
- package/dist/skill-test/eval-grader.js.map +1 -1
- package/dist/skill-test/eval-inputs.d.ts +8 -7
- package/dist/skill-test/eval-inputs.d.ts.map +1 -1
- package/dist/skill-test/eval-inputs.js +9 -11
- package/dist/skill-test/eval-inputs.js.map +1 -1
- package/dist/skill-test/eval-lint.d.ts +4 -4
- package/dist/skill-test/eval-lint.js +5 -5
- package/dist/skill-test/eval-lint.js.map +1 -1
- package/dist/skill-test/eval-suite-isolation.d.ts.map +1 -1
- package/dist/skill-test/eval-suite-isolation.js +8 -5
- package/dist/skill-test/eval-suite-isolation.js.map +1 -1
- package/dist/skill-test/evals-template.d.ts +1 -1
- package/dist/skill-test/evals-template.d.ts.map +1 -1
- package/dist/skill-test/evals-template.js +1 -3
- package/dist/skill-test/evals-template.js.map +1 -1
- package/dist/skill-test/executor-prompt.d.ts +2 -2
- package/dist/skill-test/executor-prompt.js +2 -2
- package/dist/skill-test/failure-reason.d.ts +113 -0
- package/dist/skill-test/failure-reason.d.ts.map +1 -0
- package/dist/skill-test/failure-reason.js +124 -0
- package/dist/skill-test/failure-reason.js.map +1 -0
- package/dist/skill-test/fragment-merge.d.ts +2 -2
- package/dist/skill-test/fragment-merge.js +4 -4
- package/dist/skill-test/grader-prompt.d.ts +2 -2
- package/dist/skill-test/grader-prompt.d.ts.map +1 -1
- package/dist/skill-test/grader-prompt.js +12 -8
- package/dist/skill-test/grader-prompt.js.map +1 -1
- package/dist/skill-test/grading-adapter.d.ts +7 -3
- package/dist/skill-test/grading-adapter.d.ts.map +1 -1
- package/dist/skill-test/grading-adapter.js +10 -9
- package/dist/skill-test/grading-adapter.js.map +1 -1
- package/dist/skill-test/harness-location.d.ts +3 -2
- package/dist/skill-test/harness-location.d.ts.map +1 -1
- package/dist/skill-test/harness-location.js +5 -16
- package/dist/skill-test/harness-location.js.map +1 -1
- package/dist/skill-test/index.d.ts +1 -1
- package/dist/skill-test/index.d.ts.map +1 -1
- package/dist/skill-test/index.js +1 -1
- package/dist/skill-test/index.js.map +1 -1
- package/dist/skill-test/lock.d.ts +11 -10
- package/dist/skill-test/lock.d.ts.map +1 -1
- package/dist/skill-test/lock.js +13 -14
- package/dist/skill-test/lock.js.map +1 -1
- package/dist/skill-test/pipeline.d.ts +3 -1
- package/dist/skill-test/pipeline.d.ts.map +1 -1
- package/dist/skill-test/pipeline.js +5 -1
- package/dist/skill-test/pipeline.js.map +1 -1
- package/dist/skill-test/preflight.d.ts.map +1 -1
- package/dist/skill-test/preflight.js +0 -1
- package/dist/skill-test/preflight.js.map +1 -1
- package/dist/skill-test/prompt-invariants.d.ts +4 -2
- package/dist/skill-test/prompt-invariants.d.ts.map +1 -1
- package/dist/skill-test/prompt-invariants.js +5 -4
- package/dist/skill-test/prompt-invariants.js.map +1 -1
- package/dist/skill-test/run-harness.d.ts +160 -123
- package/dist/skill-test/run-harness.d.ts.map +1 -1
- package/dist/skill-test/run-harness.js +309 -173
- package/dist/skill-test/run-harness.js.map +1 -1
- package/dist/skill-test/staging.d.ts +12 -6
- package/dist/skill-test/staging.d.ts.map +1 -1
- package/dist/skill-test/staging.js +15 -12
- package/dist/skill-test/staging.js.map +1 -1
- package/dist/skill-test/tier-plan.d.ts +1 -1
- package/dist/skill-test/tier-plan.js +1 -1
- package/dist/skill-test/tool-eval-schema.js +2 -2
- package/dist/skill-test/vendor-manifest.d.ts +2 -1
- package/dist/skill-test/vendor-manifest.d.ts.map +1 -1
- package/dist/skill-test/vendor-manifest.js +10 -10
- package/dist/skill-test/vendor-manifest.js.map +1 -1
- package/dist/test-input.d.ts +2 -2
- package/dist/test-input.d.ts.map +1 -1
- package/dist/test-input.js +4 -5
- package/dist/test-input.js.map +1 -1
- package/dist/validators/agent-instruction-presence.d.ts.map +1 -1
- package/dist/validators/agent-instruction-presence.js +44 -2
- package/dist/validators/agent-instruction-presence.js.map +1 -1
- package/dist/validators/bundled-resource-link-detection.d.ts +5 -3
- package/dist/validators/bundled-resource-link-detection.d.ts.map +1 -1
- package/dist/validators/bundled-resource-link-detection.js +38 -38
- package/dist/validators/bundled-resource-link-detection.js.map +1 -1
- package/dist/validators/compat-detectors.d.ts +17 -0
- package/dist/validators/compat-detectors.d.ts.map +1 -1
- package/dist/validators/compat-detectors.js +46 -19
- package/dist/validators/compat-detectors.js.map +1 -1
- package/dist/validators/format-detection.d.ts +3 -0
- package/dist/validators/format-detection.d.ts.map +1 -1
- package/dist/validators/format-detection.js +41 -26
- package/dist/validators/format-detection.js.map +1 -1
- package/dist/validators/frontmatter-validation.js +1 -1
- package/dist/validators/frontmatter-validation.js.map +1 -1
- package/dist/validators/marketplace-validator.d.ts.map +1 -1
- package/dist/validators/marketplace-validator.js +6 -1
- package/dist/validators/marketplace-validator.js.map +1 -1
- package/dist/validators/mcp-tool-qualification.d.ts +1 -1
- package/dist/validators/mcp-tool-qualification.js +1 -1
- package/dist/validators/packaged-size-limit.d.ts.map +1 -1
- package/dist/validators/packaged-size-limit.js +0 -2
- package/dist/validators/packaged-size-limit.js.map +1 -1
- package/dist/validators/packaging-validator.d.ts +33 -4
- package/dist/validators/packaging-validator.d.ts.map +1 -1
- package/dist/validators/packaging-validator.js +95 -22
- package/dist/validators/packaging-validator.js.map +1 -1
- package/dist/validators/plugin-hosted-shape.d.ts +3 -1
- package/dist/validators/plugin-hosted-shape.d.ts.map +1 -1
- package/dist/validators/plugin-hosted-shape.js +5 -6
- package/dist/validators/plugin-hosted-shape.js.map +1 -1
- package/dist/validators/referenced-path-missing.d.ts +15 -6
- package/dist/validators/referenced-path-missing.d.ts.map +1 -1
- package/dist/validators/referenced-path-missing.js +42 -22
- package/dist/validators/referenced-path-missing.js.map +1 -1
- package/dist/validators/registry-validator.d.ts.map +1 -1
- package/dist/validators/registry-validator.js +0 -1
- package/dist/validators/registry-validator.js.map +1 -1
- package/dist/validators/rule-engine/index.d.ts +1 -1
- package/dist/validators/rule-engine/rule-context.d.ts +3 -3
- package/dist/validators/rule-engine/rule-context.js +1 -1
- package/dist/validators/rule-engine/rule-engine.d.ts +1 -1
- package/dist/validators/rule-engine/rule-engine.js +5 -5
- 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 +41 -51
- package/dist/validators/skill-validator.js.map +1 -1
- package/dist/validators/source-only-codes.js +1 -1
- package/dist/validators/source-only-codes.js.map +1 -1
- package/dist/validators/types.d.ts +21 -1
- package/dist/validators/types.d.ts.map +1 -1
- package/dist/validators/unified-validator.d.ts.map +1 -1
- package/dist/validators/unified-validator.js +3 -4
- package/dist/validators/unified-validator.js.map +1 -1
- package/dist/validators/validation-rules.d.ts +3 -3
- package/dist/validators/validation-rules.d.ts.map +1 -1
- package/dist/validators/validation-rules.js +9 -38
- package/dist/validators/validation-rules.js.map +1 -1
- package/dist/validators/walker-to-issues.d.ts +2 -0
- package/dist/validators/walker-to-issues.d.ts.map +1 -1
- package/dist/validators/walker-to-issues.js +17 -12
- package/dist/validators/walker-to-issues.js.map +1 -1
- package/dist/walk-link-graph.d.ts +2 -0
- package/dist/walk-link-graph.d.ts.map +1 -1
- package/dist/walk-link-graph.js +46 -15
- package/dist/walk-link-graph.js.map +1 -1
- package/package.json +12 -20
- package/dist/skill-test/exit-codes.d.ts +0 -134
- package/dist/skill-test/exit-codes.d.ts.map +0 -1
- package/dist/skill-test/exit-codes.js +0 -224
- package/dist/skill-test/exit-codes.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-detection.js","sourceRoot":"","sources":["../../src/validators/format-detection.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"format-detection.js","sourceRoot":"","sources":["../../src/validators/format-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -75,7 +75,7 @@ export function validateFrontmatterSchema(frontmatter, isVATGenerated, location)
|
|
|
75
75
|
fix: 'Change name to lowercase alphanumeric with hyphens (e.g., "my-skill")',
|
|
76
76
|
});
|
|
77
77
|
}
|
|
78
|
-
else if (field === 'description' && error.
|
|
78
|
+
else if (field === 'description' && error.code === 'too_big') {
|
|
79
79
|
issues.push({
|
|
80
80
|
severity: 'error',
|
|
81
81
|
code: 'SKILL_DESCRIPTION_TOO_LONG',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontmatter-validation.js","sourceRoot":"","sources":["../../src/validators/frontmatter-validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,aAAa,EAAwB,MAAM,4BAA4B,CAAC;AAEjF,OAAO,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AAEpH,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,8EAA8E;AAC9E,yEAAyE;AACzE,gFAAgF;AAChF,+EAA+E;AAC/E,oEAAoE;AACpE,MAAM,iBAAiB,GAAG,aAAa,CAAC;AACxC,MAAM,sBAAsB,GAAG,kBAAkB,CAAC;AAClD,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAEzD;;;;GAIG;AACH,SAAS,UAAU,CAAC,QAAgB,EAAE,MAAyB;IAC9D,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CACxC,WAAoC,EACpC,cAAuB,EACvB,QAAgB;IAEhB,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,2BAA2B,CAAC;IAC7F,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAEnD,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC;IACf,CAAC;IAED,oCAAoC;IACpC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,KAAK,KAAK,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,kCAAkC;gBAC3C,KAAK,EAAE,iBAAiB;gBACxB,GAAG,EAAE,iCAAiC;aACtC,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,KAAK,aAAa,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,2BAA2B;gBACjC,OAAO,EAAE,yCAAyC;gBAClD,KAAK,EAAE,iBAAiB;gBACxB,GAAG,EAAE,wCAAwC;aAC7C,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACX,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,oBAAoB;gBAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,KAAK,EAAE,sBAAsB;gBAC7B,GAAG,EAAE,uEAAuE;aAC5E,CAAC,CAAC;QACJ,CAAC;aAAM,IAAI,KAAK,KAAK,aAAa,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"frontmatter-validation.js","sourceRoot":"","sources":["../../src/validators/frontmatter-validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace-validator.d.ts","sourceRoot":"","sources":["../../src/validators/marketplace-validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"marketplace-validator.d.ts","sourceRoot":"","sources":["../../src/validators/marketplace-validator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,iBAAiB,EAAqB,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKnD;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACxC,eAAe,EAAE,MAAM,EACvB,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,gBAAgB,CAAC,CA8F3B"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable security/detect-non-literal-fs-filename -- File paths are validated before use */
|
|
2
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
3
2
|
import { calculateValidationStatus, countBySeverity } from '@vibe-agent-toolkit/schema';
|
|
4
3
|
import { issueLocation, safePath } from '@vibe-agent-toolkit/utils';
|
|
@@ -88,6 +87,12 @@ export async function validateMarketplace(marketplacePath, options) {
|
|
|
88
87
|
name: result.data.name,
|
|
89
88
|
...(result.data.description !== undefined && { description: result.data.description }),
|
|
90
89
|
...(result.data.version !== undefined && { version: result.data.version }),
|
|
90
|
+
// The denominator a consumer needs to judge a plugin walk: a string
|
|
91
|
+
// `source` is a relative path into this marketplace's own tree, and the
|
|
92
|
+
// consumer resolves it against the root it chose. Sources, not a count —
|
|
93
|
+
// a count is satisfied by walking the WRONG directories.
|
|
94
|
+
pluginEntries: result.data.plugins.length,
|
|
95
|
+
localPluginSources: result.data.plugins.flatMap((entry) => typeof entry.source === 'string' ? [{ name: entry.name, source: entry.source }] : []),
|
|
91
96
|
};
|
|
92
97
|
}
|
|
93
98
|
return validationResult;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marketplace-validator.js","sourceRoot":"","sources":["../../src/validators/marketplace-validator.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"marketplace-validator.js","sourceRoot":"","sources":["../../src/validators/marketplace-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
* authoring project, which is precisely the population check
|
|
63
63
|
* `docs/validation-rule-design.md` requires and the reason it requires it.
|
|
64
64
|
*
|
|
65
|
-
* ## Measured fire rate
|
|
65
|
+
* ## Measured fire rate (re-measured after the camelCase fix below)
|
|
66
66
|
*
|
|
67
67
|
* Population = documents that spell at least one MCP tool fully-qualified.
|
|
68
68
|
*
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
* authoring project, which is precisely the population check
|
|
63
63
|
* `docs/validation-rule-design.md` requires and the reason it requires it.
|
|
64
64
|
*
|
|
65
|
-
* ## Measured fire rate
|
|
65
|
+
* ## Measured fire rate (re-measured after the camelCase fix below)
|
|
66
66
|
*
|
|
67
67
|
* Population = documents that spell at least one MCP tool fully-qualified.
|
|
68
68
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packaged-size-limit.d.ts","sourceRoot":"","sources":["../../src/validators/packaged-size-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,eAAO,MAAM,0BAA0B,WAAa,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAA8C,CAAC;AAUxG,MAAM,WAAW,SAAS;IACxB,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,8DAA8D;AAC9D,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;CAC/C;AAYD,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYjD;
|
|
1
|
+
{"version":3,"file":"packaged-size-limit.d.ts","sourceRoot":"","sources":["../../src/validators/packaged-size-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAGjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,eAAO,MAAM,0BAA0B,WAAa,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,MAAM,CAA8C,CAAC;AAUxG,MAAM,WAAW,SAAS;IACxB,gDAAgD;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,8DAA8D;AAC9D,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;CAC/C;AAYD,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYjD;AA+KD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,SAAS,SAAS,EAAE,EAC3B,OAAO,EAAE,eAAe,EACxB,UAAU,GAAE,MAAmC,GAC9C,MAAM,CAeR;AA0BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,MAAmC,GAC9C,eAAe,EAAE,CA4BnB"}
|
|
@@ -290,7 +290,6 @@ function walkBundle(root) {
|
|
|
290
290
|
/** Directory entries, recording a receipt when the directory cannot be read. */
|
|
291
291
|
function readDirOrRecord(dir, root, acc) {
|
|
292
292
|
try {
|
|
293
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- caller-supplied packaged output dir
|
|
294
293
|
return readdirSync(dir, { withFileTypes: true });
|
|
295
294
|
}
|
|
296
295
|
catch (error) {
|
|
@@ -305,7 +304,6 @@ function readDirOrRecord(dir, root, acc) {
|
|
|
305
304
|
function weighEntry(full, rel, acc) {
|
|
306
305
|
let stats;
|
|
307
306
|
try {
|
|
308
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- as above
|
|
309
307
|
stats = statSync(full);
|
|
310
308
|
}
|
|
311
309
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packaged-size-limit.js","sourceRoot":"","sources":["../../src/validators/packaged-size-limit.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"packaged-size-limit.js","sourceRoot":"","sources":["../../src/validators/packaged-size-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAe,MAAM,SAAS,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAwB,MAAM,4BAA4B,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+EG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAwB,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;AAExG,2EAA2E;AAC3E,SAAS,MAAM,CAAC,IAAY,EAAE,KAAa;IACzC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;AACzC,CAAC;AAED,oEAAoE;AACpE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAyC9B;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;AAEzD,mFAAmF;AACnF,MAAM,UAAU,WAAW,CAAC,KAAa;IACvC,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,GAAG,KAAK,IAAI,CAAC;IACtC,IAAI,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;IACzB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,KAAK,IAAI,IAAI,CAAC;QACd,IAAI,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,yEAAyE;IACzE,sEAAsE;IACtE,qEAAqE;IACrE,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;AACnE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC;AAC1E,CAAC;AAQD,kEAAkE;AAClE,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,oFAAoF;AACpF,SAAS,cAAc,CAAC,IAAY,EAAE,MAAc;IAClD,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,wBAAwB,GAC5B,sFAAsF;MACpF,sFAAsF,CAAC;AAE3F,mGAAmG;AACnG,MAAM,mBAAmB,GACvB,6FAA6F;MAC3F,0FAA0F;MAC1F,0CAA0C,wBAAwB,EAAE,CAAC;AAEzE,8FAA8F;AAC9F,MAAM,sBAAsB,GAC1B,0FAA0F;MACxF,4FAA4F;MAC5F,sCAAsC,wBAAwB,EAAE,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,GAAG,GAAoB,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC1D,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,SAAS;YAAE,MAAM;QAC7B,KAAK,MAAM,MAAM,IAAI,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC;gBACzB,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjE,SAAS;YACX,CAAC;YACD,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC5B,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;oBACjB,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;oBAChC,MAAM,EACJ,4EAA4E;0BAC1E,4DAA4D;oBAChE,GAAG,EAAE,mBAAmB;iBACzB,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,gFAAgF;AAChF,SAAS,eAAe,CAAC,GAAW,EAAE,IAAY,EAAE,GAAoB;IACtE,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC;YAC/B,MAAM,EAAE,qCAAqC,OAAO,CAAC,KAAK,CAAC,GAAG;SAC/D,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,IAAY,EAAE,GAAW,EAAE,GAAoB;IACjE,IAAI,KAAK,CAAC;IACV,IAAI,CAAC;QACH,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,0BAA0B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QACnB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,GAAG;QACT,4EAA4E;QAC5E,gEAAgE;QAChE,MAAM,EAAE,0DAA0D;QAClE,GAAG,EAAE,sBAAsB;KAC5B,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,YAAY,CAAC,KAA2B;IAC/C,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAC9B,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3E,CAAC;AAoBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAA2B,EAC3B,OAAwB,EACxB,aAAqB,0BAA0B;IAE/C,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1F,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAChD,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACzF,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;IACjE,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,KAAK,gBAAgB;QAC7C,CAAC,CAAC,0BAA0B,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,GAAG;cACxF,0BAA0B,MAAM,qCAAqC;QACzE,CAAC,CAAC,qBAAqB,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,GAAG,CAAC;IAC/E,OAAO,CACL,GAAG,OAAO,aAAa,kBAAkB,CAAC,UAAU,CAAC,wBAAwB;QAC7E,4BAA4B,KAAK,GAAG,IAAI,EAAE,CAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,eAAe,CAAC,OAAkC;IACzD,MAAM,aAAa,GAAG,aAAa,CAAC,oBAAoB,CAAC;IACzD,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3B,QAAQ,EAAE,aAAa,CAAC,eAAe;QACvC,IAAI,EAAE,sBAA+B;QACrC,OAAO,EACL,2BAA2B,WAAW,CAAC,0BAA0B,CAAC,wCAAwC;cACxG,GAAG,KAAK,CAAC,MAAM,oDAAoD;QACvE,QAAQ,EAAE,KAAK,CAAC,IAAI;QACpB,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG;QACnC,SAAS,EAAE,aAAa,CAAC,SAAS;KACnC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,MAAM,UAAU,sBAAsB,CACpC,SAAiB,EACjB,aAAqB,0BAA0B;IAE/C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/D,4EAA4E;IAC5E,4EAA4E;IAC5E,oEAAoE;IACpE,+EAA+E;IAC/E,uCAAuC;IACvC,IAAI,KAAK,GAAG,UAAU;QAAE,OAAO,MAAM,CAAC;IAEtC,MAAM,aAAa,GAAG,aAAa,CAAC,+BAA+B,CAAC;IACpE,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,CAAC,IAAI,CAAC;QACV,QAAQ,EAAE,aAAa,CAAC,eAAe;QACvC,IAAI,EAAE,iCAAiC;QACvC,OAAO,EAAE,sBAAsB,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,UAAU,CAAC;QAC1F,uEAAuE;QACvE,2EAA2E;QAC3E,uEAAuE;QACvE,QAAQ,EAAE,GAAG;QACb,wEAAwE;QACxE,6CAA6C;QAC7C,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC1D,GAAG,EAAE,aAAa,CAAC,GAAG;QACtB,SAAS,EAAE,aAAa,CAAC,SAAS;KACnC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* - vat skills build (block build on validation errors)
|
|
13
13
|
* - vat skills audit --user (report issues, exit 0 always)
|
|
14
14
|
*/
|
|
15
|
-
import { ResourceRegistry, type ResourcePopulationSource, type SkillExecutableEntry } from '@vibe-agent-toolkit/resources';
|
|
15
|
+
import { type RegistryUnreadablePolicy, ResourceRegistry, type ResourcePopulationSource, type SkillExecutableEntry } from '@vibe-agent-toolkit/resources';
|
|
16
16
|
import { type AllowUsageLedger, type AllowRecord, type ValidationConfig, type ValidationIssue } from '@vibe-agent-toolkit/schema';
|
|
17
17
|
import { type GitTracker } from '@vibe-agent-toolkit/utils/git';
|
|
18
18
|
import type { EvidenceRecord, Observation } from '../evidence/index.js';
|
|
@@ -48,7 +48,7 @@ export interface SkillPackagingConfig {
|
|
|
48
48
|
targets?: ReadonlyArray<'claude-chat' | 'claude-cowork' | 'claude-code'>;
|
|
49
49
|
/**
|
|
50
50
|
* Declared executables the skill ships (name-stable references for eval
|
|
51
|
-
* `toolExpectations` + launch-guidance linting
|
|
51
|
+
* `toolExpectations` + launch-guidance linting). The
|
|
52
52
|
* config merge (`mergeSkillPackagingConfig`) copies this through generically;
|
|
53
53
|
* declaring it here lets consumers (e.g. `vat skill test run`) read it typed.
|
|
54
54
|
*/
|
|
@@ -143,6 +143,18 @@ export declare function activeWarningsOf(result: WithAllErrors): ValidationIssue
|
|
|
143
143
|
* Options for {@link crawlAndResolveRegistry}.
|
|
144
144
|
*/
|
|
145
145
|
export interface CrawlRegistryOptions {
|
|
146
|
+
/**
|
|
147
|
+
* What the crawl does with a directory it cannot list — the caller's ruling,
|
|
148
|
+
* required, no default: `'refuse'` for every verb that acts on the registry as
|
|
149
|
+
* a complete population, `{ degrade }` for `vat audit`. See
|
|
150
|
+
* {@link RegistryUnreadablePolicy} on the registry for the two rulings.
|
|
151
|
+
*
|
|
152
|
+
* NOT part of the memo key: the memo replays the refusals the ONE crawl met
|
|
153
|
+
* into every later caller's policy, so a `'refuse'` caller served a registry
|
|
154
|
+
* that was built under `{ degrade }` still gets its throw — see
|
|
155
|
+
* {@link MemoizedRegistry}.
|
|
156
|
+
*/
|
|
157
|
+
unreadable: RegistryUnreadablePolicy;
|
|
146
158
|
/**
|
|
147
159
|
* Where the file list comes from — omit for the incumbent walk, supply one to
|
|
148
160
|
* source it from a projection instead.
|
|
@@ -160,7 +172,7 @@ export interface CrawlRegistryOptions {
|
|
|
160
172
|
* registry when the caller does not supply a shared one.
|
|
161
173
|
*
|
|
162
174
|
* Crawls markdown AND HTML (`.html`/`.htm`) so the live audit/validate path
|
|
163
|
-
* sees the same link graph the built path does
|
|
175
|
+
* sees the same link graph the built path does. The registry
|
|
164
176
|
* parses HTML via parse5 and surfaces its `local_file` links, so the walker
|
|
165
177
|
* traverses HTML references and catches HTML broken links at source time — not
|
|
166
178
|
* just at build time. (Previously the crawl was markdown-only, so source HTML
|
|
@@ -207,7 +219,7 @@ export interface CrawlRegistryOptions {
|
|
|
207
219
|
* the projection lane no declarations, so the two lanes still AGREE — which is
|
|
208
220
|
* the property this function exists to hold.
|
|
209
221
|
*/
|
|
210
|
-
export declare function crawlAndResolveRegistry(projectRoot: string, options
|
|
222
|
+
export declare function crawlAndResolveRegistry(projectRoot: string, options: CrawlRegistryOptions): Promise<ResourceRegistry>;
|
|
211
223
|
/**
|
|
212
224
|
* Drop every memoized registry.
|
|
213
225
|
*
|
|
@@ -234,6 +246,23 @@ export declare function resetPackagingRegistryCache(): void;
|
|
|
234
246
|
* legacy per-skill behavior so one-off callers keep working.
|
|
235
247
|
*/
|
|
236
248
|
export interface SkillValidationSharedContext {
|
|
249
|
+
/**
|
|
250
|
+
* What the validator's OWN registry crawl does with a directory it cannot
|
|
251
|
+
* list, when it has to build one (no `registry` below, or one that does not
|
|
252
|
+
* cover this skill) — the caller's ruling, and the ONE required field here:
|
|
253
|
+
* `'refuse'` for `vat skills validate`/`build`, `vat skill review` and the
|
|
254
|
+
* packager's post-build check, `{ degrade }` for `vat audit`, whose directory
|
|
255
|
+
* lane supplies no registry and reaches {@link crawlAndResolveRegistry} through
|
|
256
|
+
* exactly this seam. See {@link RegistryUnreadablePolicy}.
|
|
257
|
+
*
|
|
258
|
+
* Ignored when `registry` below already covers the skill, for the same reason
|
|
259
|
+
* `populationSource` is: the caller that built it has already ruled.
|
|
260
|
+
*
|
|
261
|
+
* A caller that passes NO shared context at all is a single-skill lane whose
|
|
262
|
+
* result is acted on whole, and is ruled `'refuse'` by
|
|
263
|
+
* {@link validateSkillForPackaging} — said there, once, not defaulted here.
|
|
264
|
+
*/
|
|
265
|
+
unreadable: RegistryUnreadablePolicy;
|
|
237
266
|
/** Pre-built registry that covers the skill's project root. */
|
|
238
267
|
registry?: ResourceRegistry;
|
|
239
268
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packaging-validator.d.ts","sourceRoot":"","sources":["../../src/validators/packaging-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH,OAAO,
|
|
1
|
+
{"version":3,"file":"packaging-validator.d.ts","sourceRoot":"","sources":["../../src/validators/packaging-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,9 +15,10 @@
|
|
|
15
15
|
import { existsSync, statSync } from 'node:fs';
|
|
16
16
|
import { readFile } from 'node:fs/promises';
|
|
17
17
|
import { basename, dirname } from 'node:path';
|
|
18
|
-
import { DeferredArtifacts, loadConfig, parseFileCached, ResourceRegistry } from '@vibe-agent-toolkit/resources';
|
|
18
|
+
import { DeferredArtifacts, listingRefusalRemedy, loadConfig, parseFileCached, ResourceRegistry, } from '@vibe-agent-toolkit/resources';
|
|
19
19
|
import { CODE_REGISTRY, runSingleUnitValidation, runValidationFramework, } from '@vibe-agent-toolkit/schema';
|
|
20
20
|
import { findProjectRoot, issueLocation, normalizedTmpdir, toForwardSlash, safePath, } from '@vibe-agent-toolkit/utils';
|
|
21
|
+
import { DirectoryListingRefusedError } from '@vibe-agent-toolkit/utils/crawl';
|
|
21
22
|
import { collectPreBuildGlobFindings, preBuildGlobFindingsToIssues } from '../files-config.js';
|
|
22
23
|
import { conventionalSuiteProbe, partitionTestInputFileEntries, resolveTestInputDirs, testInputExcludeRules, testInputLinkIssues, } from '../test-input.js';
|
|
23
24
|
import { walkLinkGraph } from '../walk-link-graph.js';
|
|
@@ -28,7 +29,7 @@ import { collectUnqualifiedMcpToolIssues } from './mcp-tool-qualification.js';
|
|
|
28
29
|
import { materializeIssue } from './rule-engine/index.js';
|
|
29
30
|
import { SOURCE_ONLY_CODES } from './source-only-codes.js';
|
|
30
31
|
import { VALIDATION_RULES, VALIDATION_THRESHOLDS, } from './validation-rules.js';
|
|
31
|
-
import { deferredAssetsToIssues, walkerExclusionsToIssues } from './walker-to-issues.js';
|
|
32
|
+
import { deferredAssetsToIssues, outsideSkillDirLinksToIssues, walkerExclusionsToIssues } from './walker-to-issues.js';
|
|
32
33
|
/** Exclude reason constants to avoid duplicate string literals */
|
|
33
34
|
const EXCLUDE_REASON_DIRECTORY = 'directory-target';
|
|
34
35
|
const EXCLUDE_REASON_OUTSIDE_PROJECT = 'outside-project';
|
|
@@ -73,7 +74,6 @@ function validateFilesConfig(files, projectRoot, locationRoot) {
|
|
|
73
74
|
// Check if an existing source resolves to a directory — a typed single-file
|
|
74
75
|
// slot cannot be satisfied by a directory.
|
|
75
76
|
const resolvedSource = safePath.resolve(safePath.join(projectRoot, entry.source));
|
|
76
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- resolvedSource derived from config-supplied path
|
|
77
77
|
if (existsSync(resolvedSource) && statSync(resolvedSource).isDirectory()) {
|
|
78
78
|
// Anchor at the resolved source, expressed in the run's ONE coordinate
|
|
79
79
|
// system — not the raw config value, which is project-relative and so
|
|
@@ -89,7 +89,7 @@ function validateFilesConfig(files, projectRoot, locationRoot) {
|
|
|
89
89
|
* anchored at a project-relative `location`.
|
|
90
90
|
*
|
|
91
91
|
* Thin wrapper over the shared {@link materializeIssue} so severity / fix /
|
|
92
|
-
* reference come from the single CODE_REGISTRY source
|
|
92
|
+
* reference come from the single CODE_REGISTRY source; the
|
|
93
93
|
* caller supplies a fully-formed `message`.
|
|
94
94
|
*
|
|
95
95
|
* Deliberately NOT named `createRegistryIssue`: `@vibe-agent-toolkit/schema`
|
|
@@ -100,13 +100,28 @@ function validateFilesConfig(files, projectRoot, locationRoot) {
|
|
|
100
100
|
function registryIssueAt(code, message, location) {
|
|
101
101
|
return materializeIssue(code, { message, location });
|
|
102
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Settle the memoized refusals under THIS caller's policy — see {@link MemoizedRegistry}.
|
|
105
|
+
*
|
|
106
|
+
* @param refusals - What the one crawl of `projectRoot` was refused
|
|
107
|
+
* @param unreadable - This caller's ruling
|
|
108
|
+
* @param projectRoot - The crawl's root, for the refuse sentence
|
|
109
|
+
*/
|
|
110
|
+
function replayRefusals(refusals, unreadable, projectRoot) {
|
|
111
|
+
for (const refusal of refusals) {
|
|
112
|
+
if (unreadable === 'refuse') {
|
|
113
|
+
throw new DirectoryListingRefusedError(refusal, { root: projectRoot, remedy: listingRefusalRemedy(projectRoot) });
|
|
114
|
+
}
|
|
115
|
+
unreadable.degrade(refusal);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
103
118
|
/**
|
|
104
119
|
* Build a fresh ResourceRegistry for a single skill's projectRoot and resolve
|
|
105
120
|
* internal links. Extracted so the skill validator can fall back to a private
|
|
106
121
|
* registry when the caller does not supply a shared one.
|
|
107
122
|
*
|
|
108
123
|
* Crawls markdown AND HTML (`.html`/`.htm`) so the live audit/validate path
|
|
109
|
-
* sees the same link graph the built path does
|
|
124
|
+
* sees the same link graph the built path does. The registry
|
|
110
125
|
* parses HTML via parse5 and surfaces its `local_file` links, so the walker
|
|
111
126
|
* traverses HTML references and catches HTML broken links at source time — not
|
|
112
127
|
* just at build time. (Previously the crawl was markdown-only, so source HTML
|
|
@@ -153,21 +168,31 @@ function registryIssueAt(code, message, location) {
|
|
|
153
168
|
* the projection lane no declarations, so the two lanes still AGREE — which is
|
|
154
169
|
* the property this function exists to hold.
|
|
155
170
|
*/
|
|
156
|
-
export async function crawlAndResolveRegistry(projectRoot, options
|
|
157
|
-
const { populationSource } = options;
|
|
171
|
+
export async function crawlAndResolveRegistry(projectRoot, options) {
|
|
172
|
+
const { populationSource, unreadable } = options;
|
|
158
173
|
const cache = registryCacheFor(populationSource);
|
|
159
174
|
const key = toForwardSlash(safePath.resolve(projectRoot));
|
|
160
175
|
const cached = cache.get(key);
|
|
161
176
|
if (cached !== undefined) {
|
|
162
|
-
|
|
177
|
+
const { registry, refusals } = await cached;
|
|
178
|
+
replayRefusals(refusals, unreadable, projectRoot);
|
|
179
|
+
return registry;
|
|
163
180
|
}
|
|
164
181
|
// The PROMISE is cached, not the resolved value, so two overlapping requests
|
|
165
182
|
// for one root can never start two crawls.
|
|
166
183
|
const pending = (async () => {
|
|
167
184
|
const config = await loadConfig(projectRoot).catch(() => undefined);
|
|
185
|
+
// Every refusal the crawl hands over is kept for the memo's later callers —
|
|
186
|
+
// see {@link MemoizedRegistry}. Under `'refuse'` the crawl throws instead and
|
|
187
|
+
// this stays empty.
|
|
188
|
+
const refusals = [];
|
|
189
|
+
const recorded = unreadable === 'refuse'
|
|
190
|
+
? 'refuse'
|
|
191
|
+
: { degrade: (refusal) => { refusals.push(refusal); unreadable.degrade(refusal); } };
|
|
168
192
|
const registry = await ResourceRegistry.fromCrawl({
|
|
169
193
|
baseDir: projectRoot,
|
|
170
194
|
include: ['**/*.md', '**/*.html', '**/*.htm'],
|
|
195
|
+
unreadable: recorded,
|
|
171
196
|
// Enumeration only. `ResourceRegistry.crawl` re-applies the include set
|
|
172
197
|
// above — and the crawl's default exclude — to whatever the source
|
|
173
198
|
// offers, through the same compiled matcher the walk itself uses, so a
|
|
@@ -177,10 +202,10 @@ export async function crawlAndResolveRegistry(projectRoot, options = {}) {
|
|
|
177
202
|
...(populationSource !== undefined && { populationSource }),
|
|
178
203
|
}, config === undefined ? undefined : { config });
|
|
179
204
|
registry.resolveLinks();
|
|
180
|
-
return registry;
|
|
205
|
+
return { registry, refusals };
|
|
181
206
|
})();
|
|
182
207
|
cache.set(key, pending);
|
|
183
|
-
return pending;
|
|
208
|
+
return (await pending).registry;
|
|
184
209
|
}
|
|
185
210
|
/**
|
|
186
211
|
* Cache of (resolved project root → registry) for the INCUMBENT WALK, so the
|
|
@@ -291,6 +316,29 @@ export function resetPackagingRegistryCache() {
|
|
|
291
316
|
// of a tree it may have changed. A `WeakMap` has no `clear`, so it is replaced.
|
|
292
317
|
sourcedRegistryCache = new WeakMap();
|
|
293
318
|
}
|
|
319
|
+
/**
|
|
320
|
+
* The registry a skill is validated against: the caller's, when it covers the
|
|
321
|
+
* skill; otherwise one crawled here under the caller's `unreadable` ruling.
|
|
322
|
+
*
|
|
323
|
+
* No shared context is a single-skill lane whose result is acted on whole (the
|
|
324
|
+
* packager's post-build check passes one; a library caller that passes nothing
|
|
325
|
+
* is the same shape): it refuses. A caller with a context has ruled on
|
|
326
|
+
* `shared.unreadable` — see that field.
|
|
327
|
+
*
|
|
328
|
+
* @param skillPath - Path to SKILL.md
|
|
329
|
+
* @param projectRoot - The root the fallback crawl covers
|
|
330
|
+
* @param shared - The batching caller's context, if any
|
|
331
|
+
* @returns A registry whose links are resolved and that covers `skillPath`
|
|
332
|
+
*/
|
|
333
|
+
async function registryForSkill(skillPath, projectRoot, shared) {
|
|
334
|
+
if (shared?.registry !== undefined && registryCoversSkill(shared.registry, skillPath)) {
|
|
335
|
+
return shared.registry;
|
|
336
|
+
}
|
|
337
|
+
return crawlAndResolveRegistry(projectRoot, {
|
|
338
|
+
unreadable: shared === undefined ? 'refuse' : shared.unreadable,
|
|
339
|
+
...(shared?.populationSource !== undefined && { populationSource: shared.populationSource }),
|
|
340
|
+
});
|
|
341
|
+
}
|
|
294
342
|
/**
|
|
295
343
|
* True iff the shared registry's baseDir is an ancestor of (or equals) the
|
|
296
344
|
* skill's directory. Prevents the batched caller from reusing a registry that
|
|
@@ -309,6 +357,34 @@ function registryCoversSkill(registry, skillPath) {
|
|
|
309
357
|
// eslint-disable-next-line local/no-path-startswith -- both sides normalized via toForwardSlash above
|
|
310
358
|
return skillDir.startsWith(`${normalizedBase}/`);
|
|
311
359
|
}
|
|
360
|
+
/**
|
|
361
|
+
* The refusal for a matched file that has no frontmatter object — either no
|
|
362
|
+
* `---` block at all, or one whose YAML did not parse (`frontmatterError`).
|
|
363
|
+
*
|
|
364
|
+
* Either way the file is not a skill, and it is refused with the SAME
|
|
365
|
+
* non-overridable code `validateSkill` in skill-validator.ts emits for it:
|
|
366
|
+
* `SKILL_MISSING_FRONTMATTER` has no CODE_REGISTRY entry, so the framework's
|
|
367
|
+
* `finalize()` passes it through and `validation.severity` cannot name it.
|
|
368
|
+
*
|
|
369
|
+
* This refusal used to be absent from the packaging lane — its frontmatter
|
|
370
|
+
* checks ran only `if (parseResult.frontmatter)` — so a plain `# Readme` a
|
|
371
|
+
* `skills.include` glob drifted onto, or a SKILL.md that lost its fence, ran
|
|
372
|
+
* zero frontmatter checks and came back `success` under its H1 as a name:
|
|
373
|
+
* `vat skills validate`, `vat validate` and `vat verify` were green on a
|
|
374
|
+
* project that shipped no skill.
|
|
375
|
+
*/
|
|
376
|
+
function missingFrontmatterIssue(frontmatterError, location) {
|
|
377
|
+
return {
|
|
378
|
+
severity: 'error',
|
|
379
|
+
code: 'SKILL_MISSING_FRONTMATTER',
|
|
380
|
+
message: frontmatterError === undefined
|
|
381
|
+
? 'No YAML frontmatter found — a skill starts with a `---` block that names and describes it'
|
|
382
|
+
: `Frontmatter did not parse as YAML: ${frontmatterError}`,
|
|
383
|
+
location,
|
|
384
|
+
line: 1,
|
|
385
|
+
fix: 'Add YAML frontmatter with name and description fields, or narrow `skills.include` so it no longer matches this file',
|
|
386
|
+
};
|
|
387
|
+
}
|
|
312
388
|
/**
|
|
313
389
|
* Validate a skill for packaging
|
|
314
390
|
*
|
|
@@ -329,7 +405,7 @@ export async function validateSkillForPackaging(skillPath, packagingConfig, cont
|
|
|
329
405
|
// Validation-POLICY boundary (config root -> git root -> skill dir): what is
|
|
330
406
|
// "outside the project", where `files:` sources resolve from, what the
|
|
331
407
|
// registry crawls. Library fallback to skill dir keeps callers null-safe; CLI
|
|
332
|
-
// command boundary owns any user-facing warning.
|
|
408
|
+
// command boundary owns any user-facing warning.
|
|
333
409
|
const projectRoot = findProjectRoot(dirname(skillPath)) ?? dirname(skillPath);
|
|
334
410
|
// ANCHOR base — deliberately a separate variable from projectRoot above.
|
|
335
411
|
// Every emitted location is relative to this ONE root, computed once before
|
|
@@ -348,6 +424,9 @@ export async function validateSkillForPackaging(skillPath, packagingConfig, cont
|
|
|
348
424
|
if (parseResult.frontmatter) {
|
|
349
425
|
rawIssues.push(...validateFrontmatterSchema(parseResult.frontmatter, false, skillLocation), ...validateFrontmatterRules(parseResult.frontmatter, skillLocation));
|
|
350
426
|
}
|
|
427
|
+
else {
|
|
428
|
+
rawIssues.push(missingFrontmatterIssue(parseResult.frontmatterError, skillLocation));
|
|
429
|
+
}
|
|
351
430
|
// Compat capability detection: collect observations from SKILL.md and
|
|
352
431
|
// surface each as a CAPABILITY_* issue. Observations are also returned
|
|
353
432
|
// on the result so downstream verdict computation (CLI layer) can recover
|
|
@@ -370,11 +449,7 @@ export async function validateSkillForPackaging(skillPath, packagingConfig, cont
|
|
|
370
449
|
// per-file markdown parse is paid for exactly once across the batch. Only
|
|
371
450
|
// reuse when the shared registry covers this skill's projectRoot; otherwise
|
|
372
451
|
// fall back to a fresh crawl to avoid leaking resources across roots.
|
|
373
|
-
const registry =
|
|
374
|
-
? shared.registry
|
|
375
|
-
: await crawlAndResolveRegistry(projectRoot, {
|
|
376
|
-
...(shared?.populationSource !== undefined && { populationSource: shared.populationSource }),
|
|
377
|
-
});
|
|
452
|
+
const registry = await registryForSkill(skillPath, projectRoot, shared);
|
|
378
453
|
const skillResource = registry.getResource(safePath.resolve(skillPath));
|
|
379
454
|
// Only the entries the PACKAGER will actually copy defer a link: an entry pointing
|
|
380
455
|
// into declared test input is dropped at build time, so its dest never appears and
|
|
@@ -440,20 +515,20 @@ export async function validateSkillForPackaging(skillPath, packagingConfig, cont
|
|
|
440
515
|
if (shared?.gitTracker !== undefined) {
|
|
441
516
|
walkOptions.gitTracker = shared.gitTracker;
|
|
442
517
|
}
|
|
443
|
-
const { bundledResources, bundledAssets, excludedReferences, maxBundledDepth, deferredAssets } = walkLinkGraph(skillResource?.id ?? '', registry, walkOptions);
|
|
518
|
+
const { bundledResources, bundledAssets, excludedReferences, outsideSkillDirLinks, maxBundledDepth, deferredAssets } = walkLinkGraph(skillResource?.id ?? '', registry, walkOptions);
|
|
444
519
|
const bundledFiles = [...bundledResources.map(r => r.filePath), ...bundledAssets];
|
|
445
520
|
// Count direct links that actually made it into the bundle
|
|
446
521
|
const directLinks = getResolvedMarkdownLinks(parseResult.links, skillPath);
|
|
447
522
|
const bundledFileSet = new Set(bundledFiles);
|
|
448
523
|
const directFileCount = directLinks.filter(p => bundledFileSet.has(p)).length;
|
|
449
|
-
//
|
|
450
|
-
// the walker dropped or deferred, and all three anchor on `locationRoot`:
|
|
524
|
+
// Four producers, one append, order significant, all anchored on `locationRoot`:
|
|
451
525
|
// 1. walker exclusions (LINK_OUTSIDE_PROJECT, LINK_TARGETS_DIRECTORY, etc.)
|
|
452
526
|
// 2. links dropped for pointing into declared test input — the same issue, at
|
|
453
527
|
// the same location, the packager emits for it. `projectRoot` scopes WHICH
|
|
454
528
|
// dirs count as declared test input; `locationRoot` only anchors.
|
|
455
529
|
// 3. one info issue per deferred asset declared in files: config
|
|
456
|
-
|
|
530
|
+
// 4. followed links bundled from outside the skill directory (LINK_OUTSIDE_SKILL_DIR)
|
|
531
|
+
rawIssues.push(...walkerExclusionsToIssues(excludedReferences, locationRoot), ...testInputLinkIssues(excludedReferences, testInputDirs, projectRoot, locationRoot), ...deferredAssetsToIssues(deferredAssets, locationRoot), ...outsideSkillDirLinksToIssues(outsideSkillDirLinks, locationRoot));
|
|
457
532
|
const fileCount = bundledFiles.length + 1; // +1 for SKILL.md itself
|
|
458
533
|
const maxLinkDepth = maxBundledDepth;
|
|
459
534
|
// Calculate total lines from bundled markdown files only, and scan each
|
|
@@ -462,7 +537,6 @@ export async function validateSkillForPackaging(skillPath, packagingConfig, cont
|
|
|
462
537
|
let totalLines = skillLines;
|
|
463
538
|
for (const bundledFile of bundledFiles) {
|
|
464
539
|
if (bundledFile.endsWith('.md')) {
|
|
465
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- bundledFile resolved from markdown parser
|
|
466
540
|
const content = await readFile(bundledFile, 'utf-8');
|
|
467
541
|
totalLines += content.split('\n').length;
|
|
468
542
|
// Anchor contract: never hand a producer an absolute path as `location`.
|
|
@@ -940,7 +1014,6 @@ export function getResolvedMarkdownLinks(links, markdownPath) {
|
|
|
940
1014
|
candidates.add(resolvedPath);
|
|
941
1015
|
}
|
|
942
1016
|
}
|
|
943
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Path constructed from parsed markdown
|
|
944
1017
|
return [...candidates].filter(candidate => existsSync(candidate));
|
|
945
1018
|
}
|
|
946
1019
|
/**
|