@staticn0va/wigolo 0.6.5 → 1.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 (238) hide show
  1. package/README.md +48 -48
  2. package/SKILL.md +22 -22
  3. package/assets/skills/wigolo/rules/cache-first.md +1 -1
  4. package/assets/skills/wigolo/rules/synthesis.md +1 -1
  5. package/assets/skills/wigolo-fetch/SKILL.md +1 -1
  6. package/assets/skills/wigolo-find-similar/SKILL.md +2 -2
  7. package/assets/skills/wigolo-search/SKILL.md +3 -3
  8. package/dist/cache/store.d.ts +9 -1
  9. package/dist/cache/store.d.ts.map +1 -1
  10. package/dist/cache/store.js +30 -4
  11. package/dist/cache/store.js.map +1 -1
  12. package/dist/cli/doctor.d.ts +3 -3
  13. package/dist/cli/doctor.d.ts.map +1 -1
  14. package/dist/cli/doctor.js +67 -13
  15. package/dist/cli/doctor.js.map +1 -1
  16. package/dist/cli/health.js +1 -1
  17. package/dist/cli/health.js.map +1 -1
  18. package/dist/cli/status.js +1 -1
  19. package/dist/cli/status.js.map +1 -1
  20. package/dist/cli/tui/hooks/useInstall.js +2 -2
  21. package/dist/cli/tui/hooks/useInstall.js.map +1 -1
  22. package/dist/cli/tui/hooks/useVerify.js +3 -3
  23. package/dist/cli/tui/hooks/useVerify.js.map +1 -1
  24. package/dist/cli/tui/status-format.d.ts +1 -1
  25. package/dist/cli/tui/status-format.d.ts.map +1 -1
  26. package/dist/cli/tui/status-format.js +5 -5
  27. package/dist/cli/tui/status-format.js.map +1 -1
  28. package/dist/cli/tui/status-python.d.ts +1 -1
  29. package/dist/cli/tui/status-python.d.ts.map +1 -1
  30. package/dist/cli/tui/status-python.js +17 -1
  31. package/dist/cli/tui/status-python.js.map +1 -1
  32. package/dist/cli/tui/verify-suggestions.d.ts +1 -1
  33. package/dist/cli/tui/verify-suggestions.d.ts.map +1 -1
  34. package/dist/cli/tui/verify-suggestions.js +5 -5
  35. package/dist/cli/tui/verify-suggestions.js.map +1 -1
  36. package/dist/cli/tui/verify.d.ts +2 -2
  37. package/dist/cli/tui/verify.d.ts.map +1 -1
  38. package/dist/cli/tui/verify.js +34 -8
  39. package/dist/cli/tui/verify.js.map +1 -1
  40. package/dist/cli/uninstall.js +2 -2
  41. package/dist/cli/uninstall.js.map +1 -1
  42. package/dist/cli/warmup.d.ts.map +1 -1
  43. package/dist/cli/warmup.js +29 -25
  44. package/dist/cli/warmup.js.map +1 -1
  45. package/dist/config.d.ts +6 -1
  46. package/dist/config.d.ts.map +1 -1
  47. package/dist/config.js +15 -2
  48. package/dist/config.js.map +1 -1
  49. package/dist/crawl/dedup.d.ts +1 -0
  50. package/dist/crawl/dedup.d.ts.map +1 -1
  51. package/dist/crawl/dedup.js +47 -1
  52. package/dist/crawl/dedup.js.map +1 -1
  53. package/dist/extraction/boilerplate.d.ts +15 -0
  54. package/dist/extraction/boilerplate.d.ts.map +1 -0
  55. package/dist/extraction/boilerplate.js +49 -0
  56. package/dist/extraction/boilerplate.js.map +1 -0
  57. package/dist/extraction/defuddle.d.ts.map +1 -1
  58. package/dist/extraction/defuddle.js +7 -3
  59. package/dist/extraction/defuddle.js.map +1 -1
  60. package/dist/extraction/jsonld.js +1 -1
  61. package/dist/extraction/jsonld.js.map +1 -1
  62. package/dist/extraction/lang-hints.d.ts +2 -0
  63. package/dist/extraction/lang-hints.d.ts.map +1 -0
  64. package/dist/extraction/lang-hints.js +28 -0
  65. package/dist/extraction/lang-hints.js.map +1 -0
  66. package/dist/extraction/llm/anthropic.d.ts +3 -0
  67. package/dist/extraction/llm/anthropic.d.ts.map +1 -0
  68. package/dist/extraction/llm/anthropic.js +33 -0
  69. package/dist/extraction/llm/anthropic.js.map +1 -0
  70. package/dist/extraction/llm/cache.d.ts +5 -0
  71. package/dist/extraction/llm/cache.d.ts.map +1 -0
  72. package/dist/extraction/llm/cache.js +35 -0
  73. package/dist/extraction/llm/cache.js.map +1 -0
  74. package/dist/extraction/llm/gemini.d.ts +3 -0
  75. package/dist/extraction/llm/gemini.d.ts.map +1 -0
  76. package/dist/extraction/llm/gemini.js +35 -0
  77. package/dist/extraction/llm/gemini.js.map +1 -0
  78. package/dist/extraction/llm/groq.d.ts +3 -0
  79. package/dist/extraction/llm/groq.d.ts.map +1 -0
  80. package/dist/extraction/llm/groq.js +63 -0
  81. package/dist/extraction/llm/groq.js.map +1 -0
  82. package/dist/extraction/llm/hash.d.ts +3 -0
  83. package/dist/extraction/llm/hash.d.ts.map +1 -0
  84. package/dist/extraction/llm/hash.js +22 -0
  85. package/dist/extraction/llm/hash.js.map +1 -0
  86. package/dist/extraction/llm/openai.d.ts +3 -0
  87. package/dist/extraction/llm/openai.d.ts.map +1 -0
  88. package/dist/extraction/llm/openai.js +38 -0
  89. package/dist/extraction/llm/openai.js.map +1 -0
  90. package/dist/extraction/llm/select.d.ts +5 -0
  91. package/dist/extraction/llm/select.d.ts.map +1 -0
  92. package/dist/extraction/llm/select.js +27 -0
  93. package/dist/extraction/llm/select.js.map +1 -0
  94. package/dist/extraction/llm/types.d.ts +24 -0
  95. package/dist/extraction/llm/types.d.ts.map +1 -0
  96. package/dist/extraction/llm/types.js +2 -0
  97. package/dist/extraction/llm/types.js.map +1 -0
  98. package/dist/extraction/llm/validate.d.ts +6 -0
  99. package/dist/extraction/llm/validate.d.ts.map +1 -0
  100. package/dist/extraction/llm/validate.js +63 -0
  101. package/dist/extraction/llm/validate.js.map +1 -0
  102. package/dist/extraction/llm-fallback.d.ts +17 -0
  103. package/dist/extraction/llm-fallback.d.ts.map +1 -0
  104. package/dist/extraction/llm-fallback.js +129 -0
  105. package/dist/extraction/llm-fallback.js.map +1 -0
  106. package/dist/extraction/markdown.d.ts +9 -0
  107. package/dist/extraction/markdown.d.ts.map +1 -1
  108. package/dist/extraction/markdown.js +52 -3
  109. package/dist/extraction/markdown.js.map +1 -1
  110. package/dist/extraction/pipeline.d.ts.map +1 -1
  111. package/dist/extraction/pipeline.js +17 -5
  112. package/dist/extraction/pipeline.js.map +1 -1
  113. package/dist/extraction/readability.d.ts.map +1 -1
  114. package/dist/extraction/readability.js +2 -3
  115. package/dist/extraction/readability.js.map +1 -1
  116. package/dist/extraction/schema.d.ts +12 -0
  117. package/dist/extraction/schema.d.ts.map +1 -1
  118. package/dist/extraction/schema.js +81 -11
  119. package/dist/extraction/schema.js.map +1 -1
  120. package/dist/extraction/site-extractors/docs-generic.d.ts.map +1 -1
  121. package/dist/extraction/site-extractors/docs-generic.js +2 -3
  122. package/dist/extraction/site-extractors/docs-generic.js.map +1 -1
  123. package/dist/extraction/site-extractors/github.d.ts.map +1 -1
  124. package/dist/extraction/site-extractors/github.js +4 -5
  125. package/dist/extraction/site-extractors/github.js.map +1 -1
  126. package/dist/extraction/site-extractors/mdn.d.ts.map +1 -1
  127. package/dist/extraction/site-extractors/mdn.js +2 -3
  128. package/dist/extraction/site-extractors/mdn.js.map +1 -1
  129. package/dist/extraction/site-extractors/stackoverflow.d.ts.map +1 -1
  130. package/dist/extraction/site-extractors/stackoverflow.js +3 -4
  131. package/dist/extraction/site-extractors/stackoverflow.js.map +1 -1
  132. package/dist/extraction/structured-data.d.ts +4 -0
  133. package/dist/extraction/structured-data.d.ts.map +1 -0
  134. package/dist/extraction/structured-data.js +203 -0
  135. package/dist/extraction/structured-data.js.map +1 -0
  136. package/dist/fetch/router.d.ts +2 -1
  137. package/dist/fetch/router.d.ts.map +1 -1
  138. package/dist/fetch/router.js +19 -1
  139. package/dist/fetch/router.js.map +1 -1
  140. package/dist/instructions.d.ts +8 -8
  141. package/dist/instructions.d.ts.map +1 -1
  142. package/dist/instructions.js +48 -41
  143. package/dist/instructions.js.map +1 -1
  144. package/dist/logger.d.ts +1 -1
  145. package/dist/logger.d.ts.map +1 -1
  146. package/dist/research/brief.js +1 -1
  147. package/dist/research/brief.js.map +1 -1
  148. package/dist/search/evidence.d.ts +25 -0
  149. package/dist/search/evidence.d.ts.map +1 -0
  150. package/dist/search/evidence.js +260 -0
  151. package/dist/search/evidence.js.map +1 -0
  152. package/dist/search/highlights.d.ts +11 -2
  153. package/dist/search/highlights.d.ts.map +1 -1
  154. package/dist/search/highlights.js +131 -48
  155. package/dist/search/highlights.js.map +1 -1
  156. package/dist/search/multi-query.d.ts +1 -0
  157. package/dist/search/multi-query.d.ts.map +1 -1
  158. package/dist/search/multi-query.js +13 -0
  159. package/dist/search/multi-query.js.map +1 -1
  160. package/dist/search/rerank.d.ts +3 -2
  161. package/dist/search/rerank.d.ts.map +1 -1
  162. package/dist/search/rerank.js +16 -44
  163. package/dist/search/rerank.js.map +1 -1
  164. package/dist/search/reranker/download.d.ts +9 -0
  165. package/dist/search/reranker/download.d.ts.map +1 -0
  166. package/dist/search/reranker/download.js +77 -0
  167. package/dist/search/reranker/download.js.map +1 -0
  168. package/dist/search/reranker/models.d.ts +14 -0
  169. package/dist/search/reranker/models.d.ts.map +1 -0
  170. package/dist/search/reranker/models.js +37 -0
  171. package/dist/search/reranker/models.js.map +1 -0
  172. package/dist/search/reranker/onnx.d.ts +13 -0
  173. package/dist/search/reranker/onnx.d.ts.map +1 -0
  174. package/dist/search/reranker/onnx.js +70 -0
  175. package/dist/search/reranker/onnx.js.map +1 -0
  176. package/dist/search/reranker/recency-boost.d.ts +3 -0
  177. package/dist/search/reranker/recency-boost.d.ts.map +1 -0
  178. package/dist/search/reranker/recency-boost.js +12 -0
  179. package/dist/search/reranker/recency-boost.js.map +1 -0
  180. package/dist/search/reranker/recency.d.ts +3 -0
  181. package/dist/search/reranker/recency.d.ts.map +1 -0
  182. package/dist/search/reranker/recency.js +26 -0
  183. package/dist/search/reranker/recency.js.map +1 -0
  184. package/dist/search/reranker/tokenizer.d.ts +30 -0
  185. package/dist/search/reranker/tokenizer.d.ts.map +1 -0
  186. package/dist/search/reranker/tokenizer.js +49 -0
  187. package/dist/search/reranker/tokenizer.js.map +1 -0
  188. package/dist/search/tokens.d.ts +3 -0
  189. package/dist/search/tokens.d.ts.map +1 -0
  190. package/dist/search/tokens.js +38 -0
  191. package/dist/search/tokens.js.map +1 -0
  192. package/dist/search/truncate.d.ts +4 -0
  193. package/dist/search/truncate.d.ts.map +1 -1
  194. package/dist/search/truncate.js +13 -0
  195. package/dist/search/truncate.js.map +1 -1
  196. package/dist/server/backend-status.js +2 -2
  197. package/dist/server/backend-status.js.map +1 -1
  198. package/dist/server/tool-schemas.d.ts +503 -0
  199. package/dist/server/tool-schemas.d.ts.map +1 -0
  200. package/dist/server/tool-schemas.js +425 -0
  201. package/dist/server/tool-schemas.js.map +1 -0
  202. package/dist/server.d.ts.map +1 -1
  203. package/dist/server.js +14 -339
  204. package/dist/server.js.map +1 -1
  205. package/dist/tools/agent.d.ts.map +1 -1
  206. package/dist/tools/agent.js +36 -0
  207. package/dist/tools/agent.js.map +1 -1
  208. package/dist/tools/crawl.d.ts.map +1 -1
  209. package/dist/tools/crawl.js +37 -2
  210. package/dist/tools/crawl.js.map +1 -1
  211. package/dist/tools/extract.d.ts.map +1 -1
  212. package/dist/tools/extract.js +19 -3
  213. package/dist/tools/extract.js.map +1 -1
  214. package/dist/tools/fetch.d.ts.map +1 -1
  215. package/dist/tools/fetch.js +44 -7
  216. package/dist/tools/fetch.js.map +1 -1
  217. package/dist/tools/find-similar.d.ts.map +1 -1
  218. package/dist/tools/find-similar.js +32 -1
  219. package/dist/tools/find-similar.js.map +1 -1
  220. package/dist/tools/research.d.ts.map +1 -1
  221. package/dist/tools/research.js +34 -1
  222. package/dist/tools/research.js.map +1 -1
  223. package/dist/tools/search.d.ts.map +1 -1
  224. package/dist/tools/search.js +98 -54
  225. package/dist/tools/search.js.map +1 -1
  226. package/dist/types.d.ts +65 -1
  227. package/dist/types.d.ts.map +1 -1
  228. package/dist/types.js +1 -1
  229. package/dist/types.js.map +1 -1
  230. package/dist/util/mode.d.ts +4 -0
  231. package/dist/util/mode.d.ts.map +1 -0
  232. package/dist/util/mode.js +13 -0
  233. package/dist/util/mode.js.map +1 -0
  234. package/package.json +10 -4
  235. package/dist/search/flashrank.d.ts +0 -12
  236. package/dist/search/flashrank.d.ts.map +0 -1
  237. package/dist/search/flashrank.js +0 -64
  238. package/dist/search/flashrank.js.map +0 -1
