agent-skills-ts-sdk 2.2.0 → 2.3.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 +44 -42
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +403 -390
- package/dist/index.js.map +1 -1
- package/package.json +19 -19
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ pnpm add agent-skills-ts-sdk
|
|
|
26
26
|
### Parsing SKILL.md
|
|
27
27
|
|
|
28
28
|
```typescript
|
|
29
|
-
import { parseSkillContent, validateSkillContent } from
|
|
29
|
+
import { parseSkillContent, validateSkillContent } from 'agent-skills-ts-sdk';
|
|
30
30
|
|
|
31
31
|
const content = `---
|
|
32
32
|
name: my-skill
|
|
@@ -34,13 +34,13 @@ description: A test skill
|
|
|
34
34
|
---
|
|
35
35
|
# My Skill
|
|
36
36
|
|
|
37
|
-
Instructions here
|
|
37
|
+
Instructions here.`;
|
|
38
38
|
|
|
39
|
-
const { properties, body } = parseSkillContent(content)
|
|
39
|
+
const { properties, body } = parseSkillContent(content);
|
|
40
40
|
|
|
41
|
-
const errors = validateSkillContent(content)
|
|
41
|
+
const errors = validateSkillContent(content);
|
|
42
42
|
if (errors.length > 0) {
|
|
43
|
-
console.error(
|
|
43
|
+
console.error('Validation errors:', errors);
|
|
44
44
|
}
|
|
45
45
|
```
|
|
46
46
|
|
|
@@ -49,49 +49,41 @@ newline), opt in explicitly:
|
|
|
49
49
|
|
|
50
50
|
```typescript
|
|
51
51
|
const { properties, body } = parseSkillContent(contentFromDom, {
|
|
52
|
-
inputMode:
|
|
53
|
-
})
|
|
52
|
+
inputMode: 'embedded',
|
|
53
|
+
});
|
|
54
54
|
```
|
|
55
55
|
|
|
56
56
|
### Validation
|
|
57
57
|
|
|
58
58
|
```typescript
|
|
59
|
-
import { validateSkillProperties } from
|
|
59
|
+
import { validateSkillProperties } from 'agent-skills-ts-sdk';
|
|
60
60
|
|
|
61
61
|
const properties = {
|
|
62
|
-
name:
|
|
63
|
-
description:
|
|
64
|
-
}
|
|
62
|
+
name: 'my-skill',
|
|
63
|
+
description: 'A test skill',
|
|
64
|
+
};
|
|
65
65
|
|
|
66
|
-
const errors = validateSkillProperties(properties)
|
|
66
|
+
const errors = validateSkillProperties(properties);
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
### In-memory file lists (Durable Objects or other non-filesystem hosts)
|
|
70
70
|
|
|
71
71
|
```typescript
|
|
72
|
-
import {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
const
|
|
79
|
-
{ name: "SKILL.md", content: skillMarkdown }
|
|
80
|
-
]
|
|
81
|
-
|
|
82
|
-
const entry = findSkillMdFile(files)
|
|
83
|
-
const properties = readSkillProperties(files)
|
|
84
|
-
const errors = validateSkillEntries(files, { expectedName: properties.name })
|
|
72
|
+
import { findSkillMdFile, readSkillProperties, validateSkillEntries } from 'agent-skills-ts-sdk';
|
|
73
|
+
|
|
74
|
+
const files = [{ name: 'SKILL.md', content: skillMarkdown }];
|
|
75
|
+
|
|
76
|
+
const entry = findSkillMdFile(files);
|
|
77
|
+
const properties = readSkillProperties(files);
|
|
78
|
+
const errors = validateSkillEntries(files, { expectedName: properties.name });
|
|
85
79
|
```
|
|
86
80
|
|
|
87
81
|
### Prompt generation
|
|
88
82
|
|
|
89
83
|
```typescript
|
|
90
|
-
import { toPrompt } from
|
|
84
|
+
import { toPrompt } from 'agent-skills-ts-sdk';
|
|
91
85
|
|
|
92
|
-
const promptBlock = toPrompt([
|
|
93
|
-
{ content: skillMarkdown, location: "skills/my-skill/SKILL.md" }
|
|
94
|
-
])
|
|
86
|
+
const promptBlock = toPrompt([{ content: skillMarkdown, location: 'skills/my-skill/SKILL.md' }]);
|
|
95
87
|
```
|
|
96
88
|
|
|
97
89
|
### Progressive disclosure helpers
|
|
@@ -101,36 +93,37 @@ import {
|
|
|
101
93
|
handleSkillRead,
|
|
102
94
|
toDisclosureInstructions,
|
|
103
95
|
toDisclosurePrompt,
|
|
104
|
-
toReadToolSchema
|
|
105
|
-
} from
|
|
96
|
+
toReadToolSchema,
|
|
97
|
+
} from 'agent-skills-ts-sdk';
|
|
106
98
|
|
|
107
|
-
const instructions = toDisclosureInstructions({ toolName:
|
|
99
|
+
const instructions = toDisclosureInstructions({ toolName: 'read_site_context' });
|
|
108
100
|
const skillsXml = toDisclosurePrompt([
|
|
109
|
-
{ name:
|
|
110
|
-
])
|
|
111
|
-
const readTool = toReadToolSchema([{ name:
|
|
112
|
-
toolName:
|
|
113
|
-
})
|
|
101
|
+
{ name: 'pizza-maker', description: 'Interactive pizza builder', resources: ['build-pizza'] },
|
|
102
|
+
]);
|
|
103
|
+
const readTool = toReadToolSchema([{ name: 'pizza-maker' }], {
|
|
104
|
+
toolName: 'read_site_context',
|
|
105
|
+
});
|
|
114
106
|
```
|
|
115
107
|
|
|
116
108
|
### Diff + patch
|
|
117
109
|
|
|
118
110
|
```typescript
|
|
119
|
-
import { createSkillPatch, applySkillPatch } from
|
|
111
|
+
import { createSkillPatch, applySkillPatch } from 'agent-skills-ts-sdk';
|
|
120
112
|
|
|
121
|
-
const patch = createSkillPatch(oldContent, newContent)
|
|
122
|
-
const result = applySkillPatch(oldContent, patch)
|
|
113
|
+
const patch = createSkillPatch(oldContent, newContent);
|
|
114
|
+
const result = applySkillPatch(oldContent, patch);
|
|
123
115
|
|
|
124
116
|
if (!result.ok) {
|
|
125
|
-
console.error(result.errors)
|
|
117
|
+
console.error(result.errors);
|
|
126
118
|
} else {
|
|
127
|
-
console.log(result.content)
|
|
119
|
+
console.log(result.content);
|
|
128
120
|
}
|
|
129
121
|
```
|
|
130
122
|
|
|
131
123
|
## Library Guide
|
|
132
124
|
|
|
133
125
|
### Parsing
|
|
126
|
+
|
|
134
127
|
- `parseFrontmatter` parses YAML frontmatter into the spec’s hyphenated keys, trims required fields, and preserves metadata scalars as strings.
|
|
135
128
|
- `parseSkillContent` returns both the markdown body and a JS-friendly `SkillProperties` shape.
|
|
136
129
|
- `frontmatterToProperties` converts `SkillFrontmatter` to `SkillProperties` without re-parsing.
|
|
@@ -138,11 +131,13 @@ if (!result.ok) {
|
|
|
138
131
|
- `findSkillMdFile` and `readSkillProperties` mirror the reference library’s file lookup without assuming a filesystem.
|
|
139
132
|
|
|
140
133
|
### Validation
|
|
134
|
+
|
|
141
135
|
- `validateSkillProperties` enforces the name/description/compatibility rules and optionally checks an expected name.
|
|
142
136
|
- `validateSkillContent` validates a single SKILL.md string, including unknown frontmatter fields.
|
|
143
137
|
- `validateSkillEntries` mirrors `skills-ref validate` for in-memory file lists while letting the host surface path and directory state.
|
|
144
138
|
|
|
145
139
|
### Prompt utilities
|
|
140
|
+
|
|
146
141
|
- `toPrompt` builds the `<available_skills>` XML block from parsed entries or raw SKILL.md content.
|
|
147
142
|
- `toDisclosurePrompt` optionally includes resource names for tier-3 hints.
|
|
148
143
|
- `toDisclosureInstructions` generates canonical read-protocol instruction text.
|
|
@@ -150,16 +145,19 @@ if (!result.ok) {
|
|
|
150
145
|
- `handleSkillRead` handles 2-level read requests in memory (overview vs specific resource).
|
|
151
146
|
|
|
152
147
|
### Diff + patch
|
|
148
|
+
|
|
153
149
|
- `diffSkillContent` returns a line-based diff for display or patch construction.
|
|
154
150
|
- `createSkillPatch` builds a contextual patch from two SKILL.md strings.
|
|
155
151
|
- `applySkillPatch` applies patch operations and returns structured errors when a patch cannot be applied or yields invalid SKILL.md.
|
|
156
152
|
- `validateSkillPatch` performs runtime validation for model-provided patch payloads.
|
|
157
153
|
|
|
158
154
|
### Utilities
|
|
155
|
+
|
|
159
156
|
- `normalizeNFKC` matches Python’s `unicodedata.normalize("NFKC", ...)` for name validation.
|
|
160
157
|
- `estimateTokens` provides a conservative heuristic for context budgeting.
|
|
161
158
|
|
|
162
159
|
### Types
|
|
160
|
+
|
|
163
161
|
- `SkillFrontmatter` matches spec keys (`allowed-tools`), `SkillProperties` is the camel-cased JS view.
|
|
164
162
|
- `SkillFile` and `SkillMetadata` are storage-friendly wrappers used by hosts that persist skills.
|
|
165
163
|
|
|
@@ -171,16 +169,19 @@ Directory-level checks (missing paths, non-directories, name-to-location match)
|
|
|
171
169
|
are surfaced through `validateSkillEntries` so hosts can supply their own storage model.
|
|
172
170
|
|
|
173
171
|
### Required Fields
|
|
172
|
+
|
|
174
173
|
- `name` (max 64 chars, lowercase, hyphens only)
|
|
175
174
|
- `description` (max 1024 chars)
|
|
176
175
|
|
|
177
176
|
### Optional Fields
|
|
177
|
+
|
|
178
178
|
- `license`
|
|
179
179
|
- `compatibility` (max 500 chars)
|
|
180
180
|
- `metadata` (key-value pairs)
|
|
181
181
|
- `allowed-tools` (experimental)
|
|
182
182
|
|
|
183
183
|
### Validation Rules
|
|
184
|
+
|
|
184
185
|
- Name must be lowercase
|
|
185
186
|
- Name cannot start/end with hyphen
|
|
186
187
|
- Name cannot contain consecutive hyphens
|
|
@@ -203,6 +204,7 @@ pnpm test:coverage
|
|
|
203
204
|
```
|
|
204
205
|
|
|
205
206
|
**Coverage goals:**
|
|
207
|
+
|
|
206
208
|
- Line coverage: >95%
|
|
207
209
|
- Branch coverage: >90%
|
|
208
210
|
- Function coverage: >95%
|
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"],"
|
|
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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"}
|