@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
@@ -6,23 +6,53 @@ import { applyAllFilters } from '../search/filters.js';
6
6
  import { formatSearchContext } from '../search/context-formatter.js';
7
7
  import { synthesizeAnswer, buildStructuredFallback } from '../search/answer-synthesis.js';
8
8
  import { extractHighlights } from '../search/highlights.js';
9
- import { normalizeQueries, fanOutSearch, synthesizeIntent } from '../search/multi-query.js';
9
+ import { applyEvidenceDefault } from '../search/evidence.js';
10
+ import { normalizeQueries, fanOutSearch, synthesizeIntent, expandQueryHeuristic } from '../search/multi-query.js';
10
11
  import { extractContent } from '../extraction/pipeline.js';
11
12
  import { truncateSmartly } from '../search/truncate.js';
12
13
  import { cacheSearchResults, getCachedSearchResults, cacheContent } from '../cache/store.js';
13
14
  import { getEmbeddingService } from '../embedding/embed.js';
14
15
  import { getConfig } from '../config.js';
16
+ import { resolveMode } from '../util/mode.js';
15
17
  import { createLogger } from '../logger.js';
16
18
  const log = createLogger('search');
17
19
  const DEFAULT_MAX_RESULTS = 5;
18
20
  const MAX_RESULTS_CAP = 20;
19
21
  const DEFAULT_CONTENT_MAX_CHARS = 30000;
20
22
  const DEFAULT_MAX_TOTAL_CHARS = 50000;
23
+ const TOP_K_DEEP = 5;
21
24
  export async function handleSearch(input, engines, router, backendStatus, samplingServer, onProgress) {
25
+ const mode = resolveMode(input.mode);
22
26
  const start = Date.now();
23
27
  const config = getConfig();
28
+ const RETIRED_FORMATS = new Set(['full', 'context', 'highlights']);
29
+ const VALID_FORMATS = new Set(['answer', 'stream_answer']);
30
+ if (input.format != null) {
31
+ const fmt = String(input.format);
32
+ if (RETIRED_FORMATS.has(fmt)) {
33
+ return {
34
+ results: [],
35
+ query: typeof input.query === 'string' ? input.query : (input.query?.[0] ?? ''),
36
+ engines_used: [],
37
+ total_time_ms: Date.now() - start,
38
+ error: `format renamed; pass 'evidence' (default — omit) or 'answer'/'stream_answer' for synthesis`,
39
+ };
40
+ }
41
+ if (!VALID_FORMATS.has(fmt)) {
42
+ return {
43
+ results: [],
44
+ query: typeof input.query === 'string' ? input.query : (input.query?.[0] ?? ''),
45
+ engines_used: [],
46
+ total_time_ms: Date.now() - start,
47
+ error: `unknown format='${fmt}'. Valid: omit (evidence), 'answer', 'stream_answer'`,
48
+ };
49
+ }
50
+ }
24
51
  const maxResults = Math.min(input.max_results ?? DEFAULT_MAX_RESULTS, MAX_RESULTS_CAP);
25
- const includeContent = input.include_content ?? true;
52
+ const includeContent = mode === 'deep' ? true : (input.include_content ?? true);
53
+ const deepFetchCap = mode === 'deep'
54
+ ? Math.min(input.max_results ?? 10, TOP_K_DEEP)
55
+ : undefined;
26
56
  const contentMaxChars = input.content_max_chars ?? DEFAULT_CONTENT_MAX_CHARS;
27
57
  const maxContentChars = input.max_content_chars;
28
58
  const maxTotalChars = input.max_total_chars ?? DEFAULT_MAX_TOTAL_CHARS;
@@ -40,10 +70,16 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
40
70
  log.debug('progress notification failed', { error: String(err) });
41
71
  }
42
72
  };
43
- const isMultiQuery = Array.isArray(input.query);
73
+ let normalizedQuery = input.query;
74
+ let deepAutoExpanded = false;
75
+ if (mode === 'deep' && typeof normalizedQuery === 'string') {
76
+ normalizedQuery = expandQueryHeuristic(normalizedQuery);
77
+ deepAutoExpanded = true;
78
+ }
79
+ const isMultiQuery = Array.isArray(normalizedQuery);
44
80
  // --- Multi-query path ---