@@ -3,7 +3,9 @@ import { join } from 'node:path';
3
3
  import { getConfig } from '../config.js';
4
4
  import { checkPythonAvailable, bootstrapNativeSearxng, getBootstrapState } from '../searxng/bootstrap.js';
5
5
  import { isProcessAlive } from '../searxng/process.js';
6
- import { resetAvailabilityCache } from '../search/flashrank.js';
6
+ import { downloadModelAssets } from '../search/reranker/download.js';
7
+ import { onnxRerank } from '../search/reranker/onnx.js';
8
+ import { resolveModelId } from '../search/reranker/models.js';
7
9
  import { getPythonBin } from '../python-env.js';
8
10
  import { runCommand } from './tui/run-command.js';
9
11
  import { autoReporter } from './tui/reporter-auto.js';
@@ -28,10 +30,10 @@ function wipeSearxngState(dataDir, reporter) {
28
30
  rmSync(bootstrapLockPath, { force: true });
29
31
  rmSync(join(dataDir, 'searxng.lock'), { force: true });
30
32
  rmSync(join(dataDir, 'searxng.port'), { force: true });
31
- reporter.note('Wiped SearXNG state, install, and locks (--force)');
33
+ reporter.note('Wiped search engine state, install, and locks (--force)');
32
34
  }
