@staticn0va/wigolo 0.6.6 → 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 (224) hide show
  1. package/dist/cache/store.d.ts +9 -1
  2. package/dist/cache/store.d.ts.map +1 -1
  3. package/dist/cache/store.js +30 -4
  4. package/dist/cache/store.js.map +1 -1
  5. package/dist/cli/doctor.d.ts.map +1 -1
  6. package/dist/cli/doctor.js +56 -2
  7. package/dist/cli/doctor.js.map +1 -1
  8. package/dist/cli/status.js +1 -1
  9. package/dist/cli/status.js.map +1 -1
  10. package/dist/cli/tui/hooks/useInstall.js +1 -1
  11. package/dist/cli/tui/hooks/useInstall.js.map +1 -1
  12. package/dist/cli/tui/hooks/useVerify.js +1 -1
  13. package/dist/cli/tui/hooks/useVerify.js.map +1 -1
  14. package/dist/cli/tui/status-format.d.ts +1 -1
  15. package/dist/cli/tui/status-format.d.ts.map +1 -1
  16. package/dist/cli/tui/status-format.js +1 -1
  17. package/dist/cli/tui/status-format.js.map +1 -1
  18. package/dist/cli/tui/status-python.d.ts +1 -1
  19. package/dist/cli/tui/status-python.d.ts.map +1 -1
  20. package/dist/cli/tui/status-python.js +17 -1
  21. package/dist/cli/tui/status-python.js.map +1 -1
  22. package/dist/cli/tui/verify-suggestions.d.ts +1 -1
  23. package/dist/cli/tui/verify-suggestions.d.ts.map +1 -1
  24. package/dist/cli/tui/verify-suggestions.js +3 -3
  25. package/dist/cli/tui/verify-suggestions.js.map +1 -1
  26. package/dist/cli/tui/verify.d.ts +2 -2
  27. package/dist/cli/tui/verify.d.ts.map +1 -1
  28. package/dist/cli/tui/verify.js +32 -6
  29. package/dist/cli/tui/verify.js.map +1 -1
  30. package/dist/cli/warmup.d.ts.map +1 -1
  31. package/dist/cli/warmup.js +16 -12
  32. package/dist/cli/warmup.js.map +1 -1
  33. package/dist/config.d.ts +6 -1
  34. package/dist/config.d.ts.map +1 -1
  35. package/dist/config.js +15 -2
  36. package/dist/config.js.map +1 -1
  37. package/dist/crawl/dedup.d.ts +1 -0
  38. package/dist/crawl/dedup.d.ts.map +1 -1
  39. package/dist/crawl/dedup.js +47 -1
  40. package/dist/crawl/dedup.js.map +1 -1
  41. package/dist/extraction/boilerplate.d.ts +15 -0
  42. package/dist/extraction/boilerplate.d.ts.map +1 -0
  43. package/dist/extraction/boilerplate.js +49 -0
  44. package/dist/extraction/boilerplate.js.map +1 -0
  45. package/dist/extraction/defuddle.d.ts.map +1 -1
  46. package/dist/extraction/defuddle.js +7 -3
  47. package/dist/extraction/defuddle.js.map +1 -1
  48. package/dist/extraction/jsonld.js +1 -1
  49. package/dist/extraction/jsonld.js.map +1 -1
  50. package/dist/extraction/lang-hints.d.ts +2 -0
  51. package/dist/extraction/lang-hints.d.ts.map +1 -0
  52. package/dist/extraction/lang-hints.js +28 -0
  53. package/dist/extraction/lang-hints.js.map +1 -0
  54. package/dist/extraction/llm/anthropic.d.ts +3 -0
  55. package/dist/extraction/llm/anthropic.d.ts.map +1 -0
  56. package/dist/extraction/llm/anthropic.js +33 -0
  57. package/dist/extraction/llm/anthropic.js.map +1 -0
  58. package/dist/extraction/llm/cache.d.ts +5 -0
  59. package/dist/extraction/llm/cache.d.ts.map +1 -0
  60. package/dist/extraction/llm/cache.js +35 -0
  61. package/dist/extraction/llm/cache.js.map +1 -0
  62. package/dist/extraction/llm/gemini.d.ts +3 -0
  63. package/dist/extraction/llm/gemini.d.ts.map +1 -0
  64. package/dist/extraction/llm/gemini.js +35 -0
  65. package/dist/extraction/llm/gemini.js.map +1 -0
  66. package/dist/extraction/llm/groq.d.ts +3 -0
  67. package/dist/extraction/llm/groq.d.ts.map +1 -0
  68. package/dist/extraction/llm/groq.js +63 -0
  69. package/dist/extraction/llm/groq.js.map +1 -0
  70. package/dist/extraction/llm/hash.d.ts +3 -0
  71. package/dist/extraction/llm/hash.d.ts.map +1 -0
  72. package/dist/extraction/llm/hash.js +22 -0
  73. package/dist/extraction/llm/hash.js.map +1 -0
  74. package/dist/extraction/llm/openai.d.ts +3 -0
  75. package/dist/extraction/llm/openai.d.ts.map +1 -0
  76. package/dist/extraction/llm/openai.js +38 -0
  77. package/dist/extraction/llm/openai.js.map +1 -0
  78. package/dist/extraction/llm/select.d.ts +5 -0
  79. package/dist/extraction/llm/select.d.ts.map +1 -0
  80. package/dist/extraction/llm/select.js +27 -0
  81. package/dist/extraction/llm/select.js.map +1 -0
  82. package/dist/extraction/llm/types.d.ts +24 -0
  83. package/dist/extraction/llm/types.d.ts.map +1 -0
  84. package/dist/extraction/llm/types.js +2 -0
  85. package/dist/extraction/llm/types.js.map +1 -0
  86. package/dist/extraction/llm/validate.d.ts +6 -0
  87. package/dist/extraction/llm/validate.d.ts.map +1 -0
  88. package/dist/extraction/llm/validate.js +63 -0
  89. package/dist/extraction/llm/validate.js.map +1 -0
  90. package/dist/extraction/llm-fallback.d.ts +17 -0
  91. package/dist/extraction/llm-fallback.d.ts.map +1 -0
  92. package/dist/extraction/llm-fallback.js +129 -0
  93. package/dist/extraction/llm-fallback.js.map +1 -0
  94. package/dist/extraction/markdown.d.ts +9 -0
  95. package/dist/extraction/markdown.d.ts.map +1 -1
  96. package/dist/extraction/markdown.js +52 -3
  97. package/dist/extraction/markdown.js.map +1 -1
  98. package/dist/extraction/pipeline.d.ts.map +1 -1
  99. package/dist/extraction/pipeline.js +17 -5
  100. package/dist/extraction/pipeline.js.map +1 -1
  101. package/dist/extraction/readability.d.ts.map +1 -1
  102. package/dist/extraction/readability.js +2 -3
  103. package/dist/extraction/readability.js.map +1 -1
  104. package/dist/extraction/schema.d.ts +12 -0
  105. package/dist/extraction/schema.d.ts.map +1 -1
  106. package/dist/extraction/schema.js +81 -11
  107. package/dist/extraction/schema.js.map +1 -1
  108. package/dist/extraction/site-extractors/docs-generic.d.ts.map +1 -1
  109. package/dist/extraction/site-extractors/docs-generic.js +2 -3
  110. package/dist/extraction/site-extractors/docs-generic.js.map +1 -1
  111. package/dist/extraction/site-extractors/github.d.ts.map +1 -1
  112. package/dist/extraction/site-extractors/github.js +4 -5
  113. package/dist/extraction/site-extractors/github.js.map +1 -1
  114. package/dist/extraction/site-extractors/mdn.d.ts.map +1 -1
  115. package/dist/extraction/site-extractors/mdn.js +2 -3
  116. package/dist/extraction/site-extractors/mdn.js.map +1 -1
  117. package/dist/extraction/site-extractors/stackoverflow.d.ts.map +1 -1
  118. package/dist/extraction/site-extractors/stackoverflow.js +3 -4
  119. package/dist/extraction/site-extractors/stackoverflow.js.map +1 -1
  120. package/dist/extraction/structured-data.d.ts +4 -0
  121. package/dist/extraction/structured-data.d.ts.map +1 -0
  122. package/dist/extraction/structured-data.js +203 -0
  123. package/dist/extraction/structured-data.js.map +1 -0
  124. package/dist/fetch/router.d.ts +2 -1
  125. package/dist/fetch/router.d.ts.map +1 -1
  126. package/dist/fetch/router.js +19 -1
  127. package/dist/fetch/router.js.map +1 -1
  128. package/dist/instructions.d.ts +7 -7
  129. package/dist/instructions.d.ts.map +1 -1
  130. package/dist/instructions.js +43 -36
  131. package/dist/instructions.js.map +1 -1
  132. package/dist/logger.d.ts +1 -1
  133. package/dist/logger.d.ts.map +1 -1
  134. package/dist/research/brief.js +1 -1
  135. package/dist/research/brief.js.map +1 -1
  136. package/dist/search/evidence.d.ts +25 -0
  137. package/dist/search/evidence.d.ts.map +1 -0
  138. package/dist/search/evidence.js +260 -0
  139. package/dist/search/evidence.js.map +1 -0
  140. package/dist/search/highlights.d.ts +11 -2
  141. package/dist/search/highlights.d.ts.map +1 -1
  142. package/dist/search/highlights.js +131 -48
  143. package/dist/search/highlights.js.map +1 -1
  144. package/dist/search/multi-query.d.ts +1 -0
  145. package/dist/search/multi-query.d.ts.map +1 -1
  146. package/dist/search/multi-query.js +13 -0
  147. package/dist/search/multi-query.js.map +1 -1
  148. package/dist/search/rerank.d.ts +3 -2
  149. package/dist/search/rerank.d.ts.map +1 -1
  150. package/dist/search/rerank.js +16 -44
  151. package/dist/search/rerank.js.map +1 -1
  152. package/dist/search/reranker/download.d.ts +9 -0
  153. package/dist/search/reranker/download.d.ts.map +1 -0
  154. package/dist/search/reranker/download.js +77 -0
  155. package/dist/search/reranker/download.js.map +1 -0
  156. package/dist/search/reranker/models.d.ts +14 -0
  157. package/dist/search/reranker/models.d.ts.map +1 -0
  158. package/dist/search/reranker/models.js +37 -0
  159. package/dist/search/reranker/models.js.map +1 -0
  160. package/dist/search/reranker/onnx.d.ts +13 -0
  161. package/dist/search/reranker/onnx.d.ts.map +1 -0
  162. package/dist/search/reranker/onnx.js +70 -0
  163. package/dist/search/reranker/onnx.js.map +1 -0
  164. package/dist/search/reranker/recency-boost.d.ts +3 -0
  165. package/dist/search/reranker/recency-boost.d.ts.map +1 -0
  166. package/dist/search/reranker/recency-boost.js +12 -0
  167. package/dist/search/reranker/recency-boost.js.map +1 -0
  168. package/dist/search/reranker/recency.d.ts +3 -0
  169. package/dist/search/reranker/recency.d.ts.map +1 -0
  170. package/dist/search/reranker/recency.js +26 -0
  171. package/dist/search/reranker/recency.js.map +1 -0
  172. package/dist/search/reranker/tokenizer.d.ts +30 -0
  173. package/dist/search/reranker/tokenizer.d.ts.map +1 -0
  174. package/dist/search/reranker/tokenizer.js +49 -0
  175. package/dist/search/reranker/tokenizer.js.map +1 -0
  176. package/dist/search/tokens.d.ts +3 -0
  177. package/dist/search/tokens.d.ts.map +1 -0
  178. package/dist/search/tokens.js +38 -0
  179. package/dist/search/tokens.js.map +1 -0
  180. package/dist/search/truncate.d.ts +4 -0
  181. package/dist/search/truncate.d.ts.map +1 -1
  182. package/dist/search/truncate.js +13 -0
  183. package/dist/search/truncate.js.map +1 -1
  184. package/dist/server/tool-schemas.d.ts +503 -0
  185. package/dist/server/tool-schemas.d.ts.map +1 -0
  186. package/dist/server/tool-schemas.js +425 -0
  187. package/dist/server/tool-schemas.js.map +1 -0
  188. package/dist/server.d.ts.map +1 -1
  189. package/dist/server.js +1 -326
  190. package/dist/server.js.map +1 -1
  191. package/dist/tools/agent.d.ts.map +1 -1
  192. package/dist/tools/agent.js +36 -0
  193. package/dist/tools/agent.js.map +1 -1
  194. package/dist/tools/crawl.d.ts.map +1 -1
  195. package/dist/tools/crawl.js +37 -2
  196. package/dist/tools/crawl.js.map +1 -1
  197. package/dist/tools/extract.d.ts.map +1 -1
  198. package/dist/tools/extract.js +19 -3
  199. package/dist/tools/extract.js.map +1 -1
  200. package/dist/tools/fetch.d.ts.map +1 -1
  201. package/dist/tools/fetch.js +44 -7
  202. package/dist/tools/fetch.js.map +1 -1
  203. package/dist/tools/find-similar.d.ts.map +1 -1
  204. package/dist/tools/find-similar.js +32 -1
  205. package/dist/tools/find-similar.js.map +1 -1
  206. package/dist/tools/research.d.ts.map +1 -1
  207. package/dist/tools/research.js +34 -1
  208. package/dist/tools/research.js.map +1 -1
  209. package/dist/tools/search.d.ts.map +1 -1
  210. package/dist/tools/search.js +97 -53
  211. package/dist/tools/search.js.map +1 -1
  212. package/dist/types.d.ts +65 -1
  213. package/dist/types.d.ts.map +1 -1
  214. package/dist/types.js +1 -1
  215. package/dist/types.js.map +1 -1
  216. package/dist/util/mode.d.ts +4 -0
  217. package/dist/util/mode.d.ts.map +1 -0
  218. package/dist/util/mode.js +13 -0
  219. package/dist/util/mode.js.map +1 -0
  220. package/package.json +9 -1
  221. package/dist/search/flashrank.d.ts +0 -12
  222. package/dist/search/flashrank.d.ts.map +0 -1
  223. package/dist/search/flashrank.js +0 -64
  224. package/dist/search/flashrank.js.map +0 -1
