asterscanner 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.
- package/README.md +242 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/patterns.d.ts +18 -0
- package/dist/patterns.d.ts.map +1 -0
- package/dist/patterns.js +314 -0
- package/dist/patterns.js.map +1 -0
- package/dist/scanner.d.ts +46 -0
- package/dist/scanner.d.ts.map +1 -0
- package/dist/scanner.js +160 -0
- package/dist/scanner.js.map +1 -0
- package/dist/scoring.d.ts +30 -0
- package/dist/scoring.d.ts.map +1 -0
- package/dist/scoring.js +62 -0
- package/dist/scoring.js.map +1 -0
- package/dist/skill-schema.d.ts +456 -0
- package/dist/skill-schema.d.ts.map +1 -0
- package/dist/skill-schema.js +531 -0
- package/dist/skill-schema.js.map +1 -0
- package/dist/skill-tester.d.ts +119 -0
- package/dist/skill-tester.d.ts.map +1 -0
- package/dist/skill-tester.js +334 -0
- package/dist/skill-tester.js.map +1 -0
- package/dist/types.d.ts +93 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill Schema Types
|
|
3
|
+
*
|
|
4
|
+
* This schema aligns with the official Agent Skills specification.
|
|
5
|
+
* See: https://agentskills.io/specification
|
|
6
|
+
*
|
|
7
|
+
* Key principles:
|
|
8
|
+
* - Skills are DIRECTORIES, not single files
|
|
9
|
+
* - Only `name` and `description` are required per spec
|
|
10
|
+
* - Optional fields: license, compatibility, metadata, allowed-tools
|
|
11
|
+
* - Skills can include executable scripts
|
|
12
|
+
* - Progressive disclosure: content loads in stages
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Required frontmatter fields for SKILL.md per agentskills.io specification
|
|
16
|
+
* See: https://agentskills.io/specification
|
|
17
|
+
*/
|
|
18
|
+
export interface AnthropicSkillMetadata {
|
|
19
|
+
/**
|
|
20
|
+
* Unique skill identifier
|
|
21
|
+
* - 1-64 characters
|
|
22
|
+
* - Only lowercase letters, numbers, and hyphens
|
|
23
|
+
* - Must NOT start or end with hyphen
|
|
24
|
+
* - Must NOT contain consecutive hyphens
|
|
25
|
+
* - Must match parent directory name
|
|
26
|
+
*/
|
|
27
|
+
name: string;
|
|
28
|
+
/**
|
|
29
|
+
* Description of what the skill does and when to use it
|
|
30
|
+
* - Must be non-empty
|
|
31
|
+
* - Maximum 1024 characters
|
|
32
|
+
* - Should describe both WHAT and WHEN to use
|
|
33
|
+
*/
|
|
34
|
+
description: string;
|
|
35
|
+
/**
|
|
36
|
+
* License name or reference to bundled license file
|
|
37
|
+
*/
|
|
38
|
+
license?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Environment requirements (max 500 chars)
|
|
41
|
+
* Example: "Requires git, docker, jq, and access to the internet"
|
|
42
|
+
*/
|
|
43
|
+
compatibility?: string;
|
|
44
|
+
/**
|
|
45
|
+
* Key-value mapping for additional metadata
|
|
46
|
+
*/
|
|
47
|
+
metadata?: Record<string, unknown>;
|
|
48
|
+
/**
|
|
49
|
+
* Space-delimited list of pre-approved tools (Experimental)
|
|
50
|
+
* Example: "Bash(git:*) Bash(jq:*) Read"
|
|
51
|
+
*/
|
|
52
|
+
allowedTools?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Validate name according to official Agent Skills specification
|
|
56
|
+
* @param name - The skill name to validate
|
|
57
|
+
* @param directoryName - Optional parent directory name to check against
|
|
58
|
+
*/
|
|
59
|
+
export declare function validateAnthropicName(name: string, directoryName?: string): {
|
|
60
|
+
valid: boolean;
|
|
61
|
+
error?: string;
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Validate compatibility field per spec (max 500 chars)
|
|
65
|
+
*/
|
|
66
|
+
export declare function validateCompatibility(compatibility: string): {
|
|
67
|
+
valid: boolean;
|
|
68
|
+
error?: string;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Validate description according to Anthropic's constraints
|
|
72
|
+
*/
|
|
73
|
+
export declare function validateAnthropicDescription(description: string): {
|
|
74
|
+
valid: boolean;
|
|
75
|
+
error?: string;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* A file within a skill directory
|
|
79
|
+
*/
|
|
80
|
+
export interface SkillFile {
|
|
81
|
+
/** Relative path from skill root (e.g., "scripts/analyze.py") */
|
|
82
|
+
path: string;
|
|
83
|
+
/** File content */
|
|
84
|
+
content: string;
|
|
85
|
+
/** File type */
|
|
86
|
+
type: "markdown" | "script" | "resource" | "config";
|
|
87
|
+
/** Whether this file is executable */
|
|
88
|
+
executable?: boolean;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Complete skill directory structure per agentskills.io spec
|
|
92
|
+
*
|
|
93
|
+
* Directory layout:
|
|
94
|
+
* skill-name/
|
|
95
|
+
* ├── SKILL.md # Required
|
|
96
|
+
* ├── skill.json # Optional (ask extensions)
|
|
97
|
+
* ├── scripts/ # Optional - executable code
|
|
98
|
+
* ├── references/ # Optional - additional documentation
|
|
99
|
+
* └── assets/ # Optional - static resources
|
|
100
|
+
*/
|
|
101
|
+
export interface SkillDirectory {
|
|
102
|
+
/** SKILL.md content (required) */
|
|
103
|
+
skillMd: string;
|
|
104
|
+
/** Parsed frontmatter from SKILL.md */
|
|
105
|
+
metadata: AnthropicSkillMetadata;
|
|
106
|
+
/** Markdown body from SKILL.md (after frontmatter) */
|
|
107
|
+
instructions: string;
|
|
108
|
+
/** Optional skill.json with ask extensions */
|
|
109
|
+
skillJson?: AskSkillExtensions;
|
|
110
|
+
/** All files in the skill directory */
|
|
111
|
+
files: SkillFile[];
|
|
112
|
+
/** scripts/ directory contents - executable code */
|
|
113
|
+
scripts?: SkillFile[];
|
|
114
|
+
/** references/ directory contents - additional documentation */
|
|
115
|
+
references?: SkillFile[];
|
|
116
|
+
/** assets/ directory contents - static resources */
|
|
117
|
+
assets?: SkillFile[];
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* ask-specific extensions stored in skill.json
|
|
121
|
+
* These are NOT part of Anthropic's spec but add value for the registry
|
|
122
|
+
*/
|
|
123
|
+
export interface AskSkillExtensions {
|
|
124
|
+
/** Semantic version (e.g., "1.0.0") */
|
|
125
|
+
version?: string;
|
|
126
|
+
/** Author name or object */
|
|
127
|
+
author?: string | {
|
|
128
|
+
name: string;
|
|
129
|
+
email?: string;
|
|
130
|
+
url?: string;
|
|
131
|
+
};
|
|
132
|
+
/** Contributors list */
|
|
133
|
+
contributors?: Array<string | {
|
|
134
|
+
name: string;
|
|
135
|
+
email?: string;
|
|
136
|
+
url?: string;
|
|
137
|
+
}>;
|
|
138
|
+
/** Organization/scope */
|
|
139
|
+
organization?: string;
|
|
140
|
+
/** Search keywords */
|
|
141
|
+
keywords?: string[];
|
|
142
|
+
/** Categories for browsing */
|
|
143
|
+
categories?: string[];
|
|
144
|
+
/** License identifier */
|
|
145
|
+
license?: string;
|
|
146
|
+
/** Repository URL */
|
|
147
|
+
repository?: string;
|
|
148
|
+
/** Homepage URL */
|
|
149
|
+
homepage?: string;
|
|
150
|
+
/** Bug tracker URL */
|
|
151
|
+
bugs?: string;
|
|
152
|
+
/** Security score (0-100, computed by scanner) */
|
|
153
|
+
securityScore?: number;
|
|
154
|
+
/** Typed contract for inputs/outputs */
|
|
155
|
+
contract?: SkillContract;
|
|
156
|
+
/** Capability declarations */
|
|
157
|
+
capabilities?: CapabilityDeclaration[];
|
|
158
|
+
/** Composition (extends/includes) */
|
|
159
|
+
composition?: SkillComposition;
|
|
160
|
+
/** Test suite */
|
|
161
|
+
tests?: SkillTestSuite;
|
|
162
|
+
/** Runtime requirements */
|
|
163
|
+
runtime?: SkillRuntime;
|
|
164
|
+
/** Configuration schema */
|
|
165
|
+
config?: SkillConfig;
|
|
166
|
+
/** Mark as private */
|
|
167
|
+
private?: boolean;
|
|
168
|
+
/** Mark as deprecated */
|
|
169
|
+
deprecated?: boolean;
|
|
170
|
+
/** Deprecation message */
|
|
171
|
+
deprecationMessage?: string;
|
|
172
|
+
/** Successor skill name */
|
|
173
|
+
successor?: string;
|
|
174
|
+
/** Execution mode (local | remote). Omit => local. */
|
|
175
|
+
execution?: SkillExecution;
|
|
176
|
+
/** Commercial attribute (free | paid). Omit => free. */
|
|
177
|
+
pricing?: SkillPricing;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Parameter types for skill inputs/outputs
|
|
181
|
+
*/
|
|
182
|
+
export type ParameterType = "string" | "number" | "boolean" | "array" | "object" | "file" | "url" | "code" | "markdown" | "json" | "any";
|
|
183
|
+
/**
|
|
184
|
+
* A single input/output parameter definition
|
|
185
|
+
*/
|
|
186
|
+
export interface SkillParameter {
|
|
187
|
+
name: string;
|
|
188
|
+
type: ParameterType;
|
|
189
|
+
description: string;
|
|
190
|
+
required?: boolean;
|
|
191
|
+
default?: unknown;
|
|
192
|
+
enum?: string[];
|
|
193
|
+
pattern?: string;
|
|
194
|
+
minLength?: number;
|
|
195
|
+
maxLength?: number;
|
|
196
|
+
minimum?: number;
|
|
197
|
+
maximum?: number;
|
|
198
|
+
items?: SkillParameter;
|
|
199
|
+
properties?: Record<string, SkillParameter>;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Skill contract defining inputs and outputs
|
|
203
|
+
*/
|
|
204
|
+
export interface SkillContract {
|
|
205
|
+
inputs?: SkillParameter[];
|
|
206
|
+
outputs?: SkillParameter[];
|
|
207
|
+
examples?: ContractExample[];
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Example showing input/output mapping
|
|
211
|
+
*/
|
|
212
|
+
export interface ContractExample {
|
|
213
|
+
name: string;
|
|
214
|
+
description?: string;
|
|
215
|
+
input: Record<string, unknown>;
|
|
216
|
+
output: Record<string, unknown>;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Capabilities that a skill may require
|
|
220
|
+
*/
|
|
221
|
+
export type SkillCapability = "file:read" | "file:write" | "file:delete" | "file:execute" | "network:http" | "network:https" | "network:websocket" | "shell:execute" | "shell:background" | "process:spawn" | "database:read" | "database:write" | "secrets:read" | "env:read" | "api:external" | "oauth:required" | "ui:browser" | "ui:terminal" | "gpu:required" | "elevated:required";
|
|
222
|
+
/**
|
|
223
|
+
* Capability declaration with optional constraints
|
|
224
|
+
*/
|
|
225
|
+
export interface CapabilityDeclaration {
|
|
226
|
+
capability: SkillCapability;
|
|
227
|
+
reason: string;
|
|
228
|
+
optional?: boolean;
|
|
229
|
+
constraints?: {
|
|
230
|
+
paths?: string[];
|
|
231
|
+
hosts?: string[];
|
|
232
|
+
commands?: string[];
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Reference to another skill for composition
|
|
237
|
+
*/
|
|
238
|
+
export interface SkillReference {
|
|
239
|
+
skill: string;
|
|
240
|
+
version?: string;
|
|
241
|
+
alias?: string;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Skill composition configuration
|
|
245
|
+
*/
|
|
246
|
+
export interface SkillComposition {
|
|
247
|
+
extends?: SkillReference;
|
|
248
|
+
includes?: SkillReference[];
|
|
249
|
+
overrides?: {
|
|
250
|
+
inputs?: boolean;
|
|
251
|
+
outputs?: boolean;
|
|
252
|
+
capabilities?: boolean;
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Test case for validating skill behavior
|
|
257
|
+
*/
|
|
258
|
+
export interface SkillTestCase {
|
|
259
|
+
name: string;
|
|
260
|
+
description?: string;
|
|
261
|
+
input: Record<string, unknown>;
|
|
262
|
+
expect: {
|
|
263
|
+
output?: Record<string, unknown>;
|
|
264
|
+
capabilities?: SkillCapability[];
|
|
265
|
+
files?: {
|
|
266
|
+
path: string;
|
|
267
|
+
action: "create" | "modify" | "delete" | "read";
|
|
268
|
+
contains?: string;
|
|
269
|
+
}[];
|
|
270
|
+
commands?: {
|
|
271
|
+
pattern: string;
|
|
272
|
+
exitCode?: number;
|
|
273
|
+
}[];
|
|
274
|
+
success?: boolean;
|
|
275
|
+
errorPattern?: string;
|
|
276
|
+
};
|
|
277
|
+
timeout?: number;
|
|
278
|
+
skip?: boolean;
|
|
279
|
+
only?: boolean;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Test suite configuration
|
|
283
|
+
*/
|
|
284
|
+
export interface SkillTestSuite {
|
|
285
|
+
tests: SkillTestCase[];
|
|
286
|
+
setup?: string;
|
|
287
|
+
teardown?: string;
|
|
288
|
+
fixtures?: Record<string, unknown>;
|
|
289
|
+
}
|
|
290
|
+
export interface SkillRuntime {
|
|
291
|
+
node?: string;
|
|
292
|
+
python?: string;
|
|
293
|
+
platforms?: ("linux" | "darwin" | "win32")[];
|
|
294
|
+
dependencies?: Record<string, string>;
|
|
295
|
+
}
|
|
296
|
+
export interface SkillConfig {
|
|
297
|
+
schema: Record<string, SkillParameter>;
|
|
298
|
+
defaults?: Record<string, unknown>;
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* How a skill executes. Omit => "local" (instruction loaded into the harness's
|
|
302
|
+
* context). "remote" => executed server-side over MCP/CLI; the agent gets
|
|
303
|
+
* results, never source.
|
|
304
|
+
*/
|
|
305
|
+
export interface SkillExecution {
|
|
306
|
+
mode: "local" | "remote";
|
|
307
|
+
/** remote only: where the implementation lives */
|
|
308
|
+
runtime?: "hosted-function" | "endpoint";
|
|
309
|
+
/** remote + hosted-function: the server-side handler reference */
|
|
310
|
+
handler?: string;
|
|
311
|
+
/** remote + endpoint: a BYO HTTPS endpoint */
|
|
312
|
+
endpoint?: string;
|
|
313
|
+
/** remote: how the agent reaches it (paid remote requires MCP or an auth-carrying CLI) */
|
|
314
|
+
transport?: "mcp" | "cli";
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* Commercial attribute, orthogonal to `execution`. Omit => free. This is the
|
|
318
|
+
* design doc's "license: free|paid" attribute, named `pricing` to avoid
|
|
319
|
+
* colliding with the existing SPDX `license` string field.
|
|
320
|
+
*/
|
|
321
|
+
export interface SkillPricing {
|
|
322
|
+
model: "free" | "paid";
|
|
323
|
+
/** paid only: price in USD cents */
|
|
324
|
+
priceUsd?: number;
|
|
325
|
+
/** paid only: billing period */
|
|
326
|
+
period?: "one-time" | "month" | "per-invocation";
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Complete skill manifest combining Anthropic spec + ask extensions
|
|
330
|
+
* This is used for registry storage and API responses
|
|
331
|
+
*/
|
|
332
|
+
export interface SkillManifest extends AnthropicSkillMetadata {
|
|
333
|
+
version?: string;
|
|
334
|
+
author?: string | {
|
|
335
|
+
name: string;
|
|
336
|
+
email?: string;
|
|
337
|
+
url?: string;
|
|
338
|
+
};
|
|
339
|
+
contributors?: Array<string | {
|
|
340
|
+
name: string;
|
|
341
|
+
email?: string;
|
|
342
|
+
url?: string;
|
|
343
|
+
}>;
|
|
344
|
+
organization?: string;
|
|
345
|
+
keywords?: string[];
|
|
346
|
+
categories?: string[];
|
|
347
|
+
license?: string;
|
|
348
|
+
repository?: string;
|
|
349
|
+
homepage?: string;
|
|
350
|
+
bugs?: string;
|
|
351
|
+
contract?: SkillContract;
|
|
352
|
+
capabilities?: CapabilityDeclaration[];
|
|
353
|
+
composition?: SkillComposition;
|
|
354
|
+
variants?: SkillVariant[];
|
|
355
|
+
tests?: SkillTestSuite;
|
|
356
|
+
runtime?: SkillRuntime;
|
|
357
|
+
config?: SkillConfig;
|
|
358
|
+
private?: boolean;
|
|
359
|
+
deprecated?: boolean;
|
|
360
|
+
deprecationMessage?: string;
|
|
361
|
+
successor?: string;
|
|
362
|
+
execution?: SkillExecution;
|
|
363
|
+
pricing?: SkillPricing;
|
|
364
|
+
/** List of bundled script files */
|
|
365
|
+
scripts?: string[];
|
|
366
|
+
/** List of bundled resource files */
|
|
367
|
+
resources?: string[];
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Conditional variant of skill instructions
|
|
371
|
+
*/
|
|
372
|
+
export interface SkillVariant {
|
|
373
|
+
name: string;
|
|
374
|
+
when: string;
|
|
375
|
+
instructions: string;
|
|
376
|
+
contract?: Partial<SkillContract>;
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Load levels for progressive disclosure
|
|
380
|
+
* Per Anthropic spec, skills load in stages to manage token usage
|
|
381
|
+
*/
|
|
382
|
+
export type LoadLevel = "metadata" | "instructions" | "full";
|
|
383
|
+
/**
|
|
384
|
+
* Content at each load level
|
|
385
|
+
*/
|
|
386
|
+
export interface ProgressiveContent {
|
|
387
|
+
/** Level 1: Always loaded at startup (~100 tokens) */
|
|
388
|
+
metadata: AnthropicSkillMetadata;
|
|
389
|
+
/** Level 2: Loaded when skill is triggered (<5K tokens) */
|
|
390
|
+
instructions?: string;
|
|
391
|
+
/** Level 3+: Loaded as needed via bash (unlimited) */
|
|
392
|
+
files?: SkillFile[];
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Validation result
|
|
396
|
+
*/
|
|
397
|
+
export interface ValidationResult {
|
|
398
|
+
valid: boolean;
|
|
399
|
+
errors: string[];
|
|
400
|
+
warnings: string[];
|
|
401
|
+
/** Whether the skill is Anthropic-compatible (only name+description required) */
|
|
402
|
+
anthropicCompatible: boolean;
|
|
403
|
+
/** Whether the skill has ask extensions */
|
|
404
|
+
hasAskExtensions: boolean;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Validate a skill manifest
|
|
408
|
+
*
|
|
409
|
+
* Per Anthropic spec, only `name` and `description` are required.
|
|
410
|
+
* All other fields are ask extensions and are optional.
|
|
411
|
+
*/
|
|
412
|
+
export declare function validateManifest(manifest: Partial<SkillManifest>): ValidationResult;
|
|
413
|
+
/**
|
|
414
|
+
* Validate only the Anthropic-required fields
|
|
415
|
+
* Use this for quick validation when importing external skills
|
|
416
|
+
*/
|
|
417
|
+
export declare function validateAnthropicCompatibility(name: string, description: string): {
|
|
418
|
+
valid: boolean;
|
|
419
|
+
errors: string[];
|
|
420
|
+
};
|
|
421
|
+
/**
|
|
422
|
+
* Parse SKILL.md frontmatter into manifest
|
|
423
|
+
*/
|
|
424
|
+
export declare function parseSkillFrontmatter(content: string): {
|
|
425
|
+
manifest: Partial<SkillManifest>;
|
|
426
|
+
body: string;
|
|
427
|
+
errors: string[];
|
|
428
|
+
};
|
|
429
|
+
/**
|
|
430
|
+
* Parse a skill directory into a SkillDirectory structure
|
|
431
|
+
*/
|
|
432
|
+
export declare function parseSkillDirectory(files: {
|
|
433
|
+
path: string;
|
|
434
|
+
content: string;
|
|
435
|
+
}[]): {
|
|
436
|
+
skill: SkillDirectory | null;
|
|
437
|
+
errors: string[];
|
|
438
|
+
};
|
|
439
|
+
export declare function isValidParameterType(type: string): type is ParameterType;
|
|
440
|
+
export declare function isValidCapability(cap: string): cap is SkillCapability;
|
|
441
|
+
export declare function isAnthropicCompatible(manifest: Partial<SkillManifest>): boolean;
|
|
442
|
+
/**
|
|
443
|
+
* Convert a legacy single-file skill to directory structure
|
|
444
|
+
*/
|
|
445
|
+
export declare function convertLegacySkill(legacyContent: string, skillName: string): {
|
|
446
|
+
files: {
|
|
447
|
+
path: string;
|
|
448
|
+
content: string;
|
|
449
|
+
}[];
|
|
450
|
+
errors: string[];
|
|
451
|
+
};
|
|
452
|
+
/**
|
|
453
|
+
* Merge skill.json extensions into manifest
|
|
454
|
+
*/
|
|
455
|
+
export declare function mergeExtensions(metadata: AnthropicSkillMetadata, extensions?: AskSkillExtensions): SkillManifest;
|
|
456
|
+
//# sourceMappingURL=skill-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-schema.d.ts","sourceRoot":"","sources":["../src/skill-schema.ts"],"names":[],"mappings":"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"}
|