skilld 1.7.3 → 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 (161) 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 +737 -619
  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 +11 -8
  10. package/dist/_chunks/assemble.mjs.map +1 -1
  11. package/dist/_chunks/author.mjs +77 -131
  12. package/dist/_chunks/author.mjs.map +1 -1
  13. package/dist/_chunks/cache.mjs +320 -54
  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 +7 -4
  20. package/dist/_chunks/detect.mjs +54 -44
  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 +2 -2
  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 +86 -371
  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 +31 -7
  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 +73 -0
  50. package/dist/_chunks/monorepo.mjs.map +1 -0
  51. package/dist/_chunks/package-json.mjs.map +1 -1
  52. package/dist/_chunks/paths.mjs +47 -0
  53. package/dist/_chunks/paths.mjs.map +1 -0
  54. package/dist/_chunks/pipeline.mjs +985 -0
  55. package/dist/_chunks/pipeline.mjs.map +1 -0
  56. package/dist/_chunks/pool2.mjs +2 -2
  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 +9 -8
  65. package/dist/_chunks/prepare2.mjs.map +1 -1
  66. package/dist/_chunks/prompts.mjs +784 -26
  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 +9 -8
  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 -4
  82. package/dist/_chunks/search.mjs.map +1 -1
  83. package/dist/_chunks/{sources.mjs → semver.mjs} +1128 -838
  84. package/dist/_chunks/semver.mjs.map +1 -0
  85. package/dist/_chunks/skill-installer.mjs +2 -0
  86. package/dist/_chunks/skill-installer2.mjs +154 -0
  87. package/dist/_chunks/skill-installer2.mjs.map +1 -0
  88. package/dist/_chunks/skills.mjs +12 -12
  89. package/dist/_chunks/skills.mjs.map +1 -1
  90. package/dist/_chunks/store.mjs +107 -0
  91. package/dist/_chunks/store.mjs.map +1 -0
  92. package/dist/_chunks/sync.mjs +761 -1349
  93. package/dist/_chunks/sync.mjs.map +1 -1
  94. package/dist/_chunks/sync2.mjs +2 -3
  95. package/dist/_chunks/telemetry.mjs +26 -0
  96. package/dist/_chunks/telemetry.mjs.map +1 -0
  97. package/dist/_chunks/uninstall.mjs +15 -13
  98. package/dist/_chunks/uninstall.mjs.map +1 -1
  99. package/dist/_chunks/update.mjs +171 -0
  100. package/dist/_chunks/update.mjs.map +1 -0
  101. package/dist/_chunks/upload.mjs +4 -4
  102. package/dist/_chunks/validate.mjs +1 -1
  103. package/dist/_chunks/version.mjs +16 -27
  104. package/dist/_chunks/version.mjs.map +1 -1
  105. package/dist/_chunks/whoami.mjs +21 -0
  106. package/dist/_chunks/whoami.mjs.map +1 -0
  107. package/dist/_chunks/wizard.mjs +2 -190
  108. package/dist/_chunks/wizard2.mjs +200 -0
  109. package/dist/_chunks/wizard2.mjs.map +1 -0
  110. package/dist/cli.mjs +77 -59
  111. package/dist/cli.mjs.map +1 -1
  112. package/dist/prepare.mjs +5 -4
  113. package/dist/prepare.mjs.map +1 -1
  114. package/dist/retriv/worker.d.mts +5 -1
  115. package/dist/retriv/worker.d.mts.map +1 -1
  116. package/dist/retriv/worker.mjs +1 -1
  117. package/package.json +20 -29
  118. package/dist/_chunks/author-group.mjs +0 -17
  119. package/dist/_chunks/author-group.mjs.map +0 -1
  120. package/dist/_chunks/cli-helpers.mjs +0 -335
  121. package/dist/_chunks/cli-helpers.mjs.map +0 -1
  122. package/dist/_chunks/cli-helpers2.mjs +0 -2
  123. package/dist/_chunks/config.mjs +0 -122
  124. package/dist/_chunks/config.mjs.map +0 -1
  125. package/dist/_chunks/index.d.mts +0 -151
  126. package/dist/_chunks/index.d.mts.map +0 -1
  127. package/dist/_chunks/index2.d.mts +0 -44
  128. package/dist/_chunks/index2.d.mts.map +0 -1
  129. package/dist/_chunks/index3.d.mts +0 -589
  130. package/dist/_chunks/index3.d.mts.map +0 -1
  131. package/dist/_chunks/prefix.mjs +0 -108
  132. package/dist/_chunks/prefix.mjs.map +0 -1
  133. package/dist/_chunks/retriv.mjs.map +0 -1
  134. package/dist/_chunks/setup.mjs +0 -17
  135. package/dist/_chunks/setup.mjs.map +0 -1
  136. package/dist/_chunks/shared.mjs +0 -503
  137. package/dist/_chunks/shared.mjs.map +0 -1
  138. package/dist/_chunks/skill.mjs +0 -329
  139. package/dist/_chunks/skill.mjs.map +0 -1
  140. package/dist/_chunks/sources.mjs.map +0 -1
  141. package/dist/_chunks/sync-registry.mjs +0 -59
  142. package/dist/_chunks/sync-registry.mjs.map +0 -1
  143. package/dist/_chunks/sync-shared.mjs +0 -2
  144. package/dist/_chunks/sync-shared2.mjs +0 -1020
  145. package/dist/_chunks/sync-shared2.mjs.map +0 -1
  146. package/dist/_chunks/types.d.mts +0 -88
  147. package/dist/_chunks/types.d.mts.map +0 -1
  148. package/dist/_chunks/wizard.mjs.map +0 -1
  149. package/dist/agent/index.d.mts +0 -346
  150. package/dist/agent/index.d.mts.map +0 -1
  151. package/dist/agent/index.mjs +0 -5
  152. package/dist/cache/index.d.mts +0 -2
  153. package/dist/cache/index.mjs +0 -4
  154. package/dist/index.d.mts +0 -5
  155. package/dist/index.mjs +0 -5
  156. package/dist/retriv/index.d.mts +0 -3
  157. package/dist/retriv/index.mjs +0 -2
  158. package/dist/sources/index.d.mts +0 -2
  159. package/dist/sources/index.mjs +0 -3
  160. package/dist/types.d.mts +0 -4
  161. package/dist/types.mjs +0 -1
