@cleocode/caamp 1.5.1 → 1.6.0

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 CHANGED
@@ -1,3 +1,7 @@
1
+ type SkillsPrecedence = "vendor-only" | "agents-canonical" | "agents-first" | "agents-supported" | "vendor-global-agents-project";
2
+ type HookEvent = "onSessionStart" | "onSessionEnd" | "onToolStart" | "onToolComplete" | "onFileChange" | "onError" | "onPromptSubmit" | "onResponseComplete";
3
+ type SpawnMechanism = "native" | "mcp" | "cli" | "api";
4
+
1
5
  /**
2
6
  * SkillLibrary interface - SDK standard contract for skill libraries.
3
7
  *
@@ -186,11 +190,6 @@ interface SkillLibrary {
186
190
  getDispatchMatrix(): SkillLibraryDispatchMatrix;
187
191
  }
188
192
 
189
- /**
190
- * CAAMP - Central AI Agent Managed Packages
191
- * Core type definitions
192
- */
193
-
194
193
  /** @deprecated Use `SkillLibraryEntry` instead. */
195
194
  type CtSkillEntry = SkillLibraryEntry;
196
195
  /** @deprecated Use `SkillLibraryValidationResult` instead. */
@@ -265,6 +264,43 @@ interface DetectionConfig {
265
264
  /** Flatpak application ID (for `"flatpak"` method). */
266
265
  flatpakId?: string;
267
266
  }
267
+
268
+ interface ProviderSkillsCapability {
269
+ /** Resolved global `.agents/skills` path, or `null` if unsupported. */
270
+ agentsGlobalPath: string | null;
271
+ /** Project-relative `.agents/skills` path, or `null` if unsupported. */
272
+ agentsProjectPath: string | null;
273
+ /** How this provider resolves skill file precedence. */
274
+ precedence: SkillsPrecedence;
275
+ }
276
+ interface ProviderHooksCapability {
277
+ /** Hook lifecycle events this provider supports. */
278
+ supported: HookEvent[];
279
+ /** Resolved path to hook configuration file, or `null`. */
280
+ hookConfigPath: string | null;
281
+ /** Format of the hook config file. */
282
+ hookFormat: "json" | "yaml" | "toml" | "javascript" | null;
283
+ }
284
+ interface ProviderSpawnCapability {
285
+ /** Whether the provider supports spawning subagents. */
286
+ supportsSubagents: boolean;
287
+ /** Whether subagents can be spawned programmatically. */
288
+ supportsProgrammaticSpawn: boolean;
289
+ /** Whether spawned agents can communicate with each other. */
290
+ supportsInterAgentComms: boolean;
291
+ /** Whether multiple agents can be spawned in parallel. */
292
+ supportsParallelSpawn: boolean;
293
+ /** Mechanism used for spawning. */
294
+ spawnMechanism: SpawnMechanism | null;
295
+ }
296
+ interface ProviderCapabilities {
297
+ /** Skills path resolution and precedence. */
298
+ skills: ProviderSkillsCapability;
299
+ /** Hook/lifecycle event support. */
300
+ hooks: ProviderHooksCapability;
301
+ /** Subagent spawn capabilities. */
302
+ spawn: ProviderSpawnCapability;
303
+ }
268
304
  /**
269
305
  * Priority tier for a provider, used for sorting and default selection.
270
306
  *
@@ -337,6 +373,8 @@ interface Provider {
337
373
  status: ProviderStatus;
338
374
  /** Whether the provider is compatible with the Agent Skills standard. */
339
375
  agentSkillsCompatible: boolean;
376
+ /** Provider capabilities for skills, hooks, and spawn. Always populated at runtime. */
377
+ capabilities: ProviderCapabilities;
340
378
  }