33
35
  async function installPlaywright(reporter) {
34
- reporter.start('playwright', 'Installing Playwright Chromium');
36
+ reporter.start('playwright', 'Installing browser engine (chromium)');
35
37
  const r = await runCommand('npx', ['playwright', 'install', 'chromium'], { timeout: 180000 });
36
38
  if (r.code === 0) {
37
39
  reporter.success('playwright', 'installed');
@@ -42,7 +44,7 @@ async function installPlaywright(reporter) {
42
44
  return { playwright: 'failed', playwrightError: message };
43
45
  }
44
46
  async function installTrafilatura(dataDir, reporter) {
45
- reporter.start('trafilatura', 'Installing Trafilatura');
47
+ reporter.start('trafilatura', 'Installing content extractor (trafilatura)');
46
48
  const py = getPythonBin(dataDir);
47
49
  const r = await runCommand(py, ['-m', 'pip', 'install', '--quiet', 'trafilatura'], { timeout: 180000 });
48
50
  if (r.code === 0) {
@@ -53,21 +55,23 @@ async function installTrafilatura(dataDir, reporter) {
53
55
  reporter.fail('trafilatura', message);
54
56
  return 'failed';
55
57
  }
56
- async function installFlashRank(dataDir, reporter) {
57
- reporter.start('flashrank', 'Installing FlashRank (ML reranker)');
58
- const py = getPythonBin(dataDir);
59
- const r = await runCommand(py, ['-m', 'pip', 'install', '--quiet', 'flashrank'], { timeout: 180000 });
60
- if (r.code === 0) {
61
- resetAvailabilityCache();
62
- reporter.success('flashrank', 'installed');
58
+ async function downloadOnnxReranker(dataDir, reporter) {
59
+ const modelId = resolveModelId(getConfig().rerankerModel);
60
+ reporter.start('reranker', `Installing ML reranker (${modelId})`);
61
+ try {
62
+ await downloadModelAssets(modelId, dataDir, reporter);
63
+ await onnxRerank('warmup', [{ text: 'hello world' }], { modelId });
64
+ reporter.success('reranker', 'installed');
63
65
  return { reranker: 'ok' };
64
66
  }
65
- const message = (r.stderr || r.stdout || `exit ${r.code}`).trim();
66
- reporter.fail('flashrank', message);
67
- return { reranker: 'failed', rerankerError: message };
67
+ catch (err) {
68
+ const message = err instanceof Error ? err.message : String(err);
69
+ reporter.fail('reranker', message);
70
+ return { reranker: 'failed', rerankerError: message };
71
+ }
68
72
  }
69
73
  async function installFirefox(reporter) {
70
- reporter.start('firefox', 'Installing Playwright Firefox');
74
+ reporter.start('firefox', 'Installing browser engine (firefox)');
71
75
  const r = await runCommand('npx', ['playwright', 'install', 'firefox'], { timeout: 180000 });
72
76
  if (r.code === 0) {
73
77
  reporter.success('firefox', 'installed');
@@ -78,7 +82,7 @@ async function installFirefox(reporter) {
78
82
  return { firefox: 'failed', firefoxError: message };
79
83
  }
80
84
  async function installWebkit(reporter) {
81
- reporter.start('webkit', 'Installing Playwright WebKit');
85
+ reporter.start('webkit', 'Installing browser engine (webkit)');
82
86
  const r = await runCommand('npx', ['playwright', 'install', 'webkit'], { timeout: 180000 });
83
87
  if (r.code === 0) {
84
88
  reporter.success('webkit', 'installed');
@@ -89,7 +93,7 @@ async function installWebkit(reporter) {
89
93
  return { webkit: 'failed', webkitError: message };
90
94
  }
91
95
  async function installSentenceTransformers(dataDir, reporter) {
92
- reporter.start('embeddings', 'Installing sentence-transformers');
96
+ reporter.start('embeddings', 'Installing semantic embeddings (sentence-transformers)');
93
97
  const py = getPythonBin(dataDir);
94
98
  const r = await runCommand(py, ['-m', 'pip', 'install', '--quiet', 'sentence-transformers'], { timeout: 300000 });
95
99
  if (r.code === 0) {
@@ -161,16 +165,16 @@ async function installLightpanda(reporter) {
161
165
  async function runSearxngPhase(dataDir, reporter) {
162
166
  const state = getBootstrapState(dataDir);
163
167
  if (state?.status === 'ready') {
164
- reporter.start('searxng', 'Checking SearXNG');
168
+ reporter.start('searxng', 'Checking search engine (searxng)');
165
169
  reporter.success('searxng', 'already set up');
166
170
  return { searxng: 'ready' };
167
171
  }
168
172
  if (!checkPythonAvailable()) {
169
- reporter.start('searxng', 'Checking SearXNG');
173
+ reporter.start('searxng', 'Checking search engine (searxng)');
170
174
  reporter.fail('searxng', 'Python 3 not found — install Python 3 or set SEARXNG_MODE=docker');
171
175
  return { searxng: 'no_python' };
172
176
  }
173
- reporter.start('searxng', 'Bootstrapping SearXNG (this may take a minute)');
177
+ reporter.start('searxng', 'Bootstrapping search engine (searxng) — this may take a minute');
174
178
  try {
175
179
  await bootstrapNativeSearxng(dataDir);
176
180
  reporter.success('searxng', 'bootstrapped');
@@ -207,7 +211,7 @@ export async function runWarmup(flags = [], reporter) {
207
211
  }
208
212
  let rerankerResult = {};
209
213
  if (flagSet.has('--reranker') || flagSet.has('--all')) {
210
- rerankerResult = await installFlashRank(config.dataDir, reporterImpl);
214
+ rerankerResult = await downloadOnnxReranker(config.dataDir, reporterImpl);
211
215
  }
212
216
  let firefoxResult = {};
213
217
  if (flagSet.has('--firefox') || flagSet.has('--all')) {
@@ -237,12 +241,12 @@ export async function runWarmup(flags = [], reporter) {
237
241
  };
238
242
  reporterImpl.note('');
239
243
  reporterImpl.note('Summary:');
240
- reporterImpl.note(` Playwright: ${result.playwright}${result.playwrightError ? ` (${result.playwrightError})` : ''}`);
241
- reporterImpl.note(` SearXNG: ${result.searxng}${result.searxngError ? ` (${result.searxngError})` : ''}`);
244
+ reporterImpl.note(` Browser: ${result.playwright}${result.playwrightError ? ` (${result.playwrightError})` : ''}`);
245
+ reporterImpl.note(` Search engine: ${result.searxng}${result.searxngError ? ` (${result.searxngError})` : ''}`);
242
246
  if (trafStatus !== 'skipped')
243
- reporterImpl.note(` Trafilatura: ${trafStatus}`);
247
+ reporterImpl.note(` Content extractor: ${trafStatus}`);
244
248
  if (result.reranker)
245
- reporterImpl.note(` FlashRank: ${result.reranker}${result.rerankerError ? ` (${result.rerankerError})` : ''}`);
249
+ reporterImpl.note(` ML reranker: ${result.reranker}${result.rerankerError ? ` (${result.rerankerError})` : ''}`);
246
250
  if (result.firefox)
247
251
  reporterImpl.note(` Firefox: ${result.firefox}${result.firefoxError ? ` (${result.firefoxError})` : ''}`);
248
252
  if (result.webkit)
@@ -1 +1 @@
1
- {"version":3,"file":"warmup.js","sourceRoot":"","sources":["../../src/cli/warmup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"warmup.js","sourceRoot":"","sources":["../../src/cli/warmup.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -21,6 +21,8 @@ export interface Config {
21
21
  dataDir: string;
22
22
  cacheTtlSearch: number;
23
23
  cacheTtlContent: number;
24
+ fastStaleMaxHours: number;
25
+ fastTimeoutMs: number;
24
26
  crawlConcurrency: number;
25
27
  crawlDelayMs: number;
26
28
  crawlPrivateConcurrency: number;
@@ -34,7 +36,7 @@ export interface Config {
34
36
  logLevel: 'debug' | 'info' | 'warn' | 'error';
35
37
  logFormat: 'json' | 'text';
36
38
  trafilatura: 'auto' | 'always' | 'never';
37
- reranker: 'flashrank' | 'none' | 'custom';
39
+ reranker: 'onnx' | 'none' | 'custom';
38
40
  rerankerModel: string;
39
41
  relevanceThreshold: number;
40
42
  bootstrapMaxAttempts: number;
@@ -53,6 +55,9 @@ export interface Config {
53
55
  lightpandaUrl: string | null;
54
56
  lightpandaEnabled: boolean;
55
57
  lightpandaFailureThreshold: number;
58
+ llmProvider: string | null;
59
+ llmCacheTtlDays: number;
60
+ llmMaxCallsPerRequest: number;
56
61
  }
57
62
  export declare function getConfig(): Config;
58
63
  export declare function resetConfig(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzC,QAAQ,EAAE,WAAW,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;CACpC;AA6BD,wBAAgB,SAAS,IAAI,MAAM,CAmElC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAC9C,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACzC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B,EAAE,MAAM,CAAC;IACnC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AA6BD,wBAAgB,SAAS,IAAI,MAAM,CAkFlC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
package/dist/config.js CHANGED
@@ -52,6 +52,8 @@ export function getConfig() {
52
52
  dataDir: envStr('WIGOLO_DATA_DIR') ?? join(homedir(), '.wigolo'),
53
53
  cacheTtlSearch: envInt('CACHE_TTL_SEARCH', 86400),
54
54
  cacheTtlContent: envInt('CACHE_TTL_CONTENT', 604800),
55
+ fastStaleMaxHours: envInt('WIGOLO_FAST_STALE_MAX_HOURS', 24),
56
+ fastTimeoutMs: envInt('WIGOLO_FAST_TIMEOUT_MS', 800),
55
57
  crawlConcurrency: envInt('CRAWL_CONCURRENCY', 2),
56
58
  crawlDelayMs: envInt('CRAWL_DELAY_MS', 500),
57
59
  crawlPrivateConcurrency: envInt('CRAWL_PRIVATE_CONCURRENCY', 10),
@@ -65,8 +67,16 @@ export function getConfig() {
65
67
  logLevel: envStr('LOG_LEVEL', 'info'),
66
68
  logFormat: envStr('LOG_FORMAT', 'json'),
67
69
  trafilatura: envStr('WIGOLO_TRAFILATURA', 'auto'),
68
- reranker: (envStr('WIGOLO_RERANKER') ?? 'flashrank'),
69
- rerankerModel: envStr('WIGOLO_RERANKER_MODEL') ?? 'ms-marco-MiniLM-L-12-v2',
70
+ reranker: (() => {
71
+ const raw = envStr('WIGOLO_RERANKER') ?? 'onnx';
72
+ if (raw === 'flashrank') {
73
+ throw new Error("WIGOLO_RERANKER='flashrank' is retired. Set WIGOLO_RERANKER=onnx (default) — " +
74
+ 'the in-process ONNX reranker replaces the flashrank Python subprocess. ' +
75
+ 'See CHANGELOG.md migration notes.');
76
+ }
77
+ return raw;
78
+ })(),
79
+ rerankerModel: envStr('WIGOLO_RERANKER_MODEL') ?? 'bge-reranker-v2-m3',
70
80
  relevanceThreshold: parseFloat(envStr('WIGOLO_RELEVANCE_THRESHOLD') ?? '0') || 0,
71
81
  bootstrapMaxAttempts: envInt('WIGOLO_BOOTSTRAP_MAX_ATTEMPTS', 3),
72
82
  bootstrapBackoffSeconds: envIntArray('WIGOLO_BOOTSTRAP_BACKOFF_SECONDS', [30, 3600, 86400]),
@@ -92,6 +102,9 @@ export function getConfig() {
92
102
  lightpandaUrl: envStr('WIGOLO_LIGHTPANDA_URL'),
93
103
  lightpandaEnabled: envBool('WIGOLO_LIGHTPANDA_ENABLED', false),
94
104
  lightpandaFailureThreshold: envInt('WIGOLO_LIGHTPANDA_FAILURE_THRESHOLD', 3),
105
+ llmProvider: envStr('WIGOLO_LLM_PROVIDER'),
106
+ llmCacheTtlDays: envInt('WIGOLO_LLM_CACHE_TTL_DAYS', 7),
107
+ llmMaxCallsPerRequest: envInt('WIGOLO_LLM_MAX_CALLS_PER_REQUEST', 1),
95
108
  };
96
109
  return cachedConfig;
97
110
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ interface PageOutput {
8
8
  url: string;
9
9
  markdown: string;
10
10
  }
11
+ export declare function stripRepeatedNavigationLines(pages: PageInput[]): PageInput[];
11
12
  export declare function deduplicatePages(pages: PageInput[], domain?: string): PageOutput[];
12
13
  export declare function getStoredBoilerplate(domain: string): string[];
13
14
  export declare function storeBoilerplate(domain: string, hashes: string[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../../src/crawl/dedup.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CA2B1D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAMD,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CA+ClF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAI7D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAavE"}
1
+ {"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../../src/crawl/dedup.ts"],"names":[],"mappings":"AAGA,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CA2B1D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAMD,UAAU,SAAS;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAWD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAqC5E;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAiDlF;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAI7D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAavE"}
@@ -30,14 +30,60 @@ export function normalizeBlockText(text) {
30
30
  function hashBlock(text) {
31
31
  return createHash('sha256').update(normalizeBlockText(text)).digest('hex');
32
32
  }
33
+ const NAV_DEDUPE_THRESHOLD = 0.6;
34
+ const MAX_LEADING_LINES = 30;
35
+ const MAX_TRAILING_LINES = 20;
36
+ const MIN_CORPUS = 4;
37
+ function lineHash(line) {
38
+ return createHash('sha1').update(line.trim().toLowerCase()).digest('hex');
39
+ }
40
+ export function stripRepeatedNavigationLines(pages) {
41
+ if (pages.length < MIN_CORPUS)
42
+ return pages;
43
+ const lineSets = pages.map((p) => p.markdown.split('\n'));
44
+ const countLeading = new Map();
45
+ const countTrailing = new Map();
46
+ for (const lines of lineSets) {
47
+ const seenL = new Set();
48
+ for (let i = 0; i < Math.min(MAX_LEADING_LINES, lines.length); i++) {
49
+ const h = lineHash(lines[i]);
50
+ if (!seenL.has(h)) {
51
+ seenL.add(h);
52
+ countLeading.set(h, (countLeading.get(h) ?? 0) + 1);
53
+ }
54
+ }
55
+ const seenT = new Set();
56
+ for (let i = lines.length - 1; i >= Math.max(lines.length - MAX_TRAILING_LINES, 0); i--) {
57
+ const h = lineHash(lines[i]);
58
+ if (!seenT.has(h)) {
59
+ seenT.add(h);
60
+ countTrailing.set(h, (countTrailing.get(h) ?? 0) + 1);
61
+ }
62
+ }
63
+ }
64
+ const threshold = pages.length * NAV_DEDUPE_THRESHOLD;
65
+ const navLeading = new Set([...countLeading].filter(([, c]) => c >= threshold).map(([h]) => h));
66
+ const navTrailing = new Set([...countTrailing].filter(([, c]) => c >= threshold).map(([h]) => h));
67
+ return pages.map((page, i) => {
68
+ const lines = lineSets[i];
69
+ let head = 0;
70
+ while (head < lines.length && (lines[head].trim() === '' || navLeading.has(lineHash(lines[head]))))
71
+ head++;
72
+ let tail = lines.length;
73
+ while (tail > head && (lines[tail - 1].trim() === '' || navTrailing.has(lineHash(lines[tail - 1]))))
74
+ tail--;
75
+ return { url: page.url, markdown: lines.slice(head, tail).join('\n') };
76
+ });
77
+ }
33
78
  export function deduplicatePages(pages, domain) {
34
79
  if (pages.length <= 1)
35
80
  return pages.map((p) => ({ url: p.url, markdown: p.markdown }));
81
+ const stripped = stripRepeatedNavigationLines(pages);
36
82
  // Pre-load stored boilerplate hashes for this domain
37
83
  const storedHashes = domain ? getStoredBoilerplate(domain) : [];
38
84
  const boilerplateHashes = new Set(storedHashes);
39
85
  // Split each page into blocks and hash them
40
- const pageBlocks = pages.map((page) => ({
86
+ const pageBlocks = stripped.map((page) => ({
41
87
  url: page.url,
42
88
  blocks: splitIntoBlocks(page.markdown),
43
89
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"dedup.js","sourceRoot":"","sources":["../../src/crawl/dedup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dedup.js","sourceRoot":"","sources":["../../src/crawl/dedup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare const BOILERPLATE_TEXT_EQUALITY: ReadonlyArray<string>;
2
+ export declare const BOILERPLATE_TEXT_PATTERNS: ReadonlyArray<RegExp>;
3
+ export declare const BOILERPLATE_SELECTORS: ReadonlyArray<string>;
4
+ export interface BoilerplateDocument {
5
+ querySelectorAll(selector: string): ArrayLike<BoilerplateElement>;
6
+ }
7
+ interface BoilerplateElement {
8
+ parentNode: {
9
+ removeChild(child: BoilerplateElement): void;
10
+ } | null;
11
+ }
12
+ export declare function stripBoilerplateMarkdown(md: string): string;
13
+ export declare function stripBoilerplateDom(document: BoilerplateDocument): void;
14
+ export {};
15
+ //# sourceMappingURL=boilerplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boilerplate.d.ts","sourceRoot":"","sources":["../../src/extraction/boilerplate.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,MAAM,CAQ3D,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,aAAa,CAAC,MAAM,CAE3D,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,MAAM,CAUvD,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;CACnE;AAED,UAAU,kBAAkB;IAC1B,UAAU,EAAE;QAAE,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;CACrE;AAED,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAU3D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CASvE"}
@@ -0,0 +1,49 @@
1
+ export const BOILERPLATE_TEXT_EQUALITY = [
2
+ 'was this helpful?',
3
+ 'send',
4
+ 'edit this page',
5
+ 'edit on github',
6
+ 'suggest changes',
7
+ 'skip to main content',
8
+ 'on this page',
9
+ ];
10
+ export const BOILERPLATE_TEXT_PATTERNS = [
11
+ /^\s*last updated on .+$/i,
12
+ ];
13
+ export const BOILERPLATE_SELECTORS = [
14
+ '[class*="feedback"]',
15
+ '[class*="edit-page"]',
16
+ '[aria-label*="Edit"]',
17
+ 'footer[class*="docs"]',
18
+ '[class*="sticky-cta"]',
19
+ 'main [role="banner"]',
20
+ '[role="navigation"]',
21
+ '[class*="sidebar"]',
22
+ '[data-collection="docs"]',
23
+ ];
24
+ export function stripBoilerplateMarkdown(md) {
25
+ if (!md)
26
+ return md;
27
+ const lines = md.split('\n');
28
+ const kept = lines.filter((line) => {
29
+ const t = line.trim().toLowerCase();
30
+ if (!t)
31
+ return true;
32
+ if (BOILERPLATE_TEXT_EQUALITY.includes(t))
33
+ return false;
34
+ return !BOILERPLATE_TEXT_PATTERNS.some((re) => re.test(line));
35
+ });
36
+ return kept.join('\n').replace(/\n{3,}/g, '\n\n');
37
+ }
38
+ export function stripBoilerplateDom(document) {
39
+ for (const sel of BOILERPLATE_SELECTORS) {
40
+ const nodes = document.querySelectorAll(sel);
41
+ const list = [];
42
+ for (let i = 0; i < nodes.length; i++)
43
+ list.push(nodes[i]);
44
+ for (const el of list) {
45
+ el.parentNode?.removeChild(el);
46
+ }
47
+ }
48
+ }
49
+ //# sourceMappingURL=boilerplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boilerplate.js","sourceRoot":"","sources":["../../src/extraction/boilerplate.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAA0B;IAC9D,mBAAmB;IACnB,MAAM;IACN,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,sBAAsB;IACtB,cAAc;CACf,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAA0B;IAC9D,0BAA0B;CAC3B,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAA0B;IAC1D,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,qBAAqB;IACrB,oBAAoB;IACpB,0BAA0B;CAC3B,CAAC;AAUF,MAAM,UAAU,wBAAwB,CAAC,EAAU;IACjD,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACnB,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,IAAI,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACxD,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAA6B;IAC/D,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAyB,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACtB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"defuddle.d.ts","sourceRoot":"","sources":["../../src/extraction/defuddle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAoBjG"}
1
+ {"version":3,"file":"defuddle.d.ts","sourceRoot":"","sources":["../../src/extraction/defuddle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKpD,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAsBjG"}
@@ -1,13 +1,17 @@
1
1
  import { Defuddle } from 'defuddle/node';
2
+ import { htmlToMarkdown } from './markdown.js';
2
3
  const MIN_CONTENT_THRESHOLD = 100;
3
4
  export async function defuddleExtract(html, url) {
4
5
  try {
5
- const result = await Defuddle(html, url, { markdown: true });
6
- if (!result.content || result.content.length < MIN_CONTENT_THRESHOLD)
6
+ const result = await Defuddle(html, url);
7
+ if (!result.content)
8
+ return null;
9
+ const markdown = htmlToMarkdown(result.content);
10
+ if (markdown.length < MIN_CONTENT_THRESHOLD)
7
11
  return null;
8
12
  return {
9
13
  title: result.title ?? '',
10
- markdown: result.content,
14
+ markdown,
11
15
  metadata: {
12
16
  description: result.description || undefined,
13
17
  author: result.author || undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"defuddle.js","sourceRoot":"","sources":["../../src/extraction/defuddle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,GAAW;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,qBAAqB;YAAE,OAAO,IAAI,CAAC;QAClF,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;YACzB,QAAQ,EAAE,MAAM,CAAC,OAAO;YACxB,QAAQ,EAAE;gBACR,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,SAAS;gBAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;gBAClC,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;gBACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;aACvC;YACD,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,UAAU;SACtB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"defuddle.js","sourceRoot":"","sources":["../../src/extraction/defuddle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAElC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAY,EAAE,GAAW;IAC7D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACjC,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,QAAQ,CAAC,MAAM,GAAG,qBAAqB;YAAE,OAAO,IAAI,CAAC;QACzD,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE;YACzB,QAAQ;YACR,QAAQ,EAAE;gBACR,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,SAAS;gBAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,SAAS;gBAClC,IAAI,EAAE,MAAM,CAAC,SAAS,IAAI,SAAS;gBACnC,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,SAAS;aACvC;YACD,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,UAAU;SACtB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -22,7 +22,7 @@ export function extractJsonLd(html) {
22
22
  }
23
23
  }
24
24
  catch (err) {
25
- log.debug('Failed to parse JSON-LD block', { error: String(err) });
25
+ log.warn('Failed to parse JSON-LD block', { error: String(err) });
26
26
  }
27
27
  }
28
28
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"jsonld.js","sourceRoot":"","sources":["../../src/extraction/jsonld.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsonld.js","sourceRoot":"","sources":["../../src/extraction/jsonld.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function detectCodeLanguage(classAttr: string | null | undefined): string | null;
2
+ //# sourceMappingURL=lang-hints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lang-hints.d.ts","sourceRoot":"","sources":["../../src/extraction/lang-hints.ts"],"names":[],"mappings":"AAiBA,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAUtF"}
@@ -0,0 +1,28 @@
1
+ const ALIASES = {
2
+ typescript: 'ts',
3
+ javascript: 'js',
4
+ python: 'py',
5
+ rust: 'rs',
6
+ golang: 'go',
7
+ shell: 'sh',
8
+ };
9
+ const PATTERNS = [
10
+ /(?:^|\s)language-([a-z0-9+#-]+)/i,
11
+ /(?:^|\s)lang-([a-z0-9+#-]+)/i,
12
+ /(?:^|\s)hljs-([a-z0-9+#-]+)/i,
13
+ /(?:^|\s)prism-language-([a-z0-9+#-]+)/i,
14
+ /(?:^|\s)highlight-source-([a-z0-9+#-]+)/i,
15
+ ];
16
+ export function detectCodeLanguage(classAttr) {
17
+ if (!classAttr)
18
+ return null;
19
+ for (const re of PATTERNS) {
20
+ const m = classAttr.match(re);
21
+ if (m) {
22
+ const raw = m[1].toLowerCase();
23
+ return ALIASES[raw] ?? raw;
24
+ }
25
+ }
26
+ return null;
27
+ }
28
+ //# sourceMappingURL=lang-hints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lang-hints.js","sourceRoot":"","sources":["../../src/extraction/lang-hints.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,GAA2B;IACtC,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;IACZ,IAAI,EAAE,IAAI;IACV,MAAM,EAAE,IAAI;IACZ,KAAK,EAAE,IAAI;CACZ,CAAC;AAEF,MAAM,QAAQ,GAAG;IACf,kCAAkC;IAClC,8BAA8B;IAC9B,8BAA8B;IAC9B,wCAAwC;IACxC,0CAA0C;CAC3C,CAAC;AAEF,MAAM,UAAU,kBAAkB,CAAC,SAAoC;IACrE,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LLMCallOpts, LLMExtractResult } from './types.js';
2
+ export declare function callAnthropic(opts: LLMCallOpts, apiKey: string): Promise<LLMExtractResult>;
3
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/extraction/llm/anthropic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAKhE,wBAAsB,aAAa,CACjC,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC,CAqC3B"}
@@ -0,0 +1,33 @@
1
+ import Anthropic from '@anthropic-ai/sdk';
2
+ const DEFAULT_MODEL = 'claude-haiku-4-5';
3
+ const TOOL_NAME = 'extract';
4
+ export async function callAnthropic(opts, apiKey) {
5
+ const client = new Anthropic({ apiKey });
6
+ const model = opts.modelOverride ?? DEFAULT_MODEL;
7
+ const start = Date.now();
8
+ const response = await client.messages.create({
9
+ model,
10
+ max_tokens: 2048,
11
+ tools: [
12
+ {
13
+ name: TOOL_NAME,
14
+ description: 'Return the extracted fields as structured JSON.',
15
+ input_schema: opts.jsonSchema,
16
+ },
17
+ ],
18
+ tool_choice: { type: 'tool', name: TOOL_NAME },
19
+ messages: [{ role: 'user', content: opts.prompt }],
20
+ }, { signal: opts.signal });
21
+ const block = (response.content ?? []).find((b) => b.type === 'tool_use');
22
+ if (!block) {
23
+ throw new Error('anthropic: no tool_use block in response');
24
+ }
25
+ return {
26
+ values: block.input,
27
+ provider: 'anthropic',
28
+ model: response.model ?? model,
29
+ cached: false,
30
+ latencyMs: Date.now() - start,
31
+ };
32
+ }
33
+ //# sourceMappingURL=anthropic.js.map