skillshield 1.0.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 (167) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +400 -0
  3. package/dist/channels/discord.d.ts +18 -0
  4. package/dist/channels/discord.d.ts.map +1 -0
  5. package/dist/channels/discord.js +275 -0
  6. package/dist/channels/discord.js.map +1 -0
  7. package/dist/channels/index.d.ts +67 -0
  8. package/dist/channels/index.d.ts.map +1 -0
  9. package/dist/channels/index.js +127 -0
  10. package/dist/channels/index.js.map +1 -0
  11. package/dist/channels/slack.d.ts +20 -0
  12. package/dist/channels/slack.d.ts.map +1 -0
  13. package/dist/channels/slack.js +296 -0
  14. package/dist/channels/slack.js.map +1 -0
  15. package/dist/channels/telegram.d.ts +20 -0
  16. package/dist/channels/telegram.d.ts.map +1 -0
  17. package/dist/channels/telegram.js +223 -0
  18. package/dist/channels/telegram.js.map +1 -0
  19. package/dist/channels/whatsapp.d.ts +25 -0
  20. package/dist/channels/whatsapp.d.ts.map +1 -0
  21. package/dist/channels/whatsapp.js +187 -0
  22. package/dist/channels/whatsapp.js.map +1 -0
  23. package/dist/cli/commands/badge.d.ts +11 -0
  24. package/dist/cli/commands/badge.d.ts.map +1 -0
  25. package/dist/cli/commands/badge.js +98 -0
  26. package/dist/cli/commands/badge.js.map +1 -0
  27. package/dist/cli/commands/config.d.ts +3 -0
  28. package/dist/cli/commands/config.d.ts.map +1 -0
  29. package/dist/cli/commands/config.js +140 -0
  30. package/dist/cli/commands/config.js.map +1 -0
  31. package/dist/cli/commands/deploy.d.ts +3 -0
  32. package/dist/cli/commands/deploy.d.ts.map +1 -0
  33. package/dist/cli/commands/deploy.js +56 -0
  34. package/dist/cli/commands/deploy.js.map +1 -0
  35. package/dist/cli/commands/init.d.ts +3 -0
  36. package/dist/cli/commands/init.d.ts.map +1 -0
  37. package/dist/cli/commands/init.js +99 -0
  38. package/dist/cli/commands/init.js.map +1 -0
  39. package/dist/cli/commands/install.d.ts +3 -0
  40. package/dist/cli/commands/install.d.ts.map +1 -0
  41. package/dist/cli/commands/install.js +90 -0
  42. package/dist/cli/commands/install.js.map +1 -0
  43. package/dist/cli/commands/list.d.ts +3 -0
  44. package/dist/cli/commands/list.d.ts.map +1 -0
  45. package/dist/cli/commands/list.js +76 -0
  46. package/dist/cli/commands/list.js.map +1 -0
  47. package/dist/cli/commands/run.d.ts +3 -0
  48. package/dist/cli/commands/run.d.ts.map +1 -0
  49. package/dist/cli/commands/run.js +160 -0
  50. package/dist/cli/commands/run.js.map +1 -0
  51. package/dist/cli/commands/scan.d.ts +3 -0
  52. package/dist/cli/commands/scan.d.ts.map +1 -0
  53. package/dist/cli/commands/scan.js +133 -0
  54. package/dist/cli/commands/scan.js.map +1 -0
  55. package/dist/cli/commands/search.d.ts +3 -0
  56. package/dist/cli/commands/search.d.ts.map +1 -0
  57. package/dist/cli/commands/search.js +56 -0
  58. package/dist/cli/commands/search.js.map +1 -0
  59. package/dist/cli/index.d.ts +3 -0
  60. package/dist/cli/index.d.ts.map +1 -0
  61. package/dist/cli/index.js +70 -0
  62. package/dist/cli/index.js.map +1 -0
  63. package/dist/core/config.d.ts +167 -0
  64. package/dist/core/config.d.ts.map +1 -0
  65. package/dist/core/config.js +398 -0
  66. package/dist/core/config.js.map +1 -0
  67. package/dist/core/parser.d.ts +34 -0
  68. package/dist/core/parser.d.ts.map +1 -0
  69. package/dist/core/parser.js +462 -0
  70. package/dist/core/parser.js.map +1 -0
  71. package/dist/core/runtime.d.ts +68 -0
  72. package/dist/core/runtime.d.ts.map +1 -0
  73. package/dist/core/runtime.js +560 -0
  74. package/dist/core/runtime.js.map +1 -0
  75. package/dist/core/types.d.ts +525 -0
  76. package/dist/core/types.d.ts.map +1 -0
  77. package/dist/core/types.js +44 -0
  78. package/dist/core/types.js.map +1 -0
  79. package/dist/guard/index.d.ts +57 -0
  80. package/dist/guard/index.d.ts.map +1 -0
  81. package/dist/guard/index.js +238 -0
  82. package/dist/guard/index.js.map +1 -0
  83. package/dist/guard/patterns.d.ts +21 -0
  84. package/dist/guard/patterns.d.ts.map +1 -0
  85. package/dist/guard/patterns.js +797 -0
  86. package/dist/guard/patterns.js.map +1 -0
  87. package/dist/hub/index.d.ts +44 -0
  88. package/dist/hub/index.d.ts.map +1 -0
  89. package/dist/hub/index.js +144 -0
  90. package/dist/hub/index.js.map +1 -0
  91. package/dist/hub/registry.d.ts +52 -0
  92. package/dist/hub/registry.d.ts.map +1 -0
  93. package/dist/hub/registry.js +192 -0
  94. package/dist/hub/registry.js.map +1 -0
  95. package/dist/i18n/index.d.ts +19 -0
  96. package/dist/i18n/index.d.ts.map +1 -0
  97. package/dist/i18n/index.js +92 -0
  98. package/dist/i18n/index.js.map +1 -0
  99. package/dist/i18n/locales/en.d.ts +110 -0
  100. package/dist/i18n/locales/en.d.ts.map +1 -0
  101. package/dist/i18n/locales/en.js +123 -0
  102. package/dist/i18n/locales/en.js.map +1 -0
  103. package/dist/i18n/locales/es.d.ts +110 -0
  104. package/dist/i18n/locales/es.d.ts.map +1 -0
  105. package/dist/i18n/locales/es.js +123 -0
  106. package/dist/i18n/locales/es.js.map +1 -0
  107. package/dist/i18n/locales/pt.d.ts +110 -0
  108. package/dist/i18n/locales/pt.d.ts.map +1 -0
  109. package/dist/i18n/locales/pt.js +123 -0
  110. package/dist/i18n/locales/pt.js.map +1 -0
  111. package/dist/i18n/locales/zh.d.ts +110 -0
  112. package/dist/i18n/locales/zh.d.ts.map +1 -0
  113. package/dist/i18n/locales/zh.js +123 -0
  114. package/dist/i18n/locales/zh.js.map +1 -0
  115. package/dist/index.d.ts +168 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +275 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/router/index.d.ts +89 -0
  120. package/dist/router/index.d.ts.map +1 -0
  121. package/dist/router/index.js +292 -0
  122. package/dist/router/index.js.map +1 -0
  123. package/dist/router/providers.d.ts +48 -0
  124. package/dist/router/providers.d.ts.map +1 -0
  125. package/dist/router/providers.js +733 -0
  126. package/dist/router/providers.js.map +1 -0
  127. package/dist/runtime/executor.d.ts +96 -0
  128. package/dist/runtime/executor.d.ts.map +1 -0
  129. package/dist/runtime/executor.js +389 -0
  130. package/dist/runtime/executor.js.map +1 -0
  131. package/dist/sandbox/index.d.ts +52 -0
  132. package/dist/sandbox/index.d.ts.map +1 -0
  133. package/dist/sandbox/index.js +248 -0
  134. package/dist/sandbox/index.js.map +1 -0
  135. package/dist/security/skillguard.d.ts +25 -0
  136. package/dist/security/skillguard.d.ts.map +1 -0
  137. package/dist/security/skillguard.js +137 -0
  138. package/dist/security/skillguard.js.map +1 -0
  139. package/dist/tools/index.d.ts +55 -0
  140. package/dist/tools/index.d.ts.map +1 -0
  141. package/dist/tools/index.js +276 -0
  142. package/dist/tools/index.js.map +1 -0
  143. package/dist/tools/web-engine.d.ts +158 -0
  144. package/dist/tools/web-engine.d.ts.map +1 -0
  145. package/dist/tools/web-engine.js +802 -0
  146. package/dist/tools/web-engine.js.map +1 -0
  147. package/dist/tools/web-tools.d.ts +173 -0
  148. package/dist/tools/web-tools.d.ts.map +1 -0
  149. package/dist/tools/web-tools.js +251 -0
  150. package/dist/tools/web-tools.js.map +1 -0
  151. package/dist/utils/errors.d.ts +44 -0
  152. package/dist/utils/errors.d.ts.map +1 -0
  153. package/dist/utils/errors.js +130 -0
  154. package/dist/utils/errors.js.map +1 -0
  155. package/dist/utils/logger.d.ts +28 -0
  156. package/dist/utils/logger.d.ts.map +1 -0
  157. package/dist/utils/logger.js +121 -0
  158. package/dist/utils/logger.js.map +1 -0
  159. package/examples/basic-usage.ts +276 -0
  160. package/examples/code-reviewer.skill.md +83 -0
  161. package/examples/creative-writer.skill.md +80 -0
  162. package/examples/data-analyzer.skill.md +61 -0
  163. package/examples/hello-world.skill.md +36 -0
  164. package/examples/sample-skill.md +156 -0
  165. package/examples/summarizer.skill.md +62 -0
  166. package/examples/translator.skill.md +45 -0
  167. package/package.json +110 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/guard/patterns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ export interface SkillMetadata {
2
+ id: string;
3
+ name: string;
4
+ description?: string;
5
+ author?: string;
6
+ version?: string;
7
+ downloads?: number;
8
+ rating?: number;
9
+ securityScore?: number;
10
+ tags?: string[];
11
+ createdAt?: string;
12
+ updatedAt?: string;
13
+ }
14
+ export interface FetchedSkill {
15
+ name: string;
16
+ content: string;
17
+ metadata: SkillMetadata;
18
+ }
19
+ export declare function fetchSkill(skillId: string): Promise<FetchedSkill>;
20
+ export interface SearchOptions {
21
+ limit?: number;
22
+ safeOnly?: boolean;
23
+ }
24
+ export declare function searchSkills(query: string, options?: SearchOptions): Promise<SkillMetadata[]>;
25
+ export declare function listPopular(limit?: number): Promise<SkillMetadata[]>;
26
+ export declare function getSkillMetadata(skillId: string): Promise<SkillMetadata>;
27
+ export declare function clearCache(): Promise<void>;
28
+ export declare function getCacheStats(): Promise<{
29
+ size: number;
30
+ entries: number;
31
+ }>;
32
+ /**
33
+ * Initialize local cache directory
34
+ */
35
+ export declare function initializeCache(): Promise<void>;
36
+ /**
37
+ * Load skill from local cache if available
38
+ */
39
+ export declare function loadFromCache(skillId: string): Promise<string | null>;
40
+ /**
41
+ * Save skill to local cache
42
+ */
43
+ export declare function saveToCache(skillId: string, content: string): Promise<void>;
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAgBD,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAiEvE;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,aAAa,EAAE,CAAC,CAmB1B;AAED,wBAAsB,WAAW,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAa9E;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAY9E;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAEhD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAKhF;AAED;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrD;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQ3E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF"}
@@ -0,0 +1,144 @@
1
+ import * as fs from 'fs/promises';
2
+ import { homedir } from 'os';
3
+ import { resolve } from 'path';
4
+ const CACHE_DURATION = 24 * 60 * 60 * 1000; // 24 hours
5
+ // ClawHub uses GitHub as its registry. Skills are raw SKILL.md files in repos.
6
+ // The official ClawHub API is at registry.clawhub.com, but we also support
7
+ // direct GitHub raw access as fallback.
8
+ const CLAWHUB_API = process.env.SKILLKIT_REGISTRY_URL || 'https://registry.clawhub.com';
9
+ const CLAWHUB_GITHUB_RAW = 'https://raw.githubusercontent.com/openclaw/clawhub/main/skills';
10
+ let skillCache = new Map();
11
+ export async function fetchSkill(skillId) {
12
+ // Check cache first
13
+ const cached = skillCache.get(skillId);
14
+ if (cached && Date.now() - cached.timestamp < CACHE_DURATION) {
15
+ return {
16
+ name: skillId,
17
+ content: cached.content,
18
+ metadata: { id: skillId, name: skillId },
19
+ };
20
+ }
21
+ try {
22
+ // Try to fetch from registry
23
+ const response = await fetch(`${CLAWHUB_API}/skills/${skillId}`);
24
+ if (!response.ok) {
25
+ throw new Error(`Failed to fetch skill: ${response.statusText}`);
26
+ }
27
+ const data = await response.json();
28
+ const content = data.content || '';
29
+ // Cache the result
30
+ skillCache.set(skillId, {
31
+ content,
32
+ timestamp: Date.now(),
33
+ });
34
+ return {
35
+ name: data.name || skillId,
36
+ content,
37
+ metadata: data.metadata || { id: skillId, name: skillId },
38
+ };
39
+ }
40
+ catch (registryError) {
41
+ // Fallback: try fetching directly from GitHub raw content
42
+ try {
43
+ const githubUrl = `${CLAWHUB_GITHUB_RAW}/${skillId}/SKILL.md`;
44
+ const ghResponse = await fetch(githubUrl);
45
+ if (ghResponse.ok) {
46
+ const content = await ghResponse.text();
47
+ skillCache.set(skillId, { content, timestamp: Date.now() });
48
+ return {
49
+ name: skillId,
50
+ content,
51
+ metadata: { id: skillId, name: skillId },
52
+ };
53
+ }
54
+ }
55
+ catch {
56
+ // GitHub fallback also failed
57
+ }
58
+ throw new Error(`Failed to fetch skill "${skillId}" from registry or GitHub.\n` +
59
+ `Tried: ${CLAWHUB_API}/skills/${skillId}\n` +
60
+ `Tried: ${CLAWHUB_GITHUB_RAW}/${skillId}/SKILL.md\n` +
61
+ `Original error: ${registryError instanceof Error ? registryError.message : String(registryError)}`);
62
+ }
63
+ }
64
+ export async function searchSkills(query, options = {}) {
65
+ try {
66
+ const params = new URLSearchParams({
67
+ q: query,
68
+ limit: String(options.limit || 10),
69
+ ...(options.safeOnly && { safeOnly: 'true' }),
70
+ });
71
+ const response = await fetch(`${CLAWHUB_API}/skills/search?${params}`);
72
+ if (!response.ok) {
73
+ throw new Error(`Search failed: ${response.statusText}`);
74
+ }
75
+ const data = await response.json();
76
+ return data.results || [];
77
+ }
78
+ catch (error) {
79
+ throw new Error(`Search failed: ${error instanceof Error ? error.message : String(error)}`);
80
+ }
81
+ }
82
+ export async function listPopular(limit = 10) {
83
+ try {
84
+ const response = await fetch(`${CLAWHUB_API}/skills/popular?limit=${limit}`);
85
+ if (!response.ok) {
86
+ throw new Error(`Failed to fetch popular skills: ${response.statusText}`);
87
+ }
88
+ const data = await response.json();
89
+ return data.results || [];
90
+ }
91
+ catch (error) {
92
+ throw new Error(`Failed to fetch popular skills: ${error instanceof Error ? error.message : String(error)}`);
93
+ }
94
+ }
95
+ export async function getSkillMetadata(skillId) {
96
+ try {
97
+ const response = await fetch(`${CLAWHUB_API}/skills/${skillId}/metadata`);
98
+ if (!response.ok) {
99
+ throw new Error(`Failed to fetch metadata: ${response.statusText}`);
100
+ }
101
+ return await response.json();
102
+ }
103
+ catch (error) {
104
+ throw new Error(`Failed to fetch metadata: ${error instanceof Error ? error.message : String(error)}`);
105
+ }
106
+ }
107
+ export async function clearCache() {
108
+ skillCache.clear();
109
+ }
110
+ export async function getCacheStats() {
111
+ return {
112
+ size: skillCache.size,
113
+ entries: skillCache.size,
114
+ };
115
+ }
116
+ /**
117
+ * Initialize local cache directory
118
+ */
119
+ export async function initializeCache() {
120
+ const cacheDir = resolve(homedir(), '.skillkit', 'cache');
121
+ await fs.mkdir(cacheDir, { recursive: true });
122
+ }
123
+ /**
124
+ * Load skill from local cache if available
125
+ */
126
+ export async function loadFromCache(skillId) {
127
+ try {
128
+ const cacheFile = resolve(homedir(), '.skillkit', 'cache', `${skillId}.md`);
129
+ const content = await fs.readFile(cacheFile, 'utf-8');
130
+ return content;
131
+ }
132
+ catch {
133
+ return null;
134
+ }
135
+ }
136
+ /**
137
+ * Save skill to local cache
138
+ */
139
+ export async function saveToCache(skillId, content) {
140
+ const cacheFile = resolve(homedir(), '.skillkit', 'cache', `${skillId}.md`);
141
+ await fs.mkdir(resolve(homedir(), '.skillkit', 'cache'), { recursive: true });
142
+ await fs.writeFile(cacheFile, content, 'utf-8');
143
+ }
144
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ export interface InstalledSkill {
2
+ name: string;
3
+ path: string;
4
+ content: string;
5
+ installedAt: string;
6
+ source: string;
7
+ securityScore?: number;
8
+ usageCount?: number;
9
+ lastUsedAt?: string;
10
+ version?: string;
11
+ }
12
+ /**
13
+ * Initialize registry directories
14
+ */
15
+ export declare function initializeRegistry(): Promise<void>;
16
+ /**
17
+ * Install a skill to local registry
18
+ */
19
+ export declare function installSkill(skillName: string, content: string, options?: {
20
+ source?: string;
21
+ version?: string;
22
+ securityScore?: number;
23
+ }): Promise<InstalledSkill>;
24
+ /**
25
+ * Get installed skill by name
26
+ */
27
+ export declare function getInstalled(skillName: string): Promise<InstalledSkill | null>;
28
+ /**
29
+ * List all installed skills
30
+ */
31
+ export declare function listInstalled(): Promise<InstalledSkill[]>;
32
+ /**
33
+ * Remove installed skill
34
+ */
35
+ export declare function removeSkill(skillName: string): Promise<void>;
36
+ /**
37
+ * Update skill (re-fetch and replace)
38
+ */
39
+ export declare function updateSkill(skillName: string, newContent: string): Promise<InstalledSkill>;
40
+ /**
41
+ * Record skill usage
42
+ */
43
+ export declare function recordUsage(skillName: string): Promise<void>;
44
+ /**
45
+ * Get registry statistics
46
+ */
47
+ export declare function getStats(): Promise<{
48
+ total: number;
49
+ bySource: Record<string, number>;
50
+ totalUsage: number;
51
+ }>;
52
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/hub/registry.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAiBD;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGxD;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IACR,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACA,OAAO,CAAC,cAAc,CAAC,CA8BzB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAwBpF;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAyB/D;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBlE;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CA0BhG;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAOlE;AAuBD;;GAEG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAeD"}
@@ -0,0 +1,192 @@
1
+ import * as fs from 'fs/promises';
2
+ import { homedir } from 'os';
3
+ import { resolve } from 'path';
4
+ const REGISTRY_DIR = resolve(homedir(), '.skillkit', 'skills');
5
+ const METADATA_FILE = resolve(homedir(), '.skillkit', 'registry.json');
6
+ /**
7
+ * Initialize registry directories
8
+ */
9
+ export async function initializeRegistry() {
10
+ await fs.mkdir(REGISTRY_DIR, { recursive: true });
11
+ await fs.mkdir(resolve(homedir(), '.skillkit'), { recursive: true });
12
+ }
13
+ /**
14
+ * Install a skill to local registry
15
+ */
16
+ export async function installSkill(skillName, content, options) {
17
+ await initializeRegistry();
18
+ // Save skill file
19
+ const skillPath = resolve(REGISTRY_DIR, `${skillName}.md`);
20
+ await fs.writeFile(skillPath, content, 'utf-8');
21
+ // Update registry metadata
22
+ const metadata = await readMetadata();
23
+ metadata[skillName] = {
24
+ path: skillPath,
25
+ installedAt: new Date().toISOString(),
26
+ source: options?.source || 'unknown',
27
+ securityScore: options?.securityScore,
28
+ usageCount: 0,
29
+ version: options?.version,
30
+ };
31
+ await writeMetadata(metadata);
32
+ return {
33
+ name: skillName,
34
+ path: skillPath,
35
+ content,
36
+ installedAt: new Date().toISOString(),
37
+ source: options?.source || 'unknown',
38
+ securityScore: options?.securityScore,
39
+ usageCount: 0,
40
+ version: options?.version,
41
+ };
42
+ }
43
+ /**
44
+ * Get installed skill by name
45
+ */
46
+ export async function getInstalled(skillName) {
47
+ const metadata = await readMetadata();
48
+ const skillMeta = metadata[skillName];
49
+ if (!skillMeta) {
50
+ return null;
51
+ }
52
+ try {
53
+ const content = await fs.readFile(skillMeta.path, 'utf-8');
54
+ return {
55
+ name: skillName,
56
+ path: skillMeta.path,
57
+ content,
58
+ installedAt: skillMeta.installedAt,
59
+ source: skillMeta.source,
60
+ securityScore: skillMeta.securityScore,
61
+ usageCount: skillMeta.usageCount || 0,
62
+ lastUsedAt: skillMeta.lastUsedAt,
63
+ version: skillMeta.version,
64
+ };
65
+ }
66
+ catch {
67
+ return null;
68
+ }
69
+ }
70
+ /**
71
+ * List all installed skills
72
+ */
73
+ export async function listInstalled() {
74
+ const metadata = await readMetadata();
75
+ const skills = [];
76
+ for (const [skillName, skillMeta] of Object.entries(metadata)) {
77
+ try {
78
+ const content = await fs.readFile(skillMeta.path, 'utf-8');
79
+ skills.push({
80
+ name: skillName,
81
+ path: skillMeta.path,
82
+ content,
83
+ installedAt: skillMeta.installedAt,
84
+ source: skillMeta.source,
85
+ securityScore: skillMeta.securityScore,
86
+ usageCount: skillMeta.usageCount || 0,
87
+ lastUsedAt: skillMeta.lastUsedAt,
88
+ version: skillMeta.version,
89
+ });
90
+ }
91
+ catch (error) {
92
+ // Skip skills that can't be read
93
+ continue;
94
+ }
95
+ }
96
+ return skills;
97
+ }
98
+ /**
99
+ * Remove installed skill
100
+ */
101
+ export async function removeSkill(skillName) {
102
+ const metadata = await readMetadata();
103
+ const skillMeta = metadata[skillName];
104
+ if (!skillMeta) {
105
+ throw new Error(`Skill not found: ${skillName}`);
106
+ }
107
+ // Delete file
108
+ try {
109
+ await fs.unlink(skillMeta.path);
110
+ }
111
+ catch {
112
+ // File might already be deleted
113
+ }
114
+ // Update metadata
115
+ delete metadata[skillName];
116
+ await writeMetadata(metadata);
117
+ }
118
+ /**
119
+ * Update skill (re-fetch and replace)
120
+ */
121
+ export async function updateSkill(skillName, newContent) {
122
+ const metadata = await readMetadata();
123
+ const skillMeta = metadata[skillName];
124
+ if (!skillMeta) {
125
+ throw new Error(`Skill not found: ${skillName}`);
126
+ }
127
+ // Update file
128
+ await fs.writeFile(skillMeta.path, newContent, 'utf-8');
129
+ // Update metadata timestamp
130
+ metadata[skillName].installedAt = new Date().toISOString();
131
+ await writeMetadata(metadata);
132
+ return {
133
+ name: skillName,
134
+ path: skillMeta.path,
135
+ content: newContent,
136
+ installedAt: metadata[skillName].installedAt,
137
+ source: skillMeta.source,
138
+ securityScore: skillMeta.securityScore,
139
+ usageCount: skillMeta.usageCount,
140
+ lastUsedAt: skillMeta.lastUsedAt,
141
+ version: skillMeta.version,
142
+ };
143
+ }
144
+ /**
145
+ * Record skill usage
146
+ */
147
+ export async function recordUsage(skillName) {
148
+ const metadata = await readMetadata();
149
+ if (metadata[skillName]) {
150
+ metadata[skillName].usageCount = (metadata[skillName].usageCount || 0) + 1;
151
+ metadata[skillName].lastUsedAt = new Date().toISOString();
152
+ await writeMetadata(metadata);
153
+ }
154
+ }
155
+ /**
156
+ * Read registry metadata
157
+ */
158
+ async function readMetadata() {
159
+ try {
160
+ const content = await fs.readFile(METADATA_FILE, 'utf-8');
161
+ return JSON.parse(content);
162
+ }
163
+ catch {
164
+ // File doesn't exist or is invalid
165
+ return {};
166
+ }
167
+ }
168
+ /**
169
+ * Write registry metadata
170
+ */
171
+ async function writeMetadata(metadata) {
172
+ await fs.mkdir(resolve(homedir(), '.skillkit'), { recursive: true });
173
+ await fs.writeFile(METADATA_FILE, JSON.stringify(metadata, null, 2), 'utf-8');
174
+ }
175
+ /**
176
+ * Get registry statistics
177
+ */
178
+ export async function getStats() {
179
+ const metadata = await readMetadata();
180
+ const stats = {
181
+ total: Object.keys(metadata).length,
182
+ bySource: {},
183
+ totalUsage: 0,
184
+ };
185
+ for (const skillMeta of Object.values(metadata)) {
186
+ const source = skillMeta.source || 'unknown';
187
+ stats.bySource[source] = (stats.bySource[source] || 0) + 1;
188
+ stats.totalUsage += skillMeta.usageCount || 0;
189
+ }
190
+ return stats;
191
+ }
192
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/hub/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ type Locale = 'en' | 'es' | 'zh' | 'pt';
2
+ /**
3
+ * Get translated string
4
+ */
5
+ export declare function t(key: string, params?: Record<string, string>): string;
6
+ /**
7
+ * Set current locale
8
+ */
9
+ export declare function setLocale(locale: Locale): void;
10
+ /**
11
+ * Get current locale
12
+ */
13
+ export declare function getLocale(): Locale;
14
+ /**
15
+ * Get all available locales
16
+ */
17
+ export declare function getAvailableLocales(): Locale[];
18
+ export {};
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAKA,KAAK,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAexC;;GAEG;AACH,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAkCtE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAO9C;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAsBD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
@@ -0,0 +1,92 @@
1
+ import { en } from './locales/en.js';
2
+ import { es } from './locales/es.js';
3
+ import { zh } from './locales/zh.js';
4
+ import { pt } from './locales/pt.js';
5
+ const translations = {
6
+ en,
7
+ es,
8
+ zh,
9
+ pt,
10
+ };
11
+ let currentLocale = detectSystemLocale();
12
+ /**
13
+ * Get translated string
14
+ */
15
+ export function t(key, params) {
16
+ const keys = key.split('.');
17
+ let value = translations[currentLocale];
18
+ for (const k of keys) {
19
+ if (typeof value === 'object' && value !== null && k in value) {
20
+ value = value[k];
21
+ }
22
+ else {
23
+ // Fallback to English if key not found
24
+ value = translations.en;
25
+ for (const k2 of keys) {
26
+ if (typeof value === 'object' && value !== null && k2 in value) {
27
+ value = value[k2];
28
+ }
29
+ else {
30
+ return key; // Return key if not found anywhere
31
+ }
32
+ }
33
+ break;
34
+ }
35
+ }
36
+ if (typeof value !== 'string') {
37
+ return key;
38
+ }
39
+ // Replace parameters
40
+ let result = value;
41
+ if (params) {
42
+ for (const [key, val] of Object.entries(params)) {
43
+ result = result.replace(`{${key}}`, val);
44
+ }
45
+ }
46
+ return result;
47
+ }
48
+ /**
49
+ * Set current locale
50
+ */
51
+ export function setLocale(locale) {
52
+ if (locale in translations) {
53
+ currentLocale = locale;
54
+ }
55
+ else {
56
+ console.warn(`Locale "${locale}" not supported, falling back to English`);
57
+ currentLocale = 'en';
58
+ }
59
+ }
60
+ /**
61
+ * Get current locale
62
+ */
63
+ export function getLocale() {
64
+ return currentLocale;
65
+ }
66
+ /**
67
+ * Detect system locale
68
+ */
69
+ function detectSystemLocale() {
70
+ // Check environment variable first
71
+ const envLocale = process.env.SKILLKIT_LANGUAGE;
72
+ if (envLocale && envLocale in translations) {
73
+ return envLocale;
74
+ }
75
+ // Check LANG environment variable
76
+ const lang = process.env.LANG || process.env.LC_ALL || '';
77
+ if (lang.startsWith('es'))
78
+ return 'es';
79
+ if (lang.startsWith('zh'))
80
+ return 'zh';
81
+ if (lang.startsWith('pt'))
82
+ return 'pt';
83
+ // Default to English
84
+ return 'en';
85
+ }
86
+ /**
87
+ * Get all available locales
88
+ */
89
+ export function getAvailableLocales() {
90
+ return Object.keys(translations);
91
+ }
92
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"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"}