341
379
  /**
342
380
  * Canonical MCP server configuration.
@@ -791,6 +829,56 @@ interface GlobalOptions {
791
829
  quiet?: boolean;
792
830
  }
793
831
 
832
+ /**
833
+ * Spawn adapter interface for provider-neutral subagent orchestration.
834
+ *
835
+ * This is an interface-only module — no concrete implementations yet.
836
+ * CLEO will consume this interface to build provider-specific adapters.
837
+ */
838
+
839
+ /**
840
+ * Options for spawning a subagent.
841
+ */
842
+ interface SpawnOptions {
843
+ /** The prompt or instruction to give the spawned agent. */
844
+ prompt: string;
845
+ /** Model to use for the spawned agent. */
846
+ model?: string;
847
+ /** Tools to make available to the spawned agent. */
848
+ tools?: string[];
849
+ /** Timeout in milliseconds for the spawned agent. */
850
+ timeout?: number;
851
+ /** Whether to isolate the spawned agent (e.g. in a worktree). */
852
+ isolate?: boolean;
853
+ }
854
+ /**
855
+ * Result from a spawn operation.
856
+ */
857
+ interface SpawnResult {
858
+ /** Unique identifier for the spawned agent instance. */
859
+ instanceId: string;
860
+ /** Current status of the spawned agent. */
861
+ status: "running" | "completed" | "failed";
862
+ /** Output produced by the spawned agent. */
863
+ output?: string;
864
+ }
865
+ /**
866
+ * Provider-neutral interface for spawning and managing subagents.
867
+ *
868
+ * Concrete implementations will be provider-specific (e.g. ClaudeCodeSpawnAdapter,
869
+ * CodexSpawnAdapter) and registered by CLEO's orchestration layer.
870
+ */
871
+ interface SpawnAdapter {
872
+ /** Check if a provider supports spawning via this adapter. */
873
+ canSpawn(provider: Provider): boolean;
874
+ /** Spawn a new subagent for the given provider. */
875
+ spawn(provider: Provider, options: SpawnOptions): Promise<SpawnResult>;
876
+ /** List currently running subagent instances. */
877
+ listRunning(provider: Provider): Promise<SpawnResult[]>;
878
+ /** Terminate a running subagent instance. */
879
+ terminate(provider: Provider, instanceId: string): Promise<void>;
880
+ }
881
+
794
882
  /**
795
883
  * Provider auto-detection engine
796
884
  *
@@ -1411,6 +1499,84 @@ interface DualScopeConfigureResult {
1411
1499
  */
1412
1500
  declare function configureProviderGlobalAndProject(provider: Provider, options: DualScopeConfigureOptions): Promise<DualScopeConfigureResult>;
1413
1501
 
1502
+ type PathScope = "project" | "global";
1503
+ interface PlatformLocations {
1504
+ home: string;
1505
+ config: string;
1506
+ vscodeConfig: string;
1507
+ zedConfig: string;
1508
+ claudeDesktopConfig: string;
1509
+ applications: string[];
1510
+ }
1511
+ declare function getPlatformLocations(): PlatformLocations;
1512
+ declare function getAgentsHome(): string;
1513
+ declare function getProjectAgentsDir(projectRoot?: string): string;
1514
+ declare function getCanonicalSkillsDir(): string;
1515
+ declare function getLockFilePath(): string;
1516
+ /**
1517
+ * Get the MCP directory within `.agents/`.
1518
+ *
1519
+ * @param scope - `"global"` for `~/.agents/mcp/`, `"project"` for `<project>/.agents/mcp/`
1520
+ * @param projectDir - Project root (defaults to `process.cwd()`)
1521
+ */
1522
+ declare function getAgentsMcpDir(scope?: PathScope, projectDir?: string): string;
1523
+ /**
1524
+ * Get the MCP servers.json path within `.agents/`.
1525
+ *
1526
+ * Per the `.agents/` standard (Section 9), this is the canonical MCP
1527
+ * server registry that should be checked before legacy per-provider configs.
1528
+ *
1529
+ * @param scope - `"global"` for `~/.agents/mcp/servers.json`, `"project"` for `<project>/.agents/mcp/servers.json`
1530
+ * @param projectDir - Project root (defaults to `process.cwd()`)
1531
+ */
1532
+ declare function getAgentsMcpServersPath(scope?: PathScope, projectDir?: string): string;
1533
+ /**
1534
+ * Get the primary AGENTS.md instruction file path within `.agents/`.
1535
+ *
1536
+ * @param scope - `"global"` for `~/.agents/AGENTS.md`, `"project"` for `<project>/.agents/AGENTS.md`
1537
+ * @param projectDir - Project root (defaults to `process.cwd()`)
1538
+ */
1539
+ declare function getAgentsInstructFile(scope?: PathScope, projectDir?: string): string;
1540
+ /**
1541
+ * Get the config.toml path within `.agents/`.
1542
+ *
1543
+ * @param scope - `"global"` for `~/.agents/config.toml`, `"project"` for `<project>/.agents/config.toml`
1544
+ * @param projectDir - Project root (defaults to `process.cwd()`)
1545
+ */
1546
+ declare function getAgentsConfigPath(scope?: PathScope, projectDir?: string): string;
1547
+ /**
1548
+ * Get the wiki directory within `.agents/`.
1549
+ *
1550
+ * @param scope - `"global"` or `"project"`
1551
+ * @param projectDir - Project root (defaults to `process.cwd()`)
1552
+ */
1553
+ declare function getAgentsWikiDir(scope?: PathScope, projectDir?: string): string;
1554
+ /**
1555
+ * Get the spec directory within `.agents/`.
1556
+ *
1557
+ * @param scope - `"global"` or `"project"`
1558
+ * @param projectDir - Project root (defaults to `process.cwd()`)
1559
+ */
1560
+ declare function getAgentsSpecDir(scope?: PathScope, projectDir?: string): string;
1561
+ /**
1562
+ * Get the links directory within `.agents/`.
1563
+ *
1564
+ * @param scope - `"global"` or `"project"`
1565
+ * @param projectDir - Project root (defaults to `process.cwd()`)
1566
+ */
1567
+ declare function getAgentsLinksDir(scope?: PathScope, projectDir?: string): string;
1568
+ declare function resolveRegistryTemplatePath(template: string): string;
1569
+ /**
1570
+ * Get ALL target directories for skill installation based on the provider's
1571
+ * skills precedence setting.
1572
+ *
1573
+ * @param provider - Provider to resolve paths for
1574
+ * @param scope - Whether to resolve global or project paths
1575
+ * @param projectDir - Project directory for project-scope resolution
1576
+ * @returns Array of target directories for symlink creation
1577
+ */
1578
+ declare function resolveProviderSkillsDirs(provider: Provider, scope: PathScope, projectDir?: string): string[];
1579
+
1414
1580
  /**
1415
1581
  * Provider registry loader
1416
1582
  *
@@ -1534,74 +1700,129 @@ declare function getProviderCount(): number;
1534
1700
  * ```
1535
1701
  */
