@ikyyofc/gemini-cli 4.0.3 → 4.0.5
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/package.json +1 -1
- package/src/agent.js +49 -34
- package/src/gemini.js +1 -1
- package/src/tools.js +0 -58
package/package.json
CHANGED
package/src/agent.js
CHANGED
|
@@ -3,7 +3,7 @@ import chalk from "chalk";
|
|
|
3
3
|
import { callGemini } from "./gemini.js";
|
|
4
4
|
import { GEMINI_TOOLS, FUNCTION_DECLARATIONS, executeTool } from "./tools.js";
|
|
5
5
|
import { Spinner } from "./utils/spinner.js";
|
|
6
|
-
import { loadSkills,
|
|
6
|
+
import { loadSkills, AGENTS_DIR } from "./skills.js";
|
|
7
7
|
import {
|
|
8
8
|
printAssistant, printError, printWarning,
|
|
9
9
|
printToolCall, printToolResult,
|
|
@@ -16,18 +16,22 @@ const TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
|
|
|
16
16
|
// System prompt
|
|
17
17
|
// ─────────────────────────────────────────────────────────────────
|
|
18
18
|
function buildSystemPrompt(extra = "") {
|
|
19
|
-
const toolList
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
const toolList = FUNCTION_DECLARATIONS.map(t => `- ${t.name}: ${t.description}`).join("\n");
|
|
20
|
+
|
|
21
|
+
// Skill index — names + 1-line description only, NOT full content
|
|
22
|
+
// Agent will dynamically read SKILL.md when a task is relevant
|
|
23
|
+
const skills = loadSkills();
|
|
24
|
+
const skillIndex = skills.length
|
|
25
|
+
? skills.map(s => {
|
|
26
|
+
const firstLine = s.content.split("\n").find(l => l.trim() && !l.startsWith("#")) ?? "";
|
|
27
|
+
return ` - ${s.slug} → ${firstLine.slice(0, 80)}`;
|
|
28
|
+
}).join("\n")
|
|
29
|
+
: null;
|
|
30
|
+
|
|
31
|
+
// Current datetime
|
|
32
|
+
const now = new Date();
|
|
33
|
+
const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
34
|
+
const datetime = now.toLocaleString("id-ID", { timeZone: tz, dateStyle: "full", timeStyle: "long" });
|
|
31
35
|
|
|
32
36
|
return `You are an autonomous AI coding agent running in the user's terminal. You have full access to their filesystem and shell through tools.
|
|
33
37
|
|
|
@@ -37,36 +41,35 @@ Unix timestamp: ${Math.floor(now.getTime() / 1000)}
|
|
|
37
41
|
|
|
38
42
|
## CORE RULE — NEVER ASK, ALWAYS ACT
|
|
39
43
|
|
|
40
|
-
You MUST use tools to complete
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
If you need to run something → use run_shell.
|
|
47
|
-
If you need to read a file → use read_file first.
|
|
48
|
-
If you need to create/edit a file → use write_file or patch_file.
|
|
49
|
-
If something fails → diagnose and retry automatically, never ask user.
|
|
44
|
+
You MUST use tools to complete every task. Never ask the user to do anything themselves.
|
|
45
|
+
- If you need to run a command → run_shell
|
|
46
|
+
- If you need to read a file → read_file
|
|
47
|
+
- If you need to create or edit a file → write_file or patch_file
|
|
48
|
+
- If something fails → diagnose and fix yourself, retry automatically
|
|
50
49
|
|
|
51
50
|
## WORKFLOW
|
|
52
|
-
1. EXPLORE —
|
|
53
|
-
2. ACT —
|
|
54
|
-
3. VERIFY — run
|
|
51
|
+
1. EXPLORE — understand the project structure before acting
|
|
52
|
+
2. ACT — complete the task fully using tools
|
|
53
|
+
3. VERIFY — test/run after changes to confirm it works
|
|
55
54
|
4. REPORT — brief summary of what was done
|
|
56
55
|
|
|
57
56
|
## TOOLS
|
|
58
57
|
${toolList}
|
|
59
58
|
|
|
59
|
+
## SKILLS
|
|
60
|
+
${skillIndex
|
|
61
|
+
? `You have the following skills installed. When a task matches a skill, FIRST read the skill file to load its instructions into context, then follow them.\n\nInstalled skills:\n${skillIndex}\n\nTo use a skill: read_file("~/.agents/<slug>/SKILL.md")\nSkills directory: ${AGENTS_DIR}`
|
|
62
|
+
: "No skills installed. User can install skills with: /skill add <owner/repo>"}
|
|
63
|
+
|
|
60
64
|
## RULES
|
|
61
65
|
- Always read files before editing them
|
|
62
66
|
- Use patch_file for targeted edits (safer than full rewrite)
|
|
63
67
|
- Verify code works by running it after changes
|
|
64
68
|
- If a command fails, fix it yourself and retry
|
|
65
|
-
- Only ask the user if the request is genuinely ambiguous
|
|
66
69
|
- Current working directory: ${process.cwd()}
|
|
67
70
|
- Platform: ${process.platform}
|
|
68
71
|
|
|
69
|
-
${
|
|
72
|
+
${extra ? `## EXTRA INSTRUCTIONS\n${extra}` : ""}`.trim();
|
|
70
73
|
}
|
|
71
74
|
|
|
72
75
|
// ─────────────────────────────────────────────────────────────────
|
|
@@ -109,23 +112,35 @@ export async function runAgentLoop(userMessage, history, {
|
|
|
109
112
|
return null;
|
|
110
113
|
}
|
|
111
114
|
|
|
112
|
-
//
|
|
115
|
+
// ── Parse response parts ────────────────────────────────────
|
|
116
|
+
// Gemini returns: thought parts (p.thought===true), text parts, tool call parts
|
|
113
117
|
const thoughtParts = parts.filter(p => p.thought === true && p.text);
|
|
114
118
|
const textParts = parts.filter(p => p.text != null && !p.thought);
|
|
115
119
|
const callParts = parts.filter(p => p.functionCall != null);
|
|
116
120
|
const textContent = textParts.map(p => p.text).join("").trim();
|
|
117
121
|
const thinkContent = thoughtParts.map(p => p.text).join("").trim();
|
|
118
122
|
|
|
119
|
-
//
|
|
123
|
+
// DEBUG — tulis struktur parts ke stderr (hapus setelah konfirmasi thinking bekerja)
|
|
124
|
+
if (process.env.DEBUG_PARTS) {
|
|
125
|
+
process.stderr.write(
|
|
126
|
+
`[DEBUG] parts count: ${parts.length}, ` +
|
|
127
|
+
`thought: ${thoughtParts.length}, ` +
|
|
128
|
+
`text: ${textParts.length}, ` +
|
|
129
|
+
`call: ${callParts.length}\n` +
|
|
130
|
+
`[DEBUG] part types: ${parts.map(p => p.thought ? "THOUGHT" : p.functionCall ? "CALL" : "TEXT").join(", ")}\n`
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// ── Show native thinking (p.thought===true from API) ───────
|
|
120
135
|
if (thinkContent) {
|
|
121
136
|
process.stdout.write(
|
|
122
|
-
"\n" + chalk.hex("#
|
|
123
|
-
chalk.hex("#
|
|
137
|
+
"\n" + chalk.hex("#2E2E45")(" ╭─ thinking ") +
|
|
138
|
+
chalk.hex("#2E2E45")("─".repeat(Math.max(2, bw() - 13))) + "\n"
|
|
124
139
|
);
|
|
125
140
|
thinkContent.split("\n").forEach(line =>
|
|
126
|
-
process.stdout.write(chalk.hex("#
|
|
141
|
+
process.stdout.write(chalk.hex("#2E2E45")(" │ ") + chalk.hex("#55557A").italic(line) + "\n")
|
|
127
142
|
);
|
|
128
|
-
process.stdout.write(chalk.hex("#
|
|
143
|
+
process.stdout.write(chalk.hex("#2E2E45")(" ╰" + "─".repeat(bw() - 1)) + "\n\n");
|
|
129
144
|
}
|
|
130
145
|
|
|
131
146
|
// ── Final answer — no more tool calls ─────────────────────
|
package/src/gemini.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x3982f1=_0x4c02;(function(_0x45f1ad,_0x4869ab){const _0x646b5e=_0x4c02,_0x443c59=_0x45f1ad();while(!![]){try{const _0x17c959=parseInt(_0x646b5e(0x1aa,'YisE'))/(0x1d56+0x260e+-0x4363)+parseInt(_0x646b5e(0x1a5,'ySK6'))/(-0x1780+-0x8fe*0x1+0x2080)+parseInt(_0x646b5e(0x1d4,'PpGQ'))/(0xe29+-0x247+-0x3f5*0x3)+parseInt(_0x646b5e(0x1c0,'69sb'))/(-0xbb6*-0x3+-0x6a6+-0x1c78)+parseInt(_0x646b5e(0x1ff,']2b9'))/(0x1091+-0x22e*-0x8+-0xa*0x366)*(parseInt(_0x646b5e(0x21d,'XVY0'))/(-0x2657+-0xd4*-0x1f+0xcb1))+-parseInt(_0x646b5e(0x257,'69sb'))/(-0x8*-0x166+0x1322+0x37*-0x8d)*(parseInt(_0x646b5e(0x202,'YisE'))/(0x1*-0x1646+-0x1306+0xa55*0x4))+-parseInt(_0x646b5e(0x19a,'B33r'))/(0x788+0x1*-0x1bef+0xda*0x18);if(_0x17c959===_0x4869ab)break;else _0x443c59['push'](_0x443c59['shift']());}catch(_0x43b4ba){_0x443c59['push'](_0x443c59['shift']());}}}(_0x3bd4,-0x1f351*-0x6+-0xd9824+-0x187c0*-0x7));import _0x2645bf from'axios';function _0x4c02(_0x18dc8a,_0x52dfcf){_0x18dc8a=_0x18dc8a-(-0xc53+-0x6*0x526+0x1*0x2ccd);const _0x145615=_0x3bd4();let _0x7ede3c=_0x145615[_0x18dc8a];if(_0x4c02['InVptu']===undefined){var _0x2a5522=function(_0x34c612){const _0x7a4c29='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x462127='',_0x404708='';for(let _0x17bf59=0xd14+0x8d6+-0x15ea,_0x11ffe7,_0x60adf,_0x6b0eb5=-0xef2+-0x5*-0x1bb+0xb3*0x9;_0x60adf=_0x34c612['charAt'](_0x6b0eb5++);~_0x60adf&&(_0x11ffe7=_0x17bf59%(0x253b+0x81*-0x5+-0x22b2)?_0x11ffe7*(0x5+0x12e0*-0x2+0x25fb)+_0x60adf:_0x60adf,_0x17bf59++%(0x1*-0x149e+-0x157b+0x2a1d))?_0x462127+=String['fromCharCode'](0xcf9+0x10ff+0x1*-0x1cf9&_0x11ffe7>>(-(-0x1e12+0x1ae3+0x331)*_0x17bf59&0x131d+-0x4c8+-0xe4f)):0x5*-0x799+-0x125*-0x1e+0x3a7){_0x60adf=_0x7a4c29['indexOf'](_0x60adf);}for(let _0x579091=-0x1650+-0x2397*0x1+0x9*0x66f,_0x156f91=_0x462127['length'];_0x579091<_0x156f91;_0x579091++){_0x404708+='%'+('00'+_0x462127['charCodeAt'](_0x579091)['toString'](0x182*-0x6+0x78*-0x32+0x4*0x823))['slice'](-(-0x1*-0x79+0x646+-0x4b*0x17));}return decodeURIComponent(_0x404708);};const _0x46915f=function(_0x14fda9,_0x4a2443){let _0x114e1d=[],_0x2fc42a=-0x2337+0x1d*0x36+0x1d19,_0x216acb,_0x1e3a9b='';_0x14fda9=_0x2a5522(_0x14fda9);let _0x3bd57e;for(_0x3bd57e=0x18ab+0x3*-0x120+-0x45*0x4f;_0x3bd57e<0x287+0x4*-0x404+0xe89;_0x3bd57e++){_0x114e1d[_0x3bd57e]=_0x3bd57e;}for(_0x3bd57e=-0x649*-0x4+-0x22b7*0x1+0x331*0x3;_0x3bd57e<-0xf63*0x1+-0x1*-0x1e62+0x1*-0xdff;_0x3bd57e++){_0x2fc42a=(_0x2fc42a+_0x114e1d[_0x3bd57e]+_0x4a2443['charCodeAt'](_0x3bd57e%_0x4a2443['length']))%(-0x14c6*-0x1+-0x1e2*0x5+0x11*-0x9c),_0x216acb=_0x114e1d[_0x3bd57e],_0x114e1d[_0x3bd57e]=_0x114e1d[_0x2fc42a],_0x114e1d[_0x2fc42a]=_0x216acb;}_0x3bd57e=-0x1bd8+0x410+0x17c8,_0x2fc42a=0x74+0x12*0xe3+0x106a*-0x1;for(let _0x157de5=-0x1*-0x594+0x25*-0xdb+0x1a13;_0x157de5<_0x14fda9['length'];_0x157de5++){_0x3bd57e=(_0x3bd57e+(-0x16bc+-0xe5d+0x251a))%(0xc17+-0x373*-0x7+-0x233c),_0x2fc42a=(_0x2fc42a+_0x114e1d[_0x3bd57e])%(0x16d9+-0x5f3+-0xfe6),_0x216acb=_0x114e1d[_0x3bd57e],_0x114e1d[_0x3bd57e]=_0x114e1d[_0x2fc42a],_0x114e1d[_0x2fc42a]=_0x216acb,_0x1e3a9b+=String['fromCharCode'](_0x14fda9['charCodeAt'](_0x157de5)^_0x114e1d[(_0x114e1d[_0x3bd57e]+_0x114e1d[_0x2fc42a])%(-0x1bf4+0x1b34+0x1c0)]);}return _0x1e3a9b;};_0x4c02['aMLlaj']=_0x46915f,_0x4c02['mVAKYO']={},_0x4c02['InVptu']=!![];}const _0x30a98d=_0x145615[0x1*0x1a87+-0x1869*0x1+-0x1*0x21e],_0x41751e=_0x18dc8a+_0x30a98d,_0x8ee9d5=_0x4c02['mVAKYO'][_0x41751e];return!_0x8ee9d5?(_0x4c02['HWVqER']===undefined&&(_0x4c02['HWVqER']=!![]),_0x7ede3c=_0x4c02['aMLlaj'](_0x7ede3c,_0x52dfcf),_0x4c02['mVAKYO'][_0x41751e]=_0x7ede3c):_0x7ede3c=_0x8ee9d5,_0x7ede3c;}import{fileTypeFromBuffer}from'file-type';const CONFIG={'URL':_0x3982f1(0x1c2,'2ENj')+_0x3982f1(0x1b0,'xbsJ')+_0x3982f1(0x1da,'0n&h')+_0x3982f1(0x22c,'tFCO')+_0x3982f1(0x19c,'5AQh')+_0x3982f1(0x19f,'Ig7W'),'MODEL':_0x3982f1(0x242,'@vD#')+_0x3982f1(0x207,'9mBV'),'HEADERS':{'User-Agent':_0x3982f1(0x200,'Ig7W')+'.2','Accept-Encoding':_0x3982f1(0x1fb,'22tR'),'content-type':_0x3982f1(0x1d6,'qAii')+_0x3982f1(0x1b4,'99e&')+_0x3982f1(0x1af,'B33r')+'8'}},SUPPORTED_MIMES=new Set([_0x3982f1(0x1b3,'@vD#'),_0x3982f1(0x1ac,'Ig7W'),_0x3982f1(0x237,'Ig7W'),_0x3982f1(0x23e,'nr(n'),_0x3982f1(0x196,'7DRs'),_0x3982f1(0x1c4,'XVY0'),_0x3982f1(0x1b1,'scht'),_0x3982f1(0x210,'KFRH'),_0x3982f1(0x250,'[u5#'),_0x3982f1(0x239,'YisE'),_0x3982f1(0x1a0,'BhFc')+'v',_0x3982f1(0x211,'B33r'),_0x3982f1(0x1f4,'5AQh'),_0x3982f1(0x1bd,'uL0v'),_0x3982f1(0x255,'DQNi'),_0x3982f1(0x1e9,'5AQh'),_0x3982f1(0x1ca,'FyAO'),_0x3982f1(0x1e8,'KFRH'),_0x3982f1(0x1a6,'F1GU'),_0x3982f1(0x1b9,'nr(n'),_0x3982f1(0x204,'tFCO'),_0x3982f1(0x253,'Ig7W'),_0x3982f1(0x25b,'9IL*')+_0x3982f1(0x209,']2b9')+'us',_0x3982f1(0x258,'PpGQ')+_0x3982f1(0x230,'Ig7W'),_0x3982f1(0x1f6,'ySK6'),_0x3982f1(0x224,'nr(n'),_0x3982f1(0x262,'9IL*'),_0x3982f1(0x1c7,'scht')+_0x3982f1(0x223,'Ig7W'),_0x3982f1(0x19d,'DQNi')+_0x3982f1(0x1d9,'xbsJ'),_0x3982f1(0x201,'XVY0'),_0x3982f1(0x1d5,'BhFc')+_0x3982f1(0x24a,'3o8Z'),_0x3982f1(0x1ec,'FyAO')+_0x3982f1(0x1ef,'FyAO'),_0x3982f1(0x25d,'JqwJ')+_0x3982f1(0x20a,'DQNi'),_0x3982f1(0x244,'7DRs')+_0x3982f1(0x216,'xEFA'),_0x3982f1(0x1db,'RRt2')+_0x3982f1(0x1fe,'3o8Z')]);async function getToken(){const _0x133a1e=_0x3982f1,_0x52f158={'wspza':_0x133a1e(0x21c,'9IL*')+_0x133a1e(0x228,'XVY0')+_0x133a1e(0x24b,'DQNi')+_0x133a1e(0x1a8,'RRt2')+_0x133a1e(0x1c8,'@vD#')+_0x133a1e(0x198,'1^rr')+_0x133a1e(0x1b2,'JqwJ')+_0x133a1e(0x20f,'Np%[')+_0x133a1e(0x233,'@vD#')+_0x133a1e(0x24d,'tp8x')+_0x133a1e(0x22f,'tFCO')+_0x133a1e(0x1f5,'0xnz'),'FTmgl':_0x133a1e(0x241,'2ENj')+_0x133a1e(0x240,'hSYh'),'dKFtk':_0x133a1e(0x1b7,'69sb')+_0x133a1e(0x220,'KFRH')+_0x133a1e(0x1eb,'xbsJ')+_0x133a1e(0x23f,'YlIb')+_0x133a1e(0x222,'tp8x')+_0x133a1e(0x1dc,'@vD#')+_0x133a1e(0x1e1,')DXc'),'OSMAE':_0x133a1e(0x21f,'tFCO')+_0x133a1e(0x238,'tp8x'),'IkcEg':_0x133a1e(0x23c,'8d%X')+_0x133a1e(0x25f,'99e&'),'QxrAD':_0x133a1e(0x1bc,'F1GU')+_0x133a1e(0x212,'8d%X')+_0x133a1e(0x247,'99e&')+_0x133a1e(0x1f8,'3o8Z'),'prGGx':_0x133a1e(0x266,'69sb')+_0x133a1e(0x1e6,'scht')+_0x133a1e(0x246,'6UjU')+_0x133a1e(0x259,'JqwJ')+_0x133a1e(0x215,'nr(n')},{data:_0x2b3fea}=await _0x2645bf[_0x133a1e(0x23d,'xEFA')](_0x52f158[_0x133a1e(0x22d,'XVY0')],{'clientType':_0x52f158[_0x133a1e(0x26b,'xEFA')]},{'headers':{'User-Agent':_0x52f158[_0x133a1e(0x197,'ySK6')],'Content-Type':_0x52f158[_0x133a1e(0x1f1,'2ENj')],'X-Android-Package':_0x52f158[_0x133a1e(0x248,'nr(n')],'X-Android-Cert':_0x52f158[_0x133a1e(0x1d0,'tFCO')],'X-Firebase-GMPID':_0x52f158[_0x133a1e(0x1cb,'JqwJ')]}});return _0x2b3fea[_0x133a1e(0x1a7,'99e&')];}export async function callGemini({messages:messages=[],fileBuffer:fileBuffer=null,tools:tools=null,systemInstruction:systemInstruction=null}={}){const _0x1ab6fe=_0x3982f1,_0x122359={'bBuSM':function(_0x50fa88,_0xbf5cfc){return _0x50fa88===_0xbf5cfc;},'HfEhO':_0x1ab6fe(0x1fc,'3o8Z'),'CfwpA':_0x1ab6fe(0x22b,'2ENj'),'Jskqv':function(_0x5a3e58,_0x8186d9){return _0x5a3e58===_0x8186d9;},'IQtCi':_0x1ab6fe(0x1d2,'8d%X'),'xhSmc':function(_0x566aba){return _0x566aba();},'COeBv':function(_0x43c852,_0x2862be){return _0x43c852===_0x2862be;},'MJmja':function(_0x845810,_0x6f0944){return _0x845810(_0x6f0944);},'lcjAs':_0x1ab6fe(0x206,'XVY0')+_0x1ab6fe(0x1e3,'Ik)U')+_0x1ab6fe(0x1b8,'xbsJ'),'kVBRm':_0x1ab6fe(0x25e,'JqwJ'),'WRMQr':function(_0x48c6a3,_0x4605a4){return _0x48c6a3-_0x4605a4;},'JyOuV':_0x1ab6fe(0x260,'xEFA'),'ZUtGl':_0x1ab6fe(0x1ea,'JqwJ'),'rVnfa':_0x1ab6fe(0x243,'Veag')+_0x1ab6fe(0x1cc,'3o8Z')+_0x1ab6fe(0x1c1,'scht'),'plOjv':_0x1ab6fe(0x221,'Np%['),'chYHO':_0x1ab6fe(0x243,'Veag')+_0x1ab6fe(0x252,'8d%X')+_0x1ab6fe(0x234,'[u5#'),'UJgAh':_0x1ab6fe(0x227,'nr(n')+_0x1ab6fe(0x232,'Ik)U')+_0x1ab6fe(0x208,'RRt2')+'T','mWcZZ':_0x1ab6fe(0x235,'B33r')+_0x1ab6fe(0x19e,'F1GU')+_0x1ab6fe(0x1f7,'F1GU')+'T','BCKKg':function(_0x30c6be,_0x107360){return _0x30c6be&&_0x107360;},'ctkcf':_0x1ab6fe(0x205,'5AQh')+_0x1ab6fe(0x1ab,')DXc')+_0x1ab6fe(0x256,'F1GU')+'I'},_0x1e904c=await _0x122359[_0x1ab6fe(0x24c,'99e&')](getToken),_0x48afe1=messages[_0x1ab6fe(0x1e0,'99e&')](_0xeb6f7a=>_0xeb6f7a[_0x1ab6fe(0x1dd,'jIwN')]===_0x1ab6fe(0x1f9,'8d%X')),_0x33b9aa=systemInstruction??(_0x48afe1?_0x122359[_0x1ab6fe(0x203,'FyAO')](typeof _0x48afe1[_0x1ab6fe(0x20d,'QiNu')],_0x122359[_0x1ab6fe(0x217,'Ik)U')])?_0x48afe1[_0x1ab6fe(0x268,'2ENj')]:_0x48afe1[_0x1ab6fe(0x1ba,'nr(n')]?.[-0xa14+-0x1bb7+0x25cb]?.[_0x1ab6fe(0x23a,'5AQh')]??'':null),_0x2aa2d4=messages[_0x1ab6fe(0x261,'69sb')](_0x52f8bc=>_0x52f8bc[_0x1ab6fe(0x21b,'csbR')]!==_0x1ab6fe(0x1d1,']AkS'))[_0x1ab6fe(0x254,'jIwN')](_0x3f82bf=>{const _0x2e764b=_0x1ab6fe;if(_0x3f82bf[_0x2e764b(0x21e,'uL0v')])return{'role':_0x122359[_0x2e764b(0x20e,'YlIb')](_0x3f82bf[_0x2e764b(0x249,'uL0v')],_0x122359[_0x2e764b(0x1ce,'KFRH')])?_0x122359[_0x2e764b(0x1b5,'xbsJ')]:_0x3f82bf[_0x2e764b(0x267,'RRt2')],'parts':_0x3f82bf[_0x2e764b(0x20b,'DQNi')]};return{'role':_0x122359[_0x2e764b(0x1ee,'hSYh')](_0x3f82bf[_0x2e764b(0x21b,'csbR')],_0x122359[_0x2e764b(0x21a,'9mBV')])?_0x122359[_0x2e764b(0x1ed,'xEFA')]:_0x3f82bf[_0x2e764b(0x249,'uL0v')],'parts':[{'text':_0x122359[_0x2e764b(0x1fd,'5AQh')](typeof _0x3f82bf[_0x2e764b(0x213,')DXc')],_0x122359[_0x2e764b(0x1fa,'jIwN')])?_0x3f82bf[_0x2e764b(0x213,')DXc')]:JSON[_0x2e764b(0x263,'XVY0')](_0x3f82bf[_0x2e764b(0x24f,'nr(n')])}]};});if(fileBuffer){const _0x338001=await _0x122359[_0x1ab6fe(0x1bb,'5AQh')](fileTypeFromBuffer,fileBuffer),_0x58b632=_0x338001?.[_0x1ab6fe(0x1a2,'9mBV')]??_0x122359[_0x1ab6fe(0x22a,'9mBV')];if(!SUPPORTED_MIMES[_0x1ab6fe(0x218,'tp8x')](_0x58b632))throw new Error(_0x1ab6fe(0x24e,'scht')+_0x1ab6fe(0x1f2,'Ik)U')+_0x1ab6fe(0x265,'Veag')+_0x58b632);const _0x10f9ff={'inlineData':{'mimeType':_0x58b632,'data':fileBuffer[_0x1ab6fe(0x1b6,'dY$W')](_0x122359[_0x1ab6fe(0x1d7,'DQNi')])}},_0x24dac9=_0x2aa2d4[_0x122359[_0x1ab6fe(0x1f0,'jzbg')](_0x2aa2d4[_0x1ab6fe(0x25c,'Ik)U')],0x2308+-0x1*-0x207d+-0x4384)];if(_0x122359[_0x1ab6fe(0x199,')DXc')](_0x24dac9?.[_0x1ab6fe(0x1a9,'QiNu')],_0x122359[_0x1ab6fe(0x264,'2ENj')]))_0x24dac9[_0x1ab6fe(0x1df,'scht')][_0x1ab6fe(0x229,'xbsJ')](_0x10f9ff);else _0x2aa2d4[_0x1ab6fe(0x225,'nr(n')]({'role':_0x122359[_0x1ab6fe(0x1ae,'QiNu')],'parts':[_0x10f9ff]});}const _0x2d10d0={'model':CONFIG[_0x1ab6fe(0x236,'tp8x')],'request':{'contents':_0x2aa2d4,'generationConfig':{'thinkingConfig':{'thinkingLevel':_0x122359[_0x1ab6fe(0x1cf,'DQNi')]}},'safetySettings':[{'category':_0x122359[_0x1ab6fe(0x1bf,'99e&')],'threshold':_0x122359[_0x1ab6fe(0x1d3,'YlIb')]},{'category':_0x122359[_0x1ab6fe(0x1cd,'tFCO')],'threshold':_0x122359[_0x1ab6fe(0x1d3,'YlIb')]},{'category':_0x122359[_0x1ab6fe(0x1f3,'RRt2')],'threshold':_0x122359[_0x1ab6fe(0x22e,'uL0v')]},{'category':_0x122359[_0x1ab6fe(0x1e4,'2ENj')],'threshold':_0x122359[_0x1ab6fe(0x1ad,'8d%X')]}],...tools?.[_0x1ab6fe(0x1e2,'5AQh')]&&{'tools':tools},..._0x122359[_0x1ab6fe(0x1de,'8d%X')](_0x33b9aa,{'systemInstruction':{'role':_0x122359[_0x1ab6fe(0x26a,'qAii')],'parts':[{'text':_0x33b9aa}]}})},'stream':![]},{data:_0x50fe13}=await _0x2645bf[_0x1ab6fe(0x219,'1^rr')](CONFIG[_0x1ab6fe(0x1d8,'tp8x')],_0x2d10d0,{'headers':{...CONFIG[_0x1ab6fe(0x226,'0n&h')],'authorization':_0x1ab6fe(0x1a4,'dY$W')+_0x1e904c}});if(!_0x50fe13?.[_0x1ab6fe(0x231,'scht')]?.[_0x1ab6fe(0x1c5,')DXc')])throw new Error(_0x122359[_0x1ab6fe(0x251,'F1GU')]);const _0x41795b=_0x50fe13[_0x1ab6fe(0x1c3,'9mBV')][-0x3*-0xc63+-0x2c*-0x41+-0x3055],_0x33dd5a=_0x41795b[_0x1ab6fe(0x1e5,'0xnz')]?.[_0x1ab6fe(0x25a,'8d%X')]??[];return{'parts':_0x33dd5a,'candidate':_0x41795b,'raw':_0x50fe13};}export async function chat(_0x24159c=[],_0x59bad1=null){const _0x5e39cf=_0x3982f1,_0x3eb891={'gKJkt':function(_0x14d24b,_0x2c6c73){return _0x14d24b(_0x2c6c73);}},{parts:_0x34de5e}=await _0x3eb891[_0x5e39cf(0x1be,'tFCO')](callGemini,{'messages':_0x24159c,'fileBuffer':_0x59bad1});return _0x34de5e[_0x5e39cf(0x1a1,'xbsJ')](_0x3961b0=>_0x3961b0[_0x5e39cf(0x1a3,'BhFc')]??'')[_0x5e39cf(0x20c,'scht')]('');}function _0x3bd4(){const _0x177e58=['WRJcP1VcSa8','WOxdRmoTW6q','wZ/cV8kXWRlcGHL6W6/cJG','WRWEWRGtWP3dK2tcHZi','rSkbW67dHSoK','WRpcMvvpdSkuWRtcNSk4WOS','W6RdVSk0W5voWORdPSoEW5NdRq','xmkRW7NdJJVcLKnsdrC','gG3cLSkgW78sWOFcMfSH','Dfb3W7/dHW','DSk7wCkSWRXbW73dM8kL','CSkRuSkW','W7CADhxdIMVcVq','sSkFC8kvW4XQW4JdOSkmW5e','W70eW60AWPpdRupcLZWk','o1uRWOi','WPZcONtcMtm','WO9Gb8oTW5G','WRBcIHuqsCkuWRNcHCkKWOa','W71zW7OpWP0','rSkmW5pdMmoH','WOpcU01Td8ohWOxcKmkNWOy','Eq1UW6VdLq','b8oNW4n0W6zNWRa2r8oK','WO05WQJdSmkBWQVcQmodW4xcQG','rdGevmoPWRldMuddVHC','W6iZsgVcGq','WOVcISogEHRdP3xcKCoTWRK','BNddQSoZWPm','FK9/W6JdLGBdNSkdWQS','trddHmofWRa+','DNldHgKaWPxdJrNcIa','lSoczSk8','CxuKDI7cGSkSW78I','W68ujCohFSoIWQldRxFdSq','z8oyxCoT','A8kZqmk/W7ygW77dK8kRW6y','DrCQW4lcU8o4W5eyque','W44sW4m5WOfOWQFcLu4','WQfdkSonW7O+bxldGae','qG4qFmo/WRtcKGJdKYS','WQr/ESoaA8oUBmo0WRub','gCoKz8orW53dQSkosrxcGa','jSkpgmkGgmouB0/dKCkpWRVdI8os','W4hcSMKcfSkZWPrhW5RdLa','W7tdV8olCd7cNmktWPuYuW','s8k1qSkDW7q','rmkpW7ddLW','AmoGWOq','m8k7W6byWOdcLhagECox','W4NdLmkUlH4','qu/dQSovWQGNW4hdIxKa','mCoOW55LW79ZWR4WvSoY','yCkXt8kSW7zhW70','W4qFAu3cPMmFW5ex','WRzPWROtia','W4mPeCk2xmogWOldG0hdLG','DLD6W6BdNaBdLmkAWQG8','WQddL0a','lmkHWQPEWOddLMWiBCoc','WRbUW7ewnhtcJCkWW7ql','W73dKmkjW7vgs3dcV8o3kJ1NWOS','WQufW4ZcQCo+WO4YWR7cG8kS','W6SHmSo7WQDEWPaAW7uU','W7WAoSkDzW','uJ7cR8kOWQ7cL1KYW7/dGG','WQ4oWP/dImk8WOy','WRXHCCkKWQSlW4nwWQ11','WR9WCSkTW7rC','W5tcKSkAjHddHCos','ySoes8oR','WQRcGCotWRGvcG','rY7cS8k1W67dM0uM','W7LEW7GCWPldRuBcLcq','WQH2lmo9W6i','WOKeca','W73dKSkjW7LcqhFdUmkXFW','AsFcJCkM','WOfGdCo8W5eelG','fW7cL8kpW6ONWOlcV2u9ka','W77cQZ/cJ18','uCoJq8o+qG','nSkKW5H4eCoTWPXYW4LnxCkK','eCo5DSoAW5hcPSkhwbxcJa','WQDcWQ3dTSkk','W7BcTSkiwtSVEW/cPeS','W6ldQ8oIW5JdIG','W7ldVmkNbhtcNapdS8oUWQ1EygxdLq','W7zcWOZdSmkMW5KbWOFcMCkix8oi','pmosCmkRW5hdKNqjh2S','lSkTWRzpW4dcGxiBzmoc','WPPpWOGVaLRcRSoxW7aj','EuDQWQddLeZdLmkdWQmY','eCo2prvnWP3cMJxdK8o6','jKeO','WP3cQhpcVq','e8o6iqq','WRdcI8ogW5ldOhRdMG','W7i6W5NcSCosAvr1WP/dSSoAW4u','WRrOWRuzkttcGCoXW5y','W5JdMmkPlbBdJCof','DtZcImk3rmogWRxdLvJcOW','WR9kWQhcIW','mIZcKdLEWO7dVIlcKIfDga','W43cUmoQW4JdKSoxedHmW5q','FK9/W6JdLGBdICkeWQO','W7Wxb8kdyG','WODCWOlcM1O','WQlcUCoNuJhcMwhcKCoUW5m','zKm9WOrWaq7cSrpcIa','eSoVW4L1W6aSWRWYfG','WRr2B8k9WRiMW4DvWPfP','tayCCSo0W7ldLqJdHcm','W5/cK8kxmbldHSkqW7esdq','ceyVWPPf','WOBcGCo0W5tdT2hcLc0','WOJcICotWROze2JdUCkRFq','ouu5WOC','y8kRrCkXW7WgW6BdKCkU','CSk/u8kSW6a','f8oTC8kIW4q','W6uUW6yZaINdMCkNWOmF','qmkjW7JdL8o4W5xdQxtcHa','WRxcOM9ieW','W4pdQSktjrW','W7JdNCkoW7rdqhFcOmoRfaDrWRO','kCodW6ne','WOP7f8o4W4DqDqNdRci','WPpcOhdcVcKJnSkNcra','W6nhW6SsWPNcPuFcLZqC','W4tdVCoNW47dImoB','W7OXamogWP4eFSk4W5JdVCo+odm','emoJW5vKWQbPWRa0q8oK','tb9sy8kIW7ldJr3dJt0','W7i+W5JcSCoqytqkWPVdKSogW6PvpG','W6m6W5STbmkvW7HIFa','WQ1JrSkpWRO','smofWRmuASkCWPL6W5HT','WRhcGxXRka','WOZcQmorWPvn','amkDWRP8WOm','WOpcKvDIiW','DLJdL8k3sxq','W78poSkaESoG','yvTuWPRdTG','W7znWO7dTCkKW5TJWQlcQ8kktmozW5y','e8o6iqqnW5/cG2RdNSoY','W5xcOGdcLMbOWRuTzmkW','mCkEWOXPWOi','DM3dOG','lLm7WPHTaXS','W5G6wfZdTHtcJ2tcHmkt','EJJcKCkVvmorWRVdJL3cPW','cIOTjSoqW7pcJuZcKx0','WR/dMvXy','W444a8kICW','fmoNW59KW7W','W5FdLCktjW','WPJcRCkNWPNcJCkgvX0FWOK','nSocCmkVW5hdKW','WQXeWP7dJmk8WOVcHmk7W7FcKG','WO9yamosW64','jc54zcRcTCkt','vSkWWPqLWRvIWR8Mumo4','ErqCWO9YkJBcRW','WQxcU8oWWPrTW4ZdQCocW4FcSa','o8osESkHW4RcLgWggG','WPvyrSka','A3vJW4PfhqVcR03dJa','W7yQW4CWrmocWRHInSk5','vmorwCoPBW','W6KpW7CKWOG','W6OGW5e','WO/cPh7dUmoq','WQ1ClSojW7e','WQzlWPFdHSkKWOVdKmoIW73cLG','tGlcHSkcvq','lmooESkTW4RcLgWcdIG','nYL+pqBcIG','WRDSWPpdTSookw9DWRtdRW','WPPiWOiVbvtcRSoeW7av','qSkGWQSjfCkyW756W40m','W78co8kDCCoQ','WOtdP0r+mq','WOZcPY/cIG','zSoKWPKIuCkPWQPvW78','emouDCk5W5m','ACk4WPG/ra','W7W4c8opWPHfpSkEW4VdJmoJ','EeL2W7VdH1NcLSoFW6nO','W75pW7ibW5pdQvZcHa','mI/dPgKzW6pdTr0','W4eaW5Oghq','WRpcNefkcmoyWRpcHSkWWOC','fmoipSk6W4ddIgSiaJy','W6TAW7OzWPxdQu7cHJqv','W53cRx/cRcu0iW','vXhcVSkgzCoIWPBdS3FcGq','W6HQxCksW4HrpCoTW7BdHa','nmoNWQriWOdcLW','kSkPWRXpWPW','dSoPW4r+','WQ5kWQpcMMNdOSkw','C3vUWQpdJq','E8kvWONdPHxcSdbCcIG','WRlcP8oWWPHTW4ZdPCoBW4tcSq','WRxcOSoWuIRcI1NcTCop','WR9lCmkRimocWPddGIJcTG','W4VdT8oNW53dMCoDdq','ev5mlCkIW6xcJXpdJXZdLmowW7G','zmoTeSk+WQe','ECkyvSo0qG','WOS6WOxdRmkH','s17dNq','W6/cT8kCxq'];_0x3bd4=function(){return _0x177e58;};return _0x3bd4();}
|
|
1
|
+
function _0x1cb7(_0x5004aa,_0x3af837){_0x5004aa=_0x5004aa-(-0x6*-0x5de+0x3*-0x1e6+-0x1bff);const _0x3896f5=_0x42bf();let _0x5a39ad=_0x3896f5[_0x5004aa];if(_0x1cb7['uPgaZa']===undefined){var _0x5250c5=function(_0x3bb530){const _0xb539b8='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e113d='',_0xb7e8ad='';for(let _0x377ca7=0x11ba+-0x2457+-0x129d*-0x1,_0x44eac7,_0x10f3f9,_0x3c45ba=0x286+-0x2*0xaa5+0x12c4;_0x10f3f9=_0x3bb530['charAt'](_0x3c45ba++);~_0x10f3f9&&(_0x44eac7=_0x377ca7%(-0xcf9+0x5*0xf7+0x82a)?_0x44eac7*(-0x170a+0x2f3*0xd+-0xf0d*0x1)+_0x10f3f9:_0x10f3f9,_0x377ca7++%(-0x26ec+-0x1*-0x1bd9+0xb17))?_0x2e113d+=String['fromCharCode'](-0x1*-0x19d1+-0x24e0+0x1*0xc0e&_0x44eac7>>(-(0x237d+-0x1869+-0x1*0xb12)*_0x377ca7&0x48a*0x5+0x1*0xd01+-0x1*0x23ad)):0x1e30+0x53a+0x5e7*-0x6){_0x10f3f9=_0xb539b8['indexOf'](_0x10f3f9);}for(let _0x4aca12=0x22*0x7+-0xf*-0x22d+-0x295*0xd,_0x46d277=_0x2e113d['length'];_0x4aca12<_0x46d277;_0x4aca12++){_0xb7e8ad+='%'+('00'+_0x2e113d['charCodeAt'](_0x4aca12)['toString'](-0x24f4+0xf00+-0x1*-0x1604))['slice'](-(0x3c*-0x68+-0x24f3+0x3d55));}return decodeURIComponent(_0xb7e8ad);};const _0x13d954=function(_0x4a23f5,_0x482e0d){let _0x11c81a=[],_0x42ebe4=0x349+0x174a+-0x1a93,_0x2b9a13,_0x1e8d21='';_0x4a23f5=_0x5250c5(_0x4a23f5);let _0x455a67;for(_0x455a67=-0x23dd+0x1ad0+0x90d;_0x455a67<-0xc00+0x579+0x787;_0x455a67++){_0x11c81a[_0x455a67]=_0x455a67;}for(_0x455a67=-0x18b2+-0x899+0x3*0xb19;_0x455a67<0xb71+0xb*0x17d+-0x27*0xb0;_0x455a67++){_0x42ebe4=(_0x42ebe4+_0x11c81a[_0x455a67]+_0x482e0d['charCodeAt'](_0x455a67%_0x482e0d['length']))%(-0x1*0x21e6+0x7*-0x400+0x3ee6),_0x2b9a13=_0x11c81a[_0x455a67],_0x11c81a[_0x455a67]=_0x11c81a[_0x42ebe4],_0x11c81a[_0x42ebe4]=_0x2b9a13;}_0x455a67=-0x231a+0xec*0x21+0x4ae,_0x42ebe4=0x2e6+-0x506*-0x2+-0xcf2*0x1;for(let _0x585b50=0x1c12+0x6ac+-0x2*0x115f;_0x585b50<_0x4a23f5['length'];_0x585b50++){_0x455a67=(_0x455a67+(0x1907+-0x4b3*-0x5+-0x3085*0x1))%(-0x530+-0x17*-0xce+0x1*-0xc52),_0x42ebe4=(_0x42ebe4+_0x11c81a[_0x455a67])%(0xb7f+-0x5cb*-0x3+-0x1be0),_0x2b9a13=_0x11c81a[_0x455a67],_0x11c81a[_0x455a67]=_0x11c81a[_0x42ebe4],_0x11c81a[_0x42ebe4]=_0x2b9a13,_0x1e8d21+=String['fromCharCode'](_0x4a23f5['charCodeAt'](_0x585b50)^_0x11c81a[(_0x11c81a[_0x455a67]+_0x11c81a[_0x42ebe4])%(0x1*-0x202d+-0x2240+0x436d)]);}return _0x1e8d21;};_0x1cb7['xWcHBP']=_0x13d954,_0x1cb7['lDkvGX']={},_0x1cb7['uPgaZa']=!![];}const _0x5ca261=_0x3896f5[-0x9fe+-0x2166+0x2b64],_0x113b0e=_0x5004aa+_0x5ca261,_0x14f886=_0x1cb7['lDkvGX'][_0x113b0e];return!_0x14f886?(_0x1cb7['LqpbTf']===undefined&&(_0x1cb7['LqpbTf']=!![]),_0x5a39ad=_0x1cb7['xWcHBP'](_0x5a39ad,_0x3af837),_0x1cb7['lDkvGX'][_0x113b0e]=_0x5a39ad):_0x5a39ad=_0x14f886,_0x5a39ad;}const _0x451dbc=_0x1cb7;(function(_0x487e74,_0x3c13ad){const _0xdc9434=_0x1cb7,_0x4b3b2d=_0x487e74();while(!![]){try{const _0x2efd8=-parseInt(_0xdc9434(0x20f,'j$%s'))/(-0x29f*-0x1+0x9ba+-0xc58)+-parseInt(_0xdc9434(0x1b3,'RElJ'))/(0x655*-0x5+-0x1317*-0x1+0xc94)*(parseInt(_0xdc9434(0x203,'z1f4'))/(-0x89f*0x1+-0x1*-0xdfd+-0x55b*0x1))+parseInt(_0xdc9434(0x19b,'^s]^'))/(-0x21*-0xb2+0x11c3*-0x1+-0x52b)*(-parseInt(_0xdc9434(0x1ae,'%%lb'))/(-0x2630+-0x1*-0x1d6b+0x1*0x8ca))+-parseInt(_0xdc9434(0x1e1,'JfI7'))/(0x12b7*0x1+-0xfd*-0x5+-0x17a2)*(parseInt(_0xdc9434(0x1cb,'CLzw'))/(0x363*0x2+0x2257+0x2*-0x148b))+parseInt(_0xdc9434(0x1e4,'WF%j'))/(0x3*-0xbc5+-0x1d83+0x40da)*(-parseInt(_0xdc9434(0x1e9,']gqB'))/(-0x234e+0xee7+0x1470))+-parseInt(_0xdc9434(0x201,'g%*V'))/(-0x2*-0x838+-0x4f8+0x10a*-0xb)+parseInt(_0xdc9434(0x207,'VL#^'))/(-0x1*-0xa13+-0x31f+-0x6e9);if(_0x2efd8===_0x3c13ad)break;else _0x4b3b2d['push'](_0x4b3b2d['shift']());}catch(_0x8b8445){_0x4b3b2d['push'](_0x4b3b2d['shift']());}}}(_0x42bf,-0x4*0x19a81+0xe3111+0x76297));import _0x2b0069 from'axios';import{fileTypeFromBuffer}from'file-type';const CONFIG={'URL':_0x451dbc(0x24d,']EaD')+_0x451dbc(0x24b,'O1mK')+_0x451dbc(0x22c,'Q1Vx')+_0x451dbc(0x1f7,'QQFP')+_0x451dbc(0x200,'d0aH')+_0x451dbc(0x215,'ga6q'),'MODEL':_0x451dbc(0x1bf,'g%*V')+_0x451dbc(0x24c,'DnXt'),'HEADERS':{'User-Agent':_0x451dbc(0x206,'QQFP')+'.2','Accept-Encoding':_0x451dbc(0x1dc,'Q0e1'),'content-type':_0x451dbc(0x258,'cjTI')+_0x451dbc(0x202,'jm!t')+_0x451dbc(0x246,'RElJ')+'8'}},SUPPORTED_MIMES=new Set([_0x451dbc(0x1e7,'&y*o'),_0x451dbc(0x195,'1Vof'),_0x451dbc(0x21a,'cjTI'),_0x451dbc(0x1b9,'RElJ'),_0x451dbc(0x1fb,'CLzw'),_0x451dbc(0x185,'q)Z6'),_0x451dbc(0x1ff,'q)Z6'),_0x451dbc(0x1c5,'VL#^'),_0x451dbc(0x24e,'c92R'),_0x451dbc(0x233,']gqB'),_0x451dbc(0x18b,'G$sn')+'v',_0x451dbc(0x21b,'^cS0'),_0x451dbc(0x19f,']gqB'),_0x451dbc(0x250,'%%lb'),_0x451dbc(0x18a,'1Vof'),_0x451dbc(0x1c3,'M145'),_0x451dbc(0x23d,'CLzw'),_0x451dbc(0x1ad,'^ejS'),_0x451dbc(0x231,'JfI7'),_0x451dbc(0x235,']gqB'),_0x451dbc(0x1c9,'h4EN'),_0x451dbc(0x191,'q)Z6'),_0x451dbc(0x213,'^cS0')+_0x451dbc(0x1f2,'ZEt4')+'us',_0x451dbc(0x255,'RH8r')+_0x451dbc(0x1d3,'74H#'),_0x451dbc(0x1bb,'7f0M'),_0x451dbc(0x1d9,'^cS0'),_0x451dbc(0x25f,'c92R'),_0x451dbc(0x19e,'JfI7')+_0x451dbc(0x199,'DnXt'),_0x451dbc(0x22e,'^ejS')+_0x451dbc(0x198,'QQFP'),_0x451dbc(0x1e0,'Q1Vx'),_0x451dbc(0x21e,'86Ko')+_0x451dbc(0x1da,'QQFP'),_0x451dbc(0x222,'q)Z6')+_0x451dbc(0x1ca,'[ix0'),_0x451dbc(0x1ce,'VL#^')+_0x451dbc(0x1b7,'I7e5'),_0x451dbc(0x23b,'g%*V')+_0x451dbc(0x225,'9*Em'),_0x451dbc(0x210,'h4EN')+_0x451dbc(0x22d,'^cS0')]);function _0x42bf(){const _0xe2826b=['DHadg8oj','W7dcGCkB','WR9VW5FdGmkJW5RdMaGNxa','WQlcNSoruxnlWQWxy8kd','w0CFWR4wnbzDWRhdQG','WRFcOCk4BCoAW4ZdOXpdGmka','W7VdLsBdPXaClW93W7C','W4PXgCoKvgzOd8oEWRuzWPz3W5u','aWJdJ8kWCSkmDCoVCmkf','j1GJtSoQ','lKTwD0vEz0yEWPm','W4vjW6uaBSogkG','vmkpE8oyh2ldJmkoW5pdTa','WRpdJCkkr1P9WOTYsa','w8kbt8ooiG','WO0XtmkDfG','WR4OW5tdISkJWPldMr1Y','aYVdIcn/cCo3vv7dSa','eCkUhSkfp8oft8kSqsC2W5LwCa','FNidbSodESobW54gWPe','WOFdPCoRE2vfBmkZWPnPvXBdQq','W6/cJmoJW7esW6/dOa','WOqGW7FdOmkb','cadcL8o3kmkFnSk1k8os','E8oehSkpASo9W4S+ACoqimk0W7tdVW','kZddVmouaq','ewxcTIVdNmoRWOddPmkiqW','bwb3qx5pth4fWQu','W57dRJpdHcO','W5JcG8kiWRe','E8o+W4tdUx8VB8kiWPztW6HHW50','hgpdVtddISkOWPlcISk2tG','Fv3cSHddTqtcMSkdb3u/W6i','W40qWPtcM8k7dHtcN1lcNq','jH3dHLBcGq','vmkgimoCtN7cKmoAW57dTq','uK1BW7GsW40oW4e+WQ8','ouJcPCokWPe','lmoRBCo0aYumW5LjWRm','useMW4SsWRVcHSkDWPG','yJifea','bqVcLmoeWQm','WPxcOCoTpKnhxG','fCkwASoMrmo5W5X6WPq','rvfBW7qsW40mW5y+','BYeeW60y','iwBcOCovrWy','WRfsEqdcTCkry0FdVSkn','WRz+W6m9DSoFvYpdPSkS','WOpdQCoKFgjfA8o0W7iW','rtmAamoCzmkvWOWrWPW','WRWKW4JdM8oJW4xcMr0/wa','fglcT8oEsG','e8osoSkxnItdISkEW4lcRa','WRrrxmomAa','amoWWOjjW6ddPSoEcmoGoa','W48bWORcK8k7crtcN17cGq','e8oVWP5a','kI7cSCox','WOTgyCo6W4u','zuLnWRGa','lYhcVCoSWPyGW6tcPmoyW4a','xrDnW6uB','WO9cA8o6WPLHWOhcKt8S','W5WpWPFcGW','WQ1of29ZdXtcJa/dNW','W5pcMCkfWRBcIhBdUdxdHW','WO17nhbI','hGD8W7SDnMtdOCkF','kCkRWPJdGey','crT8W7CDnMRdSmkr','WQBdRmkBBatcPmk0W7uNBW','WPyZxSkWW6m','aLLQamkOW78','FtBdOCkcaLVdQSozW6SJ','odhcO8oP','qCoNxCorymktgmoOqbW','ydWBaCoF','xmkxFSowfwldICkBWOK','WPBdUCo/bwjrsmkK','W4aPWRz+jCovfNxcUSoY','cutcKmoGkmkkBCkTDSkv','W7lcLCowgf95','W4RcISkkbde','b8oaxCk1bG','WOqdpgvGW6S','W6JcLCkBnG','lhhcVmoxr1pcKComWP8N','mmo0Bg7dGdpcGW','WR7cKCoeW7q','WOHUnq','aLBcNmoTCchcISomWPXe','z3qUuCogwmobW67dT8kc','WRddHCoarCoaWOtdJa','WQtcISoCW6hcLgVcTGtcSmkr','W7GDkLpcNSksWQ3cINS','DCkJsmoYjq7dPCk/W7/dKa','W67cICkmo8o0W43cPKRcHG','WR9qq8oeAxHt','WPtcRCk8luH2cSogjg8','kgagt8o2','WPfGfLzEjtVcVW','WPykp31SW6ubguHY','B2tdIGezeXpdPSoDua','mNBcLfHvneBdU8oira','hCklE8oTsmk1W5PNWPVdRq','emoKWPP8W7m','rmkBBmotfa','W6/cNmoo','d2BcRSoavHZdPa','A3JcVCkvva','gfq2aSo+WR03WOSQWPa','W7OrnKldNSoEWRpcLG','W6RcJ8keoW','wMpdR3xdPSk2W7O','qCoKxSouESkegmoYxq','mvtcGX/dQSkdW7W','WQeSW5hdImkPWPldNaGVsG','r8kQAgG','zCoiBmoZtCkInSovBq','WOCtW6NdSmkFW7JdRdGhya','WRe5A8kl','jCoYzN/dINldHglcRJ4','WRiJASkCW41yWQxcN8oRW58','av3dIMtdSNpdT8kGiIO','WP5xW5BdHSoIwcdcG3lcLIFcOa','jCkAC8oTwa','WP1+cxv8','WOddRmo/AWa','WQK0W5tdHSkJWPldMr0JsW','fSovrNtdHW','WR/cISoAW7JcIty','W7FcOSkLWRhcHq','oSo2y33dGhlcH2VcUq','qq8bo8oejmkQWOqtWPS','eSolxmkyla','aHJcNmoXnCkFBq','W77dM8oiqCor','CSkWq8oGmGZdTSkQW6NdHa','WPBdV8kmfLD8sCkpWOy','l8obWQrSW5O','WOWlxmk0W700WPZdPSoiW7q','W4BcICkzWQVdIdpdUcldHw8','hGD8W7SDnNldSSkukG','aerXlCk3','W6NcHmkab8oH','bSkeqCoxoq','DwDj','W5BdVaNdJIeVaJjDW5e','iM7cQmoGWO0','WR/dN8ouqdSxdCoovM8','W7lcNCo0','qSoCyCoFyG','i3KSt8otwmouW7VdQCoC','e0fQeCo7WQy','WONcVCkEWQlcPgxcOw/cHSou','W6qyjxhcLG','WPPsD8oNW5K2W43cJca6','WQRdL8oAB8kRW5FcHe/cUCoDWOlcNW','jSk+W57cRIjXDmkZWOf7','W4rkD1mXW4mMkrCU','xmkUmmkHymk4W59HWP3dQW','ybiHW6qz','F23cMSoOAWdcHW','W5SIWP7cMSkd','gCkVgCkimmofsCkOqIm0W5XYFq','W54pWOJcKG','WPWWW6u4CmoA','W5tdOXtcJciPfY1DW4O','jg7cRSovvKhcS8o9WRT6','iCo0BN8','WPfQpvydpdNcUspdTG','j8o+EM4','W7xcJ8kmo8o3','W5ZdVmk4oJ8t','r8oYqmouz8kzvmoSwXW','tcFdU2NcMSoPWPJcV8kQxIrhFa','W4fkFcjGWRbsvraP','Cf/cUHBdSGddTSkUj1abW7LE','vmk6BwWSWRFcGmkepa','WPvGnLy','nmkvtSoFpmoNWPz6z8oN','rCkUE3eW','WP4QsCkoeq','WOldOmoLcHrpySoWW7bh','W40vWOdcNSk9qHpcH1RcKq','sJO6','cSk0Cmo0cZ/dTG','dSkhWRJdPfO','WRCfy8k5oG','i8kmwSowoSkRWPP+A8oV','WRxdKmkosa','DL7dMf7dH8kzW4dcUvFdNq','lYRcRCooa8kSwmouqmkM','bKdcS8oc','hW9PemkR','W7xcICkfoW','vJaSW5y','l0TqCubvDL0jWOy','WQCLymknW4CzWQK','W67cK8ojW6yaW7BcP8o/WP11','r11hW6vsWOOvW4S1','cbZcKq','WQbeirldQmktBXxdLmk5','kmkYWQtdGq','ztddHrWmaLZdVCoisW','W67cMmoquMja','je5EFa','pchcQmo1W4bUW7BcUW','WOBdN8ovW6VdLwRcRqBdL1etWOxdRG','WQT+W7CNzG','W4LaWOFcLSk8crZcJ1RcHG','ur/cMSohWPhdM07dJW','vmkgtSoqesJdIG','mJPEW70+','ygZcUmkgyCoQrCoocXu','fG/cL8oAjG','xfSPWQ5flZhdMmk1d33cTdS','rCommSk3eCoKW6nXWPhdR8kaW7O','baRcKCoNnCklEmo0ymks','dGD0W6OxAW','iCktrmoonSkMWO8','WQVdMSkmsGJcOW'];_0x42bf=function(){return _0xe2826b;};return _0x42bf();}async function getToken(){const _0x3f5956=_0x451dbc,_0x3e31ac={'RyPIA':_0x3f5956(0x209,'Qs]s')+_0x3f5956(0x1f1,'q)Z6')+_0x3f5956(0x1af,'ceA&')+_0x3f5956(0x1dd,'GhXS')+_0x3f5956(0x25e,'74H#')+_0x3f5956(0x1a9,'O1mK')+_0x3f5956(0x20a,'puC@')+_0x3f5956(0x20e,'Qs]s')+_0x3f5956(0x236,'fb2E')+_0x3f5956(0x1d8,'ltWf')+_0x3f5956(0x196,'jm!t')+_0x3f5956(0x241,'ZEt4'),'AOuUD':_0x3f5956(0x1d6,'puC@')+_0x3f5956(0x187,'g%*V'),'NAVIS':_0x3f5956(0x21f,'I7e5')+_0x3f5956(0x224,'CLzw')+_0x3f5956(0x1b1,'cjTI')+_0x3f5956(0x252,'1#Vz')+_0x3f5956(0x257,'GhXS')+_0x3f5956(0x1f4,'%%lb')+_0x3f5956(0x239,'RElJ'),'ibJfb':_0x3f5956(0x226,'o2xT')+_0x3f5956(0x1be,'z1f4'),'bKLbk':_0x3f5956(0x1b8,'Tq9i')+_0x3f5956(0x251,'9*Em'),'ebcRs':_0x3f5956(0x1c8,'z1f4')+_0x3f5956(0x1b0,'RH8r')+_0x3f5956(0x1ab,']EaD')+_0x3f5956(0x18c,'j$%s'),'Dxkmj':_0x3f5956(0x220,'z1f4')+_0x3f5956(0x23f,'I7e5')+_0x3f5956(0x212,'CLzw')+_0x3f5956(0x1c1,'RH8r')+_0x3f5956(0x208,'RElJ')},{data:_0x12fc85}=await _0x2b0069[_0x3f5956(0x22f,'h4EN')](_0x3e31ac[_0x3f5956(0x237,'G$sn')],{'clientType':_0x3e31ac[_0x3f5956(0x1cc,'Q0e1')]},{'headers':{'User-Agent':_0x3e31ac[_0x3f5956(0x19c,'o2xT')],'Content-Type':_0x3e31ac[_0x3f5956(0x20b,'Tq9i')],'X-Android-Package':_0x3e31ac[_0x3f5956(0x1a8,'g%*V')],'X-Android-Cert':_0x3e31ac[_0x3f5956(0x1c7,'J0zX')],'X-Firebase-GMPID':_0x3e31ac[_0x3f5956(0x1a2,'VL#^')]}});return _0x12fc85[_0x3f5956(0x1e5,'CLzw')];}export async function callGemini({messages:messages=[],fileBuffer:fileBuffer=null,tools:tools=null,systemInstruction:systemInstruction=null}={}){const _0xa41d99=_0x451dbc,_0x2bb2c7={'qdhYz':function(_0x17914f,_0x57e639){return _0x17914f===_0x57e639;},'fcUqX':_0xa41d99(0x183,'g%*V'),'BGuFe':_0xa41d99(0x1bd,'%%lb'),'bwMpD':_0xa41d99(0x193,']EaD'),'fMjne':function(_0x4d72f6){return _0x4d72f6();},'jlkGg':function(_0x429952,_0x30f32c){return _0x429952(_0x30f32c);},'LaGOM':_0xa41d99(0x1a4,'Tq9i')+_0xa41d99(0x240,'QQFP')+_0xa41d99(0x186,'M145'),'xqLWP':_0xa41d99(0x1aa,'74H#'),'vyfAt':function(_0x148ea8,_0x4f28d7){return _0x148ea8-_0x4f28d7;},'wBzmQ':function(_0x5c1333,_0x467453){return _0x5c1333===_0x467453;},'ENDnb':_0xa41d99(0x189,'G$sn'),'bydtP':_0xa41d99(0x1df,'puC@'),'xYXMa':_0xa41d99(0x1d1,'QQFP')+_0xa41d99(0x19a,'CLzw')+_0xa41d99(0x229,'QQFP'),'Yaxly':_0xa41d99(0x1f9,'puC@'),'MtPOd':_0xa41d99(0x19d,'G$sn')+_0xa41d99(0x1a6,'1#Vz')+_0xa41d99(0x197,'ga6q'),'mOhqX':_0xa41d99(0x230,'7f0M')+_0xa41d99(0x188,'q)Z6')+_0xa41d99(0x1f5,'Tq9i')+'T','ZTFcL':_0xa41d99(0x24f,'CLzw')+_0xa41d99(0x1d0,'cHRB')+_0xa41d99(0x24a,'RElJ')+'T','yyvln':function(_0x5e68df,_0xc32c52){return _0x5e68df&&_0xc32c52;},'LMIeX':_0xa41d99(0x1f3,'[ae[')+_0xa41d99(0x1e3,'h4EN')+_0xa41d99(0x1db,'86Ko')+'I'},_0x2df274=await _0x2bb2c7[_0xa41d99(0x1ef,'jm!t')](getToken),_0x5e47b5=messages[_0xa41d99(0x1d2,'WF%j')](_0x4198cd=>_0x4198cd[_0xa41d99(0x1ba,'1Vof')]===_0xa41d99(0x244,'RH8r')),_0x504bda=systemInstruction??(_0x5e47b5?_0x2bb2c7[_0xa41d99(0x1a0,'74H#')](typeof _0x5e47b5[_0xa41d99(0x204,'ltWf')],_0x2bb2c7[_0xa41d99(0x211,'j$%s')])?_0x5e47b5[_0xa41d99(0x1d7,'G$sn')]:_0x5e47b5[_0xa41d99(0x22a,'^ejS')]?.[0x1717+0x1d8b+-0x34a2*0x1]?.[_0xa41d99(0x1bc,'1Vof')]??'':null),_0xe9ad93=messages[_0xa41d99(0x1ec,']gqB')](_0x4c4c92=>_0x4c4c92[_0xa41d99(0x228,'o2xT')]!==_0xa41d99(0x238,'74H#'))[_0xa41d99(0x249,'7f0M')](_0x450a3b=>{const _0x31ebc8=_0xa41d99;if(_0x450a3b[_0x31ebc8(0x190,'1#Vz')])return{'role':_0x2bb2c7[_0x31ebc8(0x259,'o2xT')](_0x450a3b[_0x31ebc8(0x248,']EaD')],_0x2bb2c7[_0x31ebc8(0x234,'Q0e1')])?_0x2bb2c7[_0x31ebc8(0x1a5,'WF%j')]:_0x450a3b[_0x31ebc8(0x1cf,'fb2E')],'parts':_0x450a3b[_0x31ebc8(0x1c6,'M145')]};return{'role':_0x2bb2c7[_0x31ebc8(0x1a1,'%%lb')](_0x450a3b[_0x31ebc8(0x1b6,'h4EN')],_0x2bb2c7[_0x31ebc8(0x1fd,'CLzw')])?_0x2bb2c7[_0x31ebc8(0x1b2,'[ix0')]:_0x450a3b[_0x31ebc8(0x217,'jm!t')],'parts':[{'text':_0x2bb2c7[_0x31ebc8(0x1e8,'QQFP')](typeof _0x450a3b[_0x31ebc8(0x247,'1Vof')],_0x2bb2c7[_0x31ebc8(0x253,'O1mK')])?_0x450a3b[_0x31ebc8(0x261,'cHRB')]:JSON[_0x31ebc8(0x216,'[ix0')](_0x450a3b[_0x31ebc8(0x261,'cHRB')])}]};});if(fileBuffer){const _0x144b6a=await _0x2bb2c7[_0xa41d99(0x1ac,'c92R')](fileTypeFromBuffer,fileBuffer),_0x37d354=_0x144b6a?.[_0xa41d99(0x1d4,'%%lb')]??_0x2bb2c7[_0xa41d99(0x205,'q)Z6')];if(!SUPPORTED_MIMES[_0xa41d99(0x1f0,'%%lb')](_0x37d354))throw new Error(_0xa41d99(0x221,'jm!t')+_0xa41d99(0x256,'GhXS')+_0xa41d99(0x1a3,'jm!t')+_0x37d354);const _0x48113d={'inlineData':{'mimeType':_0x37d354,'data':fileBuffer[_0xa41d99(0x254,'7f0M')](_0x2bb2c7[_0xa41d99(0x18f,'7f0M')])}},_0x28b03e=_0xe9ad93[_0x2bb2c7[_0xa41d99(0x1fe,'J0zX')](_0xe9ad93[_0xa41d99(0x1de,'ZEt4')],-0xf71+-0x15e6+0x8*0x4ab)];if(_0x2bb2c7[_0xa41d99(0x1b4,'h4EN')](_0x28b03e?.[_0xa41d99(0x260,'%%lb')],_0x2bb2c7[_0xa41d99(0x194,'JfI7')]))_0x28b03e[_0xa41d99(0x23c,'jm!t')][_0xa41d99(0x23a,'Q1Vx')](_0x48113d);else _0xe9ad93[_0xa41d99(0x245,'%%lb')]({'role':_0x2bb2c7[_0xa41d99(0x192,'1Vof')],'parts':[_0x48113d]});}const _0x17f58e={'model':CONFIG[_0xa41d99(0x218,'Q1Vx')],'request':{'contents':_0xe9ad93,'generationConfig':{'thinkingConfig':{'thinkingLevel':_0x2bb2c7[_0xa41d99(0x25d,'&y*o')],'includeThoughts':!![]}},'safetySettings':[{'category':_0x2bb2c7[_0xa41d99(0x242,'z1f4')],'threshold':_0x2bb2c7[_0xa41d99(0x1e2,'I7e5')]},{'category':_0x2bb2c7[_0xa41d99(0x21c,'[ix0')],'threshold':_0x2bb2c7[_0xa41d99(0x223,'RElJ')]},{'category':_0x2bb2c7[_0xa41d99(0x1f8,'O1mK')],'threshold':_0x2bb2c7[_0xa41d99(0x18e,'cjTI')]},{'category':_0x2bb2c7[_0xa41d99(0x1e6,']gqB')],'threshold':_0x2bb2c7[_0xa41d99(0x214,'WF%j')]}],...tools?.[_0xa41d99(0x1ee,'fb2E')]&&{'tools':tools},..._0x2bb2c7[_0xa41d99(0x25a,'CLzw')](_0x504bda,{'systemInstruction':{'role':_0x2bb2c7[_0xa41d99(0x243,'ga6q')],'parts':[{'text':_0x504bda}]}})},'stream':![]},{data:_0x1784ef}=await _0x2b0069[_0xa41d99(0x1c4,'7f0M')](CONFIG[_0xa41d99(0x1a7,'^s]^')],_0x17f58e,{'headers':{...CONFIG[_0xa41d99(0x184,'Qs]s')],'authorization':_0xa41d99(0x25c,'RElJ')+_0x2df274}});if(!_0x1784ef?.[_0xa41d99(0x1eb,'QQFP')]?.[_0xa41d99(0x21d,'RElJ')])throw new Error(_0x2bb2c7[_0xa41d99(0x1cd,'J0zX')]);const _0xe1dc39=_0x1784ef[_0xa41d99(0x227,'h4EN')][-0x1882*-0x1+0x8*0x45e+-0x3b72],_0xec0cc0=_0xe1dc39[_0xa41d99(0x1ed,'VL#^')]?.[_0xa41d99(0x22b,'[ae[')]??[];return{'parts':_0xec0cc0,'candidate':_0xe1dc39,'raw':_0x1784ef};}export async function chat(_0x1a16ea=[],_0x2ec7b9=null){const _0xe8dcb=_0x451dbc,_0x19b41f={'htqRN':function(_0x16f292,_0x4a272a){return _0x16f292(_0x4a272a);}},{parts:_0x30f1d9}=await _0x19b41f[_0xe8dcb(0x232,'7f0M')](callGemini,{'messages':_0x1a16ea,'fileBuffer':_0x2ec7b9});return _0x30f1d9[_0xe8dcb(0x25b,'ZEt4')](_0x440e26=>_0x440e26[_0xe8dcb(0x1d5,'[ix0')]??'')[_0xe8dcb(0x20c,'JfI7')]('');}
|
package/src/tools.js
CHANGED
|
@@ -275,18 +275,6 @@ export const FUNCTION_DECLARATIONS = [
|
|
|
275
275
|
},
|
|
276
276
|
|
|
277
277
|
// ── Real-time ────────────────────────────────────────────────
|
|
278
|
-
{
|
|
279
|
-
name: "web_search",
|
|
280
|
-
description: "Search the web for current, real-time information. Use when the user asks about recent events, news, or anything that requires up-to-date data.",
|
|
281
|
-
parameters: {
|
|
282
|
-
type: "OBJECT",
|
|
283
|
-
properties: {
|
|
284
|
-
query: { type: "STRING", description: "Search query" },
|
|
285
|
-
region: { type: "STRING", description: "Region code e.g. id-id, us-en (default: id-id)" }
|
|
286
|
-
},
|
|
287
|
-
required: ["query"]
|
|
288
|
-
}
|
|
289
|
-
},
|
|
290
278
|
{
|
|
291
279
|
name: "get_weather",
|
|
292
280
|
description: "Get current weather and conditions for any city or location.",
|
|
@@ -666,52 +654,6 @@ export async function executeTool(name, args = {}, { autoApprove = false } = {})
|
|
|
666
654
|
}
|
|
667
655
|
|
|
668
656
|
// ── Real-time ─────────────────────────────────────────
|
|
669
|
-
case "web_search": {
|
|
670
|
-
const q = encodeURIComponent(args.query);
|
|
671
|
-
|
|
672
|
-
// 1. DuckDuckGo Instant Answer API (best for facts/definitions)
|
|
673
|
-
const { stdout: ddg } = await execAsync(
|
|
674
|
-
`curl -sL --max-time 10 -H "User-Agent: Mozilla/5.0" "https://api.duckduckgo.com/?q=${q}&format=json&no_redirect=1&no_html=1&skip_disambig=1"`
|
|
675
|
-
).catch(() => ({ stdout: "" }));
|
|
676
|
-
|
|
677
|
-
// 2. DuckDuckGo Lite HTML (more reliable for general search)
|
|
678
|
-
const { stdout: lite } = await execAsync(
|
|
679
|
-
`curl -sL --max-time 12 -H "User-Agent: Mozilla/5.0 (Linux; Android 10)" -H "Accept-Language: id,en" "https://lite.duckduckgo.com/lite/?q=${q}&kl=id-id" | grep -A1 'class="result-snippet"' | grep -v "result-snippet" | sed 's/<[^>]*>//g' | sed 's/^[[:space:]]*//' | grep -v '^$' | head -12`
|
|
680
|
-
).catch(() => ({ stdout: "" }));
|
|
681
|
-
|
|
682
|
-
// 3. Also grab result titles from lite
|
|
683
|
-
const { stdout: titles } = await execAsync(
|
|
684
|
-
`curl -sL --max-time 12 -H "User-Agent: Mozilla/5.0 (Linux; Android 10)" "https://lite.duckduckgo.com/lite/?q=${q}&kl=id-id" | grep -oP '(?<=<a class="result-link"[^>]*>)[^<]+' | head -8`
|
|
685
|
-
).catch(() => ({ stdout: "" }));
|
|
686
|
-
|
|
687
|
-
let out = "";
|
|
688
|
-
|
|
689
|
-
// Parse instant answer
|
|
690
|
-
try {
|
|
691
|
-
const d = JSON.parse(ddg);
|
|
692
|
-
if (d.AbstractText) out += `📖 ${d.AbstractText}\n → ${d.AbstractURL}\n\n`;
|
|
693
|
-
if (d.Answer) out += `💡 ${d.Answer}\n\n`;
|
|
694
|
-
if (d.Definition) out += `📝 ${d.Definition}\n\n`;
|
|
695
|
-
if (d.RelatedTopics?.length) {
|
|
696
|
-
const related = d.RelatedTopics.slice(0, 4).map(t => t.Text).filter(Boolean);
|
|
697
|
-
if (related.length) out += "Related:\n" + related.map(t => ` · ${t}`).join("\n") + "\n\n";
|
|
698
|
-
}
|
|
699
|
-
} catch {}
|
|
700
|
-
|
|
701
|
-
// Add titles + snippets from lite
|
|
702
|
-
const titleList = titles.trim().split("\n").filter(Boolean);
|
|
703
|
-
const snippetList = lite.trim().split("\n").filter(Boolean);
|
|
704
|
-
if (titleList.length) {
|
|
705
|
-
out += "Search Results:\n";
|
|
706
|
-
titleList.forEach((title, i) => {
|
|
707
|
-
out += ` ${i+1}. ${title.trim()}\n`;
|
|
708
|
-
if (snippetList[i]) out += ` ${snippetList[i].trim()}\n`;
|
|
709
|
-
});
|
|
710
|
-
}
|
|
711
|
-
|
|
712
|
-
return { result: out.trim() || "No results found. Try rephrasing the query." };
|
|
713
|
-
}
|
|
714
|
-
|
|
715
657
|
case "get_weather": {
|
|
716
658
|
const loc = encodeURIComponent(args.location);
|
|
717
659
|
if (args.format === "full") {
|