@staticn0va/wigolo 0.4.0 → 0.6.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 (138) hide show
  1. package/SKILL.md +279 -68
  2. package/dist/agent/executor.d.ts +13 -0
  3. package/dist/agent/executor.d.ts.map +1 -0
  4. package/dist/agent/executor.js +128 -0
  5. package/dist/agent/executor.js.map +1 -0
  6. package/dist/agent/pipeline.d.ts +5 -0
  7. package/dist/agent/pipeline.d.ts.map +1 -0
  8. package/dist/agent/pipeline.js +198 -0
  9. package/dist/agent/pipeline.js.map +1 -0
  10. package/dist/agent/planner.d.ts +9 -0
  11. package/dist/agent/planner.d.ts.map +1 -0
  12. package/dist/agent/planner.js +190 -0
  13. package/dist/agent/planner.js.map +1 -0
  14. package/dist/cache/db.d.ts.map +1 -1
  15. package/dist/cache/db.js +32 -0
  16. package/dist/cache/db.js.map +1 -1
  17. package/dist/cache/store.d.ts +14 -0
  18. package/dist/cache/store.d.ts.map +1 -1
  19. package/dist/cache/store.js +69 -0
  20. package/dist/cache/store.js.map +1 -1
  21. package/dist/cli/warmup.d.ts +4 -0
  22. package/dist/cli/warmup.d.ts.map +1 -1
  23. package/dist/cli/warmup.js +58 -0
  24. package/dist/cli/warmup.js.map +1 -1
  25. package/dist/config.d.ts +8 -0
  26. package/dist/config.d.ts.map +1 -1
  27. package/dist/config.js +8 -0
  28. package/dist/config.js.map +1 -1
  29. package/dist/embedding/embed.d.ts +19 -0
  30. package/dist/embedding/embed.d.ts.map +1 -0
  31. package/dist/embedding/embed.js +131 -0
  32. package/dist/embedding/embed.js.map +1 -0
  33. package/dist/embedding/key-terms.d.ts +12 -0
  34. package/dist/embedding/key-terms.d.ts.map +1 -0
  35. package/dist/embedding/key-terms.js +138 -0
  36. package/dist/embedding/key-terms.js.map +1 -0
  37. package/dist/embedding/subprocess.d.ts +31 -0
  38. package/dist/embedding/subprocess.d.ts.map +1 -0
  39. package/dist/embedding/subprocess.js +213 -0
  40. package/dist/embedding/subprocess.js.map +1 -0
  41. package/dist/embedding/vector-index.d.ts +26 -0
  42. package/dist/embedding/vector-index.d.ts.map +1 -0
  43. package/dist/embedding/vector-index.js +78 -0
  44. package/dist/embedding/vector-index.js.map +1 -0
  45. package/dist/fetch/browser-pool.d.ts.map +1 -1
  46. package/dist/fetch/browser-pool.js +61 -0
  47. package/dist/fetch/browser-pool.js.map +1 -1
  48. package/dist/fetch/browser-types.js +1 -1
  49. package/dist/fetch/browser-types.js.map +1 -1
  50. package/dist/fetch/lightpanda.d.ts +28 -0
  51. package/dist/fetch/lightpanda.d.ts.map +1 -0
  52. package/dist/fetch/lightpanda.js +177 -0
  53. package/dist/fetch/lightpanda.js.map +1 -0
  54. package/dist/fetch/router.d.ts +1 -0
  55. package/dist/fetch/router.d.ts.map +1 -1
  56. package/dist/fetch/router.js.map +1 -1
  57. package/dist/instructions.d.ts +9 -6
  58. package/dist/instructions.d.ts.map +1 -1
  59. package/dist/instructions.js +111 -21
  60. package/dist/instructions.js.map +1 -1
  61. package/dist/logger.d.ts +1 -1
  62. package/dist/logger.d.ts.map +1 -1
  63. package/dist/repl/commands/agent.d.ts +5 -0
  64. package/dist/repl/commands/agent.d.ts.map +1 -0
  65. package/dist/repl/commands/agent.js +48 -0
  66. package/dist/repl/commands/agent.js.map +1 -0
  67. package/dist/repl/commands/find-similar.d.ts +5 -0
  68. package/dist/repl/commands/find-similar.d.ts.map +1 -0
  69. package/dist/repl/commands/find-similar.js +61 -0
  70. package/dist/repl/commands/find-similar.js.map +1 -0
  71. package/dist/repl/commands/research.d.ts +5 -0
  72. package/dist/repl/commands/research.d.ts.map +1 -0
  73. package/dist/repl/commands/research.js +50 -0
  74. package/dist/repl/commands/research.js.map +1 -0
  75. package/dist/repl/formatters.d.ts +4 -1
  76. package/dist/repl/formatters.d.ts.map +1 -1
  77. package/dist/repl/formatters.js +73 -0
  78. package/dist/repl/formatters.js.map +1 -1
  79. package/dist/repl/shell.d.ts.map +1 -1
  80. package/dist/repl/shell.js +22 -1
  81. package/dist/repl/shell.js.map +1 -1
  82. package/dist/research/decompose.d.ts +7 -0
  83. package/dist/research/decompose.d.ts.map +1 -0
  84. package/dist/research/decompose.js +195 -0
  85. package/dist/research/decompose.js.map +1 -0
  86. package/dist/research/pipeline.d.ts +5 -0
  87. package/dist/research/pipeline.d.ts.map +1 -0
  88. package/dist/research/pipeline.js +135 -0
  89. package/dist/research/pipeline.js.map +1 -0
  90. package/dist/research/synthesize.d.ts +10 -0
  91. package/dist/research/synthesize.d.ts.map +1 -0
  92. package/dist/research/synthesize.js +119 -0
  93. package/dist/research/synthesize.js.map +1 -0
  94. package/dist/search/answer-synthesis.d.ts +13 -0
  95. package/dist/search/answer-synthesis.d.ts.map +1 -0
  96. package/dist/search/answer-synthesis.js +120 -0
  97. package/dist/search/answer-synthesis.js.map +1 -0
  98. package/dist/search/find-similar.d.ts +5 -0
  99. package/dist/search/find-similar.d.ts.map +1 -0
  100. package/dist/search/find-similar.js +436 -0
  101. package/dist/search/find-similar.js.map +1 -0
  102. package/dist/search/multi-query.d.ts +22 -0
  103. package/dist/search/multi-query.d.ts.map +1 -0
  104. package/dist/search/multi-query.js +157 -0
  105. package/dist/search/multi-query.js.map +1 -0
  106. package/dist/search/rrf.d.ts +17 -0
  107. package/dist/search/rrf.d.ts.map +1 -0
  108. package/dist/search/rrf.js +48 -0
  109. package/dist/search/rrf.js.map +1 -0
  110. package/dist/search/sampling.d.ts +25 -0
  111. package/dist/search/sampling.d.ts.map +1 -0
  112. package/dist/search/sampling.js +52 -0
  113. package/dist/search/sampling.js.map +1 -0
  114. package/dist/server.d.ts.map +1 -1
  115. package/dist/server.js +210 -5
  116. package/dist/server.js.map +1 -1
  117. package/dist/tools/agent.d.ts +5 -0
  118. package/dist/tools/agent.d.ts.map +1 -0
  119. package/dist/tools/agent.js +67 -0
  120. package/dist/tools/agent.js.map +1 -0
  121. package/dist/tools/fetch.d.ts.map +1 -1
  122. package/dist/tools/fetch.js +16 -4
  123. package/dist/tools/fetch.js.map +1 -1
  124. package/dist/tools/find-similar.d.ts +5 -0
  125. package/dist/tools/find-similar.d.ts.map +1 -0
  126. package/dist/tools/find-similar.js +48 -0
  127. package/dist/tools/find-similar.js.map +1 -0
  128. package/dist/tools/research.d.ts +5 -0
  129. package/dist/tools/research.d.ts.map +1 -0
  130. package/dist/tools/research.js +50 -0
  131. package/dist/tools/research.js.map +1 -0
  132. package/dist/tools/search.d.ts +3 -2
  133. package/dist/tools/search.d.ts.map +1 -1
  134. package/dist/tools/search.js +217 -14
  135. package/dist/tools/search.js.map +1 -1
  136. package/dist/types.d.ts +108 -3
  137. package/dist/types.d.ts.map +1 -1
  138. package/package.json +10 -3