1536
1702
  declare function getRegistryVersion(): string;
1537
-
1538
- type PathScope = "project" | "global";
1539
- interface PlatformLocations {
1540
- home: string;
1541
- config: string;
1542
- vscodeConfig: string;
1543
- zedConfig: string;
1544
- claudeDesktopConfig: string;
1545
- applications: string[];
1546
- }
1547
- declare function getPlatformLocations(): PlatformLocations;
1548
- declare function getAgentsHome(): string;
1549
- declare function getProjectAgentsDir(projectRoot?: string): string;
1550
- declare function getCanonicalSkillsDir(): string;
1551
- declare function getLockFilePath(): string;
1552
1703
  /**
1553
- * Get the MCP directory within `.agents/`.
1704
+ * Filter providers that support a specific hook event.
1554
1705
  *
1555
- * @param scope - `"global"` for `~/.agents/mcp/`, `"project"` for `<project>/.agents/mcp/`
1556
- * @param projectDir - Project root (defaults to `process.cwd()`)
1706
+ * @param event - Hook event to filter by (e.g. `"onToolComplete"`)
1707
+ * @returns Array of providers whose hooks capability includes the given event
1708
+ *
1709
+ * @example
1710
+ * ```typescript
1711
+ * const providers = getProvidersByHookEvent("onToolComplete");
1712
+ * ```
1557
1713
  */
1558
- declare function getAgentsMcpDir(scope?: PathScope, projectDir?: string): string;
1714
+ declare function getProvidersByHookEvent(event: HookEvent): Provider[];
1559
1715
  /**
1560
- * Get the MCP servers.json path within `.agents/`.
1716
+ * Get hook events common to all specified providers.
1561
1717
  *
1562
- * Per the `.agents/` standard (Section 9), this is the canonical MCP
1563
- * server registry that should be checked before legacy per-provider configs.
1718
+ * If providerIds is provided, returns the intersection of their supported events.
1719
+ * If providerIds is undefined or empty, uses all providers.
1564
1720
  *
1565
- * @param scope - `"global"` for `~/.agents/mcp/servers.json`, `"project"` for `<project>/.agents/mcp/servers.json`
1566
- * @param projectDir - Project root (defaults to `process.cwd()`)
1721
+ * @param providerIds - Optional array of provider IDs to intersect
1722
+ * @returns Array of hook events supported by ALL specified providers
1723
+ *
1724
+ * @example
1725
+ * ```typescript
1726
+ * const common = getCommonHookEvents(["claude-code", "gemini-cli"]);
1727
+ * ```
1567
1728
  */
