agent-skills-ts-sdk 2.3.2 → 2.3.3
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/API.md +217 -0
- package/CHANGELOG.md +29 -0
- package/CODE_OF_CONDUCT.md +25 -0
- package/CONTRIBUTING.md +34 -0
- package/LICENSE +2 -2
- package/PRIVACY.md +15 -0
- package/README.md +38 -23
- package/SECURITY.md +13 -0
- package/SPECIFICATION.md +257 -0
- package/SUPPORT.md +24 -0
- package/dist/index.d.ts +41 -40
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6528 -5893
- package/dist/index.js.map +1 -1
- package/package.json +51 -17
package/SPECIFICATION.md
ADDED
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# AgentSkills Specification Reference
|
|
2
|
+
|
|
3
|
+
This document contains the complete AgentSkills specification for reference during development and maintenance.
|
|
4
|
+
|
|
5
|
+
**Official Specification**: https://agentskills.io/specification
|
|
6
|
+
**Last Updated**: 2026-01-14
|
|
7
|
+
**Reference Implementation**: https://github.com/agentskills/agentskills/tree/main/skills-ref
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## SKILL.md Format
|
|
12
|
+
|
|
13
|
+
A skill is a directory containing at minimum a `SKILL.md` file with YAML frontmatter:
|
|
14
|
+
|
|
15
|
+
```yaml
|
|
16
|
+
---
|
|
17
|
+
name: skill-name
|
|
18
|
+
description: A description of what this skill does and when to use it.
|
|
19
|
+
---
|
|
20
|
+
# Skill Instructions
|
|
21
|
+
|
|
22
|
+
Markdown content here...
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Field Specifications
|
|
26
|
+
|
|
27
|
+
### Required Fields
|
|
28
|
+
|
|
29
|
+
| Field | Type | Constraints |
|
|
30
|
+
| ------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
31
|
+
| `name` | string | Max 64 characters. Lowercase letters, numbers, and hyphens only. Must not start/end with hyphen or contain consecutive hyphens. Must match parent directory name. |
|
|
32
|
+
| `description` | string | Max 1024 characters. Non-empty. Should describe what the skill does and when to use it. |
|
|
33
|
+
|
|
34
|
+
### Optional Fields
|
|
35
|
+
|
|
36
|
+
| Field | Type | Constraints |
|
|
37
|
+
| --------------- | ------ | ---------------------------------------------------------------------------------------------------- |
|
|
38
|
+
| `license` | string | License name or reference to bundled license file. |
|
|
39
|
+
| `compatibility` | string | 1-500 characters when provided. Environment requirements (product, system packages, network access). |
|
|
40
|
+
| `metadata` | object | Arbitrary string key-value mapping for additional properties. |
|
|
41
|
+
| `allowed-tools` | string | Space-delimited list of pre-approved tools (Experimental). |
|
|
42
|
+
|
|
43
|
+
## Validation Rules
|
|
44
|
+
|
|
45
|
+
### Name Field
|
|
46
|
+
|
|
47
|
+
**Format**: Lowercase letters, digits, and hyphens only
|
|
48
|
+
**Max Length**: 64 characters
|
|
49
|
+
**Unicode**: NFKC normalized before validation
|
|
50
|
+
**i18n**: Supports Unicode letters (Chinese, Russian, etc.)
|
|
51
|
+
|
|
52
|
+
**Rules**:
|
|
53
|
+
|
|
54
|
+
- Must be lowercase
|
|
55
|
+
- Cannot start or end with hyphen
|
|
56
|
+
- Cannot contain consecutive hyphens (`--`)
|
|
57
|
+
- Must only contain letters, digits, and hyphens
|
|
58
|
+
|
|
59
|
+
**Valid Examples**:
|
|
60
|
+
|
|
61
|
+
```yaml
|
|
62
|
+
name: pdf-processing
|
|
63
|
+
name: data-analysis
|
|
64
|
+
name: code-review
|
|
65
|
+
name: 技能 # Chinese
|
|
66
|
+
name: мой-навык # Russian with hyphens
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Invalid Examples**:
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
name: PDF-Processing # uppercase not allowed
|
|
73
|
+
name: -pdf # cannot start with hyphen
|
|
74
|
+
name: pdf--processing # consecutive hyphens not allowed
|
|
75
|
+
name: my_skill # underscores not allowed
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Description Field
|
|
79
|
+
|
|
80
|
+
**Max Length**: 1024 characters
|
|
81
|
+
**Must**: Be non-empty string
|
|
82
|
+
|
|
83
|
+
**Good Example**:
|
|
84
|
+
|
|
85
|
+
```yaml
|
|
86
|
+
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents or when the user mentions PDFs, forms, or document extraction.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Poor Example**:
|
|
90
|
+
|
|
91
|
+
```yaml
|
|
92
|
+
description: Helps with PDFs. # Too vague
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Compatibility Field
|
|
96
|
+
|
|
97
|
+
**Length**: 1-500 characters when provided
|
|
98
|
+
**Optional**
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
compatibility: Designed for Claude Code (or similar products)
|
|
102
|
+
compatibility: Requires git, docker, jq, and access to the internet
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Metadata Field
|
|
106
|
+
|
|
107
|
+
**Type**: Object with string key-value pairs
|
|
108
|
+
**Optional**
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
metadata:
|
|
112
|
+
author: example-org
|
|
113
|
+
version: "1.0"
|
|
114
|
+
category: data-processing
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Allowed-Tools Field (Experimental)
|
|
118
|
+
|
|
119
|
+
**Type**: Space-delimited string
|
|
120
|
+
**Optional**
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
allowed-tools: Bash(git:*) Bash(jq:*) Read
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Progressive Disclosure
|
|
127
|
+
|
|
128
|
+
Skills use a three-tier loading strategy:
|
|
129
|
+
|
|
130
|
+
1. **Metadata** (~50-100 tokens): `name` and `description` fields loaded at startup
|
|
131
|
+
2. **Instructions** (~500-5000 tokens): Full `SKILL.md` body loaded when activated
|
|
132
|
+
3. **Resources** (as needed): Files in `scripts/`, `references/`, `assets/`, or other skill-local directories loaded on demand
|
|
133
|
+
|
|
134
|
+
## Directory Structure
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
skill-name/
|
|
138
|
+
├── SKILL.md # Required
|
|
139
|
+
├── scripts/ # Optional: executable code
|
|
140
|
+
│ ├── extract.py
|
|
141
|
+
│ └── process.sh
|
|
142
|
+
├── references/ # Optional: additional docs
|
|
143
|
+
│ └── REFERENCE.md
|
|
144
|
+
└── assets/ # Optional: static resources
|
|
145
|
+
├── template.json
|
|
146
|
+
└── schema.yaml
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Frontmatter Parsing Rules
|
|
150
|
+
|
|
151
|
+
1. File must start with `---`
|
|
152
|
+
2. Frontmatter must be closed with second `---`
|
|
153
|
+
3. YAML must be valid mapping (object)
|
|
154
|
+
4. Required fields (`name`, `description`) must be present
|
|
155
|
+
5. Required fields must be non-empty strings
|
|
156
|
+
6. Names and descriptions are trimmed
|
|
157
|
+
7. Metadata values are converted to strings
|
|
158
|
+
8. Optional fields must match their specified types
|
|
159
|
+
|
|
160
|
+
## Body Content
|
|
161
|
+
|
|
162
|
+
- Markdown content after frontmatter
|
|
163
|
+
- No format restrictions
|
|
164
|
+
- Recommended: Keep under 500 lines
|
|
165
|
+
- Support for relative file references
|
|
166
|
+
|
|
167
|
+
## Reference Implementation Behavior
|
|
168
|
+
|
|
169
|
+
The Python reference implementation (`skills-ref`) provides canonical behavior:
|
|
170
|
+
|
|
171
|
+
### Parser (`parser.py`)
|
|
172
|
+
|
|
173
|
+
- Finds `SKILL.md` (case-insensitive, prefers uppercase)
|
|
174
|
+
- Parses YAML frontmatter with `strictyaml`
|
|
175
|
+
- Validates required fields presence
|
|
176
|
+
- Trims and normalizes field values
|
|
177
|
+
- Converts metadata to string key-value pairs
|
|
178
|
+
|
|
179
|
+
### Validator (`validator.py`)
|
|
180
|
+
|
|
181
|
+
- NFKC Unicode normalization
|
|
182
|
+
- Name format validation (lowercase, hyphens, length)
|
|
183
|
+
- Description length validation
|
|
184
|
+
- Compatibility length validation
|
|
185
|
+
- Field presence validation
|
|
186
|
+
- Directory name matching (when applicable)
|
|
187
|
+
|
|
188
|
+
### Models (`models.py`)
|
|
189
|
+
|
|
190
|
+
- `SkillProperties` dataclass with required/optional fields
|
|
191
|
+
- `to_dict()` method excludes None values
|
|
192
|
+
- `allowed-tools` stored with hyphen (not underscore)
|
|
193
|
+
- Empty metadata dict omitted from dict output
|
|
194
|
+
|
|
195
|
+
## Testing Requirements
|
|
196
|
+
|
|
197
|
+
This implementation must pass equivalent tests to:
|
|
198
|
+
|
|
199
|
+
- `tests/test_parser.py` (29+ test cases)
|
|
200
|
+
- `tests/test_validator.py` (32+ test cases)
|
|
201
|
+
|
|
202
|
+
### Test Categories
|
|
203
|
+
|
|
204
|
+
1. **Frontmatter Parsing**
|
|
205
|
+
- Valid frontmatter
|
|
206
|
+
- Missing frontmatter
|
|
207
|
+
- Unclosed frontmatter
|
|
208
|
+
- Invalid YAML
|
|
209
|
+
- Non-dict frontmatter
|
|
210
|
+
|
|
211
|
+
2. **Required Fields**
|
|
212
|
+
- Missing name
|
|
213
|
+
- Missing description
|
|
214
|
+
- Empty name
|
|
215
|
+
- Empty description
|
|
216
|
+
|
|
217
|
+
3. **Name Validation**
|
|
218
|
+
- Uppercase rejection
|
|
219
|
+
- Length limits
|
|
220
|
+
- Leading/trailing hyphens
|
|
221
|
+
- Consecutive hyphens
|
|
222
|
+
- Invalid characters (underscores, etc.)
|
|
223
|
+
- i18n support (Chinese, Russian)
|
|
224
|
+
- Unicode normalization (NFKC)
|
|
225
|
+
|
|
226
|
+
4. **Description Validation**
|
|
227
|
+
- Length limits (1024 chars)
|
|
228
|
+
|
|
229
|
+
5. **Optional Fields**
|
|
230
|
+
- Compatibility length (500 chars)
|
|
231
|
+
- Metadata parsing
|
|
232
|
+
- Allowed-tools parsing
|
|
233
|
+
- License field
|
|
234
|
+
|
|
235
|
+
6. **Field Restrictions**
|
|
236
|
+
- Unknown field rejection
|
|
237
|
+
|
|
238
|
+
## Compliance Checklist
|
|
239
|
+
|
|
240
|
+
- [ ] Parse YAML frontmatter correctly
|
|
241
|
+
- [ ] Validate required fields (name, description)
|
|
242
|
+
- [ ] Validate name format (lowercase, hyphens, length)
|
|
243
|
+
- [ ] Validate description length (1024 chars)
|
|
244
|
+
- [ ] Validate compatibility length (500 chars)
|
|
245
|
+
- [ ] Support optional fields (license, metadata, allowed-tools)
|
|
246
|
+
- [ ] Perform NFKC Unicode normalization
|
|
247
|
+
- [ ] Support i18n characters in names
|
|
248
|
+
- [ ] Reject unknown frontmatter fields
|
|
249
|
+
- [ ] Extract body content (strip frontmatter)
|
|
250
|
+
- [ ] Trim and normalize field values
|
|
251
|
+
- [ ] Convert metadata to string key-value pairs
|
|
252
|
+
- [ ] Handle case-insensitive SKILL.md filename
|
|
253
|
+
- [ ] Provide clear error messages
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
**Note**: This specification must be kept in sync with https://agentskills.io/specification. Check for updates periodically.
|
package/SUPPORT.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Support
|
|
2
|
+
|
|
3
|
+
## Questions And Usage Help
|
|
4
|
+
|
|
5
|
+
Use GitHub Issues for reproducible bugs:
|
|
6
|
+
|
|
7
|
+
https://github.com/WebMCP-org/agent-skills-ts-sdk/issues
|
|
8
|
+
|
|
9
|
+
Include:
|
|
10
|
+
|
|
11
|
+
- Package version
|
|
12
|
+
- Node.js version
|
|
13
|
+
- Package manager and version
|
|
14
|
+
- Runtime or bundler environment
|
|
15
|
+
- Minimal reproduction or failing test when possible
|
|
16
|
+
|
|
17
|
+
## Security Issues
|
|
18
|
+
|
|
19
|
+
Do not open public issues for suspected vulnerabilities. Follow `SECURITY.md`.
|
|
20
|
+
|
|
21
|
+
## Privacy Issues
|
|
22
|
+
|
|
23
|
+
For privacy-sensitive reports, follow `SECURITY.md` and include the affected
|
|
24
|
+
version, runtime configuration, and the input shape that triggered the issue.
|
package/dist/index.d.ts
CHANGED
|
@@ -78,9 +78,9 @@ interface SkillResource {
|
|
|
78
78
|
*/
|
|
79
79
|
interface ResolvedSkill {
|
|
80
80
|
/** Skill identifier from frontmatter. */
|
|
81
|
-
name: SkillFrontmatter[
|
|
81
|
+
name: SkillFrontmatter["name"];
|
|
82
82
|
/** Skill description from frontmatter. */
|
|
83
|
-
description: SkillFrontmatter[
|
|
83
|
+
description: SkillFrontmatter["description"];
|
|
84
84
|
/** Tier-2 instruction body from SKILL.md. */
|
|
85
85
|
body: SkillBody;
|
|
86
86
|
/** Tier-3 resources associated with this skill. */
|
|
@@ -201,7 +201,7 @@ interface SkillFrontmatter<TMetadata extends SkillMetadataMap = SkillMetadataMap
|
|
|
201
201
|
/** Optional host/runtime compatibility notes. */
|
|
202
202
|
compatibility?: string;
|
|
203
203
|
/** Optional space-delimited allowed-tools declaration. */
|
|
204
|
-
|
|
204
|
+
"allowed-tools"?: SkillAllowedTools;
|
|
205
205
|
/** Optional string metadata map. */
|
|
206
206
|
metadata?: TMetadata;
|
|
207
207
|
}
|
|
@@ -258,17 +258,17 @@ interface SkillParseResult<TMetadata extends SkillMetadataMap = SkillMetadataMap
|
|
|
258
258
|
*/
|
|
259
259
|
interface SkillProperties<TMetadata extends SkillMetadataMap = SkillMetadataMap> {
|
|
260
260
|
/** Required skill identifier. */
|
|
261
|
-
name: SkillFrontmatter<TMetadata>[
|
|
261
|
+
name: SkillFrontmatter<TMetadata>["name"];
|
|
262
262
|
/** Required skill description. */
|
|
263
|
-
description: SkillFrontmatter<TMetadata>[
|
|
263
|
+
description: SkillFrontmatter<TMetadata>["description"];
|
|
264
264
|
/** Optional license declaration. */
|
|
265
|
-
license?: SkillFrontmatter<TMetadata>[
|
|
265
|
+
license?: SkillFrontmatter<TMetadata>["license"];
|
|
266
266
|
/** Optional host/runtime compatibility notes. */
|
|
267
|
-
compatibility?: SkillFrontmatter<TMetadata>[
|
|
267
|
+
compatibility?: SkillFrontmatter<TMetadata>["compatibility"];
|
|
268
268
|
/** Optional space-delimited allowed-tools declaration. */
|
|
269
|
-
allowedTools?: SkillFrontmatter<TMetadata>[
|
|
269
|
+
allowedTools?: SkillFrontmatter<TMetadata>["allowed-tools"];
|
|
270
270
|
/** Optional string metadata map. */
|
|
271
|
-
metadata?: SkillFrontmatter<TMetadata>[
|
|
271
|
+
metadata?: SkillFrontmatter<TMetadata>["metadata"];
|
|
272
272
|
}
|
|
273
273
|
/**
|
|
274
274
|
* Convert SkillProperties to dictionary, excluding null/undefined values.
|
|
@@ -348,17 +348,17 @@ interface SkillMetadata<TMetadata extends SkillMetadataMap = SkillMetadataMap> {
|
|
|
348
348
|
/** Host-owned unique skill id. */
|
|
349
349
|
id: SkillId;
|
|
350
350
|
/** Skill identifier. */
|
|
351
|
-
name: SkillProperties<TMetadata>[
|
|
351
|
+
name: SkillProperties<TMetadata>["name"];
|
|
352
352
|
/** Skill description. */
|
|
353
|
-
description: SkillProperties<TMetadata>[
|
|
353
|
+
description: SkillProperties<TMetadata>["description"];
|
|
354
354
|
/** Optional license declaration. */
|
|
355
|
-
license?: SkillProperties<TMetadata>[
|
|
355
|
+
license?: SkillProperties<TMetadata>["license"];
|
|
356
356
|
/** Optional host/runtime compatibility notes. */
|
|
357
|
-
compatibility?: SkillProperties<TMetadata>[
|
|
357
|
+
compatibility?: SkillProperties<TMetadata>["compatibility"];
|
|
358
358
|
/** Optional space-delimited allowed-tools declaration. */
|
|
359
|
-
allowedTools?: SkillProperties<TMetadata>[
|
|
359
|
+
allowedTools?: SkillProperties<TMetadata>["allowedTools"];
|
|
360
360
|
/** Optional string metadata map. */
|
|
361
|
-
metadata?: SkillProperties<TMetadata>[
|
|
361
|
+
metadata?: SkillProperties<TMetadata>["metadata"];
|
|
362
362
|
/** Estimated token size for metadata-only tier. */
|
|
363
363
|
metadataTokens: SkillTokenCount;
|
|
364
364
|
/** Estimated token size for full skill content. */
|
|
@@ -370,20 +370,21 @@ interface SkillMetadata<TMetadata extends SkillMetadataMap = SkillMetadataMap> {
|
|
|
370
370
|
}
|
|
371
371
|
//#endregion
|
|
372
372
|
//#region src/disclosure.d.ts
|
|
373
|
+
declare const ERROR_CODE_INVALID_ARGUMENT = "INVALID_ARGUMENT";
|
|
373
374
|
declare const ERROR_CODE_SKILL_NOT_FOUND = "SKILL_NOT_FOUND";
|
|
374
375
|
declare const ERROR_CODE_RESOURCE_NOT_FOUND = "RESOURCE_NOT_FOUND";
|
|
375
376
|
/**
|
|
376
377
|
* Stable error codes for progressive disclosure read failures.
|
|
377
378
|
*/
|
|
378
|
-
type SkillReadErrorCode = typeof ERROR_CODE_SKILL_NOT_FOUND | typeof ERROR_CODE_RESOURCE_NOT_FOUND;
|
|
379
|
+
type SkillReadErrorCode = typeof ERROR_CODE_INVALID_ARGUMENT | typeof ERROR_CODE_SKILL_NOT_FOUND | typeof ERROR_CODE_RESOURCE_NOT_FOUND;
|
|
379
380
|
/**
|
|
380
381
|
* Tool call arguments for skill progressive disclosure reads.
|
|
381
382
|
*/
|
|
382
383
|
interface SkillReadArgs {
|
|
383
384
|
/** Skill identifier from the current skill set. */
|
|
384
|
-
name: ResolvedSkill[
|
|
385
|
+
name: ResolvedSkill["name"];
|
|
385
386
|
/** Optional resource identifier within the selected skill. */
|
|
386
|
-
resource?: SkillResource[
|
|
387
|
+
resource?: SkillResource["name"];
|
|
387
388
|
}
|
|
388
389
|
/**
|
|
389
390
|
* Successful result from a skill read request.
|
|
@@ -392,7 +393,7 @@ interface SkillReadResult {
|
|
|
392
393
|
/** Indicates that the read resolved successfully. */
|
|
393
394
|
ok: true;
|
|
394
395
|
/** Skill body or resource content returned by the read. */
|
|
395
|
-
content: SkillBody
|
|
396
|
+
content: SkillBody;
|
|
396
397
|
}
|
|
397
398
|
/**
|
|
398
399
|
* Machine-readable read failure for hosts and UIs.
|
|
@@ -422,9 +423,9 @@ interface ReadToolSchemaOptions {
|
|
|
422
423
|
*/
|
|
423
424
|
interface ReadToolSchema {
|
|
424
425
|
/** Tool name for the declaration payload. */
|
|
425
|
-
name: NonNullable<ReadToolSchemaOptions[
|
|
426
|
+
name: NonNullable<ReadToolSchemaOptions["toolName"]>;
|
|
426
427
|
/** Human-readable tool description. */
|
|
427
|
-
description: NonNullable<ReadToolSchemaOptions[
|
|
428
|
+
description: NonNullable<ReadToolSchemaOptions["description"]>;
|
|
428
429
|
/** JSON Schema object describing accepted arguments. */
|
|
429
430
|
parametersJsonSchema: object;
|
|
430
431
|
}
|
|
@@ -435,7 +436,7 @@ interface ReadToolSchema {
|
|
|
435
436
|
* - `name` + `resource`: returns resource content (tier 3)
|
|
436
437
|
*
|
|
437
438
|
* @param skills - Fully resolved in-memory skills.
|
|
438
|
-
* @param args - Read request arguments.
|
|
439
|
+
* @param args - Read request arguments from a tool call or trusted caller.
|
|
439
440
|
* @returns Structured success or failure payload.
|
|
440
441
|
*/
|
|
441
442
|
declare function handleSkillRead(skills: ReadonlyArray<ResolvedSkill>, args: SkillReadArgs): SkillReadResult | SkillReadError;
|
|
@@ -449,7 +450,7 @@ declare function handleSkillRead(skills: ReadonlyArray<ResolvedSkill>, args: Ski
|
|
|
449
450
|
* @param options - Optional tool naming and description overrides.
|
|
450
451
|
* @returns Tool declaration object with `parametersJsonSchema`.
|
|
451
452
|
*/
|
|
452
|
-
declare function toReadToolSchema(skills: ReadonlyArray<Pick<ResolvedSkill,
|
|
453
|
+
declare function toReadToolSchema(skills: ReadonlyArray<Pick<ResolvedSkill, "name">>, options?: ReadToolSchemaOptions): ReadToolSchema;
|
|
453
454
|
//#endregion
|
|
454
455
|
//#region src/errors.d.ts
|
|
455
456
|
/**
|
|
@@ -517,7 +518,7 @@ declare const INPUT_MODE_EMBEDDED = "embedded";
|
|
|
517
518
|
* @see https://agentskills.io/specification
|
|
518
519
|
* @see https://github.com/agentskills/agentskills/blob/main/skills-ref/src/skills_ref/parser.py
|
|
519
520
|
*/
|
|
520
|
-
declare function findSkillMdFile<T extends Pick<SkillContentEntry,
|
|
521
|
+
declare function findSkillMdFile<T extends Pick<SkillContentEntry, "name">>(files: Iterable<T>): T | null;
|
|
521
522
|
/**
|
|
522
523
|
* Options for `readSkillProperties`.
|
|
523
524
|
*/
|
|
@@ -587,14 +588,14 @@ type ParseFrontmatterInputMode = typeof INPUT_MODE_STRICT | typeof INPUT_MODE_EM
|
|
|
587
588
|
*/
|
|
588
589
|
interface ResourceLink {
|
|
589
590
|
/** Display identifier from markdown link text. */
|
|
590
|
-
name: SkillResource[
|
|
591
|
-
/** Canonical resource path under
|
|
592
|
-
path: SkillResource[
|
|
591
|
+
name: SkillResource["name"];
|
|
592
|
+
/** Canonical resource path under an observed skill-local resource directory. */
|
|
593
|
+
path: SkillResource["path"];
|
|
593
594
|
}
|
|
594
595
|
/**
|
|
595
596
|
* Extracts tier-3 resource links from skill body markdown.
|
|
596
597
|
*
|
|
597
|
-
* Only links to
|
|
598
|
+
* Only links to observed skill-local resource directories are returned.
|
|
598
599
|
* External URLs, anchors, and path traversal references are ignored.
|
|
599
600
|
* Leading `./` is accepted and normalized away.
|
|
600
601
|
*
|
|
@@ -723,7 +724,7 @@ declare const ALLOWED_FIELDS: Set<string>;
|
|
|
723
724
|
*/
|
|
724
725
|
interface ValidateSkillPropertiesOptions {
|
|
725
726
|
/** Expected skill name (for example, directory or slug match). */
|
|
726
|
-
expectedName?: SkillProperties[
|
|
727
|
+
expectedName?: SkillProperties["name"];
|
|
727
728
|
}
|
|
728
729
|
/**
|
|
729
730
|
* Validate skill properties.
|
|
@@ -787,7 +788,7 @@ interface SkillValidationOptions {
|
|
|
787
788
|
/** Optional location label included in error messages. */
|
|
788
789
|
location?: string;
|
|
789
790
|
/** Expected skill name (for example, directory or slug match). */
|
|
790
|
-
expectedName?: ValidateSkillPropertiesOptions[
|
|
791
|
+
expectedName?: ValidateSkillPropertiesOptions["expectedName"];
|
|
791
792
|
/** Whether the host path exists. */
|
|
792
793
|
exists?: boolean;
|
|
793
794
|
/** Whether the host path is a directory. */
|
|
@@ -822,7 +823,7 @@ declare function validateSkillEntries(entries: Iterable<SkillContentEntry> | nul
|
|
|
822
823
|
* ```
|
|
823
824
|
* @see https://agentskills.io/specification
|
|
824
825
|
*/
|
|
825
|
-
type SkillPatchOperationType =
|
|
826
|
+
type SkillPatchOperationType = "replace" | "insert" | "delete";
|
|
826
827
|
/**
|
|
827
828
|
* Replace operation that swaps matched text with new text.
|
|
828
829
|
*
|
|
@@ -837,7 +838,7 @@ type SkillPatchOperationType = 'replace' | 'insert' | 'delete';
|
|
|
837
838
|
* @see https://agentskills.io/specification
|
|
838
839
|
*/
|
|
839
840
|
interface SkillPatchReplaceOperation {
|
|
840
|
-
type:
|
|
841
|
+
type: "replace";
|
|
841
842
|
before: string;
|
|
842
843
|
after: string;
|
|
843
844
|
expectedMatches?: number;
|
|
@@ -857,10 +858,10 @@ interface SkillPatchReplaceOperation {
|
|
|
857
858
|
* @see https://agentskills.io/specification
|
|
858
859
|
*/
|
|
859
860
|
interface SkillPatchInsertOperation {
|
|
860
|
-
type:
|
|
861
|
+
type: "insert";
|
|
861
862
|
anchor: string;
|
|
862
863
|
text: string;
|
|
863
|
-
position?:
|
|
864
|
+
position?: "before" | "after";
|
|
864
865
|
expectedMatches?: number;
|
|
865
866
|
}
|
|
866
867
|
/**
|
|
@@ -873,7 +874,7 @@ interface SkillPatchInsertOperation {
|
|
|
873
874
|
* @see https://agentskills.io/specification
|
|
874
875
|
*/
|
|
875
876
|
interface SkillPatchDeleteOperation {
|
|
876
|
-
type:
|
|
877
|
+
type: "delete";
|
|
877
878
|
before: string;
|
|
878
879
|
expectedMatches?: number;
|
|
879
880
|
}
|
|
@@ -909,7 +910,7 @@ interface SkillPatch {
|
|
|
909
910
|
* ```
|
|
910
911
|
* @see https://agentskills.io/specification
|
|
911
912
|
*/
|
|
912
|
-
type SkillPatchIssueCode =
|
|
913
|
+
type SkillPatchIssueCode = "PATCH_NOT_OBJECT" | "PATCH_INVALID_VERSION" | "PATCH_MISSING_OPERATIONS" | "OPERATION_INVALID" | "OPERATION_TARGET_EMPTY" | "OPERATION_INVALID_POSITION" | "OPERATION_INVALID_EXPECTED_MATCHES" | "OPERATION_TARGET_NOT_FOUND" | "OPERATION_TARGET_AMBIGUOUS" | "OPERATION_MATCH_COUNT_MISMATCH" | "SKILL_INVALID";
|
|
913
914
|
/**
|
|
914
915
|
* Structured issue detail for patch failures.
|
|
915
916
|
*
|
|
@@ -995,7 +996,7 @@ interface SkillPatchCreateOptions {
|
|
|
995
996
|
* ```
|
|
996
997
|
* @see https://agentskills.io/specification
|
|
997
998
|
*/
|
|
998
|
-
type SkillDiffSegmentType =
|
|
999
|
+
type SkillDiffSegmentType = "equal" | "insert" | "delete";
|
|
999
1000
|
/**
|
|
1000
1001
|
* Consecutive lines sharing the same diff operation type.
|
|
1001
1002
|
*
|
|
@@ -1093,7 +1094,7 @@ declare function createSkillPatch(base: SkillContent, updated: SkillContent, opt
|
|
|
1093
1094
|
* @see https://agentskills.io/specification
|
|
1094
1095
|
* @see https://github.com/agentskills/agentskills/blob/main/skills-ref/src/skills_ref/prompt.py
|
|
1095
1096
|
*/
|
|
1096
|
-
interface SkillPromptEntry extends Pick<ResolvedSkill,
|
|
1097
|
+
interface SkillPromptEntry extends Pick<ResolvedSkill, "name" | "description" | "location"> {}
|
|
1097
1098
|
/**
|
|
1098
1099
|
* SKILL.md source data for prompt generation.
|
|
1099
1100
|
*
|
|
@@ -1104,14 +1105,14 @@ interface SkillPromptSource {
|
|
|
1104
1105
|
/** Raw SKILL.md content to parse for prompt metadata. */
|
|
1105
1106
|
content: SkillContent;
|
|
1106
1107
|
/** Optional source location label for prompt output. */
|
|
1107
|
-
location?: SkillPromptEntry[
|
|
1108
|
+
location?: SkillPromptEntry["location"];
|
|
1108
1109
|
}
|
|
1109
1110
|
/**
|
|
1110
1111
|
* Prompt entry for resource-aware progressive disclosure hosts.
|
|
1111
1112
|
*/
|
|
1112
1113
|
interface DisclosurePromptEntry extends SkillPromptEntry {
|
|
1113
1114
|
/** Optional tier-3 resource names exposed as prompt hints. */
|
|
1114
|
-
resources?: Array<SkillResource[
|
|
1115
|
+
resources?: Array<SkillResource["name"]>;
|
|
1115
1116
|
}
|
|
1116
1117
|
/**
|
|
1117
1118
|
* Options for disclosure protocol instruction text generation.
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/models.ts","../src/disclosure.ts","../src/errors.ts","../src/parser.ts","../src/validator.ts","../src/patch.ts","../src/prompt.ts","../src/utils/token-estimator.ts","../src/utils/unicode.ts"],"mappings":";;AAgBA;;;;;AAWA;;;;;AAWA;;;;AAXA,KAXY,OAAA;AAwCZ;;;;;;;;;AAAA,KA7BY,YAAA;;;;;;;;;;KAWA,SAAA;;;;;;;;;;AAkEZ;;;;;AAWA;;UA3DiB,aAAA;EA2DY;EAzD3B,IAAA;EAoEU;EAlEV,IAAA;;EAEA,OAAA;AAAA;AA2EF;;;;;AAWA;;;;;AAWA;;;;;;;AAtBA,UAvDiB,aAAA;EAiFM;EA/ErB,IAAA,EAAM,gBAAA;EAoGE;EAlGR,WAAA,EAAa,gBAAA;EAkGL;EAhGR,IAAA,EAAM,SAAA;EA2GI;EAzGV,SAAA,EAAW,aAAA;;EAEX,QAAA;AAAA;AAyHF;;;;;;;;;AAAA,KA7GY,gBAAA,GAAmB,MAAA;;;;;;;;;;KAWnB,iBAAA;;;AA6HZ;;;;;;;KAlHY,eAAA;;;;;;;;;;KAWA,UAAA;;;AA4HZ;;;;;;;KAjHY,SAAA;;;;;;;;;;UAWK,iBAAA;EA0GA;EAxGf,IAAA;EA0He;EAxHf,OAAA,EAAS,YAAA;AAAA;;;;;;;;;;;;cAcE,sBAAA;;;;;;;;;;KAkBD,mBAAA,WAA8B,sBAAA;;;;;;;;;;;;;;;;;UAkBzB,gBAAA,mBAAmC,gBAAA,GAAmB,gBAAA;EA0GvD;EAxGd,IAAA;EAwGmC;EAtGnC,WAAA;EAsGyE;EApGzE,OAAA;EAqGO;EAnGP,aAAA;EAoGC;EAlGD,eAAA,GAAkB,iBAAA;EAkGD;EAhGjB,QAAA,GAAW,SAAA;AAAA;;;;;;;;;AAyIb;;;;UA1HiB,2BAAA,mBACG,gBAAA,GAAmB,gBAAA;EA2HjC;EAxHJ,QAAA,EAAU,gBAAA,CAAiB,SAAA;EA4HC;EA1H5B,IAAA,EAAM,SAAA;AAAA;;;;;;;;;;;;;UAeS,gBAAA,mBAAmC,gBAAA,GAAmB,gBAAA;EA2GzC;EAzG5B,UAAA,EAAY,eAAA,CAAgB,SAAA;EA2GtB;EAzGN,IAAA,EAAM,SAAA;AAAA;;;;;AAsIR;;;;;;;;;;;UApHiB,eAAA,mBAAkC,gBAAA,GAAmB,gBAAA;EA8HpC;EA5HhC,IAAA,EAAM,gBAAA,CAAiB,SAAA;EA8HQ;EA5H/B,WAAA,EAAa,gBAAA,CAAiB,SAAA;EA8HH;EA5H3B,OAAA,GAAU,gBAAA,CAAiB,SAAA;EA8HX;EA5HhB,aAAA,GAAgB,gBAAA,CAAiB,SAAA;EAgItB;EA9HX,YAAA,GAAe,gBAAA,CAAiB,SAAA;EAgIX;EA9HrB,QAAA,GAAW,gBAAA,CAAiB,SAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;iBAwBd,qBAAA,mBAAwC,gBAAA,GAAmB,gBAAA,CAAA,CACzE,KAAA,EAAO,eAAA,CAAgB,SAAA,IACtB,gBAAA,CAAiB,SAAA;;;;;;;;;;;;;;ACjUuD;;;UD0W1D,SAAA,mBAA4B,gBAAA,GAAmB,gBAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/models.ts","../src/disclosure.ts","../src/errors.ts","../src/parser.ts","../src/validator.ts","../src/patch.ts","../src/prompt.ts","../src/utils/token-estimator.ts","../src/utils/unicode.ts"],"mappings":"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"}
|