agent-skills-cli 1.0.7 → 1.0.9

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 (158) hide show
  1. package/README.md +43 -27
  2. package/dist/cli/agents.d.ts +10 -0
  3. package/dist/cli/agents.d.ts.map +1 -0
  4. package/dist/cli/agents.js +270 -0
  5. package/dist/cli/agents.js.map +1 -0
  6. package/dist/cli/commands/audit.d.ts +11 -0
  7. package/dist/cli/commands/audit.d.ts.map +1 -0
  8. package/dist/cli/commands/audit.js +168 -0
  9. package/dist/cli/commands/audit.js.map +1 -0
  10. package/dist/cli/commands/blueprint.d.ts +11 -0
  11. package/dist/cli/commands/blueprint.d.ts.map +1 -0
  12. package/dist/cli/commands/blueprint.js +210 -0
  13. package/dist/cli/commands/blueprint.js.map +1 -0
  14. package/dist/cli/commands/bootstrap.d.ts +11 -0
  15. package/dist/cli/commands/bootstrap.d.ts.map +1 -0
  16. package/dist/cli/commands/bootstrap.js +267 -0
  17. package/dist/cli/commands/bootstrap.js.map +1 -0
  18. package/dist/cli/commands/capture.d.ts +11 -0
  19. package/dist/cli/commands/capture.d.ts.map +1 -0
  20. package/dist/cli/commands/capture.js +109 -0
  21. package/dist/cli/commands/capture.js.map +1 -0
  22. package/dist/cli/commands/ci.d.ts +11 -0
  23. package/dist/cli/commands/ci.d.ts.map +1 -0
  24. package/dist/cli/commands/ci.js +144 -0
  25. package/dist/cli/commands/ci.js.map +1 -0
  26. package/dist/cli/commands/collab.d.ts +11 -0
  27. package/dist/cli/commands/collab.d.ts.map +1 -0
  28. package/dist/cli/commands/collab.js +196 -0
  29. package/dist/cli/commands/collab.js.map +1 -0
  30. package/dist/cli/commands/convert.d.ts +11 -0
  31. package/dist/cli/commands/convert.d.ts.map +1 -0
  32. package/dist/cli/commands/convert.js +219 -0
  33. package/dist/cli/commands/convert.js.map +1 -0
  34. package/dist/cli/commands/craft.d.ts +18 -0
  35. package/dist/cli/commands/craft.d.ts.map +1 -0
  36. package/dist/cli/commands/craft.js +205 -0
  37. package/dist/cli/commands/craft.js.map +1 -0
  38. package/dist/cli/commands/export.d.ts +9 -0
  39. package/dist/cli/commands/export.d.ts.map +1 -0
  40. package/dist/cli/commands/export.js +103 -0
  41. package/dist/cli/commands/export.js.map +1 -0
  42. package/dist/cli/commands/forge.d.ts +11 -0
  43. package/dist/cli/commands/forge.d.ts.map +1 -0
  44. package/dist/cli/commands/forge.js +152 -0
  45. package/dist/cli/commands/forge.js.map +1 -0
  46. package/dist/cli/commands/grid.d.ts +11 -0
  47. package/dist/cli/commands/grid.d.ts.map +1 -0
  48. package/dist/cli/commands/grid.js +217 -0
  49. package/dist/cli/commands/grid.js.map +1 -0
  50. package/dist/cli/commands/insight.d.ts +7 -0
  51. package/dist/cli/commands/insight.d.ts.map +1 -0
  52. package/dist/cli/commands/insight.js +71 -0
  53. package/dist/cli/commands/insight.js.map +1 -0
  54. package/dist/cli/commands/install.d.ts +6 -0
  55. package/dist/cli/commands/install.d.ts.map +1 -0
  56. package/dist/cli/commands/install.js +359 -0
  57. package/dist/cli/commands/install.js.map +1 -0
  58. package/dist/cli/commands/interactive.d.ts +7 -0
  59. package/dist/cli/commands/interactive.d.ts.map +1 -0
  60. package/dist/cli/commands/interactive.js +535 -0
  61. package/dist/cli/commands/interactive.js.map +1 -0
  62. package/dist/cli/commands/list.d.ts +6 -0
  63. package/dist/cli/commands/list.d.ts.map +1 -0
  64. package/dist/cli/commands/list.js +77 -0
  65. package/dist/cli/commands/list.js.map +1 -0
  66. package/dist/cli/commands/lockspec.d.ts +11 -0
  67. package/dist/cli/commands/lockspec.d.ts.map +1 -0
  68. package/dist/cli/commands/lockspec.js +179 -0
  69. package/dist/cli/commands/lockspec.js.map +1 -0
  70. package/dist/cli/commands/marketplace.d.ts +7 -0
  71. package/dist/cli/commands/marketplace.d.ts.map +1 -0
  72. package/dist/cli/commands/marketplace.js +417 -0
  73. package/dist/cli/commands/marketplace.js.map +1 -0
  74. package/dist/cli/commands/method.d.ts +7 -0
  75. package/dist/cli/commands/method.d.ts.map +1 -0
  76. package/dist/cli/commands/method.js +140 -0
  77. package/dist/cli/commands/method.js.map +1 -0
  78. package/dist/cli/commands/mine.d.ts +11 -0
  79. package/dist/cli/commands/mine.d.ts.map +1 -0
  80. package/dist/cli/commands/mine.js +254 -0
  81. package/dist/cli/commands/mine.js.map +1 -0
  82. package/dist/cli/commands/recall.d.ts +11 -0
  83. package/dist/cli/commands/recall.d.ts.map +1 -0
  84. package/dist/cli/commands/recall.js +201 -0
  85. package/dist/cli/commands/recall.js.map +1 -0
  86. package/dist/cli/commands/remove.d.ts +40 -0
  87. package/dist/cli/commands/remove.d.ts.map +1 -0
  88. package/dist/cli/commands/remove.js +161 -0
  89. package/dist/cli/commands/remove.js.map +1 -0
  90. package/dist/cli/commands/rule.d.ts +11 -0
  91. package/dist/cli/commands/rule.d.ts.map +1 -0
  92. package/dist/cli/commands/rule.js +230 -0
  93. package/dist/cli/commands/rule.js.map +1 -0
  94. package/dist/cli/commands/search.d.ts +6 -0
  95. package/dist/cli/commands/search.d.ts.map +1 -0
  96. package/dist/cli/commands/search.js +173 -0
  97. package/dist/cli/commands/search.js.map +1 -0
  98. package/dist/cli/commands/show.d.ts +6 -0
  99. package/dist/cli/commands/show.d.ts.map +1 -0
  100. package/dist/cli/commands/show.js +150 -0
  101. package/dist/cli/commands/show.js.map +1 -0
  102. package/dist/cli/commands/submit.d.ts +15 -0
  103. package/dist/cli/commands/submit.d.ts.map +1 -0
  104. package/dist/cli/commands/submit.js +151 -0
  105. package/dist/cli/commands/submit.js.map +1 -0
  106. package/dist/cli/commands/suggest.d.ts +11 -0
  107. package/dist/cli/commands/suggest.d.ts.map +1 -0
  108. package/dist/cli/commands/suggest.js +164 -0
  109. package/dist/cli/commands/suggest.js.map +1 -0
  110. package/dist/cli/commands/track.d.ts +11 -0
  111. package/dist/cli/commands/track.d.ts.map +1 -0
  112. package/dist/cli/commands/track.js +199 -0
  113. package/dist/cli/commands/track.js.map +1 -0
  114. package/dist/cli/commands/trigger.d.ts +11 -0
  115. package/dist/cli/commands/trigger.d.ts.map +1 -0
  116. package/dist/cli/commands/trigger.js +157 -0
  117. package/dist/cli/commands/trigger.js.map +1 -0
  118. package/dist/cli/commands/utils-commands.d.ts +9 -0
  119. package/dist/cli/commands/utils-commands.d.ts.map +1 -0
  120. package/dist/cli/commands/utils-commands.js +389 -0
  121. package/dist/cli/commands/utils-commands.js.map +1 -0
  122. package/dist/cli/commands/validate.d.ts +6 -0
  123. package/dist/cli/commands/validate.d.ts.map +1 -0
  124. package/dist/cli/commands/validate.js +40 -0
  125. package/dist/cli/commands/validate.js.map +1 -0
  126. package/dist/cli/fzf-search.d.ts +28 -0
  127. package/dist/cli/fzf-search.d.ts.map +1 -0
  128. package/dist/cli/fzf-search.js +211 -0
  129. package/dist/cli/fzf-search.js.map +1 -0
  130. package/dist/cli/index.d.ts +3 -0
  131. package/dist/cli/index.d.ts.map +1 -1
  132. package/dist/cli/index.js +87 -2537
  133. package/dist/cli/index.js.map +1 -1
  134. package/dist/core/audit.d.ts +24 -0
  135. package/dist/core/audit.d.ts.map +1 -0
  136. package/dist/core/audit.js +195 -0
  137. package/dist/core/audit.js.map +1 -0
  138. package/dist/core/index.d.ts +10 -0
  139. package/dist/core/index.d.ts.map +1 -1
  140. package/dist/core/index.js +10 -0
  141. package/dist/core/index.js.map +1 -1
  142. package/dist/core/installer.d.ts +79 -0
  143. package/dist/core/installer.d.ts.map +1 -0
  144. package/dist/core/installer.js +142 -0
  145. package/dist/core/installer.js.map +1 -0
  146. package/dist/core/scanner-rules.d.ts +58 -0
  147. package/dist/core/scanner-rules.d.ts.map +1 -0
  148. package/dist/core/scanner-rules.js +335 -0
  149. package/dist/core/scanner-rules.js.map +1 -0
  150. package/dist/core/skill-lock.d.ts +114 -0
  151. package/dist/core/skill-lock.d.ts.map +1 -0
  152. package/dist/core/skill-lock.js +133 -0
  153. package/dist/core/skill-lock.js.map +1 -0
  154. package/dist/core/suggest.d.ts +51 -0
  155. package/dist/core/suggest.d.ts.map +1 -0
  156. package/dist/core/suggest.js +241 -0
  157. package/dist/core/suggest.js.map +1 -0
  158. package/package.json +2 -2
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Skill Lock File Module
3
+ * Tracks installed skills for check/update/remove operations
4
+ */
5
+ /**
6
+ * Source type for installed skills
7
+ */
8
+ export type SourceType = 'database' | 'github' | 'gitlab' | 'local';
9
+ /**
10
+ * Lock entry for a single installed skill
11
+ */
12
+ export interface LockEntry {
13
+ /** Skill name */
14
+ name: string;
15
+ /** Scoped name like @author/skillname */
16
+ scopedName: string;
17
+ /** Source URL or path */
18
+ source: string;
19
+ /** Type of source */
20
+ sourceType: SourceType;
21
+ /** Version (commit SHA for git sources) */
22
+ version?: string;
23
+ /** Installation timestamp (ISO 8601) */
24
+ installedAt: string;
25
+ /** Last update timestamp (ISO 8601) */
26
+ updatedAt?: string;
27
+ /** List of agents this skill is installed to */
28
+ agents: string[];
29
+ /** Path to the canonical copy */
30
+ canonicalPath: string;
31
+ /** Whether this is a global or project installation */
32
+ isGlobal: boolean;
33
+ /** Project directory (for project installations) */
34
+ projectDir?: string;
35
+ }
36
+ /**
37
+ * Full lock file structure
38
+ */
39
+ export interface SkillsLock {
40
+ /** Lock file format version */
41
+ version: '1';
42
+ /** Map of skill name to lock entry */
43
+ skills: Record<string, LockEntry>;
44
+ }
45
+ /**
46
+ * Get the lock file path
47
+ */
48
+ export declare function getLockFilePath(): string;
49
+ /**
50
+ * Read the lock file (returns empty lock if doesn't exist)
51
+ */
52
+ export declare function readLock(): Promise<SkillsLock>;
53
+ /**
54
+ * Write the lock file
55
+ */
56
+ export declare function writeLock(lock: SkillsLock): Promise<void>;
57
+ /**
58
+ * Add or update a skill in the lock file
59
+ */
60
+ export declare function addSkillToLock(entry: LockEntry): Promise<void>;
61
+ /**
62
+ * Remove a skill from the lock file
63
+ */
64
+ export declare function removeSkillFromLock(skillName: string): Promise<void>;
65
+ /**
66
+ * Get a skill entry from the lock file
67
+ */
68
+ export declare function getSkillFromLock(skillName: string): Promise<LockEntry | null>;
69
+ /**
70
+ * Options for listing installed skills
71
+ */
72
+ export interface ListOptions {
73
+ /** Filter to global installations only */
74
+ global?: boolean;
75
+ /** Filter to specific agent */
76
+ agent?: string;
77
+ /** Filter to specific project directory */
78
+ projectDir?: string;
79
+ }
80
+ /**
81
+ * List all installed skills, optionally filtered
82
+ */
83
+ export declare function listInstalledSkills(options?: ListOptions): Promise<LockEntry[]>;
84
+ /**
85
+ * Check if a skill is installed
86
+ */
87
+ export declare function isSkillInstalled(skillName: string): Promise<boolean>;
88
+ /**
89
+ * Get installed skill count
90
+ */
91
+ export declare function getInstalledSkillCount(): Promise<number>;
92
+ /**
93
+ * Update a skill's version in the lock file
94
+ */
95
+ export declare function updateSkillVersion(skillName: string, version: string): Promise<void>;
96
+ /**
97
+ * Update agents for an installed skill
98
+ */
99
+ export declare function updateSkillAgents(skillName: string, agents: string[]): Promise<void>;
100
+ /**
101
+ * Create a lock entry for a newly installed skill
102
+ */
103
+ export declare function createLockEntry(options: {
104
+ name: string;
105
+ scopedName: string;
106
+ source: string;
107
+ sourceType: SourceType;
108
+ version?: string;
109
+ agents: string[];
110
+ canonicalPath: string;
111
+ isGlobal: boolean;
112
+ projectDir?: string;
113
+ }): LockEntry;
114
+ //# sourceMappingURL=skill-lock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-lock.d.ts","sourceRoot":"","sources":["../../src/core/skill-lock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Skill Lock File Module
3
+ * Tracks installed skills for check/update/remove operations
4
+ */
5
+ import { homedir } from 'os';
6
+ import { join, dirname } from 'path';
7
+ import { readFile, writeFile, mkdir } from 'fs/promises';
8
+ import { existsSync } from 'fs';
9
+ /**
10
+ * Lock file location (always in home, tracks both global and project skills)
11
+ */
12
+ const LOCK_FILE = join(homedir(), '.skills', 'skills.lock');
13
+ /**
14
+ * Get the lock file path
15
+ */
16
+ export function getLockFilePath() {
17
+ return LOCK_FILE;
18
+ }
19
+ /**
20
+ * Read the lock file (returns empty lock if doesn't exist)
21
+ */
22
+ export async function readLock() {
23
+ try {
24
+ if (!existsSync(LOCK_FILE)) {
25
+ return { version: '1', skills: {} };
26
+ }
27
+ const content = await readFile(LOCK_FILE, 'utf-8');
28
+ return JSON.parse(content);
29
+ }
30
+ catch {
31
+ return { version: '1', skills: {} };
32
+ }
33
+ }
34
+ /**
35
+ * Write the lock file
36
+ */
37
+ export async function writeLock(lock) {
38
+ await mkdir(dirname(LOCK_FILE), { recursive: true });
39
+ await writeFile(LOCK_FILE, JSON.stringify(lock, null, 2));
40
+ }
41
+ /**
42
+ * Add or update a skill in the lock file
43
+ */
44
+ export async function addSkillToLock(entry) {
45
+ const lock = await readLock();
46
+ lock.skills[entry.name] = entry;
47
+ await writeLock(lock);
48
+ }
49
+ /**
50
+ * Remove a skill from the lock file
51
+ */
52
+ export async function removeSkillFromLock(skillName) {
53
+ const lock = await readLock();
54
+ delete lock.skills[skillName];
55
+ await writeLock(lock);
56
+ }
57
+ /**
58
+ * Get a skill entry from the lock file
59
+ */
60
+ export async function getSkillFromLock(skillName) {
61
+ const lock = await readLock();
62
+ return lock.skills[skillName] || null;
63
+ }
64
+ /**
65
+ * List all installed skills, optionally filtered
66
+ */
67
+ export async function listInstalledSkills(options) {
68
+ const lock = await readLock();
69
+ let skills = Object.values(lock.skills);
70
+ if (options?.global !== undefined) {
71
+ skills = skills.filter(s => s.isGlobal === options.global);
72
+ }
73
+ if (options?.agent) {
74
+ skills = skills.filter(s => s.agents.includes(options.agent));
75
+ }
76
+ if (options?.projectDir) {
77
+ skills = skills.filter(s => s.projectDir === options.projectDir);
78
+ }
79
+ return skills;
80
+ }
81
+ /**
82
+ * Check if a skill is installed
83
+ */
84
+ export async function isSkillInstalled(skillName) {
85
+ const lock = await readLock();
86
+ return !!lock.skills[skillName];
87
+ }
88
+ /**
89
+ * Get installed skill count
90
+ */
91
+ export async function getInstalledSkillCount() {
92
+ const lock = await readLock();
93
+ return Object.keys(lock.skills).length;
94
+ }
95
+ /**
96
+ * Update a skill's version in the lock file
97
+ */
98
+ export async function updateSkillVersion(skillName, version) {
99
+ const lock = await readLock();
100
+ if (lock.skills[skillName]) {
101
+ lock.skills[skillName].version = version;
102
+ lock.skills[skillName].updatedAt = new Date().toISOString();
103
+ await writeLock(lock);
104
+ }
105
+ }
106
+ /**
107
+ * Update agents for an installed skill
108
+ */
109
+ export async function updateSkillAgents(skillName, agents) {
110
+ const lock = await readLock();
111
+ if (lock.skills[skillName]) {
112
+ lock.skills[skillName].agents = agents;
113
+ await writeLock(lock);
114
+ }
115
+ }
116
+ /**
117
+ * Create a lock entry for a newly installed skill
118
+ */
119
+ export function createLockEntry(options) {
120
+ return {
121
+ name: options.name,
122
+ scopedName: options.scopedName,
123
+ source: options.source,
124
+ sourceType: options.sourceType,
125
+ version: options.version,
126
+ installedAt: new Date().toISOString(),
127
+ agents: options.agents,
128
+ canonicalPath: options.canonicalPath,
129
+ isGlobal: options.isGlobal,
130
+ projectDir: options.projectDir,
131
+ };
132
+ }
133
+ //# sourceMappingURL=skill-lock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-lock.js","sourceRoot":"","sources":["../../src/core/skill-lock.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Suggest Engine - Project-aware skill recommendations
3
+ * Analyzes package.json and project files to recommend matching skills from our 67K+ DB
4
+ */
5
+ export interface ProjectAnalysis {
6
+ languages: string[];
7
+ frameworks: string[];
8
+ libraries: string[];
9
+ testTools: string[];
10
+ buildTools: string[];
11
+ categories: string[];
12
+ }
13
+ export interface SuggestedSkill {
14
+ name: string;
15
+ author: string;
16
+ scopedName: string;
17
+ description: string;
18
+ score: number;
19
+ matchReasons: string[];
20
+ githubUrl: string;
21
+ stars: number;
22
+ }
23
+ export interface SuggestOptions {
24
+ limit?: number;
25
+ minScore?: number;
26
+ category?: string;
27
+ task?: string;
28
+ verbose?: boolean;
29
+ json?: boolean;
30
+ path?: string;
31
+ }
32
+ /**
33
+ * Analyze a project directory to detect tech stack
34
+ */
35
+ export declare function analyzeProject(projectPath: string): Promise<ProjectAnalysis>;
36
+ /**
37
+ * Build search keywords from project analysis
38
+ */
39
+ export declare function buildSearchKeywords(analysis: ProjectAnalysis, task?: string): string[];
40
+ /**
41
+ * Score a skill against project analysis
42
+ */
43
+ export declare function scoreSkill(skill: {
44
+ name: string;
45
+ description: string;
46
+ stars: number;
47
+ }, analysis: ProjectAnalysis, keywords: string[]): {
48
+ score: number;
49
+ reasons: string[];
50
+ };
51
+ //# sourceMappingURL=suggest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggest.d.ts","sourceRoot":"","sources":["../../src/core/suggest.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAsED;;GAEG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAsGlF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAiBtF;AAED;;GAEG;AACH,wBAAgB,UAAU,CACtB,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAC3D,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,EAAE,GACnB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAyDtC"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Suggest Engine - Project-aware skill recommendations
3
+ * Analyzes package.json and project files to recommend matching skills from our 67K+ DB
4
+ */
5
+ import { readFile } from 'fs/promises';
6
+ import { join } from 'path';
7
+ import { existsSync } from 'fs';
8
+ // Framework detection patterns
9
+ const FRAMEWORK_PATTERNS = {
10
+ 'react': ['react', 'react-dom'],
11
+ 'next.js': ['next'],
12
+ 'vue': ['vue'],
13
+ 'nuxt': ['nuxt'],
14
+ 'angular': ['@angular/core'],
15
+ 'svelte': ['svelte'],
16
+ 'express': ['express'],
17
+ 'fastify': ['fastify'],
18
+ 'nest.js': ['@nestjs/core'],
19
+ 'remix': ['@remix-run/react'],
20
+ 'astro': ['astro'],
21
+ 'gatsby': ['gatsby'],
22
+ 'electron': ['electron'],
23
+ 'react-native': ['react-native'],
24
+ 'flutter': ['flutter'],
25
+ 'django': ['django'],
26
+ 'flask': ['flask'],
27
+ 'fastapi': ['fastapi'],
28
+ 'rails': ['rails'],
29
+ 'spring': ['spring-boot'],
30
+ 'laravel': ['laravel'],
31
+ };
32
+ const LIBRARY_PATTERNS = {
33
+ 'tailwindcss': ['tailwindcss'],
34
+ 'prisma': ['prisma', '@prisma/client'],
35
+ 'drizzle': ['drizzle-orm'],
36
+ 'typeorm': ['typeorm'],
37
+ 'mongoose': ['mongoose'],
38
+ 'zod': ['zod'],
39
+ 'joi': ['joi'],
40
+ 'redux': ['redux', '@reduxjs/toolkit'],
41
+ 'zustand': ['zustand'],
42
+ 'tanstack-query': ['@tanstack/react-query'],
43
+ 'trpc': ['@trpc/server'],
44
+ 'graphql': ['graphql', '@apollo/client'],
45
+ 'stripe': ['stripe'],
46
+ 'auth.js': ['next-auth', '@auth/core'],
47
+ 'supabase': ['@supabase/supabase-js'],
48
+ 'firebase': ['firebase', 'firebase-admin'],
49
+ 'aws-sdk': ['aws-sdk', '@aws-sdk/client-s3'],
50
+ 'docker': ['dockerode'],
51
+ 'socket.io': ['socket.io'],
52
+ 'three.js': ['three'],
53
+ };
54
+ const TEST_TOOL_PATTERNS = {
55
+ 'jest': ['jest'],
56
+ 'vitest': ['vitest'],
57
+ 'mocha': ['mocha'],
58
+ 'cypress': ['cypress'],
59
+ 'playwright': ['@playwright/test', 'playwright'],
60
+ 'testing-library': ['@testing-library/react', '@testing-library/jest-dom'],
61
+ 'storybook': ['@storybook/react'],
62
+ };
63
+ const BUILD_TOOL_PATTERNS = {
64
+ 'vite': ['vite'],
65
+ 'webpack': ['webpack'],
66
+ 'turbopack': ['@vercel/turbopack-next'],
67
+ 'esbuild': ['esbuild'],
68
+ 'tsup': ['tsup'],
69
+ 'rollup': ['rollup'],
70
+ 'parcel': ['parcel'],
71
+ };
72
+ /**
73
+ * Analyze a project directory to detect tech stack
74
+ */
75
+ export async function analyzeProject(projectPath) {
76
+ const analysis = {
77
+ languages: [],
78
+ frameworks: [],
79
+ libraries: [],
80
+ testTools: [],
81
+ buildTools: [],
82
+ categories: [],
83
+ };
84
+ // Check package.json (Node.js/JS/TS projects)
85
+ const pkgPath = join(projectPath, 'package.json');
86
+ if (existsSync(pkgPath)) {
87
+ try {
88
+ const pkgContent = await readFile(pkgPath, 'utf-8');
89
+ const pkg = JSON.parse(pkgContent);
90
+ const allDeps = {
91
+ ...pkg.dependencies,
92
+ ...pkg.devDependencies,
93
+ ...pkg.peerDependencies,
94
+ };
95
+ const depNames = Object.keys(allDeps || {});
96
+ // Detect language
97
+ if (depNames.includes('typescript') || existsSync(join(projectPath, 'tsconfig.json'))) {
98
+ analysis.languages.push('typescript');
99
+ }
100
+ analysis.languages.push('javascript');
101
+ // Detect frameworks
102
+ for (const [name, patterns] of Object.entries(FRAMEWORK_PATTERNS)) {
103
+ if (patterns.some(p => depNames.includes(p))) {
104
+ analysis.frameworks.push(name);
105
+ }
106
+ }
107
+ // Detect libraries
108
+ for (const [name, patterns] of Object.entries(LIBRARY_PATTERNS)) {
109
+ if (patterns.some(p => depNames.includes(p))) {
110
+ analysis.libraries.push(name);
111
+ }
112
+ }
113
+ // Detect test tools
114
+ for (const [name, patterns] of Object.entries(TEST_TOOL_PATTERNS)) {
115
+ if (patterns.some(p => depNames.includes(p))) {
116
+ analysis.testTools.push(name);
117
+ }
118
+ }
119
+ // Detect build tools
120
+ for (const [name, patterns] of Object.entries(BUILD_TOOL_PATTERNS)) {
121
+ if (patterns.some(p => depNames.includes(p))) {
122
+ analysis.buildTools.push(name);
123
+ }
124
+ }
125
+ }
126
+ catch {
127
+ // Ignore parse errors
128
+ }
129
+ }
130
+ // Check for Python projects
131
+ const pyprojectPath = join(projectPath, 'pyproject.toml');
132
+ const requirementsPath = join(projectPath, 'requirements.txt');
133
+ if (existsSync(pyprojectPath) || existsSync(requirementsPath)) {
134
+ analysis.languages.push('python');
135
+ }
136
+ // Check for Go projects
137
+ if (existsSync(join(projectPath, 'go.mod'))) {
138
+ analysis.languages.push('go');
139
+ }
140
+ // Check for Rust projects
141
+ if (existsSync(join(projectPath, 'Cargo.toml'))) {
142
+ analysis.languages.push('rust');
143
+ }
144
+ // Check for Java projects
145
+ if (existsSync(join(projectPath, 'pom.xml')) || existsSync(join(projectPath, 'build.gradle'))) {
146
+ analysis.languages.push('java');
147
+ }
148
+ // Build categories from detected stack
149
+ if (analysis.frameworks.some(f => ['react', 'vue', 'svelte', 'angular'].includes(f))) {
150
+ analysis.categories.push('frontend');
151
+ }
152
+ if (analysis.frameworks.some(f => ['express', 'fastify', 'nest.js', 'django', 'flask', 'fastapi'].includes(f))) {
153
+ analysis.categories.push('backend');
154
+ }
155
+ if (analysis.frameworks.some(f => ['next.js', 'nuxt', 'remix', 'astro'].includes(f))) {
156
+ analysis.categories.push('fullstack');
157
+ }
158
+ if (analysis.testTools.length > 0) {
159
+ analysis.categories.push('testing');
160
+ }
161
+ if (analysis.libraries.some(l => ['prisma', 'drizzle', 'typeorm', 'mongoose'].includes(l))) {
162
+ analysis.categories.push('database');
163
+ }
164
+ return analysis;
165
+ }
166
+ /**
167
+ * Build search keywords from project analysis
168
+ */
169
+ export function buildSearchKeywords(analysis, task) {
170
+ const keywords = [];
171
+ // Add task-specific keywords first (highest priority)
172
+ if (task) {
173
+ keywords.push(...task.split(/\s+/).filter(w => w.length > 2));
174
+ }
175
+ // Add frameworks and libraries
176
+ keywords.push(...analysis.frameworks);
177
+ keywords.push(...analysis.libraries);
178
+ keywords.push(...analysis.testTools);
179
+ keywords.push(...analysis.languages);
180
+ keywords.push(...analysis.categories);
181
+ // Deduplicate
182
+ return [...new Set(keywords)];
183
+ }
184
+ /**
185
+ * Score a skill against project analysis
186
+ */
187
+ export function scoreSkill(skill, analysis, keywords) {
188
+ let score = 0;
189
+ const reasons = [];
190
+ const nameDesc = `${skill.name} ${skill.description}`.toLowerCase();
191
+ // Framework match (40 weight)
192
+ for (const fw of analysis.frameworks) {
193
+ if (nameDesc.includes(fw.toLowerCase())) {
194
+ score += 40;
195
+ reasons.push(`Matches framework: ${fw}`);
196
+ break; // Only count best framework match
197
+ }
198
+ }
199
+ // Library match (30 weight)
200
+ for (const lib of analysis.libraries) {
201
+ if (nameDesc.includes(lib.toLowerCase())) {
202
+ score += 30;
203
+ reasons.push(`Matches library: ${lib}`);
204
+ break;
205
+ }
206
+ }
207
+ // Language match (15 weight)
208
+ for (const lang of analysis.languages) {
209
+ if (nameDesc.includes(lang.toLowerCase())) {
210
+ score += 15;
211
+ reasons.push(`Matches language: ${lang}`);
212
+ break;
213
+ }
214
+ }
215
+ // Category match (10 weight)
216
+ for (const cat of analysis.categories) {
217
+ if (nameDesc.includes(cat.toLowerCase())) {
218
+ score += 10;
219
+ reasons.push(`Matches category: ${cat}`);
220
+ break;
221
+ }
222
+ }
223
+ // Keyword match (5 per keyword, max 20)
224
+ let kwScore = 0;
225
+ for (const kw of keywords) {
226
+ if (nameDesc.includes(kw.toLowerCase()) && kwScore < 20) {
227
+ kwScore += 5;
228
+ reasons.push(`Keyword: ${kw}`);
229
+ }
230
+ }
231
+ score += kwScore;
232
+ // Popularity bonus (up to 5 points)
233
+ if (skill.stars > 1000)
234
+ score += 5;
235
+ else if (skill.stars > 100)
236
+ score += 3;
237
+ else if (skill.stars > 10)
238
+ score += 1;
239
+ return { score: Math.min(score, 100), reasons };
240
+ }
241
+ //# sourceMappingURL=suggest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"suggest.js","sourceRoot":"","sources":["../../src/core/suggest.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agent-skills-cli",
3
- "version": "1.0.7",
4
- "description": "Universal CLI for Agent Skills - works with Cursor, Claude Code, GitHub Copilot, OpenAI Codex, OpenCode, Amp, Kilo, Roo, Goose",
3
+ "version": "1.0.9",
4
+ "description": "Universal CLI for Agent Skills - works with 42 AI agents including Cursor, Claude Code, GitHub Copilot, Windsurf, Cline, Zed, and more",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",