skill-creator 1.3.2 → 1.4.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/README.md +13 -10
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +127 -5
- package/dist/cli.js.map +1 -1
- package/dist/commands/addContent.d.ts.map +1 -1
- package/dist/commands/addContent.js +17 -3
- package/dist/commands/addContent.js.map +1 -1
- package/dist/commands/buildIndex.d.ts.map +1 -1
- package/dist/commands/buildIndex.js +2 -3
- package/dist/commands/buildIndex.js.map +1 -1
- package/dist/commands/downloadContext7.d.ts.map +1 -1
- package/dist/commands/downloadContext7.js +14 -7
- package/dist/commands/downloadContext7.js.map +1 -1
- package/dist/commands/listContent.d.ts.map +1 -1
- package/dist/commands/listContent.js +2 -3
- package/dist/commands/listContent.js.map +1 -1
- package/dist/commands/listContext7.d.ts +5 -0
- package/dist/commands/listContext7.d.ts.map +1 -0
- package/dist/commands/listContext7.js +26 -0
- package/dist/commands/listContext7.js.map +1 -0
- package/dist/commands/listSkills.d.ts +5 -0
- package/dist/commands/listSkills.d.ts.map +1 -0
- package/dist/commands/listSkills.js +34 -0
- package/dist/commands/listSkills.js.map +1 -0
- package/dist/commands/removeContext7.d.ts +5 -0
- package/dist/commands/removeContext7.d.ts.map +1 -0
- package/dist/commands/removeContext7.js +54 -0
- package/dist/commands/removeContext7.js.map +1 -0
- package/dist/commands/removeSkill.d.ts +5 -0
- package/dist/commands/removeSkill.d.ts.map +1 -0
- package/dist/commands/removeSkill.js +83 -0
- package/dist/commands/removeSkill.js.map +1 -0
- package/dist/commands/searchContent.d.ts.map +1 -1
- package/dist/commands/searchContent.js +5 -4
- package/dist/commands/searchContent.js.map +1 -1
- package/dist/commands/shared.d.ts +4 -10
- package/dist/commands/shared.d.ts.map +1 -1
- package/dist/commands/shared.js +3 -17
- package/dist/commands/shared.js.map +1 -1
- package/dist/core/contentManager.d.ts +25 -1
- package/dist/core/contentManager.d.ts.map +1 -1
- package/dist/core/contentManager.js +152 -28
- package/dist/core/contentManager.js.map +1 -1
- package/dist/core/runScript.d.ts.map +1 -1
- package/dist/core/runScript.js +5 -2
- package/dist/core/runScript.js.map +1 -1
- package/dist/core/skillCreator.d.ts.map +1 -1
- package/dist/core/skillCreator.js +6 -5
- package/dist/core/skillCreator.js.map +1 -1
- package/dist/core/templateManager.d.ts +28 -0
- package/dist/core/templateManager.d.ts.map +1 -0
- package/dist/core/templateManager.js +583 -0
- package/dist/core/templateManager.js.map +1 -0
- package/dist/search_format/index.d.ts +1 -1
- package/dist/search_format/index.d.ts.map +1 -1
- package/dist/search_format/listFormatter.d.ts.map +1 -1
- package/dist/search_format/listFormatter.js +1 -1
- package/dist/search_format/listFormatter.js.map +1 -1
- package/dist/utils/claudeCodeDetection.d.ts +27 -0
- package/dist/utils/claudeCodeDetection.d.ts.map +1 -0
- package/dist/utils/claudeCodeDetection.js +81 -0
- package/dist/utils/claudeCodeDetection.js.map +1 -0
- package/dist/utils/config.d.ts +9 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +7 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/package.d.ts +14 -0
- package/dist/utils/package.d.ts.map +1 -1
- package/dist/utils/package.js +14 -0
- package/dist/utils/package.js.map +1 -1
- package/dist/utils/skillMdManager.d.ts +44 -0
- package/dist/utils/skillMdManager.d.ts.map +1 -0
- package/dist/utils/skillMdManager.js +157 -0
- package/dist/utils/skillMdManager.js.map +1 -0
- package/package.json +17 -13
- package/templates/SKILL.md +21 -232
- package/templates/SKILL.zh-CN.md +37 -3
- package/templates/skill-creator.md +0 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions to detect Claude Code environment and bypass-permissions mode
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Detect if running within Claude Code environment
|
|
6
|
+
*/
|
|
7
|
+
export function isClaudeCodeEnvironment() {
|
|
8
|
+
return !!process.env.CLAUDE_CODE_SSE_PORT;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Try to detect if Claude Code is in bypass-permissions mode
|
|
12
|
+
*
|
|
13
|
+
* Since Claude Code may not directly expose this information, we use several heuristics:
|
|
14
|
+
* 1. Check for Claude Code environment variables
|
|
15
|
+
* 2. Check for non-interactive session indicators
|
|
16
|
+
* 3. Check for specific Claude Code bypass mode patterns
|
|
17
|
+
*/
|
|
18
|
+
export function detectClaudeCodeBypassMode() {
|
|
19
|
+
// Method 1: Check if we're in Claude Code environment
|
|
20
|
+
if (!isClaudeCodeEnvironment()) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
// Method 2: Check for specific environment variables that might indicate bypass mode
|
|
24
|
+
// (These are potential variables Claude Code might set in bypass mode)
|
|
25
|
+
const bypassIndicators = [
|
|
26
|
+
'CLAUDE_CODE_BYPASS_PERMISSIONS',
|
|
27
|
+
'CLAUDE_CODE_NON_INTERACTIVE',
|
|
28
|
+
'CLAUDE_CODE_AUTO_MODE',
|
|
29
|
+
'CLAUDE_CODE_BYPASS_MODE'
|
|
30
|
+
];
|
|
31
|
+
for (const indicator of bypassIndicators) {
|
|
32
|
+
if (process.env[indicator]) {
|
|
33
|
+
const value = process.env[indicator].toLowerCase();
|
|
34
|
+
if (value === 'true' || value === '1' || value === 'yes') {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
// Method 3: Check for non-interactive session indicators
|
|
40
|
+
const nonInteractiveIndicators = [
|
|
41
|
+
'CI', // Continuous Integration
|
|
42
|
+
'AUTOMATION', // Automation environment
|
|
43
|
+
'NON_INTERACTIVE', // General non-interactive flag
|
|
44
|
+
];
|
|
45
|
+
for (const indicator of nonInteractiveIndicators) {
|
|
46
|
+
if (process.env[indicator]) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Method 4: Check if stdin is not a TTY (indicating non-interactive)
|
|
51
|
+
try {
|
|
52
|
+
if (!process.stdin.isTTY && isClaudeCodeEnvironment()) {
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// Ignore errors checking TTY
|
|
58
|
+
}
|
|
59
|
+
// Method 5: Heuristic based on Claude Code SSE port and lack of TTY
|
|
60
|
+
// If we're in Claude Code but not in an interactive terminal,
|
|
61
|
+
// it might be in bypass mode
|
|
62
|
+
if (isClaudeCodeEnvironment() && !process.stdout.isTTY) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Get Claude Code environment information
|
|
69
|
+
*/
|
|
70
|
+
export function getClaudeCodeInfo() {
|
|
71
|
+
return {
|
|
72
|
+
isClaudeCode: isClaudeCodeEnvironment(),
|
|
73
|
+
ssePort: process.env.CLAUDE_CODE_SSE_PORT,
|
|
74
|
+
bypassMode: detectClaudeCodeBypassMode(),
|
|
75
|
+
isTTY: !!(process.stdin.isTTY && process.stdout.isTTY),
|
|
76
|
+
environment: Object.fromEntries(Object.entries(process.env).filter(([key]) => key.startsWith('CLAUDE_CODE') ||
|
|
77
|
+
key.includes('BYPASS') ||
|
|
78
|
+
key.includes('PERMISSION')))
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=claudeCodeDetection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claudeCodeDetection.js","sourceRoot":"","sources":["../../src/utils/claudeCodeDetection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAA;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B;IACxC,sDAAsD;IACtD,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,qFAAqF;IACrF,uEAAuE;IACvE,MAAM,gBAAgB,GAAG;QACvB,gCAAgC;QAChC,6BAA6B;QAC7B,uBAAuB;QACvB,yBAAyB;KAC1B,CAAA;IAED,KAAK,MAAM,SAAS,IAAI,gBAAgB,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,WAAW,EAAE,CAAA;YACnD,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;gBACzD,OAAO,IAAI,CAAA;YACb,CAAC;QACH,CAAC;IACH,CAAC;IAED,yDAAyD;IACzD,MAAM,wBAAwB,GAAG;QAC/B,IAAI,EAAqB,yBAAyB;QAClD,YAAY,EAAY,yBAAyB;QACjD,iBAAiB,EAAO,+BAA+B;KACxD,CAAA;IAED,KAAK,MAAM,SAAS,IAAI,wBAAwB,EAAE,CAAC;QACjD,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,IAAI,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,uBAAuB,EAAE,EAAE,CAAC;YACtD,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,6BAA6B;IAC/B,CAAC;IAED,oEAAoE;IACpE,8DAA8D;IAC9D,6BAA6B;IAC7B,IAAI,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAO/B,OAAO;QACL,YAAY,EAAE,uBAAuB,EAAE;QACvC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QACzC,UAAU,EAAE,0BAA0B,EAAE;QACxC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACtD,WAAW,EAAE,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAC3C,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC;YAC7B,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACtB,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,CAC3B,CACF;KACF,CAAA;AACH,CAAC"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -2,10 +2,19 @@
|
|
|
2
2
|
* Configuration utilities
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
+
export declare const Context7ProjectInfoSchema: z.ZodObject<{
|
|
6
|
+
downloadedAt: z.ZodString;
|
|
7
|
+
filesCount: z.ZodNumber;
|
|
8
|
+
}, z.core.$strip>;
|
|
5
9
|
export declare const SkillConfigSchema: z.ZodObject<{
|
|
6
10
|
context7ProjectId: z.ZodOptional<z.ZodString>;
|
|
11
|
+
context7Projects: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
12
|
+
downloadedAt: z.ZodString;
|
|
13
|
+
filesCount: z.ZodNumber;
|
|
14
|
+
}, z.core.$strip>>>;
|
|
7
15
|
}, z.core.$strip>;
|
|
8
16
|
export type SkillConfig = z.input<typeof SkillConfigSchema>;
|
|
17
|
+
export type Context7ProjectInfo = z.input<typeof Context7ProjectInfoSchema>;
|
|
9
18
|
export declare class Config {
|
|
10
19
|
static load(filePath: string): SkillConfig;
|
|
11
20
|
static save(config: SkillConfig, filePath: string): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,yBAAyB;;;iBAGpC,CAAA;AAEF,eAAO,MAAM,iBAAiB;;;;;;iBAK5B,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAC3D,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E,qBAAa,MAAM;IACjB,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;IAU1C,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW;CASvD"}
|
package/dist/utils/config.js
CHANGED
|
@@ -3,8 +3,15 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
6
|
+
export const Context7ProjectInfoSchema = z.object({
|
|
7
|
+
downloadedAt: z.string(),
|
|
8
|
+
filesCount: z.number(),
|
|
9
|
+
});
|
|
6
10
|
export const SkillConfigSchema = z.object({
|
|
11
|
+
// Legacy field for backward compatibility
|
|
7
12
|
context7ProjectId: z.string().optional(),
|
|
13
|
+
// New field to support multiple context7 projects
|
|
14
|
+
context7Projects: z.record(z.string(), Context7ProjectInfoSchema).optional(),
|
|
8
15
|
});
|
|
9
16
|
export class Config {
|
|
10
17
|
static load(filePath) {
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAErD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAErD,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;CACvB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,0CAA0C;IAC1C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,kDAAkD;IAClD,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,QAAQ,EAAE;CAC7E,CAAC,CAAA;AAKF,MAAM,OAAO,MAAM;IACjB,MAAM,CAAC,IAAI,CAAC,QAAgB;QAC1B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;YAC/C,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAA;YAC3D,OAAO,MAAM,CAAA;QACf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,KAAK,KAAK,EAAE,CAAC,CAAA;QACrE,CAAC;IACH,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAmB,EAAE,QAAgB;QAC/C,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAC,QAAgB;QACtC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,8EAA8E;YAC9E,OAAO,CAAC,IAAI,CAAC,2CAA2C,QAAQ,yBAAyB,CAAC,CAAA;YAC1F,OAAO,EAAE,CAAA;QACX,CAAC;IACH,CAAC;CACF"}
|
package/dist/utils/package.d.ts
CHANGED
|
@@ -35,6 +35,20 @@ export declare class PackageUtils {
|
|
|
35
35
|
};
|
|
36
36
|
[key: string]: any;
|
|
37
37
|
} | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Get full package info from npm registry for the latest version
|
|
40
|
+
*/
|
|
41
|
+
static getCurrentPackageInfo(): {
|
|
42
|
+
name: string;
|
|
43
|
+
version: string;
|
|
44
|
+
description: string;
|
|
45
|
+
homepage?: string;
|
|
46
|
+
repository?: {
|
|
47
|
+
type: string;
|
|
48
|
+
url: string;
|
|
49
|
+
};
|
|
50
|
+
[key: string]: any;
|
|
51
|
+
} | null;
|
|
38
52
|
/**
|
|
39
53
|
* Format version according to doc-downloader rules
|
|
40
54
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,qBAAa,YAAY;IACvB;;OAEG;WACU,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAY3E;;OAEG;WACU,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;QACxD,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;QAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,GAAG,IAAI,CAAC;IAkBT;;OAEG;IACH,MAAM,CAAC,qBAAqB,IAAI;QAC9B,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,UAAU,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAA;QAC1C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,GAAG,IAAI;IAWR;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAqB7C;;OAEG;IACH,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAY1E;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAOxD;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAUxD;;OAEG;WACU,cAAc,CACzB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC;IA0C1B;;OAEG;WACU,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAqBhF;;OAEG;WACU,eAAe,CAC1B,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,EAAE,CAAC;IAgC1B;;OAEG;WACU,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAoB7F"}
|
package/dist/utils/package.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Package utilities
|
|
3
3
|
*/
|
|
4
|
+
import { readFileSync } from 'node:fs';
|
|
5
|
+
import { resolve } from 'node:path';
|
|
4
6
|
export class PackageUtils {
|
|
5
7
|
/**
|
|
6
8
|
* Get package version from npm registry
|
|
@@ -38,6 +40,18 @@ export class PackageUtils {
|
|
|
38
40
|
return null;
|
|
39
41
|
}
|
|
40
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
|
+
}
|
|
41
55
|
/**
|
|
42
56
|
* Format version according to doc-downloader rules
|
|
43
57
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../../src/utils/package.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skillMdManager.js","sourceRoot":"","sources":["../../src/utils/skillMdManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,21 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skill-creator",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Create claude-code-skills with documentation management",
|
|
5
5
|
"bin": {
|
|
6
|
-
"skill-creator": "dist/cli.js"
|
|
6
|
+
"skill-creator": "dist/cli.js",
|
|
7
|
+
"sc": "dist/cli.js"
|
|
7
8
|
},
|
|
8
9
|
"type": "module",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"build": "tsc",
|
|
11
|
-
"dev": "tsc --watch",
|
|
12
|
-
"cli": "node dist/cli.js",
|
|
13
|
-
"test": "vitest run",
|
|
14
|
-
"format": "prettier --write .",
|
|
15
|
-
"type-check": "tsc --noEmit",
|
|
16
|
-
"pre-release": "node scripts/pre-release-check.js",
|
|
17
|
-
"pre-release-check": "node scripts/pre-release-check.js"
|
|
18
|
-
},
|
|
19
10
|
"keywords": [
|
|
20
11
|
"claude-code",
|
|
21
12
|
"skills",
|
|
@@ -62,5 +53,18 @@
|
|
|
62
53
|
],
|
|
63
54
|
"engines": {
|
|
64
55
|
"node": ">=18.0.0"
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "tsc",
|
|
59
|
+
"sc": "pnpm tsx src/cli.ts",
|
|
60
|
+
"dev": "tsc --watch",
|
|
61
|
+
"cli": "node dist/cli.js",
|
|
62
|
+
"test": "vitest run",
|
|
63
|
+
"test:watch": "vitest",
|
|
64
|
+
"test:coverage": "vitest run --coverage",
|
|
65
|
+
"fmt": "prettier --write .",
|
|
66
|
+
"ts": "tsc --noEmit",
|
|
67
|
+
"pre-release": "node scripts/pre-release-check.js",
|
|
68
|
+
"pre-release-check": "node scripts/pre-release-check.js"
|
|
65
69
|
}
|
|
66
|
-
}
|
|
70
|
+
}
|