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,465 +0,0 @@
1
- const REPO_REGISTRY = {
2
- "vuejs/core": {
3
- owner: "vuejs",
4
- repo: "core",
5
- docsRepo: "docs",
6
- docsPath: "src",
7
- homepage: "https://vuejs.org",
8
- prereleaseChangelogRef: "minor",
9
- packages: {
10
- "vue": {
11
- primary: true,
12
- filePatterns: ["*.vue"],
13
- rules: ["ALWAYS use `<script setup lang=\"ts\">`", "Use ```vue code fences for SFC examples containing `<script>` or `<template>` tags, ```ts for plain TypeScript"]
14
- },
15
- "@vue/compiler-core": {},
16
- "@vue/compiler-dom": {},
17
- "@vue/reactivity": {},
18
- "@vue/runtime-core": {},
19
- "@vue/runtime-dom": {},
20
- "@vue/shared": {}
21
- },
22
- blogReleases: [
23
- {
24
- version: "3.5",
25
- url: "https://blog.vuejs.org/posts/vue-3-5",
26
- date: "2024-09-01"
27
- },
28
- {
29
- version: "3.4",
30
- url: "https://blog.vuejs.org/posts/vue-3-4",
31
- date: "2023-12-28"
32
- },
33
- {
34
- version: "3.3",
35
- url: "https://blog.vuejs.org/posts/vue-3-3",
36
- date: "2023-05-11"
37
- },
38
- {
39
- version: "3.2",
40
- url: "https://blog.vuejs.org/posts/vue-3-2",
41
- date: "2021-08-05"
42
- },
43
- {
44
- version: "3.1",
45
- url: "https://blog.vuejs.org/posts/vue-3-1",
46
- date: "2021-06-07"
47
- },
48
- {
49
- version: "3.0",
50
- url: "https://blog.vuejs.org/posts/vue-3-0",
51
- date: "2020-09-18"
52
- }
53
- ]
54
- },
55
- "tailwindlabs/tailwindcss": {
56
- owner: "tailwindlabs",
57
- repo: "tailwindcss",
58
- docsRepo: "tailwindcss.com",
59
- docsPath: "src/docs",
60
- homepage: "https://tailwindcss.com",
61
- packages: { tailwindcss: { primary: true } }
62
- },
63
- "withastro/astro": {
64
- owner: "withastro",
65
- repo: "astro",
66
- docsRepo: "docs",
67
- docsPath: "src/content/docs/en",
68
- homepage: "https://docs.astro.build",
69
- packages: { astro: {
70
- primary: true,
71
- filePatterns: ["*.astro"]
72
- } }
73
- },
74
- "vueuse/vueuse": {
75
- owner: "vueuse",
76
- repo: "vueuse",
77
- docsPath: "packages",
78
- packages: { "@vueuse/core": { primary: true } }
79
- },
80
- "sveltejs/svelte": {
81
- owner: "sveltejs",
82
- repo: "svelte",
83
- packages: { svelte: {
84
- primary: true,
85
- filePatterns: ["*.svelte"],
86
- rules: ["ALWAYS use runes syntax ($state, $derived, $effect, $props)"]
87
- } }
88
- },
89
- "solidjs/solid": {
90
- owner: "solidjs",
91
- repo: "solid",
92
- packages: { "solid-js": {
93
- primary: true,
94
- filePatterns: ["*.jsx", "*.tsx"]
95
- } }
96
- },
97
- "QwikDev/qwik": {
98
- owner: "QwikDev",
99
- repo: "qwik",
100
- packages: { qwik: {
101
- primary: true,
102
- filePatterns: ["*.tsx"]
103
- } }
104
- },
105
- "marko-js/marko": {
106
- owner: "marko-js",
107
- repo: "marko",
108
- packages: { marko: {
109
- primary: true,
110
- filePatterns: ["*.marko"]
111
- } }
112
- },
113
- "riot/riot": {
114
- owner: "riot",
115
- repo: "riot",
116
- packages: { riot: {
117
- primary: true,
118
- filePatterns: ["*.riot"]
119
- } }
120
- },
121
- "microsoft/TypeScript": {
122
- owner: "microsoft",
123
- repo: "TypeScript",
124
- packages: { typescript: {
125
- primary: true,
126
- filePatterns: [
127
- "*.ts",
128
- "*.tsx",
129
- "*.mts",
130
- "*.cts"
131
- ]
132
- } },
133
- blogReleases: [
134
- {
135
- version: "6.0",
136
- url: "https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/",
137
- date: "2026-02-11",
138
- title: "Announcing TypeScript 6.0 Beta"
139
- },
140
- {
141
- version: "5.9",
142
- url: "https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/",
143
- date: "2025-08-01",
144
- title: "Announcing TypeScript 5.9"
145
- },
146
- {
147
- version: "5.8",
148
- url: "https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/",
149
- date: "2025-02-28",
150
- title: "Announcing TypeScript 5.8"
151
- },
152
- {
153
- version: "5.7",
154
- url: "https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/",
155
- date: "2024-11-22",
156
- title: "Announcing TypeScript 5.7"
157
- },
158
- {
159
- version: "5.6",
160
- url: "https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/",
161
- date: "2024-09-09",
162
- title: "Announcing TypeScript 5.6"
163
- },
164
- {
165
- version: "5.5",
166
- url: "https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/",
167
- date: "2024-06-20",
168
- title: "Announcing TypeScript 5.5"
169
- }
170
- ]
171
- },
172
- "jashkenas/coffeescript": {
173
- owner: "jashkenas",
174
- repo: "coffeescript",
175
- packages: { coffeescript: {
176
- primary: true,
177
- filePatterns: ["*.coffee"]
178
- } }
179
- },
180
- "gkz/LiveScript": {
181
- owner: "gkz",
182
- repo: "LiveScript",
183
- packages: { livescript: {
184
- primary: true,
185
- filePatterns: ["*.ls"]
186
- } }
187
- },
188
- "elm/compiler": {
189
- owner: "elm",
190
- repo: "compiler",
191
- packages: { elm: {
192
- primary: true,
193
- filePatterns: ["*.elm"]
194
- } }
195
- },
196
- "sass/dart-sass": {
197
- owner: "sass",
198
- repo: "dart-sass",
199
- packages: { sass: {
200
- primary: true,
201
- filePatterns: ["*.scss", "*.sass"]
202
- } }
203
- },
204
- "less/less.js": {
205
- owner: "less",
206
- repo: "less.js",
207
- packages: { less: {
208
- primary: true,
209
- filePatterns: ["*.less"]
210
- } }
211
- },
212
- "stylus/stylus": {
213
- owner: "stylus",
214
- repo: "stylus",
215
- packages: { stylus: {
216
- primary: true,
217
- filePatterns: ["*.styl"]
218
- } }
219
- },
220
- "postcss/postcss": {
221
- owner: "postcss",
222
- repo: "postcss",
223
- packages: { postcss: {
224
- primary: true,
225
- filePatterns: ["*.css", "*.pcss"]
226
- } }
227
- },
228
- "pugjs/pug": {
229
- owner: "pugjs",
230
- repo: "pug",
231
- packages: { pug: {
232
- primary: true,
233
- filePatterns: ["*.pug"]
234
- } }
235
- },
236
- "mde/ejs": {
237
- owner: "mde",
238
- repo: "ejs",
239
- packages: { ejs: {
240
- primary: true,
241
- filePatterns: ["*.ejs"]
242
- } }
243
- },
244
- "handlebars-lang/handlebars.js": {
245
- owner: "handlebars-lang",
246
- repo: "handlebars.js",
247
- packages: { handlebars: {
248
- primary: true,
249
- filePatterns: ["*.hbs", "*.handlebars"]
250
- } }
251
- },
252
- "janl/mustache.js": {
253
- owner: "janl",
254
- repo: "mustache.js",
255
- packages: { mustache: {
256
- primary: true,
257
- filePatterns: ["*.mustache"]
258
- } }
259
- },
260
- "mozilla/nunjucks": {
261
- owner: "mozilla",
262
- repo: "nunjucks",
263
- packages: { nunjucks: {
264
- primary: true,
265
- filePatterns: ["*.njk"]
266
- } }
267
- },
268
- "Shopify/liquid": {
269
- owner: "Shopify",
270
- repo: "liquid",
271
- packages: { liquid: {
272
- primary: true,
273
- filePatterns: ["*.liquid"]
274
- } }
275
- },
276
- "eemeli/yaml": {
277
- owner: "eemeli",
278
- repo: "yaml",
279
- packages: { yaml: {
280
- primary: true,
281
- filePatterns: ["*.yaml", "*.yml"]
282
- } }
283
- },
284
- "nodeca/js-yaml": {
285
- owner: "nodeca",
286
- repo: "js-yaml",
287
- packages: { "js-yaml": {
288
- primary: true,
289
- filePatterns: ["*.yaml", "*.yml"]
290
- } }
291
- },
292
- "BinaryMuse/toml-node": {
293
- owner: "BinaryMuse",
294
- repo: "toml-node",
295
- packages: {
296
- "toml": {
297
- primary: true,
298
- filePatterns: ["*.toml"]
299
- },
300
- "@iarna/toml": { filePatterns: ["*.toml"] }
301
- }
302
- },
303
- "json5/json5": {
304
- owner: "json5",
305
- repo: "json5",
306
- packages: { json5: {
307
- primary: true,
308
- filePatterns: ["*.json5"]
309
- } }
310
- },
311
- "microsoft/node-jsonc-parser": {
312
- owner: "microsoft",
313
- repo: "node-jsonc-parser",
314
- packages: { "jsonc-parser": {
315
- primary: true,
316
- filePatterns: ["*.jsonc"]
317
- } }
318
- },
319
- "markdown-it/markdown-it": {
320
- owner: "markdown-it",
321
- repo: "markdown-it",
322
- packages: { "markdown-it": {
323
- primary: true,
324
- filePatterns: ["*.md"]
325
- } }
326
- },
327
- "markedjs/marked": {
328
- owner: "markedjs",
329
- repo: "marked",
330
- packages: { marked: {
331
- primary: true,
332
- filePatterns: ["*.md"]
333
- } }
334
- },
335
- "remarkjs/remark": {
336
- owner: "remarkjs",
337
- repo: "remark",
338
- packages: { remark: {
339
- primary: true,
340
- filePatterns: ["*.md", "*.mdx"]
341
- } }
342
- },
343
- "mdx-js/mdx": {
344
- owner: "mdx-js",
345
- repo: "mdx",
346
- packages: { "@mdx-js/mdx": {
347
- primary: true,
348
- filePatterns: ["*.mdx"]
349
- } }
350
- },
351
- "graphql/graphql-js": {
352
- owner: "graphql",
353
- repo: "graphql-js",
354
- packages: {
355
- "graphql": {
356
- primary: true,
357
- filePatterns: ["*.graphql", "*.gql"]
358
- },
359
- "graphql-tag": { filePatterns: ["*.graphql", "*.gql"] }
360
- }
361
- },
362
- "dotansimha/graphql-code-generator": {
363
- owner: "dotansimha",
364
- repo: "graphql-code-generator",
365
- packages: { "@graphql-codegen/cli": {
366
- primary: true,
367
- filePatterns: ["*.graphql", "*.gql"]
368
- } }
369
- },
370
- "quasarframework/quasar": {
371
- owner: "quasarframework",
372
- repo: "quasar",
373
- docsPath: "docs/src/pages",
374
- docsRef: "dev",
375
- homepage: "https://quasar.dev",
376
- packages: { quasar: { primary: true } }
377
- },
378
- "motiondivision/motion-vue": {
379
- owner: "motiondivision",
380
- repo: "motion-vue",
381
- homepage: "https://motion.dev",
382
- crawlUrl: "https://motion.dev/docs/vue**",
383
- packages: { "motion-v": { primary: true } }
384
- },
385
- "prisma/prisma": {
386
- owner: "prisma",
387
- repo: "prisma",
388
- packages: {
389
- "prisma": {
390
- primary: true,
391
- filePatterns: ["*.prisma"]
392
- },
393
- "@prisma/client": { filePatterns: ["*.prisma"] }
394
- }
395
- },
396
- "nicolo-ribaudo/tc39-proposal-wasm-esm-integration": {
397
- owner: "nicolo-ribaudo",
398
- repo: "tc39-proposal-wasm-esm-integration",
399
- packages: { "wasm-pack": {
400
- primary: true,
401
- filePatterns: ["*.wasm"]
402
- } }
403
- }
404
- };
405
- const PACKAGE_TO_REPO_MAP = {};
406
- for (const [repoKey, entry] of Object.entries(REPO_REGISTRY)) for (const packageName of Object.keys(entry.packages)) PACKAGE_TO_REPO_MAP[packageName] = repoKey;
407
- function getDocOverride(packageName) {
408
- const repoKey = PACKAGE_TO_REPO_MAP[packageName];
409
- if (!repoKey) return void 0;
410
- const entry = REPO_REGISTRY[repoKey];
411
- if (!entry?.docsRepo && !entry?.docsPath) return void 0;
412
- return {
413
- owner: entry.owner,
414
- repo: entry.docsRepo || entry.repo,
415
- path: entry.docsPath || "",
416
- ref: entry.docsRef,
417
- homepage: entry.homepage
418
- };
419
- }
420
- function getBlogPreset(packageName) {
421
- const repoKey = PACKAGE_TO_REPO_MAP[packageName];
422
- if (!repoKey) return void 0;
423
- const entry = REPO_REGISTRY[repoKey];
424
- if (!entry?.blogReleases) return void 0;
425
- return {
426
- packageName,
427
- releases: entry.blogReleases
428
- };
429
- }
430
- function getFilePatterns(packageName) {
431
- const repoKey = PACKAGE_TO_REPO_MAP[packageName];
432
- if (!repoKey) return void 0;
433
- return REPO_REGISTRY[repoKey]?.packages[packageName]?.filePatterns;
434
- }
435
- function getRepoEntry(repoKey) {
436
- return REPO_REGISTRY[repoKey];
437
- }
438
- function getRepoKeyForPackage(packageName) {
439
- return PACKAGE_TO_REPO_MAP[packageName];
440
- }
441
- function getPackageRules(packageName) {
442
- const repoKey = PACKAGE_TO_REPO_MAP[packageName];
443
- if (!repoKey) return [];
444
- return REPO_REGISTRY[repoKey]?.packages[packageName]?.rules ?? [];
445
- }
446
- function getPrereleaseChangelogRef(packageName) {
447
- const repoKey = PACKAGE_TO_REPO_MAP[packageName];
448
- if (!repoKey) return void 0;
449
- return REPO_REGISTRY[repoKey]?.prereleaseChangelogRef;
450
- }
451
- function getCrawlUrl(packageName) {
452
- const repoKey = PACKAGE_TO_REPO_MAP[packageName];
453
- if (!repoKey) return void 0;
454
- return REPO_REGISTRY[repoKey]?.crawlUrl;
455
- }
456
- function getRelatedPackages(packageName) {
457
- const repoKey = PACKAGE_TO_REPO_MAP[packageName];
458
- if (!repoKey) return [];
459
- const entry = REPO_REGISTRY[repoKey];
460
- if (!entry) return [];
461
- return Object.keys(entry.packages);
462
- }
463
- export { getPackageRules as a, getRepoEntry as c, getFilePatterns as i, getRepoKeyForPackage as l, getCrawlUrl as n, getPrereleaseChangelogRef as o, getDocOverride as r, getRelatedPackages as s, getBlogPreset as t };
464
-
465
- //# sourceMappingURL=package-registry.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"package-registry.mjs","names":[],"sources":["../../src/sources/package-registry.data.ts","../../src/sources/package-registry.ts"],"sourcesContent":["/**\n * Curated repo registry data — keyed by GitHub 'owner/repo'.\n * Maintained as a TypeScript const so RepoEntry types validate it.\n * Lookup helpers and reverse index live in package-registry.ts.\n */\n\nimport type { RepoEntry } from './package-registry.ts'\n\nexport const REPO_REGISTRY: Record<string, RepoEntry> = {\n // ── Frameworks with doc overrides ──\n\n 'vuejs/core': {\n owner: 'vuejs',\n repo: 'core',\n docsRepo: 'docs',\n docsPath: 'src',\n homepage: 'https://vuejs.org',\n prereleaseChangelogRef: 'minor',\n packages: {\n 'vue': { primary: true, filePatterns: ['*.vue'], rules: ['ALWAYS use `<script setup lang=\"ts\">`', 'Use ```vue code fences for SFC examples containing `<script>` or `<template>` tags, ```ts for plain TypeScript'] },\n '@vue/compiler-core': {},\n '@vue/compiler-dom': {},\n '@vue/reactivity': {},\n '@vue/runtime-core': {},\n '@vue/runtime-dom': {},\n '@vue/shared': {},\n },\n blogReleases: [\n { version: '3.5', url: 'https://blog.vuejs.org/posts/vue-3-5', date: '2024-09-01' },\n { version: '3.4', url: 'https://blog.vuejs.org/posts/vue-3-4', date: '2023-12-28' },\n { version: '3.3', url: 'https://blog.vuejs.org/posts/vue-3-3', date: '2023-05-11' },\n { version: '3.2', url: 'https://blog.vuejs.org/posts/vue-3-2', date: '2021-08-05' },\n { version: '3.1', url: 'https://blog.vuejs.org/posts/vue-3-1', date: '2021-06-07' },\n { version: '3.0', url: 'https://blog.vuejs.org/posts/vue-3-0', date: '2020-09-18' },\n ],\n },\n\n 'tailwindlabs/tailwindcss': {\n owner: 'tailwindlabs',\n repo: 'tailwindcss',\n docsRepo: 'tailwindcss.com',\n docsPath: 'src/docs',\n homepage: 'https://tailwindcss.com',\n packages: {\n tailwindcss: { primary: true },\n },\n },\n\n 'withastro/astro': {\n owner: 'withastro',\n repo: 'astro',\n docsRepo: 'docs',\n docsPath: 'src/content/docs/en',\n homepage: 'https://docs.astro.build',\n packages: {\n astro: { primary: true, filePatterns: ['*.astro'] },\n },\n },\n\n 'vueuse/vueuse': {\n owner: 'vueuse',\n repo: 'vueuse',\n docsPath: 'packages',\n packages: {\n '@vueuse/core': { primary: true },\n },\n },\n\n // ── Frameworks (file patterns only) ──\n\n 'sveltejs/svelte': {\n owner: 'sveltejs',\n repo: 'svelte',\n packages: {\n svelte: { primary: true, filePatterns: ['*.svelte'], rules: ['ALWAYS use runes syntax ($state, $derived, $effect, $props)'] },\n },\n },\n\n 'solidjs/solid': {\n owner: 'solidjs',\n repo: 'solid',\n packages: {\n 'solid-js': { primary: true, filePatterns: ['*.jsx', '*.tsx'] },\n },\n },\n\n 'QwikDev/qwik': {\n owner: 'QwikDev',\n repo: 'qwik',\n packages: {\n qwik: { primary: true, filePatterns: ['*.tsx'] },\n },\n },\n\n 'marko-js/marko': {\n owner: 'marko-js',\n repo: 'marko',\n packages: {\n marko: { primary: true, filePatterns: ['*.marko'] },\n },\n },\n\n 'riot/riot': {\n owner: 'riot',\n repo: 'riot',\n packages: {\n riot: { primary: true, filePatterns: ['*.riot'] },\n },\n },\n\n // ── Languages/transpilers ──\n\n 'microsoft/TypeScript': {\n owner: 'microsoft',\n repo: 'TypeScript',\n packages: {\n typescript: { primary: true, filePatterns: ['*.ts', '*.tsx', '*.mts', '*.cts'] },\n },\n blogReleases: [\n { version: '6.0', url: 'https://devblogs.microsoft.com/typescript/announcing-typescript-6-0-beta/', date: '2026-02-11', title: 'Announcing TypeScript 6.0 Beta' },\n { version: '5.9', url: 'https://devblogs.microsoft.com/typescript/announcing-typescript-5-9/', date: '2025-08-01', title: 'Announcing TypeScript 5.9' },\n { version: '5.8', url: 'https://devblogs.microsoft.com/typescript/announcing-typescript-5-8/', date: '2025-02-28', title: 'Announcing TypeScript 5.8' },\n { version: '5.7', url: 'https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/', date: '2024-11-22', title: 'Announcing TypeScript 5.7' },\n { version: '5.6', url: 'https://devblogs.microsoft.com/typescript/announcing-typescript-5-6/', date: '2024-09-09', title: 'Announcing TypeScript 5.6' },\n { version: '5.5', url: 'https://devblogs.microsoft.com/typescript/announcing-typescript-5-5/', date: '2024-06-20', title: 'Announcing TypeScript 5.5' },\n ],\n },\n\n 'jashkenas/coffeescript': {\n owner: 'jashkenas',\n repo: 'coffeescript',\n packages: {\n coffeescript: { primary: true, filePatterns: ['*.coffee'] },\n },\n },\n\n 'gkz/LiveScript': {\n owner: 'gkz',\n repo: 'LiveScript',\n packages: {\n livescript: { primary: true, filePatterns: ['*.ls'] },\n },\n },\n\n 'elm/compiler': {\n owner: 'elm',\n repo: 'compiler',\n packages: {\n elm: { primary: true, filePatterns: ['*.elm'] },\n },\n },\n\n // ── CSS preprocessors ──\n\n 'sass/dart-sass': {\n owner: 'sass',\n repo: 'dart-sass',\n packages: {\n sass: { primary: true, filePatterns: ['*.scss', '*.sass'] },\n },\n },\n\n 'less/less.js': {\n owner: 'less',\n repo: 'less.js',\n packages: {\n less: { primary: true, filePatterns: ['*.less'] },\n },\n },\n\n 'stylus/stylus': {\n owner: 'stylus',\n repo: 'stylus',\n packages: {\n stylus: { primary: true, filePatterns: ['*.styl'] },\n },\n },\n\n 'postcss/postcss': {\n owner: 'postcss',\n repo: 'postcss',\n packages: {\n postcss: { primary: true, filePatterns: ['*.css', '*.pcss'] },\n },\n },\n\n // ── Template engines ──\n\n 'pugjs/pug': {\n owner: 'pugjs',\n repo: 'pug',\n packages: {\n pug: { primary: true, filePatterns: ['*.pug'] },\n },\n },\n\n 'mde/ejs': {\n owner: 'mde',\n repo: 'ejs',\n packages: {\n ejs: { primary: true, filePatterns: ['*.ejs'] },\n },\n },\n\n 'handlebars-lang/handlebars.js': {\n owner: 'handlebars-lang',\n repo: 'handlebars.js',\n packages: {\n handlebars: { primary: true, filePatterns: ['*.hbs', '*.handlebars'] },\n },\n },\n\n 'janl/mustache.js': {\n owner: 'janl',\n repo: 'mustache.js',\n packages: {\n mustache: { primary: true, filePatterns: ['*.mustache'] },\n },\n },\n\n 'mozilla/nunjucks': {\n owner: 'mozilla',\n repo: 'nunjucks',\n packages: {\n nunjucks: { primary: true, filePatterns: ['*.njk'] },\n },\n },\n\n 'Shopify/liquid': {\n owner: 'Shopify',\n repo: 'liquid',\n packages: {\n liquid: { primary: true, filePatterns: ['*.liquid'] },\n },\n },\n\n // ── Data formats ──\n\n 'eemeli/yaml': {\n owner: 'eemeli',\n repo: 'yaml',\n packages: {\n yaml: { primary: true, filePatterns: ['*.yaml', '*.yml'] },\n },\n },\n\n 'nodeca/js-yaml': {\n owner: 'nodeca',\n repo: 'js-yaml',\n packages: {\n 'js-yaml': { primary: true, filePatterns: ['*.yaml', '*.yml'] },\n },\n },\n\n 'BinaryMuse/toml-node': {\n owner: 'BinaryMuse',\n repo: 'toml-node',\n packages: {\n 'toml': { primary: true, filePatterns: ['*.toml'] },\n '@iarna/toml': { filePatterns: ['*.toml'] },\n },\n },\n\n 'json5/json5': {\n owner: 'json5',\n repo: 'json5',\n packages: {\n json5: { primary: true, filePatterns: ['*.json5'] },\n },\n },\n\n 'microsoft/node-jsonc-parser': {\n owner: 'microsoft',\n repo: 'node-jsonc-parser',\n packages: {\n 'jsonc-parser': { primary: true, filePatterns: ['*.jsonc'] },\n },\n },\n\n // ── Markdown ──\n\n 'markdown-it/markdown-it': {\n owner: 'markdown-it',\n repo: 'markdown-it',\n packages: {\n 'markdown-it': { primary: true, filePatterns: ['*.md'] },\n },\n },\n\n 'markedjs/marked': {\n owner: 'markedjs',\n repo: 'marked',\n packages: {\n marked: { primary: true, filePatterns: ['*.md'] },\n },\n },\n\n 'remarkjs/remark': {\n owner: 'remarkjs',\n repo: 'remark',\n packages: {\n remark: { primary: true, filePatterns: ['*.md', '*.mdx'] },\n },\n },\n\n 'mdx-js/mdx': {\n owner: 'mdx-js',\n repo: 'mdx',\n packages: {\n '@mdx-js/mdx': { primary: true, filePatterns: ['*.mdx'] },\n },\n },\n\n // ── GraphQL ──\n\n 'graphql/graphql-js': {\n owner: 'graphql',\n repo: 'graphql-js',\n packages: {\n 'graphql': { primary: true, filePatterns: ['*.graphql', '*.gql'] },\n 'graphql-tag': { filePatterns: ['*.graphql', '*.gql'] },\n },\n },\n\n 'dotansimha/graphql-code-generator': {\n owner: 'dotansimha',\n repo: 'graphql-code-generator',\n packages: {\n '@graphql-codegen/cli': { primary: true, filePatterns: ['*.graphql', '*.gql'] },\n },\n },\n\n // ── UI Frameworks ──\n\n 'quasarframework/quasar': {\n owner: 'quasarframework',\n repo: 'quasar',\n docsPath: 'docs/src/pages',\n docsRef: 'dev',\n homepage: 'https://quasar.dev',\n packages: {\n quasar: { primary: true },\n },\n },\n\n // ── Animation ──\n\n 'motiondivision/motion-vue': {\n owner: 'motiondivision',\n repo: 'motion-vue',\n homepage: 'https://motion.dev',\n crawlUrl: 'https://motion.dev/docs/vue**',\n packages: {\n 'motion-v': { primary: true },\n },\n },\n\n // ── Other ──\n\n 'prisma/prisma': {\n owner: 'prisma',\n repo: 'prisma',\n packages: {\n 'prisma': { primary: true, filePatterns: ['*.prisma'] },\n '@prisma/client': { filePatterns: ['*.prisma'] },\n },\n },\n\n 'nicolo-ribaudo/tc39-proposal-wasm-esm-integration': {\n owner: 'nicolo-ribaudo',\n repo: 'tc39-proposal-wasm-esm-integration',\n packages: {\n 'wasm-pack': { primary: true, filePatterns: ['*.wasm'] },\n },\n },\n}\n","/**\n * Package registry — types, lookup helpers, and reverse index.\n * Curated registry data lives in package-registry.data.ts.\n * Keyed by GitHub 'owner/repo' (source code repo).\n */\n\nimport { REPO_REGISTRY } from './package-registry.data.ts'\n\nexport interface BlogRelease {\n version: string\n url: string\n date: string\n title?: string\n}\n\nexport interface PackageEntry {\n filePatterns?: string[]\n primary?: boolean\n /** Extra rules injected into skill generation prompts */\n rules?: string[]\n}\n\nexport interface RepoEntry {\n owner: string\n repo: string\n /** Separate docs repo name (e.g. 'docs' → owner/docs) */\n docsRepo?: string\n /** Path prefix to filter markdown files */\n docsPath?: string\n /** Branch/ref override */\n docsRef?: string\n /** Homepage URL */\n homepage?: string\n /** URL pattern to crawl for docs (glob, e.g. 'https://example.com/docs/**') */\n crawlUrl?: string\n /** Branch to fetch CHANGELOG.md from when installed version is a prerelease (e.g. 'minor' for Vue) */\n prereleaseChangelogRef?: string\n /** Packages in this repo */\n packages: Record<string, PackageEntry>\n /** Curated blog release posts */\n blogReleases?: BlogRelease[]\n}\n\n// Backwards-compatible types\nexport interface DocOverride {\n owner: string\n repo: string\n path: string\n ref?: string\n homepage?: string\n}\n\nexport interface BlogPreset {\n packageName: string\n releases: BlogRelease[]\n}\n\n// ── Reverse index (auto-generated) ──\n\nconst PACKAGE_TO_REPO_MAP: Record<string, string> = {}\n\nfor (const [repoKey, entry] of Object.entries(REPO_REGISTRY)) {\n for (const packageName of Object.keys(entry.packages)) {\n PACKAGE_TO_REPO_MAP[packageName] = repoKey\n }\n}\n\n// ── Backwards-compatible helpers ──\n\nexport function getDocOverride(packageName: string): DocOverride | undefined {\n const repoKey = PACKAGE_TO_REPO_MAP[packageName]\n if (!repoKey)\n return undefined\n const entry = REPO_REGISTRY[repoKey]\n if (!entry?.docsRepo && !entry?.docsPath)\n return undefined\n\n return {\n owner: entry.owner,\n repo: entry.docsRepo || entry.repo,\n path: entry.docsPath || '',\n ref: entry.docsRef,\n homepage: entry.homepage,\n }\n}\n\nexport function getBlogPreset(packageName: string): BlogPreset | undefined {\n const repoKey = PACKAGE_TO_REPO_MAP[packageName]\n if (!repoKey)\n return undefined\n const entry = REPO_REGISTRY[repoKey]\n if (!entry?.blogReleases)\n return undefined\n\n return {\n packageName,\n releases: entry.blogReleases,\n }\n}\n\nexport function getFilePatterns(packageName: string): string[] | undefined {\n const repoKey = PACKAGE_TO_REPO_MAP[packageName]\n if (!repoKey)\n return undefined\n return REPO_REGISTRY[repoKey]?.packages[packageName]?.filePatterns\n}\n\n// ── New APIs ──\n\nexport function getRepoEntry(repoKey: string): RepoEntry | undefined {\n return REPO_REGISTRY[repoKey]\n}\n\nexport function getRepoKeyForPackage(packageName: string): string | undefined {\n return PACKAGE_TO_REPO_MAP[packageName]\n}\n\nexport function getPackageRules(packageName: string): string[] {\n const repoKey = PACKAGE_TO_REPO_MAP[packageName]\n if (!repoKey)\n return []\n return REPO_REGISTRY[repoKey]?.packages[packageName]?.rules ?? []\n}\n\nexport function getPrereleaseChangelogRef(packageName: string): string | undefined {\n const repoKey = PACKAGE_TO_REPO_MAP[packageName]\n if (!repoKey)\n return undefined\n return REPO_REGISTRY[repoKey]?.prereleaseChangelogRef\n}\n\nexport function getCrawlUrl(packageName: string): string | undefined {\n const repoKey = PACKAGE_TO_REPO_MAP[packageName]\n if (!repoKey)\n return undefined\n return REPO_REGISTRY[repoKey]?.crawlUrl\n}\n\nexport function getRelatedPackages(packageName: string): string[] {\n const repoKey = PACKAGE_TO_REPO_MAP[packageName]\n if (!repoKey)\n return []\n const entry = REPO_REGISTRY[repoKey]\n if (!entry)\n return []\n return Object.keys(entry.packages)\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"retriv.mjs","names":[],"sources":["../../src/retriv/index.ts"],"sourcesContent":["import type { ChunkEntity, Document, IndexConfig, IndexPhase, IndexProgress, SearchFilter, SearchOptions, SearchResult, SearchSnippet } from './types.ts'\nimport { stripFrontmatter } from '../core/markdown.ts'\n\nexport type { ChunkEntity, Document, IndexConfig, IndexPhase, IndexProgress, SearchFilter, SearchOptions, SearchResult, SearchSnippet }\n\ntype RetrivInstance = Awaited<ReturnType<typeof getDb>>\n\nexport class SearchDepsUnavailableError extends Error {\n constructor(cause: unknown, message?: string) {\n super(message ?? 'Search dependencies unavailable (sqlite-vec or retriv not installed). Search indexing skipped.')\n this.name = 'SearchDepsUnavailableError'\n this.cause = cause\n }\n}\n\nlet _fts5Available: boolean | null = null\n\n/**\n * Probe whether SQLite FTS5 module is available.\n * Windows Node.js binaries often ship without FTS5 compiled in.\n */\nfunction checkFts5(): boolean {\n if (_fts5Available !== null)\n return _fts5Available\n const nodeSqlite = globalThis.process?.getBuiltinModule?.('node:sqlite') as typeof import('node:sqlite') | undefined\n if (!nodeSqlite) {\n _fts5Available = false\n return false\n }\n const db = new nodeSqlite.DatabaseSync(':memory:')\n try {\n db.exec('CREATE VIRTUAL TABLE _fts5_probe USING fts5(content)')\n db.exec('DROP TABLE _fts5_probe')\n _fts5Available = true\n }\n catch {\n _fts5Available = false\n }\n finally {\n db.close()\n }\n return _fts5Available\n}\n\n// Dynamic imports: retriv/chunkers/auto eagerly loads typescript which may not be installed (e.g. npx)\nexport async function getDb(config: Pick<IndexConfig, 'dbPath'>) {\n if (!checkFts5())\n throw new SearchDepsUnavailableError(new Error('FTS5 module not available'), 'SQLite FTS5 module not available. Search indexing skipped. On Windows, run from WSL where FTS5 is included.')\n\n let createRetriv, autoChunker, sqliteMod, sqliteVec, transformersJs, cachedEmbeddings\n try {\n ;([\n { createRetriv },\n { autoChunker },\n sqliteMod,\n sqliteVec,\n { transformersJs },\n { cachedEmbeddings },\n ] = await Promise.all([\n import('retriv'),\n import('retriv/chunkers/auto'),\n import('retriv/db/sqlite'),\n import('sqlite-vec'),\n import('retriv/embeddings/transformers-js'),\n import('./embedding-cache.ts'),\n ]))\n }\n catch (err: any) {\n if (err?.code === 'ERR_MODULE_NOT_FOUND')\n throw new SearchDepsUnavailableError(err)\n throw err\n }\n const embeddings = await cachedEmbeddings(transformersJs())\n return createRetriv({\n driver: sqliteMod.default({\n path: config.dbPath,\n embeddings,\n sqliteVec,\n }),\n chunking: autoChunker(),\n })\n}\n\n/**\n * Index documents in-process (no worker thread).\n * Preferred for tests and environments where worker_threads is unreliable.\n */\nexport async function createIndexDirect(\n documents: Document[],\n config: IndexConfig & { removeIds?: string[] },\n): Promise<void> {\n const db = await getDb(config)\n if (config.removeIds?.length)\n await db.remove?.(config.removeIds)\n await db.index(documents, { onProgress: config.onProgress })\n await db.close?.()\n}\n\n/**\n * Index documents in a background worker thread.\n * Falls back to direct indexing if worker fails to spawn.\n */\nexport async function createIndex(\n documents: Document[],\n config: IndexConfig & { removeIds?: string[] },\n): Promise<void> {\n // Dynamic import justified: search/searchSnippets shouldn't pull in worker_threads\n const { createIndexInWorker } = await import('./pool.ts')\n return createIndexInWorker(documents, config)\n}\n\n/**\n * List all raw document IDs in an existing index.\n * Returns chunk IDs (e.g. \"doc-id#chunk-0\") for chunked docs.\n * Queries sqlite directly to bypass createRetriv's parent-ID deduplication,\n * so callers can use these IDs for exact removal and parent-ID grouping.\n */\nexport async function listIndexIds(\n config: Pick<IndexConfig, 'dbPath'>,\n): Promise<string[]> {\n const nodeSqlite = globalThis.process?.getBuiltinModule?.('node:sqlite') as typeof import('node:sqlite') | undefined\n if (!nodeSqlite)\n return []\n const db = new nodeSqlite.DatabaseSync(config.dbPath, { open: true, readOnly: true })\n try {\n const rows = db.prepare('SELECT id FROM documents_meta').all() as Array<{ id: string }>\n return rows.map(r => r.id)\n }\n finally {\n db.close()\n }\n}\n\n/**\n * Remove documents by ID from an existing index.\n */\nexport async function removeFromIndex(\n ids: string[],\n config: Pick<IndexConfig, 'dbPath'>,\n): Promise<void> {\n if (ids.length === 0)\n return\n const db = await getDb(config)\n await db.remove?.(ids)\n await db.close?.()\n}\n\nexport async function search(\n query: string,\n config: IndexConfig,\n options: SearchOptions = {},\n): Promise<SearchResult[]> {\n const { limit = 10, filter } = options\n const db = await getDb(config)\n const results = await db.search(query, { limit, filter, returnContent: true, returnMetadata: true, returnMeta: true })\n await db.close?.()\n\n return results.map(r => ({\n id: r.id,\n content: r.content ?? '',\n score: r.score,\n metadata: r.metadata ?? {},\n highlights: r._meta?.highlights ?? [],\n lineRange: r._chunk?.lineRange,\n entities: r._chunk?.entities,\n scope: r._chunk?.scope,\n }))\n}\n\n/**\n * Search and return formatted snippets\n */\nexport async function searchSnippets(\n query: string,\n config: IndexConfig,\n options: SearchOptions = {},\n): Promise<SearchSnippet[]> {\n const results = await search(query, config, options)\n return toSnippets(results)\n}\n\nfunction toSnippets(results: SearchResult[]): SearchSnippet[] {\n return results.map((r) => {\n const content = stripFrontmatter(r.content)\n const source = r.metadata.source || r.id\n const lines = content.split('\\n').length\n\n return {\n package: r.metadata.package || 'unknown',\n source,\n lineStart: r.lineRange?.[0] ?? 1,\n lineEnd: r.lineRange?.[1] ?? lines,\n content,\n score: r.score,\n highlights: r.highlights,\n entities: r.entities,\n scope: r.scope,\n }\n })\n}\n\n// ── Pooled DB access for interactive search ──\n\nexport async function openPool(dbPaths: string[]): Promise<Map<string, RetrivInstance>> {\n const pool = new Map<string, RetrivInstance>()\n await Promise.all(dbPaths.map(async (dbPath) => {\n const db = await getDb({ dbPath })\n pool.set(dbPath, db)\n }))\n return pool\n}\n\nexport async function searchPooled(\n query: string,\n pool: Map<string, RetrivInstance>,\n options: SearchOptions = {},\n): Promise<SearchSnippet[]> {\n const { limit = 10, filter } = options\n const fetchLimit = limit * 2 // Over-fetch to compensate for dedup\n const allResults = await Promise.all(\n Array.from(pool.values(), async (db) => {\n const results = await db.search(query, { limit: fetchLimit, filter, returnContent: true, returnMetadata: true, returnMeta: true })\n return results.map(r => ({\n id: r.id,\n content: r.content ?? '',\n score: r.score,\n metadata: r.metadata ?? {},\n highlights: r._meta?.highlights ?? [],\n lineRange: r._chunk?.lineRange as [number, number] | undefined,\n entities: r._chunk?.entities,\n scope: r._chunk?.scope,\n }))\n }),\n )\n // Deduplicate by source+lineRange (overlapping chunks from same doc)\n const seen = new Set<string>()\n const merged = allResults.flat()\n .sort((a, b) => b.score - a.score)\n .filter((r) => {\n const lr = r.lineRange\n const key = `${r.metadata.source || r.id}:${lr?.[0]}-${lr?.[1]}`\n if (seen.has(key))\n return false\n seen.add(key)\n return true\n })\n .slice(0, limit)\n return toSnippets(merged)\n}\n\nexport async function closePool(pool: Map<string, RetrivInstance>): Promise<void> {\n await Promise.all(Array.from(pool.values(), db => db.close?.()))\n pool.clear()\n}\n"],"mappings":"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"}
@@ -1,17 +0,0 @@
1
- import { b as resolveAgent, x as sharedArgs } from "./cli-helpers.mjs";
2
- import { t as runWizard } from "./wizard.mjs";
3
- import { defineCommand } from "citty";
4
- const setupCommandDef = defineCommand({
5
- meta: {
6
- name: "setup",
7
- description: "Re-run the setup wizard to configure features and model"
8
- },
9
- args: { agent: sharedArgs.agent },
10
- async run({ args }) {
11
- const agent = resolveAgent(args.agent);
12
- await runWizard({ agent: agent && agent !== "none" ? agent : void 0 });
13
- }
14
- });
15
- export { setupCommandDef };
16
-
17
- //# sourceMappingURL=setup.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setup.mjs","names":[],"sources":["../../src/commands/setup.ts"],"sourcesContent":["import type { AgentType } from '../agent/index.ts'\nimport { defineCommand } from 'citty'\nimport { resolveAgent, sharedArgs } from '../cli-helpers.ts'\nimport { runWizard } from './wizard.ts'\n\nexport const setupCommandDef = defineCommand({\n meta: {\n name: 'setup',\n description: 'Re-run the setup wizard to configure features and model',\n },\n args: {\n agent: sharedArgs.agent,\n },\n async run({ args }) {\n const agent = resolveAgent(args.agent)\n await runWizard({\n agent: agent && agent !== 'none' ? agent as AgentType : undefined,\n })\n },\n})\n"],"mappings":";;;AAKA,MAAa,kBAAkB,cAAc;CAC3C,MAAM;EACJ,MAAM;EACN,aAAa;EACd;CACD,MAAM,EACJ,OAAO,WAAW,OACnB;CACD,MAAM,IAAI,EAAE,QAAQ;EAClB,MAAM,QAAQ,aAAa,KAAK,MAAM;EACtC,MAAM,UAAU,EACd,OAAO,SAAS,UAAU,SAAS,QAAqB,KAAA,GACzD,CAAC;;CAEL,CAAC"}