1568
- declare function getAgentsMcpServersPath(scope?: PathScope, projectDir?: string): string;
1729
+ declare function getCommonHookEvents(providerIds?: string[]): HookEvent[];
1569
1730
  /**
1570
- * Get the primary AGENTS.md instruction file path within `.agents/`.
1731
+ * Check whether a provider supports a specific capability via dot-path query.
1571
1732
  *
1572
- * @param scope - `"global"` for `~/.agents/AGENTS.md`, `"project"` for `<project>/.agents/AGENTS.md`
1573
- * @param projectDir - Project root (defaults to `process.cwd()`)
1733
+ * The dot-path addresses a value inside `provider.capabilities`. For boolean
1734
+ * fields the provider "supports" the capability when the value is `true`.
1735
+ * For non-boolean fields the provider "supports" it when the value is neither
1736
+ * `null` nor `undefined` (and, for arrays, non-empty).
1737
+ *
1738
+ * @param provider - Provider to inspect
1739
+ * @param dotPath - Dot-delimited capability path (e.g. `"spawn.supportsSubagents"`, `"hooks.supported"`)
1740
+ * @returns `true` when the provider has the specified capability
1741
+ *
1742
+ * @example
1743
+ * ```typescript
1744
+ * const claude = getProvider("claude-code");
1745
+ * providerSupports(claude!, "spawn.supportsSubagents"); // true
1746
+ * ```
1574
1747
  */
1575
- declare function getAgentsInstructFile(scope?: PathScope, projectDir?: string): string;
1748
+ declare function providerSupports(provider: Provider, dotPath: string): boolean;
1576
1749
  /**
1577
- * Get the config.toml path within `.agents/`.
1750
+ * Filter providers that support spawning subagents.
1578
1751
  *
1579
- * @param scope - `"global"` for `~/.agents/config.toml`, `"project"` for `<project>/.agents/config.toml`
1580
- * @param projectDir - Project root (defaults to `process.cwd()`)
1752
+ * @returns Array of providers where `capabilities.spawn.supportsSubagents === true`
1753
+ *
1754
+ * @example
1755
+ * ```typescript
1756
+ * const spawnCapable = getSpawnCapableProviders();
1757
+ * ```
1581
1758
  */
1582
- declare function getAgentsConfigPath(scope?: PathScope, projectDir?: string): string;
1759
+ declare function getSpawnCapableProviders(): Provider[];
1583
1760
  /**
1584
- * Get the wiki directory within `.agents/`.
1761
+ * Filter providers by a specific boolean spawn capability flag.
1585
1762
  *
1586
- * @param scope - `"global"` or `"project"`
1587
- * @param projectDir - Project root (defaults to `process.cwd()`)
1763
+ * @param flag - One of the four boolean flags on {@link ProviderSpawnCapability}
1764
+ * (`"supportsSubagents"`, `"supportsProgrammaticSpawn"`,
1765
+ * `"supportsInterAgentComms"`, `"supportsParallelSpawn"`)
1766
+ * @returns Array of providers where the specified flag is `true`
1767
+ *
1768
+ * @example
1769
+ * ```typescript
1770
+ * const parallel = getProvidersBySpawnCapability("supportsParallelSpawn");
1771
+ * ```
1588
1772
  */
1589
- declare function getAgentsWikiDir(scope?: PathScope, projectDir?: string): string;
1773
+ declare function getProvidersBySpawnCapability(flag: keyof Omit<ProviderSpawnCapability, "spawnMechanism">): Provider[];
1590
1774
  /**
1591
- * Get the spec directory within `.agents/`.
1775
+ * Filter providers by their skills precedence value.
1592
1776
  *
1593
- * @param scope - `"global"` or `"project"`
1594
- * @param projectDir - Project root (defaults to `process.cwd()`)
1777
+ * @param precedence - Skills precedence to filter by
1778
+ * @returns Array of providers matching the given precedence
1595
1779
  */