@@ -1,589 +0,0 @@
1
- import * as _$ofetch from "ofetch";
2
- interface CachedDoc$1 {
3
- path: string;
4
- content: string;
5
- }
6
- /**
7
- * Fetch blog release notes from package presets
8
- * Filters to only releases matching or older than the installed version
9
- * Returns CachedDoc[] with releases/blog-{version}.md files
10
- */
11
- declare function fetchBlogReleases(packageName: string, installedVersion: string): Promise<CachedDoc$1[]>;
12
- /**
13
- * Doc resolver types
14
- */
15
- interface NpmPackageInfo {
16
- name: string;
17
- version?: string;
18
- description?: string;
19
- homepage?: string;
20
- repository?: string | {
21
- type: string;
22
- url: string;
23
- directory?: string;
24
- };
25
- readme?: string;
26
- dependencies?: Record<string, string>;
27
- devDependencies?: Record<string, string>;
28
- peerDependencies?: Record<string, string>;
29
- }
30
- interface ResolvedPackage {
31
- name: string;
32
- version?: string;
33
- /** ISO date string when this version was released */
34
- releasedAt?: string;
35
- description?: string;
36
- /** Production dependencies with version specifiers */
37
- dependencies?: Record<string, string>;
38
- /** npm dist-tags with version and release date */
39
- distTags?: Record<string, {
40
- version: string;
41
- releasedAt?: string;
42
- }>;
43
- docsUrl?: string;
44
- llmsUrl?: string;
45
- readmeUrl?: string;
46
- repoUrl?: string;
47
- /** Git docs folder - versioned docs from repo */
48
- gitDocsUrl?: string;
49
- /** Git tag/ref used for gitDocsUrl */
50
- gitRef?: string;
51
- /** True when gitRef is a branch fallback (no version tag found) */
52
- gitDocsFallback?: boolean;
53
- /** URL pattern to crawl for docs */
54
- crawlUrl?: string;
55
- }
56
- interface LocalDependency {
57
- name: string;
58
- version: string;
59
- }
60
- interface LlmsContent {
61
- raw: string;
62
- /** Markdown links extracted from llms.txt */
63
- links: LlmsLink[];
64
- }
65
- interface LlmsLink {
66
- title: string;
67
- url: string;
68
- }
69
- interface FetchedDoc {
70
- url: string;
71
- title: string;
72
- content: string;
73
- }
74
- interface ResolveAttempt {
75
- source: 'npm' | 'crates' | 'github-docs' | 'github-meta' | 'github-search' | 'llms.txt' | 'readme';
76
- url?: string;
77
- status: 'success' | 'not-found' | 'error';
78
- message?: string;
79
- }
80
- interface ResolveResult {
81
- package: ResolvedPackage | null;
82
- attempts: ResolveAttempt[];
83
- /** npm registry version, available even when doc resolution fails */
84
- registryVersion?: string;
85
- }
86
- declare function resolveCrateDocsWithAttempts(crateName: string, options?: {
87
- version?: string;
88
- onProgress?: (message: string) => void;
89
- }): Promise<ResolveResult>;
90
- /**
91
- * Website crawl doc source — fetches docs by crawling a URL pattern
92
- */
93
- /**
94
- * Crawl a URL pattern and return docs as cached doc format.
95
- * Uses HTTP crawler (no browser needed) with sitemap discovery + glob filtering.
96
- *
97
- * @param url - URL with optional glob pattern (e.g. 'https://example.com/docs/**')
98
- * @param onProgress - Optional progress callback
99
- * @param maxPages - Max pages to crawl (default 200)
100
- */
101
- declare function fetchCrawledDocs(url: string, onProgress?: (message: string) => void, maxPages?: number): Promise<Array<{
102
- path: string;
103
- content: string;
104
- }>>;
105
- /** Append glob pattern to a docs URL for crawling */
106
- declare function toCrawlPattern(docsUrl: string): string;
107
- /**
108
- * GitHub discussions fetching via gh CLI GraphQL
109
- * Prioritizes Q&A and Help categories, includes accepted answers
110
- * Comment quality filtering, smart truncation, noise removal
111
- */
112
- interface DiscussionComment {
113
- body: string;
114
- author: string;
115
- reactions: number;
116
- isMaintainer?: boolean;
117
- }
118
- interface GitHubDiscussion {
119
- number: number;
120
- title: string;
121
- body: string;
122
- category: string;
123
- createdAt: string;
124
- url: string;
125
- upvoteCount: number;
126
- comments: number;
127
- isMaintainer?: boolean;
128
- answer?: string;
129
- topComments: DiscussionComment[];
130
- }
131
- /**
132
- * Fetch discussions from a GitHub repo using gh CLI GraphQL.
133
- * Prioritizes Q&A and Help categories. Includes accepted answer body for answered discussions.
134
- * Fetches extra comments and scores them for quality.
135
- */
136
- declare function fetchGitHubDiscussions(owner: string, repo: string, limit?: number, releasedAt?: string, fromDate?: string): Promise<GitHubDiscussion[]>;
137
- /**
138
- * Format a single discussion as markdown with YAML frontmatter
139
- */
140
- declare function formatDiscussionAsMarkdown(d: GitHubDiscussion): string;
141
- /**
142
- * Generate a summary index of all discussions for quick LLM scanning.
143
- * Groups by category so the LLM can quickly find Q&A vs general discussions.
144
- */
145
- declare function generateDiscussionIndex(discussions: GitHubDiscussion[]): string;
146
- /**
147
- * Docs index generation — creates _INDEX.md for docs directory
148
- */
149
- /**
150
- * Generate a _INDEX.md for a docs/ directory.
151
- * Input: array of cached docs with paths like `docs/api/reactivity.md`.
152
- * Output: markdown index grouped by directory with title + description per page.
153
- */
154
- declare function generateDocsIndex(docs: Array<{
155
- path: string;
156
- content: string;
157
- }>): string;
158
- interface EntryFile {
159
- path: string;
160
- content: string;
161
- type: 'types' | 'source';
162
- }
163
- /**
164
- * Glob .d.ts type definition files from a package directory, skipping junk.
165
- */
166
- declare function resolveEntryFiles(packageDir: string): Promise<EntryFile[]>;
167
- /**
168
- * Git repo skill source — parse inputs + fetch pre-authored skills from repos
169
- *
170
- * Supports GitHub shorthand (owner/repo), full URLs, SSH, GitLab, and local paths.
171
- * Skills are pre-authored SKILL.md files — no doc resolution or LLM generation needed.
172
- */
173
- interface GitSkillSource {
174
- type: 'github' | 'gitlab' | 'git-ssh' | 'local';
175
- owner?: string;
176
- repo?: string;
177
- /** Direct path to a specific skill (from /tree/ref/path URLs) */
178
- skillPath?: string;
179
- /** Branch/tag parsed from URL */
180
- ref?: string;
181
- /** Absolute path for local sources */
182
- localPath?: string;
183
- }
184
- interface RemoteSkill {
185
- /** From SKILL.md frontmatter `name` field, or directory name */
186
- name: string;
187
- /** From SKILL.md frontmatter `description` field */
188
- description: string;
189
- /** Path within repo (e.g., "skills/web-design-guidelines") */
190
- path: string;
191
- /** Full SKILL.md content */
192
- content: string;
193
- /** Supporting files (scripts/, references/, assets/) */
194
- files: Array<{
195
- path: string;
196
- content: string;
197
- }>;
198
- }
199
- /**
200
- * Detect whether an input string is a git skill source.
201
- * Returns null for npm package names (including scoped @scope/pkg).
202
- */
203
- declare function parseGitSkillInput(input: string): GitSkillSource | null;
204
- /**
205
- * Parse name and description from SKILL.md frontmatter.
206
- */
207
- declare function parseSkillFrontmatterName(content: string): {
208
- name?: string;
209
- description?: string;
210
- };
211
- /**
212
- * Fetch skills from a git source. Returns list of discovered skills.
213
- */
214
- declare function fetchGitSkills(source: GitSkillSource, onProgress?: (msg: string) => void): Promise<{
215
- skills: RemoteSkill[];
216
- }>;
217
- /** Minimum git-doc file count to prefer over llms.txt */
218
- declare const MIN_GIT_DOCS = 5;
219
- /** True when git-docs exist but are too few to be useful (< MIN_GIT_DOCS) */
220
- declare const isShallowGitDocs: (n: number) => boolean;
221
- interface GitDocsResult {
222
- /** URL pattern for fetching docs (use with ref) */
223
- baseUrl: string;
224
- /** Git ref (tag) used */
225
- ref: string;
226
- /** List of doc file paths relative to repo root */
227
- files: string[];
228
- /** Prefix to strip when normalizing paths to docs/ (e.g. 'apps/evalite-docs/src/content/') for nested monorepo docs */
229
- docsPrefix?: string;
230
- /** Full repo file tree — only set when discoverDocFiles() heuristic was used (not standard docs/ prefix) */
231
- allFiles?: string[];
232
- /** True when ref is a branch (main/master) rather than a version-specific tag */
233
- fallback?: boolean;
234
- }
235
- /**
236
- * Filter out docs for other frameworks when the package targets a specific one.
237
- * e.g. @tanstack/vue-query → keep vue + shared docs, exclude react/solid/angular
238
- * Uses word-boundary matching to catch all path conventions:
239
- * framework/react/, 0.react/, api/ai-react.md, react-native.mdx, etc.
240
- */
241
- declare function filterFrameworkDocs(files: string[], packageName?: string): string[];
242
- /**
243
- * Fetch versioned docs from GitHub repo's docs/ folder.
244
- * Pass packageName to check doc overrides (e.g. vue -> vuejs/docs).
245
- */
246
- declare function fetchGitDocs(owner: string, repo: string, version: string, packageName?: string, repoUrl?: string): Promise<GitDocsResult | null>;
247
- /**
248
- * Validate that discovered git docs are relevant by cross-referencing llms.txt links
249
- * against the repo file tree. Uses extensionless suffix matching to handle monorepo nesting.
250
- *
251
- * Returns { isValid, matchRatio } where isValid = matchRatio >= 0.3
252
- */
253
- declare function validateGitDocsWithLlms(llmsLinks: LlmsLink[], repoFiles: string[]): {
254
- isValid: boolean;
255
- matchRatio: number;
256
- };
257
- /**
258
- * Fetch GitHub repo metadata to get website URL.
259
- * Pass packageName to check doc overrides first (avoids API call).
260
- */
261
- declare function fetchGitHubRepoMeta(owner: string, repo: string, packageName?: string): Promise<{
262
- homepage?: string;
263
- } | null>;
264
- /**
265
- * Resolve README URL for a GitHub repo, returns ungh:// pseudo-URL or raw URL
266
- */
267
- declare function fetchReadme(owner: string, repo: string, subdir?: string, ref?: string): Promise<string | null>;
268
- /**
269
- * Fetch README content from ungh:// pseudo-URL, file:// URL, or regular URL
270
- */
271
- declare function fetchReadmeContent(url: string): Promise<string | null>;
272
- /**
273
- * Resolve a GitHub repo into a ResolvedPackage (no npm registry needed).
274
- * Fetches repo meta, latest release version, git docs, README, and llms.txt.
275
- */
276
- declare function resolveGitHubRepo(owner: string, repo: string, onProgress?: (msg: string) => void): Promise<ResolvedPackage | null>;
277
- /**
278
- * GitHub issues fetching via gh CLI Search API
279
- * Freshness-weighted scoring, type quotas, comment quality filtering
280
- * Categorized by labels, noise filtered out, non-technical issues detected
281
- */
282
- type IssueType = 'bug' | 'question' | 'docs' | 'feature' | 'other';
283
- interface IssueComment {
284
- body: string;
285
- author: string;
286
- reactions: number;
287
- isMaintainer?: boolean;
288
- }
289
- interface GitHubIssue {
290
- number: number;
291
- title: string;
292
- state: string;
293
- labels: string[];
294
- body: string;
295
- createdAt: string;
296
- url: string;
297
- reactions: number;
298
- comments: number;
299
- type: IssueType;
300
- topComments: IssueComment[];
301
- /** Freshness-weighted score: reactions * decay(age) */
302
- score: number;
303
- /** For closed issues: version where fix landed, if detectable */
304
- resolvedIn?: string;
305
- }
306
- /**
307
- * Check if gh CLI is installed and authenticated (cached)
308
- */
309
- declare function isGhAvailable(): boolean;
310
- /**
311
- * Fetch issues from a GitHub repo with freshness-weighted scoring and type quotas.
312
- * Returns a balanced mix: bugs > questions > docs > other > features.
313
- * Filters noise, non-technical content, and enriches with quality comments.
314
- */
315
- declare function fetchGitHubIssues(owner: string, repo: string, limit?: number, releasedAt?: string, fromDate?: string): Promise<GitHubIssue[]>;
316
- /**
317
- * Format a single issue as markdown with YAML frontmatter
318
- */
319
- declare function formatIssueAsMarkdown(issue: GitHubIssue): string;
320
- /**
321
- * Generate a summary index of all issues for quick LLM scanning.
322
- * Groups by type so the LLM can quickly find bugs vs questions.
323
- */
324
- declare function generateIssueIndex(issues: GitHubIssue[]): string;
325
- /**
326
- * Check for llms.txt at a docs URL, returns the llms.txt URL if found
327
- */
328
- declare function fetchLlmsUrl(docsUrl: string): Promise<string | null>;
329
- /**
330
- * Fetch and parse llms.txt content
331
- */
332
- declare function fetchLlmsTxt(url: string): Promise<LlmsContent | null>;
333
- /**
334
- * Parse markdown links from llms.txt to get .md file paths
335
- */
336
- declare function parseMarkdownLinks(content: string): LlmsLink[];
337
- declare function downloadLlmsDocs(llmsContent: LlmsContent, baseUrl: string, onProgress?: (url: string, index: number, total: number) => void): Promise<FetchedDoc[]>;
338
- /**
339
- * Normalize llms.txt links to relative paths for local access
340
- * Handles: absolute URLs, root-relative paths, and relative paths
341
- */
342
- declare function normalizeLlmsLinks(content: string, baseUrl?: string): string;
343
- /**
344
- * Extract sections from llms-full.txt by URL patterns
345
- * Format: ---\nurl: /path.md\n---\n<content>\n\n---\nurl: ...
346
- */
347
- declare function extractSections(content: string, patterns: string[]): string | null;
348
- /**
349
- * Search npm registry for packages matching a query.
350
- * Used as a fallback when direct package lookup fails.
351
- */
352
- declare function searchNpmPackages(query: string, size?: number): Promise<Array<{
353
- name: string;
354
- description?: string;
355
- version: string;
356
- }>>;
357
- /**
358
- * Fetch package info from npm registry
359
- */
360
- declare function fetchNpmPackage(packageName: string): Promise<NpmPackageInfo | null>;
361
- interface DistTagInfo {
362
- version: string;
363
- releasedAt?: string;
364
- }
365
- interface NpmRegistryMeta {
366
- releasedAt?: string;
367
- distTags?: Record<string, DistTagInfo>;
368
- }
369
- /**
370
- * Fetch release date and dist-tags from npm registry
371
- */
372
- declare function fetchNpmRegistryMeta(packageName: string, version: string): Promise<NpmRegistryMeta>;
373
- type ResolveStep = 'npm' | 'github-docs' | 'github-meta' | 'github-search' | 'readme' | 'llms.txt' | 'crawl' | 'local';
374
- interface ResolveOptions {
375
- /** User's installed version - used to fetch versioned git docs */
376
- version?: string;
377
- /** Current working directory - for local readme fallback */
378
- cwd?: string;
379
- /** Progress callback - called before each resolution step */
380
- onProgress?: (step: ResolveStep) => void;
381
- }
382
- /**
383
- * Resolve documentation URL for a package (legacy - returns null on failure)
384
- */
385
- declare function resolvePackageDocs(packageName: string, options?: ResolveOptions): Promise<ResolvedPackage | null>;
386
- /**
387
- * Resolve documentation URL for a package with attempt tracking
388
- */
389
- declare function resolvePackageDocsWithAttempts(packageName: string, options?: ResolveOptions): Promise<ResolveResult>;
390
- /**
391
- * Parse version specifier, handling protocols like link:, workspace:, npm:, file:
392
- */
393
- declare function parseVersionSpecifier(name: string, version: string, cwd: string): LocalDependency | null;
394
- /**
395
- * Resolve the actual installed version of a package by finding its package.json
396
- * via mlly's resolvePathSync. Works regardless of package manager or version protocol.
397
- */
398
- declare function resolveInstalledVersion(name: string, cwd: string): string | null;
399
- /**
400
- * Read package.json dependencies with versions
401
- */
402
- declare function readLocalDependencies(cwd: string): Promise<LocalDependency[]>;
403
- interface LocalPackageInfo {
404
- name: string;
405
- version: string;
406
- description?: string;
407
- repoUrl?: string;
408
- localPath: string;
409
- }
410
- /**
411
- * Read package info from a local path (for link: deps)
412
- */
413
- declare function readLocalPackageInfo(localPath: string): LocalPackageInfo | null;
414
- /**
415
- * Resolve docs for a local package (link: dependency)
416
- */
417
- declare function resolveLocalPackageDocs(localPath: string): Promise<ResolvedPackage | null>;
418
- /**
419
- * Download and extract npm package tarball to cache directory.
420
- * Used when the package isn't available in node_modules.
421
- *
422
- * Extracts to: ~/.skilld/references/<pkg>@<version>/pkg/
423
- * Returns the extracted directory path, or null on failure.
424
- */
425
- declare function fetchPkgDist(name: string, version: string): Promise<string | null>;
426
- /**
427
- * Fetch just the latest version string from npm (lightweight)
428
- */
429
- declare function fetchLatestVersion(packageName: string): Promise<string | null>;
430
- /**
431
- * Get installed skill version from SKILL.md
432
- */
433
- declare function getInstalledSkillVersion(skillDir: string): string | null;
434
- /**
435
- * Unified package registry — single source of truth for package metadata.
436
- * Consolidates doc overrides, blog presets, and file patterns.
437
- * Keyed by GitHub 'owner/repo' (source code repo).
438
- */
439
- interface BlogRelease {
440
- version: string;
441
- url: string;
442
- date: string;
443
- title?: string;
444
- }
445
- interface PackageEntry {
446
- filePatterns?: string[];
447
- primary?: boolean;
448
- /** Extra rules injected into skill generation prompts */
449
- rules?: string[];
450
- }
451
- interface RepoEntry {
452
- owner: string;
453
- repo: string;
454
- /** Separate docs repo name (e.g. 'docs' → owner/docs) */
455
- docsRepo?: string;
456
- /** Path prefix to filter markdown files */
457
- docsPath?: string;
458
- /** Branch/ref override */
459
- docsRef?: string;
460
- /** Homepage URL */
461
- homepage?: string;
462
- /** URL pattern to crawl for docs (glob, e.g. 'https://example.com/docs/**') */
463
- crawlUrl?: string;
464
- /** Branch to fetch CHANGELOG.md from when installed version is a prerelease (e.g. 'minor' for Vue) */
465
- prereleaseChangelogRef?: string;
466
- /** Packages in this repo */
467
- packages: Record<string, PackageEntry>;
468
- /** Curated blog release posts */
469
- blogReleases?: BlogRelease[];
470
- }
471
- interface DocOverride {
472
- owner: string;
473
- repo: string;
474
- path: string;
475
- ref?: string;
476
- homepage?: string;
477
- }
478
- interface BlogPreset {
479
- packageName: string;
480
- releases: BlogRelease[];
481
- }
482
- declare function getDocOverride(packageName: string): DocOverride | undefined;
483
- declare function getBlogPreset(packageName: string): BlogPreset | undefined;
484
- declare function getFilePatterns(packageName: string): string[] | undefined;
485
- declare function getRepoEntry(repoKey: string): RepoEntry | undefined;
486
- declare function getRepoKeyForPackage(packageName: string): string | undefined;
487
- declare function getPrereleaseChangelogRef(packageName: string): string | undefined;
488
- declare function getCrawlUrl(packageName: string): string | undefined;
489
- declare function getRelatedPackages(packageName: string): string[];
490
- /**
491
- * GitHub release notes fetching via GitHub API (preferred) with ungh.cc fallback
492
- */
493
- interface GitHubRelease {
494
- id: number;
495
- tag: string;
496
- name: string;
497
- prerelease: boolean;
498
- createdAt: string;
499
- publishedAt: string;
500
- markdown: string;
501
- }
502
- interface CachedDoc {
503
- path: string;
504
- content: string;
505
- }
506
- interface SemVer {
507
- major: number;
508
- minor: number;
509
- patch: number;
510
- raw: string;
511
- }
512
- declare function parseSemver(version: string): SemVer | null;
513
- /**
514
- * Check if a version string contains a prerelease suffix (e.g. 6.0.0-beta, 1.2.3-rc.1)
515
- */
516
- declare function isPrerelease(version: string): boolean;
517
- declare function compareSemver(a: SemVer, b: SemVer): number;
518
- interface ReleaseIndexOptions {
519
- releases: GitHubRelease[];
520
- packageName?: string;
521
- blogReleases?: Array<{
522
- version: string;
523
- title: string;
524
- date: string;
525
- }>;
526
- hasChangelog?: boolean;
527
- }
528
- /**
529
- * Generate a unified summary index of all releases for quick LLM scanning.
530
- * Includes GitHub releases, blog release posts, and CHANGELOG link.
531
- */
532
- declare function generateReleaseIndex(releasesOrOpts: GitHubRelease[] | ReleaseIndexOptions, packageName?: string): string;
533
- /**
534
- * Fetch release notes for a package. Returns CachedDoc[] with releases/{tag}.md files.
535
- *
536
- * Strategy:
537
- * 1. Fetch GitHub releases, filter to package-specific tags for monorepos
538
- * 2. If no releases found, try CHANGELOG.md as fallback
539
- */
540
- declare function fetchReleaseNotes(owner: string, repo: string, installedVersion: string, gitRef?: string, packageName?: string, fromDate?: string, changelogRef?: string): Promise<CachedDoc[]>;
541
- declare const $fetch: _$ofetch.$Fetch;
542
- /**
543
- * Fetch text content from URL
544
- */
545
- declare function fetchText(url: string): Promise<string | null>;
546
- /**
547
- * Fetch text from a GitHub raw URL with auth fallback for private repos.
548
- * Tries unauthenticated first (fast path), falls back to authenticated
549
- * request when the repo is known to be private or unauthenticated fails.
550
- *
551
- * Only sends auth tokens to raw.githubusercontent.com — returns null for
552
- * non-GitHub URLs that fail unauthenticated to prevent token leakage.
553
- */
554
- declare function fetchGitHubRaw(url: string): Promise<string | null>;
555
- /**
556
- * Verify URL exists and is not HTML (likely 404 page)
557
- */
558
- declare function verifyUrl(url: string): Promise<boolean>;
559
- /**
560
- * Check if URL is a GitHub repo URL (not a docs site)
561
- */
562
- declare function isGitHubRepoUrl(url: string): boolean;
563
- /**
564
- * Parse owner/repo from GitHub URL
565
- */
566
- declare function parseGitHubUrl(url: string): {
567
- owner: string;
568
- repo: string;
569
- } | null;
570
- /** Parse owner/repo slug from GitHub URL */
571
- declare function parseGitHubRepoSlug(url: string | undefined): string | undefined;
572
- /**
573
- * Normalize git repo URL to https
574
- */
575
- declare function normalizeRepoUrl(url: string): string;
576
- /**
577
- * Parse package spec with optional dist-tag or version: "vue@beta" → { name: "vue", tag: "beta" }
578
- * Handles scoped packages: "@vue/reactivity@beta" → { name: "@vue/reactivity", tag: "beta" }
579
- */
580
- declare function parsePackageSpec(spec: string): {
581
- name: string;
582
- tag?: string;
583
- };
584
- /**
585
- * Extract branch hint from URL fragment (e.g. "git+https://...#main" → "main")
586
- */
587
- declare function extractBranchHint(url: string): string | undefined;
588
- export { fetchGitHubIssues as $, LocalPackageInfo as A, LlmsLink as At, readLocalPackageInfo as B, getCrawlUrl as C, formatDiscussionAsMarkdown as Ct, getRelatedPackages as D, resolveCrateDocsWithAttempts as Dt, getPrereleaseChangelogRef as E, toCrawlPattern as Et, fetchNpmRegistryMeta as F, ResolvedPackage as Ft, searchNpmPackages as G, resolveLocalPackageDocs as H, fetchPkgDist as I, fetchBlogReleases as It, fetchLlmsTxt as J, downloadLlmsDocs as K, getInstalledSkillVersion as L, ResolveStep as M, NpmPackageInfo as Mt, fetchLatestVersion as N, ResolveAttempt as Nt, getRepoEntry as O, FetchedDoc as Ot, fetchNpmPackage as P, ResolveResult as Pt, GitHubIssue as Q, parseVersionSpecifier as R, getBlogPreset as S, fetchGitHubDiscussions as St, getFilePatterns as T, fetchCrawledDocs as Tt, resolvePackageDocs as U, resolveInstalledVersion as V, resolvePackageDocsWithAttempts as W, normalizeLlmsLinks as X, fetchLlmsUrl as Y, parseMarkdownLinks as Z, isPrerelease as _, parseSkillFrontmatterName as _t, isGitHubRepoUrl as a, fetchGitDocs as at, BlogRelease as b, generateDocsIndex as bt, parseGitHubUrl as c, fetchReadmeContent as ct, GitHubRelease as d, resolveGitHubRepo as dt, formatIssueAsMarkdown as et, ReleaseIndexOptions as f, validateGitDocsWithLlms as ft, generateReleaseIndex as g, parseGitSkillInput as gt, fetchReleaseNotes as h, fetchGitSkills as ht, fetchText as i, MIN_GIT_DOCS as it, ResolveOptions as j, LocalDependency as jt, getRepoKeyForPackage as k, LlmsContent as kt, parsePackageSpec as l, filterFrameworkDocs as lt, compareSemver as m, RemoteSkill as mt, extractBranchHint as n, isGhAvailable as nt, normalizeRepoUrl as o, fetchGitHubRepoMeta as ot, SemVer as p, GitSkillSource as pt, extractSections as q, fetchGitHubRaw as r, GitDocsResult as rt, parseGitHubRepoSlug as s, fetchReadme as st, $fetch as t, generateIssueIndex as tt, verifyUrl as u, isShallowGitDocs as ut, parseSemver as v, EntryFile as vt, getDocOverride as w, generateDiscussionIndex as wt, DocOverride as x, GitHubDiscussion as xt, BlogPreset as y, resolveEntryFiles as yt, readLocalDependencies as z };
589
- //# sourceMappingURL=index3.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index3.d.mts","names":[],"sources":["../../src/sources/blog-releases.ts","../../src/sources/types.ts","../../src/sources/crates.ts","../../src/sources/crawl.ts","../../src/sources/discussions.ts","../../src/sources/docs.ts","../../src/sources/entries.ts","../../src/sources/git-skills.ts","../../src/sources/github.ts","../../src/sources/issues.ts","../../src/sources/llms.ts","../../src/sources/npm.ts","../../src/sources/package-registry.ts","../../src/sources/releases.ts","../../src/sources/utils.ts"],"mappings":"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"}