skill-tree 0.1.5 → 0.1.6

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.
Files changed (40) hide show
  1. package/dist/cli/index.js +1827 -1410
  2. package/dist/cli/index.js.map +1 -0
  3. package/dist/cli/index.mjs +9539 -1658
  4. package/dist/cli/index.mjs.map +1 -0
  5. package/dist/index.d.mts +316 -7
  6. package/dist/index.d.ts +316 -7
  7. package/dist/index.js +1539 -92
  8. package/dist/index.js.map +1 -0
  9. package/dist/index.mjs +9614 -70
  10. package/dist/index.mjs.map +1 -0
  11. package/package.json +2 -1
  12. package/dist/chunk-3SRB47JW.mjs +0 -8344
  13. package/dist/chunk-43YOKLZP.mjs +0 -6081
  14. package/dist/chunk-4AGZU52D.mjs +0 -7918
  15. package/dist/chunk-4OC5QFIF.mjs +0 -11267
  16. package/dist/chunk-55SMGVTP.mjs +0 -7126
  17. package/dist/chunk-6FX4IK4Z.mjs +0 -5368
  18. package/dist/chunk-7EGDKOHV.mjs +0 -9439
  19. package/dist/chunk-7LMOQW5H.mjs +0 -4893
  20. package/dist/chunk-7QIQJVNP.mjs +0 -14206
  21. package/dist/chunk-7VB4ZRZO.mjs +0 -7127
  22. package/dist/chunk-BPVRW25O.mjs +0 -6089
  23. package/dist/chunk-CI4476KM.mjs +0 -6607
  24. package/dist/chunk-DDXYQ74I.mjs +0 -13969
  25. package/dist/chunk-DQOFJXBX.mjs +0 -6595
  26. package/dist/chunk-E2CVK23F.mjs +0 -8751
  27. package/dist/chunk-F3YEUQAP.mjs +0 -654
  28. package/dist/chunk-FKJJ4RJG.mjs +0 -13874
  29. package/dist/chunk-II7DECZQ.mjs +0 -9111
  30. package/dist/chunk-INKVOZXK.mjs +0 -15898
  31. package/dist/chunk-K6NRCSAZ.mjs +0 -4355
  32. package/dist/chunk-OYHYXKXO.mjs +0 -7297
  33. package/dist/chunk-PDPN7FW7.mjs +0 -1045
  34. package/dist/chunk-TEUB6DZR.mjs +0 -6453
  35. package/dist/chunk-TWPEHDW4.mjs +0 -1067
  36. package/dist/chunk-Y54UK2J3.mjs +0 -13071
  37. package/dist/chunk-ZQVS7MQK.mjs +0 -6081
  38. package/dist/sqlite-OLU72GHB.mjs +0 -6
  39. package/dist/sqlite-XJRPMNAJ.mjs +0 -6
  40. package/dist/sync-BSWMMDA6.mjs +0 -14
