skilld 0.6.2 → 0.8.1

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 (42) hide show
  1. package/README.md +42 -17
  2. package/dist/agent/index.d.mts +1 -309
  3. package/dist/agent/index.mjs +1 -5
  4. package/dist/cache/index.d.mts +1 -2
  5. package/dist/cache/index.mjs +1 -3
  6. package/dist/cli.d.mts +1 -1
  7. package/dist/cli.mjs +1 -4062
  8. package/dist/index.d.mts +1 -6
  9. package/dist/index.mjs +1 -8
  10. package/dist/retriv/index.d.mts +1 -26
  11. package/dist/retriv/index.mjs +1 -105
  12. package/dist/retriv/worker.d.mts +1 -33
  13. package/dist/retriv/worker.mjs +1 -47
  14. package/dist/sources/index.d.mts +1 -2
  15. package/dist/sources/index.mjs +1 -4
  16. package/dist/types.d.mts +1 -6
  17. package/dist/types.mjs +1 -1
  18. package/package.json +8 -8
  19. package/dist/_chunks/config.mjs +0 -25
  20. package/dist/_chunks/config.mjs.map +0 -1
  21. package/dist/_chunks/detect-imports.mjs +0 -1925
  22. package/dist/_chunks/detect-imports.mjs.map +0 -1
  23. package/dist/_chunks/npm.mjs +0 -1828
  24. package/dist/_chunks/npm.mjs.map +0 -1
  25. package/dist/_chunks/pool2.mjs +0 -120
  26. package/dist/_chunks/pool2.mjs.map +0 -1
  27. package/dist/_chunks/storage.mjs +0 -457
  28. package/dist/_chunks/storage.mjs.map +0 -1
  29. package/dist/_chunks/types.d.mts +0 -90
  30. package/dist/_chunks/types.d.mts.map +0 -1
  31. package/dist/_chunks/utils.d.mts +0 -529
  32. package/dist/_chunks/utils.d.mts.map +0 -1
  33. package/dist/_chunks/version.d.mts +0 -153
  34. package/dist/_chunks/version.d.mts.map +0 -1
  35. package/dist/_chunks/yaml.mjs +0 -415
  36. package/dist/_chunks/yaml.mjs.map +0 -1
  37. package/dist/agent/index.d.mts.map +0 -1
  38. package/dist/cli.mjs.map +0 -1
  39. package/dist/retriv/index.d.mts.map +0 -1
  40. package/dist/retriv/index.mjs.map +0 -1
  41. package/dist/retriv/worker.d.mts.map +0 -1
  42. package/dist/retriv/worker.mjs.map +0 -1
package/README.md CHANGED
@@ -8,19 +8,12 @@
8
8
 
9
9
  ## Why?
10
10
 
