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.
@@ -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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"}