@skillit/core 1.5.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.
Files changed (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/dist/audit-formatter.d.ts +36 -0
  4. package/dist/audit-formatter.d.ts.map +1 -0
  5. package/dist/audit-formatter.js +173 -0
  6. package/dist/audit-formatter.js.map +1 -0
  7. package/dist/audit-score.d.ts +76 -0
  8. package/dist/audit-score.d.ts.map +1 -0
  9. package/dist/audit-score.js +490 -0
  10. package/dist/audit-score.js.map +1 -0
  11. package/dist/audit-types.d.ts +81 -0
  12. package/dist/audit-types.d.ts.map +1 -0
  13. package/dist/audit-types.js +2 -0
  14. package/dist/audit-types.js.map +1 -0
  15. package/dist/audit.d.ts +17 -0
  16. package/dist/audit.d.ts.map +1 -0
  17. package/dist/audit.js +567 -0
  18. package/dist/audit.js.map +1 -0
  19. package/dist/canonical.d.ts +36 -0
  20. package/dist/canonical.d.ts.map +1 -0
  21. package/dist/canonical.js +148 -0
  22. package/dist/canonical.js.map +1 -0
  23. package/dist/config-renderer.d.ts +16 -0
  24. package/dist/config-renderer.d.ts.map +1 -0
  25. package/dist/config-renderer.js +296 -0
  26. package/dist/config-renderer.js.map +1 -0
  27. package/dist/config-types.d.ts +144 -0
  28. package/dist/config-types.d.ts.map +1 -0
  29. package/dist/config-types.js +2 -0
  30. package/dist/config-types.js.map +1 -0
  31. package/dist/docs-scanner.d.ts +40 -0
  32. package/dist/docs-scanner.d.ts.map +1 -0
  33. package/dist/docs-scanner.js +176 -0
  34. package/dist/docs-scanner.js.map +1 -0
  35. package/dist/examples-scanner.d.ts +39 -0
  36. package/dist/examples-scanner.d.ts.map +1 -0
  37. package/dist/examples-scanner.js +221 -0
  38. package/dist/examples-scanner.js.map +1 -0
  39. package/dist/index.d.ts +40 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +31 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/llms-txt.d.ts +20 -0
  44. package/dist/llms-txt.d.ts.map +1 -0
  45. package/dist/llms-txt.js +187 -0
  46. package/dist/llms-txt.js.map +1 -0
  47. package/dist/markdown-parser.d.ts +11 -0
  48. package/dist/markdown-parser.d.ts.map +1 -0
  49. package/dist/markdown-parser.js +222 -0
  50. package/dist/markdown-parser.js.map +1 -0
  51. package/dist/markdown-types.d.ts +48 -0
  52. package/dist/markdown-types.d.ts.map +1 -0
  53. package/dist/markdown-types.js +2 -0
  54. package/dist/markdown-types.js.map +1 -0
  55. package/dist/readme-parser.d.ts +21 -0
  56. package/dist/readme-parser.d.ts.map +1 -0
  57. package/dist/readme-parser.js +137 -0
  58. package/dist/readme-parser.js.map +1 -0
  59. package/dist/references-mcp.d.ts +79 -0
  60. package/dist/references-mcp.d.ts.map +1 -0
  61. package/dist/references-mcp.js +130 -0
  62. package/dist/references-mcp.js.map +1 -0
  63. package/dist/refine/ast-edit.d.ts +21 -0
  64. package/dist/refine/ast-edit.d.ts.map +1 -0
  65. package/dist/refine/ast-edit.js +147 -0
  66. package/dist/refine/ast-edit.js.map +1 -0
  67. package/dist/refine/index.d.ts +7 -0
  68. package/dist/refine/index.d.ts.map +1 -0
  69. package/dist/refine/index.js +6 -0
  70. package/dist/refine/index.js.map +1 -0
  71. package/dist/refine/jsdoc-edit.d.ts +4 -0
  72. package/dist/refine/jsdoc-edit.d.ts.map +1 -0
  73. package/dist/refine/jsdoc-edit.js +6 -0
  74. package/dist/refine/jsdoc-edit.js.map +1 -0
  75. package/dist/refine/loop.d.ts +8 -0
  76. package/dist/refine/loop.d.ts.map +1 -0
  77. package/dist/refine/loop.js +98 -0
  78. package/dist/refine/loop.js.map +1 -0
  79. package/dist/refine/select-targets.d.ts +5 -0
  80. package/dist/refine/select-targets.d.ts.map +1 -0
  81. package/dist/refine/select-targets.js +30 -0
  82. package/dist/refine/select-targets.js.map +1 -0
  83. package/dist/refine/types.d.ts +67 -0
  84. package/dist/refine/types.d.ts.map +1 -0
  85. package/dist/refine/types.js +2 -0
  86. package/dist/refine/types.js.map +1 -0
  87. package/dist/renderer.d.ts +27 -0
  88. package/dist/renderer.d.ts.map +1 -0
  89. package/dist/renderer.js +1244 -0
  90. package/dist/renderer.js.map +1 -0
  91. package/dist/tokens.d.ts +14 -0
  92. package/dist/tokens.d.ts.map +1 -0
  93. package/dist/tokens.js +26 -0
  94. package/dist/tokens.js.map +1 -0
  95. package/dist/types.d.ts +519 -0
  96. package/dist/types.d.ts.map +1 -0
  97. package/dist/types.js +2 -0
  98. package/dist/types.js.map +1 -0
  99. package/dist/writer.d.ts +17 -0
  100. package/dist/writer.d.ts.map +1 -0
  101. package/dist/writer.js +313 -0
  102. package/dist/writer.js.map +1 -0
  103. package/package.json +54 -0
package/dist/writer.js ADDED
@@ -0,0 +1,313 @@
1
+ import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import YAML from 'yaml';
4
+ /**
5
+ * Write rendered skill file sets to disk (SKILL.md + references/).
6
+ *
7
+ * @category I/O
8
+ * @useWhen
9
+ * - You have RenderedSkill objects from renderSkills() and need to persist them to the filesystem
10
+ * - Building a custom pipeline that separates rendering from writing (e.g., for preview or dry-run)
11
+ */
12
+ export function writeSkills(skills, options) {
13
+ const roots = collectWriteRoots(options);
14
+ const results = [];
15
+ for (const skill of skills) {
16
+ const skillName = dirname(skill.skill.filename).replace(/\\/g, '/');
17
+ for (const root of roots) {
18
+ const skillDir = join(root, dirname(skill.skill.filename));
19
+ const preserveReason = shouldPreserveExistingSkill(skillDir, skill);
20
+ if (preserveReason) {
21
+ results.push({
22
+ root,
23
+ rootKind: root === resolve(options.outDir) ? 'outDir' : 'installTarget',
24
+ skillName,
25
+ action: 'preserved',
26
+ preserveReason
27
+ });
28
+ continue;
29
+ }
30
+ removeSkillDirectory(skillDir);
31
+ writeFile(root, skill.skill);
32
+ for (const ref of skill.references) {
33
+ writeFile(root, ref);
34
+ }
35
+ results.push({
36
+ root,
37
+ rootKind: root === resolve(options.outDir) ? 'outDir' : 'installTarget',
38
+ skillName,
39
+ action: 'written'
40
+ });
41
+ }
42
+ }
43
+ return results;
44
+ }
45
+ export function readInstalledSkillMetadata(skillDir) {
46
+ return readSkillMetadata(skillDir);
47
+ }
48
+ function writeFile(outDir, file) {
49
+ const fullPath = join(outDir, file.filename);
50
+ try {
51
+ mkdirSync(dirname(fullPath), { recursive: true });
52
+ writeFileSync(fullPath, file.content, 'utf-8');
53
+ }
54
+ catch (error) {
55
+ throw new Error(`Failed to write ${fullPath}: ${messageOf(error)}`, { cause: error });
56
+ }
57
+ }
58
+ function collectWriteRoots(options) {
59
+ const roots = [
60
+ ...(options.includeOutDir === false ? [] : [resolve(options.outDir)]),
61
+ ...(options.installTargets ?? []).map((target) => resolve(target))
62
+ ];
63
+ return [...new Set(roots)];
64
+ }
65
+ function shouldPreserveExistingSkill(skillDir, incoming) {
66
+ const existing = readSkillMetadata(skillDir);
67
+ if (!existing)
68
+ return null;
69
+ if (existing.curated === true) {
70
+ return 'curated';
71
+ }
72
+ const incomingMetadata = readSkillMetadataFromContent(incoming.skill.content);
73
+ if (!incomingMetadata.bundledGuidance)
74
+ return null;
75
+ if (existing.name && incomingMetadata.name && existing.name !== incomingMetadata.name) {
76
+ return 'bundled-name-mismatch';
77
+ }
78
+ if (!existing.bundledGuidance) {
79
+ return 'bundled-custom-skill';
80
+ }
81
+ if (!existing.version) {
82
+ return 'bundled-missing-version';
83
+ }
84
+ const semverResult = compareSemver(existing.version, incomingMetadata.version ?? '0.0.0');
85
+ if (semverResult === 0)
86
+ return 'bundled-same-version';
87
+ if (semverResult > 0)
88
+ return 'bundled-newer-version';
89
+ return null;
90
+ }
91
+ function readSkillMetadata(skillDir) {
92
+ const skillPath = join(skillDir, 'SKILL.md');
93
+ if (!existsSync(skillPath))
94
+ return null;
95
+ let content;
96
+ try {
97
+ content = readFileSync(skillPath, 'utf-8');
98
+ }
99
+ catch (error) {
100
+ throw new Error(`Failed to read installed SKILL.md at ${skillPath}: ${messageOf(error)}`, {
101
+ cause: error
102
+ });
103
+ }
104
+ let frontmatter;
105
+ try {
106
+ frontmatter = readSkillMetadataFromContent(content);
107
+ }
108
+ catch {
109
+ frontmatter = readLenientSkillMetadataFromContent(content);
110
+ }
111
+ return {
112
+ ...frontmatter,
113
+ curated: frontmatter.curated === true || content.includes('<!-- curated -->') ? true : undefined
114
+ };
115
+ }
116
+ function readSkillMetadataFromContent(content) {
117
+ const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
118
+ if (!match)
119
+ return {};
120
+ let frontmatter;
121
+ try {
122
+ frontmatter = YAML.parse(match[1]);
123
+ }
124
+ catch (error) {
125
+ throw new Error(`Failed to parse SKILL.md frontmatter: ${messageOf(error)}`, {
126
+ cause: error
127
+ });
128
+ }
129
+ const toSkills = frontmatter?.toSkills &&
130
+ typeof frontmatter.toSkills === 'object' &&
131
+ !Array.isArray(frontmatter.toSkills)
132
+ ? frontmatter.toSkills
133
+ : undefined;
134
+ const explicitBundledGuidance = toSkills?.managed === 'bundled-guidance';
135
+ const legacyBundledGuidance = typeof frontmatter?.name === 'string' &&
136
+ frontmatter.name.startsWith('skillit-') &&
137
+ typeof frontmatter?.version === 'string';
138
+ return {
139
+ bundledGuidance: explicitBundledGuidance || legacyBundledGuidance ? true : undefined,
140
+ curated: frontmatter?.curated === true ? true : undefined,
141
+ version: typeof frontmatter?.version === 'string' ? frontmatter.version : undefined,
142
+ name: typeof frontmatter?.name === 'string' ? frontmatter.name : undefined
143
+ };
144
+ }
145
+ function readLenientSkillMetadataFromContent(content) {
146
+ const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---/);
147
+ if (!match)
148
+ return {};
149
+ const parsed = parseLenientFrontmatter(match[1]);
150
+ const legacyBundledGuidance = typeof parsed.name === 'string' &&
151
+ parsed.name.startsWith('skillit-') &&
152
+ typeof parsed.version === 'string';
153
+ return {
154
+ bundledGuidance: parsed.bundledGuidance || legacyBundledGuidance ? true : undefined,
155
+ curated: parsed.curated,
156
+ version: parsed.version,
157
+ name: parsed.name
158
+ };
159
+ }
160
+ function parseLenientFrontmatter(frontmatter) {
161
+ let name;
162
+ let version;
163
+ let curated;
164
+ let bundledGuidance;
165
+ let inToSkills = false;
166
+ let toSkillsIndent = -1;
167
+ for (const line of frontmatter.split(/\r?\n/)) {
168
+ const trimmed = line.trim();
169
+ if (trimmed.length === 0)
170
+ continue;
171
+ const indent = leadingIndentWidth(line);
172
+ if (inToSkills && indent <= toSkillsIndent) {
173
+ inToSkills = false;
174
+ toSkillsIndent = -1;
175
+ }
176
+ if (inToSkills) {
177
+ const [key, value] = splitFrontmatterKeyValue(trimmed);
178
+ if (key === 'managed' && value === 'bundled-guidance') {
179
+ bundledGuidance = true;
180
+ }
181
+ continue;
182
+ }
183
+ const [key, value] = splitFrontmatterKeyValue(trimmed);
184
+ if (!key || value === undefined)
185
+ continue;
186
+ if (key === 'name') {
187
+ name = value;
188
+ continue;
189
+ }
190
+ if (key === 'version') {
191
+ version = value;
192
+ continue;
193
+ }
194
+ if (key === 'curated' && value === 'true') {
195
+ curated = true;
196
+ continue;
197
+ }
198
+ if (key === 'toSkills') {
199
+ inToSkills = true;
200
+ toSkillsIndent = indent;
201
+ }
202
+ }
203
+ return {
204
+ bundledGuidance,
205
+ curated,
206
+ version,
207
+ name
208
+ };
209
+ }
210
+ function splitFrontmatterKeyValue(line) {
211
+ const separator = line.indexOf(':');
212
+ if (separator === -1)
213
+ return [undefined, undefined];
214
+ const key = line.slice(0, separator).trim();
215
+ const rawValue = line.slice(separator + 1).trim();
216
+ if (key.length === 0)
217
+ return [undefined, undefined];
218
+ return [key, stripInlineComment(rawValue)];
219
+ }
220
+ function stripInlineComment(value) {
221
+ const hashIndex = value.indexOf('#');
222
+ return (hashIndex === -1 ? value : value.slice(0, hashIndex)).trim();
223
+ }
224
+ function leadingIndentWidth(line) {
225
+ let width = 0;
226
+ while (width < line.length && (line[width] === ' ' || line[width] === '\t')) {
227
+ width++;
228
+ }
229
+ return width;
230
+ }
231
+ function compareSemver(a, b) {
232
+ const parsedA = parseSemver(a);
233
+ const parsedB = parseSemver(b);
234
+ for (let index = 0; index < 3; index++) {
235
+ const left = parsedA.release[index] ?? 0;
236
+ const right = parsedB.release[index] ?? 0;
237
+ if (left < right)
238
+ return -1;
239
+ if (left > right)
240
+ return 1;
241
+ }
242
+ if (parsedA.prerelease.length === 0 && parsedB.prerelease.length === 0)
243
+ return 0;
244
+ if (parsedA.prerelease.length === 0)
245
+ return 1;
246
+ if (parsedB.prerelease.length === 0)
247
+ return -1;
248
+ const limit = Math.max(parsedA.prerelease.length, parsedB.prerelease.length);
249
+ for (let index = 0; index < limit; index++) {
250
+ const left = parsedA.prerelease[index];
251
+ const right = parsedB.prerelease[index];
252
+ if (left === undefined)
253
+ return -1;
254
+ if (right === undefined)
255
+ return 1;
256
+ if (left === right)
257
+ continue;
258
+ const leftNumber = Number(left);
259
+ const rightNumber = Number(right);
260
+ const leftIsNumber = Number.isInteger(leftNumber) && `${leftNumber}` === left;
261
+ const rightIsNumber = Number.isInteger(rightNumber) && `${rightNumber}` === right;
262
+ if (leftIsNumber && rightIsNumber) {
263
+ if (leftNumber < rightNumber)
264
+ return -1;
265
+ if (leftNumber > rightNumber)
266
+ return 1;
267
+ continue;
268
+ }
269
+ if (leftIsNumber)
270
+ return -1;
271
+ if (rightIsNumber)
272
+ return 1;
273
+ return left < right ? -1 : 1;
274
+ }
275
+ return 0;
276
+ }
277
+ function parseSemver(version) {
278
+ let normalized = version.startsWith('v') ? version.slice(1) : version;
279
+ const buildIndex = normalized.indexOf('+');
280
+ if (buildIndex !== -1)
281
+ normalized = normalized.slice(0, buildIndex);
282
+ const prereleaseIndex = normalized.indexOf('-');
283
+ const prerelease = prereleaseIndex === -1
284
+ ? []
285
+ : normalized
286
+ .slice(prereleaseIndex + 1)
287
+ .split('.')
288
+ .map((part) => part.trim())
289
+ .filter((part) => part.length > 0);
290
+ if (prereleaseIndex !== -1)
291
+ normalized = normalized.slice(0, prereleaseIndex);
292
+ return {
293
+ release: normalized.split('.').map((part) => {
294
+ const numeric = Number.parseInt(part, 10);
295
+ return Number.isFinite(numeric) ? numeric : 0;
296
+ }),
297
+ prerelease
298
+ };
299
+ }
300
+ function removeSkillDirectory(skillDir) {
301
+ try {
302
+ rmSync(skillDir, { recursive: true, force: true });
303
+ }
304
+ catch (error) {
305
+ throw new Error(`Failed to remove existing skill directory ${skillDir}: ${messageOf(error)}`, {
306
+ cause: error
307
+ });
308
+ }
309
+ }
310
+ function messageOf(error) {
311
+ return error instanceof Error ? error.message : String(error);
312
+ }
313
+ //# sourceMappingURL=writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writer.js","sourceRoot":"","sources":["../src/writer.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@skillit/core",
3
+ "version": "1.5.0",
4
+ "description": "Shared types, SKILL.md renderer, and token budgeting for skillit plugins",
5
+ "keywords": [
6
+ "agent-skills",
7
+ "ai",
8
+ "api-documentation",
9
+ "documentation",
10
+ "jsdoc",
11
+ "llm",
12
+ "llms-txt",
13
+ "skill-generation",
14
+ "skill-md",
15
+ "skillit",
16
+ "token-budgeting",
17
+ "typedoc",
18
+ "typescript"
19
+ ],
20
+ "license": "MIT",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "https://github.com/pradeepmouli/skillit.git",
24
+ "directory": "packages/core"
25
+ },
26
+ "funding": {
27
+ "type": "github",
28
+ "url": "https://github.com/sponsors/pradeepmouli"
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "README.md"
33
+ ],
34
+ "type": "module",
35
+ "main": "./dist/index.js",
36
+ "types": "./dist/index.d.ts",
37
+ "exports": {
38
+ ".": {
39
+ "import": {
40
+ "types": "./dist/index.d.ts",
41
+ "default": "./dist/index.js"
42
+ }
43
+ }
44
+ },
45
+ "dependencies": {
46
+ "@ast-grep/napi": "^0.43.0",
47
+ "yaml": "^2.9.0"
48
+ },
49
+ "scripts": {
50
+ "build": "tsgo -p tsconfig.build.json",
51
+ "type-check": "tsgo --noEmit",
52
+ "clean": "rm -rf dist *.tsbuildinfo"
53
+ }
54
+ }