45
81
  if (isMultiQuery) {
46
- const normalizedQueries = normalizeQueries(input.query);
82
+ const normalizedQueries = normalizeQueries(normalizedQuery);
47
83
  if (normalizedQueries.length === 0) {
48
84
  const output = {
49
85
  results: [],
@@ -58,13 +94,27 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
58
94
  output.warning = warning;
59
95
  return output;
60
96
  }
61
- const displayQuery = normalizedQueries[0];
97
+ const displayQuery = deepAutoExpanded && typeof input.query === 'string'
98
+ ? input.query
99
+ : normalizedQueries[0];
62
100
  const cacheKey = normalizedQueries.join(' | ');
63
- const cached = input.force_refresh ? null : getCachedSearchResults(cacheKey);
101
+ const staleMaxSeconds = mode === 'fast' ? config.fastStaleMaxHours * 3600 : 0;
102
+ const cached = input.force_refresh
103
+ ? null
104
+ : getCachedSearchResults(cacheKey, { staleMaxSeconds });
64
105
  if (cached && !includeContent) {
65
- log.info('serving multi-query search results from cache', { queries: normalizedQueries });
106
+ log.info('serving multi-query search results from cache', {
107
+ queries: normalizedQueries,
108
+ stale: cached.stale ?? false,
109
+ });
110
+ const stamped = cached.results.slice(0, maxResults).map(r => ({
111
+ ...r,
112
+ cached: true,
113
+ cached_at: cached.searched_at,
114
+ ...(cached.stale ? { stale: true } : {}),
115
+ }));
66
116
  const output = {
67
- results: cached.results.slice(0, maxResults),
117
+ results: stamped,
68
118
  query: displayQuery,
69
119
  engines_used: cached.engines_used,
70
120
  total_time_ms: Date.now() - start,
@@ -73,15 +123,12 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
73
123
  const warning = backendStatus?.consumeWarning();
74
124
  if (warning)
75
125
  output.warning = warning;
76
- if (input.format === 'context') {
77
- output.context_text = formatSearchContext(output.results, maxTotalChars);
78
- }
79
- if (input.format === 'highlights' && output.results.length > 0) {
80
- await applyHighlightsFormat(output, output.results, displayQuery, input.max_highlights);
81
- }
82
126
  if ((input.format === 'answer' || input.format === 'stream_answer') && output.results.length > 0) {
83
127
  await applyAnswerSynthesis(input, output, output.results, maxTotalChars, samplingServer, streamProgress);
84
128
  }
129
+ else if (output.results.length > 0) {
130
+ await applyEvidenceDefault(input, output, output.results, displayQuery);
131
+ }
85
132
  return output;
86
133
  }
87
134
  let activeEngines = engines;
@@ -93,7 +140,7 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
93
140
  }
94
141
  }
95
142
  await emit(1, 5, `Running ${normalizedQueries.length} search queries across engines...`);
96
- const { results: rawResults, enginesUsed, errors } = await fanOutSearch(normalizedQueries, activeEngines, {
143
+ const { results: rawResults, enginesUsed, errors } = await fanOutSearch(normalizedQueries, mode === 'fast' ? activeEngines.slice(0, 1) : activeEngines, {
97
144
  maxResults,
98
145
  timeRange: input.time_range,
99
146
  language: input.language,
@@ -115,9 +162,6 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
115
162
  const warning = backendStatus?.consumeWarning();
116
163
  if (warning)
117
164
  output.warning = warning;
118
- if (input.format === 'context') {
119
- output.context_text = '';
120
- }
121
165
  return output;
122
166
  }
123
167
  await emit(2, 5, `Deduplicating and reranking ${rawResults.length} results...`);
@@ -130,7 +174,7 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
130
174
  category: input.category,
131
175
  });
132
176
  const intentString = synthesizeIntent(normalizedQueries);
133
- merged = await rerankResults(intentString, merged);
177
+ merged = await rerankResults(intentString, merged, { skip: mode === 'fast' });
134
178
  merged = await validateLinks(merged);
135
179
  merged = merged.slice(0, maxResults);
136
180
  const results = merged.map(m => ({
@@ -152,6 +196,7 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
152
196
  fetchTimeoutMs,
153
197
  totalDeadline: start + totalTimeoutMs,
154
198
  forceRefresh: input.force_refresh ?? false,
199
+ maxFetches: deepFetchCap,
155
200
  });
156
201
  fetchElapsed = Date.now() - fetchStart;
157
202
  }
@@ -173,24 +218,33 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
173
218
  const warning = backendStatus?.consumeWarning();
174
219
  if (warning)
175
220
  output.warning = warning;
176
- if (input.format === 'context') {
177
- output.context_text = formatSearchContext(output.results, maxTotalChars);
178
- }
179
221
  if ((input.format === 'answer' || input.format === 'stream_answer') && results.length > 0) {
180
222
  await applyAnswerSynthesis(input, output, results, maxTotalChars, samplingServer, streamProgress);
181
223
  }
182
- if (input.format === 'highlights' && results.length > 0) {
183
- await applyHighlightsFormat(output, results, displayQuery, input.max_highlights);
224
+ else if (results.length > 0) {
225
+ await applyEvidenceDefault(input, output, results, displayQuery);
184
226
  }
185
227
  return output;
186
228
  }
187
229
  // --- Single-query path (unchanged from v2) ---
188
230
  const queryStr = input.query;
189
- const cached = input.force_refresh ? null : getCachedSearchResults(queryStr);
231
+ const staleMaxSeconds = mode === 'fast' ? config.fastStaleMaxHours * 3600 : 0;
232
+ const cached = input.force_refresh
233
+ ? null
234
+ : getCachedSearchResults(queryStr, { staleMaxSeconds });
190
235
  if (cached && !includeContent) {
191
- log.info('serving search results from cache', { query: queryStr });
236
+ log.info('serving search results from cache', {
237
+ query: queryStr,
238
+ stale: cached.stale ?? false,
239
+ });
240
+ const stamped = cached.results.slice(0, maxResults).map(r => ({
241
+ ...r,
242
+ cached: true,
243
+ cached_at: cached.searched_at,
244
+ ...(cached.stale ? { stale: true } : {}),
245
+ }));
192
246
  const output = {
193
- results: cached.results.slice(0, maxResults),
247
+ results: stamped,
194
248
  query: queryStr,
195
249
  engines_used: cached.engines_used,
196
250
  total_time_ms: Date.now() - start,
@@ -198,15 +252,12 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
198
252
  const warning = backendStatus?.consumeWarning();
199
253
  if (warning)
200
254
  output.warning = warning;
201
- if (input.format === 'context') {
202
- output.context_text = formatSearchContext(output.results, maxTotalChars);
203
- }
204
- if (input.format === 'highlights' && output.results.length > 0) {
205
- await applyHighlightsFormat(output, output.results, queryStr, input.max_highlights);
206
- }
207
255
  if ((input.format === 'answer' || input.format === 'stream_answer') && output.results.length > 0) {
208
256
  await applyAnswerSynthesis(input, output, output.results, maxTotalChars, samplingServer, streamProgress);
209
257
  }
258
+ else if (output.results.length > 0) {
259
+ await applyEvidenceDefault(input, output, output.results, queryStr);
260
+ }
210
261
  return output;
211
262
  }
212
263
  let activeEngines = engines;
@@ -219,13 +270,14 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
219
270
  }
220
271
  const subQueries = decomposeQuery(queryStr);
221
272
  log.debug('query decomposition', { original: queryStr, parts: subQueries.length });
222
- await emit(1, 5, `Running ${subQueries.length} search queries across ${activeEngines.length} engines...`);
273
+ const effectiveEngines = mode === 'fast' ? activeEngines.slice(0, 1) : activeEngines;
274
+ await emit(1, 5, `Running ${subQueries.length} search queries across ${effectiveEngines.length} engines...`);
223
275
  const allRaw = [];
224
276
  const enginesUsed = new Set();
225
277
  const errors = [];
226
278
  const hasFilterAttrition = !!(input.include_domains?.length || input.exclude_domains?.length);
227
279
  const overfetchFactor = hasFilterAttrition ? 3 : 2;
228
- const searchPromises = activeEngines.flatMap(engine => subQueries.map(async (query) => {
280
+ const searchPromises = effectiveEngines.flatMap(engine => subQueries.map(async (query) => {
229
281
  try {
230
282
  const results = await engine.search(query, {
231
283
  maxResults: maxResults * overfetchFactor,
@@ -260,9 +312,6 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
260
312
  const warning = backendStatus?.consumeWarning();
261
313
  if (warning)
262
314
  output.warning = warning;
263
- if (input.format === 'context') {
264
- output.context_text = '';
265
- }
266
315
  return output;
267
316
  }
268
317
  await emit(2, 5, `Deduplicating and reranking ${allRaw.length} results...`);
@@ -274,7 +323,7 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
274
323
  toDate: input.to_date,
275
324
  category: input.category,
276
325
  });
277
- merged = await rerankResults(queryStr, merged);
326
+ merged = await rerankResults(queryStr, merged, { skip: mode === 'fast' });
278
327
  merged = await validateLinks(merged);
279
328
  merged = merged.slice(0, maxResults);
280
329
  const results = merged.map(m => ({
@@ -316,15 +365,12 @@ export async function handleSearch(input, engines, router, backendStatus, sampli
316
365
  const warning = backendStatus?.consumeWarning();
317
366
  if (warning)
318
367
  output.warning = warning;
319
- if (input.format === 'context') {
320
- output.context_text = formatSearchContext(output.results, maxTotalChars);
321
- }
322
- if (input.format === 'highlights' && results.length > 0) {
323
- await applyHighlightsFormat(output, results, queryStr, input.max_highlights);
324
- }
325
368
  if ((input.format === 'answer' || input.format === 'stream_answer') && results.length > 0) {
326
369
  await applyAnswerSynthesis(input, output, results, maxTotalChars, samplingServer, streamProgress);
327
370
  }
371
+ else if (results.length > 0) {
372
+ await applyEvidenceDefault(input, output, results, queryStr);
373
+ }
328
374
  return output;
329
375
  }
330
376
  async function applyAnswerSynthesis(input, output, results, maxTotalChars, samplingServer, onProgress) {
@@ -372,7 +418,7 @@ async function applyAnswerSynthesis(input, output, results, maxTotalChars, sampl
372
418
  return;
373
419
  }
374
420
  await applyHighlightsFallback(output, results, queryStr, maxTotalChars, input.max_highlights);
375
- const fallbackNotice = 'Client does not support MCP sampling; returning FlashRank-scored highlights for host-side synthesis';
421
+ const fallbackNotice = 'Client does not support MCP sampling; returning ML-scored highlights for host-side synthesis';
376
422
  output.warning = output.warning ? `${output.warning}; ${fallbackNotice}` : fallbackNotice;
377
423
  }
378
424
  async function applyHighlightsFallback(output, results, query, maxTotalChars, maxHighlights) {
@@ -399,14 +445,12 @@ async function applyHighlightsFallback(output, results, query, maxTotalChars, ma
399
445
  output.warning = fallback.warning;
400
446
  }
401
447
  }
402
- async function applyHighlightsFormat(output, results, query, maxHighlights) {
403
- const { highlights, citations } = await extractHighlights(query, results, maxHighlights ?? 10);
404
- output.highlights = highlights;
405
- output.citations = citations;
406
- }
407
448
  // Parallel fetch all URLs; then apply total-char budget in relevance (input) order.
408
449
  async function fetchContentForResults(results, router, ctx) {
409
- const fetches = results.map(async (result) => {
450
+ const fetchTargets = ctx.maxFetches !== undefined
451
+ ? results.slice(0, ctx.maxFetches)
452
+ : results;
453
+ const fetches = fetchTargets.map(async (result) => {
410
454
  if (Date.now() >= ctx.totalDeadline) {
411
455
  return { error: 'total_timeout' };
412
456
  }
@@ -450,8 +494,8 @@ async function fetchContentForResults(results, router, ctx) {
450
494
  });
451
495
  const fetched = await Promise.all(fetches);
452
496
  let totalCharsUsed = 0;
453
- for (let i = 0; i < results.length; i++) {
454
- const result = results[i];
497
+ for (let i = 0; i < fetchTargets.length; i++) {
498
+ const result = fetchTargets[i];
455
499
  const { content, error } = fetched[i];
456
500
  if (error) {
457
501
  result.fetch_failed = error;
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/tools/search.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import type { JsonSchema } from './extraction/schema.js';
2
+ export type Mode = 'fast' | 'balanced' | 'deep';
3
+ export declare const MODES: readonly Mode[];
2
4
  export type BrowserAction = {
3
5
  type: 'click';
4
6
  selector: string;
@@ -39,6 +41,10 @@ export interface FetchInput {
39
41
  headers?: Record<string, string>;
40
42
  actions?: BrowserAction[];
41
43
  force_refresh?: boolean;
44
+ max_tokens_out?: number;
45
+ include_full_markdown?: boolean;
46
+ citation_format?: CitationFormat;
47
+ mode?: Mode;
42
48
  }
43
49
  export interface FetchOutput {
44
50
  url: string;
@@ -59,11 +65,15 @@ export interface FetchOutput {
59
65
  images: string[];
60
66
  screenshot?: string;
61
67
  cached: boolean;
68
+ cached_at?: string;
69
+ stale?: boolean;
70
+ js_required?: boolean;
62
71
  error?: string;
63
72
  action_results?: ActionResult[];
64
73
  changed?: boolean;
65
74
  previous_hash?: string;
66
75
  diff_summary?: string;
76
+ evidence?: EvidenceItem[];
67
77
  }
68
78
  export interface RawFetchResult {
69
79
  url: string;
@@ -76,6 +86,7 @@ export interface RawFetchResult {
76
86
  rawBuffer?: Buffer;
77
87
  screenshot?: string;
78
88
  actionResults?: ActionResult[];
89
+ jsRequired?: boolean;
79
90
  }
80
91
  export interface ExtractionResult {
81
92
  title: string;
@@ -125,6 +136,16 @@ export interface Extractor {
125
136
  canHandle(url: string, html?: string): boolean;
126
137
  extract(html: string, url: string): ExtractionResult | null;
127
138
  }
139
+ export type FieldProvenance = 'json-ld' | 'microdata' | 'rdfa' | 'heuristic' | 'llm';
140
+ export interface StructuredDataResult {
141
+ provenance: 'json-ld' | 'microdata' | 'rdfa';
142
+ type: string;
143
+ fields: Record<string, unknown>;
144
+ }
145
+ export interface SchemaExtractionResult {
146
+ values: Record<string, unknown>;
147
+ provenance: Record<string, FieldProvenance>;
148
+ }
128
149
  export interface SearchInput {
129
150
  query: string | string[];
130
151
  max_results?: number;
@@ -140,9 +161,13 @@ export interface SearchInput {
140
161
  from_date?: string;
141
162
  to_date?: string;
142
163
  category?: 'general' | 'news' | 'code' | 'docs' | 'papers' | 'images';
143
- format?: 'full' | 'context' | 'answer' | 'highlights' | 'stream_answer';
164
+ format?: 'answer' | 'stream_answer';
144
165
  max_highlights?: number;
145
166
  force_refresh?: boolean;
167
+ max_tokens_out?: number;
168
+ include_full_markdown?: boolean;
169
+ citation_format?: CitationFormat;
170
+ mode?: Mode;
146
171
  }
147
172
  export interface SearchResultItem {
148
173
  title: string;
@@ -153,6 +178,9 @@ export interface SearchResultItem {
153
178
  content_truncated?: boolean;
154
179
  relevance_score: number;
155
180
  published_date?: string;
181
+ cached?: boolean;
182
+ cached_at?: string;
183
+ stale?: boolean;
156
184
  }
157
185
  export interface SearchOutput {
158
186
  results: SearchResultItem[];
@@ -169,19 +197,38 @@ export interface SearchOutput {
169
197
  citations?: Citation[];
170
198
  highlights?: Highlight[];
171
199
  streaming?: boolean;
200
+ evidence?: EvidenceItem[];
201
+ citations_xml?: string;
202
+ }
203
+ export interface SourceSpan {
204
+ start: number;
205
+ end: number;
206
+ }
207
+ export interface EvidenceItem {
208
+ title: string;
209
+ url: string;
210
+ section_heading: string | null;
211
+ excerpt: string;
212
+ score: number;
213
+ citation_id: string;
214
+ source_span: SourceSpan;
172
215
  }
216
+ export type CitationFormat = 'numbered' | 'anthropic_tags' | 'json';
173
217
  export interface Highlight {
174
218
  text: string;
175
219
  source_index: number;
176
220
  relevance_score: number;
177
221
  source_url: string;
178
222
  source_title: string;
223
+ section_heading?: string | null;
224
+ source_span?: SourceSpan;
179
225
  }
180
226
  export interface Citation {
181
227
  index: number;
182
228
  url: string;
183
229
  title: string;
184
230
  snippet: string;
231
+ citation_id?: string;
185
232
  }
186
233
  export interface ProgressUpdate {
187
234
  progress: number;
@@ -197,6 +244,9 @@ export interface ResearchInput {
197
244
  exclude_domains?: string[];
198
245
  schema?: Record<string, unknown>;
199
246
  stream?: boolean;
247
+ max_tokens_out?: number;
248
+ include_full_markdown?: boolean;
249
+ citation_format?: CitationFormat;
200
250
  }
201
251
  export interface ResearchSource {
202
252
  url: string;
@@ -216,6 +266,7 @@ export interface ResearchOutput {
216
266
  sampling_supported: boolean;
217
267
  brief?: ResearchBrief;
218
268
  error?: string;
269
+ evidence?: EvidenceItem[];
219
270
  }
220
271
  export interface CrossReference {
221
272
  finding: string;
@@ -248,6 +299,9 @@ export interface AgentInput {
248
299
  max_pages?: number;
249
300
  max_time_ms?: number;
250
301
  stream?: boolean;
302
+ max_tokens_out?: number;
303
+ include_full_markdown?: boolean;
304
+ citation_format?: CitationFormat;
251
305
  }
252
306
  export interface AgentSource {
253
307
  url: string;
@@ -269,6 +323,7 @@ export interface AgentOutput {
269
323
  total_time_ms: number;
270
324
  sampling_supported: boolean;
271
325
  error?: string;
326
+ evidence?: EvidenceItem[];
272
327
  }
273
328
  export interface RawSearchResult {
274
329
  title: string;
@@ -303,12 +358,16 @@ export interface CrawlInput {
303
358
  use_auth?: boolean;
304
359
  extract_links?: boolean;
305
360
  max_total_chars?: number;
361
+ max_tokens_out?: number;
362
+ include_full_markdown?: boolean;
363
+ citation_format?: CitationFormat;
306
364
  }
307
365
  export interface CrawlResultItem {
308
366
  url: string;
309
367
  title: string;
310
368
  markdown: string;
311
369
  depth: number;
370
+ evidence?: EvidenceItem[];
312
371
  }
313
372
  export interface LinkEdge {
314
373
  from: string;
@@ -413,6 +472,7 @@ export interface ExtractOutput {
413
472
  source_url?: string;
414
473
  mode: 'selector' | 'tables' | 'metadata' | 'schema' | 'structured';
415
474
  error?: string;
475
+ warnings?: string[];
416
476
  }
417
477
  export interface MatchSignals {
418
478
  embedding_rank?: number;
@@ -435,6 +495,9 @@ export interface FindSimilarInput {
435
495
  exclude_domains?: string[];
436
496
  include_cache?: boolean;
437
497
  include_web?: boolean;
498
+ max_tokens_out?: number;
499
+ include_full_markdown?: boolean;
500
+ citation_format?: CitationFormat;
438
501
  }
439
502
  export interface FindSimilarOutput {
440
503
  results: FindSimilarResult[];
@@ -445,5 +508,6 @@ export interface FindSimilarOutput {
445
508
  cold_start?: string;
446
509
  error?: string;
447
510
  total_time_ms: number;
511
+ evidence?: EvidenceItem[];
448
512
  }
449
513
  //# sourceMappingURL=types.d.ts.map