@vibe-agent-toolkit/agent-skills 0.1.33 → 0.1.34
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/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/inventory/detectors/declared-but-missing.d.ts +11 -0
- package/dist/inventory/detectors/declared-but-missing.d.ts.map +1 -0
- package/dist/inventory/detectors/declared-but-missing.js +37 -0
- package/dist/inventory/detectors/declared-but-missing.js.map +1 -0
- package/dist/inventory/detectors/index.d.ts +5 -0
- package/dist/inventory/detectors/index.d.ts.map +1 -0
- package/dist/inventory/detectors/index.js +5 -0
- package/dist/inventory/detectors/index.js.map +1 -0
- package/dist/inventory/detectors/marketplace-source-missing.d.ts +12 -0
- package/dist/inventory/detectors/marketplace-source-missing.d.ts.map +1 -0
- package/dist/inventory/detectors/marketplace-source-missing.js +20 -0
- package/dist/inventory/detectors/marketplace-source-missing.js.map +1 -0
- package/dist/inventory/detectors/present-but-undeclared.d.ts +13 -0
- package/dist/inventory/detectors/present-but-undeclared.d.ts.map +1 -0
- package/dist/inventory/detectors/present-but-undeclared.js +47 -0
- package/dist/inventory/detectors/present-but-undeclared.js.map +1 -0
- package/dist/inventory/detectors/reference-target-missing.d.ts +11 -0
- package/dist/inventory/detectors/reference-target-missing.d.ts.map +1 -0
- package/dist/inventory/detectors/reference-target-missing.js +19 -0
- package/dist/inventory/detectors/reference-target-missing.js.map +1 -0
- package/dist/inventory/index.d.ts +5 -0
- package/dist/inventory/index.d.ts.map +1 -0
- package/dist/inventory/index.js +4 -0
- package/dist/inventory/index.js.map +1 -0
- package/dist/inventory/serialize.d.ts +24 -0
- package/dist/inventory/serialize.d.ts.map +1 -0
- package/dist/inventory/serialize.js +52 -0
- package/dist/inventory/serialize.js.map +1 -0
- package/dist/inventory/types.d.ts +126 -0
- package/dist/inventory/types.d.ts.map +1 -0
- package/dist/inventory/types.js +16 -0
- package/dist/inventory/types.js.map +1 -0
- package/dist/schemas/index.d.ts +0 -1
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +0 -1
- package/dist/schemas/index.js.map +1 -1
- package/dist/validators/bundled-resource-link-detection.d.ts +20 -0
- package/dist/validators/bundled-resource-link-detection.d.ts.map +1 -0
- package/dist/validators/bundled-resource-link-detection.js +92 -0
- package/dist/validators/bundled-resource-link-detection.js.map +1 -0
- package/dist/validators/code-registry.d.ts +1 -1
- package/dist/validators/code-registry.d.ts.map +1 -1
- package/dist/validators/code-registry.js +12 -0
- package/dist/validators/code-registry.js.map +1 -1
- package/dist/validators/format-detection.d.ts +21 -1
- package/dist/validators/format-detection.d.ts.map +1 -1
- package/dist/validators/format-detection.js +85 -1
- package/dist/validators/format-detection.js.map +1 -1
- package/dist/validators/imperative-body-detection.d.ts +15 -0
- package/dist/validators/imperative-body-detection.d.ts.map +1 -0
- package/dist/validators/imperative-body-detection.js +49 -0
- package/dist/validators/imperative-body-detection.js.map +1 -0
- package/dist/validators/index.d.ts +6 -4
- package/dist/validators/index.d.ts.map +1 -1
- package/dist/validators/index.js +4 -2
- package/dist/validators/index.js.map +1 -1
- package/dist/validators/kebab-case-detection.d.ts +22 -0
- package/dist/validators/kebab-case-detection.d.ts.map +1 -0
- package/dist/validators/kebab-case-detection.js +43 -0
- package/dist/validators/kebab-case-detection.js.map +1 -0
- package/dist/validators/packaging-validator.d.ts +9 -0
- package/dist/validators/packaging-validator.d.ts.map +1 -1
- package/dist/validators/packaging-validator.js +4 -1
- package/dist/validators/packaging-validator.js.map +1 -1
- package/dist/validators/plugin-recommended-fields.d.ts +26 -0
- package/dist/validators/plugin-recommended-fields.d.ts.map +1 -0
- package/dist/validators/plugin-recommended-fields.js +66 -0
- package/dist/validators/plugin-recommended-fields.js.map +1 -0
- package/dist/validators/skill-validator.d.ts.map +1 -1
- package/dist/validators/skill-validator.js +20 -4
- package/dist/validators/skill-validator.js.map +1 -1
- package/dist/validators/types.d.ts +23 -0
- package/dist/validators/types.d.ts.map +1 -1
- package/dist/validators/unified-validator.d.ts +9 -4
- package/dist/validators/unified-validator.d.ts.map +1 -1
- package/dist/validators/unified-validator.js +19 -6
- package/dist/validators/unified-validator.js.map +1 -1
- package/package.json +5 -5
- package/dist/schemas/claude-plugin.d.ts +0 -98
- package/dist/schemas/claude-plugin.d.ts.map +0 -1
- package/dist/schemas/claude-plugin.js +0 -79
- package/dist/schemas/claude-plugin.js.map +0 -1
- package/dist/validators/plugin-validator.d.ts +0 -12
- package/dist/validators/plugin-validator.d.ts.map +0 -1
- package/dist/validators/plugin-validator.js +0 -99
- package/dist/validators/plugin-validator.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -8,23 +8,26 @@ export { walkLinkGraph, type ExcludeRule, type LinkGraphResult, type LinkResolut
|
|
|
8
8
|
export { getTargetSubdir, CONTENT_TYPE_ROUTING_MAP, type TargetSubdirCategory, } from './content-type-routing.js';
|
|
9
9
|
export { mergeFilesConfig, matchLinkToFiles, computeDeferredPaths, type FilesMatchResult, } from './files-config.js';
|
|
10
10
|
export { AgentSkillFrontmatterJsonSchema, AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema, type AgentSkillFrontmatter, type VATAgentSkillFrontmatter, } from './schemas/agent-skill-frontmatter.js';
|
|
11
|
-
export { ClaudePluginJsonSchema, ClaudePluginSchema, type ClaudePlugin } from './schemas/claude-plugin.js';
|
|
12
11
|
export { MarketplaceManifestJsonSchema, MarketplaceManifestSchema, type MarketplaceManifest } from './schemas/marketplace-manifest.js';
|
|
13
12
|
export { PluginJsonSchema, type PluginJson } from './schemas/plugin-json.js';
|
|
14
13
|
export { parseFrontmatter, type FrontmatterResult, } from './parsers/frontmatter-parser.js';
|
|
14
|
+
export { calculateValidationStatus, generateFixSuggestion } from './validators/validation-utils.js';
|
|
15
|
+
export { detectKebabCaseViolation, type KebabCaseSurface } from './validators/kebab-case-detection.js';
|
|
16
|
+
export { detectMissingRecommendedFields } from './validators/plugin-recommended-fields.js';
|
|
15
17
|
export { observationToIssue, runCompatDetectors, type DetectorOutput, } from './validators/compat-detectors.js';
|
|
16
18
|
export { CODE_REGISTRY, type CodeRegistryEntry } from './validators/code-registry.js';
|
|
17
19
|
export { validateMarketplace } from './validators/marketplace-validator.js';
|
|
18
|
-
export { validatePlugin } from './validators/plugin-validator.js';
|
|
19
20
|
export { validateSkill } from './validators/skill-validator.js';
|
|
20
|
-
export { validate } from './validators/unified-validator.js';
|
|
21
|
-
export { detectResourceFormat } from './validators/format-detection.js';
|
|
22
|
-
export { validateSkillForPackaging, type ExcludedReferenceDetail, type PackagingValidationResult, type SkillPackagingConfig, type SkillValidationSharedContext, } from './validators/packaging-validator.js';
|
|
21
|
+
export { validate, type UnifiedValidateOptions } from './validators/unified-validator.js';
|
|
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
24
|
export { type ValidationConfig } from './validators/validation-framework.js';
|
|
24
25
|
export { createIssue, NAVIGATION_FILE_PATTERNS, VALIDATION_RULES, VALIDATION_THRESHOLDS, type RuleCategory, type ValidationRule, type ValidationRuleCode, } from './validators/validation-rules.js';
|
|
25
|
-
export type { ValidationResult, ValidationIssue, ValidateOptions, ResourceFormat, } from './validators/types.js';
|
|
26
|
+
export type { ValidationResult, ValidationIssue, ValidateOptions, ResourceFormat, Surface, } from './validators/types.js';
|
|
26
27
|
export { importSkillToAgent, type ImportOptions, type ImportResult, } from './import.js';
|
|
27
28
|
export type { EvidenceRecord, EvidenceSource, EvidenceConfidence, EvidenceLocation, PatternDefinition, Observation, } from './evidence/index.js';
|
|
28
29
|
export { PATTERN_REGISTRY, getPatternDefinition, assertPatternRegistered, deriveObservationsFromEvidence, } from './evidence/index.js';
|
|
29
30
|
export type { DeriveObservationsOptions, DerivationSubject } from './evidence/index.js';
|
|
31
|
+
export type { AnyInventory, BaseInventory, ComponentRef, DeclaredList, HookRef, InstallInventory, LspRef, MarketplaceInventory, McpRef, ParseError as InventoryParseError, PluginInventory, PluginRef, ResolvedReference, SkillInventory, } from './inventory/index.js';
|
|
32
|
+
export { isInstallInventory, isMarketplaceInventory, isPluginInventory, isSkillInventory, serializeInventory, serializeInventoryShallow, INVENTORY_SCHEMA_VERSION, detectDeclaredButMissing, detectMarketplacePluginSourceMissing, detectPresentButUndeclared, detectReferenceTargetMissing, } from './inventory/index.js';
|
|
30
33
|
//# 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,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,KAAK,oBAAoB,GAC1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,gBAAgB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,19 +8,21 @@ export { walkLinkGraph, } from './walk-link-graph.js';
|
|
|
8
8
|
export { getTargetSubdir, CONTENT_TYPE_ROUTING_MAP, } from './content-type-routing.js';
|
|
9
9
|
export { mergeFilesConfig, matchLinkToFiles, computeDeferredPaths, } from './files-config.js';
|
|
10
10
|
export { AgentSkillFrontmatterJsonSchema, AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema, } from './schemas/agent-skill-frontmatter.js';
|
|
11
|
-
export { ClaudePluginJsonSchema, ClaudePluginSchema } from './schemas/claude-plugin.js';
|
|
12
11
|
export { MarketplaceManifestJsonSchema, MarketplaceManifestSchema } from './schemas/marketplace-manifest.js';
|
|
13
12
|
export { PluginJsonSchema } from './schemas/plugin-json.js';
|
|
14
13
|
export { parseFrontmatter, } from './parsers/frontmatter-parser.js';
|
|
14
|
+
export { calculateValidationStatus, generateFixSuggestion } from './validators/validation-utils.js';
|
|
15
|
+
export { detectKebabCaseViolation } from './validators/kebab-case-detection.js';
|
|
16
|
+
export { detectMissingRecommendedFields } from './validators/plugin-recommended-fields.js';
|
|
15
17
|
export { observationToIssue, runCompatDetectors, } from './validators/compat-detectors.js';
|
|
16
18
|
export { CODE_REGISTRY } from './validators/code-registry.js';
|
|
17
19
|
export { validateMarketplace } from './validators/marketplace-validator.js';
|
|
18
|
-
export { validatePlugin } from './validators/plugin-validator.js';
|
|
19
20
|
export { validateSkill } from './validators/skill-validator.js';
|
|
20
21
|
export { validate } from './validators/unified-validator.js';
|
|
21
|
-
export { detectResourceFormat } from './validators/format-detection.js';
|
|
22
|
-
export { validateSkillForPackaging, } from './validators/packaging-validator.js';
|
|
22
|
+
export { detectResourceFormat, enumerateSurfaces } from './validators/format-detection.js';
|
|
23
|
+
export { crawlAndResolveRegistry, validateSkillForPackaging, } from './validators/packaging-validator.js';
|
|
23
24
|
export { createIssue, NAVIGATION_FILE_PATTERNS, VALIDATION_RULES, VALIDATION_THRESHOLDS, } from './validators/validation-rules.js';
|
|
24
25
|
export { importSkillToAgent, } from './import.js';
|
|
25
26
|
export { PATTERN_REGISTRY, getPatternDefinition, assertPatternRegistered, deriveObservationsFromEvidence, } from './evidence/index.js';
|
|
27
|
+
export { isInstallInventory, isMarketplaceInventory, isPluginInventory, isSkillInventory, serializeInventory, serializeInventoryShallow, INVENTORY_SCHEMA_VERSION, detectDeclaredButMissing, detectMarketplacePluginSourceMissing, detectPresentButUndeclared, detectReferenceTargetMissing, } from './inventory/index.js';
|
|
26
28
|
//# sourceMappingURL=index.js.map
|
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,iBAAiB,GAMlB,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,oBAAoB,GAErB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,GAG/B,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,
|
|
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,iBAAiB,GAMlB,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,oBAAoB,GAErB,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,EAAE,gBAAgB,EAAmB,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EACL,gBAAgB,GAEjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACpG,OAAO,EAAE,wBAAwB,EAAyB,MAAM,sCAAsC,CAAC;AACvG,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAEnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAA0B,MAAM,+BAA+B,CAAC;AACtF,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,uBAAuB,EACvB,yBAAyB,GAK1B,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,GAItB,MAAM,kCAAkC,CAAC;AAS1C,OAAO,EACL,kBAAkB,GAGnB,MAAM,aAAa,CAAC;AAWrB,OAAO,EACL,gBAAgB,EAChB,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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detector: COMPONENT_DECLARED_BUT_MISSING
|
|
3
|
+
*
|
|
4
|
+
* Pure function — no I/O. Consumes a PluginInventory and returns a
|
|
5
|
+
* ValidationIssue for each declared component path that does not exist on
|
|
6
|
+
* disk. Covers all seven component fields in the manifest.
|
|
7
|
+
*/
|
|
8
|
+
import type { ValidationIssue } from '../../validators/types.js';
|
|
9
|
+
import type { PluginInventory } from '../types.js';
|
|
10
|
+
export declare function detectDeclaredButMissing(inv: PluginInventory): ValidationIssue[];
|
|
11
|
+
//# sourceMappingURL=declared-but-missing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declared-but-missing.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/declared-but-missing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAanD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,EAAE,CAkBhF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detector: COMPONENT_DECLARED_BUT_MISSING
|
|
3
|
+
*
|
|
4
|
+
* Pure function — no I/O. Consumes a PluginInventory and returns a
|
|
5
|
+
* ValidationIssue for each declared component path that does not exist on
|
|
6
|
+
* disk. Covers all seven component fields in the manifest.
|
|
7
|
+
*/
|
|
8
|
+
const FIELDS = [
|
|
9
|
+
'skills',
|
|
10
|
+
'commands',
|
|
11
|
+
'agents',
|
|
12
|
+
'hooks',
|
|
13
|
+
'mcpServers',
|
|
14
|
+
'outputStyles',
|
|
15
|
+
'lspServers',
|
|
16
|
+
];
|
|
17
|
+
export function detectDeclaredButMissing(inv) {
|
|
18
|
+
const issues = [];
|
|
19
|
+
for (const field of FIELDS) {
|
|
20
|
+
const list = inv.declared[field];
|
|
21
|
+
if (list === null)
|
|
22
|
+
continue;
|
|
23
|
+
for (const ref of list) {
|
|
24
|
+
if (!ref.exists) {
|
|
25
|
+
issues.push({
|
|
26
|
+
severity: 'warning',
|
|
27
|
+
code: 'COMPONENT_DECLARED_BUT_MISSING',
|
|
28
|
+
message: `Manifest declares ${field}: "${ref.manifestPath}" but the path does not exist on disk.`,
|
|
29
|
+
location: `${inv.path}/.claude-plugin/plugin.json`,
|
|
30
|
+
fix: 'Add the missing file, remove the declaration, or correct the path.',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return issues;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=declared-but-missing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declared-but-missing.js","sourceRoot":"","sources":["../../../src/inventory/detectors/declared-but-missing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,MAAM,GAAqB;IAChC,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,cAAc;IACd,YAAY;CACZ,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,GAAoB;IAC5D,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAC5B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;gBACjB,MAAM,CAAC,IAAI,CAAC;oBACX,QAAQ,EAAE,SAAS;oBACnB,IAAI,EAAE,gCAAgC;oBACtC,OAAO,EAAE,qBAAqB,KAAK,MAAM,GAAG,CAAC,YAAY,wCAAwC;oBACjG,QAAQ,EAAE,GAAG,GAAG,CAAC,IAAI,6BAA6B;oBAClD,GAAG,EAAE,oEAAoE;iBACzE,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { detectDeclaredButMissing } from './declared-but-missing.js';
|
|
2
|
+
export { detectMarketplacePluginSourceMissing } from './marketplace-source-missing.js';
|
|
3
|
+
export { detectPresentButUndeclared } from './present-but-undeclared.js';
|
|
4
|
+
export { detectReferenceTargetMissing } from './reference-target-missing.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { detectDeclaredButMissing } from './declared-but-missing.js';
|
|
2
|
+
export { detectMarketplacePluginSourceMissing } from './marketplace-source-missing.js';
|
|
3
|
+
export { detectPresentButUndeclared } from './present-but-undeclared.js';
|
|
4
|
+
export { detectReferenceTargetMissing } from './reference-target-missing.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/inventory/detectors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,oCAAoC,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detector: MARKETPLACE_PLUGIN_SOURCE_MISSING
|
|
3
|
+
*
|
|
4
|
+
* Pure function — no I/O. Consumes a MarketplaceInventory and returns a
|
|
5
|
+
* ValidationIssue for each path-sourced plugin declaration whose resolved
|
|
6
|
+
* path does not exist on disk. Git/npm/unknown source types are out of scope
|
|
7
|
+
* and are silently skipped.
|
|
8
|
+
*/
|
|
9
|
+
import type { ValidationIssue } from '../../validators/types.js';
|
|
10
|
+
import type { MarketplaceInventory } from '../types.js';
|
|
11
|
+
export declare function detectMarketplacePluginSourceMissing(inv: MarketplaceInventory): ValidationIssue[];
|
|
12
|
+
//# sourceMappingURL=marketplace-source-missing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace-source-missing.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/marketplace-source-missing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD,wBAAgB,oCAAoC,CAAC,GAAG,EAAE,oBAAoB,GAAG,eAAe,EAAE,CAUjG"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detector: MARKETPLACE_PLUGIN_SOURCE_MISSING
|
|
3
|
+
*
|
|
4
|
+
* Pure function — no I/O. Consumes a MarketplaceInventory and returns a
|
|
5
|
+
* ValidationIssue for each path-sourced plugin declaration whose resolved
|
|
6
|
+
* path does not exist on disk. Git/npm/unknown source types are out of scope
|
|
7
|
+
* and are silently skipped.
|
|
8
|
+
*/
|
|
9
|
+
export function detectMarketplacePluginSourceMissing(inv) {
|
|
10
|
+
return inv.declared.plugins
|
|
11
|
+
.filter(p => p.source === 'path' && !p.exists)
|
|
12
|
+
.map(p => ({
|
|
13
|
+
severity: 'error',
|
|
14
|
+
code: 'MARKETPLACE_PLUGIN_SOURCE_MISSING',
|
|
15
|
+
message: `Marketplace declares plugin with source "${p.manifestPath}" but the path does not exist.`,
|
|
16
|
+
location: p.resolvedPath,
|
|
17
|
+
fix: 'Correct the source path or remove the entry from marketplace.plugins[].',
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=marketplace-source-missing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketplace-source-missing.js","sourceRoot":"","sources":["../../../src/inventory/detectors/marketplace-source-missing.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,MAAM,UAAU,oCAAoC,CAAC,GAAyB;IAC7E,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;SAC7C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACV,QAAQ,EAAE,OAAgB;QAC1B,IAAI,EAAE,mCAA4C;QAClD,OAAO,EAAE,4CAA4C,CAAC,CAAC,YAAY,gCAAgC;QACnG,QAAQ,EAAE,CAAC,CAAC,YAAY;QACxB,GAAG,EAAE,yEAAyE;KAC9E,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detector: COMPONENT_PRESENT_BUT_UNDECLARED
|
|
3
|
+
*
|
|
4
|
+
* Pure function — no I/O. Consumes a PluginInventory and returns a
|
|
5
|
+
* ValidationIssue for each discovered component that is absent from the
|
|
6
|
+
* manifest's explicit declaration list. Fires only when the manifest
|
|
7
|
+
* declares an explicit list (including []) — omitting the field entirely
|
|
8
|
+
* means auto-discovery is intentional and this detector is silent.
|
|
9
|
+
*/
|
|
10
|
+
import type { ValidationIssue } from '../../validators/types.js';
|
|
11
|
+
import type { PluginInventory } from '../types.js';
|
|
12
|
+
export declare function detectPresentButUndeclared(inv: PluginInventory): ValidationIssue[];
|
|
13
|
+
//# sourceMappingURL=present-but-undeclared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"present-but-undeclared.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/present-but-undeclared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAgB,MAAM,aAAa,CAAC;AAEjE,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,EAAE,CAMlF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detector: COMPONENT_PRESENT_BUT_UNDECLARED
|
|
3
|
+
*
|
|
4
|
+
* Pure function — no I/O. Consumes a PluginInventory and returns a
|
|
5
|
+
* ValidationIssue for each discovered component that is absent from the
|
|
6
|
+
* manifest's explicit declaration list. Fires only when the manifest
|
|
7
|
+
* declares an explicit list (including []) — omitting the field entirely
|
|
8
|
+
* means auto-discovery is intentional and this detector is silent.
|
|
9
|
+
*/
|
|
10
|
+
export function detectPresentButUndeclared(inv) {
|
|
11
|
+
const issues = [];
|
|
12
|
+
checkSkills(inv, issues);
|
|
13
|
+
checkRefList('commands', inv.discovered.commands, inv.declared.commands, issues);
|
|
14
|
+
checkRefList('agents', inv.discovered.agents, inv.declared.agents, issues);
|
|
15
|
+
return issues;
|
|
16
|
+
}
|
|
17
|
+
function checkSkills(inv, issues) {
|
|
18
|
+
const declared = inv.declared.skills;
|
|
19
|
+
if (declared === null)
|
|
20
|
+
return; // auto-discovery intentional
|
|
21
|
+
const declaredResolved = new Set(declared.map(d => d.resolvedPath));
|
|
22
|
+
for (const skill of inv.discovered.skills) {
|
|
23
|
+
if (!declaredResolved.has(skill.path)) {
|
|
24
|
+
issues.push(makeIssue('skills', skill.path));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function checkRefList(field, discovered, declared, issues) {
|
|
29
|
+
if (declared === null)
|
|
30
|
+
return;
|
|
31
|
+
const declaredResolved = new Set(declared.map(d => d.resolvedPath));
|
|
32
|
+
for (const ref of discovered) {
|
|
33
|
+
if (!declaredResolved.has(ref.resolvedPath)) {
|
|
34
|
+
issues.push(makeIssue(field, ref.resolvedPath));
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function makeIssue(field, filePath) {
|
|
39
|
+
return {
|
|
40
|
+
severity: 'info',
|
|
41
|
+
code: 'COMPONENT_PRESENT_BUT_UNDECLARED',
|
|
42
|
+
message: `${field}: "${filePath}" is on disk but the manifest declares an explicit ${field} list that omits it.`,
|
|
43
|
+
location: filePath,
|
|
44
|
+
fix: `Add ${filePath} to the manifest's "${field}" field, or remove the file.`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=present-but-undeclared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"present-but-undeclared.js","sourceRoot":"","sources":["../../../src/inventory/detectors/present-but-undeclared.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,MAAM,UAAU,0BAA0B,CAAC,GAAoB;IAC9D,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACzB,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjF,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3E,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,GAAoB,EAAE,MAAyB;IACnE,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;IACrC,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,CAAC,6BAA6B;IAC5D,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CACpB,KAA4B,EAC5B,UAA0B,EAC1B,QAA+B,EAC/B,MAAyB;IAEzB,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO;IAC9B,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IACpE,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QACjD,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,QAAgB;IACjD,OAAO;QACN,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,kCAAkC;QACxC,OAAO,EAAE,GAAG,KAAK,MAAM,QAAQ,sDAAsD,KAAK,sBAAsB;QAChH,QAAQ,EAAE,QAAQ;QAClB,GAAG,EAAE,OAAO,QAAQ,uBAAuB,KAAK,8BAA8B;KAC9E,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detector: REFERENCE_TARGET_MISSING
|
|
3
|
+
*
|
|
4
|
+
* Pure function — no I/O. Consumes a PluginInventory and returns a
|
|
5
|
+
* ValidationIssue for each cross-component reference in the manifest that
|
|
6
|
+
* resolves to a path that does not exist on disk.
|
|
7
|
+
*/
|
|
8
|
+
import type { ValidationIssue } from '../../validators/types.js';
|
|
9
|
+
import type { PluginInventory } from '../types.js';
|
|
10
|
+
export declare function detectReferenceTargetMissing(inv: PluginInventory): ValidationIssue[];
|
|
11
|
+
//# sourceMappingURL=reference-target-missing.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-target-missing.d.ts","sourceRoot":"","sources":["../../../src/inventory/detectors/reference-target-missing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,eAAe,GAAG,eAAe,EAAE,CAUpF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detector: REFERENCE_TARGET_MISSING
|
|
3
|
+
*
|
|
4
|
+
* Pure function — no I/O. Consumes a PluginInventory and returns a
|
|
5
|
+
* ValidationIssue for each cross-component reference in the manifest that
|
|
6
|
+
* resolves to a path that does not exist on disk.
|
|
7
|
+
*/
|
|
8
|
+
export function detectReferenceTargetMissing(inv) {
|
|
9
|
+
return inv.references
|
|
10
|
+
.filter(ref => !ref.exists)
|
|
11
|
+
.map(ref => ({
|
|
12
|
+
severity: 'error',
|
|
13
|
+
code: 'REFERENCE_TARGET_MISSING',
|
|
14
|
+
message: `Reference at ${ref.from} resolves to "${ref.to}" which does not exist.`,
|
|
15
|
+
location: ref.to,
|
|
16
|
+
fix: 'Add the referenced file or correct the path in the manifest.',
|
|
17
|
+
}));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=reference-target-missing.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-target-missing.js","sourceRoot":"","sources":["../../../src/inventory/detectors/reference-target-missing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,MAAM,UAAU,4BAA4B,CAAC,GAAoB;IAChE,OAAO,GAAG,CAAC,UAAU;SACnB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;SAC1B,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACZ,QAAQ,EAAE,OAAgB;QAC1B,IAAI,EAAE,0BAAmC;QACzC,OAAO,EAAE,gBAAgB,GAAG,CAAC,IAAI,iBAAiB,GAAG,CAAC,EAAE,yBAAyB;QACjF,QAAQ,EAAE,GAAG,CAAC,EAAE;QAChB,GAAG,EAAE,8DAA8D;KACnE,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { AnyInventory, BaseInventory, ComponentRef, DeclaredList, HookRef, InstallInventory, LspRef, MarketplaceInventory, McpRef, ParseError, PluginInventory, PluginRef, ResolvedReference, SkillInventory, } from './types.js';
|
|
2
|
+
export { isInstallInventory, isMarketplaceInventory, isPluginInventory, isSkillInventory, } from './types.js';
|
|
3
|
+
export { serializeInventory, serializeInventoryShallow, INVENTORY_SCHEMA_VERSION } from './serialize.js';
|
|
4
|
+
export { detectDeclaredButMissing, detectMarketplacePluginSourceMissing, detectPresentButUndeclared, detectReferenceTargetMissing, } from './detectors/index.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inventory/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,MAAM,EACN,oBAAoB,EACpB,MAAM,EACN,UAAU,EACV,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,cAAc,GACd,MAAM,YAAY,CAAC;AAEpB,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACN,wBAAwB,EACxB,oCAAoC,EACpC,0BAA0B,EAC1B,4BAA4B,GAC5B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { isInstallInventory, isMarketplaceInventory, isPluginInventory, isSkillInventory, } from './types.js';
|
|
2
|
+
export { serializeInventory, serializeInventoryShallow, INVENTORY_SCHEMA_VERSION } from './serialize.js';
|
|
3
|
+
export { detectDeclaredButMissing, detectMarketplacePluginSourceMissing, detectPresentButUndeclared, detectReferenceTargetMissing, } from './detectors/index.js';
|
|
4
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/inventory/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,iBAAiB,EACjB,gBAAgB,GAChB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAEzG,OAAO,EACN,wBAAwB,EACxB,oCAAoC,EACpC,0BAA0B,EAC1B,4BAA4B,GAC5B,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { AnyInventory } from './types.js';
|
|
2
|
+
export declare const INVENTORY_SCHEMA_VERSION = "vat.inventory/v1alpha";
|
|
3
|
+
type Format = 'yaml' | 'json';
|
|
4
|
+
/**
|
|
5
|
+
* Serialize an inventory with a top-level schema discriminator.
|
|
6
|
+
*
|
|
7
|
+
* The discriminator must come FIRST in the output so consumers can
|
|
8
|
+
* sniff the schema version without parsing the whole document.
|
|
9
|
+
*/
|
|
10
|
+
export declare function serializeInventory(inv: AnyInventory, format?: Format): string;
|
|
11
|
+
/**
|
|
12
|
+
* Shallow projection: keep top-level structure but drop transitive nesting.
|
|
13
|
+
*
|
|
14
|
+
* - Plugin → discovered.skills replaced with [] (the skills list is preserved
|
|
15
|
+
* as ComponentRefs in declared.skills if the manifest declared them).
|
|
16
|
+
* - Marketplace → discovered.plugins replaced with [].
|
|
17
|
+
* - Install → each marketplace and plugin shallow-projected (their own
|
|
18
|
+
* discovered children dropped, but path/manifest/declared kept).
|
|
19
|
+
*
|
|
20
|
+
* Use case: tooling that wants top-level structure without the bulk.
|
|
21
|
+
*/
|
|
22
|
+
export declare function serializeInventoryShallow(inv: AnyInventory, format?: Format): string;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=serialize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/inventory/serialize.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAA2D,MAAM,YAAY,CAAC;AAExG,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAEhE,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9B;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,GAAE,MAAe,GAAG,MAAM,CAMrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,GAAE,MAAe,GAAG,MAAM,CAE5F"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import yaml from 'js-yaml';
|
|
2
|
+
export const INVENTORY_SCHEMA_VERSION = 'vat.inventory/v1alpha';
|
|
3
|
+
/**
|
|
4
|
+
* Serialize an inventory with a top-level schema discriminator.
|
|
5
|
+
*
|
|
6
|
+
* The discriminator must come FIRST in the output so consumers can
|
|
7
|
+
* sniff the schema version without parsing the whole document.
|
|
8
|
+
*/
|
|
9
|
+
export function serializeInventory(inv, format = 'yaml') {
|
|
10
|
+
const envelope = { schema: INVENTORY_SCHEMA_VERSION, ...inv };
|
|
11
|
+
if (format === 'json') {
|
|
12
|
+
return JSON.stringify(envelope, null, 2) + '\n';
|
|
13
|
+
}
|
|
14
|
+
return yaml.dump(envelope, { noRefs: true, lineWidth: 120, sortKeys: false });
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Shallow projection: keep top-level structure but drop transitive nesting.
|
|
18
|
+
*
|
|
19
|
+
* - Plugin → discovered.skills replaced with [] (the skills list is preserved
|
|
20
|
+
* as ComponentRefs in declared.skills if the manifest declared them).
|
|
21
|
+
* - Marketplace → discovered.plugins replaced with [].
|
|
22
|
+
* - Install → each marketplace and plugin shallow-projected (their own
|
|
23
|
+
* discovered children dropped, but path/manifest/declared kept).
|
|
24
|
+
*
|
|
25
|
+
* Use case: tooling that wants top-level structure without the bulk.
|
|
26
|
+
*/
|
|
27
|
+
export function serializeInventoryShallow(inv, format = 'yaml') {
|
|
28
|
+
return serializeInventory(shallowProject(inv), format);
|
|
29
|
+
}
|
|
30
|
+
function shallowProject(inv) {
|
|
31
|
+
if (inv.kind === 'plugin') {
|
|
32
|
+
const projected = { ...inv, discovered: { ...inv.discovered, skills: [] } };
|
|
33
|
+
return projected;
|
|
34
|
+
}
|
|
35
|
+
if (inv.kind === 'marketplace') {
|
|
36
|
+
const projected = { ...inv, discovered: { ...inv.discovered, plugins: [] } };
|
|
37
|
+
return projected;
|
|
38
|
+
}
|
|
39
|
+
if (inv.kind === 'install') {
|
|
40
|
+
// Project each child shallow: marketplaces lose discovered.plugins,
|
|
41
|
+
// plugins lose discovered.skills, but each child still carries its
|
|
42
|
+
// path, manifest, and declared lists.
|
|
43
|
+
const projected = {
|
|
44
|
+
...inv,
|
|
45
|
+
marketplaces: inv.marketplaces.map((m) => shallowProject(m)),
|
|
46
|
+
plugins: inv.plugins.map((p) => shallowProject(p)),
|
|
47
|
+
};
|
|
48
|
+
return projected;
|
|
49
|
+
}
|
|
50
|
+
return inv;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=serialize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/inventory/serialize.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAC;AAI3B,MAAM,CAAC,MAAM,wBAAwB,GAAG,uBAAuB,CAAC;AAIhE;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAiB,EAAE,SAAiB,MAAM;IAC5E,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,wBAAwB,EAAE,GAAG,GAAG,EAAE,CAAC;IAC9D,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAiB,EAAE,SAAiB,MAAM;IACnF,OAAO,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,GAAiB;IACxC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAoB,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;QAC7F,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAChC,MAAM,SAAS,GAAyB,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;QACnG,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,oEAAoE;QACpE,mEAAmE;QACnE,sCAAsC;QACtC,MAAM,SAAS,GAAqB;YACnC,GAAG,GAAG;YACN,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAyB,CAAC;YACpF,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAoB,CAAC;SACrE,CAAC;QACF,OAAO,SAAS,CAAC;IAClB,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vendor-neutral inventory interfaces.
|
|
3
|
+
*
|
|
4
|
+
* The inventory layer is a single structural source of truth: "what does
|
|
5
|
+
* this artifact (plugin, marketplace, skill, install root) actually
|
|
6
|
+
* contain?" Detectors consume these interfaces; they never re-walk the
|
|
7
|
+
* filesystem.
|
|
8
|
+
*
|
|
9
|
+
* Concrete vendor implementations (e.g. ClaudePluginInventory) live in
|
|
10
|
+
* vendor-specific packages.
|
|
11
|
+
*/
|
|
12
|
+
export type ParseError = {
|
|
13
|
+
path: string;
|
|
14
|
+
message: string;
|
|
15
|
+
line?: number;
|
|
16
|
+
};
|
|
17
|
+
export type ComponentRef = {
|
|
18
|
+
/** Path as written in the manifest (relative or absolute). */
|
|
19
|
+
manifestPath: string;
|
|
20
|
+
/** Resolved absolute, normalized path (POSIX forward slashes via safePath.resolve). */
|
|
21
|
+
resolvedPath: string;
|
|
22
|
+
exists: boolean;
|
|
23
|
+
};
|
|
24
|
+
export type HookRef = ComponentRef & {
|
|
25
|
+
/** Set when the manifest declared an inline config rather than a path. */
|
|
26
|
+
inline?: object;
|
|
27
|
+
};
|
|
28
|
+
export type McpRef = ComponentRef & {
|
|
29
|
+
/** Set when the manifest declared an inline config rather than a path. */
|
|
30
|
+
inline?: object;
|
|
31
|
+
};
|
|
32
|
+
export type LspRef = ComponentRef & {
|
|
33
|
+
/** Set when the manifest declared an inline config rather than a path. */
|
|
34
|
+
inline?: object;
|
|
35
|
+
};
|
|
36
|
+
export type PluginRef = ComponentRef & {
|
|
37
|
+
source: 'path' | 'git' | 'npm' | 'unknown';
|
|
38
|
+
};
|
|
39
|
+
export type ResolvedReference = {
|
|
40
|
+
/** Dotted path into the manifest, e.g. "hooks[0].script". */
|
|
41
|
+
from: string;
|
|
42
|
+
/** Resolved absolute path. */
|
|
43
|
+
to: string;
|
|
44
|
+
exists: boolean;
|
|
45
|
+
};
|
|
46
|
+
export interface BaseInventory {
|
|
47
|
+
kind: 'marketplace' | 'plugin' | 'skill' | 'install';
|
|
48
|
+
vendor: string;
|
|
49
|
+
path: string;
|
|
50
|
+
parseErrors: ParseError[];
|
|
51
|
+
}
|
|
52
|
+
export interface MarketplaceInventory extends BaseInventory {
|
|
53
|
+
kind: 'marketplace';
|
|
54
|
+
manifest: {
|
|
55
|
+
name?: string;
|
|
56
|
+
description?: string;
|
|
57
|
+
};
|
|
58
|
+
declared: {
|
|
59
|
+
plugins: PluginRef[];
|
|
60
|
+
};
|
|
61
|
+
discovered: {
|
|
62
|
+
plugins: PluginInventory[];
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
/** Tri-state declaration; null = manifest omitted the field, [] = explicit empty. */
|
|
66
|
+
export type DeclaredList<T> = T[] | null;
|
|
67
|
+
export interface PluginInventory extends BaseInventory {
|
|
68
|
+
kind: 'plugin';
|
|
69
|
+
manifest: {
|
|
70
|
+
name?: string;
|
|
71
|
+
version?: string;
|
|
72
|
+
description?: string;
|
|
73
|
+
};
|
|
74
|
+
shape: 'claude-plugin' | 'skill-claude-plugin';
|
|
75
|
+
declared: {
|
|
76
|
+
skills: DeclaredList<ComponentRef>;
|
|
77
|
+
commands: DeclaredList<ComponentRef>;
|
|
78
|
+
agents: DeclaredList<ComponentRef>;
|
|
79
|
+
hooks: DeclaredList<HookRef>;
|
|
80
|
+
mcpServers: DeclaredList<McpRef>;
|
|
81
|
+
outputStyles: DeclaredList<ComponentRef>;
|
|
82
|
+
lspServers: DeclaredList<LspRef>;
|
|
83
|
+
};
|
|
84
|
+
discovered: {
|
|
85
|
+
skills: SkillInventory[];
|
|
86
|
+
commands: ComponentRef[];
|
|
87
|
+
agents: ComponentRef[];
|
|
88
|
+
};
|
|
89
|
+
references: ResolvedReference[];
|
|
90
|
+
unexpected: {
|
|
91
|
+
skillManifests: string[];
|
|
92
|
+
pluginManifests: string[];
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
export interface SkillInventory extends BaseInventory {
|
|
96
|
+
kind: 'skill';
|
|
97
|
+
manifest: {
|
|
98
|
+
name: string;
|
|
99
|
+
description?: string;
|
|
100
|
+
};
|
|
101
|
+
files: {
|
|
102
|
+
skillMd: string;
|
|
103
|
+
linked: string[];
|
|
104
|
+
packaged: string[];
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
export interface InstallInventory extends BaseInventory {
|
|
108
|
+
kind: 'install';
|
|
109
|
+
installRoot: string;
|
|
110
|
+
marketplaces: MarketplaceInventory[];
|
|
111
|
+
plugins: PluginInventory[];
|
|
112
|
+
}
|
|
113
|
+
export type AnyInventory = MarketplaceInventory | PluginInventory | SkillInventory | InstallInventory;
|
|
114
|
+
export declare const isPluginInventory: (v: {
|
|
115
|
+
kind: string;
|
|
116
|
+
}) => v is PluginInventory;
|
|
117
|
+
export declare const isSkillInventory: (v: {
|
|
118
|
+
kind: string;
|
|
119
|
+
}) => v is SkillInventory;
|
|
120
|
+
export declare const isMarketplaceInventory: (v: {
|
|
121
|
+
kind: string;
|
|
122
|
+
}) => v is MarketplaceInventory;
|
|
123
|
+
export declare const isInstallInventory: (v: {
|
|
124
|
+
kind: string;
|
|
125
|
+
}) => v is InstallInventory;
|
|
126
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/inventory/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vendor-neutral inventory interfaces.
|
|
3
|
+
*
|
|
4
|
+
* The inventory layer is a single structural source of truth: "what does
|
|
5
|
+
* this artifact (plugin, marketplace, skill, install root) actually
|
|
6
|
+
* contain?" Detectors consume these interfaces; they never re-walk the
|
|
7
|
+
* filesystem.
|
|
8
|
+
*
|
|
9
|
+
* Concrete vendor implementations (e.g. ClaudePluginInventory) live in
|
|
10
|
+
* vendor-specific packages.
|
|
11
|
+
*/
|
|
12
|
+
export const isPluginInventory = (v) => v.kind === 'plugin';
|
|
13
|
+
export const isSkillInventory = (v) => v.kind === 'skill';
|
|
14
|
+
export const isMarketplaceInventory = (v) => v.kind === 'marketplace';
|
|
15
|
+
export const isInstallInventory = (v) => v.kind === 'install';
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/inventory/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAgHH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAmB,EAAwB,EAAE,CAC9E,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAErB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAmB,EAAuB,EAAE,CAC5E,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;AAEpB,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAmB,EAA6B,EAAE,CACxF,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC;AAE1B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAmB,EAAyB,EAAE,CAChF,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC"}
|
package/dist/schemas/index.d.ts
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Schema exports for agent-skills package
|
|
3
3
|
*/
|
|
4
4
|
export { AgentSkillFrontmatterJsonSchema, AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema, type AgentSkillFrontmatter, type VATAgentSkillFrontmatter, } from './agent-skill-frontmatter.js';
|
|
5
|
-
export { ClaudePluginJsonSchema, ClaudePluginSchema, type ClaudePlugin } from './claude-plugin.js';
|
|
6
5
|
export { PluginJsonSchema, type PluginJson } from './plugin-json.js';
|
|
7
6
|
export { InstalledPluginsRegistryJsonSchema, InstalledPluginsRegistrySchema, type InstalledPluginsRegistry, type PluginInstallation, } from './installed-plugins-registry.js';
|
|
8
7
|
export { KnownMarketplacesRegistryJsonSchema, KnownMarketplacesRegistrySchema, type KnownMarketplacesRegistry, type MarketplaceEntry, type MarketplaceSource, } from './known-marketplaces-registry.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schemas/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,+BAA+B,EAC/B,2BAA2B,EAC3B,8BAA8B,EAC9B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EACL,kCAAkC,EAClC,8BAA8B,EAC9B,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,GACxB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,mCAAmC,EACnC,+BAA+B,EAC/B,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,6BAA6B,EAC7B,yBAAyB,EACzB,KAAK,mBAAmB,GACzB,MAAM,2BAA2B,CAAC"}
|
package/dist/schemas/index.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Schema exports for agent-skills package
|
|
3
3
|
*/
|
|
4
4
|
export { AgentSkillFrontmatterJsonSchema, AgentSkillFrontmatterSchema, VATAgentSkillFrontmatterSchema, } from './agent-skill-frontmatter.js';
|
|
5
|
-
export { ClaudePluginJsonSchema, ClaudePluginSchema } from './claude-plugin.js';
|
|
6
5
|
export { PluginJsonSchema } from './plugin-json.js';
|
|
7
6
|
export { InstalledPluginsRegistryJsonSchema, InstalledPluginsRegistrySchema, } from './installed-plugins-registry.js';
|
|
8
7
|
export { KnownMarketplacesRegistryJsonSchema, KnownMarketplacesRegistrySchema, } from './known-marketplaces-registry.js';
|