skill-creator 1.4.2 → 1.5.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.
Files changed (187) hide show
  1. package/dist/chunk-Da8dvM5T.mjs +1 -0
  2. package/dist/cli.d.mts +1016 -0
  3. package/dist/cli.d.mts.map +1 -0
  4. package/dist/cli.mjs +36 -0
  5. package/dist/cli.mjs.map +1 -0
  6. package/dist/contentManager-8rmWJMb6.mjs +22 -0
  7. package/dist/contentManager-8rmWJMb6.mjs.map +1 -0
  8. package/dist/contentManager-Xt8N5psY.mjs +1 -0
  9. package/dist/dist-DZL34HNo.mjs +8 -0
  10. package/dist/dist-DZL34HNo.mjs.map +1 -0
  11. package/dist/dist-X_kVEzbK.mjs +1 -0
  12. package/dist/esm-8qfZdcpd.mjs +33 -0
  13. package/dist/esm-8qfZdcpd.mjs.map +1 -0
  14. package/dist/esm-BF5pvSbc.mjs +1 -0
  15. package/dist/esm-BbhxxeGF.mjs +4 -0
  16. package/dist/esm-BbhxxeGF.mjs.map +1 -0
  17. package/dist/index.d.mts +1964 -0
  18. package/dist/index.d.mts.map +1 -0
  19. package/dist/index.mjs +21 -0
  20. package/dist/index.mjs.map +1 -0
  21. package/dist/listContext7-DKXzgWdn.mjs +2 -0
  22. package/dist/listContext7-DKXzgWdn.mjs.map +1 -0
  23. package/dist/package-B4FNst2t.mjs +2 -0
  24. package/dist/package-B4FNst2t.mjs.map +1 -0
  25. package/dist/path-CuoiIaIe.mjs +2 -0
  26. package/dist/path-CuoiIaIe.mjs.map +1 -0
  27. package/dist/removeContext7-DOXrTXeI.mjs +3 -0
  28. package/dist/removeContext7-DOXrTXeI.mjs.map +1 -0
  29. package/dist/removeSkill-C-ehFexk.mjs +5 -0
  30. package/dist/removeSkill-C-ehFexk.mjs.map +1 -0
  31. package/dist/removeSkill-DWwhvzej.mjs +1 -0
  32. package/dist/runScript-Cr9RRN9y.mjs +14 -0
  33. package/dist/runScript-Cr9RRN9y.mjs.map +1 -0
  34. package/dist/search_format-DIs-1lKk.mjs +5 -0
  35. package/dist/search_format-DIs-1lKk.mjs.map +1 -0
  36. package/dist/shared-CFoY2Xhg.mjs +2 -0
  37. package/dist/shared-CFoY2Xhg.mjs.map +1 -0
  38. package/dist/skillMdManager-DP8fGZb7.mjs +7 -0
  39. package/dist/skillMdManager-DP8fGZb7.mjs.map +1 -0
  40. package/dist/unifiedSearch-CGZXw0NB.mjs +1 -0
  41. package/dist/unifiedSearch-l-lrSc9C.mjs +4 -0
  42. package/dist/unifiedSearch-l-lrSc9C.mjs.map +1 -0
  43. package/package.json +30 -16
  44. package/dist/cli.d.ts +0 -8
  45. package/dist/cli.d.ts.map +0 -1
  46. package/dist/cli.js +0 -513
  47. package/dist/cli.js.map +0 -1
  48. package/dist/commands/addContent.d.ts +0 -5
  49. package/dist/commands/addContent.d.ts.map +0 -1
  50. package/dist/commands/addContent.js +0 -88
  51. package/dist/commands/addContent.js.map +0 -1
  52. package/dist/commands/buildIndex.d.ts +0 -5
  53. package/dist/commands/buildIndex.d.ts.map +0 -1
  54. package/dist/commands/buildIndex.js +0 -16
  55. package/dist/commands/buildIndex.js.map +0 -1
  56. package/dist/commands/createSkill.d.ts +0 -6
  57. package/dist/commands/createSkill.d.ts.map +0 -1
  58. package/dist/commands/createSkill.js +0 -32
  59. package/dist/commands/createSkill.js.map +0 -1
  60. package/dist/commands/downloadContext7.d.ts +0 -5
  61. package/dist/commands/downloadContext7.d.ts.map +0 -1
  62. package/dist/commands/downloadContext7.js +0 -71
  63. package/dist/commands/downloadContext7.js.map +0 -1
  64. package/dist/commands/init.d.ts +0 -5
  65. package/dist/commands/init.d.ts.map +0 -1
  66. package/dist/commands/init.js +0 -95
  67. package/dist/commands/init.js.map +0 -1
  68. package/dist/commands/listContent.d.ts +0 -5
  69. package/dist/commands/listContent.d.ts.map +0 -1
  70. package/dist/commands/listContent.js +0 -34
  71. package/dist/commands/listContent.js.map +0 -1
  72. package/dist/commands/listContext7.d.ts +0 -5
  73. package/dist/commands/listContext7.d.ts.map +0 -1
  74. package/dist/commands/listContext7.js +0 -26
  75. package/dist/commands/listContext7.js.map +0 -1
  76. package/dist/commands/listSkills.d.ts +0 -5
  77. package/dist/commands/listSkills.d.ts.map +0 -1
  78. package/dist/commands/listSkills.js +0 -34
  79. package/dist/commands/listSkills.js.map +0 -1
  80. package/dist/commands/removeContext7.d.ts +0 -5
  81. package/dist/commands/removeContext7.d.ts.map +0 -1
  82. package/dist/commands/removeContext7.js +0 -54
  83. package/dist/commands/removeContext7.js.map +0 -1
  84. package/dist/commands/removeSkill.d.ts +0 -5
  85. package/dist/commands/removeSkill.d.ts.map +0 -1
  86. package/dist/commands/removeSkill.js +0 -83
  87. package/dist/commands/removeSkill.js.map +0 -1
  88. package/dist/commands/searchContent.d.ts +0 -5
  89. package/dist/commands/searchContent.d.ts.map +0 -1
  90. package/dist/commands/searchContent.js +0 -99
  91. package/dist/commands/searchContent.js.map +0 -1
  92. package/dist/commands/shared.d.ts +0 -21
  93. package/dist/commands/shared.d.ts.map +0 -1
  94. package/dist/commands/shared.js +0 -80
  95. package/dist/commands/shared.js.map +0 -1
  96. package/dist/core/autoSearchAdapter.d.ts +0 -42
  97. package/dist/core/autoSearchAdapter.d.ts.map +0 -1
  98. package/dist/core/autoSearchAdapter.js +0 -116
  99. package/dist/core/autoSearchAdapter.js.map +0 -1
  100. package/dist/core/chromaSearch.d.ts +0 -24
  101. package/dist/core/chromaSearch.d.ts.map +0 -1
  102. package/dist/core/chromaSearch.js +0 -194
  103. package/dist/core/chromaSearch.js.map +0 -1
  104. package/dist/core/chromaSearchAdapter.d.ts +0 -86
  105. package/dist/core/chromaSearchAdapter.d.ts.map +0 -1
  106. package/dist/core/chromaSearchAdapter.js +0 -477
  107. package/dist/core/chromaSearchAdapter.js.map +0 -1
  108. package/dist/core/chromaServerManager.d.ts +0 -64
  109. package/dist/core/chromaServerManager.d.ts.map +0 -1
  110. package/dist/core/chromaServerManager.js +0 -186
  111. package/dist/core/chromaServerManager.js.map +0 -1
  112. package/dist/core/contentManager.d.ts +0 -65
  113. package/dist/core/contentManager.d.ts.map +0 -1
  114. package/dist/core/contentManager.js +0 -533
  115. package/dist/core/contentManager.js.map +0 -1
  116. package/dist/core/fuzzySearchAdapter.d.ts +0 -33
  117. package/dist/core/fuzzySearchAdapter.d.ts.map +0 -1
  118. package/dist/core/fuzzySearchAdapter.js +0 -185
  119. package/dist/core/fuzzySearchAdapter.js.map +0 -1
  120. package/dist/core/portUtils.d.ts +0 -51
  121. package/dist/core/portUtils.d.ts.map +0 -1
  122. package/dist/core/portUtils.js +0 -120
  123. package/dist/core/portUtils.js.map +0 -1
  124. package/dist/core/runScript.d.ts +0 -5
  125. package/dist/core/runScript.d.ts.map +0 -1
  126. package/dist/core/runScript.js +0 -40
  127. package/dist/core/runScript.js.map +0 -1
  128. package/dist/core/searchAdapter.d.ts +0 -48
  129. package/dist/core/searchAdapter.d.ts.map +0 -1
  130. package/dist/core/searchAdapter.js +0 -6
  131. package/dist/core/searchAdapter.js.map +0 -1
  132. package/dist/core/searchEngineFactory.d.ts +0 -30
  133. package/dist/core/searchEngineFactory.d.ts.map +0 -1
  134. package/dist/core/searchEngineFactory.js +0 -41
  135. package/dist/core/searchEngineFactory.js.map +0 -1
  136. package/dist/core/skillCreator.d.ts +0 -12
  137. package/dist/core/skillCreator.d.ts.map +0 -1
  138. package/dist/core/skillCreator.js +0 -75
  139. package/dist/core/skillCreator.js.map +0 -1
  140. package/dist/core/templateManager.d.ts +0 -28
  141. package/dist/core/templateManager.d.ts.map +0 -1
  142. package/dist/core/templateManager.js +0 -583
  143. package/dist/core/templateManager.js.map +0 -1
  144. package/dist/core/unifiedSearch.d.ts +0 -69
  145. package/dist/core/unifiedSearch.d.ts.map +0 -1
  146. package/dist/core/unifiedSearch.js +0 -105
  147. package/dist/core/unifiedSearch.js.map +0 -1
  148. package/dist/index.d.ts +0 -13
  149. package/dist/index.d.ts.map +0 -1
  150. package/dist/index.js +0 -11
  151. package/dist/index.js.map +0 -1
  152. package/dist/search_format/enhancedFormatter.d.ts +0 -109
  153. package/dist/search_format/enhancedFormatter.d.ts.map +0 -1
  154. package/dist/search_format/enhancedFormatter.js +0 -262
  155. package/dist/search_format/enhancedFormatter.js.map +0 -1
  156. package/dist/search_format/index.d.ts +0 -10
  157. package/dist/search_format/index.d.ts.map +0 -1
  158. package/dist/search_format/index.js +0 -22
  159. package/dist/search_format/index.js.map +0 -1
  160. package/dist/search_format/listFormatter.d.ts +0 -16
  161. package/dist/search_format/listFormatter.d.ts.map +0 -1
  162. package/dist/search_format/listFormatter.js +0 -51
  163. package/dist/search_format/listFormatter.js.map +0 -1
  164. package/dist/search_format/types.d.ts +0 -69
  165. package/dist/search_format/types.d.ts.map +0 -1
  166. package/dist/search_format/types.js +0 -5
  167. package/dist/search_format/types.js.map +0 -1
  168. package/dist/types/index.d.ts +0 -74
  169. package/dist/types/index.d.ts.map +0 -1
  170. package/dist/types/index.js +0 -2
  171. package/dist/types/index.js.map +0 -1
  172. package/dist/utils/claudeCodeDetection.d.ts +0 -27
  173. package/dist/utils/claudeCodeDetection.d.ts.map +0 -1
  174. package/dist/utils/claudeCodeDetection.js +0 -81
  175. package/dist/utils/claudeCodeDetection.js.map +0 -1
  176. package/dist/utils/config.d.ts +0 -23
  177. package/dist/utils/config.d.ts.map +0 -1
  178. package/dist/utils/config.js +0 -41
  179. package/dist/utils/config.js.map +0 -1
  180. package/dist/utils/package.d.ts +0 -88
  181. package/dist/utils/package.d.ts.map +0 -1
  182. package/dist/utils/package.js +0 -221
  183. package/dist/utils/package.js.map +0 -1
  184. package/dist/utils/skillMdManager.d.ts +0 -44
  185. package/dist/utils/skillMdManager.d.ts.map +0 -1
  186. package/dist/utils/skillMdManager.js +0 -157
  187. package/dist/utils/skillMdManager.js.map +0 -1