@@ -0,0 +1,198 @@
1
+ import { createLogger } from '../logger.js';
2
+ import { planExecution } from './planner.js';
3
+ import { executeAgentPlan } from './executor.js';
4
+ import { extractWithSchema } from '../extraction/schema.js';
5
+ import { requestSampling, checkSamplingSupport, } from '../search/sampling.js';
6
+ const log = createLogger('agent');
7
+ const DEFAULT_MAX_PAGES = 10;
8
+ const DEFAULT_MAX_TIME_MS = 60000;
9
+ export async function runAgentPipeline(input, engines, router, server) {
10
+ const start = Date.now();
11
+ const maxPages = input.max_pages ?? DEFAULT_MAX_PAGES;
12
+ const maxTimeMs = input.max_time_ms ?? DEFAULT_MAX_TIME_MS;
13
+ const deadlineMs = start + maxTimeMs;
14
+ const steps = [];
15
+ try {
16
+ const planStart = Date.now();
17
+ log.info('agent pipeline started', { prompt: input.prompt.slice(0, 100), maxPages, maxTimeMs });
18
+ const plan = await planExecution(input.prompt, input.urls, server);
19
+ steps.push({
20
+ action: 'plan',
21
+ detail: `Generated ${plan.searches.length} searches, ${plan.urls.length} URLs${plan.samplingUsed ? ' (via sampling)' : ' (keyword extraction)'}`,
22
+ time_ms: Date.now() - planStart,
23
+ });
24
+ log.info('plan generated', {
25
+ searches: plan.searches.length,
26
+ urls: plan.urls.length,
27
+ samplingUsed: plan.samplingUsed,
28
+ });
29
+ const execResult = await executeAgentPlan(plan, engines, router, {
30
+ maxPages,
31
+ deadlineMs,
32
+ });
33
+ steps.push(...execResult.steps);
34
+ const sources = execResult.sources;
35
+ const pagesFetched = sources.filter((s) => s.fetched).length;
36
+ if (input.schema && sources.some((s) => s.fetched)) {
37
+ const extractStart = Date.now();
38
+ const schemaResult = applySchemaExtraction(sources, input.schema);
39
+ steps.push({
40
+ action: 'extract',
41
+ detail: `Applied schema extraction to ${sources.filter((s) => s.fetched).length} sources`,
42
+ time_ms: Date.now() - extractStart,
43
+ });
44
+ if (schemaResult) {
45
+ return {
46
+ result: schemaResult,
47
+ sources,
48
+ pages_fetched: pagesFetched,
49
+ steps,
50
+ total_time_ms: Date.now() - start,
51
+ sampling_supported: !!server,
52
+ };
53
+ }
54
+ }
55
+ const synthStart = Date.now();
56
+ const result = await synthesizeResult(input.prompt, sources, server);
57
+ steps.push({
58
+ action: 'synthesize',
59
+ detail: `Produced ${typeof result === 'string' ? result.length : JSON.stringify(result).length} char result${server ? ' (via sampling)' : ''}`,
60
+ time_ms: Date.now() - synthStart,
61
+ });
62
+ return {
63
+ result,
64
+ sources,
65
+ pages_fetched: pagesFetched,
66
+ steps,
67
+ total_time_ms: Date.now() - start,
68
+ sampling_supported: !!server,
69
+ };
70
+ }
71
+ catch (err) {
72
+ log.error('agent pipeline failed', {
73
+ prompt: input.prompt.slice(0, 100),
74
+ error: err instanceof Error ? err.message : String(err),
75
+ });
76
+ return {
77
+ result: '',
78
+ sources: [],
79
+ pages_fetched: 0,
80
+ steps,
81
+ total_time_ms: Date.now() - start,
82
+ sampling_supported: !!server,
83
+ error: err instanceof Error ? err.message : String(err),
84
+ };
85
+ }
86
+ }
87
+ function applySchemaExtraction(sources, schema) {
88
+ try {
89
+ const fetchedSources = sources.filter((s) => s.fetched && s.markdown_content.length > 0);
90
+ if (fetchedSources.length === 0)
91
+ return null;
92
+ const mergedData = {};
93
+ for (const source of fetchedSources) {
94
+ try {
95
+ const html = `<html><body>${source.markdown_content}</body></html>`;
96
+ const extracted = extractWithSchema(html, schema);
97
+ for (const [key, value] of Object.entries(extracted)) {
98
+ if (value !== undefined && value !== null && value !== '') {
99
+ if (!(key in mergedData)) {
100
+ mergedData[key] = value;
101
+ }
102
+ }
103
+ }
104
+ }
105
+ catch (err) {
106
+ log.debug('schema extraction failed for source', {
107
+ url: source.url,
108
+ error: err instanceof Error ? err.message : String(err),
109
+ });
110
+ }
111
+ }
112
+ return Object.keys(mergedData).length > 0 ? mergedData : null;
113
+ }
114
+ catch (err) {
115
+ log.warn('schema extraction phase failed', {
116
+ error: err instanceof Error ? err.message : String(err),
117
+ });
118
+ return null;
119
+ }
120
+ }
121
+ async function synthesizeResult(prompt, sources, server) {
122
+ const fetchedSources = sources.filter((s) => s.fetched && s.markdown_content.length > 0);
123
+ if (fetchedSources.length === 0) {
124
+ return 'No data could be gathered for this request.';
125
+ }
126
+ if (server) {
127
+ try {
128
+ const result = await synthesizeWithSampling(prompt, fetchedSources, server);
129
+ if (result)
130
+ return result;
131
+ }
132
+ catch (err) {
133
+ log.warn('sampling synthesis failed, using fallback', {
134
+ error: err instanceof Error ? err.message : String(err),
135
+ });
136
+ }
137
+ }
138
+ return buildFallbackSynthesis(prompt, fetchedSources);
139
+ }
140
+ async function synthesizeWithSampling(prompt, sources, server) {
141
+ try {
142
+ const maxCharsPerSource = 3000;
143
+ const sourceBlocks = sources.map((s, i) => {
144
+ const content = s.markdown_content.slice(0, maxCharsPerSource);
145
+ return `[${i + 1}] ${s.title} (${s.url})\n${content}`;
146
+ });
147
+ const totalSourceText = sourceBlocks.join('\n\n');
148
+ const truncatedSourceText = totalSourceText.slice(0, 40000);
149
+ const samplingPrompt = `You are a data gathering assistant. Based on the user's request and the gathered sources, synthesize a comprehensive result.
150
+
151
+ User's request: ${prompt}
152
+
153
+ Gathered sources:
154
+ ${truncatedSourceText}
155
+
156
+ Provide a clear, well-organized response that addresses the user's request based on the gathered data. Include source references [1], [2], etc.`;
157
+ if (!checkSamplingSupport(server)) {
158
+ log.debug('client does not support sampling for synthesis');
159
+ return null;
160
+ }
161
+ const response = await requestSampling(server, [{ role: 'user', content: { type: 'text', text: samplingPrompt } }], 2000);
162
+ if (response?.content?.text && response.content.text.trim().length > 0) {
163
+ return response.content.text.trim();
164
+ }
165
+ return null;
166
+ }
167
+ catch (err) {
168
+ log.debug('sampling synthesis failed', {
169
+ error: err instanceof Error ? err.message : String(err),
170
+ });
171
+ return null;
172
+ }
173
+ }
174
+ function buildFallbackSynthesis(prompt, sources) {
175
+ const header = `## Results: ${prompt}\n\nGathered from ${sources.length} source(s):\n\n`;
176
+ let result = header;
177
+ const maxTotal = 6000;
178
+ let remaining = maxTotal - header.length;
179
+ for (let i = 0; i < sources.length && remaining > 0; i++) {
180
+ const source = sources[i];
181
+ const sourceHeader = `### [${i + 1}] ${source.title}\n**URL:** ${source.url}\n\n`;
182
+ if (remaining < sourceHeader.length + 20)
183
+ break;
184
+ result += sourceHeader;
185
+ remaining -= sourceHeader.length;
186
+ const contentBudget = Math.min(remaining - 10, source.markdown_content.length, 1500);
187
+ if (contentBudget > 0) {
188
+ let content = source.markdown_content.slice(0, contentBudget);
189
+ if (content.length < source.markdown_content.length) {
190
+ content = content.slice(0, Math.max(contentBudget - 3, 0)) + '...';
191
+ }
192
+ result += content + '\n\n';
193
+ remaining -= content.length + 2;
194
+ }
195
+ }
196
+ return result.trimEnd();
197
+ }
198
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/agent/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { type SamplingCapableServer } from '../search/sampling.js';
2
+ export interface AgentPlan {
3
+ searches: string[];
4
+ urls: string[];
5
+ notes: string;
6
+ samplingUsed: boolean;
7
+ }
8
+ export declare function planExecution(prompt: string, urls?: string[], server?: SamplingCapableServer): Promise<AgentPlan>;
9
+ //# sourceMappingURL=planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.d.ts","sourceRoot":"","sources":["../../src/agent/planner.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,uBAAuB,CAAC;AAO/B,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,EAAE,EACf,MAAM,CAAC,EAAE,qBAAqB,GAC7B,OAAO,CAAC,SAAS,CAAC,CAwCpB"}
@@ -0,0 +1,190 @@
1
+ import { createLogger } from '../logger.js';
2
+ import { requestSampling, checkSamplingSupport, } from '../search/sampling.js';
3
+ const log = createLogger('agent');
4
+ const MAX_SEARCH_QUERIES = 5;
5
+ const MAX_QUERY_LENGTH = 250;
6
+ export async function planExecution(prompt, urls, server) {
7
+ const trimmedPrompt = prompt.trim();
8
+ if (!trimmedPrompt) {
9
+ return {
10
+ searches: [],
11
+ urls: urls ?? [],
12
+ notes: 'Empty prompt provided',
13
+ samplingUsed: false,
14
+ };
15
+ }
16
+ if (server) {
17
+ try {
18
+ const samplingResult = await planWithSampling(trimmedPrompt, server);
19
+ if (samplingResult) {
20
+ const mergedUrls = mergeUrls(samplingResult.urls, urls ?? []);
21
+ return {
22
+ searches: samplingResult.searches,
23
+ urls: mergedUrls,
24
+ notes: samplingResult.notes,
25
+ samplingUsed: true,
26
+ };
27
+ }
28
+ }
29
+ catch (err) {
30
+ log.warn('sampling planning failed, using fallback', {
31
+ error: err instanceof Error ? err.message : String(err),
32
+ });
33
+ }
34
+ }
35
+ const fallback = planWithFallback(trimmedPrompt);
36
+ const mergedUrls = mergeUrls(fallback.urls, urls ?? []);
37
+ return {
38
+ searches: fallback.searches,
39
+ urls: mergedUrls,
40
+ notes: fallback.notes,
41
+ samplingUsed: false,
42
+ };
43
+ }
44
+ async function planWithSampling(prompt, server) {
45
+ try {
46
+ if (!checkSamplingSupport(server)) {
47
+ log.debug('client does not support sampling for planning');
48
+ return null;
49
+ }
50
+ const samplingPrompt = `You are a data gathering assistant. Given the user's prompt, create an execution plan.
51
+
52
+ Return a JSON object with:
53
+ - "searches": array of 1-5 search engine queries to find the needed data
54
+ - "urls": array of specific URLs to visit (if any are obvious from the prompt)
55
+ - "notes": brief string with any relevant observations
56
+
57
+ Prompt: ${prompt}
58
+
59
+ Respond with ONLY valid JSON: {"searches": [...], "urls": [...], "notes": "..."}`;
60
+ const response = await requestSampling(server, [{ role: 'user', content: { type: 'text', text: samplingPrompt } }], 500);
61
+ if (!response?.content?.text) {
62
+ log.debug('sampling returned empty response for planning');
63
+ return null;
64
+ }
65
+ const text = response.content.text.trim();
66
+ let parsed;
67
+ try {
68
+ parsed = JSON.parse(text);
69
+ }
70
+ catch {
71
+ const jsonMatch = text.match(/\{[\s\S]*\}/);
72
+ if (jsonMatch) {
73
+ try {
74
+ parsed = JSON.parse(jsonMatch[0]);
75
+ }
76
+ catch {
77
+ log.debug('could not extract JSON from sampling plan response');
78
+ return null;
79
+ }
80
+ }
81
+ else {
82
+ return null;
83
+ }
84
+ }
85
+ if (typeof parsed !== 'object' || parsed === null)
86
+ return null;
87
+ const obj = parsed;
88
+ const searches = Array.isArray(obj.searches)
89
+ ? obj.searches.filter((s) => typeof s === 'string' && s.trim().length > 0).map((s) => s.trim())
90
+ : [];
91
+ const extractedUrls = Array.isArray(obj.urls)
92
+ ? obj.urls.filter((u) => typeof u === 'string' && isValidUrl(u))
93
+ : [];
94
+ const notes = typeof obj.notes === 'string' ? obj.notes : '';
95
+ if (searches.length === 0 && extractedUrls.length === 0) {
96
+ log.debug('sampling plan had no searches or URLs');
97
+ return null;
98
+ }
99
+ return { searches: searches.slice(0, MAX_SEARCH_QUERIES), urls: extractedUrls, notes };
100
+ }
101
+ catch (err) {
102
+ log.debug('sampling planning request failed', {
103
+ error: err instanceof Error ? err.message : String(err),
104
+ });
105
+ return null;
106
+ }
107
+ }
108
+ function planWithFallback(prompt) {
109
+ const extractedUrls = extractUrlsFromText(prompt);
110
+ const searches = generateSearchQueries(prompt);
111
+ return {
112
+ searches,
113
+ urls: extractedUrls,
114
+ notes: 'Fallback plan from keyword extraction',
115
+ };
116
+ }
117
+ function extractUrlsFromText(text) {
118
+ const urlRegex = /https?:\/\/[^\s,;"')\]]+/gi;
119
+ const matches = text.match(urlRegex) ?? [];
120
+ const cleaned = matches.map((url) => url.replace(/[.,;:!?)]+$/, ''));
121
+ return [...new Set(cleaned)].filter(isValidUrl);
122
+ }
123
+ function isValidUrl(url) {
124
+ try {
125
+ new URL(url);
126
+ return true;
127
+ }
128
+ catch {
129
+ return false;
130
+ }
131
+ }
132
+ function generateSearchQueries(prompt) {
133
+ const stopWords = new Set([
134
+ 'the', 'a', 'an', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
135
+ 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
136
+ 'should', 'may', 'might', 'can', 'shall', 'to', 'of', 'in', 'for',
137
+ 'on', 'with', 'at', 'by', 'from', 'as', 'into', 'through', 'and',
138
+ 'but', 'or', 'not', 'so', 'yet', 'find', 'get', 'search', 'look',
139
+ 'show', 'me', 'i', 'we', 'you', 'they', 'it', 'this', 'that',
140
+ 'my', 'your', 'our', 'their', 'all', 'each', 'every', 'some',
141
+ 'any', 'also', 'about', 'up', 'out', 'if', 'then', 'than',
142
+ 'too', 'very', 'just', 'please', 'need', 'want',
143
+ ]);
144
+ const urlFree = prompt.replace(/https?:\/\/[^\s]+/g, '').trim();
145
+ if (!urlFree)
146
+ return [];
147
+ const words = urlFree
148
+ .replace(/[?!.,;:'"()\[\]{}]/g, ' ')
149
+ .split(/\s+/)
150
+ .filter(Boolean);
151
+ const contentWords = words.filter((w) => !stopWords.has(w.toLowerCase()) && w.length > 1);
152
+ if (contentWords.length === 0)
153
+ return [];
154
+ const queries = [];
155
+ const fullQuery = contentWords.join(' ');
156
+ if (fullQuery.length <= MAX_QUERY_LENGTH) {
157
+ queries.push(fullQuery);
158
+ }
159
+ else {
160
+ queries.push(fullQuery.slice(0, MAX_QUERY_LENGTH));
161
+ }
162
+ if (contentWords.length >= 4) {
163
+ const half = Math.ceil(contentWords.length / 2);
164
+ queries.push(contentWords.slice(0, half).join(' '));
165
+ }
166
+ if (contentWords.length >= 4) {
167
+ const half = Math.ceil(contentWords.length / 2);
168
+ queries.push(contentWords.slice(half).join(' '));
169
+ }
170
+ if (contentWords.length >= 3) {
171
+ const bigrams = [];
172
+ for (let i = 0; i < contentWords.length - 1 && bigrams.length < 3; i++) {
173
+ bigrams.push(`${contentWords[i]} ${contentWords[i + 1]}`);
174
+ }
175
+ if (bigrams.length > 0) {
176
+ queries.push(bigrams.join(' '));
177
+ }
178
+ }
179
+ const keyTerms = contentWords.filter((w) => w.length > 4 || w[0] === w[0].toUpperCase());
180
+ if (keyTerms.length >= 2) {
181
+ queries.push(keyTerms.slice(0, 5).join(' '));
182
+ }
183
+ const unique = [...new Set(queries)].map((q) => q.length > MAX_QUERY_LENGTH ? q.slice(0, MAX_QUERY_LENGTH) : q);
184
+ return unique.slice(0, MAX_SEARCH_QUERIES);
185
+ }
186
+ function mergeUrls(samplingUrls, explicitUrls) {
187
+ const all = [...samplingUrls, ...explicitUrls];
188
+ return [...new Set(all)];
189
+ }
190
+ //# sourceMappingURL=planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../../src/agent/planner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/cache/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAqF9D;AAED,wBAAgB,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAK/C;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/cache/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAsH9D;AAED,wBAAgB,WAAW,IAAI,QAAQ,CAAC,QAAQ,CAK/C;AAED,wBAAgB,aAAa,IAAI,IAAI,CAKpC"}
package/dist/cache/db.js CHANGED
@@ -54,6 +54,11 @@ export function initDatabase(dbPath) {
54
54
  VALUES ('delete', old.id, old.title, old.markdown, old.url);
55
55
  END;
56
56
 
57
+ CREATE TRIGGER IF NOT EXISTS url_cache_au_after AFTER UPDATE ON url_cache BEGIN
58
+ INSERT INTO url_cache_fts(rowid, title, markdown, url)
59
+ VALUES (new.id, new.title, new.markdown, new.url);
60
+ END;
61
+
57
62
  CREATE TABLE IF NOT EXISTS search_cache (
58
63
  id INTEGER PRIMARY KEY AUTOINCREMENT,
59
64
  query TEXT NOT NULL,
@@ -71,6 +76,16 @@ export function initDatabase(dbPath) {
71
76
  last_updated TEXT
72
77
  );
73
78
 
79
+ CREATE TABLE IF NOT EXISTS lightpanda_routing (
80
+ domain TEXT PRIMARY KEY,
81
+ success_count INTEGER DEFAULT 0,
82
+ failure_count INTEGER DEFAULT 0,
83
+ prefer_chromium INTEGER DEFAULT 0,
84
+ last_success TEXT,
85
+ last_failure TEXT,
86
+ last_updated TEXT NOT NULL DEFAULT (datetime('now'))
87
+ );
88
+
74
89
  CREATE TABLE IF NOT EXISTS domain_boilerplate (
75
90
  domain TEXT NOT NULL,
76
91
  block_hash TEXT NOT NULL,
@@ -79,6 +94,23 @@ export function initDatabase(dbPath) {
79
94
  PRIMARY KEY (domain, block_hash)
80
95
  );
81
96
  `);
97
+ // Embedding columns migration (Slice 22)
98
+ try {
99
+ const columns = db.pragma('table_info(url_cache)');
100
+ const columnNames = new Set(columns.map(c => c.name));
101
+ if (!columnNames.has('embedding')) {
102
+ db.exec('ALTER TABLE url_cache ADD COLUMN embedding BLOB');
103
+ }
104
+ if (!columnNames.has('embedding_model')) {
105
+ db.exec('ALTER TABLE url_cache ADD COLUMN embedding_model TEXT');
106
+ }
107
+ if (!columnNames.has('embedding_dims')) {
108
+ db.exec('ALTER TABLE url_cache ADD COLUMN embedding_dims INTEGER');
109
+ }
110
+ }
111
+ catch {
112
+ // Migration already applied or column already exists
113
+ }
82
114
  instance = db;
83
115
  return db;
84
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/cache/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,IAAI,QAAQ,GAA6B,IAAI,CAAC;AAE9C,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAClC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEP,CAAC,CAAC;IAEH,QAAQ,GAAG,EAAE,CAAC;IACd,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/cache/db.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,IAAI,QAAQ,GAA6B,IAAI,CAAC;AAE9C,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAClC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFP,CAAC,CAAC;IAEH,yCAAyC;IACzC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAA4B,CAAC;QAC9E,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,EAAE,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxC,EAAE,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;IACvD,CAAC;IAED,QAAQ,GAAG,EAAE,CAAC;IACd,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -25,4 +25,18 @@ export declare function clearCacheEntries(options: {
25
25
  since?: string;
26
26
  }): number;
27
27
  export declare function getCacheStats(): CacheStats;
28
+ export declare function updateCacheEmbedding(url: string, embedding: Buffer, model: string, dims: number): boolean;
29
+ export interface EmbeddingData {
30
+ embedding: Buffer;
31
+ model: string;
32
+ dims: number;
33
+ }
34
+ export declare function getEmbeddingForUrl(url: string): EmbeddingData | null;
35
+ export interface StoredEmbedding {
36
+ normalizedUrl: string;
37
+ embedding: Buffer;
38
+ model: string;
39
+ dims: number;
40
+ }
41
+ export declare function getAllEmbeddings(): StoredEmbedding[];
28
42
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/cache/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAgBjH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA0BhD;AAMD,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAsCvF;AAsCD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CASlE;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM5E;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAGxD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAY1D;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,EAAE,EAC3B,WAAW,EAAE,MAAM,EAAE,GACpB,IAAI,CAqBN;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAgB/E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,aAAa,EAAE,CA4BlB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CA0BT;AAED,wBAAgB,aAAa,IAAI,UAAU,CAiB1C"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/cache/store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAgBjH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA0BhD;AAMD,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAsCvF;AAsCD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CASlE;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAM5E;AAED,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAGxD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,EAAE,CAY1D;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,gBAAgB,EAAE,EAC3B,WAAW,EAAE,MAAM,EAAE,GACpB,IAAI,CAqBN;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAgB/E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,aAAa,EAAE,CA4BlB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CA0BT;AAED,wBAAgB,aAAa,IAAI,UAAU,CAiB1C;AAID,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACX,OAAO,CAoBT;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CA2BpE;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,gBAAgB,IAAI,eAAe,EAAE,CAuBpD"}
@@ -221,4 +221,73 @@ export function getCacheStats() {
221
221
  newest: row.newest ?? '',
222
222
  };
223
223
  }
224
+ // --- Embedding store functions (Slice 22) ---
225
+ export function updateCacheEmbedding(url, embedding, model, dims) {
226
+ try {
227
+ const db = getDatabase();
228
+ let normalized;
229
+ try {
230
+ normalized = normalizeUrl(url);
231
+ }
232
+ catch {
233
+ normalized = url;
234
+ }
235
+ const result = db.prepare(`
236
+ UPDATE url_cache
237
+ SET embedding = ?, embedding_model = ?, embedding_dims = ?, updated_at = datetime('now')
238
+ WHERE normalized_url = ?
239
+ `).run(embedding, model, dims, normalized);
240
+ return result.changes > 0;
241
+ }
242
+ catch {
243
+ return false;
244
+ }
245
+ }
246
+ export function getEmbeddingForUrl(url) {
247
+ try {
248
+ const db = getDatabase();
249
+ let normalized;
250
+ try {
251
+ normalized = normalizeUrl(url);
252
+ }
253
+ catch {
254
+ normalized = url;
255
+ }
256
+ const row = db.prepare(`
257
+ SELECT embedding, embedding_model, embedding_dims
258
+ FROM url_cache
259
+ WHERE (url = ? OR normalized_url = ?) AND embedding IS NOT NULL
260
+ LIMIT 1
261
+ `).get(url, normalized);
262
+ if (!row)
263
+ return null;
264
+ return {
265
+ embedding: row.embedding,
266
+ model: row.embedding_model,
267
+ dims: row.embedding_dims,
268
+ };
269
+ }
270
+ catch {
271
+ return null;
272
+ }
273
+ }
274
+ export function getAllEmbeddings() {
275
+ try {
276
+ const db = getDatabase();
277
+ const rows = db.prepare(`
278
+ SELECT normalized_url, embedding, embedding_model, embedding_dims
279
+ FROM url_cache
280
+ WHERE embedding IS NOT NULL
281
+ `).all();
282
+ return rows.map(r => ({
283
+ normalizedUrl: r.normalized_url,
284
+ embedding: r.embedding,
285
+ model: r.embedding_model,
286
+ dims: r.embedding_dims,
287
+ }));
288
+ }
289
+ catch {
290
+ return [];
291
+ }
292
+ }
224
293
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/cache/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/cache/store.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,10 @@ export interface WarmupResult {
10
10
  firefoxError?: string;
11
11
  webkit?: 'ok' | 'failed';
12
12
  webkitError?: string;
13
+ embeddings?: 'ok' | 'failed';
14
+ embeddingsError?: string;
15
+ lightpanda?: 'ok' | 'failed';
16
+ lightpandaError?: string;
13
17
  }
14
18
  export declare function runWarmup(flags?: string[]): Promise<WarmupResult>;
15
19
  //# sourceMappingURL=warmup.d.ts.map