@hasna/skills 0.1.25 → 0.1.27

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.
@@ -12,6 +12,7 @@ export interface SkillsConfig {
12
12
  defaultAgent?: "claude" | "codex" | "gemini" | "pi" | "opencode" | "all";
13
13
  defaultScope?: "global" | "project";
14
14
  format?: "compact" | "json" | "csv";
15
+ apiUrl?: string;
15
16
  }
16
17
  export type ConfigScope = "global" | "project";
17
18
  /**
@@ -0,0 +1,53 @@
1
+ import { type SkillRegistryProfile } from "./registry.js";
2
+ import { type SkillDocs, type SkillRequirements } from "./skillinfo.js";
3
+ import { type SkillValidationResult } from "./skill-validation.js";
4
+ export interface RegistrySyncOptions {
5
+ profile?: SkillRegistryProfile;
6
+ includeDocs?: boolean;
7
+ includeRequirements?: boolean;
8
+ includeValidation?: boolean;
9
+ packageName?: string;
10
+ packageVersion?: string;
11
+ sourceRepository?: string;
12
+ }
13
+ export interface RegistrySyncSkill {
14
+ name: string;
15
+ slug: string;
16
+ displayName: string;
17
+ description: string;
18
+ category: string;
19
+ tags: string[];
20
+ dependencies: string[];
21
+ source: {
22
+ packageName: string;
23
+ packageVersion: string;
24
+ repository: string;
25
+ directory: string;
26
+ };
27
+ docs?: SkillDocs & {
28
+ best: string | null;
29
+ };
30
+ requirements?: SkillRequirements | null;
31
+ validation?: SkillValidationResult;
32
+ }
33
+ export interface RegistrySyncArtifact {
34
+ schemaVersion: 1;
35
+ source: {
36
+ packageName: string;
37
+ packageVersion: string;
38
+ repository: string;
39
+ profile: SkillRegistryProfile;
40
+ };
41
+ summary: {
42
+ skillCount: number;
43
+ validSkillCount: number | null;
44
+ invalidSkillCount: number | null;
45
+ categories: Array<{
46
+ name: string;
47
+ count: number;
48
+ }>;
49
+ };
50
+ skills: RegistrySyncSkill[];
51
+ }
52
+ export declare function createRegistrySyncArtifact(options?: RegistrySyncOptions): RegistrySyncArtifact;
53
+ export declare function writeRegistrySyncArtifact(path: string, artifact: RegistrySyncArtifact): void;
@@ -8,7 +8,7 @@ export interface SkillMeta {
8
8
  category: string;
9
9
  tags: string[];
10
10
  dependencies?: string[];
11
- source?: "official" | "custom";
11
+ source?: "official" | "custom" | "remote";
12
12
  }
13
13
  export declare const CATEGORIES: readonly ["Development Tools", "Business & Marketing", "Productivity & Organization", "Project Management", "Content Generation", "Finance & Compliance", "Data & Analysis", "Media Processing", "Design & Branding", "Web & Browser", "Research & Writing", "Science & Academic", "Education & Learning", "Communication", "Health & Wellness", "Travel & Lifestyle", "Event Management"];
14
14
  export type Category = (typeof CATEGORIES)[number];
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Remote registry client.
3
+ *
4
+ * Local registry behavior remains the default. These helpers are opt-in and
5
+ * read from SKILLS_API_URL or config.apiUrl so private SaaS products can expose
6
+ * a compatible registry API without hard-coding any SaaS details upstream.
7
+ */
8
+ import { type SkillsConfig } from "./config.js";
9
+ import type { SkillMeta } from "./registry.js";
10
+ export interface RemoteRegistryOptions {
11
+ apiUrl?: string;
12
+ endpoint?: string;
13
+ timeoutMs?: number;
14
+ fetchImpl?: (input: string | URL | Request, init?: RequestInit) => Promise<Response>;
15
+ }
16
+ export declare function getConfiguredApiUrl(config?: SkillsConfig, env?: Record<string, string | undefined>): string | undefined;
17
+ export declare function buildSkillsApiUrl(apiUrl: string, endpoint?: string): string;
18
+ export declare function parseRemoteRegistryPayload(payload: unknown): SkillMeta[];
19
+ export declare function loadRemoteRegistry(options?: RemoteRegistryOptions): Promise<SkillMeta[]>;
@@ -0,0 +1,45 @@
1
+ import type { SkillMeta } from "./registry.js";
2
+ export interface SkillValidationMessage {
3
+ code: string;
4
+ message: string;
5
+ }
6
+ export interface SkillValidationResult {
7
+ name: string;
8
+ path: string;
9
+ valid: boolean;
10
+ issues: SkillValidationMessage[];
11
+ warnings: SkillValidationMessage[];
12
+ metadata: {
13
+ packageName?: string;
14
+ version?: string;
15
+ binCommands: string[];
16
+ docFiles: string[];
17
+ skillMdFrontmatter?: SkillFrontmatter;
18
+ provenance?: SkillValidationProvenance;
19
+ };
20
+ }
21
+ export interface RegistryConsistencyResult {
22
+ valid: boolean;
23
+ missingDirectories: string[];
24
+ orphanDirectories: string[];
25
+ duplicateRegistryNames: string[];
26
+ }
27
+ export interface SkillFrontmatter {
28
+ name?: string;
29
+ description?: string;
30
+ displayName?: string;
31
+ category?: string;
32
+ tags?: string[];
33
+ version?: string;
34
+ source?: string;
35
+ }
36
+ export interface SkillValidationProvenance {
37
+ directoryName: string;
38
+ packageName?: string;
39
+ packageVersion?: string;
40
+ frontmatterSource?: string;
41
+ registrySource?: string;
42
+ }
43
+ export declare function parseSkillFrontmatter(content: string): SkillFrontmatter | null;
44
+ export declare function validateSkillDirectory(name: string, skillPath: string, registryMeta?: SkillMeta): SkillValidationResult;
45
+ export declare function validateRegistryConsistency(registry: SkillMeta[], skillsDir: string): RegistryConsistencyResult;
@@ -13,6 +13,7 @@ export interface SkillResponse {
13
13
  envVarsSet: string[];
14
14
  systemDeps: string[];
15
15
  cliCommand: string | null;
16
+ source?: "official" | "custom" | "remote";
16
17
  }
