@cleocode/caamp 1.0.5 → 1.1.1
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 +0 -0
- package/dist/{chunk-HUMRYJPE.js → chunk-7YV3KXEJ.js} +397 -61
- package/dist/chunk-7YV3KXEJ.js.map +1 -0
- package/dist/cli.d.ts +0 -0
- package/dist/cli.js +20 -20
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +270 -86
- package/dist/index.js +17 -1
- package/dist/index.js.map +0 -0
- package/package.json +6 -4
- package/providers/registry.json +0 -0
- package/dist/chunk-HUMRYJPE.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* Core type definitions
|
|
4
|
-
*/
|
|
5
|
-
/**
|
|
6
|
-
* Skill entry from the `@cleocode/ct-skills` skills.json catalog.
|
|
2
|
+
* SkillLibrary interface - SDK standard contract for skill libraries.
|
|
7
3
|
*
|
|
8
|
-
*
|
|
4
|
+
* Any directory or module that conforms to this interface can be registered
|
|
5
|
+
* with CAAMP as a skill library. Both project-bundled libraries and
|
|
6
|
+
* marketplace-installed skills go through this contract.
|
|
9
7
|
*/
|
|
10
|
-
|
|
8
|
+
/** A single skill entry in a library catalog. */
|
|
9
|
+
interface SkillLibraryEntry {
|
|
11
10
|
/** Skill name (e.g. `"ct-research-agent"`). */
|
|
12
11
|
name: string;
|
|
13
12
|
/** Human-readable description. */
|
|
@@ -37,19 +36,15 @@ interface CtSkillEntry {
|
|
|
37
36
|
/** Arbitrary metadata. */
|
|
38
37
|
metadata: Record<string, unknown>;
|
|
39
38
|
}
|
|
40
|
-
/**
|
|
41
|
-
|
|
42
|
-
*/
|
|
43
|
-
interface CtValidationResult {
|
|
39
|
+
/** Validation result from skill frontmatter validation. */
|
|
40
|
+
interface SkillLibraryValidationResult {
|
|
44
41
|
/** Whether the skill passed validation (no error-level issues). */
|
|
45
42
|
valid: boolean;
|
|
46
43
|
/** Individual validation issues. */
|
|
47
|
-
issues:
|
|
44
|
+
issues: SkillLibraryValidationIssue[];
|
|
48
45
|
}
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
*/
|
|
52
|
-
interface CtValidationIssue {
|
|
46
|
+
/** A single validation issue. */
|
|
47
|
+
interface SkillLibraryValidationIssue {
|
|
53
48
|
/** Severity level. */
|
|
54
49
|
level: "error" | "warn";
|
|
55
50
|
/** Field that triggered the issue. */
|
|
@@ -57,10 +52,8 @@ interface CtValidationIssue {
|
|
|
57
52
|
/** Human-readable message. */
|
|
58
53
|
message: string;
|
|
59
54
|
}
|
|
60
|
-
/**
|
|
61
|
-
|
|
62
|
-
*/
|
|
63
|
-
interface CtProfileDefinition {
|
|
55
|
+
/** Profile definition for grouped skill installation. */
|
|
56
|
+
interface SkillLibraryProfile {
|
|
64
57
|
/** Profile name (e.g. `"minimal"`, `"core"`, `"recommended"`, `"full"`). */
|
|
65
58
|
name: string;
|
|
66
59
|
/** Human-readable description. */
|
|
@@ -74,10 +67,8 @@ interface CtProfileDefinition {
|
|
|
74
67
|
/** Protocol names to include. */
|
|
75
68
|
includeProtocols: string[];
|
|
76
69
|
}
|
|
77
|
-
/**
|
|
78
|
-
|
|
79
|
-
*/
|
|
80
|
-
interface CtDispatchMatrix {
|
|
70
|
+
/** Dispatch matrix for task routing to skills. */
|
|
71
|
+
interface SkillLibraryDispatchMatrix {
|
|
81
72
|
/** Task type to skill mapping. */
|
|
82
73
|
by_task_type: Record<string, string>;
|
|
83
74
|
/** Keyword to skill mapping. */
|
|
@@ -85,23 +76,8 @@ interface CtDispatchMatrix {
|
|
|
85
76
|
/** Protocol to skill mapping. */
|
|
86
77
|
by_protocol: Record<string, string>;
|
|
87
78
|
}
|
|
88
|
-
/**
|
|
89
|
-
|
|
90
|
-
*/
|
|
91
|
-
interface CtManifest {
|
|
92
|
-
/** JSON schema reference. */
|
|
93
|
-
$schema: string;
|
|
94
|
-
/** Metadata. */
|
|
95
|
-
_meta: Record<string, unknown>;
|
|
96
|
-
/** Dispatch matrix for skill routing. */
|
|
97
|
-
dispatch_matrix: CtDispatchMatrix;
|
|
98
|
-
/** Manifest skill entries. */
|
|
99
|
-
skills: CtManifestSkill[];
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Skill entry within the ct-skills manifest.
|
|
103
|
-
*/
|
|
104
|
-
interface CtManifestSkill {
|
|
79
|
+
/** Skill entry within the library manifest. */
|
|
80
|
+
interface SkillLibraryManifestSkill {
|
|
105
81
|
/** Skill name. */
|
|
106
82
|
name: string;
|
|
107
83
|
/** Version. */
|
|
@@ -140,6 +116,95 @@ interface CtManifestSkill {
|
|
|
140
116
|
requires_epic: boolean;
|
|
141
117
|
};
|
|
142
118
|
}
|
|
119
|
+
/** Full manifest structure for a skill library. */
|
|
120
|
+
interface SkillLibraryManifest {
|
|
121
|
+
/** JSON schema reference. */
|
|
122
|
+
$schema: string;
|
|
123
|
+
/** Metadata. */
|
|
124
|
+
_meta: Record<string, unknown>;
|
|
125
|
+
/** Dispatch matrix for skill routing. */
|
|
126
|
+
dispatch_matrix: SkillLibraryDispatchMatrix;
|
|
127
|
+
/** Manifest skill entries. */
|
|
128
|
+
skills: SkillLibraryManifestSkill[];
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Standard interface for a skill library.
|
|
132
|
+
*
|
|
133
|
+
* Any directory or module providing skills must implement this contract.
|
|
134
|
+
* CAAMP uses it to discover, resolve, and install skills from any source.
|
|
135
|
+
*/
|
|
136
|
+
interface SkillLibrary {
|
|
137
|
+
/** Library version string. */
|
|
138
|
+
readonly version: string;
|
|
139
|
+
/** Absolute path to the library root directory. */
|
|
140
|
+
readonly libraryRoot: string;
|
|
141
|
+
/** All skill entries in the catalog. */
|
|
142
|
+
readonly skills: SkillLibraryEntry[];
|
|
143
|
+
/** The parsed manifest. */
|
|
144
|
+
readonly manifest: SkillLibraryManifest;
|
|
145
|
+
/** List all skill names. */
|
|
146
|
+
listSkills(): string[];
|
|
147
|
+
/** Get skill metadata by name. */
|
|
148
|
+
getSkill(name: string): SkillLibraryEntry | undefined;
|
|
149
|
+
/** Resolve absolute path to a skill's SKILL.md file. */
|
|
150
|
+
getSkillPath(name: string): string;
|
|
151
|
+
/** Resolve absolute path to a skill's directory. */
|
|
152
|
+
getSkillDir(name: string): string;
|
|
153
|
+
/** Read a skill's SKILL.md content as a string. */
|
|
154
|
+
readSkillContent(name: string): string;
|
|
155
|
+
/** Get all skills where `core === true`. */
|
|
156
|
+
getCoreSkills(): SkillLibraryEntry[];
|
|
157
|
+
/** Get skills filtered by category. */
|
|
158
|
+
getSkillsByCategory(category: SkillLibraryEntry["category"]): SkillLibraryEntry[];
|
|
159
|
+
/** Get direct dependency names for a skill. */
|
|
160
|
+
getSkillDependencies(name: string): string[];
|
|
161
|
+
/** Resolve full dependency tree for a set of skill names (includes transitive deps). */
|
|
162
|
+
resolveDependencyTree(names: string[]): string[];
|
|
163
|
+
/** List available profile names. */
|
|
164
|
+
listProfiles(): string[];
|
|
165
|
+
/** Get a profile definition by name. */
|
|
166
|
+
getProfile(name: string): SkillLibraryProfile | undefined;
|
|
167
|
+
/** Resolve a profile to its full skill list (follows extends, resolves deps). */
|
|
168
|
+
resolveProfile(name: string): string[];
|
|
169
|
+
/** List available shared resource names. */
|
|
170
|
+
listSharedResources(): string[];
|
|
171
|
+
/** Get absolute path to a shared resource file. */
|
|
172
|
+
getSharedResourcePath(name: string): string | undefined;
|
|
173
|
+
/** Read a shared resource file content. */
|
|
174
|
+
readSharedResource(name: string): string | undefined;
|
|
175
|
+
/** List available protocol names. */
|
|
176
|
+
listProtocols(): string[];
|
|
177
|
+
/** Get absolute path to a protocol file. */
|
|
178
|
+
getProtocolPath(name: string): string | undefined;
|
|
179
|
+
/** Read a protocol file content. */
|
|
180
|
+
readProtocol(name: string): string | undefined;
|
|
181
|
+
/** Validate a single skill's frontmatter. */
|
|
182
|
+
validateSkillFrontmatter(name: string): SkillLibraryValidationResult;
|
|
183
|
+
/** Validate all skills. */
|
|
184
|
+
validateAll(): Map<string, SkillLibraryValidationResult>;
|
|
185
|
+
/** Get the dispatch matrix from the manifest. */
|
|
186
|
+
getDispatchMatrix(): SkillLibraryDispatchMatrix;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* CAAMP - Central AI Agent Managed Packages
|
|
191
|
+
* Core type definitions
|
|
192
|
+
*/
|
|
193
|
+
|
|
194
|
+
/** @deprecated Use `SkillLibraryEntry` instead. */
|
|
195
|
+
type CtSkillEntry = SkillLibraryEntry;
|
|
196
|
+
/** @deprecated Use `SkillLibraryValidationResult` instead. */
|
|
197
|
+
type CtValidationResult = SkillLibraryValidationResult;
|
|
198
|
+
/** @deprecated Use `SkillLibraryValidationIssue` instead. */
|
|
199
|
+
type CtValidationIssue = SkillLibraryValidationIssue;
|
|
200
|
+
/** @deprecated Use `SkillLibraryProfile` instead. */
|
|
201
|
+
type CtProfileDefinition = SkillLibraryProfile;
|
|
202
|
+
/** @deprecated Use `SkillLibraryDispatchMatrix` instead. */
|
|
203
|
+
type CtDispatchMatrix = SkillLibraryDispatchMatrix;
|
|
204
|
+
/** @deprecated Use `SkillLibraryManifest` instead. */
|
|
205
|
+
type CtManifest = SkillLibraryManifest;
|
|
206
|
+
/** @deprecated Use `SkillLibraryManifestSkill` instead. */
|
|
207
|
+
type CtManifestSkill = SkillLibraryManifestSkill;
|
|
143
208
|
/**
|
|
144
209
|
* Supported configuration file formats.
|
|
145
210
|
*
|
|
@@ -319,7 +384,7 @@ interface McpServerConfig {
|
|
|
319
384
|
* - `"gitlab"` - GitLab repository URL
|
|
320
385
|
* - `"local"` - Local filesystem path
|
|
321
386
|
*/
|
|
322
|
-
type SourceType = "remote" | "package" | "command" | "github" | "gitlab" | "local";
|
|
387
|
+
type SourceType = "remote" | "package" | "command" | "github" | "gitlab" | "local" | "library";
|
|
323
388
|
/**
|
|
324
389
|
* Result of parsing a source string into its typed components.
|
|
325
390
|
*
|
|
@@ -1584,68 +1649,94 @@ declare function parseSource(input: string): ParsedSource;
|
|
|
1584
1649
|
declare function isMarketplaceScoped(input: string): boolean;
|
|
1585
1650
|
|
|
1586
1651
|
/**
|
|
1587
|
-
*
|
|
1652
|
+
* Skill catalog - registry pattern for pluggable skill libraries.
|
|
1588
1653
|
*
|
|
1589
|
-
*
|
|
1590
|
-
*
|
|
1654
|
+
* Projects register their skill library via registerSkillLibrary() or
|
|
1655
|
+
* registerSkillLibraryFromPath(). If no library is registered, CAAMP
|
|
1656
|
+
* attempts auto-discovery via CAAMP_SKILL_LIBRARY env var or the
|
|
1657
|
+
* canonical ~/.agents/skill-library/ location.
|
|
1658
|
+
*
|
|
1659
|
+
* All public functions delegate to the registered SkillLibrary instance.
|
|
1591
1660
|
*/
|
|
1592
1661
|
|
|
1593
|
-
/**
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1662
|
+
/**
|
|
1663
|
+
* Register a SkillLibrary instance directly.
|
|
1664
|
+
*
|
|
1665
|
+
* @param library - A SkillLibrary implementation to use as the catalog
|
|
1666
|
+
*/
|
|
1667
|
+
declare function registerSkillLibrary(library: SkillLibrary): void;
|
|
1668
|
+
/**
|
|
1669
|
+
* Register a skill library by loading it from a directory path.
|
|
1670
|
+
*
|
|
1671
|
+
* Tries two strategies:
|
|
1672
|
+
* 1. If the directory has an `index.js`, loads it as a module
|
|
1673
|
+
* 2. Otherwise, builds a library from raw files (skills.json, etc.)
|
|
1674
|
+
*
|
|
1675
|
+
* @param root - Absolute path to the skill library root directory
|
|
1676
|
+
* @throws If the library cannot be loaded from the given path
|
|
1677
|
+
*/
|
|
1678
|
+
declare function registerSkillLibraryFromPath(root: string): void;
|
|
1679
|
+
/**
|
|
1680
|
+
* Clear the registered library. Primarily for testing.
|
|
1681
|
+
*/
|
|
1682
|
+
declare function clearRegisteredLibrary(): void;
|
|
1683
|
+
/**
|
|
1684
|
+
* Check if a skill library is available (registered or discoverable).
|
|
1685
|
+
* Returns false if no library is registered and auto-discovery fails.
|
|
1686
|
+
*/
|
|
1687
|
+
declare function isCatalogAvailable(): boolean;
|
|
1688
|
+
/** All skill entries from the catalog. */
|
|
1689
|
+
declare function getSkills(): SkillLibraryEntry[];
|
|
1690
|
+
/** The parsed manifest. */
|
|
1691
|
+
declare function getManifest(): SkillLibraryManifest;
|
|
1692
|
+
/** List all skill names. */
|
|
1598
1693
|
declare function listSkills(): string[];
|
|
1599
|
-
/** Get skill metadata
|
|
1600
|
-
declare function getSkill(name: string):
|
|
1601
|
-
/** Resolve absolute path to a skill's SKILL.md file */
|
|
1694
|
+
/** Get skill metadata by name. */
|
|
1695
|
+
declare function getSkill(name: string): SkillLibraryEntry | undefined;
|
|
1696
|
+
/** Resolve absolute path to a skill's SKILL.md file. */
|
|
1602
1697
|
declare function getSkillPath(name: string): string;
|
|
1603
|
-
/** Resolve absolute path to a skill's directory */
|
|
1698
|
+
/** Resolve absolute path to a skill's directory. */
|
|
1604
1699
|
declare function getSkillDir(name: string): string;
|
|
1605
|
-
/** Read a skill's SKILL.md content as a string */
|
|
1700
|
+
/** Read a skill's SKILL.md content as a string. */
|
|
1606
1701
|
declare function readSkillContent(name: string): string;
|
|
1607
|
-
/** Get all skills where core === true */
|
|
1608
|
-
declare function getCoreSkills():
|
|
1609
|
-
/** Get skills filtered by category */
|
|
1610
|
-
declare function getSkillsByCategory(category:
|
|
1611
|
-
/** Get direct dependency names for a skill */
|
|
1702
|
+
/** Get all skills where `core === true`. */
|
|
1703
|
+
declare function getCoreSkills(): SkillLibraryEntry[];
|
|
1704
|
+
/** Get skills filtered by category. */
|
|
1705
|
+
declare function getSkillsByCategory(category: SkillLibraryEntry["category"]): SkillLibraryEntry[];
|
|
1706
|
+
/** Get direct dependency names for a skill. */
|
|
1612
1707
|
declare function getSkillDependencies(name: string): string[];
|
|
1613
|
-
/** Resolve full dependency tree for a set of skill names (includes transitive deps) */
|
|
1708
|
+
/** Resolve full dependency tree for a set of skill names (includes transitive deps). */
|
|
1614
1709
|
declare function resolveDependencyTree(names: string[]): string[];
|
|
1615
|
-
/** List available profile names */
|
|
1710
|
+
/** List available profile names. */
|
|
1616
1711
|
declare function listProfiles(): string[];
|
|
1617
|
-
/** Get a profile definition by name */
|
|
1618
|
-
declare function getProfile(name: string):
|
|
1619
|
-
/** Resolve a profile to its full skill list (follows extends, resolves deps) */
|
|
1712
|
+
/** Get a profile definition by name. */
|
|
1713
|
+
declare function getProfile(name: string): SkillLibraryProfile | undefined;
|
|
1714
|
+
/** Resolve a profile to its full skill list (follows extends, resolves deps). */
|
|
1620
1715
|
declare function resolveProfile(name: string): string[];
|
|
1621
|
-
/** List available shared resource names */
|
|
1716
|
+
/** List available shared resource names. */
|
|
1622
1717
|
declare function listSharedResources(): string[];
|
|
1623
|
-
/** Get absolute path to a shared resource file */
|
|
1718
|
+
/** Get absolute path to a shared resource file. */
|
|
1624
1719
|
declare function getSharedResourcePath(name: string): string | undefined;
|
|
1625
|
-
/** Read a shared resource file content */
|
|
1720
|
+
/** Read a shared resource file content. */
|
|
1626
1721
|
declare function readSharedResource(name: string): string | undefined;
|
|
1627
|
-
/** List available protocol names */
|
|
1722
|
+
/** List available protocol names. */
|
|
1628
1723
|
declare function listProtocols(): string[];
|
|
1629
|
-
/** Get absolute path to a protocol file */
|
|
1724
|
+
/** Get absolute path to a protocol file. */
|
|
1630
1725
|
declare function getProtocolPath(name: string): string | undefined;
|
|
1631
|
-
/** Read a protocol file content */
|
|
1726
|
+
/** Read a protocol file content. */
|
|
1632
1727
|
declare function readProtocol(name: string): string | undefined;
|
|
1633
|
-
/** Validate a single skill's frontmatter */
|
|
1634
|
-
declare function validateSkillFrontmatter(name: string):
|
|
1635
|
-
/** Validate all skills */
|
|
1636
|
-
declare function validateAll(): Map<string,
|
|
1637
|
-
/** Get the dispatch matrix from manifest.
|
|
1638
|
-
declare function getDispatchMatrix():
|
|
1639
|
-
/**
|
|
1728
|
+
/** Validate a single skill's frontmatter. */
|
|
1729
|
+
declare function validateSkillFrontmatter(name: string): SkillLibraryValidationResult;
|
|
1730
|
+
/** Validate all skills. */
|
|
1731
|
+
declare function validateAll(): Map<string, SkillLibraryValidationResult>;
|
|
1732
|
+
/** Get the dispatch matrix from the manifest. */
|
|
1733
|
+
declare function getDispatchMatrix(): SkillLibraryDispatchMatrix;
|
|
1734
|
+
/** Library version string. */
|
|
1640
1735
|
declare function getVersion(): string;
|
|
1641
|
-
/** Absolute path to the
|
|
1736
|
+
/** Absolute path to the library root directory. */
|
|
1642
1737
|
declare function getLibraryRoot(): string;
|
|
1643
|
-
/**
|
|
1644
|
-
* Check if @cleocode/ct-skills is available.
|
|
1645
|
-
* Returns false if the package is not installed.
|
|
1646
|
-
*/
|
|
1647
|
-
declare function isCatalogAvailable(): boolean;
|
|
1648
1738
|
|
|
1739
|
+
declare const catalog_clearRegisteredLibrary: typeof clearRegisteredLibrary;
|
|
1649
1740
|
declare const catalog_getCoreSkills: typeof getCoreSkills;
|
|
1650
1741
|
declare const catalog_getDispatchMatrix: typeof getDispatchMatrix;
|
|
1651
1742
|
declare const catalog_getLibraryRoot: typeof getLibraryRoot;
|
|
@@ -1668,14 +1759,53 @@ declare const catalog_listSkills: typeof listSkills;
|
|
|
1668
1759
|
declare const catalog_readProtocol: typeof readProtocol;
|
|
1669
1760
|
declare const catalog_readSharedResource: typeof readSharedResource;
|
|
1670
1761
|
declare const catalog_readSkillContent: typeof readSkillContent;
|
|
1762
|
+
declare const catalog_registerSkillLibrary: typeof registerSkillLibrary;
|
|
1763
|
+
declare const catalog_registerSkillLibraryFromPath: typeof registerSkillLibraryFromPath;
|
|
1671
1764
|
declare const catalog_resolveDependencyTree: typeof resolveDependencyTree;
|
|
1672
1765
|
declare const catalog_resolveProfile: typeof resolveProfile;
|
|
1673
1766
|
declare const catalog_validateAll: typeof validateAll;
|
|
1674
1767
|
declare const catalog_validateSkillFrontmatter: typeof validateSkillFrontmatter;
|
|
1675
1768
|
declare namespace catalog {
|
|
1676
|
-
export { catalog_getCoreSkills as getCoreSkills, catalog_getDispatchMatrix as getDispatchMatrix, catalog_getLibraryRoot as getLibraryRoot, catalog_getManifest as getManifest, catalog_getProfile as getProfile, catalog_getProtocolPath as getProtocolPath, catalog_getSharedResourcePath as getSharedResourcePath, catalog_getSkill as getSkill, catalog_getSkillDependencies as getSkillDependencies, catalog_getSkillDir as getSkillDir, catalog_getSkillPath as getSkillPath, catalog_getSkills as getSkills, catalog_getSkillsByCategory as getSkillsByCategory, catalog_getVersion as getVersion, catalog_isCatalogAvailable as isCatalogAvailable, catalog_listProfiles as listProfiles, catalog_listProtocols as listProtocols, catalog_listSharedResources as listSharedResources, catalog_listSkills as listSkills, catalog_readProtocol as readProtocol, catalog_readSharedResource as readSharedResource, catalog_readSkillContent as readSkillContent, catalog_resolveDependencyTree as resolveDependencyTree, catalog_resolveProfile as resolveProfile, catalog_validateAll as validateAll, catalog_validateSkillFrontmatter as validateSkillFrontmatter };
|
|
1769
|
+
export { catalog_clearRegisteredLibrary as clearRegisteredLibrary, catalog_getCoreSkills as getCoreSkills, catalog_getDispatchMatrix as getDispatchMatrix, catalog_getLibraryRoot as getLibraryRoot, catalog_getManifest as getManifest, catalog_getProfile as getProfile, catalog_getProtocolPath as getProtocolPath, catalog_getSharedResourcePath as getSharedResourcePath, catalog_getSkill as getSkill, catalog_getSkillDependencies as getSkillDependencies, catalog_getSkillDir as getSkillDir, catalog_getSkillPath as getSkillPath, catalog_getSkills as getSkills, catalog_getSkillsByCategory as getSkillsByCategory, catalog_getVersion as getVersion, catalog_isCatalogAvailable as isCatalogAvailable, catalog_listProfiles as listProfiles, catalog_listProtocols as listProtocols, catalog_listSharedResources as listSharedResources, catalog_listSkills as listSkills, catalog_readProtocol as readProtocol, catalog_readSharedResource as readSharedResource, catalog_readSkillContent as readSkillContent, catalog_registerSkillLibrary as registerSkillLibrary, catalog_registerSkillLibraryFromPath as registerSkillLibraryFromPath, catalog_resolveDependencyTree as resolveDependencyTree, catalog_resolveProfile as resolveProfile, catalog_validateAll as validateAll, catalog_validateSkillFrontmatter as validateSkillFrontmatter };
|
|
1677
1770
|
}
|
|
1678
1771
|
|
|
1772
|
+
/**
|
|
1773
|
+
* Library loader - loads a SkillLibrary from a directory or module.
|
|
1774
|
+
*
|
|
1775
|
+
* Two strategies:
|
|
1776
|
+
* 1. loadLibraryFromModule() - for libraries with an index.js exporting SkillLibrary
|
|
1777
|
+
* 2. buildLibraryFromFiles() - for plain directories with the right file structure
|
|
1778
|
+
*/
|
|
1779
|
+
|
|
1780
|
+
/**
|
|
1781
|
+
* Load a SkillLibrary from a module (index.js) at the given root directory.
|
|
1782
|
+
*
|
|
1783
|
+
* Uses `createRequire()` for CJS modules or dynamic `import()` for ESM.
|
|
1784
|
+
* Validates that the loaded module implements the SkillLibrary interface
|
|
1785
|
+
* by checking for required properties and methods.
|
|
1786
|
+
*
|
|
1787
|
+
* @param root - Absolute path to the library root (must contain index.js or package.json with main)
|
|
1788
|
+
* @returns A validated SkillLibrary instance
|
|
1789
|
+
* @throws If the module cannot be loaded or does not implement SkillLibrary
|
|
1790
|
+
*/
|
|
1791
|
+
declare function loadLibraryFromModule(root: string): SkillLibrary;
|
|
1792
|
+
/**
|
|
1793
|
+
* Build a SkillLibrary from raw files in a directory.
|
|
1794
|
+
*
|
|
1795
|
+
* Constructs a full SkillLibrary implementation by reading:
|
|
1796
|
+
* - `skills.json` for catalog entries
|
|
1797
|
+
* - `skills/manifest.json` for dispatch matrix
|
|
1798
|
+
* - `profiles/*.json` for profile definitions
|
|
1799
|
+
* - `skills/<name>/SKILL.md` for skill content
|
|
1800
|
+
* - `skills/_shared/*.md` for shared resources
|
|
1801
|
+
* - `protocols/*.md` or `skills/protocols/*.md` for protocol files
|
|
1802
|
+
*
|
|
1803
|
+
* @param root - Absolute path to the library root directory
|
|
1804
|
+
* @returns A SkillLibrary instance backed by filesystem reads
|
|
1805
|
+
* @throws If skills.json is not found at the root
|
|
1806
|
+
*/
|
|
1807
|
+
declare function buildLibraryFromFiles(root: string): SkillLibrary;
|
|
1808
|
+
|
|
1679
1809
|
/**
|
|
1680
1810
|
* Local skill discovery
|
|
1681
1811
|
*
|
|
@@ -2282,8 +2412,60 @@ declare function injectAll(providers: Provider[], projectDir: string, scope: "pr
|
|
|
2282
2412
|
* Instruction template management
|
|
2283
2413
|
*
|
|
2284
2414
|
* Generates injection content based on provider capabilities.
|
|
2415
|
+
* Includes structured InjectionTemplate API for project-level customization.
|
|
2285
2416
|
*/
|
|
2286
2417
|
|
|
2418
|
+
/**
|
|
2419
|
+
* Structured template for injection content.
|
|
2420
|
+
*
|
|
2421
|
+
* Projects use this to define what goes between CAAMP markers in
|
|
2422
|
+
* instruction files, rather than passing ad-hoc strings.
|
|
2423
|
+
*/
|
|
2424
|
+
interface InjectionTemplate {
|
|
2425
|
+
/** @ references to include (e.g. `"@AGENTS.md"`, `"@.cleo/project-context.json"`). */
|
|
2426
|
+
references: string[];
|
|
2427
|
+
/** Inline content blocks (raw markdown/text). */
|
|
2428
|
+
content?: string[];
|
|
2429
|
+
}
|
|
2430
|
+
/**
|
|
2431
|
+
* Build injection content from a structured template.
|
|
2432
|
+
*
|
|
2433
|
+
* Produces a string suitable for injection between CAAMP markers.
|
|
2434
|
+
* References are output as `@` lines, content blocks are appended as-is.
|
|
2435
|
+
*
|
|
2436
|
+
* @param template - Template defining references and content
|
|
2437
|
+
* @returns Formatted injection content string
|
|
2438
|
+
*
|
|
2439
|
+
* @example
|
|
2440
|
+
* ```typescript
|
|
2441
|
+
* const content = buildInjectionContent({
|
|
2442
|
+
* references: ["@AGENTS.md"],
|
|
2443
|
+
* });
|
|
2444
|
+
* // Returns: "@AGENTS.md"
|
|
2445
|
+
*
|
|
2446
|
+
* const content2 = buildInjectionContent({
|
|
2447
|
+
* references: ["@AGENTS.md", "@.cleo/project-context.json"],
|
|
2448
|
+
* content: ["# Custom Section", "Some extra info"],
|
|
2449
|
+
* });
|
|
2450
|
+
* ```
|
|
2451
|
+
*/
|
|
2452
|
+
declare function buildInjectionContent(template: InjectionTemplate): string;
|
|
2453
|
+
/**
|
|
2454
|
+
* Parse injection content back into template form.
|
|
2455
|
+
*
|
|
2456
|
+
* Lines starting with `@` are treated as references.
|
|
2457
|
+
* All other non-empty lines are treated as content blocks.
|
|
2458
|
+
*
|
|
2459
|
+
* @param content - Raw injection content string
|
|
2460
|
+
* @returns Parsed InjectionTemplate
|
|
2461
|
+
*
|
|
2462
|
+
* @example
|
|
2463
|
+
* ```typescript
|
|
2464
|
+
* const template = parseInjectionContent("@AGENTS.md\n@.cleo/config.json");
|
|
2465
|
+
* // { references: ["@AGENTS.md", "@.cleo/config.json"], content: [] }
|
|
2466
|
+
* ```
|
|
2467
|
+
*/
|
|
2468
|
+
declare function parseInjectionContent(content: string): InjectionTemplate;
|
|
2287
2469
|
/**
|
|
2288
2470
|
* Generate a standard CAAMP injection block for instruction files.
|
|
2289
2471
|
*
|
|
@@ -2304,6 +2486,8 @@ declare function generateInjectionContent(options?: {
|
|
|
2304
2486
|
mcpServerName?: string;
|
|
2305
2487
|
customContent?: string;
|
|
2306
2488
|
}): string;
|
|
2489
|
+
/** Generate a skills discovery section for instruction files */
|
|
2490
|
+
declare function generateSkillsSection(skillNames: string[]): string;
|
|
2307
2491
|
/**
|
|
2308
2492
|
* Group providers by their instruction file name.
|
|
2309
2493
|
*
|
|
@@ -2487,4 +2671,4 @@ declare function isVerbose(): boolean;
|
|
|
2487
2671
|
*/
|
|
2488
2672
|
declare function isQuiet(): boolean;
|
|
2489
2673
|
|
|
2490
|
-
export { type AuditFinding, type AuditResult, type AuditRule, type AuditSeverity, type BatchInstallOptions, type BatchInstallResult, type CaampLockFile, type ConfigFormat, type ConflictPolicy, type CtDispatchMatrix, type CtManifest, type CtManifestSkill, type CtProfileDefinition, type CtSkillEntry, type CtValidationIssue, type CtValidationResult, type DetectionCacheOptions, type DetectionResult, type DualScopeConfigureOptions, type DualScopeConfigureResult, type GlobalOptions, type InjectionCheckResult, type InjectionStatus, type InstallResult, type InstructionUpdateSummary, type LockEntry, MarketplaceClient, type MarketplaceResult, type MarketplaceSearchResult, type MarketplaceSkill, type McpBatchOperation, type McpConflict, type McpConflictCode, type McpPlanApplyResult, type McpServerConfig, type McpServerEntry, type NormalizedRecommendationCriteria, type ParsedSource, type Provider, type ProviderPriority, type ProviderStatus, RECOMMENDATION_ERROR_CODES, type RankedSkillRecommendation, type RecommendSkillsResult, type RecommendationCriteriaInput, type RecommendationErrorCode, type RecommendationOptions, type RecommendationReason, type RecommendationReasonCode, type RecommendationScoreBreakdown, type RecommendationValidationIssue, type RecommendationValidationResult, type RecommendationWeights, type SkillBatchOperation, type SkillEntry, type SkillInstallResult, type SkillMetadata, type SourceType, type TransportType, type ValidationIssue, type ValidationResult, applyMcpInstallWithPolicy, buildServerConfig, catalog, checkAllInjections, checkInjection, checkSkillUpdate, configureProviderGlobalAndProject, deepMerge, detectAllProviders, detectMcpConfigConflicts, detectProjectProviders, detectProvider, discoverSkill, discoverSkills, ensureDir, formatSkillRecommendations, generateInjectionContent, getAgentsConfigPath, getAgentsHome, getAgentsInstructFile, getAgentsLinksDir, getAgentsMcpDir, getAgentsMcpServersPath, getAgentsSpecDir, getAgentsWikiDir, getAllProviders, getCanonicalSkillsDir, getInstalledProviders, getInstructionFiles, getLastSelectedAgents, getLockFilePath, getNestedValue, getPlatformLocations, getProjectAgentsDir, getProvider, getProviderCount, getProvidersByInstructFile, getProvidersByPriority, getProvidersByStatus, getRegistryVersion, getTrackedMcpServers, getTrackedSkills, getTransform, groupByInstructFile, inject, injectAll, installBatchWithRollback, installMcpServer, installMcpServerToAll, installSkill, isMarketplaceScoped, isQuiet, isVerbose, listAgentsMcpServers, listAllMcpServers, listCanonicalSkills, listMcpServers, normalizeRecommendationCriteria, parseSkillFile, parseSource, rankSkills, readConfig, readLockFile, recommendSkills, recordMcpInstall, recordSkillInstall, removeConfig, removeInjection, removeMcpFromLock, removeMcpServer, removeSkill, removeSkillFromLock, resetDetectionCache, resolveAlias, resolveConfigPath, resolveRegistryTemplatePath, saveLastSelectedAgents, scanDirectory, scanFile, scoreSkillRecommendation, searchSkills, selectProvidersByMinimumPriority, setQuiet, setVerbose, toSarif, tokenizeCriteriaValue, updateInstructionsSingleOperation, validateRecommendationCriteria, validateSkill, writeConfig };
|
|
2674
|
+
export { type AuditFinding, type AuditResult, type AuditRule, type AuditSeverity, type BatchInstallOptions, type BatchInstallResult, type CaampLockFile, type ConfigFormat, type ConflictPolicy, type CtDispatchMatrix, type CtManifest, type CtManifestSkill, type CtProfileDefinition, type CtSkillEntry, type CtValidationIssue, type CtValidationResult, type DetectionCacheOptions, type DetectionResult, type DualScopeConfigureOptions, type DualScopeConfigureResult, type GlobalOptions, type InjectionCheckResult, type InjectionStatus, type InjectionTemplate, type InstallResult, type InstructionUpdateSummary, type LockEntry, MarketplaceClient, type MarketplaceResult, type MarketplaceSearchResult, type MarketplaceSkill, type McpBatchOperation, type McpConflict, type McpConflictCode, type McpPlanApplyResult, type McpServerConfig, type McpServerEntry, type NormalizedRecommendationCriteria, type ParsedSource, type Provider, type ProviderPriority, type ProviderStatus, RECOMMENDATION_ERROR_CODES, type RankedSkillRecommendation, type RecommendSkillsResult, type RecommendationCriteriaInput, type RecommendationErrorCode, type RecommendationOptions, type RecommendationReason, type RecommendationReasonCode, type RecommendationScoreBreakdown, type RecommendationValidationIssue, type RecommendationValidationResult, type RecommendationWeights, type SkillBatchOperation, type SkillEntry, type SkillInstallResult, type SkillLibrary, type SkillLibraryDispatchMatrix, type SkillLibraryEntry, type SkillLibraryManifest, type SkillLibraryManifestSkill, type SkillLibraryProfile, type SkillLibraryValidationIssue, type SkillLibraryValidationResult, type SkillMetadata, type SourceType, type TransportType, type ValidationIssue, type ValidationResult, applyMcpInstallWithPolicy, buildInjectionContent, buildLibraryFromFiles, buildServerConfig, catalog, checkAllInjections, checkInjection, checkSkillUpdate, clearRegisteredLibrary, configureProviderGlobalAndProject, deepMerge, detectAllProviders, detectMcpConfigConflicts, detectProjectProviders, detectProvider, discoverSkill, discoverSkills, ensureDir, formatSkillRecommendations, generateInjectionContent, generateSkillsSection, getAgentsConfigPath, getAgentsHome, getAgentsInstructFile, getAgentsLinksDir, getAgentsMcpDir, getAgentsMcpServersPath, getAgentsSpecDir, getAgentsWikiDir, getAllProviders, getCanonicalSkillsDir, getInstalledProviders, getInstructionFiles, getLastSelectedAgents, getLockFilePath, getNestedValue, getPlatformLocations, getProjectAgentsDir, getProvider, getProviderCount, getProvidersByInstructFile, getProvidersByPriority, getProvidersByStatus, getRegistryVersion, getTrackedMcpServers, getTrackedSkills, getTransform, groupByInstructFile, inject, injectAll, installBatchWithRollback, installMcpServer, installMcpServerToAll, installSkill, isMarketplaceScoped, isQuiet, isVerbose, listAgentsMcpServers, listAllMcpServers, listCanonicalSkills, listMcpServers, loadLibraryFromModule, normalizeRecommendationCriteria, parseInjectionContent, parseSkillFile, parseSource, rankSkills, readConfig, readLockFile, recommendSkills, recordMcpInstall, recordSkillInstall, registerSkillLibrary, registerSkillLibraryFromPath, removeConfig, removeInjection, removeMcpFromLock, removeMcpServer, removeSkill, removeSkillFromLock, resetDetectionCache, resolveAlias, resolveConfigPath, resolveRegistryTemplatePath, saveLastSelectedAgents, scanDirectory, scanFile, scoreSkillRecommendation, searchSkills, selectProvidersByMinimumPriority, setQuiet, setVerbose, toSarif, tokenizeCriteriaValue, updateInstructionsSingleOperation, validateRecommendationCriteria, validateSkill, writeConfig };
|
package/dist/index.js
CHANGED
|
@@ -2,11 +2,14 @@ import {
|
|
|
2
2
|
MarketplaceClient,
|
|
3
3
|
RECOMMENDATION_ERROR_CODES,
|
|
4
4
|
applyMcpInstallWithPolicy,
|
|
5
|
+
buildInjectionContent,
|
|
6
|
+
buildLibraryFromFiles,
|
|
5
7
|
buildServerConfig,
|
|
6
8
|
catalog_exports,
|
|
7
9
|
checkAllInjections,
|
|
8
10
|
checkInjection,
|
|
9
11
|
checkSkillUpdate,
|
|
12
|
+
clearRegisteredLibrary,
|
|
10
13
|
configureProviderGlobalAndProject,
|
|
11
14
|
deepMerge,
|
|
12
15
|
detectAllProviders,
|
|
@@ -18,6 +21,7 @@ import {
|
|
|
18
21
|
ensureDir,
|
|
19
22
|
formatSkillRecommendations,
|
|
20
23
|
generateInjectionContent,
|
|
24
|
+
generateSkillsSection,
|
|
21
25
|
getAgentsConfigPath,
|
|
22
26
|
getAgentsHome,
|
|
23
27
|
getAgentsInstructFile,
|
|
@@ -58,7 +62,9 @@ import {
|
|
|
58
62
|
listAllMcpServers,
|
|
59
63
|
listCanonicalSkills,
|
|
60
64
|
listMcpServers,
|
|
65
|
+
loadLibraryFromModule,
|
|
61
66
|
normalizeRecommendationCriteria,
|
|
67
|
+
parseInjectionContent,
|
|
62
68
|
parseSkillFile,
|
|
63
69
|
parseSource,
|
|
64
70
|
rankSkills,
|
|
@@ -67,6 +73,8 @@ import {
|
|
|
67
73
|
recommendSkills,
|
|
68
74
|
recordMcpInstall,
|
|
69
75
|
recordSkillInstall,
|
|
76
|
+
registerSkillLibrary,
|
|
77
|
+
registerSkillLibraryFromPath,
|
|
70
78
|
removeConfig,
|
|
71
79
|
removeInjection,
|
|
72
80
|
removeMcpFromLock,
|
|
@@ -91,16 +99,19 @@ import {
|
|
|
91
99
|
validateRecommendationCriteria,
|
|
92
100
|
validateSkill,
|
|
93
101
|
writeConfig
|
|
94
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-7YV3KXEJ.js";
|
|
95
103
|
export {
|
|
96
104
|
MarketplaceClient,
|
|
97
105
|
RECOMMENDATION_ERROR_CODES,
|
|
98
106
|
applyMcpInstallWithPolicy,
|
|
107
|
+
buildInjectionContent,
|
|
108
|
+
buildLibraryFromFiles,
|
|
99
109
|
buildServerConfig,
|
|
100
110
|
catalog_exports as catalog,
|
|
101
111
|
checkAllInjections,
|
|
102
112
|
checkInjection,
|
|
103
113
|
checkSkillUpdate,
|
|
114
|
+
clearRegisteredLibrary,
|
|
104
115
|
configureProviderGlobalAndProject,
|
|
105
116
|
deepMerge,
|
|
106
117
|
detectAllProviders,
|
|
@@ -112,6 +123,7 @@ export {
|
|
|
112
123
|
ensureDir,
|
|
113
124
|
formatSkillRecommendations,
|
|
114
125
|
generateInjectionContent,
|
|
126
|
+
generateSkillsSection,
|
|
115
127
|
getAgentsConfigPath,
|
|
116
128
|
getAgentsHome,
|
|
117
129
|
getAgentsInstructFile,
|
|
@@ -152,7 +164,9 @@ export {
|
|
|
152
164
|
listAllMcpServers,
|
|
153
165
|
listCanonicalSkills,
|
|
154
166
|
listMcpServers,
|
|
167
|
+
loadLibraryFromModule,
|
|
155
168
|
normalizeRecommendationCriteria,
|
|
169
|
+
parseInjectionContent,
|
|
156
170
|
parseSkillFile,
|
|
157
171
|
parseSource,
|
|
158
172
|
rankSkills,
|
|
@@ -161,6 +175,8 @@ export {
|
|
|
161
175
|
recommendSkills,
|
|
162
176
|
recordMcpInstall,
|
|
163
177
|
recordSkillInstall,
|
|
178
|
+
registerSkillLibrary,
|
|
179
|
+
registerSkillLibraryFromPath,
|
|
164
180
|
removeConfig,
|
|
165
181
|
removeInjection,
|
|
166
182
|
removeMcpFromLock,
|
package/dist/index.js.map
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/caamp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Central AI Agent Managed Packages - unified provider registry and package manager for AI coding agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -56,8 +56,7 @@
|
|
|
56
56
|
"url": "https://github.com/kryptobaseddev/caamp/issues"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@cleocode/
|
|
60
|
-
"@cleocode/lafs-protocol": "^1.2.3",
|
|
59
|
+
"@cleocode/lafs-protocol": "^1.3.2",
|
|
61
60
|
"@iarna/toml": "^2.2.5",
|
|
62
61
|
"commander": "^14.0.0",
|
|
63
62
|
"gray-matter": "^4.0.3",
|
|
@@ -69,7 +68,7 @@
|
|
|
69
68
|
"devDependencies": {
|
|
70
69
|
"@biomejs/biome": "2.3.15",
|
|
71
70
|
"@types/js-yaml": "^4.0.9",
|
|
72
|
-
"@types/node": "25.
|
|
71
|
+
"@types/node": "25.3.0",
|
|
73
72
|
"@vitest/coverage-v8": "^3.2.4",
|
|
74
73
|
"tsup": "^8.5.0",
|
|
75
74
|
"tsx": "^4.21.0",
|
|
@@ -82,5 +81,8 @@
|
|
|
82
81
|
},
|
|
83
82
|
"publishConfig": {
|
|
84
83
|
"access": "public"
|
|
84
|
+
},
|
|
85
|
+
"overrides": {
|
|
86
|
+
"minimatch": ">=10.2.1"
|
|
85
87
|
}
|
|
86
88
|
}
|
package/providers/registry.json
CHANGED
|
File without changes
|