11
- Agents suck at following latest conventions beyond their [reliable knowledge cut-off](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). They shoot themselves in the foot
12
- with new APIs and conventions, and they don't know what they don't know.
11
+ Agents have [knowledge cutoffs](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison) and predict the most likely code from training data, not the best code. For example, [Vue v3.5](https://blog.vuejs.org/posts/vue-3-5) was released over 16 months ago and agents refuse to use its features out-of-the-box. This is because they're trained on conventions not the latest docs.
13
12
 
14
- [Agent Skills](https://agentskills.io/home) help us solve this by distilling the most important patterns and conventions for a package into a single SKILL.md file.
15
- Getting skills for our packages either involves the maintainer (or ourselves) taking on the maintenance burden and surfacing them or using skill sharing
16
- sites like [skills.sh](https://skills.sh/).
13
+ Methods of getting the right context to your agent require either manual curation, author opt-in, or external servers. See [the landscape](#the-landscape)
14
+ for more details.
17
15
 
18
- While these are great for generic skills, they aren't good for NPM skills:
19
- - No version-awareness, high maintenance burden to keep up with new releases and deprecations.
20
- - Non-optimized context windows, prompt injection risks, missing references.
21
- - Community-sourced skills leak personal opinions and biases. Maintainers are out of the loop, and may not even know about them.
22
-
23
- Skilld leverages maintainers existing effort. Maintainers write great docs for us, we generate our own local skills optimized for our models and codebase from them.
16
+ Skilld generates [agent skills](https://agentskills.io/home) from the docs maintainers already write. Version-aware, local-first, and optimized for your codebase.
24
17
 
25
18
  <p align="center">
26
19
  <table>
@@ -66,17 +59,29 @@ If you need to re-configure skilld, just run `npx -y skilld config` to update yo
66
59
 
67
60
  ## FAQ
68
61
 
62
+ ### Why don't the skills run?
63
+
64
+ Try this in your project/user prompt:
65
+
66
+ ```md
67
+ Before modifying code, evaluate each installed skill against the current task.
68
+ For each skill, determine YES/NO relevance and invoke all YES skills before proceeding.
69
+ ```
70
+
69
71
  ### How is this different from Context7?
70
72
 
71
73
  Context7 is an MCP that fetches raw doc chunks at query time. You get different results each prompt, no curation, and it requires their server. Skilld is local-first: it generates a SKILL.md that lives in your project, tied to your actual package versions. No MCP dependency, no per-prompt latency, and it goes further with LLM-enhanced sections, prompt injection sanitization, and semantic search.
72
74
 
73
- ### Aren't these just AI convention files?
75
+ ### Will I be prompt injected?
76
+
77
+ Skilld pulls issues from GitHub which could be abused for potential prompt injection.
74
78
 
75
- Similar idea, but instead of hand-writing them, skilld generates them from the latest package docs, issues, and releases. This makes them considerably more accurate at a low token cost. They also auto-update when your dependencies ship new versions.
79
+ Skilld treats all data as untrusted, running in permissioned environments and using best practices to avoid injections.
80
+ However, always be cautious when using skills from untrusted sources.
76
81
 
77
82
  ### Do skills update when my deps update?
78
83
 
79
- Yes. Run `skilld update` to regenerate outdated skills, or add `skilld --prepare -b` to your prepare script and they regenerate in the background whenever you install packages.
84
+ Yes. Run `skilld update` to regenerate outdated skills, or add `skilld update -b` to your prepare script and they regenerate in the background whenever you install packages.
80
85
 
81
86
  ## Installation
82
87
 
@@ -97,7 +102,7 @@ Add to `package.json` to keep skills fresh on install:
97
102
  ```json
98
103
  {
99
104
  "scripts": {
100
- "prepare": "skilld --prepare -b"
105
+ "prepare": "skilld update -b"
101
106
  }
102
107
  }
103
108
  ```
@@ -164,8 +169,28 @@ skilld config
164
169
  | `--force` | `-f` | `false` | Ignore all caches, re-fetch docs and regenerate |
165
170
  | `--model` | `-m` | config default | LLM model for skill generation (sonnet, haiku, opus, etc.) |
166
171
  | `--debug` | | `false` | Save raw LLM output to logs/ for each section |
167
- | `--prepare` | | `false` | Non-interactive sync for prepare hook (outdated only) |
168
- | `--background` | `-b` | `false` | Run `--prepare` in a detached background process |
172
+
173
+ ## The Landscape
174
+
175
+ Several approaches exist for steering agent knowledge. Each fills a different niche:
176
+
177
+ | Approach | Versioned | Curated | No Opt-in | Local |
178
+ |:---------|:---------:|:-------:|:---------:|:-----:|
179
+ | **Manual rules** | ✗ | ✓ | ✓ | ✓ |
180
+ | **llms.txt** | ~ | ✗ | ✗ | ✗ |
181
+ | **MCP servers** | ✓ | ✗ | ✗ | ✗ |
182
+ | **skills.sh** | ✗ | ~ | ✓ | ✗ |
183
+ | **skills-npm** | ✓ | ✓ | ✗ | ✓ |
184
+ | **skilld** | ✓ | ✓ | ✓ | ✓ |
185
+
186
+ > **Versioned** — tied to your installed package version. **Curated** — distilled best practices, not raw docs. **No Opt-in** — works without the package author doing anything. **Local** — runs on your machine, no external service dependency.
187
+
188
+ - **Manual rules** (CLAUDE.md, .cursorrules): full control, but you need to already know the best practices and maintain them across every dep.
189
+ - **[llms.txt](https://llmstxt.org/)**: standard convention for exposing docs to LLMs, but it's full docs not curated guidance and requires author adoption.
190
+ - **MCP servers**: live, version-aware responses, but adds per-request latency and the maintainer has to build and maintain a server.
191
+ - **[skills.sh](https://skills.sh/)**: easy skill sharing with a growing ecosystem, but community-sourced without version-awareness or author oversight.
192
+ - **[skills-npm](https://github.com/antfu/skills-npm)**: the ideal end-state: zero-token skills shipped by the package author, but requires every maintainer to opt in.
193
+ - **skilld**: generates version-aware skills from existing docs, changelogs, issues, and discussions. Works for any package without author opt-in.
169
194
 
170
195
  ## Related
171
196
 
@@ -1,309 +1 @@
1
- //#region src/core/config.d.ts
2
- interface FeaturesConfig {
3
- search: boolean;
4
- issues: boolean;
5
- discussions: boolean;
6
- releases: boolean;
7
- }
8
- //#endregion
9
- //#region src/agent/prompts/optional/types.d.ts
10
- interface CustomPrompt {
11
- heading: string;
12
- body: string;
13
- }
14
- //#endregion
15
- //#region src/agent/prompts/prompt.d.ts
16
- type SkillSection = 'api-changes' | 'best-practices' | 'api' | 'custom';
17
- /** Output file per section (inside .skilld/) */
18
- declare const SECTION_OUTPUT_FILES: Record<SkillSection, string>;
19
- /** Merge order for final SKILL.md body */
20
- declare const SECTION_MERGE_ORDER: SkillSection[];
21
- interface BuildSkillPromptOptions {
22
- packageName: string;
23
- /** Absolute path to skill directory with ./.skilld/ */
24
- skillDir: string;
25
- /** Package version (e.g., "3.5.13") */
26
- version?: string;
27
- /** Has GitHub issues indexed */
28
- hasIssues?: boolean;
29
- /** Has GitHub discussions indexed */
30
- hasDiscussions?: boolean;
31
- /** Has release notes */
32
- hasReleases?: boolean;
33
- /** CHANGELOG filename if found in package (e.g. CHANGELOG.md, changelog.md) */
34
- hasChangelog?: string | false;
35
- /** Resolved absolute paths to .md doc files */
36
- docFiles?: string[];
37
- /** Doc source type */
38
- docsType?: 'llms.txt' | 'readme' | 'docs';
39
- /** Package ships its own docs */
40
- hasShippedDocs?: boolean;
41
- /** Custom instructions from the user (when 'custom' section selected) */
42
- customPrompt?: CustomPrompt;
43
- /** Resolved feature flags */
44
- features?: FeaturesConfig;
45
- }
46
- /**
47
- * Build prompt for a single section
48
- */
49
- declare function buildSectionPrompt(opts: BuildSkillPromptOptions & {
50
- section: SkillSection;
51
- }): string;
52
- /**
53
- * Build prompts for all selected sections, sharing the computed preamble
54
- */
55
- declare function buildAllSectionPrompts(opts: BuildSkillPromptOptions & {
56
- sections: SkillSection[];
57
- }): Map<SkillSection, string>;
58
- //#endregion
59
- //#region src/agent/prompts/skill.d.ts
60
- interface SkillOptions {
61
- name: string;
62
- version?: string;
63
- releasedAt?: string;
64
- /** Production dependencies with version specifiers */
65
- dependencies?: Record<string, string>;
66
- /** npm dist-tags with version and release date */
67
- distTags?: Record<string, {
68
- version: string;
69
- releasedAt?: string;
70
- }>;
71
- globs?: string[];
72
- description?: string;
73
- /** LLM-generated body — replaces default heading + description */
74
- body?: string;
75
- relatedSkills: string[];
76
- hasIssues?: boolean;
77
- hasDiscussions?: boolean;
78
- hasReleases?: boolean;
79
- hasChangelog?: string | false;
80
- docsType?: 'llms.txt' | 'readme' | 'docs';
81
- hasShippedDocs?: boolean;
82
- /** Key files in package (entry points + docs) */
83
- pkgFiles?: string[];
84
- /** Model used to generate LLM sections */
85
- generatedBy?: string;
86
- /** Override directory name for frontmatter (repo-based, e.g. "vuejs-core") */
87
- dirName?: string;
88
- /** All packages tracked by this skill (multi-package skills) */
89
- packages?: Array<{
90
- name: string;
91
- }>;
92
- /** GitHub repo URL (owner/repo format or full URL) */
93
- repoUrl?: string;
94
- /** Resolved feature flags */
95
- features?: FeaturesConfig;
96
- }
97
- declare function generateSkillMd(opts: SkillOptions): string;
98
- //#endregion
99
- //#region src/agent/types.d.ts
100
- /**
101
- * Agent types and interfaces
102
- */
103
- type AgentType = 'claude-code' | 'cursor' | 'windsurf' | 'cline' | 'codex' | 'github-copilot' | 'gemini-cli' | 'goose' | 'amp' | 'opencode' | 'roo';
104
- interface SkillMetadata {
105
- name: string;
106
- version?: string;
107
- /** ISO date string when this version was released */
108
- releasedAt?: string;
109
- description?: string;
110
- }
111
- //#endregion
112
- //#region src/agent/clis/types.d.ts
113
- type OptimizeModel = 'opus' | 'sonnet' | 'haiku' | 'gemini-3-pro' | 'gemini-3-flash' | 'gpt-5.2-codex' | 'gpt-5.1-codex-max' | 'gpt-5.2' | 'gpt-5.1-codex-mini';
114
- interface ModelInfo {
115
- id: OptimizeModel;
116
- name: string;
117
- hint: string;
118
- recommended?: boolean;
119
- agentId: string;
120
- agentName: string;
121
- }
122
- interface StreamProgress {
123
- chunk: string;
124
- type: 'reasoning' | 'text';
125
- text: string;
126
- reasoning: string;
127
- section?: SkillSection;
128
- }
129
- interface OptimizeDocsOptions {
130
- packageName: string;
131
- skillDir: string;
132
- model?: OptimizeModel;
133
- version?: string;
134
- hasGithub?: boolean;
135
- hasReleases?: boolean;
136
- hasChangelog?: string | false;
137
- docFiles?: string[];
138
- docsType?: 'llms.txt' | 'readme' | 'docs';
139
- hasShippedDocs?: boolean;
140
- onProgress?: (progress: StreamProgress) => void;
141
- timeout?: number;
142
- verbose?: boolean;
143
- debug?: boolean;
144
- noCache?: boolean;
145
- /** Which sections to generate */
146
- sections?: SkillSection[];
147
- /** Custom instructions from the user */
148
- customPrompt?: CustomPrompt;
149
- /** Resolved feature flags */
150
- features?: FeaturesConfig;
151
- }
152
- interface OptimizeResult {
153
- optimized: string;
154
- wasOptimized: boolean;
155
- error?: string;
156
- warnings?: string[];
157
- reasoning?: string;
158
- finishReason?: string;
159
- usage?: {
160
- inputTokens: number;
161
- outputTokens: number;
162
- totalTokens: number;
163
- };
164
- cost?: number;
165
- debugLogsDir?: string;
166
- }
167
- //#endregion
168
- //#region src/agent/clis/index.d.ts
169
- declare function getModelName(id: OptimizeModel): string;
170
- declare function getModelLabel(id: OptimizeModel): string;
171
- declare function getAvailableModels(): Promise<ModelInfo[]>;
172
- declare function optimizeDocs(opts: OptimizeDocsOptions): Promise<OptimizeResult>;
173
- //#endregion
174
- //#region src/agent/detect.d.ts
175
- /**
176
- * Detect which agents are installed on the system
177
- */
178
- declare function detectInstalledAgents(): AgentType[];
179
- /**
180
- * Detect the target agent (where skills are installed) from env vars and cwd.
181
- * This is NOT the generator LLM — it determines the skills directory.
182
- *
183
- * Priority: env vars first (running inside agent), then project dirs.
184
- * Iteration order of the agents record determines priority.
185
- */
186
- declare function detectTargetAgent(): AgentType | null;
187
- /**
188
- * Get the version of an agent's CLI (if available)
189
- */
190
- declare function getAgentVersion(agentType: AgentType): string | null;
191
- //#endregion
192
- //#region src/agent/detect-imports.d.ts
193
- /**
194
- * Detect directly-used npm packages by scanning source files
195
- * Uses mlly for proper ES module parsing + globby for gitignore support
196
- */
197
- interface PackageUsage {
198
- name: string;
199
- count: number;
200
- source?: 'import' | 'preset';
201
- }
202
- interface DetectResult {
203
- packages: PackageUsage[];
204
- error?: string;
205
- }
206
- /**
207
- * Scan source files to detect all directly-imported npm packages
208
- * Async with gitignore support for proper spinner animation
209
- */
210
- declare function detectImportedPackages(cwd?: string): Promise<DetectResult>;
211
- //#endregion
212
- //#region src/agent/install.d.ts
213
- /**
214
- * Sanitize skill name for filesystem
215
- */
216
- declare function sanitizeName(name: string): string;
217
- /**
218
- * Compute skill directory name from GitHub owner/repo when available,
219
- * falling back to sanitized package name.
220
- *
221
- * Examples:
222
- * vue (vuejs/core) → vuejs-core
223
- * @nuxt/ui (nuxt/ui) → nuxt-ui
224
- * vue-router (vuejs/router) → vuejs-router
225
- */
226
- declare function computeSkillDirName(packageName: string, repoUrl?: string): string;
227
- /**
228
- * Install a skill directly to agent skill directories
229
- * Writes to each agent's skill folder in the project (e.g., .claude/skills/package-name/)
230
- */
231
- declare function installSkillForAgents(skillName: string, skillContent: string, options?: {
232
- global?: boolean;
233
- cwd?: string;
234
- agents?: AgentType[]; /** Additional files to write (filename -> content) */
235
- files?: Record<string, string>;
236
- }): {
237
- installed: AgentType[];
238
- paths: string[];
239
- };
240
- /**
241
- * Create relative symlinks from each detected agent's skills dir to the shared .skills/ dir.
242
- * Only targets agents whose config dir already exists in the project.
243
- * Replaces existing symlinks, skips real directories (user's custom skills).
244
- */
245
- declare function linkSkillToAgents(skillName: string, sharedDir: string, cwd: string): void;
246
- /**
247
- * Remove per-agent symlinks for a skill when removing from shared dir.
248
- */
249
- declare function unlinkSkillFromAgents(skillName: string, cwd: string): void;
250
- //#endregion
251
- //#region src/agent/targets/types.d.ts
252
- interface FrontmatterField {
253
- /** Field name in YAML frontmatter */
254
- name: string;
255
- /** Whether the field is required by the agent */
256
- required: boolean;
257
- /** Description of what the field does */
258
- description: string;
259
- /** Constraints (max length, regex, etc.) */
260
- constraints?: string;
261
- }
262
- interface AgentTarget {
263
- /** Agent identifier */
264
- agent: AgentType;
265
- /** Human-readable agent name */
266
- displayName: string;
267
- /** Check if agent is installed on the system */
268
- detectInstalled: () => boolean;
269
- /** Check env vars to detect if running inside this agent */
270
- detectEnv: () => boolean;
271
- /** Check project-level config dirs/files to detect this agent */
272
- detectProject: (cwd: string) => boolean;
273
- /** CLI command name (if agent has a CLI for skill generation) */
274
- cli?: string;
275
- /** Project-level instruction file for always-on rules (e.g. CLAUDE.md, AGENTS.md) */
276
- instructionFile?: string;
277
- /** Required skill filename (always SKILL.md for Agent Skills spec agents) */
278
- skillFilename: string;
279
- /** Project-level skill directory */
280
- skillsDir: string;
281
- /** Global (user-level) skill directory (resolved absolute path) */
282
- globalSkillsDir: string;
283
- /** Additional directories this agent scans for skills (cross-compat) */
284
- additionalSkillsDirs: string[];
285
- /** Supported frontmatter fields */
286
- frontmatter: FrontmatterField[];
287
- /** Whether `name` must exactly match the parent directory name */
288
- nameMatchesDir: boolean;
289
- /** Name field regex constraint */
290
- namePattern: string;
291
- /** How skills are discovered: 'eager' (startup scan) or 'lazy' (on-demand) */
292
- discoveryStrategy: 'eager' | 'lazy';
293
- /** Brief description of how discovery works */
294
- discoveryNotes: string;
295
- /** Whether this agent follows the agentskills.io spec */
296
- agentSkillsSpec: boolean;
297
- /** Agent-specific extensions beyond the spec */
298
- extensions: string[];
299
- /** Link to official documentation */
300
- docs: string;
301
- /** Additional notes, quirks, known issues */
302
- notes: string[];
303
- }
304
- //#endregion
305
- //#region src/agent/targets/registry.d.ts
306
- declare const targets: Record<AgentType, AgentTarget>;
307
- //#endregion
308
- export { type AgentTarget, type AgentType, type CustomPrompt, type FrontmatterField, type ModelInfo, type OptimizeDocsOptions, type OptimizeModel, type OptimizeResult, SECTION_MERGE_ORDER, SECTION_OUTPUT_FILES, type SkillMetadata, type SkillOptions, type SkillSection, type StreamProgress, targets as agents, buildAllSectionPrompts, buildSectionPrompt, computeSkillDirName, detectImportedPackages, detectInstalledAgents, detectTargetAgent, generateSkillMd, getAgentVersion, getAvailableModels, getModelLabel, getModelName, installSkillForAgents, linkSkillToAgents, optimizeDocs, sanitizeName, unlinkSkillFromAgents };
309
- //# sourceMappingURL=index.d.mts.map
1
+ export * from "../../src/agent/index.ts";
@@ -1,5 +1 @@
1
- import { _ as detectTargetAgent, a as optimizeDocs, c as installSkillForAgents, d as unlinkSkillFromAgents, f as SECTION_MERGE_ORDER, g as detectInstalledAgents, h as buildSectionPrompt, i as getModelName, l as linkSkillToAgents, m as buildAllSectionPrompts, n as getAvailableModels, o as generateSkillMd, p as SECTION_OUTPUT_FILES, r as getModelLabel, s as computeSkillDirName, t as detectImportedPackages, u as sanitizeName, v as getAgentVersion, y as targets } from "../_chunks/detect-imports.mjs";
2
- import "../_chunks/config.mjs";
3
- import "../_chunks/storage.mjs";
4
- import "../_chunks/yaml.mjs";
5
- export { SECTION_MERGE_ORDER, SECTION_OUTPUT_FILES, targets as agents, buildAllSectionPrompts, buildSectionPrompt, computeSkillDirName, detectImportedPackages, detectInstalledAgents, detectTargetAgent, generateSkillMd, getAgentVersion, getAvailableModels, getModelLabel, getModelName, installSkillForAgents, linkSkillToAgents, optimizeDocs, sanitizeName, unlinkSkillFromAgents };
1
+ export * from "../../src/agent/index.ts";
@@ -1,2 +1 @@
1
- import { C as CacheConfig, D as REFERENCES_DIR, E as CACHE_DIR, O as getPackageDbPath, S as writeToCache, T as CachedPackage, _ as listReferenceFiles, a as clearAllCache, b as resolvePkgDir, c as getPkgKeyFiles, d as isCached, f as linkCachedDir, g as listCached, h as linkShippedSkill, i as ShippedSkill, l as getShippedSkills, m as linkPkgNamed, n as getCacheKey, o as clearCache, p as linkPkg, r as getVersionKey, s as ensureCacheDir, t as getCacheDir, u as hasShippedDocs, v as readCachedDocs, w as CachedDoc, x as writeSections, y as readCachedSection } from "../_chunks/version.mjs";
2
- export { CACHE_DIR, type CacheConfig, type CachedDoc, type CachedPackage, REFERENCES_DIR, type ShippedSkill, clearAllCache, clearCache, ensureCacheDir, getCacheDir, getCacheKey, getPackageDbPath, getPkgKeyFiles, getShippedSkills, getVersionKey, hasShippedDocs, isCached, linkCachedDir, linkPkg, linkPkgNamed, linkShippedSkill, listCached, listReferenceFiles, readCachedDocs, readCachedSection, resolvePkgDir, writeSections, writeToCache };
1
+ export * from "../../src/cache/index.ts";
@@ -1,3 +1 @@
1
- import { a as getCacheKey, i as getCacheDir, n as REFERENCES_DIR, o as getVersionKey, r as getPackageDbPath, t as CACHE_DIR } from "../_chunks/config.mjs";
2
- import { _ as writeSections, a as getShippedSkills, c as linkCachedDir, d as linkShippedSkill, f as listCached, g as resolvePkgDir, h as readCachedSection, i as getPkgKeyFiles, l as linkPkg, m as readCachedDocs, n as clearCache, o as hasShippedDocs, p as listReferenceFiles, r as ensureCacheDir, s as isCached, t as clearAllCache, u as linkPkgNamed, v as writeToCache } from "../_chunks/storage.mjs";
3
- export { CACHE_DIR, REFERENCES_DIR, clearAllCache, clearCache, ensureCacheDir, getCacheDir, getCacheKey, getPackageDbPath, getPkgKeyFiles, getShippedSkills, getVersionKey, hasShippedDocs, isCached, linkCachedDir, linkPkg, linkPkgNamed, linkShippedSkill, listCached, listReferenceFiles, readCachedDocs, readCachedSection, resolvePkgDir, writeSections, writeToCache };
1
+ export * from "../../src/cache/index.ts";
package/dist/cli.d.mts CHANGED
@@ -1 +1 @@
1
- export { };
1
+ export * from "../src/cli.ts";