1596
- declare function getAgentsSpecDir(scope?: PathScope, projectDir?: string): string;
1780
+ declare function getProvidersBySkillsPrecedence(precedence: SkillsPrecedence): Provider[];
1597
1781
  /**
1598
- * Get the links directory within `.agents/`.
1782
+ * Get the effective skills paths for a provider, ordered by precedence.
1599
1783
  *
1600
- * @param scope - `"global"` or `"project"`
1601
- * @param projectDir - Project root (defaults to `process.cwd()`)
1784
+ * @param provider - Provider to resolve paths for
1785
+ * @param scope - Whether to resolve global or project paths
1786
+ * @param projectDir - Project directory for project-scope resolution
1787
+ * @returns Ordered array of paths with source and scope metadata
1602
1788
  */
1603
- declare function getAgentsLinksDir(scope?: PathScope, projectDir?: string): string;
1604
- declare function resolveRegistryTemplatePath(template: string): string;
1789
+ declare function getEffectiveSkillsPaths(provider: Provider, scope: PathScope, projectDir?: string): Array<{
1790
+ path: string;
1791
+ source: string;
1792
+ scope: string;
1793
+ }>;
1794
+ /**
1795
+ * Build a full skills map for all providers.
1796
+ *
1797
+ * @returns Array of skills map entries with provider ID, tool name, precedence, and paths
1798
+ */
1799
+ declare function buildSkillsMap(): Array<{
1800
+ providerId: string;
1801
+ toolName: string;
1802
+ precedence: SkillsPrecedence;
1803
+ paths: {
1804
+ global: string | null;
1805
+ project: string | null;
1806
+ };
1807
+ }>;
1808
+ /**
1809
+ * Get capabilities for a provider by ID or alias.
1810
+ *
1811
+ * @param idOrAlias - Provider ID or alias
1812
+ * @returns The provider's capabilities, or undefined if not found
1813
+ */
1814
+ declare function getProviderCapabilities(idOrAlias: string): ProviderCapabilities | undefined;
1815
+ /**
1816
+ * Check if a provider supports a capability using ID/alias lookup.
1817
+ *
1818
+ * Convenience wrapper that resolves the provider first, then delegates
1819
+ * to the provider-level {@link providerSupports}.
1820
+ *
1821
+ * @param idOrAlias - Provider ID or alias
1822
+ * @param capabilityPath - Dot-path into capabilities (e.g. "spawn.supportsSubagents")
1823
+ * @returns true if the provider supports the capability, false otherwise
1824
+ */
1825
+ declare function providerSupportsById(idOrAlias: string, capabilityPath: string): boolean;
1605
1826
 
1606
1827
  /**
1607
1828
  * Source URL/path classifier
@@ -2767,4 +2988,4 @@ declare function isVerbose(): boolean;
2767
2988
  */
2768
2989
  declare function isQuiet(): boolean;
2769
2990
 