@@ -1,221 +0,0 @@
1
- /**
2
- * Package utilities
3
- */
4
- import { readFileSync } from 'node:fs';
5
- import { resolve } from 'node:path';
6
- export class PackageUtils {
7
- /**
8
- * Get package version from npm registry
9
- */
10
- static async getPackageVersion(packageName) {
11
- try {
12
- const response = await fetch(`https://registry.npmjs.org/${packageName}/latest`);
13
- if (!response.ok)
14
- return null;
15
- const data = await response.json();
16
- return data.version;
17
- }
18
- catch {
19
- return null;
20
- }
21
- }
22
- /**
23
- * Get full package info from npm registry for the latest version
24
- */
25
- static async getPackageInfo(packageName) {
26
- try {
27
- const response = await fetch(`https://registry.npmjs.org/${packageName}`);
28
- if (!response.ok)
29
- return null;
30
- const data = await response.json();
31
- const latestVersionTag = data['dist-tags']?.latest;
32
- if (!latestVersionTag)
33
- return null;
34
- const latestVersionInfo = data.versions?.[latestVersionTag];
35
- if (!latestVersionInfo)
36
- return null;
37
- return latestVersionInfo;
38
- }
39
- catch {
40
- return null;
41
- }
42
- }
43
- /**
44
- * Get full package info from npm registry for the latest version
45
- */
46
- static getCurrentPackageInfo() {
47
- try {
48
- const packageInfo = JSON.parse(readFileSync(resolve(import.meta.dirname, '../../package.json'), 'utf-8'));
49
- return packageInfo;
50
- }
51
- catch {
52
- return null;
53
- }
54
- }
55
- /**
56
- * Format version according to doc-downloader rules
57
- */
58
- static formatVersion(version) {
59
- if (!version)
60
- return '';
61
- // Remove 'v' prefix if present
62
- if (version.startsWith('v')) {
63
- version = version.slice(1);
64
- }
65
- const parts = version.split('.');
66
- if (parts.length >= 2) {
67
- const major = parseInt(parts[0], 10);
68
- if (major >= 1) {
69
- return String(major);
70
- }
71
- else {
72
- return `${major}.${parts[1]}`;
73
- }
74
- }
75
- return version;
76
- }
77
- /**
78
- * Create skill folder name according to spec
79
- */
80
- static createSkillFolderName(packageName, version) {
81
- // Replace / with __ as specified in doc-downloader.md
82
- const safePackage = packageName.replace(/\//g, '__');
83
- const formattedVersion = this.formatVersion(version);
84
- if (formattedVersion) {
85
- return `${safePackage}@${formattedVersion}`;
86
- }
87
- else {
88
- return safePackage;
89
- }
90
- }
91
- /**
92
- * Normalize package name (remove @ prefix)
93
- */
94
- static normalizePackageName(packageName) {
95
- if (packageName.startsWith('@')) {
96
- return packageName.slice(1);
97
- }
98
- return packageName;
99
- }
100
- /**
101
- * Validate package name format
102
- */
103
- static validatePackageName(packageName) {
104
- if (!packageName || packageName.length === 0) {
105
- return false;
106
- }
107
- // Basic validation for npm package names
108
- const validNamePattern = /^(@[a-z0-9-~][a-z0-9-._~]*\/)?[a-z0-9-~][a-z0-9-._~]*$/;
109
- return validNamePattern.test(packageName);
110
- }
111
- /**
112
- * Search for packages on npm registry
113
- */
114
- static async searchPackages(keywords, options = {}) {
115
- const { limit = 10, minScore = 0.3 } = options;
116
- try {
117
- const query = keywords.join(' ');
118
- const response = await fetch(`https://registry.npmjs.org/-/v1/search?text=${encodeURIComponent(query)}&size=${limit * 2}`);
119
- if (!response.ok)
120
- return [];
121
- const data = await response.json();
122
- const results = [];
123
- for (const pkg of data.objects || []) {
124
- const score = pkg.score?.detail?.popularity || 0;
125
- if (score >= minScore) {
126
- // Get detailed package information including homepage
127
- const packageInfo = await this.getPackageInfo(pkg.package.name);
128
- results.push({
129
- name: pkg.package.name,
130
- description: pkg.package.description || '',
131
- version: pkg.package.version,
132
- date: pkg.package.date,
133
- publisher: pkg.package.publisher?.username || 'unknown',
134
- score,
135
- homepage: packageInfo?.homepage,
136
- repository: packageInfo?.repository?.url,
137
- skill_dir_name: packageInfo
138
- ? this.createSkillFolderName(packageInfo.name, packageInfo.version)
139
- : undefined,
140
- });
141
- }
142
- }
143
- return results.slice(0, limit);
144
- }
145
- catch {
146
- return [];
147
- }
148
- }
149
- /**
150
- * Find exact package match
151
- */
152
- static async findExactPackage(packageName) {
153
- try {
154
- const packageInfo = await this.getPackageInfo(packageName);
155
- if (!packageInfo)
156
- return null;
157
- return {
158
- name: packageInfo.name,
159
- description: packageInfo.description || '',
160
- version: packageInfo.version,
161
- date: packageInfo.time?.modified || new Date().toISOString(),
162
- publisher: packageInfo.publisher?.username || 'unknown',
163
- score: 1.0,
164
- homepage: packageInfo.homepage,
165
- repository: packageInfo.repository?.url,
166
- skill_dir_name: this.createSkillFolderName(packageInfo.name, packageInfo.version),
167
- };
168
- }
169
- catch {
170
- return null;
171
- }
172
- }
173
- /**
174
- * Suggest packages based on keywords
175
- */
176
- static async suggestPackages(input, options = {}) {
177
- const results = [];
178
- // Check if input looks like an exact package name and include it as first result
179
- if (PackageUtils.validatePackageName(input)) {
180
- const exact = await PackageUtils.findExactPackage(input);
181
- if (exact) {
182
- results.push(exact);
183
- }
184
- }
185
- // Always perform broader search to find related packages
186
- // Extract keywords from input
187
- const keywords = input
188
- .split(/[\s-]+/)
189
- .filter((word) => word.length > 2)
190
- .slice(0, 3);
191
- if (keywords.length === 0) {
192
- // Fallback: search with the whole input
193
- keywords.push(input);
194
- }
195
- const searchResults = await PackageUtils.searchPackages(keywords, options);
196
- // Merge exact match with search results, avoiding duplicates
197
- const exactMatchNames = new Set(results.map((r) => r.name));
198
- const additionalResults = searchResults.filter((r) => !exactMatchNames.has(r.name));
199
- return [...results, ...additionalResults].slice(0, options.limit || 10);
200
- }
201
- /**
202
- * Select package from multiple options
203
- */
204
- static async selectPackage(input) {
205
- const suggestions = await PackageUtils.suggestPackages(input, { limit: 5 });
206
- if (suggestions.length === 0) {
207
- return null;
208
- }
209
- if (suggestions.length === 1) {
210
- const pkg = suggestions[0];
211
- const version = await PackageUtils.getPackageVersion(pkg.name);
212
- return { name: pkg.name, version: version || pkg.version };
213
- }
214
- // Multiple options found - would need interactive selection in CLI
215
- // For now, return the highest scored package
216
- const best = suggestions.reduce((prev, curr) => (curr.score > prev.score ? curr : prev));
217
- const version = await PackageUtils.getPackageVersion(best.name);
218
- return { name: best.name, version: version || best.version };
219
- }
220
- }
221
- //# sourceMappingURL=package.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- /**
2
- * SKILL.md tag management utilities
3
- * Manages <user-skills> and <context7-skills> tags in SKILL.md file
4
- */
5
- export interface TagContent {
6
- tagName: string;
7
- id?: string;
8
- content: string;
9
- startIndex: number;
10
- endIndex: number;
11
- }
12
- /**
13
- * Parse all tags from SKILL.md content
14
- */
15
- export declare function parseSkillMdTags(content: string): TagContent[];
16
- /**
17
- * Update or create a tag in SKILL.md content
18
- */
19
- export declare function updateSkillMdTag(content: string, tagName: 'user-skills' | 'context7-skills', newContent: string, id?: string): string;
20
- /**
21
- * Remove a context7-skills tag from SKILL.md
22
- */
23
- export declare function removeContext7Tag(content: string, projectId: string): string;
24
- /**
25
- * Get all context7 project IDs from SKILL.md
26
- */
27
- export declare function getContext7ProjectIds(content: string): string[];
28
- /**
29
- * Get user skills files from SKILL.md
30
- */
31
- export declare function getUserSkillsFiles(content: string): string[];
32
- /**
33
- * Get context7 files for a specific project from SKILL.md
34
- */
35
- export declare function getContext7Files(content: string, projectId: string): string[];
36
- /**
37
- * Update SKILL.md file with new tag content
38
- */
39
- export declare function updateSkillMdFile(filePath: string, tagName: 'user-skills' | 'context7-skills', newContent: string, id?: string): void;
40
- /**
41
- * Remove context7 tag from SKILL.md file
42
- */
43
- export declare function removeContext7TagFromFile(filePath: string, projectId: string): void;
44
- //# sourceMappingURL=skillMdManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skillMdManager.d.ts","sourceRoot":"","sources":["../../src/utils/skillMdManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CA8B9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GAAG,iBAAiB,EAC1C,UAAU,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,MAAM,GACV,MAAM,CA8CR;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAwB5E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAG/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAe5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAe7E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,GAAG,iBAAiB,EAC1C,UAAU,EAAE,MAAM,EAClB,EAAE,CAAC,EAAE,MAAM,GACV,IAAI,CAIN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAInF"}
@@ -1,157 +0,0 @@
1
- /**
2
- * SKILL.md tag management utilities
3
- * Manages <user-skills> and <context7-skills> tags in SKILL.md file
4
- */
5
- import { readFileSync, writeFileSync } from 'node:fs';
6
- /**
7
- * Parse all tags from SKILL.md content
8
- */
9
- export function parseSkillMdTags(content) {
10
- const tags = [];
11
- // Match <user-skills>...</user-skills>
12
- const userSkillsRegex = /<user-skills>([\s\S]*?)<\/user-skills>/g;
13
- let match;
14
- while ((match = userSkillsRegex.exec(content)) !== null) {
15
- tags.push({
16
- tagName: 'user-skills',
17
- content: match[1].trim(),
18
- startIndex: match.index,
19
- endIndex: match.index + match[0].length,
20
- });
21
- }
22
- // Match <context7-skills id="xxx">...</context7-skills>
23
- const context7Regex = /<context7-skills\s+id="([^"]+)">([\s\S]*?)<\/context7-skills>/g;
24
- while ((match = context7Regex.exec(content)) !== null) {
25
- tags.push({
26
- tagName: 'context7-skills',
27
- id: match[1],
28
- content: match[2].trim(),
29
- startIndex: match.index,
30
- endIndex: match.index + match[0].length,
31
- });
32
- }
33
- return tags.sort((a, b) => a.startIndex - b.startIndex);
34
- }
35
- /**
36
- * Update or create a tag in SKILL.md content
37
- */
38
- export function updateSkillMdTag(content, tagName, newContent, id) {
39
- const tags = parseSkillMdTags(content);
40
- // Find existing tag
41
- const existingTag = tags.find((t) => t.tagName === tagName && (tagName === 'user-skills' || t.id === id));
42
- if (existingTag) {
43
- // Replace existing tag content
44
- const tagStart = tagName === 'user-skills' ? `<user-skills>` : `<context7-skills id="${id}">`;
45
- const tagEnd = `</${tagName}>`;
46
- const newTag = `${tagStart}\n${newContent}\n${tagEnd}`;
47
- return content.slice(0, existingTag.startIndex) + newTag + content.slice(existingTag.endIndex);
48
- }
49
- else if (tagName === 'context7-skills' && id) {
50
- // Add new context7-skills tag
51
- // Find the Context7 Documentation section
52
- const context7SectionRegex = /## Context7 Documentation[\s\S]*?(?=\n##|$)/;
53
- const sectionMatch = content.match(context7SectionRegex);
54
- if (sectionMatch) {
55
- const sectionStart = content.indexOf(sectionMatch[0]);
56
- const sectionEnd = sectionStart + sectionMatch[0].length;
57
- // Find the end of existing context7-skills tags
58
- const existingContext7Tags = tags.filter((t) => t.tagName === 'context7-skills');
59
- let insertPosition = sectionEnd;
60
- if (existingContext7Tags.length > 0) {
61
- const lastTag = existingContext7Tags[existingContext7Tags.length - 1];
62
- insertPosition = lastTag.endIndex;
63
- }
64
- else {
65
- // Insert after the section header and comment
66
- const headerEnd = content.indexOf('\n', sectionStart + sectionMatch[0].indexOf('\n'));
67
- const commentEnd = content.indexOf('-->', headerEnd);
68
- insertPosition = commentEnd > headerEnd ? commentEnd + 3 : headerEnd;
69
- }
70
- const newTag = `\n\n<context7-skills id="${id}">\n${newContent}\n</context7-skills>`;
71
- return content.slice(0, insertPosition) + newTag + content.slice(insertPosition);
72
- }
73
- }
74
- return content;
75
- }
76
- /**
77
- * Remove a context7-skills tag from SKILL.md
78
- */
79
- export function removeContext7Tag(content, projectId) {
80
- const tags = parseSkillMdTags(content);
81
- const tagToRemove = tags.find((t) => t.tagName === 'context7-skills' && t.id === projectId);
82
- if (!tagToRemove) {
83
- return content;
84
- }
85
- // Remove the tag and any surrounding whitespace
86
- let startIndex = tagToRemove.startIndex;
87
- let endIndex = tagToRemove.endIndex;
88
- // Remove leading newlines
89
- while (startIndex > 0 && content[startIndex - 1] === '\n') {
90
- startIndex--;
91
- if (startIndex > 0 && content[startIndex - 1] === '\n')
92
- break; // Keep one newline
93
- }
94
- // Remove trailing newlines
95
- while (endIndex < content.length && content[endIndex] === '\n') {
96
- endIndex++;
97
- }
98
- return content.slice(0, startIndex) + content.slice(endIndex);
99
- }
100
- /**
101
- * Get all context7 project IDs from SKILL.md
102
- */
103
- export function getContext7ProjectIds(content) {
104
- const tags = parseSkillMdTags(content);
105
- return tags.filter((t) => t.tagName === 'context7-skills' && t.id).map((t) => t.id);
106
- }
107
- /**
108
- * Get user skills files from SKILL.md
109
- */
110
- export function getUserSkillsFiles(content) {
111
- const tags = parseSkillMdTags(content);
112
- const userSkillsTag = tags.find((t) => t.tagName === 'user-skills');
113
- if (!userSkillsTag || !userSkillsTag.content) {
114
- return [];
115
- }
116
- // Parse markdown list items
117
- return userSkillsTag.content
118
- .split('\n')
119
- .map((line) => line.trim())
120
- .filter((line) => line.startsWith('-'))
121
- .map((line) => line.slice(1).trim())
122
- .filter(Boolean);
123
- }
124
- /**
125
- * Get context7 files for a specific project from SKILL.md
126
- */
127
- export function getContext7Files(content, projectId) {
128
- const tags = parseSkillMdTags(content);
129
- const projectTag = tags.find((t) => t.tagName === 'context7-skills' && t.id === projectId);
130
- if (!projectTag || !projectTag.content) {
131
- return [];
132
- }
133
- // Parse markdown list items
134
- return projectTag.content
135
- .split('\n')
136
- .map((line) => line.trim())
137
- .filter((line) => line.startsWith('-'))
138
- .map((line) => line.slice(1).trim())
139
- .filter(Boolean);
140
- }
141
- /**
142
- * Update SKILL.md file with new tag content
143
- */
144
- export function updateSkillMdFile(filePath, tagName, newContent, id) {
145
- const content = readFileSync(filePath, 'utf-8');
146
- const updated = updateSkillMdTag(content, tagName, newContent, id);
147
- writeFileSync(filePath, updated, 'utf-8');
148
- }
149
- /**
150
- * Remove context7 tag from SKILL.md file
151
- */
152
- export function removeContext7TagFromFile(filePath, projectId) {
153
- const content = readFileSync(filePath, 'utf-8');
154
- const updated = removeContext7Tag(content, projectId);
155
- writeFileSync(filePath, updated, 'utf-8');
156
- }
157
- //# sourceMappingURL=skillMdManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skillMdManager.js","sourceRoot":"","sources":["../../src/utils/skillMdManager.ts"],"names":[],"mappings":"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"}