package/dist/server.js CHANGED
@@ -28,6 +28,7 @@ import { getEmbeddingService, resetEmbeddingService } from './embedding/embed.js
28
28
  import { getConfig } from './config.js';
29
29
  import { createLogger } from './logger.js';
30
30
  import { WIGOLO_INSTRUCTIONS, TOOL_DESCRIPTIONS } from './instructions.js';
31
+ import { FETCH_TOOL_SCHEMA, SEARCH_TOOL_SCHEMA, CRAWL_TOOL_SCHEMA, CACHE_TOOL_SCHEMA, EXTRACT_TOOL_SCHEMA, FIND_SIMILAR_TOOL_SCHEMA, RESEARCH_TOOL_SCHEMA, AGENT_TOOL_SCHEMA, } from './server/tool-schemas.js';
31
32
  import { loadPlugins } from './plugins/loader.js';
32
33
  import { PluginRegistry } from './plugins/registry.js';
33
34
  import { registerExtractor } from './extraction/pipeline.js';
@@ -45,332 +46,6 @@ function readPackageVersion() {
45
46
  }
46
47
  }
47
48
  const SERVER_VERSION = readPackageVersion();
48
- const FETCH_TOOL_SCHEMA = {
49
- type: 'object',
50
- properties: {
51
- url: { type: 'string', description: 'URL to fetch' },
52
- render_js: {
53
- type: 'string',
54
- enum: ['auto', 'always', 'never'],
55
- description: 'JavaScript rendering mode (default: auto)',
56
- },
57
- use_auth: {
58
- type: 'boolean',
59
- description: 'Use stored auth credentials (default: false)',
60
- },
61
- max_chars: {
62
- type: 'number',
63
- description: 'Maximum characters to return (hard slice)',
64
- },
65
- max_content_chars: {
66
- type: 'number',
67
- description: 'Smart truncate markdown to N chars at paragraph/heading boundary with [... content truncated] marker. Preferred over max_chars for AI agents.',
68
- },
69
- section: {
70
- type: 'string',
71
- description: 'Extract a specific section by heading text',
72
- },
73
- section_index: {
74
- type: 'number',
75
- description: 'Index of the section match (default: 0)',
76
- },
77
- screenshot: {
78
- type: 'boolean',
79
- description: 'Capture a screenshot (default: false)',
80
- },
81
- headers: {
82
- type: 'object',
83
- description: 'Additional HTTP headers',
84
- additionalProperties: { type: 'string' },
85
- },
86
- force_refresh: {
87
- type: 'boolean',
88
- description: 'Bypass cache and fetch fresh content from the network. Use for rapidly changing pages (news, changelogs, dashboards).',
89
- },
90
- actions: {
91
- type: 'array',
92
- description: 'Sequential browser actions to perform before extracting content. ' +
93
- 'When present, forces browser rendering (bypasses HTTP-first routing).',
94
- items: {
95
- type: 'object',
96
- properties: {
97
- type: {
98
- type: 'string',
99
- enum: ['click', 'type', 'wait', 'wait_for', 'scroll', 'screenshot'],
100
- description: 'Action type',
101
- },
102
- selector: {
103
- type: 'string',
104
- description: 'CSS selector (required for click, type, wait_for)',
105
- },
106
- text: {
107
- type: 'string',
108
- description: 'Text to type (required for type action)',
109
- },
110
- ms: {
111
- type: 'number',
112
- description: 'Milliseconds to wait (required for wait action)',
113
- },
114
- timeout: {
115
- type: 'number',
116
- description: 'Timeout in ms for wait_for action (default: 5000)',
117
- },
118
- direction: {
119
- type: 'string',
120
- enum: ['down', 'up'],
121
- description: 'Scroll direction (required for scroll action)',
122
- },
123
- amount: {
124
- type: 'number',
125
- description: 'Scroll amount in pixels (default: viewport height)',
126
- },
127
- },
128
- required: ['type'],
129
- },
130
- },
131
- },
132
- required: ['url'],
133
- };
134
- const SEARCH_TOOL_SCHEMA = {
135
- type: 'object',
136
- properties: {
137
- query: {
138
- oneOf: [
139
- { type: 'string', description: 'Search query' },
140
- {
141
- type: 'array',
142
- items: { type: 'string' },
143
- description: 'Array of query variants to search in parallel, deduplicate, and rerank',
144
- },
145
- ],
146
- description: 'Search query — a single string or array of query variants for parallel multi-query search',
147
- },
148
- max_results: { type: 'number', description: 'Max results to return (default 5, max 20)' },
149
- include_content: { type: 'boolean', description: 'Fetch full content for results (default true)' },
150
- content_max_chars: { type: 'number', description: 'Max chars per result content at extraction (default 30000)' },
151
- max_content_chars: { type: 'number', description: 'Smart-truncate each result markdown at paragraph boundary with marker (e.g. 3000 for compact context)' },
152
- max_total_chars: { type: 'number', description: 'Max total chars across all results (default 50000)' },
153
- time_range: { type: 'string', enum: ['day', 'week', 'month', 'year'], description: 'Time range filter' },
154
- search_engines: { type: 'array', items: { type: 'string' }, description: 'Override engine selection' },
155
- language: { type: 'string', description: 'Language preference' },
156
- include_domains: {
157
- type: 'array',
158
- items: { type: 'string' },
159
- description: 'Only return results from these domains (e.g. ["react.dev", "github.com"])',
160
- },
161
- exclude_domains: {
162
- type: 'array',
163
- items: { type: 'string' },
164
- description: 'Never return results from these domains',
165
- },
166
- from_date: {
167
- type: 'string',
168
- description: 'ISO date (YYYY-MM-DD) — only return results published after this date',
169
- },
170
- to_date: {
171
- type: 'string',
172
- description: 'ISO date (YYYY-MM-DD) — only return results published before this date',
173
- },
174
- category: {
175
- type: 'string',
176
- enum: ['general', 'news', 'code', 'docs', 'papers', 'images'],
177
- description: 'Category of search (general, news, code, docs, papers, images)',
178
- },
179
- format: {
180
- type: 'string',
181
- enum: ['full', 'context', 'answer', 'highlights', 'stream_answer'],
182
- description: "Output format: 'full' returns structured results (default); 'context' returns a single token-budgeted string for LLM injection; 'highlights' returns ML-scored passages per source with citations (no LLM needed — the host agent synthesizes); 'answer' requests LLM synthesis via MCP sampling and falls back to 'highlights' when sampling is unsupported; 'stream_answer' same as 'answer' but emits progress notifications between pipeline phases (search/fetch/synthesize) when the client supplies a progressToken",
183
- },
184
- max_highlights: {
185
- type: 'number',
186
- description: "Maximum highlights to return when format is 'highlights' (default 10). Highlights are 1-3 sentence passages scored by relevance to the query.",
187
- },
188
- force_refresh: {
189
- type: 'boolean',
190
- description: 'Bypass all caches (search results and page content). Use when you need the most current information.',
191
- },
192
- },
193
- required: ['query'],
194
- };
195
- const CRAWL_TOOL_SCHEMA = {
196
- type: 'object',
197
- properties: {
198
- url: { type: 'string', description: 'Seed URL to start crawling from' },
199
- max_depth: { type: 'number', description: 'Maximum link depth from seed (default: 2)' },
200
- max_pages: { type: 'number', description: 'Maximum pages to crawl (default: 20)' },
201
- strategy: {
202
- type: 'string',
203
- enum: ['bfs', 'dfs', 'sitemap', 'map'],
204
- description: 'Crawl strategy: bfs (breadth-first), dfs (depth-first), sitemap (use sitemap.xml), map (URL-only discovery — returns list of URLs without content, faster than full crawl)',
205
- },
206
- include_patterns: {
207
- type: 'array',
208
- items: { type: 'string' },
209
- description: 'URL regex whitelist — only crawl matching URLs',
210
- },
211
- exclude_patterns: {
212
- type: 'array',
213
- items: { type: 'string' },
214
- description: 'URL regex blacklist — skip matching URLs',
215
- },
216
- use_auth: { type: 'boolean', description: 'Use stored auth credentials (default: false)' },
217
- extract_links: { type: 'boolean', description: 'Return link graph between pages (default: false)' },
218
- max_total_chars: { type: 'number', description: 'Max total chars across all pages (default: 100000)' },
219
- },
220
- required: ['url'],
221
- };
222
- const CACHE_TOOL_SCHEMA = {
223
- type: 'object',
224
- properties: {
225
- query: { type: 'string', description: 'Full-text search over cached content' },
226
- url_pattern: {
227
- type: 'string',
228
- description: 'Filter by URL glob pattern (e.g., "*example.com*")',
229
- },
230
- since: {
231
- type: 'string',
232
- description: 'ISO date — only results cached after this date',
233
- },
234
- clear: {
235
- type: 'boolean',
236
- description: 'Clear matching cache entries (requires at least one filter: query, url_pattern, or since)',
237
- },
238
- stats: {
239
- type: 'boolean',
240
- description: 'Return cache statistics (total URLs, size, date range)',
241
- },
242
- check_changes: {
243
- type: 'boolean',
244
- description: 'Re-fetch all matching cached URLs and report which ones have changed. ' +
245
- 'Returns a list of URLs with changed/unchanged status and diff summaries. ' +
246
- 'Use with query or url_pattern to scope which cached entries to check.',
247
- },
248
- },
249
- };
250
- const EXTRACT_TOOL_SCHEMA = {
251
- type: 'object',
252
- properties: {
253
- url: { type: 'string', description: 'URL to fetch and extract from' },
254
- html: { type: 'string', description: 'Raw HTML to extract from (url takes priority if both provided)' },
255
- mode: {
256
- type: 'string',
257
- enum: ['selector', 'tables', 'metadata', 'schema', 'structured'],
258
- description: 'Extraction mode: selector (CSS), tables (HTML tables), metadata (meta tags + JSON-LD), schema (fields matching a JSON Schema), structured (tables + definition lists + JSON-LD + chart hints + key/value pairs — one-shot structured brief)',
259
- },
260
- css_selector: {
261
- type: 'string',
262
- description: 'CSS selector to match (required when mode="selector")',
263
- },
264
- multiple: {
265
- type: 'boolean',
266
- description: 'Return array of all matches instead of first (default: false, only for mode="selector")',
267
- },
268
- schema: {
269
- type: 'object',
270
- description: 'JSON Schema defining fields to extract. Field names are matched against page content via CSS classes, ARIA labels, microdata, and JSON-LD. Required when mode="schema".',
271
- },
272
- },
273
- };
274
- const FIND_SIMILAR_TOOL_SCHEMA = {
275
- type: 'object',
276
- properties: {
277
- url: {
278
- type: 'string',
279
- description: 'Find pages similar to this URL. The page is fetched (or read from cache) and its content analyzed for key terms.',
280
- },
281
- concept: {
282
- type: 'string',
283
- description: 'Find pages related to this concept or topic description. Use when you don\'t have a specific URL.',
284
- },
285
- max_results: {
286
- type: 'number',
287
- description: 'Maximum results to return (default 10, max 50)',
288
- },
289
- include_domains: {
290
- type: 'array',
291
- items: { type: 'string' },
292
- description: 'Only return results from these domains',
293
- },
294
- exclude_domains: {
295
- type: 'array',
296
- items: { type: 'string' },
297
- description: 'Never return results from these domains',
298
- },
299
- include_cache: {
300
- type: 'boolean',
301
- description: 'Search local cache for similar pages (default: true)',
302
- },
303
- include_web: {
304
- type: 'boolean',
305
- description: 'Supplement with web search if needed (default: true)',
306
- },
307
- },
308
- };
309
- const RESEARCH_TOOL_SCHEMA = {
310
- type: 'object',
311
- properties: {
312
- question: { type: 'string', description: 'The research question to investigate' },
313
- depth: {
314
- type: 'string',
315
- enum: ['quick', 'standard', 'comprehensive'],
316
- description: 'Research depth: quick (~15s), standard (~40s, default), comprehensive (~80s)',
317
- },
318
- max_sources: {
319
- type: 'number',
320
- description: 'Override the default source count for the chosen depth (max 50)',
321
- },
322
- include_domains: {
323
- type: 'array',
324
- items: { type: 'string' },
325
- description: 'Only search results from these domains',
326
- },
327
- exclude_domains: {
328
- type: 'array',
329
- items: { type: 'string' },
330
- description: 'Exclude results from these domains',
331
- },
332
- schema: {
333
- type: 'object',
334
- description: 'Optional JSON Schema -- structure the report to extract these fields',
335
- },
336
- stream: {
337
- type: 'boolean',
338
- description: 'Send progress notifications as each research phase completes',
339
- },
340
- },
341
- required: ['question'],
342
- };
343
- const AGENT_TOOL_SCHEMA = {
344
- type: 'object',
345
- properties: {
346
- prompt: {
347
- type: 'string',
348
- description: 'Natural-language description of what data to gather',
349
- },
350
- urls: {
351
- type: 'array',
352
- items: { type: 'string' },
353
- description: 'Specific URLs to include in the data gathering',
354
- },
355
- schema: {
356
- type: 'object',
357
- description: 'Optional JSON Schema -- extract structured data matching this schema from each page',
358
- },
359
- max_pages: {
360
- type: 'number',
361
- description: 'Maximum pages to fetch (default 10, max 100)',
362
- },
363
- max_time_ms: {
364
- type: 'number',
365
- description: 'Maximum execution time in milliseconds (default 60000)',
366
- },
367
- stream: {
368
- type: 'boolean',
369
- description: 'Send progress notifications as each step completes',
370
- },
371
- },
372
- required: ['prompt'],
373
- };
374
49
  export async function initSubsystems() {
375
50
  const config = getConfig();
376
51
  mkdirSync(config.dataDir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/tools/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAOnE,wBAAsB,WAAW,CAC/B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,EAAE,WAAW,EACnB,cAAc,CAAC,EAAE,OAAO,EACxB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,WAAW,CAAC,CA8DtB"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/tools/agent.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EAEX,YAAY,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAQnE,wBAAsB,WAAW,CAC/B,KAAK,EAAE,UAAU,EACjB,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,EAAE,WAAW,EACnB,cAAc,CAAC,EAAE,OAAO,EACxB,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,WAAW,CAAC,CAwEtB"}
@@ -1,8 +1,11 @@
1
1
  import { createLogger } from '../logger.js';
2
2
  import { runAgentPipeline } from '../agent/pipeline.js';
3
+ import { buildEvidenceFromMarkdown, applyTokenBudget, applyAggregateMarkdownBudget, } from '../search/evidence.js';
4
+ import { applyOutputBudget } from '../search/truncate.js';
3
5
  const log = createLogger('agent');
4
6
  const MAX_PAGES_LIMIT = 100;
5
7
  const MAX_TIME_LIMIT_MS = 600000;
8
+ const DEFAULT_MAX_TOKENS_OUT = 4000;
6
9
  export async function handleAgent(input, engines, router, _backendStatus, server) {
7
10
  const start = Date.now();
8
11
  try {
@@ -43,6 +46,15 @@ export async function handleAgent(input, engines, router, _backendStatus, server
43
46
  hasSchema: !!input.schema,
44
47
  });
45
48
  const result = await runAgentPipeline(input, engines, router, server);
49
+ // Only populate evidence on the no-schema path; schema callers want the
50
+ // structured object intact and not buried under prose excerpts.
51
+ if (!input.schema) {
52
+ await attachEvidence(result, input);
53
+ // Cap result text under the same budget. Schema results are left intact.
54
+ if (input.max_tokens_out !== undefined && typeof result.result === 'string' && result.result) {
55
+ result.result = applyOutputBudget(result.result, { maxTokensOut: input.max_tokens_out });
56
+ }
57
+ }
46
58
  return result;
47
59
  }
48
60
  catch (err) {
@@ -53,6 +65,30 @@ export async function handleAgent(input, engines, router, _backendStatus, server
53
65
  return errorResult(err instanceof Error ? err.message : String(err), start);
54
66
  }
55
67
  }
68
+ async function attachEvidence(out, input) {
69
+ if (out.sources.length === 0)
70
+ return;
71
+ const includeFull = input.include_full_markdown ?? false;
72
+ const maxTokensOut = input.max_tokens_out ?? DEFAULT_MAX_TOKENS_OUT;
73
+ const collected = [];
74
+ for (const s of out.sources) {
75
+ if (!s.markdown_content)
76
+ continue;
77
+ const evs = await buildEvidenceFromMarkdown(input.prompt, s.title, s.url, s.markdown_content, { maxItems: 1 });
78
+ collected.push(...evs);
79
+ }
80
+ const budgeted = applyTokenBudget(collected, maxTokensOut);
81
+ if (budgeted.length > 0)
82
+ out.evidence = budgeted;
83
+ if (!includeFull) {
84
+ for (const s of out.sources) {
85
+ s.markdown_content = '';
86
+ }
87
+ }
88
+ else {
89
+ applyAggregateMarkdownBudget(out.sources, (s) => s.markdown_content ?? '', (s, body) => { s.markdown_content = body; }, { maxTokensOut });
90
+ }
91
+ }
56
92
  function errorResult(error, start) {
57
93
  return {
58
94
  result: '',
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/tools/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/tools/agent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"crawl.d.ts","sourceRoot":"","sources":["../../src/tools/crawl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAWtD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,GAAG,CAAC,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAgE1D"}
1
+ {"version":3,"file":"crawl.d.ts","sourceRoot":"","sources":["../../src/tools/crawl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAiBtD,wBAAsB,WAAW,CAC/B,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,WAAW,GAAG,CAAC,SAAS,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CAqE1D"}
@@ -2,16 +2,21 @@ import { Crawler } from '../crawl/crawler.js';
2
2
  import { deduplicatePages } from '../crawl/dedup.js';
3
3
  import { mapUrls } from '../crawl/mapper.js';
4
4
  import { handleFetch } from './fetch.js';
5
+ import { buildEvidenceFromMarkdown, applyAggregateMarkdownBudget, } from '../search/evidence.js';
6
+ import { countTokens } from '../search/tokens.js';
5
7
  import { createLogger } from '../logger.js';
6
8
  const log = createLogger('crawl');
7
9
  const DEFAULT_MAX_TOTAL_CHARS = 100000;
10
+ const DEFAULT_MAX_TOKENS_OUT = 4000;
8
11
  export async function handleCrawl(input, router) {
9
12
  try {
10
13
  // Map strategy: lightweight URL-only discovery, skip full crawl pipeline
11
14
  if (input.strategy === 'map') {
12
15
  return handleMapStrategy(input, router);
13
16
  }
14
- const fetchFn = async (url) => handleFetch({ url, use_auth: input.use_auth }, router);
17
+ // Crawler needs full markdown internally for dedup; opt in explicitly so
18
+ // handleFetch's default strip does not steal page bodies mid-crawl.
19
+ const fetchFn = async (url) => handleFetch({ url, use_auth: input.use_auth, include_full_markdown: true }, router);
15
20
  const rawFetchFn = async (url) => router.fetch(url, { renderJs: 'never' });
16
21
  const crawler = new Crawler(fetchFn, rawFetchFn);
17
22
  const result = await crawler.crawl(input);
@@ -40,12 +45,14 @@ export async function handleCrawl(input, router) {
40
45
  returned: budgetedPages.length,
41
46
  totalChars: charCount,
42
47
  });
43
- return {
48
+ const out = {
44
49
  pages: budgetedPages,
45
50
  total_found: result.total_found,
46
51
  crawled: result.crawled,
47
52
  ...(result.links ? { links: result.links } : {}),
48
53
  };
54
+ await attachEvidence(out, input);
55
+ return out;
49
56
  }
50
57
  catch (err) {
51
58
  log.error('Crawl failed', { url: input.url, error: String(err) });
@@ -57,6 +64,34 @@ export async function handleCrawl(input, router) {
57
64
  };
58
65
  }
59
66
  }
67
+ async function attachEvidence(out, input) {
68
+ if (out.pages.length === 0)
69
+ return;
70
+ const includeFull = input.include_full_markdown ?? false;
71
+ const maxTokensOut = input.max_tokens_out ?? DEFAULT_MAX_TOKENS_OUT;
72
+ let used = 0;
73
+ for (const page of out.pages) {
74
+ if (!page.markdown)
75
+ continue;
76
+ const remaining = maxTokensOut - used;
77
+ if (remaining <= 0)
78
+ break;
79
+ const evs = await buildEvidenceFromMarkdown(page.title || page.url, page.title, page.url, page.markdown, { maxItems: 1, maxTokensOut: remaining });
80
+ if (evs.length > 0) {
81
+ page.evidence = evs;
82
+ for (const ev of evs)
83
+ used += countTokens(ev.excerpt);
84
+ }
85
+ }
86
+ if (!includeFull) {
87
+ for (const page of out.pages) {
88
+ page.markdown = '';
89
+ }
90
+ }
91
+ else {
92
+ applyAggregateMarkdownBudget(out.pages, (p) => p.markdown ?? '', (p, body) => { p.markdown = body; }, { maxTokensOut });
93
+ }
94
+ }
60
95
  async function handleMapStrategy(input, router) {
61
96
  const httpFetchFn = async (url) => {
62
97
  const raw = await router.fetch(url, { renderJs: 'never' });
@@ -1 +1 @@
1
- {"version":3,"file":"crawl.js","sourceRoot":"","sources":["../../src/tools/crawl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"crawl.js","sourceRoot":"","sources":["../../src/tools/crawl.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/tools/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA+BtD,wBAAsB,aAAa,CACjC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,aAAa,CAAC,CAqExB"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../src/tools/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkCtD,wBAAsB,aAAa,CACjC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,aAAa,CAAC,CAoFxB"}
@@ -1,5 +1,5 @@
1
1
  import { extractMetadata, extractSelector, extractTables } from '../extraction/extract.js';
2
- import { extractWithSchema } from '../extraction/schema.js';
2
+ import { extractWithSchema, extractWithSchemaDetailedAsync, } from '../extraction/schema.js';
3
3
  import { extractJsonLd } from '../extraction/jsonld.js';
4
4
  import { extractStructured } from '../extraction/structured.js';
5
5
  import { getCachedContent, isExpired } from '../cache/store.js';
@@ -44,9 +44,25 @@ export async function handleExtract(input, router) {
44
44
  case 'structured':
45
45
  data = extractStructured(html);
46
46
  break;
47
- case 'schema':
48
- data = extractWithSchema(html, input.schema);
47
+ case 'schema': {
48
+ const schema = input.schema;
49
+ if (Array.isArray(schema.required) && schema.required.length > 0) {
50
+ const detailed = await extractWithSchemaDetailedAsync(html, schema);
51
+ data = detailed.values;
52
+ if (detailed.warnings.length > 0) {
53
+ return {
54
+ data,
55
+ source_url: sourceUrl,
56
+ mode,
57
+ warnings: detailed.warnings,
58
+ };
59
+ }
60
+ }
61
+ else {
62
+ data = extractWithSchema(html, schema);
63
+ }
49
64
  break;
65
+ }
50
66
  case 'metadata':
51
67
  default: {
52
68
  const meta = extractMetadata(html);