skilld 1.7.4 → 2.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.
Files changed (156) hide show
  1. package/dist/_chunks/add.mjs +66 -0
  2. package/dist/_chunks/add.mjs.map +1 -0
  3. package/dist/_chunks/agent-prompt.mjs +88 -0
  4. package/dist/_chunks/agent-prompt.mjs.map +1 -0
  5. package/dist/_chunks/agent.mjs +81 -57
  6. package/dist/_chunks/agent.mjs.map +1 -1
  7. package/dist/_chunks/args.mjs +42 -0
  8. package/dist/_chunks/args.mjs.map +1 -0
  9. package/dist/_chunks/assemble.mjs +10 -7
  10. package/dist/_chunks/assemble.mjs.map +1 -1
  11. package/dist/_chunks/author.mjs +33 -17
  12. package/dist/_chunks/author.mjs.map +1 -1
  13. package/dist/_chunks/cache.mjs +143 -183
  14. package/dist/_chunks/cache.mjs.map +1 -1
  15. package/dist/_chunks/cache2.mjs +7 -6
  16. package/dist/_chunks/cache2.mjs.map +1 -1
  17. package/dist/_chunks/client.mjs +117 -0
  18. package/dist/_chunks/client.mjs.map +1 -0
  19. package/dist/_chunks/core.mjs +5 -5
  20. package/dist/_chunks/detect.mjs +53 -43
  21. package/dist/_chunks/detect.mjs.map +1 -1
  22. package/dist/_chunks/eject.mjs +69 -0
  23. package/dist/_chunks/eject.mjs.map +1 -0
  24. package/dist/_chunks/embedding-cache2.mjs +1 -1
  25. package/dist/_chunks/env.mjs +19 -0
  26. package/dist/_chunks/env.mjs.map +1 -0
  27. package/dist/_chunks/install-many.mjs +376 -0
  28. package/dist/_chunks/install-many.mjs.map +1 -0
  29. package/dist/_chunks/install.mjs +81 -326
  30. package/dist/_chunks/install.mjs.map +1 -1
  31. package/dist/_chunks/intro.mjs +63 -0
  32. package/dist/_chunks/intro.mjs.map +1 -0
  33. package/dist/_chunks/list.mjs +2 -2
  34. package/dist/_chunks/list.mjs.map +1 -1
  35. package/dist/_chunks/lockfile.mjs +3 -2
  36. package/dist/_chunks/lockfile.mjs.map +1 -1
  37. package/dist/_chunks/login.mjs +233 -0
  38. package/dist/_chunks/login.mjs.map +1 -0
  39. package/dist/_chunks/logout.mjs +27 -0
  40. package/dist/_chunks/logout.mjs.map +1 -0
  41. package/dist/_chunks/map.mjs +11 -0
  42. package/dist/_chunks/map.mjs.map +1 -0
  43. package/dist/_chunks/markdown.mjs +79 -54
  44. package/dist/_chunks/markdown.mjs.map +1 -1
  45. package/dist/_chunks/menu.mjs +33 -0
  46. package/dist/_chunks/menu.mjs.map +1 -0
  47. package/dist/_chunks/model-picker.mjs +61 -0
  48. package/dist/_chunks/model-picker.mjs.map +1 -0
  49. package/dist/_chunks/monorepo.mjs +4 -2
  50. package/dist/_chunks/monorepo.mjs.map +1 -1
  51. package/dist/_chunks/package-json.mjs.map +1 -1
  52. package/dist/_chunks/paths.mjs +3 -5
  53. package/dist/_chunks/paths.mjs.map +1 -1
  54. package/dist/_chunks/{sync-pipeline.mjs → pipeline.mjs} +346 -313
  55. package/dist/_chunks/pipeline.mjs.map +1 -0
  56. package/dist/_chunks/pool2.mjs +1 -1
  57. package/dist/_chunks/portable.mjs +151 -0
  58. package/dist/_chunks/portable.mjs.map +1 -0
  59. package/dist/_chunks/prepare-hook.mjs +2 -0
  60. package/dist/_chunks/prepare-hook2.mjs +61 -0
  61. package/dist/_chunks/prepare-hook2.mjs.map +1 -0
  62. package/dist/_chunks/prepare.mjs +47 -3
  63. package/dist/_chunks/prepare.mjs.map +1 -1
  64. package/dist/_chunks/prepare2.mjs +7 -6
  65. package/dist/_chunks/prepare2.mjs.map +1 -1
  66. package/dist/_chunks/prompts.mjs +484 -74
  67. package/dist/_chunks/prompts.mjs.map +1 -1
  68. package/dist/_chunks/pull.mjs +219 -0
  69. package/dist/_chunks/pull.mjs.map +1 -0
  70. package/dist/_chunks/regex.mjs +19 -0
  71. package/dist/_chunks/regex.mjs.map +1 -0
  72. package/dist/_chunks/retriv.mjs +2 -171
  73. package/dist/_chunks/retriv2.mjs +159 -0
  74. package/dist/_chunks/retriv2.mjs.map +1 -0
  75. package/dist/_chunks/sanitize.mjs +12 -9
  76. package/dist/_chunks/sanitize.mjs.map +1 -1
  77. package/dist/_chunks/search-helpers.mjs +8 -6
  78. package/dist/_chunks/search-helpers.mjs.map +1 -1
  79. package/dist/_chunks/search-interactive.mjs +23 -20
  80. package/dist/_chunks/search-interactive.mjs.map +1 -1
  81. package/dist/_chunks/search.mjs +3 -3
  82. package/dist/_chunks/search.mjs.map +1 -1
  83. package/dist/_chunks/semver.mjs +2755 -1
  84. package/dist/_chunks/semver.mjs.map +1 -1
  85. package/dist/_chunks/skill-installer2.mjs +10 -11
  86. package/dist/_chunks/skill-installer2.mjs.map +1 -1
  87. package/dist/_chunks/skills.mjs +6 -7
  88. package/dist/_chunks/skills.mjs.map +1 -1
  89. package/dist/_chunks/store.mjs +107 -0
  90. package/dist/_chunks/store.mjs.map +1 -0
  91. package/dist/_chunks/sync.mjs +411 -910
  92. package/dist/_chunks/sync.mjs.map +1 -1
  93. package/dist/_chunks/sync2.mjs +2 -5
  94. package/dist/_chunks/telemetry.mjs +26 -0
  95. package/dist/_chunks/telemetry.mjs.map +1 -0
  96. package/dist/_chunks/uninstall.mjs +12 -9
  97. package/dist/_chunks/uninstall.mjs.map +1 -1
  98. package/dist/_chunks/update.mjs +171 -0
  99. package/dist/_chunks/update.mjs.map +1 -0
  100. package/dist/_chunks/upload.mjs +3 -3
  101. package/dist/_chunks/validate.mjs +1 -1
  102. package/dist/_chunks/version.mjs +16 -17
  103. package/dist/_chunks/version.mjs.map +1 -1
  104. package/dist/_chunks/whoami.mjs +21 -0
  105. package/dist/_chunks/whoami.mjs.map +1 -0
  106. package/dist/_chunks/wizard.mjs +2 -190
  107. package/dist/_chunks/wizard2.mjs +200 -0
  108. package/dist/_chunks/wizard2.mjs.map +1 -0
  109. package/dist/cli.mjs +72 -53
  110. package/dist/cli.mjs.map +1 -1
  111. package/dist/prepare.mjs +4 -3
  112. package/dist/prepare.mjs.map +1 -1
  113. package/dist/retriv/worker.d.mts +5 -1
  114. package/dist/retriv/worker.d.mts.map +1 -1
  115. package/dist/retriv/worker.mjs +1 -1
  116. package/package.json +19 -28
  117. package/dist/_chunks/author-group.mjs +0 -17
  118. package/dist/_chunks/author-group.mjs.map +0 -1
  119. package/dist/_chunks/cli-helpers.mjs +0 -335
  120. package/dist/_chunks/cli-helpers.mjs.map +0 -1
  121. package/dist/_chunks/cli-helpers2.mjs +0 -2
  122. package/dist/_chunks/index.d.mts +0 -344
  123. package/dist/_chunks/index.d.mts.map +0 -1
  124. package/dist/_chunks/index2.d.mts +0 -279
  125. package/dist/_chunks/index2.d.mts.map +0 -1
  126. package/dist/_chunks/index3.d.mts +0 -44
  127. package/dist/_chunks/index3.d.mts.map +0 -1
  128. package/dist/_chunks/index4.d.mts +0 -553
  129. package/dist/_chunks/index4.d.mts.map +0 -1
  130. package/dist/_chunks/package-registry.mjs +0 -465
  131. package/dist/_chunks/package-registry.mjs.map +0 -1
  132. package/dist/_chunks/retriv.mjs.map +0 -1
  133. package/dist/_chunks/setup.mjs +0 -17
  134. package/dist/_chunks/setup.mjs.map +0 -1
  135. package/dist/_chunks/sources.mjs +0 -2654
  136. package/dist/_chunks/sources.mjs.map +0 -1
  137. package/dist/_chunks/sync-pipeline.mjs.map +0 -1
  138. package/dist/_chunks/sync-registry.mjs +0 -65
  139. package/dist/_chunks/sync-registry.mjs.map +0 -1
  140. package/dist/_chunks/types.d.mts +0 -76
  141. package/dist/_chunks/types.d.mts.map +0 -1
  142. package/dist/_chunks/types2.d.mts +0 -88
  143. package/dist/_chunks/types2.d.mts.map +0 -1
  144. package/dist/_chunks/wizard.mjs.map +0 -1
  145. package/dist/agent/index.d.mts +0 -2
  146. package/dist/agent/index.mjs +0 -4
  147. package/dist/cache/index.d.mts +0 -2
  148. package/dist/cache/index.mjs +0 -5
  149. package/dist/index.d.mts +0 -6
  150. package/dist/index.mjs +0 -6
  151. package/dist/retriv/index.d.mts +0 -3
  152. package/dist/retriv/index.mjs +0 -2
  153. package/dist/sources/index.d.mts +0 -3
  154. package/dist/sources/index.mjs +0 -3
  155. package/dist/types.d.mts +0 -4
  156. package/dist/types.mjs +0 -1