17
18
  export interface SkillDetailResponse extends SkillResponse {
18
19
  docs: string | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/skills",
3
- "version": "0.1.25",
3
+ "version": "0.1.27",
4
4
  "description": "Skills library for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -20,6 +20,8 @@
20
20
  "skills/",
21
21
  "!skills/**/node_modules",
22
22
  "!skills/**/.skills",
23
+ "!skills/**/exports",
24
+ "!skills/scaffold-project/my-app",
23
25
  "LICENSE",
24
26
  "README.md"
25
27
  ],
@@ -1,16 +0,0 @@
1
- id,name,codename,displayName,sku,type,category,price,recurring,shipping,createdAt,inventory,status
2
- prod_3,Supplement Package 6 Bottles,prod_3,Supplement Package 6 Bottles,,Frontend,,$149.99,,,"February 16, 2025",0,active
3
- prod_2,Supplement Package 3 Bottles,prod_2,Supplement Package 3 Bottles,,Frontend,,$79.99,,,"February 16, 2025",0,active
4
- prod_1,Supplement Package 1 Bottle,prod_1,Supplement Package 1 Bottle,,Frontend,,$29.99,,,"February 16, 2025",0,active
5
- DummyProduct,Dummy Product,DummyProduct,Dummy Product,,Frontend,,$0.00,,,"February 16, 2025",0,active
6
- 7037-prod11:6,Grow Big Or - 6 Bottles (10% off),prod11,Grow Big Or - 6 Bottles (10% off),7037-prod11:6,Frontend,,$264.00,,,"December 20, 2021",0,active
7
- 7037-prod10:4,Grow Big Or - 4 Bottles (10% off),prod10,Grow Big Or - 4 Bottles (10% off),7037-prod10:4,Frontend,,$176.00,,,"December 20, 2021",0,active
8
- 7037-prod9:6,Grow Big Or - 6 Bottles,prod9,Grow Big Or - 6 Bottles,7037-prod9:6,Frontend,,$294.00,,,"December 20, 2021",0,active
9
- 7037-prod8:3,Grow Big Or - 3 Bottles,prod8,Grow Big Or - 3 Bottles,7037-prod8:3,Frontend,,$177.00,,International ($15.95),"December 20, 2021",0,active
10
- 7037-prod7:1,Grow Big Or - 1 Bottle,prod7,Grow Big Or - 1 Bottle,7037-prod7:1,Frontend,,$69.00,,International ($15.95),"December 20, 2021",0,active
11
- 7037-prod6:3,Life Defend - 3 Bottles (upsell),prod6,Life Defend - 3 Bottles,7037-prod6:3,Frontend,,$147.00,,International ($15.95),"December 20, 2021",0,active
12
- 7037-prod5:3,Grow Big Or - 3 Bottles Discount (upsell),prod5,Grow Big Or - 3 Bottles Discount,7037-prod5:3,Frontend,,$117.00,,International ($15.95),"December 20, 2021",0,active
13
- 7037-prod4:6,Grow Big Or - 6 Bottles (upsell),prod4,Grow Big Or - 6 Bottles,7037-prod4:6,Frontend,,$234.00,,International ($15.95),"December 20, 2021",0,active
14
- 7037-prod3:4,Grow Big Or - 4 Bottles,prod3,Grow Big Or - 4 Bottles,7037-prod3:4,Frontend,,$196.00,,International ($15.95),"December 20, 2021",0,active
15
- 7037-prod2:2,Grow Big Or - 2 Bottles,prod2,Grow Big Or - 2 Bottles,7037-prod2:2,Frontend,,$118.00,,,"December 20, 2021",0,active
16
- 7037-prod1:1,Grow Big Or - 1 Bottle,prod1,Grow Big Or - 1 Bottle,7037-prod1:1,Frontend,,$69.00,,,"December 6, 2021",0,active
@@ -1,227 +0,0 @@
1
- [
2
- {
3
- "id": "prod_3",
4
- "name": "Supplement Package 6 Bottles",
5
- "codename": "prod_3",
6
- "displayName": "Supplement Package 6 Bottles",
7
- "sku": "",
8
- "type": "Frontend",
9
- "category": "",
10
- "price": "$149.99",
11
- "recurring": "",
12
- "shipping": "",
13
- "createdAt": "February 16, 2025",
14
- "inventory": "0",
15
- "status": "active"
16
- },
17
- {
18
- "id": "prod_2",
19
- "name": "Supplement Package 3 Bottles",
20
- "codename": "prod_2",
21
- "displayName": "Supplement Package 3 Bottles",
22
- "sku": "",
23
- "type": "Frontend",
24
- "category": "",
25
- "price": "$79.99",
26
- "recurring": "",
27
- "shipping": "",
28
- "createdAt": "February 16, 2025",
29
- "inventory": "0",
30
- "status": "active"
31
- },
32
- {
33
- "id": "prod_1",
34
- "name": "Supplement Package 1 Bottle",
35
- "codename": "prod_1",
36
- "displayName": "Supplement Package 1 Bottle",
37
- "sku": "",
38
- "type": "Frontend",
39
- "category": "",
40
- "price": "$29.99",
41
- "recurring": "",
42
- "shipping": "",
43
- "createdAt": "February 16, 2025",
44
- "inventory": "0",
45
- "status": "active"
46
- },
47
- {
48
- "id": "DummyProduct",
49
- "name": "Dummy Product",
50
- "codename": "DummyProduct",
51
- "displayName": "Dummy Product",
52
- "sku": "",
53
- "type": "Frontend",
54
- "category": "",
55
- "price": "$0.00",
56
- "recurring": "",
57
- "shipping": "",
58
- "createdAt": "February 16, 2025",
59
- "inventory": "0",
60
- "status": "active"
61
- },
62
- {
63
- "id": "7037-prod11:6",
64
- "name": "Grow Big Or - 6 Bottles (10% off)",
65
- "codename": "prod11",
66
- "displayName": "Grow Big Or - 6 Bottles (10% off)",
67
- "sku": "7037-prod11:6",
68
- "type": "Frontend",
69
- "category": "",
70
- "price": "$264.00",
71
- "recurring": "",
72
- "shipping": "",
73
- "createdAt": "December 20, 2021",
74
- "inventory": "0",
75
- "status": "active"
76
- },
77
- {
78
- "id": "7037-prod10:4",
79
- "name": "Grow Big Or - 4 Bottles (10% off)",
80
- "codename": "prod10",
81
- "displayName": "Grow Big Or - 4 Bottles (10% off)",
82
- "sku": "7037-prod10:4",
83
- "type": "Frontend",
84
- "category": "",
85
- "price": "$176.00",
86
- "recurring": "",
87
- "shipping": "",
88
- "createdAt": "December 20, 2021",
89
- "inventory": "0",
90
- "status": "active"
91
- },
92
- {
93
- "id": "7037-prod9:6",
94
- "name": "Grow Big Or - 6 Bottles",
95
- "codename": "prod9",
96
- "displayName": "Grow Big Or - 6 Bottles",
97
- "sku": "7037-prod9:6",
98
- "type": "Frontend",
99
- "category": "",
100
- "price": "$294.00",
101
- "recurring": "",
102
- "shipping": "",
103
- "createdAt": "December 20, 2021",
104
- "inventory": "0",
105
- "status": "active"
106
- },
107
- {
108
- "id": "7037-prod8:3",
109
- "name": "Grow Big Or - 3 Bottles",
110
- "codename": "prod8",
111
- "displayName": "Grow Big Or - 3 Bottles",
112
- "sku": "7037-prod8:3",
113
- "type": "Frontend",
114
- "category": "",
115
- "price": "$177.00",
116
- "recurring": "",
117
- "shipping": "International ($15.95)",
118
- "createdAt": "December 20, 2021",
119
- "inventory": "0",
120
- "status": "active"
121
- },
122
- {
123
- "id": "7037-prod7:1",
124
- "name": "Grow Big Or - 1 Bottle",
125
- "codename": "prod7",
126
- "displayName": "Grow Big Or - 1 Bottle",
127
- "sku": "7037-prod7:1",
128
- "type": "Frontend",
129
- "category": "",
130
- "price": "$69.00",
131
- "recurring": "",
132
- "shipping": "International ($15.95)",
133
- "createdAt": "December 20, 2021",
134
- "inventory": "0",
135
- "status": "active"
136
- },
137
- {
138
- "id": "7037-prod6:3",
139
- "name": "Life Defend - 3 Bottles (upsell)",
140
- "codename": "prod6",
141
- "displayName": "Life Defend - 3 Bottles",
142
- "sku": "7037-prod6:3",
143
- "type": "Frontend",
144
- "category": "",
145
- "price": "$147.00",
146
- "recurring": "",
147
- "shipping": "International ($15.95)",
148
- "createdAt": "December 20, 2021",
149
- "inventory": "0",
150
- "status": "active"
151
- },
152
- {
153
- "id": "7037-prod5:3",
154
- "name": "Grow Big Or - 3 Bottles Discount (upsell)",
155
- "codename": "prod5",
156
- "displayName": "Grow Big Or - 3 Bottles Discount",
157
- "sku": "7037-prod5:3",
158
- "type": "Frontend",
159
- "category": "",
160
- "price": "$117.00",
161
- "recurring": "",
162
- "shipping": "International ($15.95)",
163
- "createdAt": "December 20, 2021",
164
- "inventory": "0",
165
- "status": "active"
166
- },
167
- {
168
- "id": "7037-prod4:6",
169
- "name": "Grow Big Or - 6 Bottles (upsell)",
170
- "codename": "prod4",
171
- "displayName": "Grow Big Or - 6 Bottles",
172
- "sku": "7037-prod4:6",
173
- "type": "Frontend",
174
- "category": "",
175
- "price": "$234.00",
176
- "recurring": "",
177
- "shipping": "International ($15.95)",
178
- "createdAt": "December 20, 2021",
179
- "inventory": "0",
180
- "status": "active"
181
- },
182
- {
183
- "id": "7037-prod3:4",
184
- "name": "Grow Big Or - 4 Bottles",
185
- "codename": "prod3",
186
- "displayName": "Grow Big Or - 4 Bottles",
187
- "sku": "7037-prod3:4",
188
- "type": "Frontend",
189
- "category": "",
190
- "price": "$196.00",
191
- "recurring": "",
192
- "shipping": "International ($15.95)",
193
- "createdAt": "December 20, 2021",
194
- "inventory": "0",
195
- "status": "active"
196
- },
197
- {
198
- "id": "7037-prod2:2",
199
- "name": "Grow Big Or - 2 Bottles",
200
- "codename": "prod2",
201
- "displayName": "Grow Big Or - 2 Bottles",
202
- "sku": "7037-prod2:2",
203
- "type": "Frontend",
204
- "category": "",
205
- "price": "$118.00",
206
- "recurring": "",
207
- "shipping": "",
208
- "createdAt": "December 20, 2021",
209
- "inventory": "0",
210
- "status": "active"
211
- },
212
- {
213
- "id": "7037-prod1:1",
214
- "name": "Grow Big Or - 1 Bottle",
215
- "codename": "prod1",
216
- "displayName": "Grow Big Or - 1 Bottle",
217
- "sku": "7037-prod1:1",
218
- "type": "Frontend",
219
- "category": "",
220
- "price": "$69.00",
221
- "recurring": "",
222
- "shipping": "",
223
- "createdAt": "December 6, 2021",
224
- "inventory": "0",
225
- "status": "active"
226
- }
227
- ]