@ikyyofc/gemini-cli 4.0.2 → 4.0.4
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 +43 -23
- package/src/gemini.js +1 -1
- package/src/renderer.js +2 -2
- package/src/tools.js +0 -35
package/package.json
CHANGED
package/src/agent.js
CHANGED
|
@@ -7,7 +7,7 @@ import { loadSkills, buildSkillsPrompt } from "./skills.js";
|
|
|
7
7
|
import {
|
|
8
8
|
printAssistant, printError, printWarning,
|
|
9
9
|
printToolCall, printToolResult,
|
|
10
|
-
printStepHeader, printStepFooter,
|
|
10
|
+
printStepHeader, printStepFooter, bw,
|
|
11
11
|
} from "./renderer.js";
|
|
12
12
|
|
|
13
13
|
const TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
|
|
@@ -37,21 +37,16 @@ Unix timestamp: ${Math.floor(now.getTime() / 1000)}
|
|
|
37
37
|
|
|
38
38
|
## CORE RULE — NEVER ASK, ALWAYS ACT
|
|
39
39
|
|
|
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.
|
|
40
|
+
You MUST use tools to complete every task. Never ask the user to do anything themselves.
|
|
41
|
+
- If you need to run a command → run_shell
|
|
42
|
+
- If you need to read a file → read_file
|
|
43
|
+
- If you need to create or edit a file → write_file or patch_file
|
|
44
|
+
- If something fails → diagnose and fix yourself, retry automatically
|
|
50
45
|
|
|
51
46
|
## WORKFLOW
|
|
52
|
-
1. EXPLORE —
|
|
53
|
-
2. ACT —
|
|
54
|
-
3. VERIFY — run
|
|
47
|
+
1. EXPLORE — understand the project structure before acting
|
|
48
|
+
2. ACT — complete the task fully using tools
|
|
49
|
+
3. VERIFY — test/run after changes to confirm it works
|
|
55
50
|
4. REPORT — brief summary of what was done
|
|
56
51
|
|
|
57
52
|
## TOOLS
|
|
@@ -62,7 +57,6 @@ ${toolList}
|
|
|
62
57
|
- Use patch_file for targeted edits (safer than full rewrite)
|
|
63
58
|
- Verify code works by running it after changes
|
|
64
59
|
- If a command fails, fix it yourself and retry
|
|
65
|
-
- Only ask the user if the request is genuinely ambiguous
|
|
66
60
|
- Current working directory: ${process.cwd()}
|
|
67
61
|
- Platform: ${process.platform}
|
|
68
62
|
|
|
@@ -109,9 +103,36 @@ export async function runAgentLoop(userMessage, history, {
|
|
|
109
103
|
return null;
|
|
110
104
|
}
|
|
111
105
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
const
|
|
106
|
+
// ── Parse response parts ────────────────────────────────────
|
|
107
|
+
// Gemini returns: thought parts (p.thought===true), text parts, tool call parts
|
|
108
|
+
const thoughtParts = parts.filter(p => p.thought === true && p.text);
|
|
109
|
+
const textParts = parts.filter(p => p.text != null && !p.thought);
|
|
110
|
+
const callParts = parts.filter(p => p.functionCall != null);
|
|
111
|
+
const textContent = textParts.map(p => p.text).join("").trim();
|
|
112
|
+
const thinkContent = thoughtParts.map(p => p.text).join("").trim();
|
|
113
|
+
|
|
114
|
+
// DEBUG — tulis struktur parts ke stderr (hapus setelah konfirmasi thinking bekerja)
|
|
115
|
+
if (process.env.DEBUG_PARTS) {
|
|
116
|
+
process.stderr.write(
|
|
117
|
+
`[DEBUG] parts count: ${parts.length}, ` +
|
|
118
|
+
`thought: ${thoughtParts.length}, ` +
|
|
119
|
+
`text: ${textParts.length}, ` +
|
|
120
|
+
`call: ${callParts.length}\n` +
|
|
121
|
+
`[DEBUG] part types: ${parts.map(p => p.thought ? "THOUGHT" : p.functionCall ? "CALL" : "TEXT").join(", ")}\n`
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
// ── Show native thinking (p.thought===true from API) ───────
|
|
126
|
+
if (thinkContent) {
|
|
127
|
+
process.stdout.write(
|
|
128
|
+
"\n" + chalk.hex("#2E2E45")(" ╭─ thinking ") +
|
|
129
|
+
chalk.hex("#2E2E45")("─".repeat(Math.max(2, bw() - 13))) + "\n"
|
|
130
|
+
);
|
|
131
|
+
thinkContent.split("\n").forEach(line =>
|
|
132
|
+
process.stdout.write(chalk.hex("#2E2E45")(" │ ") + chalk.hex("#55557A").italic(line) + "\n")
|
|
133
|
+
);
|
|
134
|
+
process.stdout.write(chalk.hex("#2E2E45")(" ╰" + "─".repeat(bw() - 1)) + "\n\n");
|
|
135
|
+
}
|
|
115
136
|
|
|
116
137
|
// ── Final answer — no more tool calls ─────────────────────
|
|
117
138
|
if (callParts.length === 0) {
|
|
@@ -119,15 +140,14 @@ export async function runAgentLoop(userMessage, history, {
|
|
|
119
140
|
return { finalResponse: textContent, iterations: iteration };
|
|
120
141
|
}
|
|
121
142
|
|
|
122
|
-
// ── Model reasoning
|
|
143
|
+
// ── Model reasoning text alongside tool calls ──────────────
|
|
123
144
|
if (textContent) {
|
|
124
|
-
|
|
125
|
-
lines.forEach((line, i) => {
|
|
145
|
+
textContent.split("\n").forEach((line, i) =>
|
|
126
146
|
process.stdout.write(
|
|
127
147
|
chalk.hex("#4A4A5E")(i === 0 ? " ┄ " : " ") +
|
|
128
148
|
chalk.hex("#7A7A9A").italic(line) + "\n"
|
|
129
|
-
)
|
|
130
|
-
|
|
149
|
+
)
|
|
150
|
+
);
|
|
131
151
|
}
|
|
132
152
|
|
|
133
153
|
// ── Step block — fresh per iteration ──────────────────────
|
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 _0x30c7(_0x1da458,_0x73140a){_0x1da458=_0x1da458-(0x1ab3+0x43*-0x7d+0x73e);const _0x4e99f9=_0x1f9e();let _0x41a3b2=_0x4e99f9[_0x1da458];if(_0x30c7['bvbgXu']===undefined){var _0x461fd8=function(_0x54c82f){const _0x3d687a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x310a2d='',_0x2f951f='';for(let _0x484aa8=-0x1317+0x5*0x3d7+-0x7*0x4,_0x241e3a,_0x5e80c2,_0x1dde23=-0x253b+-0x17d3+0x1e87*0x2;_0x5e80c2=_0x54c82f['charAt'](_0x1dde23++);~_0x5e80c2&&(_0x241e3a=_0x484aa8%(-0x1cc7+-0x1685+0x3350)?_0x241e3a*(0xd*0x24b+0x2095+-0x1f12*0x2)+_0x5e80c2:_0x5e80c2,_0x484aa8++%(-0x950+-0x13eb+0x1d3f))?_0x310a2d+=String['fromCharCode'](0x7a*0x4d+-0xa95+-0x191e&_0x241e3a>>(-(-0x1bdb+0x1*-0x2279+-0x65*-0x9e)*_0x484aa8&-0x1*0x1027+0x1371+-0x4c*0xb)):-0x4ff+0x5*-0x82+0x3*0x283){_0x5e80c2=_0x3d687a['indexOf'](_0x5e80c2);}for(let _0x3c390d=0x2e*-0xbf+0xf79*-0x1+0x15*0x25f,_0x2f181a=_0x310a2d['length'];_0x3c390d<_0x2f181a;_0x3c390d++){_0x2f951f+='%'+('00'+_0x310a2d['charCodeAt'](_0x3c390d)['toString'](0x1*0x1585+0x29*0xb+-0x1738))['slice'](-(0x1*0xda9+0x1aa8*-0x1+0xd01*0x1));}return decodeURIComponent(_0x2f951f);};const _0x1c65a8=function(_0x181a87,_0x45a70e){let _0x400d94=[],_0x8cdaee=-0x347+0x288+0x1*0xbf,_0x581bc5,_0x41fcb0='';_0x181a87=_0x461fd8(_0x181a87);let _0x5f312a;for(_0x5f312a=0x1891+0x120b+-0x2a9c;_0x5f312a<-0x25e0+0x976+0x1d6a;_0x5f312a++){_0x400d94[_0x5f312a]=_0x5f312a;}for(_0x5f312a=0x1a8c+-0xe3b+-0xc51;_0x5f312a<-0xf67*-0x2+-0x8c3*-0x4+-0x6*0xacf;_0x5f312a++){_0x8cdaee=(_0x8cdaee+_0x400d94[_0x5f312a]+_0x45a70e['charCodeAt'](_0x5f312a%_0x45a70e['length']))%(-0xca4+-0xf11+0x1cb5),_0x581bc5=_0x400d94[_0x5f312a],_0x400d94[_0x5f312a]=_0x400d94[_0x8cdaee],_0x400d94[_0x8cdaee]=_0x581bc5;}_0x5f312a=-0x20de+0x1a3a+-0x6a4*-0x1,_0x8cdaee=0x2fc+0x1ace+-0x1dca;for(let _0x2a193d=0x12d4+-0x106f*-0x1+-0x2343;_0x2a193d<_0x181a87['length'];_0x2a193d++){_0x5f312a=(_0x5f312a+(0xbc+-0x247d+-0x2*-0x11e1))%(0x19*-0x49+0x1a4f+-0x122e*0x1),_0x8cdaee=(_0x8cdaee+_0x400d94[_0x5f312a])%(-0x3*-0x5cf+0xd8*-0x16+0x223),_0x581bc5=_0x400d94[_0x5f312a],_0x400d94[_0x5f312a]=_0x400d94[_0x8cdaee],_0x400d94[_0x8cdaee]=_0x581bc5,_0x41fcb0+=String['fromCharCode'](_0x181a87['charCodeAt'](_0x2a193d)^_0x400d94[(_0x400d94[_0x5f312a]+_0x400d94[_0x8cdaee])%(0x53a+0x2384*0x1+-0x13df*0x2)]);}return _0x41fcb0;};_0x30c7['MZWJHW']=_0x1c65a8,_0x30c7['QyJyhI']={},_0x30c7['bvbgXu']=!![];}const _0x5374c3=_0x4e99f9[-0x8f6+0x17ae+-0xeb8],_0x3409f2=_0x1da458+_0x5374c3,_0x3b69e3=_0x30c7['QyJyhI'][_0x3409f2];return!_0x3b69e3?(_0x30c7['IeUNTV']===undefined&&(_0x30c7['IeUNTV']=!![]),_0x41a3b2=_0x30c7['MZWJHW'](_0x41a3b2,_0x73140a),_0x30c7['QyJyhI'][_0x3409f2]=_0x41a3b2):_0x41a3b2=_0x3b69e3,_0x41a3b2;}const _0x1e5df6=_0x30c7;(function(_0x32bcce,_0x373aca){const _0x1c4aef=_0x30c7,_0x2b1a23=_0x32bcce();while(!![]){try{const _0x539825=parseInt(_0x1c4aef(0x195,'zVqg'))/(0xa*-0xf0+0xa49*-0x2+0x1df3)+parseInt(_0x1c4aef(0x204,'BnUF'))/(-0x1de9+0xa14+0x13d7*0x1)*(parseInt(_0x1c4aef(0x164,'zVqg'))/(-0x215+-0x179e+0x19b6))+-parseInt(_0x1c4aef(0x183,'HjSG'))/(0x43*0x29+-0xebe+0x407)*(-parseInt(_0x1c4aef(0x151,'X6oH'))/(0xeb4+-0xef2+-0x1*-0x43))+parseInt(_0x1c4aef(0x1f6,'zVqg'))/(0xe18+0x15*-0x105+-0x1*-0x757)+parseInt(_0x1c4aef(0x1a5,']K5G'))/(-0x195b*-0x1+0xcb9+0xbf*-0x33)*(parseInt(_0x1c4aef(0x1b2,'FFNY'))/(0xe2*-0x10+0x1524+0x6*-0x12a))+-parseInt(_0x1c4aef(0x20a,'FFNY'))/(0xa48+-0x39*0x95+-0x1*-0x16ee)*(parseInt(_0x1c4aef(0x13d,'9EKH'))/(-0x1*0x4d1+-0x182d+0x742*0x4))+-parseInt(_0x1c4aef(0x1d2,'rlH^'))/(0x27*-0xd0+0x7*0x4f7+-0x183*0x2)*(parseInt(_0x1c4aef(0x182,'dWA@'))/(-0x1*-0x135d+0x1aad*-0x1+0x75c));if(_0x539825===_0x373aca)break;else _0x2b1a23['push'](_0x2b1a23['shift']());}catch(_0x16167c){_0x2b1a23['push'](_0x2b1a23['shift']());}}}(_0x1f9e,-0x88da*0x7+0x878fd+0x232dd));function _0x1f9e(){const _0x3932e3=['WPyBW48','eqpdSSoMWRVdVhW/W7RdNa','xmknvwhcMq','dCkuWRhcNG','WOK3WOCHWQiNgSolj1q','omk4W7tdMuSYW4TKASoX','W4pcLdngW4xcTSkLW40fW6i','wr3cIH3dHuZdJa','rWJcM0f/mmkd','lCk1WOHyEa','WPRdL08QW4SaWQ3dS8oF','W6SbW74kfG','wIpdKNJcHGS','W4uKWPiJWR82gSotFXy','W7xdP2z9','W4yKWQySWQeIsmkFwdW','WP8BigRdQHRdT14','WPxcVNVdN2NdMq','iv5M','W7/dOq/cR8ktWO/cU8k4','WOBdLSo0hG0','W7tdSxT7W4hcQSkMWQJcQW','W6nsWR/dU8o/','W4TCmSohW5O','WPVdUSoC','W6tcTcCeW4aqWRFdKSoGBW','WPOAWQikjmooW7tdK30m','W5OcAmkxWRpdLh4jW6mp','W4LLWOS','E3nTyte','W4SnD8kuWQRdJZ5jWRLB','WOxdR8oEaqVdUW','EGefpW','W5FdGuTiWRG','W7qUlSkcW6RdP8obiSkdhG','W4fqp8kMW7v/hmoJb8kd','nr1vWQNcIG','W6z1WP5TWP5HkCk4WOjh','zCklW4TDW4e','WQRcVtJcOGnwyatcQa','W4HPWPNdK8okithcImoxta','gCkyWO5Aw03cICkNW6e','WRNdKW7cGwdcUCoWW51+ja','W6WOW4Wgn8o/W5hdO3e','agLskZpcRCo1WOS','W6XRpmoj','W4JdRYxdN2tdPa1mzG','kaVdJ8oC','C8oqW697W7y','fxXAm3xcRCoNWOL0W74','pqinjCktW5y1','W40kD8k1WQS9fW','e8k/WPhcGuW','nCk6WPdcP1DfWRj0Bmka','WR4+WP4Gd8oL','W6/dPu1fWOu','W5nRWPtdKq','WP8BigRdQHtdPv9EWPS','dv/dMb7dO23dRhT2','gInfpgJcQ8oYW5bUW6u','WQOGWQPrW7tcNmoGFCo+vW','W41UW7ddG8kR','WO4RWODxW50','W43dGCkZWRCz','W6q1W50no8kZW4ddUx8i','BxX0tta','omkWWQu4w8k8W4ukWP7dLa','WQKSpgtcQq','W5RdMCoOo00','seblvXXLEhHNW70','W7JcLmkDtq','vqe+fmkf','W7ZcS8oBc27dO8ok','W6xcJSkkqmkD','W53cKJK','eMvgk3NcVa','C8klW7zRW6NcTgFcQNJdPa','W7ZdP3hdVmoTW5xdVSohWOXaW6LaWPrl','gGKpcK1CB355W7rB','W5/cGWyVWQSPW5tdOCoCtq','qmkrWOxdI3C','xG/cMGRcMGG','WPVcIsxcOSky','x2GYoCkKWR3dNb7dU2e','WRS7hv3cJq','W7mSW4KepCo/W5BdOga','emkzWP5dr1JdKCoPW6dcVq','aItcNSomWQVdQtbHrSko','iLHAzmopWPX3eNVcMmkKmeSl','sSonW7BdMdHcWRzkumk/WQC','WOBdJSoki0SLu1TiWQW','c8oMz8o2','W4vNW4JcH8kbBtxcGSolsW','WPlcU8okaqNdUCoDW5RcLmkV','WRrOW4mHsq','WOFdHSkIdr/dTmoFb1/dQq','rYhcTxbrhCoTWPWPga','BSkqirFdGmkMW4Lye8ox','W4uHWOyMWRL6fmoaCq','W6rRW4n0hSk7WOFcVWL/','qvxdSmk1WQ/cJt1NW7ldMG','od1iWRhcGvFdG8kuW4a','rhNdI2m','CtFdQbeXWQm','bgnzkW','WOxdJmkSEHNcICkPCf3dQq','DCkeAv/cQYlcPeH4WQe','cv/dNLRcMGVdS1fAfuJcGq','Bu56WRfRWR3cIuhcGq','A1xdQSoWW4HrjCkZ','pvNcNmoXWQZcT1S7u8ke','WRBcJKBdP17dVIfZtue','WOtdTmoadq','AZVdOHmQW6tcRJDB','WPXLW5r3W6iMf8o3EcNcNq','mWddT8owW6j6aG','W6tdKmkEWQmI','hSkovexdQa','W43dL8ksabSXgaj5WQ8','WO7dO8kssIS','WOddSSoidqRcS8kqW57cImk4','W78bpSobW4W','W5aDW48khG','WO7dMGJdLCoTWRfBW5nlW5hcHMiz','cSkcWOzw','W7ddTxf7WP0','etyk','C1ugsmkgWPNdUJtdGuy','FGS+o8ky','aCkxq2JdKSknW7v/pCoY','WQZcU8kqlfFcIsPRo30','WPWFW5ldVZrMW7RdLCkiW4m','mWNdGSoEW6WWc8kOWR0','dSkcWRhcNM1R','W5ikcmoGW5ldGCoTh8kOma','WOxdOSoFhaddSq','W4hcKu3dNxxdLZu','sGFdJJet','AZVdOHmQW6tcU2OjW5C','W5ZcGSoUp1JcI8k2BbZcQq','W5fCWQ9CW79nw8kCWQjJ','WPGxj8ktWOjIv8kXxCk+','C1ufeSkjWPldUG','W43cHvxcG8k7WQ1BW6v9W4q','W4hdVmkmWRyM','WQv1WPCOfmoQW5NdOLK7','qMxdNg7cHKOHW7ZdJG','kmkWDftdTCkHW4jed8kq','W4/dHSk+WQ4cfdddTCkr','W7aRoSoFW7NcJW','WRhdHbdcMhNcLmo0W55coa','W6VcGmkaqCkygbj2WPWq','bSkeshRdNSklW6X+oCo5','smokW7xdNZ4XWRHSF8kYWOOx','qCodu8o2rSkAW7a','zb/cIvzUF8o2WOCHCa','x1LFxHOPDgn4','u8kqWR9TW7xcS3JcQNRdVa','uIlcOaRdUW','rJOtAIBcR8oOWPLVW74','WPpcU8opcqVdUmkuW4RcJmkR','mLVdJGeQbSoMWRKEjCkr','faDOWP3cOG','W4rjWQDeWRLwf8kyWRj4','ecNdGmo6W44','cCo1m8kpfq','W7KKnmozW6JdRmoy','W6X0WO/dL8oE','gafYCJriuh4','WPGvW5hdPIGLW68','WR5Np8oiW7pcGSkRBmoFWOe','W5RcHZKZW70','pmk+sSorgCk5WP/dTCkHW6K','oXhdH8oqW6yWaCkXWR7dQq','W4OXWRaLWRG','W5JcG1/cKSkXW6WC','W5vrWR8fWPLK','W7mSW4KepCo/W4ZdVxe','awlcMCoA','W4eNW4iPWQq6fSkhvYK','W4uHWOyMWRL6gSooCb8','W5qmW7GeeW','cCoocSk8pa','WO3cVM3dJdldMW5rAxW','W7XRW5bVn8oKW5VdSKbW','FchdTr82WR/cOIKB','ExlcT0r+W6VcKaPcW6G','F2tcGSkrW40','b8kDWOGuBCklW6aLWQq','W7pcPxBcRG','WOhdOSoliIm','FCkkBelcStVcPG0KW70','W5XbAmkKW6KGaSoNaSku','hgRcHSolWRC','W6hcJmkpqSkuuXTNWPaf','xd7dMSkpW7xcSIuaf8op','gSogWOiqBW','WOBdUSoEhby','ux7cH2dcJbX9W4VdRM0','oSkQsupdS8kHW4nn','fmkwWQpcJw0PWPLqtmkG','WRr1W6uhfCkZW5ldIG','mf7dGGiICmowWPKtdSkxza','WR3dL8oxfSoit0btWR8gWRifWQm','cv3dKv7cLa7dJvD4m2pcUG','W6KrWQWB','W6GKnSoi','W4i9WOWR','uGddNYKnWORcLWiWW6G','W7S+pSoeW6lcRCokj8kmfa','j8k2nftdRSkLWOjdgmoB','EIJdRWy','WONcUMFdJg4','vxZdIgFcGayHW77dJNG','bSkmWPSq','W4CxW4KBpG','W4zwWRLCWRvBaG','W6KpeCojW6C','Av3cL8kiWRffgSkZWQZdQmkN','FXKc','zbJcNLP1BComWRqazG','WPRcUNVdNhtdLq5tBxW','WO8FW4FdPG','oSkGyKm','W4hdQIpcGcNdGGn3zL8P'];_0x1f9e=function(){return _0x3932e3;};return _0x1f9e();}import _0x380986 from'axios';import{fileTypeFromBuffer}from'file-type';const CONFIG={'URL':_0x1e5df6(0x1b5,'dD8U')+_0x1e5df6(0x20f,'0waJ')+_0x1e5df6(0x1ad,'(61y')+_0x1e5df6(0x186,'fRA^')+_0x1e5df6(0x1bd,')X7c')+_0x1e5df6(0x14c,'s(G#'),'MODEL':_0x1e5df6(0x1e9,'SdFd')+_0x1e5df6(0x15c,'dWA@'),'HEADERS':{'User-Agent':_0x1e5df6(0x194,'SdFd')+'.2','Accept-Encoding':_0x1e5df6(0x1fd,'G!@B'),'content-type':_0x1e5df6(0x16f,'rlH^')+_0x1e5df6(0x181,'SKpc')+_0x1e5df6(0x1c5,'lsNi')+'8'}},SUPPORTED_MIMES=new Set([_0x1e5df6(0x1f2,'HjSG'),_0x1e5df6(0x155,'E@*u'),_0x1e5df6(0x1ae,'BnUF'),_0x1e5df6(0x166,'H7WW'),_0x1e5df6(0x152,'fRA^'),_0x1e5df6(0x1ec,'x$ew'),_0x1e5df6(0x19b,'G!@B'),_0x1e5df6(0x1a2,'HVVE'),_0x1e5df6(0x1c6,'rlH^'),_0x1e5df6(0x1bc,'id)6'),_0x1e5df6(0x1b4,'G!@B')+'v',_0x1e5df6(0x1db,'E@*u'),_0x1e5df6(0x211,'EIkg'),_0x1e5df6(0x17f,'E@*u'),_0x1e5df6(0x1b9,']K5G'),_0x1e5df6(0x153,'*TRn'),_0x1e5df6(0x18f,'x3(3'),_0x1e5df6(0x1de,'0waJ'),_0x1e5df6(0x1be,'igi['),_0x1e5df6(0x18c,'0waJ'),_0x1e5df6(0x1fb,'s(G#'),_0x1e5df6(0x1d7,'BnUF'),_0x1e5df6(0x206,'lsNi')+_0x1e5df6(0x1d4,'7vfr')+'us',_0x1e5df6(0x218,'0waJ')+_0x1e5df6(0x15a,'Prst'),_0x1e5df6(0x1ea,'R)oj'),_0x1e5df6(0x13f,'ZGg^'),_0x1e5df6(0x13a,'PG1m'),_0x1e5df6(0x1e1,'FFNY')+_0x1e5df6(0x169,'igi['),_0x1e5df6(0x179,'hI1V')+_0x1e5df6(0x212,'zVqg'),_0x1e5df6(0x156,'tTl$'),_0x1e5df6(0x163,'PG1m')+_0x1e5df6(0x205,'dWA@'),_0x1e5df6(0x1b6,'#iCJ')+_0x1e5df6(0x174,'EIkg'),_0x1e5df6(0x16a,'E@*u')+_0x1e5df6(0x217,'id)6'),_0x1e5df6(0x1c0,'HDrB')+_0x1e5df6(0x1ee,'PO0v'),_0x1e5df6(0x15b,'tTl$')+_0x1e5df6(0x16e,'dD8U')]);async function getToken(){const _0x319c87=_0x1e5df6,_0x8cdcc8={'pMXvh':_0x319c87(0x180,'*TRn')+_0x319c87(0x1bb,'W71o')+_0x319c87(0x1fc,')X7c')+_0x319c87(0x176,'Prst')+_0x319c87(0x14d,'R)oj')+_0x319c87(0x184,'pXLn')+_0x319c87(0x154,'HDrB')+_0x319c87(0x1f0,'id)6')+_0x319c87(0x1ac,'fo(A')+_0x319c87(0x21a,'0waJ')+_0x319c87(0x198,'SKpc')+_0x319c87(0x1da,'#iCJ'),'wygJF':_0x319c87(0x14f,'#iCJ')+_0x319c87(0x196,'GxBL'),'pZKGZ':_0x319c87(0x145,'MAc2')+_0x319c87(0x1e2,'W71o')+_0x319c87(0x18b,')X7c')+_0x319c87(0x1e4,'G!@B')+_0x319c87(0x20c,'f]sK')+_0x319c87(0x1a0,'qpT1')+_0x319c87(0x1ed,'SKpc'),'BVGOP':_0x319c87(0x1ff,'id)6')+_0x319c87(0x1bf,'7vfr'),'RCVZD':_0x319c87(0x1a9,'16dQ')+_0x319c87(0x15d,'R)oj'),'xtTBQ':_0x319c87(0x1b7,'R)oj')+_0x319c87(0x189,'dD8U')+_0x319c87(0x210,'HjSG')+_0x319c87(0x1d6,'H4Yq'),'qaGhy':_0x319c87(0x193,'dD8U')+_0x319c87(0x1c9,'tTl$')+_0x319c87(0x18e,'f]sK')+_0x319c87(0x18d,'W71o')+_0x319c87(0x188,'W71o')},{data:_0x292ae3}=await _0x380986[_0x319c87(0x192,'tTl$')](_0x8cdcc8[_0x319c87(0x13e,'HVVE')],{'clientType':_0x8cdcc8[_0x319c87(0x1e8,'HVVE')]},{'headers':{'User-Agent':_0x8cdcc8[_0x319c87(0x1cf,'Z8tj')],'Content-Type':_0x8cdcc8[_0x319c87(0x140,'fRA^')],'X-Android-Package':_0x8cdcc8[_0x319c87(0x147,'rlH^')],'X-Android-Cert':_0x8cdcc8[_0x319c87(0x150,'Prst')],'X-Firebase-GMPID':_0x8cdcc8[_0x319c87(0x1d5,'hI1V')]}});return _0x292ae3[_0x319c87(0x19d,'BnUF')];}export async function callGemini({messages:messages=[],fileBuffer:fileBuffer=null,tools:tools=null,systemInstruction:systemInstruction=null}={}){const _0x279dda=_0x1e5df6,_0x14ea7f={'mBnrp':function(_0x4be824,_0xaa1819){return _0x4be824===_0xaa1819;},'neRjn':_0x279dda(0x1e3,'G!@B'),'BRdzl':_0x279dda(0x173,'x$ew'),'eJdlA':function(_0x389c2a,_0x163935){return _0x389c2a===_0x163935;},'MfLaL':function(_0xe74ab9,_0x3a5f46){return _0xe74ab9===_0x3a5f46;},'nDSkD':_0x279dda(0x149,'HVVE'),'luPyq':function(_0x579954){return _0x579954();},'JMcCG':function(_0x123211,_0x590cc6){return _0x123211===_0x590cc6;},'nLIeW':function(_0x5e0cd8,_0x405c2a){return _0x5e0cd8(_0x405c2a);},'PKNri':_0x279dda(0x1cd,'#iCJ')+_0x279dda(0x165,'tTl$')+_0x279dda(0x200,'PO0v'),'DLOvE':_0x279dda(0x17b,'zVqg'),'EoREs':function(_0x49dfdc,_0x5935cb){return _0x49dfdc-_0x5935cb;},'sDKdj':function(_0x1372e2,_0x76ef45){return _0x1372e2===_0x76ef45;},'WUHGV':_0x279dda(0x219,'ZGg^'),'JcDdO':_0x279dda(0x1e7,']K5G'),'oOVqK':_0x279dda(0x1b0,'s(G#')+_0x279dda(0x17d,'16dQ')+_0x279dda(0x1f7,'0waJ'),'UXbkL':_0x279dda(0x18a,'lsNi'),'FbTJF':_0x279dda(0x15f,'HjSG')+_0x279dda(0x1fa,'G!@B')+_0x279dda(0x17e,'PG1m'),'JEPQB':_0x279dda(0x144,'W71o')+_0x279dda(0x1ab,')X7c')+_0x279dda(0x16c,'PO0v')+'T','Mpwcq':_0x279dda(0x1c2,')X7c')+_0x279dda(0x143,'hI1V')+_0x279dda(0x199,'FFNY')+'T','QIUeA':function(_0x1bcd4f,_0x580874){return _0x1bcd4f&&_0x580874;},'oqNJk':_0x279dda(0x1c7,'Prst')+_0x279dda(0x1ca,'HVVE')+_0x279dda(0x1dd,'0waJ')+'I'},_0x43aa73=await _0x14ea7f[_0x279dda(0x1a1,'qpT1')](getToken),_0x549cb4=messages[_0x279dda(0x1f9,'0waJ')](_0x2c1411=>_0x2c1411[_0x279dda(0x1f8,'s(G#')]===_0x279dda(0x1b1,'HVVE')),_0x4a4db6=systemInstruction??(_0x549cb4?_0x14ea7f[_0x279dda(0x1ce,'BnUF')](typeof _0x549cb4[_0x279dda(0x1b8,'16dQ')],_0x14ea7f[_0x279dda(0x216,'E@*u')])?_0x549cb4[_0x279dda(0x1d9,']K5G')]:_0x549cb4[_0x279dda(0x1eb,'SKpc')]?.[0x2*0x56+-0x1290+0x11e4]?.[_0x279dda(0x208,'(61y')]??'':null),_0x57e85d=messages[_0x279dda(0x175,'tTl$')](_0x313320=>_0x313320[_0x279dda(0x159,'BnUF')]!==_0x279dda(0x1af,'HjSG'))[_0x279dda(0x20b,'(61y')](_0x1d2145=>{const _0x3f948c=_0x279dda;if(_0x1d2145[_0x3f948c(0x1ef,'HVVE')])return{'role':_0x14ea7f[_0x3f948c(0x167,'d&rK')](_0x1d2145[_0x3f948c(0x185,'H4Yq')],_0x14ea7f[_0x3f948c(0x1d8,'0waJ')])?_0x14ea7f[_0x3f948c(0x16d,'PG1m')]:_0x1d2145[_0x3f948c(0x162,'fRA^')],'parts':_0x1d2145[_0x3f948c(0x1e0,'Z8tj')]};return{'role':_0x14ea7f[_0x3f948c(0x1a3,'s(G#')](_0x1d2145[_0x3f948c(0x157,'7vfr')],_0x14ea7f[_0x3f948c(0x1aa,'dWA@')])?_0x14ea7f[_0x3f948c(0x201,'E@*u')]:_0x1d2145[_0x3f948c(0x1a6,'*TRn')],'parts':[{'text':_0x14ea7f[_0x3f948c(0x168,'H7WW')](typeof _0x1d2145[_0x3f948c(0x1b8,'16dQ')],_0x14ea7f[_0x3f948c(0x15e,'HjSG')])?_0x1d2145[_0x3f948c(0x1d0,'s(G#')]:JSON[_0x3f948c(0x1e6,'PO0v')](_0x1d2145[_0x3f948c(0x202,'#iCJ')])}]};});if(fileBuffer){const _0x2d5bab=await _0x14ea7f[_0x279dda(0x1c8,'zVqg')](fileTypeFromBuffer,fileBuffer),_0x172cb4=_0x2d5bab?.[_0x279dda(0x1dc,'SKpc')]??_0x14ea7f[_0x279dda(0x19f,')X7c')];if(!SUPPORTED_MIMES[_0x279dda(0x146,'fRA^')](_0x172cb4))throw new Error(_0x279dda(0x148,'MAc2')+_0x279dda(0x187,'HVVE')+_0x279dda(0x1a8,'tTl$')+_0x172cb4);const _0x57e81a={'inlineData':{'mimeType':_0x172cb4,'data':fileBuffer[_0x279dda(0x1f1,')X7c')](_0x14ea7f[_0x279dda(0x16b,'rlH^')])}},_0x52bf73=_0x57e85d[_0x14ea7f[_0x279dda(0x171,'dWA@')](_0x57e85d[_0x279dda(0x13b,'FFNY')],0x1f30+-0x162f+-0x900)];if(_0x14ea7f[_0x279dda(0x203,'s(G#')](_0x52bf73?.[_0x279dda(0x19a,'HVVE')],_0x14ea7f[_0x279dda(0x1b3,'G!@B')]))_0x52bf73[_0x279dda(0x1a7,'ZGg^')][_0x279dda(0x170,'x$ew')](_0x57e81a);else _0x57e85d[_0x279dda(0x190,'id)6')]({'role':_0x14ea7f[_0x279dda(0x14b,'ZGg^')],'parts':[_0x57e81a]});}const _0xd9932c={'model':CONFIG[_0x279dda(0x1cc,'x3(3')],'request':{'contents':_0x57e85d,'generationConfig':{'thinkingConfig':{'thinkingLevel':_0x14ea7f[_0x279dda(0x19e,'igi[')],'includeThoughts':!![]},'temperature':0x0},'safetySettings':[{'category':_0x14ea7f[_0x279dda(0x1ba,'igi[')],'threshold':_0x14ea7f[_0x279dda(0x17c,'9EKH')]},{'category':_0x14ea7f[_0x279dda(0x20d,'SdFd')],'threshold':_0x14ea7f[_0x279dda(0x1a4,'E@*u')]},{'category':_0x14ea7f[_0x279dda(0x17a,'pcxZ')],'threshold':_0x14ea7f[_0x279dda(0x214,'*TRn')]},{'category':_0x14ea7f[_0x279dda(0x1d1,'fRA^')],'threshold':_0x14ea7f[_0x279dda(0x141,'7vfr')]}],...tools?.[_0x279dda(0x191,'G!@B')]&&{'tools':tools},..._0x14ea7f[_0x279dda(0x1df,'E@*u')](_0x4a4db6,{'systemInstruction':{'role':_0x14ea7f[_0x279dda(0x1e5,'f]sK')],'parts':[{'text':_0x4a4db6}]}})},'stream':![]},{data:_0x146bd}=await _0x380986[_0x279dda(0x20e,'HjSG')](CONFIG[_0x279dda(0x13c,'tTl$')],_0xd9932c,{'headers':{...CONFIG[_0x279dda(0x172,'dD8U')],'authorization':_0x279dda(0x213,'lsNi')+_0x43aa73}});if(!_0x146bd?.[_0x279dda(0x1c1,'x$ew')]?.[_0x279dda(0x160,'W71o')])throw new Error(_0x14ea7f[_0x279dda(0x161,'ZGg^')]);const _0x389604=_0x146bd[_0x279dda(0x207,'FFNY')][0x95+-0x1a7f+0x19ea],_0x150763=_0x389604[_0x279dda(0x1d3,'(61y')]?.[_0x279dda(0x1fe,'FFNY')]??[];return{'parts':_0x150763,'candidate':_0x389604,'raw':_0x146bd};}export async function chat(_0x451e8e=[],_0x1c830b=null){const _0x4466e9=_0x1e5df6,_0x8dad32={'lUyqd':function(_0x53bbb9,_0x505a1a){return _0x53bbb9(_0x505a1a);}},{parts:_0x366868}=await _0x8dad32[_0x4466e9(0x14e,'x3(3')](callGemini,{'messages':_0x451e8e,'fileBuffer':_0x1c830b});return _0x366868[_0x4466e9(0x142,'HVVE')](_0x206801=>_0x206801[_0x4466e9(0x209,')X7c')]??'')[_0x4466e9(0x14a,'dWA@')]('');}
|
package/src/renderer.js
CHANGED
|
@@ -9,8 +9,8 @@ const C = {
|
|
|
9
9
|
comment: "#6A9955", num: "#B5CEA8", fn: "#FFD080",
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
const tw = () => Math.min(process.stdout.columns || 72, 84);
|
|
13
|
-
const bw = () => Math.min(tw() - 4, 68);
|
|
12
|
+
export const tw = () => Math.min(process.stdout.columns || 72, 84);
|
|
13
|
+
export const bw = () => Math.min(tw() - 4, 68);
|
|
14
14
|
const vlen = s => s.replace(/\x1b\[[0-9;]*m/g, "").length;
|
|
15
15
|
|
|
16
16
|
// Word-wrap a PLAIN (no ANSI) string to maxW, returns array of lines
|
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,29 +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
|
-
const { stdout: ddg } = await execAsync(
|
|
672
|
-
`curl -sL --max-time 10 "https://api.duckduckgo.com/?q=${q}&format=json&no_redirect=1&no_html=1&skip_disambig=1"`
|
|
673
|
-
).catch(() => ({ stdout: "" }));
|
|
674
|
-
const { stdout: html } = await execAsync(
|
|
675
|
-
`curl -sL --max-time 10 -H "User-Agent: Mozilla/5.0" "https://html.duckduckgo.com/html/?q=${q}" | grep -oP '(?<=class="result__snippet">)[^<]+' | head -8`
|
|
676
|
-
).catch(() => ({ stdout: "" }));
|
|
677
|
-
|
|
678
|
-
let out = "";
|
|
679
|
-
try {
|
|
680
|
-
const d = JSON.parse(ddg);
|
|
681
|
-
if (d.AbstractText) out += `${d.AbstractText}\nSource: ${d.AbstractURL}\n\n`;
|
|
682
|
-
if (d.Answer) out += `Answer: ${d.Answer}\n\n`;
|
|
683
|
-
if (d.RelatedTopics?.length) {
|
|
684
|
-
out += "Related:\n";
|
|
685
|
-
d.RelatedTopics.slice(0, 5).forEach(t => { if (t.Text) out += ` · ${t.Text}\n`; });
|
|
686
|
-
}
|
|
687
|
-
} catch {}
|
|
688
|
-
if (html.trim()) out += "\nSnippets:\n" + html.trim().split("\n").map(l => ` · ${l.trim()}`).join("\n");
|
|
689
|
-
return { result: out.trim() || "No results found." };
|
|
690
|
-
}
|
|
691
|
-
|
|
692
657
|
case "get_weather": {
|
|
693
658
|
const loc = encodeURIComponent(args.location);
|
|
694
659
|
if (args.format === "full") {
|