2770
- export { type AuditFinding, type AuditResult, type AuditRule, type AuditSeverity, type BatchInstallOptions, type BatchInstallResult, type CaampLockFile, type CleoChannel, type CleoProfileBuildResult, 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 InferredLockData, 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 ReconcileOptions, type ReconcileResult, 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, buildCleoProfile, buildInjectionContent, buildLibraryFromFiles, buildServerConfig, catalog, checkAllInjections, checkAllSkillUpdates, checkCommandReachability, checkInjection, checkSkillUpdate, clearRegisteredLibrary, configureProviderGlobalAndProject, deepMerge, detectAllProviders, detectMcpConfigConflicts, detectProjectProviders, detectProvider, discoverSkill, discoverSkills, ensureDir, extractVersionTag, 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, inferCleoLockData, inject, injectAll, installBatchWithRollback, installMcpServer, installMcpServerToAll, installSkill, isCleoSource, isMarketplaceScoped, isQuiet, isVerbose, listAgentsMcpServers, listAllMcpServers, listCanonicalSkills, listMcpServers, loadLibraryFromModule, normalizeCleoChannel, normalizeRecommendationCriteria, parseEnvAssignments, parseInjectionContent, parseSkillFile, parseSource, rankSkills, readConfig, readLockFile, recommendSkills, reconcileCleoLock, recordMcpInstall, recordSkillInstall, registerSkillLibrary, registerSkillLibraryFromPath, removeConfig, removeInjection, removeMcpFromLock, removeMcpServer, removeSkill, removeSkillFromLock, resetDetectionCache, resolveAlias, resolveChannelFromServerName, resolveCleoServerName, resolveConfigPath, resolveRegistryTemplatePath, saveLastSelectedAgents, scanDirectory, scanFile, scoreSkillRecommendation, searchSkills, selectProvidersByMinimumPriority, setQuiet, setVerbose, toSarif, tokenizeCriteriaValue, updateInstructionsSingleOperation, validateRecommendationCriteria, validateSkill, writeConfig };
2991
+ export { type AuditFinding, type AuditResult, type AuditRule, type AuditSeverity, type BatchInstallOptions, type BatchInstallResult, type CaampLockFile, type CleoChannel, type CleoProfileBuildResult, 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 HookEvent, type InferredLockData, 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 ProviderCapabilities, type ProviderHooksCapability, type ProviderPriority, type ProviderSkillsCapability, type ProviderSpawnCapability, 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 ReconcileOptions, type ReconcileResult, 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 SkillsPrecedence, type SourceType, type SpawnAdapter, type SpawnMechanism, type SpawnOptions, type SpawnResult, type TransportType, type ValidationIssue, type ValidationResult, applyMcpInstallWithPolicy, buildCleoProfile, buildInjectionContent, buildLibraryFromFiles, buildServerConfig, buildSkillsMap, catalog, checkAllInjections, checkAllSkillUpdates, checkCommandReachability, checkInjection, checkSkillUpdate, clearRegisteredLibrary, configureProviderGlobalAndProject, deepMerge, detectAllProviders, detectMcpConfigConflicts, detectProjectProviders, detectProvider, discoverSkill, discoverSkills, ensureDir, extractVersionTag, formatSkillRecommendations, generateInjectionContent, generateSkillsSection, getAgentsConfigPath, getAgentsHome, getAgentsInstructFile, getAgentsLinksDir, getAgentsMcpDir, getAgentsMcpServersPath, getAgentsSpecDir, getAgentsWikiDir, getAllProviders, getCanonicalSkillsDir, getCommonHookEvents, getEffectiveSkillsPaths, getInstalledProviders, getInstructionFiles, getLastSelectedAgents, getLockFilePath, getNestedValue, getPlatformLocations, getProjectAgentsDir, getProvider, getProviderCapabilities, getProviderCount, getProvidersByHookEvent, getProvidersByInstructFile, getProvidersByPriority, getProvidersBySkillsPrecedence, getProvidersBySpawnCapability, getProvidersByStatus, getRegistryVersion, getSpawnCapableProviders, getTrackedMcpServers, getTrackedSkills, getTransform, groupByInstructFile, inferCleoLockData, inject, injectAll, installBatchWithRollback, installMcpServer, installMcpServerToAll, installSkill, isCleoSource, isMarketplaceScoped, isQuiet, isVerbose, listAgentsMcpServers, listAllMcpServers, listCanonicalSkills, listMcpServers, loadLibraryFromModule, normalizeCleoChannel, normalizeRecommendationCriteria, parseEnvAssignments, parseInjectionContent, parseSkillFile, parseSource, providerSupports, providerSupportsById, rankSkills, readConfig, readLockFile, recommendSkills, reconcileCleoLock, recordMcpInstall, recordSkillInstall, registerSkillLibrary, registerSkillLibraryFromPath, removeConfig, removeInjection, removeMcpFromLock, removeMcpServer, removeSkill, removeSkillFromLock, resetDetectionCache, resolveAlias, resolveChannelFromServerName, resolveCleoServerName, resolveConfigPath, resolveProviderSkillsDirs, resolveRegistryTemplatePath, saveLastSelectedAgents, scanDirectory, scanFile, scoreSkillRecommendation, searchSkills, selectProvidersByMinimumPriority, setQuiet, setVerbose, toSarif, tokenizeCriteriaValue, updateInstructionsSingleOperation, validateRecommendationCriteria, validateSkill, writeConfig };
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ import {
6
6
  buildInjectionContent,
7
7
  buildLibraryFromFiles,
8
8
  buildServerConfig,
9
+ buildSkillsMap,
9
10
  catalog_exports,
10
11
  checkAllInjections,
11
12
  checkAllSkillUpdates,
@@ -36,6 +37,8 @@ import {
36
37
  getAgentsWikiDir,
37
38
  getAllProviders,
38
39
  getCanonicalSkillsDir,
40
+ getCommonHookEvents,
41
+ getEffectiveSkillsPaths,
39
42
  getInstalledProviders,
40
43
  getInstructionFiles,
41
44
  getLastSelectedAgents,
@@ -44,11 +47,16 @@ import {
44
47
  getPlatformLocations,
45
48
  getProjectAgentsDir,
46
49
  getProvider,
50
+ getProviderCapabilities,
47
51
  getProviderCount,
52
+ getProvidersByHookEvent,
48
53
  getProvidersByInstructFile,
49
54
  getProvidersByPriority,
55
+ getProvidersBySkillsPrecedence,
56
+ getProvidersBySpawnCapability,
50
57
  getProvidersByStatus,
51
58
  getRegistryVersion,
59
+ getSpawnCapableProviders,
52
60
  getTrackedMcpServers,
53
61
  getTrackedSkills,
54
62
  getTransform,
@@ -75,6 +83,8 @@ import {
75
83
  parseInjectionContent,
76
84
  parseSkillFile,
77
85
  parseSource,
86
+ providerSupports,
87
+ providerSupportsById,
78
88
  rankSkills,
79
89
  readConfig,
80
90
  readLockFile,
@@ -95,6 +105,7 @@ import {
95
105
  resolveChannelFromServerName,
96
106
  resolveCleoServerName,
97
107
  resolveConfigPath,
108
+ resolveProviderSkillsDirs,
98
109
  resolveRegistryTemplatePath,
99
110
  saveLastSelectedAgents,
100
111
  scanDirectory,
@@ -110,7 +121,7 @@ import {
110
121
  validateRecommendationCriteria,
111
122
  validateSkill,
112
123
  writeConfig
113
- } from "./chunk-ZEXRZTQX.js";
124
+ } from "./chunk-N5E7BZM2.js";
114
125
  export {
115
126
  MarketplaceClient,
116
127
  RECOMMENDATION_ERROR_CODES,
@@ -119,6 +130,7 @@ export {
119
130
  buildInjectionContent,
120
131
  buildLibraryFromFiles,
121
132
  buildServerConfig,
133
+ buildSkillsMap,
122
134
  catalog_exports as catalog,
123
135
  checkAllInjections,
124
136
  checkAllSkillUpdates,
@@ -149,6 +161,8 @@ export {
149
161
  getAgentsWikiDir,
150
162
  getAllProviders,
151
163
  getCanonicalSkillsDir,
164
+ getCommonHookEvents,
165
+ getEffectiveSkillsPaths,
152
166
  getInstalledProviders,
153
167
  getInstructionFiles,
154
168
  getLastSelectedAgents,
@@ -157,11 +171,16 @@ export {
157
171
  getPlatformLocations,
158
172
  getProjectAgentsDir,
159
173
  getProvider,
174
+ getProviderCapabilities,
160
175
  getProviderCount,
176
+ getProvidersByHookEvent,
161
177
  getProvidersByInstructFile,
162
178
  getProvidersByPriority,
179
+ getProvidersBySkillsPrecedence,
180
+ getProvidersBySpawnCapability,
163
181
  getProvidersByStatus,
164
182
  getRegistryVersion,
183
+ getSpawnCapableProviders,
165
184
  getTrackedMcpServers,
166
185
  getTrackedSkills,
167
186
  getTransform,
@@ -188,6 +207,8 @@ export {
188
207
  parseInjectionContent,
189
208
  parseSkillFile,
190
209
  parseSource,
210
+ providerSupports,
211
+ providerSupportsById,
191
212
  rankSkills,
192
213
  readConfig,
193
214
  readLockFile,
@@ -208,6 +229,7 @@ export {
208
229
  resolveChannelFromServerName,
209
230
  resolveCleoServerName,
210
231
  resolveConfigPath,
232
+ resolveProviderSkillsDirs,
211
233
  resolveRegistryTemplatePath,
212
234
  saveLastSelectedAgents,
213
235
  scanDirectory,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/caamp",
3
- "version": "1.5.1",
3
+ "version": "1.6.0",
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": {
@@ -31,6 +31,7 @@
31
31
  "lint:fix": "biome lint --write src tests",
32
32
  "docs:api": "typedoc",
33
33
  "docs:api:check": "typedoc --emit none",
34
+ "research": "tsx scripts/provider-research.ts",
34
35
  "prepublishOnly": "npm run build"
35
36
  },
36
37
  "keywords": [