@thelapyae/geniclaw 1.1.11 → 1.2.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.
- package/README.md +53 -77
- package/bin/geniclaw.js +234 -26
- package/dist/config-manager.d.ts +17 -0
- package/dist/config-manager.d.ts.map +1 -1
- package/dist/config-manager.js +13 -1
- package/dist/config-manager.js.map +1 -1
- package/dist/providers/anthropic.d.ts +19 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +60 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/gemini.d.ts +21 -0
- package/dist/providers/gemini.d.ts.map +1 -0
- package/dist/providers/gemini.js +110 -0
- package/dist/providers/gemini.js.map +1 -0
- package/dist/providers/openai.d.ts +21 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +94 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/types.d.ts +15 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +3 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/queue-processor.js +78 -221
- package/dist/queue-processor.js.map +1 -1
- package/dist/tools/web-search.d.ts +7 -0
- package/dist/tools/web-search.d.ts.map +1 -0
- package/dist/tools/web-search.js +40 -0
- package/dist/tools/web-search.js.map +1 -0
- package/package.json +1 -1
package/dist/queue-processor.js
CHANGED
|
@@ -11,11 +11,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
11
11
|
const fs_1 = __importDefault(require("fs"));
|
|
12
12
|
const path_1 = __importDefault(require("path"));
|
|
13
13
|
const os_1 = __importDefault(require("os"));
|
|
14
|
-
const generative_ai_1 = require("@google/generative-ai");
|
|
15
14
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
16
15
|
const config_manager_1 = require("./config-manager");
|
|
17
16
|
const session_manager_1 = require("./session-manager");
|
|
18
17
|
const skill_manager_1 = require("./skill-manager");
|
|
18
|
+
const gemini_1 = require("./providers/gemini");
|
|
19
|
+
const openai_1 = require("./providers/openai");
|
|
20
|
+
const anthropic_1 = require("./providers/anthropic");
|
|
21
|
+
const web_search_1 = require("./tools/web-search");
|
|
19
22
|
// Load environment variables
|
|
20
23
|
const SCRIPT_DIR = path_1.default.resolve(__dirname, '..');
|
|
21
24
|
const GENICLAW_WORK_DIR = process.env.GENICLAW_WORK_DIR || path_1.default.join(os_1.default.homedir(), '.geniclaw');
|
|
@@ -39,65 +42,34 @@ function log(level, message) {
|
|
|
39
42
|
console.log(logMessage.trim());
|
|
40
43
|
fs_1.default.appendFileSync(LOG_FILE, logMessage);
|
|
41
44
|
}
|
|
42
|
-
//
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
log('INFO', 'Using Gemini API Key');
|
|
53
|
-
// Custom Fetch implementation to support Reverse Proxy (Custom Base URL)
|
|
54
|
-
if (config.geminiApiUrl) {
|
|
55
|
-
log('INFO', `🔌 Using Custom API URL: ${config.geminiApiUrl}`);
|
|
56
|
-
const customFetch = async (url, init) => {
|
|
57
|
-
// Determine the URL string
|
|
58
|
-
let urlStr = url.toString();
|
|
59
|
-
// Replace the default Google API domain with our custom one
|
|
60
|
-
// Default: https://generativelanguage.googleapis.com
|
|
61
|
-
if (urlStr.includes('generativelanguage.googleapis.com')) {
|
|
62
|
-
urlStr = urlStr.replace('https://generativelanguage.googleapis.com', config.geminiApiUrl);
|
|
63
|
-
}
|
|
64
|
-
// Handle Headers for Custom Gateway
|
|
65
|
-
// The User's Gateway requires 'x-google-api-key' and 'x-api-key'
|
|
66
|
-
// The SDK sends 'x-goog-api-key'
|
|
67
|
-
let newInit = init || {};
|
|
68
|
-
let headers = new Headers(newInit.headers || {});
|
|
69
|
-
// 1. Inject Gateway Key if present
|
|
70
|
-
if (config.geminiGatewayKey) {
|
|
71
|
-
headers.set('x-api-key', config.geminiGatewayKey);
|
|
72
|
-
}
|
|
73
|
-
// 2. Remap Google Key: x-goog-api-key -> x-google-api-key
|
|
74
|
-
// The SDK sets 'x-goog-api-key'. We need to ensure the proxy gets it as 'x-google-api-key'.
|
|
75
|
-
const googleKey = headers.get('x-goog-api-key');
|
|
76
|
-
if (googleKey) {
|
|
77
|
-
headers.set('x-google-api-key', googleKey);
|
|
78
|
-
}
|
|
79
|
-
else if (config.geminiApiKey) {
|
|
80
|
-
// Fallback if SDK put it in query param or we just want to be sure
|
|
81
|
-
headers.set('x-google-api-key', config.geminiApiKey);
|
|
82
|
-
}
|
|
83
|
-
newInit.headers = headers;
|
|
84
|
-
return fetch(urlStr, newInit);
|
|
85
|
-
};
|
|
86
|
-
// @ts-ignore - The SDK allows passing custom fetch in RequestOptions, but globally we try this trick
|
|
87
|
-
// Verify if GoogleGenerativeAI constructor supports { fetch: ... }? No.
|
|
88
|
-
// But we can pass it to getGenerativeModel? No.
|
|
89
|
-
// Wait, we can patch globalThis.fetch if needed, but that's dirty.
|
|
90
|
-
// Better approach: We passed `customFetch`? No, the SDK is typed strictly.
|
|
91
|
-
// Let's use the RequestOptions in `getGenerativeModel`.
|
|
92
|
-
genAI = new generative_ai_1.GoogleGenerativeAI(API_KEY);
|
|
45
|
+
// Provider Factory
|
|
46
|
+
function getProviderForTask(config, channel) {
|
|
47
|
+
// Determine provider type based on routing
|
|
48
|
+
let providerType = config.activeProvider || 'gemini';
|
|
49
|
+
if (config.providerRouting) {
|
|
50
|
+
if (channel === 'heartbeat' && config.providerRouting.heartbeat) {
|
|
51
|
+
providerType = config.providerRouting.heartbeat;
|
|
52
|
+
}
|
|
53
|
+
else if (channel === 'cron' && config.providerRouting.cron) {
|
|
54
|
+
providerType = config.providerRouting.cron;
|
|
93
55
|
}
|
|
94
|
-
else {
|
|
95
|
-
|
|
56
|
+
else if (channel !== 'heartbeat' && channel !== 'cron' && config.providerRouting.chat) {
|
|
57
|
+
// Default chat routing
|
|
58
|
+
providerType = config.providerRouting.chat;
|
|
96
59
|
}
|
|
97
60
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
61
|
+
log('INFO', `Selected Provider: ${providerType} for channel: ${channel}`);
|
|
62
|
+
switch (providerType) {
|
|
63
|
+
case 'openai':
|
|
64
|
+
case 'groq':
|
|
65
|
+
case 'deepseek':
|
|
66
|
+
case 'grok':
|
|
67
|
+
return new openai_1.OpenAIProvider(config, providerType);
|
|
68
|
+
case 'anthropic':
|
|
69
|
+
return new anthropic_1.AnthropicProvider(config);
|
|
70
|
+
case 'gemini':
|
|
71
|
+
default:
|
|
72
|
+
return new gemini_1.GeminiProvider(config);
|
|
101
73
|
}
|
|
102
74
|
}
|
|
103
75
|
class HistoryManager {
|
|
@@ -135,33 +107,19 @@ class HistoryManager {
|
|
|
135
107
|
}
|
|
136
108
|
}
|
|
137
109
|
// Memory Management
|
|
138
|
-
async function manageMemory(
|
|
110
|
+
async function manageMemory(provider, history, newContent) {
|
|
139
111
|
try {
|
|
140
|
-
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
];
|
|
145
|
-
// Format for countTokens
|
|
146
|
-
const contents = fullContent.map(item => ({
|
|
147
|
-
role: item.role,
|
|
148
|
-
parts: item.parts
|
|
149
|
-
}));
|
|
150
|
-
const { totalTokens } = await model.countTokens({ contents });
|
|
151
|
-
log('INFO', `Token usage: ${totalTokens} / ${MAX_HISTORY_TOKENS}`);
|
|
152
|
-
if (totalTokens > MAX_HISTORY_TOKENS) {
|
|
112
|
+
const MAX_TOKEN_LIMIT = 120000; // Generic limit
|
|
113
|
+
const totalTokens = await provider.countTokens(newContent, history);
|
|
114
|
+
log('INFO', `Token usage: ${totalTokens} / ${MAX_TOKEN_LIMIT}`);
|
|
115
|
+
if (totalTokens > MAX_TOKEN_LIMIT) {
|
|
153
116
|
log('WARN', `Context limit exceeded (${totalTokens}). Pruning history...`);
|
|
154
|
-
// Sliding Window: Remove oldest messages until we fit.
|
|
155
117
|
let prunedHistory = [...history];
|
|
156
118
|
let attempts = 0;
|
|
157
119
|
while (prunedHistory.length > 0 && attempts < 100) {
|
|
158
120
|
prunedHistory.shift();
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
{ role: 'user', parts: [{ text: newContent }] }
|
|
162
|
-
].map(item => ({ role: item.role, parts: item.parts }));
|
|
163
|
-
const { totalTokens: currentTokens } = await model.countTokens({ contents: currentContents });
|
|
164
|
-
if (currentTokens <= MAX_HISTORY_TOKENS) {
|
|
121
|
+
const currentTokens = await provider.countTokens(newContent, prunedHistory);
|
|
122
|
+
if (currentTokens <= MAX_TOKEN_LIMIT) {
|
|
165
123
|
log('INFO', `Pruned to ${currentTokens} tokens.`);
|
|
166
124
|
return prunedHistory;
|
|
167
125
|
}
|
|
@@ -173,6 +131,7 @@ async function manageMemory(model, history, newContent) {
|
|
|
173
131
|
}
|
|
174
132
|
catch (e) {
|
|
175
133
|
log('ERROR', `Token counting failed: ${e.message}`);
|
|
134
|
+
// If counting fails (e.g. OpenAI network error), just return history and hope for best
|
|
176
135
|
return history;
|
|
177
136
|
}
|
|
178
137
|
}
|
|
@@ -230,149 +189,48 @@ async function processMessage(messageFile) {
|
|
|
230
189
|
systemInstruction += `----------------------------------\n`;
|
|
231
190
|
log('INFO', `Using Skill: ${activeSkill.name}`);
|
|
232
191
|
}
|
|
233
|
-
// Get Model
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
// Correct way for latest SDK:
|
|
250
|
-
// genAI.getGenerativeModel(params, { baseUrl: ... }) <-- No, not standard.
|
|
251
|
-
// We will stick to global fetch patch if necessary, or just rely on standard fetch.
|
|
252
|
-
// Actually, let's use the `customFetch` we defined? We can't pass it easily.
|
|
253
|
-
// HACK: We will use the `baseUrl` property if it exists on the RequestOptions (undocumented in some versions)
|
|
254
|
-
// OR we just assume the user uses a standard proxy.
|
|
255
|
-
// LET'S TRY: global fetch patch for this process specific scope.
|
|
256
|
-
if (config.geminiApiUrl) {
|
|
257
|
-
const originalFetch = global.fetch;
|
|
258
|
-
// @ts-ignore
|
|
259
|
-
global.fetch = async (url, init) => {
|
|
260
|
-
let urlStr = url.toString();
|
|
261
|
-
if (urlStr.includes('generativelanguage.googleapis.com')) {
|
|
262
|
-
urlStr = urlStr.replace('https://generativelanguage.googleapis.com', config.geminiApiUrl);
|
|
263
|
-
}
|
|
264
|
-
let newInit = init || {};
|
|
265
|
-
let headers;
|
|
266
|
-
// Safe Headers Construction
|
|
267
|
-
try {
|
|
268
|
-
// @ts-ignore
|
|
269
|
-
headers = new Headers(newInit.headers || {});
|
|
270
|
-
}
|
|
271
|
-
catch (e) {
|
|
272
|
-
headers = new Map(Object.entries(newInit.headers || {}));
|
|
273
|
-
}
|
|
274
|
-
// 1. Gateway Key
|
|
275
|
-
if (config.geminiGatewayKey) {
|
|
276
|
-
if (headers.set)
|
|
277
|
-
headers.set('x-api-key', config.geminiGatewayKey);
|
|
278
|
-
else
|
|
279
|
-
headers['x-api-key'] = config.geminiGatewayKey;
|
|
280
|
-
}
|
|
281
|
-
// 2. Remap Google Key
|
|
282
|
-
// Try to get from headers first (SDK set it)
|
|
283
|
-
let googleKey = headers.get ? headers.get('x-goog-api-key') : headers['x-goog-api-key'];
|
|
284
|
-
if (googleKey) {
|
|
285
|
-
if (headers.set)
|
|
286
|
-
headers.set('x-google-api-key', googleKey);
|
|
287
|
-
else
|
|
288
|
-
headers['x-google-api-key'] = googleKey;
|
|
289
|
-
}
|
|
290
|
-
else if (config.geminiApiKey) {
|
|
291
|
-
// Fallback
|
|
292
|
-
if (headers.set)
|
|
293
|
-
headers.set('x-google-api-key', config.geminiApiKey);
|
|
294
|
-
else
|
|
295
|
-
headers['x-google-api-key'] = config.geminiApiKey;
|
|
296
|
-
}
|
|
297
|
-
newInit.headers = headers;
|
|
298
|
-
return originalFetch(urlStr, newInit);
|
|
299
|
-
};
|
|
192
|
+
// Get Model/Provider
|
|
193
|
+
const provider = getProviderForTask(config, channel);
|
|
194
|
+
// --- Web Search Integration ---
|
|
195
|
+
const searchTool = new web_search_1.WebSearch(config);
|
|
196
|
+
const lowerMsg = message.toLowerCase();
|
|
197
|
+
let searchContext = "";
|
|
198
|
+
// Explicit search trigger or keyword detection
|
|
199
|
+
if (message.startsWith('/search') || lowerMsg.includes('search for') || lowerMsg.includes('google this')) {
|
|
200
|
+
let query = message.replace('/search', '').trim();
|
|
201
|
+
if (query.length < 3)
|
|
202
|
+
query = message; // if "search for X", just search whole thing or parse better.
|
|
203
|
+
// Simple extraction: remove "search for"
|
|
204
|
+
query = query.replace('search for', '').replace('google this', '').trim();
|
|
205
|
+
log('INFO', `🔍 Performing Web Search for: ${query}`);
|
|
206
|
+
const results = await searchTool.search(query);
|
|
207
|
+
searchContext = `\n\n[Web Search Results]:\n${results}\n\n[Instruction]: Use the above search results to answer the user's question.`;
|
|
300
208
|
}
|
|
301
|
-
|
|
302
|
-
// Load History
|
|
209
|
+
// --- History Management ---
|
|
303
210
|
let history = HistoryManager.load();
|
|
304
|
-
//
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
const contents = history.map(item => ({ role: item.role, parts: item.parts }));
|
|
310
|
-
const result = await model.countTokens({ contents });
|
|
311
|
-
tokenCount = result.totalTokens;
|
|
312
|
-
}
|
|
313
|
-
catch (e) { }
|
|
314
|
-
let skillInfo = activeSkill ? `\nActive Skill: \`${activeSkill.name}\`` : '';
|
|
315
|
-
const reply = `📊 **Session Stats**\nSession: \`${sessionName}\`${skillInfo}\nHistory Length: ${history.length} turns\nTokens Used: ~${tokenCount} / ${MAX_HISTORY_TOKENS}`;
|
|
316
|
-
const responseData = {
|
|
317
|
-
channel,
|
|
318
|
-
sender,
|
|
319
|
-
message: reply,
|
|
320
|
-
originalMessage: message,
|
|
321
|
-
timestamp: Date.now(),
|
|
322
|
-
messageId,
|
|
323
|
-
...otherFields
|
|
324
|
-
};
|
|
325
|
-
const responseFile = path_1.default.join(QUEUE_OUTGOING, `${channel}_${messageId}_${Date.now()}.json`);
|
|
326
|
-
fs_1.default.writeFileSync(responseFile, JSON.stringify(responseData, null, 2));
|
|
327
|
-
fs_1.default.unlinkSync(processingFile);
|
|
328
|
-
return;
|
|
211
|
+
// Append Search Context to the LAST message effectively?
|
|
212
|
+
// No, we append it to the system instruction or as a separate context message?
|
|
213
|
+
// Let's append it to System Instruction for this turn.
|
|
214
|
+
if (searchContext) {
|
|
215
|
+
systemInstruction += searchContext;
|
|
329
216
|
}
|
|
330
|
-
//
|
|
331
|
-
|
|
332
|
-
//
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
// Actually, few-shot examples are best in history.
|
|
336
|
-
// But if history is long, they might get pruned or be too far back.
|
|
337
|
-
// For simplicity in this iteration, we stick to System Instruction for the persona.
|
|
338
|
-
// If skill has specific examples, we could add them if history is empty.
|
|
339
|
-
if (history.length === 0 && activeSkill && activeSkill.examples && activeSkill.examples.length > 0) {
|
|
340
|
-
for (const example of activeSkill.examples) {
|
|
341
|
-
history.push({ role: 'user', parts: [{ text: example.input }] });
|
|
342
|
-
history.push({ role: 'model', parts: [{ text: example.output }] });
|
|
343
|
-
}
|
|
344
|
-
// Note: We don't save this to file, so it's "transient" for the first turn?
|
|
345
|
-
// Actually, if we pass it to `startChat`, it initializes the chat with it.
|
|
346
|
-
// If we don't save it, next time history is loaded, it's gone.
|
|
347
|
-
// That's actually perfect for "System Examples".
|
|
348
|
-
// BUT, `history` variable here is what we pass to `startChat`.
|
|
349
|
-
// If we assume `startChat` maintains it in memory object, that's fine.
|
|
350
|
-
// But we save `history` after generation.
|
|
351
|
-
// If we save it, it becomes permanent.
|
|
352
|
-
// Let's NOT save examples to persistent history to avoid cluttering or duplicating.
|
|
353
|
-
// So we pass a `chatHistory` to startChat but keep `history` (file) separate?
|
|
354
|
-
// No, file history is source of truth.
|
|
355
|
-
// Let's just USE SYSTEM INSTRUCTION for now.
|
|
356
|
-
}
|
|
357
|
-
// Memory Management: Prune if necessary
|
|
358
|
-
// Note: We pass `history` (from file) to manageMemory.
|
|
359
|
-
history = await manageMemory(model, history, message);
|
|
360
|
-
// Generate
|
|
361
|
-
let responseText;
|
|
217
|
+
// Token Management
|
|
218
|
+
history = await manageMemory(provider, history, message);
|
|
219
|
+
// Generate Content
|
|
220
|
+
log('INFO', 'Generating response...');
|
|
221
|
+
let responseText = "";
|
|
362
222
|
try {
|
|
363
|
-
|
|
364
|
-
const result = await chat.sendMessage(message);
|
|
365
|
-
const response = await result.response;
|
|
366
|
-
responseText = response.text();
|
|
367
|
-
// Save History (append new turn)
|
|
368
|
-
history.push({ role: 'user', parts: [{ text: message }] });
|
|
369
|
-
history.push({ role: 'model', parts: [{ text: responseText }] });
|
|
370
|
-
HistoryManager.save(history);
|
|
223
|
+
responseText = await provider.generateResponse(message, history, systemInstruction);
|
|
371
224
|
}
|
|
372
225
|
catch (error) {
|
|
373
|
-
log('ERROR', `
|
|
374
|
-
|
|
226
|
+
log('ERROR', `Provider Error: ${error.message}`);
|
|
227
|
+
// Fallback error message (expose details)
|
|
228
|
+
responseText = `⚠️ **LLM Provider Error**\n\n${error.message}\n\nPlease check your API key and configuration.`;
|
|
375
229
|
}
|
|
230
|
+
// Save History
|
|
231
|
+
history.push({ role: 'user', parts: [{ text: message }] });
|
|
232
|
+
history.push({ role: 'model', parts: [{ text: responseText }] });
|
|
233
|
+
HistoryManager.save(history);
|
|
376
234
|
// Write Response
|
|
377
235
|
const responseData = {
|
|
378
236
|
channel,
|
|
@@ -425,13 +283,12 @@ async function processQueue() {
|
|
|
425
283
|
}
|
|
426
284
|
}
|
|
427
285
|
// Start
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
});
|
|
286
|
+
// No init needed for Generic providers (they init per request or lazy)
|
|
287
|
+
log('INFO', `Queue processor started.`);
|
|
288
|
+
log('INFO', `Watching: ${QUEUE_INCOMING}`);
|
|
289
|
+
const currentSession = config_manager_1.ConfigManager.load().activeSession || 'default';
|
|
290
|
+
log('INFO', `Active Session: ${currentSession}`);
|
|
291
|
+
setInterval(processQueue, 1000);
|
|
435
292
|
process.on('SIGINT', () => process.exit(0));
|
|
436
293
|
process.on('SIGTERM', () => process.exit(0));
|
|
437
294
|
//# sourceMappingURL=queue-processor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-processor.js","sourceRoot":"","sources":["../src/queue-processor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queue-processor.js","sourceRoot":"","sources":["../src/queue-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,SAAS;IAClB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,SAAS;IAIvB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkC/C"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebSearch = void 0;
|
|
4
|
+
class WebSearch {
|
|
5
|
+
apiKey;
|
|
6
|
+
constructor(config) {
|
|
7
|
+
this.apiKey = config.braveApiKey || process.env.BRAVE_API_KEY || '';
|
|
8
|
+
}
|
|
9
|
+
async search(query) {
|
|
10
|
+
if (!this.apiKey) {
|
|
11
|
+
return "Error: Brave Search API Key is missing. Please configure it.";
|
|
12
|
+
}
|
|
13
|
+
try {
|
|
14
|
+
const response = await fetch(`https://api.search.brave.com/res/v1/web/search?q=${encodeURIComponent(query)}&count=5`, {
|
|
15
|
+
headers: {
|
|
16
|
+
'Accept': 'application/json',
|
|
17
|
+
'Accept-Encoding': 'gzip',
|
|
18
|
+
'X-Subscription-Token': this.apiKey
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
if (!response.ok) {
|
|
22
|
+
return `Error: Brave Search failed (${response.status})`;
|
|
23
|
+
}
|
|
24
|
+
const data = await response.json();
|
|
25
|
+
if (!data.web || !data.web.results) {
|
|
26
|
+
return "No results found.";
|
|
27
|
+
}
|
|
28
|
+
// Format results
|
|
29
|
+
const results = data.web.results.map((result) => {
|
|
30
|
+
return `[${result.title}](${result.url})\n${result.description || ''}`;
|
|
31
|
+
});
|
|
32
|
+
return `**Search Results for "${query}":**\n\n${results.join('\n\n')}`;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
return `Error performing search: ${error.message}`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.WebSearch = WebSearch;
|
|
40
|
+
//# sourceMappingURL=web-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/tools/web-search.ts"],"names":[],"mappings":";;;AAGA,MAAa,SAAS;IACV,MAAM,CAAS;IAEvB,YAAY,MAAiB;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACf,OAAO,8DAA8D,CAAC;QAC1E,CAAC;QAED,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oDAAoD,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE;gBAClH,OAAO,EAAE;oBACL,QAAQ,EAAE,kBAAkB;oBAC5B,iBAAiB,EAAE,MAAM;oBACzB,sBAAsB,EAAE,IAAI,CAAC,MAAM;iBACtC;aACJ,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACf,OAAO,+BAA+B,QAAQ,CAAC,MAAM,GAAG,CAAC;YAC7D,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAS,CAAC;YAE1C,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;gBACjC,OAAO,mBAAmB,CAAC;YAC/B,CAAC;YAED,iBAAiB;YACjB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAW,EAAE,EAAE;gBACjD,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;YAC3E,CAAC,CAAC,CAAC;YAEH,OAAO,yBAAyB,KAAK,WAAW,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,4BAA6B,KAAe,CAAC,OAAO,EAAE,CAAC;QAClE,CAAC;IACL,CAAC;CACJ;AAzCD,8BAyCC"}
|