package/dist/index.d.mts CHANGED
@@ -34,7 +34,7 @@ interface Skill {
34
34
  metrics: SkillMetrics;
35
35
  /** Upstream tracking for skills imported with 'link' mode */
36
36
  upstream?: SkillUpstream;
37
- source?: SkillSource;
37
+ source?: SkillSource$1;
38
38
  /** Taxonomy classification (from skill indexer) */
39
39
  taxonomy?: SkillTaxonomy;
40
40
  /** External source information (for imported skills) */
@@ -90,7 +90,7 @@ interface SkillMetrics {
90
90
  /** Average confidence from matching */
91
91
  averageConfidence?: number;
92
92
  }
93
- interface SkillSource {
93
+ interface SkillSource$1 {
94
94
  /** Where the skill came from */
95
95
  type: 'extracted' | 'manual' | 'imported' | 'composed';
96
96
  /** Original source location (git URL, local path, etc.) */
@@ -1212,6 +1212,17 @@ interface LoadoutCompilerConfig {
1212
1212
  /** Minimum similarity threshold for semantic matching (default: 0.6) */
1213
1213
  semanticThreshold?: number;
1214
1214
  }
1215
+ /**
1216
+ * Configuration for CatalogRenderer (browsable skill catalog)
1217
+ */
1218
+ interface CatalogRendererConfig {
1219
+ /** Max categories to show at each level (default: 12) */
1220
+ maxCategoriesPerLevel: number;
1221
+ /** Max skills to list at leaf nodes (default: 8) */
1222
+ maxSkillsAtLeaf: number;
1223
+ /** Max summary length for leaf-level skill descriptions (default: 80) */
1224
+ maxSummaryLength: number;
1225
+ }
1215
1226
  /**
1216
1227
  * Eviction strategy when maxExpanded is reached
1217
1228
  */
@@ -1248,6 +1259,10 @@ interface GraphServerConfig {
1248
1259
  outputFormat?: 'xml' | 'markdown';
1249
1260
  /** Include token estimates in output (default: false) */
1250
1261
  includeTokenEstimates?: boolean;
1262
+ /** Enable catalog browsing for large libraries (default: true) */
1263
+ enableCatalog?: boolean;
1264
+ /** Catalog renderer config overrides */
1265
+ catalogConfig?: Partial<CatalogRendererConfig>;
1251
1266
  }
1252
1267
  /**
1253
1268
  * Events emitted by the serving layer
@@ -1270,6 +1285,12 @@ type ServingEvent = {
1270
1285
  } | {
1271
1286
  type: 'pending:denied';
1272
1287
  skillIds: string[];
1288
+ } | {
1289
+ type: 'catalog:browsed';
1290
+ path: string[];
1291
+ } | {
1292
+ type: 'catalog:added';
1293
+ skillId: string;
1273
1294
  };
1274
1295
  /**
1275
1296
  * Handler for serving events
@@ -1300,6 +1321,7 @@ declare class SkillGraphServer {
1300
1321
  private compiler;
1301
1322
  private projectDetector;
1302
1323
  private viewRenderer;
1324
+ private catalogRenderer;
1303
1325
  private state;
1304
1326
  private handlers;
1305
1327
  private lruOrder;
@@ -1408,9 +1430,25 @@ declare class SkillGraphServer {
1408
1430
  */
1409
1431
  agentListLoadout(): LoadoutView;
1410
1432
  /**
1411
- * Render current state as system prompt content
1433
+ * Agent browses the skill catalog at a given path.
1434
+ * Returns rendered category view (subcategories or skill summaries at leaf).
1435
+ * Pass no path for the top-level overview.
1412
1436
  */
1413
- renderSystemPrompt(): string;
1437
+ agentBrowseCatalog(path?: string[]): Promise<string>;
1438
+ /**
1439
+ * Agent adds a skill discovered via browsing directly to loadout and expands it.
1440
+ * Bridges browse → loadout: found it in catalog, now load it.
1441
+ */
1442
+ agentAddFromCatalog(skillId: string): Promise<{
1443
+ added: boolean;
1444
+ pending: boolean;
1445
+ expanded: boolean;
1446
+ }>;
1447
+ /**
1448
+ * Render current state as system prompt content.
1449
+ * Includes catalog overview when catalog is enabled.
1450
+ */
1451
+ renderSystemPrompt(): Promise<string>;
1414
1452
  /**
1415
1453
  * Estimate total tokens for current loadout
1416
1454
  */
@@ -3169,11 +3207,13 @@ declare class ViewRenderer {
3169
3207
  */
3170
3208
  toSummaries(state: LoadoutState): SkillSummary[];
3171
3209
  /**
3172
- * Get summary for a skill (short description)
3210
+ * Get summary for a skill (short description).
3211
+ * Delegates to shared getSkillSummary utility.
3173
3212
  */
3174
3213
  private getSummary;
3175
3214
  /**
3176
- * Escape special XML characters
3215
+ * Escape special XML characters.
3216
+ * Delegates to shared escapeXml utility.
3177
3217
  */
3178
3218
  private escapeXml;
3179
3219
  /**
@@ -3248,6 +3288,63 @@ declare class ProjectDetector {
3248
3288
  private detectDirectoryPatterns;
3249
3289
  }
3250
3290
 
3291
+ /**
3292
+ * CatalogRenderer - Renders compressed, browsable skill catalog views
3293
+ *
3294
+ * Provides hierarchical discovery for large skill libraries by rendering
3295
+ * taxonomy trees or tag-based groupings at minimal token cost. Agents can
3296
+ * browse categories level by level instead of seeing a flat list.
3297
+ *
3298
+ * Two strategies:
3299
+ * 1. Taxonomy-based: Uses taxonomy_nodes from SQLite (preferred)
3300
+ * 2. Tag-based fallback: Groups skills by primary tag when no taxonomy exists
3301
+ *
3302
+ * @packageDocumentation
3303
+ */
3304
+
3305
+ /**
3306
+ * Renders compressed, browsable skill catalog views for agent consumption
3307
+ */
3308
+ declare class CatalogRenderer {
3309
+ private storage;
3310
+ private config;
3311
+ private overviewCache;
3312
+ private static readonly CACHE_TTL_MS;
3313
+ constructor(storage: StorageAdapter, config?: Partial<CatalogRendererConfig>);
3314
+ /**
3315
+ * Render level-0 catalog overview for system prompt injection.
3316
+ * Shows top-level categories with counts. ~200 tokens.
3317
+ * Returns empty string if no skills exist.
3318
+ * Results are cached for 60 seconds to avoid repeated storage queries.
3319
+ */
3320
+ renderOverview(): Promise<string>;
3321
+ /**
3322
+ * Render a specific category path for browse drill-down.
3323
+ * Shows subcategories at intermediate nodes, or skill summaries at leaf nodes.
3324
+ */
3325
+ renderCategory(path: string[]): Promise<string>;
3326
+ /**
3327
+ * Invalidate the overview cache (e.g., after skill changes).
3328
+ */
3329
+ invalidateCache(): void;
3330
+ /**
3331
+ * Render the overview XML shell with a list of categories.
3332
+ * Used by both taxonomy-based and tag-based paths.
3333
+ */
3334
+ private renderOverviewXml;
3335
+ private renderOverviewFromNodes;
3336
+ private renderCategoryFromTaxonomy;
3337
+ private renderOverviewFromTags;
3338
+ private renderCategoryFromTags;
3339
+ private renderLeafSkills;
3340
+ private groupByPrimaryTag;
3341
+ /**
3342
+ * Pre-compute counts for a list of nodes, avoiding redundant recursive walks.
3343
+ */
3344
+ private withCounts;
3345
+ private countNodeSkills;
3346
+ }
3347
+
3251
3348
  /**
3252
3349
  * Built-in Loadout Profiles
3253
3350
  *
@@ -3566,6 +3663,218 @@ declare function createDefaultSyncConfig(remoteUrl: string, agentId: string, opt
3566
3663
  environment?: string;
3567
3664
  }): SyncConfig;
3568
3665
 
3666
+ /**
3667
+ * Indexer Service - Wraps the skill indexer functionality for use with SkillBank
3668
+ *
3669
+ * This service provides a bridge between the skill indexer (scraper/) and the
3670
+ * main skill-tree SkillBank. It can work in two modes:
3671
+ *
3672
+ * 1. Standalone mode: Direct database operations (default)
3673
+ * 2. Integrated mode: Uses SkillBank as the storage backend
3674
+ */
3675
+
3676
+ /**
3677
+ * Skill source for scraping
3678
+ */
3679
+ interface SkillSource {
3680
+ type: "awesome-list" | "repository";
3681
+ url: string;
3682
+ }
3683
+ /**
3684
+ * Indexer configuration (service-level)
3685
+ */
3686
+ interface IndexerServiceConfig {
3687
+ /** GitHub API token */
3688
+ githubToken?: string;
3689
+ /** Anthropic API key for classification */
3690
+ anthropicApiKey?: string;
3691
+ /** Claude model to use */
3692
+ claudeModel?: string;
3693
+ /** Database path for standalone mode */
3694
+ databasePath?: string;
3695
+ /** Batch size for processing */
3696
+ batchSize?: number;
3697
+ /** Concurrency limit */
3698
+ concurrency?: number;
3699
+ /** Minimum confidence for classification */
3700
+ minConfidence?: number;
3701
+ /** Cache directory */
3702
+ cacheDir?: string;
3703
+ /** Cache TTL in seconds */
3704
+ cacheTtlSeconds?: number;
3705
+ /** Pre-loaded scraper module. When provided, skips filesystem-based module discovery entirely. */
3706
+ scraperModules?: any;
3707
+ }
3708
+ /**
3709
+ * Scrape result
3710
+ */
3711
+ interface ScrapeResult {
3712
+ discovered: number;
3713
+ scraped: number;
3714
+ skipped: number;
3715
+ failed: number;
3716
+ unchanged: number;
3717
+ errors: string[];
3718
+ }
3719
+ /**
3720
+ * Index result
3721
+ */
3722
+ interface IndexResult {
3723
+ indexed: number;
3724
+ skipped: number;
3725
+ failed: number;
3726
+ errors: string[];
3727
+ }
3728
+ /**
3729
+ * Relationship detection result
3730
+ */
3731
+ interface RelationshipResult {
3732
+ detected: number;
3733
+ skipped: number;
3734
+ errors: string[];
3735
+ }
3736
+ /**
3737
+ * Taxonomy node for tree display
3738
+ */
3739
+ interface TaxonomyNode {
3740
+ id: string;
3741
+ name: string;
3742
+ path: string[];
3743
+ skillCount: number;
3744
+ children: TaxonomyNode[];
3745
+ }
3746
+ /**
3747
+ * Database statistics
3748
+ */
3749
+ interface IndexerStats {
3750
+ totalSkills: number;
3751
+ indexedSkills: number;
3752
+ rawSkills: number;
3753
+ failedSkills: number;
3754
+ taxonomyNodes: number;
3755
+ relationships: number;
3756
+ sources: number;
3757
+ }
3758
+ /**
3759
+ * IndexerService - Manages skill discovery, classification, and relationship detection
3760
+ */
3761
+ declare class IndexerService {
3762
+ private serviceConfig;
3763
+ private globalConfig;
3764
+ private skillBank?;
3765
+ private initialized;
3766
+ private scraperModule?;
3767
+ private indexerModule?;
3768
+ private databaseModule?;
3769
+ private db?;
3770
+ constructor(config?: IndexerServiceConfig, skillBank?: SkillBank);
3771
+ /**
3772
+ * Get effective configuration
3773
+ */
3774
+ getConfig(): IndexerServiceConfig;
3775
+ /**
3776
+ * Initialize the service (lazy load scraper modules)
3777
+ */
3778
+ initialize(): Promise<void>;
3779
+ /**
3780
+ * Check if the indexer is available
3781
+ */
3782
+ isAvailable(): boolean;
3783
+ /**
3784
+ * Check if running in degraded mode (no scraper modules)
3785
+ */
3786
+ isDegradedMode(): boolean;
3787
+ /**
3788
+ * Scrape skills from GitHub sources
3789
+ */
3790
+ scrape(sources: SkillSource[], options?: {
3791
+ force?: boolean;
3792
+ }): Promise<ScrapeResult>;
3793
+ /**
3794
+ * Classify unindexed skills using AI
3795
+ */
3796
+ classify(options?: {
3797
+ skillId?: string;
3798
+ all?: boolean;
3799
+ }): Promise<IndexResult>;
3800
+ /**
3801
+ * Detect relationships between skills
3802
+ */
3803
+ detectRelationships(options?: {
3804
+ skillId?: string;
3805
+ useAi?: boolean;
3806
+ }): Promise<RelationshipResult>;
3807
+ /**
3808
+ * Detect relationships for a single skill
3809
+ */
3810
+ private detectSkillRelationships;
3811
+ /**
3812
+ * Get taxonomy tree
3813
+ */
3814
+ getTaxonomyTree(rootPath?: string[]): Promise<TaxonomyNode>;
3815
+ /**
3816
+ * Wrap tree nodes returned from SQLite storage into a root node
3817
+ */
3818
+ private wrapTreeNodes;
3819
+ /**
3820
+ * Convert storage tree node to TaxonomyNode format
3821
+ */
3822
+ private convertToTaxonomyNode;
3823
+ /**
3824
+ * Count total skills in a node tree
3825
+ */
3826
+ private countNodeSkills;
3827
+ /**
3828
+ * Build taxonomy tree from flat nodes
3829
+ */
3830
+ private buildTaxonomyTree;
3831
+ /**
3832
+ * Build taxonomy tree from skills
3833
+ */
3834
+ private buildTaxonomyTreeFromSkills;
3835
+ /**
3836
+ * Get indexer statistics
3837
+ */
3838
+ getStats(): Promise<IndexerStats>;
3839
+ /**
3840
+ * Count nodes in taxonomy tree
3841
+ */
3842
+ private countTaxonomyNodes;
3843
+ /**
3844
+ * Scrape and index skills directly into SkillBank
3845
+ * This is the streamlined workflow for integrated mode
3846
+ */
3847
+ scrapeAndIndex(sources: SkillSource[], options?: {
3848
+ force?: boolean;
3849
+ autoClassify?: boolean;
3850
+ detectRelationships?: boolean;
3851
+ }): Promise<{
3852
+ scraped: ScrapeResult;
3853
+ indexed: IndexResult;
3854
+ relationships: RelationshipResult;
3855
+ skillsAdded: string[];
3856
+ }>;
3857
+ /**
3858
+ * Import skills from indexer database into SkillBank
3859
+ */
3860
+ importFromIndexerDb(options?: {
3861
+ status?: "raw" | "indexed" | "failed";
3862
+ limit?: number;
3863
+ }): Promise<{
3864
+ imported: number;
3865
+ failed: number;
3866
+ skills: Skill[];
3867
+ }>;
3868
+ /**
3869
+ * Get default skill sources from config
3870
+ */
3871
+ getDefaultSources(): SkillSource[];
3872
+ /**
3873
+ * Close database connections
3874
+ */
3875
+ close(): Promise<void>;
3876
+ }
3877
+
3569
3878
  /**
3570
3879
  * skill-tree - A library for managing agent skill versions and evolution
3571
3880
  *
@@ -3579,4 +3888,4 @@ declare function createDefaultSyncConfig(remoteUrl: string, agentId: string, opt
3579
3888
  */
3580
3889
  declare const VERSION = "0.1.0";
3581
3890
 
3582
- export { type AgentConfig, AgentsGenerator, type AgentsGeneratorConfig, AgentsParser, AgentsSync, type BaseHookContext, type BumpType, CachedStorageAdapter, type CachedStorageConfig, type ConflictConfig, type ConflictResolution$1 as ConflictResolution, ConflictStore, type ConflictStrategy, DEFAULT_AGENTS_CONFIG, type DiscoveredSkill, type EvictionStrategy, type ExpandTrigger, type ExpandTriggerConfig, type FederatedRemoteConfig, type FederationEvent, type FederationEventHandler, FederationManager, type FederationManagerOptions, type FetchResult, type ForkOptions, GitSyncAdapter, type GitSyncAdapterOptions, type SyncResult$1 as GitSyncResult, type GraphServerConfig, type HookContext, type HookEvent, type HookExecutionResult, type HookHandler, type HookPriority, HookRegistry, type HookResult, type ImportMode, type ImportOptions, type ImportResult, LineageTracker, type LineageTree, LoadoutCompiler, type LoadoutCompilerConfig, type LoadoutCriteria, type LoadoutSource, type LoadoutState, type LoadoutView, type MaterializationConfig, Materializer, MemoryStorageAdapter, type MergeConfig, type MergeConflict, type MergePreview, type MergeResult, type MergeStrategy, type MergeSuggestion, type MigrationOptions, type MigrationProgressItem, type MigrationResult, type NewVersionOptions, type ParsedAgentSkill, type ParsedAgentsFile, type ParsedVersion, type ProjectContext, ProjectDetector, type PullOptions, type PullUpstreamOptions, type PullUpstreamResult, type PushOptions, type RegisterHookOptions, type RegisteredHook, type RemoteConfig, RemoteManager, type RemoteState, RemoteStore, type RollbackOptions, type ServingEvent, type ServingEventHandler, type ShareOptions, type ShareResult, type Skill, type SkillAccessControl, SkillBank, type SkillBankConfig, type SkillBankStats, type SkillChange, type SkillConflict, type SkillCrudHookContext, type SkillDiffChanges, type SkillFilter, type SkillFork, type SkillFormat, SkillGraphServer, type SkillLineage, type SkillMergeResult, SkillMerger, type SkillMetrics, type SkillNamespace, type SkillScope, type SkillSelector, type SkillServingMetadata, type SkillSource, type SkillState, type SkillStatus, type SkillSummary, type SkillSyncState, type SkillTreeEvent, type SkillTreeEventHandler, type SkillUpstream, type SkillVersion, type SkillVisibility, type StorageAdapter, type StorageConfig, type StorageHookContext, type SyncBehaviorConfig, type SyncConfig, type ConflictResolution as SyncConflictResolution, type SyncError, SyncManager, type SyncManagerOptions, type SyncOptions, type SyncResult, type SyncState, type SyncStatus, type UpstreamUpdate, VERSION, type VersionChanges, type VersionDiff, ViewRenderer, type ViewRendererConfig, builtInProfiles, bumpVersion, codeReviewProfile, combineHandlers, compareVersions, conditionalHook, createAgentsGenerator, createAgentsParser, createAgentsSync, createBackupHook, createConflictStore, createDefaultSyncConfig, createFederationManager, createGitSyncAdapter, createLoggingHook, createSaveValidationHook, createSkillBank, createSkillMerger, createSyncManager, debuggingProfile, devopsProfile, discoverSkills, documentationProfile, formatVersion, generateAgentsMd, getBuiltInProfile, getLatestVersion, hasSkilltreeDir, hookRegistry, implementationProfile, importFromAgentsMd, inferBumpType, isValidVersion, listBuiltInProfiles, migrateStorage, parseVersion, refactoringProfile, satisfiesRange, securityProfile, sortVersions, testingProfile, writeAgentsMd };
3891
+ export { type AgentConfig, AgentsGenerator, type AgentsGeneratorConfig, AgentsParser, AgentsSync, type BaseHookContext, type BumpType, CachedStorageAdapter, type CachedStorageConfig, CatalogRenderer, type CatalogRendererConfig, type ConflictConfig, type ConflictResolution$1 as ConflictResolution, ConflictStore, type ConflictStrategy, DEFAULT_AGENTS_CONFIG, type DiscoveredSkill, type EvictionStrategy, type ExpandTrigger, type ExpandTriggerConfig, type FederatedRemoteConfig, type FederationEvent, type FederationEventHandler, FederationManager, type FederationManagerOptions, type FetchResult, type ForkOptions, GitSyncAdapter, type GitSyncAdapterOptions, type SyncResult$1 as GitSyncResult, type GraphServerConfig, type HookContext, type HookEvent, type HookExecutionResult, type HookHandler, type HookPriority, HookRegistry, type HookResult, type ImportMode, type ImportOptions, type ImportResult, type IndexResult, IndexerService, type IndexerServiceConfig, type SkillSource as IndexerSkillSource, type IndexerStats, LineageTracker, type LineageTree, LoadoutCompiler, type LoadoutCompilerConfig, type LoadoutCriteria, type LoadoutSource, type LoadoutState, type LoadoutView, type MaterializationConfig, Materializer, MemoryStorageAdapter, type MergeConfig, type MergeConflict, type MergePreview, type MergeResult, type MergeStrategy, type MergeSuggestion, type MigrationOptions, type MigrationProgressItem, type MigrationResult, type NewVersionOptions, type ParsedAgentSkill, type ParsedAgentsFile, type ParsedVersion, type ProjectContext, ProjectDetector, type PullOptions, type PullUpstreamOptions, type PullUpstreamResult, type PushOptions, type RegisterHookOptions, type RegisteredHook, type RelationshipResult, type RemoteConfig, RemoteManager, type RemoteState, RemoteStore, type RollbackOptions, type ScrapeResult, type ServingEvent, type ServingEventHandler, type ShareOptions, type ShareResult, type Skill, type SkillAccessControl, SkillBank, type SkillBankConfig, type SkillBankStats, type SkillChange, type SkillConflict, type SkillCrudHookContext, type SkillDiffChanges, type SkillFilter, type SkillFork, type SkillFormat, SkillGraphServer, type SkillLineage, type SkillMergeResult, SkillMerger, type SkillMetrics, type SkillNamespace, type SkillScope, type SkillSelector, type SkillServingMetadata, type SkillSource$1 as SkillSource, type SkillState, type SkillStatus, type SkillSummary, type SkillSyncState, type SkillTreeEvent, type SkillTreeEventHandler, type SkillUpstream, type SkillVersion, type SkillVisibility, type StorageAdapter, type StorageConfig, type StorageHookContext, type SyncBehaviorConfig, type SyncConfig, type ConflictResolution as SyncConflictResolution, type SyncError, SyncManager, type SyncManagerOptions, type SyncOptions, type SyncResult, type SyncState, type SyncStatus, type TaxonomyNode, type UpstreamUpdate, VERSION, type VersionChanges, type VersionDiff, ViewRenderer, type ViewRendererConfig, builtInProfiles, bumpVersion, codeReviewProfile, combineHandlers, compareVersions, conditionalHook, createAgentsGenerator, createAgentsParser, createAgentsSync, createBackupHook, createConflictStore, createDefaultSyncConfig, createFederationManager, createGitSyncAdapter, createLoggingHook, createSaveValidationHook, createSkillBank, createSkillMerger, createSyncManager, debuggingProfile, devopsProfile, discoverSkills, documentationProfile, formatVersion, generateAgentsMd, getBuiltInProfile, getLatestVersion, hasSkilltreeDir, hookRegistry, implementationProfile, importFromAgentsMd, inferBumpType, isValidVersion, listBuiltInProfiles, migrateStorage, parseVersion, refactoringProfile, satisfiesRange, securityProfile, sortVersions, testingProfile, writeAgentsMd };