@@ -1,344 +0,0 @@
1
- interface FeaturesConfig {
2
- search: boolean;
3
- issues: boolean;
4
- discussions: boolean;
5
- releases: boolean;
6
- }
7
- interface SectionValidationWarning {
8
- warning: string;
9
- }
10
- interface CustomPrompt {
11
- heading: string;
12
- body: string;
13
- }
14
- type SkillSection = 'api-changes' | 'best-practices' | 'custom';
15
- declare const SECTION_OUTPUT_FILES: Record<SkillSection, string>;
16
- declare const SECTION_MERGE_ORDER: SkillSection[];
17
- /** Wrap section content with HTML comment markers for targeted re-assembly */
18
- declare function wrapSection(section: SkillSection, content: string): string;
19
- /** Extract marker-delimited sections from existing SKILL.md */
20
- declare function extractMarkedSections(md: string): Map<SkillSection, {
21
- start: number;
22
- end: number;
23
- }>;
24
- interface BuildSkillPromptOptions {
25
- packageName: string;
26
- /** Absolute path to skill directory with ./.skilld/ */
27
- skillDir: string;
28
- /** Package version (e.g., "3.5.13") */
29
- version?: string;
30
- /** Has GitHub issues indexed */
31
- hasIssues?: boolean;
32
- /** Has GitHub discussions indexed */
33
- hasDiscussions?: boolean;
34
- /** Has release notes */
35
- hasReleases?: boolean;
36
- /** CHANGELOG filename if found in package (e.g. CHANGELOG.md, changelog.md) */
37
- hasChangelog?: string | false;
38
- /** Resolved absolute paths to .md doc files */
39
- docFiles?: string[];
40
- /** Doc source type */
41
- docsType?: 'llms.txt' | 'readme' | 'docs';
42
- /** Package ships its own docs */
43
- hasShippedDocs?: boolean;
44
- /** Custom instructions from the user (when 'custom' section selected) */
45
- customPrompt?: CustomPrompt;
46
- /** Resolved feature flags */
47
- features?: FeaturesConfig;
48
- /** Total number of enabled sections — adjusts per-section line budgets */
49
- enabledSectionCount?: number;
50
- /** Key files from the package (e.g., dist/pkg.d.ts) — surfaced in prompt for tool hints */
51
- pkgFiles?: string[];
52
- /** Lines consumed by SKILL.md overhead (frontmatter + header + search + footer) */
53
- overheadLines?: number;
54
- }
55
- /**
56
- * Get the validate function for a section using default context (validators use fixed thresholds).
57
- * Returns null if section has no validator.
58
- */
59
- declare function getSectionValidator(section: SkillSection): ((content: string) => SectionValidationWarning[]) | null;
60
- /**
61
- * Build prompt for a single section
62
- */
63
- declare function buildSectionPrompt(opts: BuildSkillPromptOptions & {
64
- section: SkillSection;
65
- }): string;
66
- /**
67
- * Build prompts for all selected sections, sharing the computed preamble
68
- */
69
- declare function buildAllSectionPrompts(opts: BuildSkillPromptOptions & {
70
- sections: SkillSection[];
71
- }): Map<SkillSection, string>;
72
- /**
73
- * Transform an agent-specific prompt into a portable prompt for any LLM.
74
- * - Rewrites .skilld/ paths → ./references/
75
- * - Strips ## Output section (file-writing instructions)
76
- * - Strips skilld search/validate instructions
77
- * - Replaces tool-specific language with generic equivalents
78
- * - Strips agent-specific rules
79
- */
80
- declare function portabilizePrompt(prompt: string, section?: SkillSection): string;
81
- interface SkillOptions {
82
- name: string;
83
- version?: string;
84
- releasedAt?: string;
85
- /** npm dist-tags with version and release date */
86
- distTags?: Record<string, {
87
- version: string;
88
- releasedAt?: string;
89
- }>;
90
- globs?: string[];
91
- description?: string;
92
- /** LLM-generated body — replaces default heading + description */
93
- body?: string;
94
- relatedSkills: string[];
95
- hasIssues?: boolean;
96
- hasDiscussions?: boolean;
97
- hasReleases?: boolean;
98
- hasChangelog?: string | false;
99
- docsType?: 'llms.txt' | 'readme' | 'docs';
100
- hasShippedDocs?: boolean;
101
- /** Key files in package (entry points + docs) */
102
- pkgFiles?: string[];
103
- /** Model used to generate LLM sections */
104
- generatedBy?: string;
105
- /** Override directory name for frontmatter (repo-based, e.g. "vuejs-core") */
106
- dirName?: string;
107
- /** All packages tracked by this skill (multi-package skills) */
108
- packages?: Array<{
109
- name: string;
110
- }>;
111
- /** GitHub repo URL (owner/repo format or full URL) */
112
- repoUrl?: string;
113
- /** Resolved feature flags */
114
- features?: FeaturesConfig;
115
- /** Eject mode: use ./references/ paths instead of ./.skilld/ for portable skills */
116
- eject?: boolean;
117
- }
118
- declare function writeSkillMd(skillDir: string, content: string): void;
119
- declare function writeGeneratedSkillMd(skillDir: string, opts: SkillOptions): string;
120
- declare function generateSkillMd(opts: SkillOptions): string;
121
- /**
122
- * Agent types and interfaces
123
- */
124
- type AgentType = 'claude-code' | 'cursor' | 'windsurf' | 'cline' | 'codex' | 'github-copilot' | 'gemini-cli' | 'goose' | 'amp' | 'opencode' | 'roo' | 'antigravity';
125
- interface SkillMetadata {
126
- name: string;
127
- version?: string;
128
- /** ISO date string when this version was released */
129
- releasedAt?: string;
130
- description?: string;
131
- }
132
- type OptimizeModel = 'opus' | 'sonnet' | 'haiku' | 'gemini-3.1-pro' | 'gemini-3-flash' | 'gpt-5.3-codex' | 'gpt-5.3-codex-spark' | 'gpt-5.2-codex' | `pi:${string}`;
133
- interface ModelInfo {
134
- id: OptimizeModel;
135
- name: string;
136
- hint: string;
137
- recommended?: boolean;
138
- agentId: string;
139
- agentName: string;
140
- /** Grouping key for provider selection (e.g. 'claude-code', 'pi:anthropic') */
141
- provider: string;
142
- /** Human-readable provider name */
143
- providerName: string;
144
- /** Normalized vendor name for UI grouping (e.g. 'Anthropic') — merges CLI and API entries */
145
- vendorGroup: string;
146
- }
147
- interface StreamProgress {
148
- chunk: string;
149
- type: 'reasoning' | 'text';
150
- text: string;
151
- reasoning: string;
152
- section?: SkillSection;
153
- }
154
- interface OptimizeDocsOptions {
155
- packageName: string;
156
- skillDir: string;
157
- model?: OptimizeModel;
158
- version?: string;
159
- hasGithub?: boolean;
160
- hasReleases?: boolean;
161
- hasChangelog?: string | false;
162
- docFiles?: string[];
163
- docsType?: 'llms.txt' | 'readme' | 'docs';
164
- hasShippedDocs?: boolean;
165
- onProgress?: (progress: StreamProgress) => void;
166
- timeout?: number;
167
- verbose?: boolean;
168
- debug?: boolean;
169
- noCache?: boolean;
170
- /** Which sections to generate */
171
- sections?: SkillSection[];
172
- /** Custom instructions from the user */
173
- customPrompt?: CustomPrompt;
174
- /** Resolved feature flags */
175
- features?: FeaturesConfig;
176
- /** Key files from the package (e.g., dist/pkg.d.ts) */
177
- pkgFiles?: string[];
178
- /** Lines consumed by SKILL.md overhead (frontmatter + header + search + footer) */
179
- overheadLines?: number;
180
- }
181
- interface OptimizeResult {
182
- optimized: string;
183
- wasOptimized: boolean;
184
- error?: string;
185
- warnings?: string[];
186
- reasoning?: string;
187
- finishReason?: string;
188
- usage?: {
189
- inputTokens: number;
190
- outputTokens: number;
191
- totalTokens: number;
192
- };
193
- cost?: number;
194
- debugLogsDir?: string;
195
- }
196
- interface ToolProgressLog {
197
- message: (msg: string) => void;
198
- }
199
- /** Create a progress callback that emits one line per tool call, Claude Code style */
200
- declare function createToolProgress(log: ToolProgressLog): (progress: StreamProgress) => void;
201
- declare function getModelName(id: OptimizeModel): string;
202
- declare function getModelLabel(id: OptimizeModel): string;
203
- declare function getAvailableModels(): Promise<ModelInfo[]>;
204
- /**
205
- * Detect directly-used npm packages by scanning source files
206
- * Uses mlly for proper ES module parsing + tinyglobby for file discovery
207
- */
208
- interface PackageUsage {
209
- name: string;
210
- count: number;
211
- source?: 'import' | 'preset';
212
- }
213
- interface DetectResult {
214
- packages: PackageUsage[];
215
- error?: string;
216
- }
217
- /**
218
- * Scan source files to detect all directly-imported npm packages
219
- * Async with gitignore support for proper spinner animation
220
- */
221
- declare function detectImportedPackages(cwd?: string): Promise<DetectResult>;
222
- /**
223
- * Detect which agents are installed on the system
224
- */
225
- declare function detectInstalledAgents(): AgentType[];
226
- /**
227
- * Detect the target agent (where skills are installed) from env vars and cwd.
228
- * This is NOT the generator LLM — it determines the skills directory.
229
- *
230
- * Priority: env vars first (running inside agent = unambiguous), then project dirs.
231
- * When multiple agents match project dirs, returns null to trigger user prompt
232
- * rather than silently picking the first match.
233
- */
234
- declare function detectTargetAgent(): AgentType | null;
235
- /**
236
- * Get all agents matching the current project directory.
237
- * Used by promptForAgent to show relevant agents first when disambiguation is needed.
238
- */
239
- declare function detectProjectAgents(): AgentType[];
240
- /**
241
- * Get the version of an agent's CLI (if available)
242
- */
243
- declare function getAgentVersion(agentType: AgentType): string | null;
244
- /**
245
- * Sanitize skill name for filesystem
246
- */
247
- declare function sanitizeName(name: string): string;
248
- /**
249
- * Compute skill directory name from package name with -skilld suffix.
250
- * No collisions for monorepo packages (each gets a unique name).
251
- *
252
- * Examples:
253
- * vue → vue-skilld
254
- * @unhead/vue → unhead-vue-skilld
255
- * @unhead/react → unhead-react-skilld
256
- */
257
- declare function computeSkillDirName(packageName: string): string;
258
- /**
259
- * Install a skill directly to agent skill directories.
260
- * When agents are explicitly specified, creates directories as needed.
261
- * When falling back to auto-detection, only writes to agents whose skills dir already exists.
262
- */
263
- declare function installSkillForAgents(skillName: string, skillContent: string, options?: {
264
- global?: boolean;
265
- cwd?: string;
266
- agents?: AgentType[]; /** Additional files to write (filename -> content) */
267
- files?: Record<string, string>;
268
- }): {
269
- installed: AgentType[];
270
- skipped: Array<{
271
- agent: AgentType;
272
- reason: string;
273
- }>;
274
- paths: string[];
275
- };
276
- /**
277
- * Create a relative symlink from the target agent's skills dir to the shared .skills/ dir.
278
- * Only creates directories for the explicit target agent; other agents must already have
279
- * their skills dir present. This prevents skilld from polluting projects with dirs
280
- * for agents the user doesn't use (e.g. .gemini/, .agent/).
281
- */
282
- declare function linkSkillToAgents(skillName: string, sharedDir: string, cwd: string, agentType?: AgentType): void;
283
- /**
284
- * Remove per-agent symlinks for a skill when removing from shared dir.
285
- */
286
- declare function unlinkSkillFromAgents(skillName: string, cwd: string, agentType?: AgentType): void;
287
- declare function optimizeDocs(opts: OptimizeDocsOptions): Promise<OptimizeResult>;
288
- interface FrontmatterField {
289
- /** Field name in YAML frontmatter */
290
- name: string;
291
- /** Whether the field is required by the agent */
292
- required: boolean;
293
- /** Description of what the field does */
294
- description: string;
295
- /** Constraints (max length, regex, etc.) */
296
- constraints?: string;
297
- }
298
- interface AgentTarget {
299
- /** Agent identifier */
300
- agent: AgentType;
301
- /** Human-readable agent name */
302
- displayName: string;
303
- /** Check if agent is installed on the system */
304
- detectInstalled: () => boolean;
305
- /** Check env vars to detect if running inside this agent */
306
- detectEnv: () => boolean;
307
- /** Check project-level config dirs/files to detect this agent */
308
- detectProject: (cwd: string) => boolean;
309
- /** CLI command name (if agent has a CLI for skill generation) */
310
- cli?: string;
311
- /** Project-level instruction file for always-on rules (e.g. CLAUDE.md, AGENTS.md) */
312
- instructionFile?: string;
313
- /** Required skill filename (always SKILL.md for Agent Skills spec agents) */
314
- skillFilename: string;
315
- /** Project-level skill directory */
316
- skillsDir: string;
317
- /** Global (user-level) skill directory (resolved absolute path) */
318
- globalSkillsDir: string;
319
- /** Additional directories this agent scans for skills (cross-compat) */
320
- additionalSkillsDirs: string[];
321
- /** Supported frontmatter fields */
322
- frontmatter: FrontmatterField[];
323
- /** Whether `name` must exactly match the parent directory name */
324
- nameMatchesDir: boolean;
325
- /** Name field regex constraint */
326
- namePattern: string;
327
- /** How skills are discovered: 'eager' (startup scan) or 'lazy' (on-demand) */
328
- discoveryStrategy: 'eager' | 'lazy';
329
- /** Brief description of how discovery works */
330
- discoveryNotes: string;
331
- /** Whether this agent follows the agentskills.io spec */
332
- agentSkillsSpec: boolean;
333
- /** Agent-specific extensions beyond the spec */
334
- extensions: string[];
335
- /** Link to official documentation */
336
- docs: string;
337
- /** Additional notes, quirks, known issues */
338
- notes: string[];
339
- /** Agent-specific instruction text for skill activation (written to instructionFile) */
340
- skillActivationHint?: string;
341
- }
342
- declare const targets: Record<AgentType, AgentTarget>;
343
- export { buildAllSectionPrompts as A, FeaturesConfig as B, StreamProgress as C, generateSkillMd as D, SkillOptions as E, wrapSection as F, SECTION_MERGE_ORDER as I, SECTION_OUTPUT_FILES as L, extractMarkedSections as M, getSectionValidator as N, writeGeneratedSkillMd as O, portabilizePrompt as P, SkillSection as R, OptimizeResult as S, SkillMetadata as T, getModelName as _, computeSkillDirName as a, OptimizeDocsOptions as b, sanitizeName as c, detectProjectAgents as d, detectTargetAgent as f, getModelLabel as g, getAvailableModels as h, optimizeDocs as i, buildSectionPrompt as j, writeSkillMd as k, unlinkSkillFromAgents as l, detectImportedPackages as m, AgentTarget as n, installSkillForAgents as o, getAgentVersion as p, FrontmatterField as r, linkSkillToAgents as s, targets as t, detectInstalledAgents as u, createToolProgress as v, AgentType as w, OptimizeModel as x, ModelInfo as y, CustomPrompt as z };
344
- //# sourceMappingURL=index.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/core/config.ts","../../src/agent/prompts/optional/types.ts","../../src/agent/prompts/optional/registry.ts","../../src/agent/prompts/prompt.ts","../../src/agent/prompts/skill.ts","../../src/agent/types.ts","../../src/agent/clis/types.ts","../../src/agent/clis/cli-progress.ts","../../src/agent/clis/index.ts","../../src/agent/detect-imports.ts","../../src/agent/detect.ts","../../src/agent/install.ts","../../src/agent/llm-enhancer.ts","../../src/agent/targets/types.ts","../../src/agent/targets/registry.ts"],"mappings":"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"}
@@ -1,279 +0,0 @@
1
- import { B as FeaturesConfig } from "./index.mjs";
2
- /** Root of the global cache */
3
- declare const CACHE_DIR: string;
4
- /** References subdirectory: `~/.skilld/references/<pkg>@<version>/` */
5
- declare const REFERENCES_DIR: string;
6
- /** Repo-level cache (issues, discussions, releases shared across monorepo packages) */
7
- declare const REPOS_DIR: string;
8
- /** Repo cache dir with path-traversal validation */
9
- declare function getRepoCacheDir(owner: string, repo: string): string;
10
- /** search.db path for a `name@version` */
11
- declare function getPackageDbPath(name: string, version: string): string;
12
- interface IndexDoc {
13
- id: string;
14
- content: string;
15
- metadata: Record<string, any>;
16
- }
17
- /**
18
- * Resolve every symlink under `<skillDir>/.skilld/` to its real path, plus
19
- * the parent dirs CLI sandboxes need (e.g. Gemini). What an LLM CLI passes to
20
- * `--add-dir` to make references readable.
21
- */
22
- declare function getSkillReferenceDirs(skillDir: string): string[];
23
- /**
24
- * Remove the transient `<skillDir>/.skilld/` symlink dir. Used after eject to
25
- * clean up references that have been copied as real files.
26
- */
27
- declare function clearSkillInternalDir(skillDir: string): void;
28
- /** Classify a cached doc path into the right metadata type */
29
- declare function classifyCachedDoc(path: string): {
30
- type: string;
31
- number?: number;
32
- };
33
- /** Clear cache + db for --force flag */
34
- declare function forceClearCache(packageName: string, version: string, repoInfo?: {
35
- owner: string;
36
- repo: string;
37
- }): void;
38
- /** Link all reference symlinks (pkg, docs, issues, discussions, releases) */
39
- declare function linkAllReferences(skillDir: string, packageName: string, cwd: string, version: string, docsType: string, extraPackages?: Array<{
40
- name: string;
41
- version?: string;
42
- }>, features?: FeaturesConfig, repoInfo?: {
43
- owner: string;
44
- repo: string;
45
- }): void;
46
- /** Detect docs type from cached directory contents */
47
- declare function detectDocsType(packageName: string, version: string, repoUrl?: string, llmsUrl?: string): {
48
- docsType: 'docs' | 'llms.txt' | 'readme';
49
- docSource?: string;
50
- };
51
- /** Eject (portable copy) of cached references into a skill dir */
52
- declare function ejectReferences(skillDir: string, packageName: string, cwd: string, version: string, docsType: string, features?: FeaturesConfig, repoInfo?: {
53
- owner: string;
54
- repo: string;
55
- }): void;
56
- interface CachedReferencesResult {
57
- /** Docs to feed the embedding index (empty if db already exists) */
58
- docsToIndex: IndexDoc[];
59
- /** Resolved doc-source label (URL or git path) */
60
- docSource: string;
61
- /** Detected docs type from cache layout */
62
- docsType: 'docs' | 'llms.txt' | 'readme';
63
- /** _INDEX.md to write if missing (backfill for older caches) */
64
- backfillIndex?: {
65
- path: string;
66
- content: string;
67
- };
68
- }
69
- interface LoadCachedReferencesOptions {
70
- packageName: string;
71
- version: string;
72
- repoUrl?: string;
73
- llmsUrl?: string;
74
- readmeUrl?: string;
75
- onProgress: (message: string) => void;
76
- /** Caller supplies index generator to avoid the cache module pulling sources */
77
- generateDocsIndex: (docs: Array<{
78
- path: string;
79
- content: string;
80
- }>) => string | null;
81
- }
82
- /**
83
- * Load cached references for a package and produce the index/backfill data
84
- * needed to continue the sync pipeline without re-fetching.
85
- */
86
- declare function loadCachedReferences(opts: LoadCachedReferencesOptions): CachedReferencesResult;
87
- /**
88
- * Cache types
89
- */
90
- interface CacheConfig {
91
- /** Package name */
92
- name: string;
93
- /** Package version (full semver) */
94
- version: string;
95
- }
96
- interface CachedPackage {
97
- name: string;
98
- version: string;
99
- dir: string;
100
- }
101
- interface CachedDoc {
102
- path: string;
103
- content: string;
104
- }
105
- interface ReferenceCacheLinkOpts {
106
- extraPackages?: Array<{
107
- name: string;
108
- version?: string;
109
- }>;
110
- features?: FeaturesConfig;
111
- repoInfo?: {
112
- owner: string;
113
- repo: string;
114
- };
115
- }
116
- interface ReferenceCacheEjectOpts {
117
- features?: FeaturesConfig;
118
- repoInfo?: {
119
- owner: string;
120
- repo: string;
121
- };
122
- }
123
- interface ReferenceCache {
124
- readonly packageName: string;
125
- /** May be undefined when caller only knows the package name (e.g. merge against a lock without a recorded version). Cache-keyed methods/getters throw in that case; pkg/has/keyFiles fall back to node_modules. */
126
- readonly version: string | undefined;
127
- /** Throws if accessed when version is undefined. */
128
- readonly versionKey: string;
129
- /** Throws if accessed when version is undefined. */
130
- readonly dir: string;
131
- ensure: () => void;
132
- has: () => boolean;
133
- write: (docs: CachedDoc[]) => void;
134
- writeSections: (sections: Array<{
135
- file: string;
136
- content: string;
137
- }>) => void;
138
- readSection: (file: string) => string | null;
139
- readDocs: () => CachedDoc[];
140
- detectDocs: (repoUrl?: string, llmsUrl?: string) => {
141
- docsType: 'docs' | 'llms.txt' | 'readme';
142
- docSource?: string;
143
- };
144
- load: (opts: Omit<LoadCachedReferencesOptions, 'packageName' | 'version'>) => CachedReferencesResult;
145
- linkInto: (skillDir: string, cwd: string, docsType: string, opts?: ReferenceCacheLinkOpts) => void;
146
- linkPkgNamed: (skillDir: string, cwd: string) => void;
147
- eject: (skillDir: string, cwd: string, docsType: string, opts?: ReferenceCacheEjectOpts) => void;
148
- clearForce: (repoInfo?: {
149
- owner: string;
150
- repo: string;
151
- }) => void;
152
- clearSkillInternal: (skillDir: string) => void;
153
- pkgDir: (cwd: string) => string | null;
154
- hasShipped: (cwd: string) => boolean;
155
- keyFiles: (cwd: string) => string[];
156
- }
157
- declare function createReferenceCache(packageName: string, version?: string): ReferenceCache;
158
- /** Resolve package directory: node_modules first, then global cache */
159
- declare function resolvePkgDir(name: string, cwd: string, version?: string): string | null;
160
- interface ShippedSkill {
161
- skillName: string;
162
- skillDir: string;
163
- }
164
- /** Check if package ships a skills/ directory with SKILL.md or _SKILL.md subdirs */
165
- declare function getShippedSkills(name: string, cwd: string, version?: string): ShippedSkill[];
166
- /** Create symlink from skills dir to shipped skill dir */
167
- declare function linkShippedSkill(baseDir: string, skillName: string, targetDir: string): void;
168
- /**
169
- * Check if package is cached at given version
170
- * @internal
171
- */
172
- declare function isCached(name: string, version: string): boolean;
173
- /** Check if cache only has docs/README.md (pkg/ already has this) */
174
- declare function isReadmeOnlyCache(cacheDir: string): boolean;
175
- declare function inferDocsTypeFromCache(cacheDir: string, source?: string): 'llms.txt' | 'readme' | 'docs';
176
- /**
177
- * Ensure cache directories exist
178
- */
179
- declare function ensureCacheDir(): void;
180
- /**
181
- * Write docs to cache
182
- * @internal
183
- */
184
- declare function writeToCache(name: string, version: string, docs: CachedDoc[]): string;
185
- /**
186
- * Write docs to repo-level cache (~/.skilld/repos/<owner>/<repo>/)
187
- */
188
- declare function writeToRepoCache(owner: string, repo: string, docs: CachedDoc[]): string;
189
- /**
190
- * Create symlink from .skilld dir to a repo-level cached subdirectory.
191
- * .claude/skills/<skill>/.skilld/<subdir> -> ~/.skilld/repos/<owner>/<repo>/<subdir>
192
- */
193
- declare function linkRepoCachedDir(skillDir: string, owner: string, repo: string, subdir: string): void;
194
- /**
195
- * Create symlink from .skilld dir to a cached subdirectory.
196
- * Unified handler for docs, issues, discussions, sections, releases.
197
- *
198
- * Structure:
199
- * .claude/skills/<skill>/.skilld/<subdir> -> ~/.skilld/references/<pkg>@<version>/<subdir>
200
- *
201
- * The .skilld/ dirs are gitignored. After clone, `skilld install` recreates from lockfile.
202
- */
203
- declare function linkCachedDir(skillDir: string, name: string, version: string, subdir: string): void;
204
- /**
205
- * Create symlink from .skilld dir to package directory
206
- *
207
- * Structure:
208
- * .claude/skills/<skill>/.skilld/pkg -> node_modules/<pkg> OR ~/.skilld/references/<pkg>@<version>/pkg
209
- *
210
- * This gives access to package.json, README.md, dist/, and any shipped docs/
211
- */
212
- declare function linkPkg(skillDir: string, name: string, cwd: string, version?: string): void;
213
- /**
214
- * Create named symlink from .skilld dir to package directory.
215
- * Short name = last segment of package name (e.g., @vue/reactivity → pkg-reactivity)
216
- *
217
- * Structure:
218
- * .claude/skills/<skill>/.skilld/pkg-<short> -> node_modules/<pkg>
219
- */
220
- declare function linkPkgNamed(skillDir: string, name: string, cwd: string, version?: string): void;
221
- /**
222
- * Get key files from a package directory for display
223
- * Returns entry points + docs files
224
- */
225
- declare function getPkgKeyFiles(name: string, cwd: string, version?: string): string[];
226
- /**
227
- * Write LLM-generated section outputs to global cache for cross-project reuse
228
- *
229
- * Structure:
230
- * ~/.skilld/references/<pkg>@<version>/sections/_BEST_PRACTICES.md
231
- */
232
- declare function writeSections(name: string, version: string, sections: Array<{
233
- file: string;
234
- content: string;
235
- }>): void;
236
- /**
237
- * Read a cached section from the global references dir
238
- */
239
- declare function readCachedSection(name: string, version: string, file: string): string | null;
240
- declare function hasShippedDocs(name: string, cwd: string, version?: string): boolean;
241
- /**
242
- * List all cached packages
243
- */
244
- declare function listCached(): CachedPackage[];
245
- /**
246
- * Read cached docs for a package
247
- */
248
- declare function readCachedDocs(name: string, version: string): CachedDoc[];
249
- /**
250
- * Clear cache for a specific package
251
- */
252
- declare function clearCache(name: string, version: string): boolean;
253
- /**
254
- * Clear all cache
255
- */
256
- declare function clearAllCache(): number;
257
- /**
258
- * List files in .skilld directory (pkg + docs) as relative paths for prompt context
259
- * Returns paths like ./.skilld/pkg/README.md, ./.skilld/docs/api.md
260
- */
261
- declare function listReferenceFiles(skillDir: string, maxDepth?: number): string[];
262
- /**
263
- * Version utilities
264
- */
265
- /**
266
- * Get exact version key for cache keying
267
- */
268
- declare function getVersionKey(version: string): string;
269
- /**
270
- * Get cache key for a package: name@version
271
- */
272
- declare function getCacheKey(name: string, version: string): string;
273
- /**
274
- * Get path to cached package references.
275
- * Validates name/version to prevent path traversal.
276
- */
277
- declare function getCacheDir(name: string, version: string): string;
278
- export { createReferenceCache as A, forceClearCache as B, ShippedSkill as C, ReferenceCache as D, resolvePkgDir as E, LoadCachedReferencesOptions as F, REFERENCES_DIR as G, linkAllReferences as H, classifyCachedDoc as I, getRepoCacheDir as J, REPOS_DIR as K, clearSkillInternalDir as L, CachedDoc as M, CachedPackage as N, ReferenceCacheEjectOpts as O, CachedReferencesResult as P, detectDocsType as R, writeToRepoCache as S, linkShippedSkill as T, loadCachedReferences as U, getSkillReferenceDirs as V, CACHE_DIR as W, listReferenceFiles as _, clearCache as a, writeSections as b, hasShippedDocs as c, isReadmeOnlyCache as d, linkCachedDir as f, listCached as g, linkRepoCachedDir as h, clearAllCache as i, CacheConfig as j, ReferenceCacheLinkOpts as k, inferDocsTypeFromCache as l, linkPkgNamed as m, getCacheKey as n, ensureCacheDir as o, linkPkg as p, getPackageDbPath as q, getVersionKey as r, getPkgKeyFiles as s, getCacheDir as t, isCached as u, readCachedDocs as v, getShippedSkills as w, writeToCache as x, readCachedSection as y, ejectReferences as z };
279
- //# sourceMappingURL=index2.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index2.d.mts","names":[],"sources":["../../src/core/paths.ts","../../src/sources/content-resolver.ts","../../src/cache/references.ts","../../src/cache/types.ts","../../src/cache/reference-cache.ts","../../src/core/prepare.ts","../../src/cache/storage.ts","../../src/cache/version.ts"],"mappings":"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"}