@quukk/opencode-clawmessenger 0.3.0 → 1.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/README.md +71 -623
- package/bin/opencode-clawmessenger +2 -2
- package/bin/opencode-clawmessenger-setup +5 -5
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +1 -288
- package/dist/core/auto-register.d.ts +0 -1
- package/dist/core/auto-register.js +1 -174
- package/dist/core/auto-serve.d.ts +13 -0
- package/dist/core/auto-serve.js +1 -0
- package/dist/core/config.d.ts +2 -3
- package/dist/core/config.js +1 -80
- package/dist/core/daemon.d.ts +0 -1
- package/dist/core/daemon.js +1 -77
- package/dist/core/dedup.d.ts +0 -1
- package/dist/core/dedup.js +1 -25
- package/dist/core/hook-manager.d.ts +0 -1
- package/dist/core/hook-manager.js +1 -33
- package/dist/core/logger.d.ts +0 -1
- package/dist/core/logger.js +1 -49
- package/dist/core/mac-address.d.ts +0 -1
- package/dist/core/mac-address.js +1 -43
- package/dist/core/message-handler.d.ts +0 -1
- package/dist/core/message-handler.js +1 -988
- package/dist/core/ops-assistant.d.ts +0 -1
- package/dist/core/ops-assistant.js +1 -270
- package/dist/core/qr-crypto.d.ts +0 -1
- package/dist/core/qr-crypto.js +1 -66
- package/dist/core/session-manager.d.ts +0 -1
- package/dist/core/session-manager.js +1 -144
- package/dist/core/types.d.ts +1 -2
- package/dist/core/types.js +1 -26
- package/dist/index.d.ts +0 -1
- package/dist/index.js +1 -16
- package/dist/openclaw/client.d.ts +0 -1
- package/dist/openclaw/client.js +1 -494
- package/dist/opencode/client.d.ts +0 -1
- package/dist/opencode/client.js +1 -279
- package/dist/opencode/event-handler.d.ts +0 -1
- package/dist/opencode/event-handler.js +1 -467
- package/dist/plugin.d.ts +0 -1
- package/dist/plugin.js +1 -148
- package/dist/rongcloud/client.d.ts +0 -1
- package/dist/rongcloud/client.js +1 -292
- package/dist/rongcloud/env-polyfill.d.ts +0 -1
- package/dist/rongcloud/env-polyfill.js +1 -107
- package/dist/rongcloud/server-api.d.ts +0 -1
- package/dist/rongcloud/server-api.js +1 -157
- package/dist/standalone.d.ts +0 -1
- package/dist/standalone.js +1 -229
- package/dist/types/plugin.d.ts +0 -1
- package/dist/types/plugin.js +1 -2
- package/dist/websocket/client.d.ts +0 -1
- package/dist/websocket/client.js +1 -88
- package/dist/websocket/server-client.d.ts +0 -1
- package/dist/websocket/server-client.js +1 -98
- package/package.json +83 -81
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/core/auto-register.d.ts.map +0 -1
- package/dist/core/auto-register.js.map +0 -1
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js.map +0 -1
- package/dist/core/daemon.d.ts.map +0 -1
- package/dist/core/daemon.js.map +0 -1
- package/dist/core/dedup.d.ts.map +0 -1
- package/dist/core/dedup.js.map +0 -1
- package/dist/core/hook-manager.d.ts.map +0 -1
- package/dist/core/hook-manager.js.map +0 -1
- package/dist/core/logger.d.ts.map +0 -1
- package/dist/core/logger.js.map +0 -1
- package/dist/core/mac-address.d.ts.map +0 -1
- package/dist/core/mac-address.js.map +0 -1
- package/dist/core/message-handler.d.ts.map +0 -1
- package/dist/core/message-handler.js.map +0 -1
- package/dist/core/ops-assistant.d.ts.map +0 -1
- package/dist/core/ops-assistant.js.map +0 -1
- package/dist/core/qr-crypto.d.ts.map +0 -1
- package/dist/core/qr-crypto.js.map +0 -1
- package/dist/core/session-manager.d.ts.map +0 -1
- package/dist/core/session-manager.js.map +0 -1
- package/dist/core/types.d.ts.map +0 -1
- package/dist/core/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/openclaw/client.d.ts.map +0 -1
- package/dist/openclaw/client.js.map +0 -1
- package/dist/opencode/client.d.ts.map +0 -1
- package/dist/opencode/client.js.map +0 -1
- package/dist/opencode/event-handler.d.ts.map +0 -1
- package/dist/opencode/event-handler.js.map +0 -1
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js.map +0 -1
- package/dist/rongcloud/client.d.ts.map +0 -1
- package/dist/rongcloud/client.js.map +0 -1
- package/dist/rongcloud/env-polyfill.d.ts.map +0 -1
- package/dist/rongcloud/env-polyfill.js.map +0 -1
- package/dist/rongcloud/server-api.d.ts.map +0 -1
- package/dist/rongcloud/server-api.js.map +0 -1
- package/dist/standalone.d.ts.map +0 -1
- package/dist/standalone.js.map +0 -1
- package/dist/types/plugin.d.ts.map +0 -1
- package/dist/types/plugin.js.map +0 -1
- package/dist/websocket/client.d.ts.map +0 -1
- package/dist/websocket/client.js.map +0 -1
- package/dist/websocket/server-client.d.ts.map +0 -1
- package/dist/websocket/server-client.js.map +0 -1
|
@@ -1,270 +1 @@
|
|
|
1
|
-
import { spawn } from 'child_process';
|
|
2
|
-
import { createLogger } from './logger.js';
|
|
3
|
-
import { join, dirname } from 'path';
|
|
4
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
5
|
-
import { homedir } from 'os';
|
|
6
|
-
const log = createLogger('OpsAssistant');
|
|
7
|
-
export class OpsAssistantClient {
|
|
8
|
-
constructor(config) {
|
|
9
|
-
this.sessions = new Map();
|
|
10
|
-
this.systemPrompt = null;
|
|
11
|
-
this.activeProcesses = new Map();
|
|
12
|
-
this.processQueue = new Map();
|
|
13
|
-
this.directory = config.directory;
|
|
14
|
-
this.opencodeUrl = config.opencodeUrl || 'http://127.0.0.1:19877';
|
|
15
|
-
this.timeout = config.timeout || 60000;
|
|
16
|
-
this.sessionFile = config.sessionFile || join(homedir(), '.config', 'opencode', 'ops-assistant-sessions.json');
|
|
17
|
-
this.systemPrompt = this.loadSystemPrompt();
|
|
18
|
-
this.loadSessions();
|
|
19
|
-
}
|
|
20
|
-
loadSystemPrompt() {
|
|
21
|
-
const promptPath = join(this.directory, '.opencode', 'prompt.md');
|
|
22
|
-
if (existsSync(promptPath)) {
|
|
23
|
-
try {
|
|
24
|
-
const content = readFileSync(promptPath, 'utf-8');
|
|
25
|
-
if (content.trim().length > 0) {
|
|
26
|
-
log.info({ path: promptPath, length: content.length }, 'Loaded ops system prompt');
|
|
27
|
-
return content.trim();
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
catch (err) {
|
|
31
|
-
log.warn({ err, path: promptPath }, 'Failed to load ops system prompt');
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
log.warn({ path: promptPath }, 'Ops system prompt not found');
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
loadSessions() {
|
|
38
|
-
try {
|
|
39
|
-
if (existsSync(this.sessionFile)) {
|
|
40
|
-
const data = JSON.parse(readFileSync(this.sessionFile, 'utf-8'));
|
|
41
|
-
if (data.sessions && typeof data.sessions === 'object') {
|
|
42
|
-
for (const [key, value] of Object.entries(data.sessions)) {
|
|
43
|
-
this.sessions.set(key, value);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
log.info({ count: this.sessions.size }, 'Loaded ops assistant sessions');
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
catch (err) {
|
|
50
|
-
log.warn({ err }, 'Failed to load ops sessions');
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
saveSessions() {
|
|
54
|
-
try {
|
|
55
|
-
const dir = dirname(this.sessionFile);
|
|
56
|
-
if (!existsSync(dir))
|
|
57
|
-
mkdirSync(dir, { recursive: true });
|
|
58
|
-
const data = { sessions: Object.fromEntries(this.sessions) };
|
|
59
|
-
writeFileSync(this.sessionFile, JSON.stringify(data, null, 2));
|
|
60
|
-
}
|
|
61
|
-
catch (err) {
|
|
62
|
-
log.warn({ err }, 'Failed to save ops sessions');
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
async sendMessage(chatId, message) {
|
|
66
|
-
// 如果该 chatId 正在处理中,加入队列等待
|
|
67
|
-
if (this.activeProcesses.get(chatId)) {
|
|
68
|
-
log.info({ chatId }, 'Ops assistant busy, queuing message');
|
|
69
|
-
return new Promise((resolve, reject) => {
|
|
70
|
-
if (!this.processQueue.has(chatId)) {
|
|
71
|
-
this.processQueue.set(chatId, []);
|
|
72
|
-
}
|
|
73
|
-
// 排队请求设置 5 分钟超时(足够长)
|
|
74
|
-
const timeoutId = setTimeout(() => {
|
|
75
|
-
const queue = this.processQueue.get(chatId);
|
|
76
|
-
if (queue) {
|
|
77
|
-
const idx = queue.findIndex(item => item.resolve === resolve);
|
|
78
|
-
if (idx > -1)
|
|
79
|
-
queue.splice(idx, 1);
|
|
80
|
-
}
|
|
81
|
-
reject(new Error('Ops assistant queue timeout'));
|
|
82
|
-
}, 300000);
|
|
83
|
-
const wrappedResolve = (value) => {
|
|
84
|
-
clearTimeout(timeoutId);
|
|
85
|
-
resolve(value);
|
|
86
|
-
};
|
|
87
|
-
const wrappedReject = (reason) => {
|
|
88
|
-
clearTimeout(timeoutId);
|
|
89
|
-
reject(reason);
|
|
90
|
-
};
|
|
91
|
-
this.processQueue.get(chatId).push({
|
|
92
|
-
message,
|
|
93
|
-
resolve: wrappedResolve,
|
|
94
|
-
reject: wrappedReject
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
return this._doSendMessage(chatId, message);
|
|
99
|
-
}
|
|
100
|
-
async _doSendMessage(chatId, message, isRetry = false) {
|
|
101
|
-
this.activeProcesses.set(chatId, true);
|
|
102
|
-
try {
|
|
103
|
-
const result = await this._executeOpencode(chatId, message);
|
|
104
|
-
// 处理队列中的下一条消息
|
|
105
|
-
setImmediate(() => this._processQueue(chatId));
|
|
106
|
-
return result;
|
|
107
|
-
}
|
|
108
|
-
catch (err) {
|
|
109
|
-
log.warn({ chatId, err: err.message, isRetry }, 'Ops assistant failed');
|
|
110
|
-
if (!isRetry) {
|
|
111
|
-
// 清除可能损坏的 session,重试一次
|
|
112
|
-
log.info({ chatId }, 'Clearing session and retrying');
|
|
113
|
-
this.sessions.delete(chatId);
|
|
114
|
-
this.saveSessions();
|
|
115
|
-
try {
|
|
116
|
-
const result = await this._executeOpencode(chatId, message);
|
|
117
|
-
setImmediate(() => this._processQueue(chatId));
|
|
118
|
-
return result;
|
|
119
|
-
}
|
|
120
|
-
catch (retryErr) {
|
|
121
|
-
setImmediate(() => this._processQueue(chatId));
|
|
122
|
-
throw retryErr;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
// 处理队列中的下一条消息
|
|
126
|
-
setImmediate(() => this._processQueue(chatId));
|
|
127
|
-
throw err;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
async _processQueue(chatId) {
|
|
131
|
-
const queue = this.processQueue.get(chatId);
|
|
132
|
-
if (!queue || queue.length === 0) {
|
|
133
|
-
this.activeProcesses.delete(chatId);
|
|
134
|
-
return;
|
|
135
|
-
}
|
|
136
|
-
const next = queue.shift();
|
|
137
|
-
if (!next) {
|
|
138
|
-
this.activeProcesses.delete(chatId);
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
try {
|
|
142
|
-
const result = await this._executeOpencode(chatId, next.message);
|
|
143
|
-
next.resolve(result);
|
|
144
|
-
}
|
|
145
|
-
catch (err) {
|
|
146
|
-
next.reject(err);
|
|
147
|
-
}
|
|
148
|
-
finally {
|
|
149
|
-
// 继续处理队列
|
|
150
|
-
setImmediate(() => this._processQueue(chatId));
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
async _executeOpencode(chatId, message) {
|
|
154
|
-
const session = this.sessions.get(chatId);
|
|
155
|
-
const args = [
|
|
156
|
-
'run',
|
|
157
|
-
'--dir', this.directory,
|
|
158
|
-
'--format', 'json',
|
|
159
|
-
'--dangerously-skip-permissions',
|
|
160
|
-
'--attach', this.opencodeUrl,
|
|
161
|
-
];
|
|
162
|
-
if (session) {
|
|
163
|
-
args.push('--session', session.id, '--continue');
|
|
164
|
-
log.info({ chatId, sessionId: session.id }, 'Continuing ops session');
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
log.info({ chatId }, 'Starting new ops session');
|
|
168
|
-
}
|
|
169
|
-
// 构建输入消息:system prompt + user message
|
|
170
|
-
const inputLines = [];
|
|
171
|
-
if (this.systemPrompt) {
|
|
172
|
-
inputLines.push('[系统指令]');
|
|
173
|
-
inputLines.push(this.systemPrompt);
|
|
174
|
-
inputLines.push('');
|
|
175
|
-
}
|
|
176
|
-
inputLines.push('[用户消息]');
|
|
177
|
-
inputLines.push(message);
|
|
178
|
-
const input = inputLines.join('\n');
|
|
179
|
-
return new Promise((resolve, reject) => {
|
|
180
|
-
const texts = [];
|
|
181
|
-
let currentSessionId = null;
|
|
182
|
-
let stderr = '';
|
|
183
|
-
let isCompleted = false;
|
|
184
|
-
log.debug({ cmd: 'opencode', args: args.slice(0, 4), inputLength: input.length }, 'Spawning opencode run');
|
|
185
|
-
const child = spawn('opencode', args, {
|
|
186
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
187
|
-
env: process.env,
|
|
188
|
-
});
|
|
189
|
-
// 通过 stdin 发送消息
|
|
190
|
-
child.stdin.write(input);
|
|
191
|
-
child.stdin.end();
|
|
192
|
-
const timeoutId = setTimeout(() => {
|
|
193
|
-
if (isCompleted)
|
|
194
|
-
return;
|
|
195
|
-
isCompleted = true;
|
|
196
|
-
log.warn({ chatId, timeout: this.timeout }, 'Ops assistant timeout, killing process');
|
|
197
|
-
child.kill('SIGKILL');
|
|
198
|
-
const response = texts.join('');
|
|
199
|
-
if (response) {
|
|
200
|
-
log.info({ chatId, responseLength: response.length }, 'Returning partial response after timeout');
|
|
201
|
-
resolve(response);
|
|
202
|
-
}
|
|
203
|
-
else {
|
|
204
|
-
reject(new Error('Ops assistant timeout'));
|
|
205
|
-
}
|
|
206
|
-
}, this.timeout);
|
|
207
|
-
child.stdout.on('data', (data) => {
|
|
208
|
-
if (isCompleted)
|
|
209
|
-
return;
|
|
210
|
-
const lines = data.toString().split('\n').filter(l => l.trim());
|
|
211
|
-
for (const line of lines) {
|
|
212
|
-
try {
|
|
213
|
-
const event = JSON.parse(line);
|
|
214
|
-
if (event.type === 'text' && event.part?.text) {
|
|
215
|
-
texts.push(event.part.text);
|
|
216
|
-
}
|
|
217
|
-
if (event.sessionID && !currentSessionId) {
|
|
218
|
-
currentSessionId = event.sessionID;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
catch {
|
|
222
|
-
// Ignore non-JSON lines
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
child.stderr.on('data', (data) => {
|
|
227
|
-
if (isCompleted)
|
|
228
|
-
return;
|
|
229
|
-
stderr += data.toString();
|
|
230
|
-
});
|
|
231
|
-
child.on('close', (code) => {
|
|
232
|
-
if (isCompleted)
|
|
233
|
-
return;
|
|
234
|
-
isCompleted = true;
|
|
235
|
-
clearTimeout(timeoutId);
|
|
236
|
-
if (currentSessionId) {
|
|
237
|
-
this.sessions.set(chatId, { id: currentSessionId, lastUsed: Date.now() });
|
|
238
|
-
this.saveSessions();
|
|
239
|
-
log.info({ chatId, sessionId: currentSessionId }, 'Ops session saved');
|
|
240
|
-
}
|
|
241
|
-
if (code !== 0 && code !== null) {
|
|
242
|
-
log.warn({ code, stderr: stderr.slice(0, 500) }, 'opencode run exited with error');
|
|
243
|
-
}
|
|
244
|
-
const response = texts.join('');
|
|
245
|
-
if (response) {
|
|
246
|
-
resolve(response);
|
|
247
|
-
}
|
|
248
|
-
else if (stderr) {
|
|
249
|
-
reject(new Error(`Ops assistant failed: ${stderr.slice(0, 200)}`));
|
|
250
|
-
}
|
|
251
|
-
else {
|
|
252
|
-
reject(new Error('Ops assistant returned empty response'));
|
|
253
|
-
}
|
|
254
|
-
});
|
|
255
|
-
child.on('error', (err) => {
|
|
256
|
-
if (isCompleted)
|
|
257
|
-
return;
|
|
258
|
-
isCompleted = true;
|
|
259
|
-
clearTimeout(timeoutId);
|
|
260
|
-
reject(new Error(`Failed to spawn opencode: ${err.message}`));
|
|
261
|
-
});
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
clearSession(chatId) {
|
|
265
|
-
this.sessions.delete(chatId);
|
|
266
|
-
this.saveSessions();
|
|
267
|
-
log.info({ chatId }, 'Ops session cleared');
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
//# sourceMappingURL=ops-assistant.js.map
|
|
1
|
+
const a0_0x5a716c=a0_0x4a35;function a0_0x3bac(){const _0x5eb69b=['thvmBwu','Ce9YvMe','zxjYB3i','otiYA0LOy3zU','Bw5evMq','AgzXqKy','BhzJtwy','zM91rLG','rMfPBgvKihrVihnWyxDUig9Wzw5JB2rLoIa','lM9Wzw5JB2rL','rMfPBgvKihrVigXVywqGB3bZihn5C3rLBsbWCM9TChq','CLrvBgm','Bg9HzfnLC3nPB25Z','zMLUzeLUzgv4','txnnuKO','uvnIzey','mZi5z0f2rhLM','rMfPBgvKihrVigXVywqGB3bZihnLC3nPB25Z','tg9HzgvKig9WCYbHC3nPC3rHBNqGC2vZC2LVBNm','ls1ZzxnZAw9U','zLrHqxG','B0f2r0m','qwHnD2i','ls1Kyw5NzxjVDxnSEs1ZA2LWlxbLCM1PC3nPB25Z','yLPVChu','t3bZigfZC2LZDgfUDcbMywLSzwq','BePzvuu','zgf0yq','Ahr0CdOVlZeYnY4WlJaUmtOXotG3nW','thHsy2e','t3bZigfZC2LZDgfUDcb0Aw1LB3v0lcbRAwXSAw5NihbYB2nLC3m','C3bSAxq','C2vZC2LVBNm','vhfbBu8','CgPmq1q','v0zmuue','BvfHuu8','y2XLyxjtzxnZAw9U','C3rYAw5NAwz5','u0Lhs0Lmta','BM1gqwW','DwvXqNC','C2f2zvnLC3nPB25Z','DNrIExO','zgvIDwC','sKvHCvC','zgLYzwn0B3j5','CxvcAgu','BMjZvLC','t3nwy1G','r05hs2q','D3jPDgu','ChjVBxb0lM1K','AerQDLq','Aw5MBW','x2v4zwn1DgvpCgvUy29Kzq','zvnoC1q','C2vZC2LVBKzPBgu','AhjRve8','veXzuMy','x2rVu2vUze1LC3nHz2u','DeLwrfi','ywn0AxzLuhjVy2vZC2vZ','shnXrKi','ChjVy2vZC1f1zxvL','rNLTs0O','CNvU','uNvxshu','mZe0mdCWm3DLBgjwwa','DgLTzw91Da','BKfJAMW','Dw1SAuG','Dgv4Da','Bg9Hzfn5C3rLBvbYB21WDa','tvLYywe','wNnsDM8','mtG1qKLzzMnY','wvvPuhq','wfL3y0i','z0j4teC','x3bYB2nLC3nrDwv1zq','ls1JB250Aw51zq','ls1MB3jTyxq','C3bSAwnL','mtG0nZm3nLzMC1v3vW','DNbeyKm','sKHpwfK','t3bZihnLC3nPB24GC2f2zwq','C3rKzxjY','AgfZ','B2jQzwn0','zwTOsvy','z3btvKi','q0fStxy','Dgjsruu','C2vZC2LVBKLe','BM93','rxjszw4','qu5sCMO','CgfYC2u','AM9PBG','A2LSBa','qwjPt2G','BwvZC2fNzq','q1jKA3a','C2HPzNq','yvrrDxe','zLfxq3K','Dg9tDhjPBMC','tfzSr2C','EfvvyNG','tezgEe4','uK1mqMW','ls1HDhrHy2G','rg16rha','turPt3C','rKTQDgK','txPTD0S','nhWYFdb8nNW4Fdv8n3WXFdn8oq','zufuBgy','rKHnBxO','CgzcDLe','sgPqAMu','tKnqsfG','zgvSzxrL','zuzfruO','AhP1Dxa','yMLduKq','v3fTCLO','ze90C1u','BgvUz3rO','BwL5A1C','tg9HzgvKig9WCYbZExn0zw0GChjVBxb0','t0P0t1u','thLSuKS','mta4mJi4BLvHCwHf','wMXqD2W','mta5ndi0Cw94sgnU','ru9drgW','t3bZqxnZAxn0yw50','rMfPBgvKihrVihnHDMuGB3bZihnLC3nPB25Z','wMXHyMi','A3nYzvO','CxHwsLK','CgjUs1u','CMvZB2X2zq','uK9ks20','q2PeqKu','C2XPy2u','vfHYyKm','ls1KAxi','n3W2FdH8nxWWFdr8m3W5Fdf8mG','EvHqvw0','BNHoq1e','wgf1qvG','Du1fy2e','EgDyDhC','rNnYufK','uKjhqui','ntK2odK4r015wKvR','zeLwteW','w+EuQoAiT+A2IoAbR10','ELrPAvO','y3HPvfi','wgLSEhy','DxjgA3u','vwrkAK0','t25TwwW','t3bZigfZC2LZDgfUDcbIDxn5lcbXDwv1Aw5Nig1LC3nHz2u','zw5K','C3LZDgvTuhjVBxb0','vMTMz1y','t3bZigfZC2LZDgfUDcb0Aw1LB3v0','AuHTsuq','zK9ZDwG','CMvQzwn0','w+EZU+E7N+AmH+s7Pf0','uKrUA1i','AwjXr2q','CgLWzq','D3niC1C','mtu5nJmZmtbvquPIueS','zejPuKu','B3bLBMnVzguGCNvUigv4AxrLzcb3AxrOigvYCM9Y','DxrMltG','CgfYDa','uhLnue0','sLfYzhe','t3bZigfZC2LZDgfUDcbMywLSzwq6ia','DNP1CxO','zLDmwxi','u0nxDhm','zw50CMLLCW','uMv0DxjUAw5NihbHCNrPywWGCMvZCg9UC2uGywz0zxiGDgLTzw91Da','AKzpvKu','yxf3Ewq','BwHSBM4','lMnVBMzPzW','Au9mv0G','sMn1v1q','Ag1Yv1G','tM5prNq','DhLnz3O','qMzLqMi','vMHjDvC','tMvYt3y','sw1svvG','qu5nt1G','zufPzg0','vMXXz2K','reTptfi','mty5nujZuwPYqW','wMTVt0O','CgjVwLO','C2L6zq','ChvZAa','B3bLBMnVzgu','B3bLBMnVzgvvCMW','z1bmC0y','zNjVBuvUDhjPzxm','DhjPBq','y0Hcu0O','tfzOBum','Euvltvq','D01LtuO','veHqz2m','vLvsquq','Bg9JAxe','q1zNBhi','wKvsyLq','CNzVDey','D2fYBG','t3bZihnLC3nPB24Gy2XLyxjLza','y2rkr3C','B3bZlwfZC2LZDgfUDc1ZzxnZAw9UCY5QC29U','C3rKB3v0','DhLWzq','z2v0','Aw5UAwO','yK1My20','wg1SCuO','u3rHCNrPBMCGBMv3ig9WCYbZzxnZAw9U','tfvnuLy','s0jir2G','C3rKAw4','AKXwy3u','C2v0'];a0_0x3bac=function(){return _0x5eb69b;};return a0_0x3bac();}(function(_0x1be472,_0x4a6861){const _0x52d5ae=a0_0x4a35,_0x3021ac=_0x1be472();while(!![]){try{const _0x4655c1=-parseInt(_0x52d5ae(0x258))/0x1*(-parseInt(_0x52d5ae(0x27f))/0x2)+-parseInt(_0x52d5ae(0x224))/0x3+parseInt(_0x52d5ae(0x1d9))/0x4+parseInt(_0x52d5ae(0x1d1))/0x5*(parseInt(_0x52d5ae(0x20c))/0x6)+parseInt(_0x52d5ae(0x28c))/0x7*(parseInt(_0x52d5ae(0x20e))/0x8)+-parseInt(_0x52d5ae(0x1c9))/0x9+-parseInt(_0x52d5ae(0x23a))/0xa;if(_0x4655c1===_0x4a6861)break;else _0x3021ac['push'](_0x3021ac['shift']());}catch(_0x4d53b7){_0x3021ac['push'](_0x3021ac['shift']());}}}(a0_0x3bac,0x63e9f));import{spawn}from'child_process';import{createLogger}from'./logger.js';import{join,dirname}from'path';function a0_0x4a35(_0x5153db,_0x2d25b7){_0x5153db=_0x5153db-0x1a3;const _0x3bac5a=a0_0x3bac();let _0x4a35a0=_0x3bac5a[_0x5153db];if(a0_0x4a35['QEkLRf']===undefined){var _0x41e6ff=function(_0x48c575){const _0x472d98='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4fbb29='',_0x5afa60='';for(let _0x190041=0x0,_0x1de643,_0x366eba,_0x5d24f2=0x0;_0x366eba=_0x48c575['charAt'](_0x5d24f2++);~_0x366eba&&(_0x1de643=_0x190041%0x4?_0x1de643*0x40+_0x366eba:_0x366eba,_0x190041++%0x4)?_0x4fbb29+=String['fromCharCode'](0xff&_0x1de643>>(-0x2*_0x190041&0x6)):0x0){_0x366eba=_0x472d98['indexOf'](_0x366eba);}for(let _0x230d7e=0x0,_0x2744be=_0x4fbb29['length'];_0x230d7e<_0x2744be;_0x230d7e++){_0x5afa60+='%'+('00'+_0x4fbb29['charCodeAt'](_0x230d7e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5afa60);};a0_0x4a35['gYRPrC']=_0x41e6ff,a0_0x4a35['dbyQxq']={},a0_0x4a35['QEkLRf']=!![];}const _0x342768=_0x3bac5a[0x0],_0x3754d8=_0x5153db+_0x342768,_0x284507=a0_0x4a35['dbyQxq'][_0x3754d8];return!_0x284507?(_0x4a35a0=a0_0x4a35['gYRPrC'](_0x4a35a0),a0_0x4a35['dbyQxq'][_0x3754d8]=_0x4a35a0):_0x4a35a0=_0x284507,_0x4a35a0;}import{existsSync,readFileSync,writeFileSync,mkdirSync}from'fs';import{homedir}from'os';const log=createLogger(a0_0x5a716c(0x210));export class OpsAssistantClient{constructor(_0x178e1e){const _0x26a826=a0_0x5a716c,_0x4ea65a={'BfeBb':_0x26a826(0x21c),'LuLme':_0x26a826(0x298),'cHBSJ':function(_0x4e5f93,_0x259cf5,_0x460f7b,_0x5c74ea,_0xcda866){return _0x4e5f93(_0x259cf5,_0x460f7b,_0x5c74ea,_0xcda866);},'JQrdq':function(_0x33e664){return _0x33e664();},'CAlMv':_0x26a826(0x24a),'tsPWf':_0x26a826(0x25d),'Xilxv':_0x26a826(0x26f)},_0x31016a=_0x4ea65a[_0x26a826(0x250)][_0x26a826(0x1a4)]('|');let _0x3cb6d1=0x0;while(!![]){switch(_0x31016a[_0x3cb6d1++]){case'0':this[_0x26a826(0x1b3)]=_0x178e1e[_0x26a826(0x1b3)];continue;case'1':this['systemPrompt']=this[_0x26a826(0x1ce)]();continue;case'2':this['loadSessions']();continue;case'3':this[_0x26a826(0x1ca)]=_0x178e1e[_0x26a826(0x1ca)]||0xea60;continue;case'4':this[_0x26a826(0x25e)]=_0x178e1e[_0x26a826(0x25e)]||_0x4ea65a[_0x26a826(0x27c)];continue;case'5':this['processQueue']=new Map();continue;case'6':this[_0x26a826(0x22f)]=null;continue;case'7':this['sessions']=new Map();continue;case'8':this[_0x26a826(0x1c3)]=new Map();continue;case'9':this['sessionFile']=_0x178e1e[_0x26a826(0x1be)]||_0x4ea65a[_0x26a826(0x262)](join,_0x4ea65a[_0x26a826(0x240)](homedir),_0x4ea65a[_0x26a826(0x1e2)],_0x4ea65a['tsPWf'],_0x4ea65a[_0x26a826(0x229)]);continue;}break;}}['loadSystemPrompt'](){const _0x1d1371=a0_0x5a716c,_0x517d1f={'KBHGh':function(_0x159ac8,_0x137988){return _0x159ac8(_0x137988);},'QSbdF':function(_0xaf6505,_0x2a720e,_0x4d4ce2){return _0xaf6505(_0x2a720e,_0x4d4ce2);},'DmzDp':_0x1d1371(0x211),'GNGKd':function(_0x562fdd,_0xd51812){return _0x562fdd===_0xd51812;},'lJYUE':function(_0x13fbe2,_0x2b5586,_0x24d470,_0x2955cd){return _0x13fbe2(_0x2b5586,_0x24d470,_0x2955cd);},'THPgc':_0x1d1371(0x1b9),'ANRrj':function(_0x371989,_0x4238a1){return _0x371989!==_0x4238a1;},'RBGAB':function(_0x207c2f,_0x5d4531){return _0x207c2f!==_0x5d4531;},'dBiRE':_0x1d1371(0x1fc),'FHMmz':'QvcGr','tbREE':function(_0x1aad49,_0x4fe4a8,_0x1b5200){return _0x1aad49(_0x4fe4a8,_0x1b5200);},'TqAmO':_0x1d1371(0x23d),'dOtsU':function(_0x34fc3c,_0x22e4a2){return _0x34fc3c===_0x22e4a2;},'RDnkR':_0x1d1371(0x20d),'kfqRf':_0x1d1371(0x1ad),'NnOFt':_0x1d1371(0x209),'PyMPM':_0x1d1371(0x286),'jFOVE':'Ops\x20system\x20prompt\x20not\x20found'},_0x240b4d=_0x517d1f[_0x1d1371(0x296)](join,this['directory'],_0x1d1371(0x285),_0x517d1f[_0x1d1371(0x266)]);if(_0x517d1f['KBHGh'](existsSync,_0x240b4d)){if(_0x517d1f[_0x1d1371(0x1e7)]('lVhtv','kcYaz'))try{if(_0x517d1f[_0x1d1371(0x223)](_0x517d1f[_0x1d1371(0x23b)],_0x517d1f[_0x1d1371(0x1fd)])){const _0x58919f=_0x517d1f[_0x1d1371(0x1e3)](readFileSync,_0x240b4d,_0x517d1f[_0x1d1371(0x1a6)]);if(_0x58919f['trim']()[_0x1d1371(0x207)]>0x0){if(_0x517d1f[_0x1d1371(0x206)](_0x517d1f[_0x1d1371(0x236)],_0x517d1f['kfqRf'])){if(_0x311699)return;_0x3d3276+=_0x4dd53c[_0x1d1371(0x1f1)]();}else return log[_0x1d1371(0x1bb)]({'path':_0x240b4d,'length':_0x58919f[_0x1d1371(0x207)]},_0x517d1f[_0x1d1371(0x24e)]),_0x58919f['trim']();}}else try{const _0x27ff7c=_0x517d1f[_0x1d1371(0x278)](_0x3670dc,this['sessionFile']);if(!_0x517d1f[_0x1d1371(0x278)](_0x47fe08,_0x27ff7c))_0x2c2683(_0x27ff7c,{'recursive':!![]});const _0xe5bbff={'sessions':_0x5505b3[_0x1d1371(0x260)](this['sessions'])};_0x517d1f[_0x1d1371(0x28b)](_0x53936d,this[_0x1d1371(0x1be)],_0x4990fc[_0x1d1371(0x1ab)](_0xe5bbff,null,0x2));}catch(_0x3debd4){_0xddaf7b[_0x1d1371(0x26c)]({'err':_0x3debd4},_0x517d1f[_0x1d1371(0x1f7)]);}}catch(_0x2bfa42){log['warn']({'err':_0x2bfa42,'path':_0x240b4d},_0x517d1f[_0x1d1371(0x23f)]);}else{const _0x2c793f=_0x365bdc[_0x1d1371(0x1e8)](_0x442c62);_0x517d1f[_0x1d1371(0x1b7)](_0x2c793f[_0x1d1371(0x271)],_0x1d1371(0x1cd))&&_0x2c793f[_0x1d1371(0x23e)]?.['text']&&_0x29d7fc[_0x1d1371(0x25c)](_0x2c793f[_0x1d1371(0x23e)]['text']),_0x2c793f[_0x1d1371(0x1e4)]&&!_0x45212f&&(_0x1441f2=_0x2c793f[_0x1d1371(0x1e4)]);}}return log[_0x1d1371(0x26c)]({'path':_0x240b4d},_0x517d1f[_0x1d1371(0x247)]),null;}[a0_0x5a716c(0x288)](){const _0x20c1e6=a0_0x5a716c,_0x476016={'ROJKm':_0x20c1e6(0x1a3),'ZsRvo':_0x20c1e6(0x1ac),'quBhe':function(_0x3f8d10,_0x4afcd7){return _0x3f8d10(_0x4afcd7);},'VhIuW':'Ops\x20assistant\x20timeout','FKjti':_0x20c1e6(0x23d),'eHvXB':function(_0x3548d9,_0x5621d9){return _0x3548d9===_0x5621d9;},'ksreZ':_0x20c1e6(0x1df),'niqbh':function(_0x5b79df,_0x3e6c75){return _0x5b79df!==_0x3e6c75;},'MYraa':_0x20c1e6(0x22b),'fouFX':'Loaded\x20ops\x20assistant\x20sessions'};try{if(existsSync(this[_0x20c1e6(0x1be)])){const _0x53453a=JSON['parse'](readFileSync(this[_0x20c1e6(0x1be)],_0x476016[_0x20c1e6(0x1f9)]));if(_0x53453a[_0x20c1e6(0x1a5)]&&_0x476016['eHvXB'](typeof _0x53453a[_0x20c1e6(0x1a5)],_0x476016[_0x20c1e6(0x213)]))for(const [_0xeeabad,_0x540ebc]of Object['entries'](_0x53453a['sessions'])){if(_0x476016['niqbh'](_0x476016[_0x20c1e6(0x1cf)],_0x476016[_0x20c1e6(0x1cf)])){if(_0x597ef9)return;_0x2ba3ad=!![],_0x5b7445[_0x20c1e6(0x26c)]({'chatId':_0x184cb8,'timeout':this['timeout']},_0x476016[_0x20c1e6(0x217)]),_0x302fbb[_0x20c1e6(0x1ea)](_0x476016[_0x20c1e6(0x1d0)]);const _0x431d55=_0x294167[_0x20c1e6(0x1e9)]('');_0x431d55?(_0x222485[_0x20c1e6(0x1bb)]({'chatId':_0x1624c2,'responseLength':_0x431d55[_0x20c1e6(0x207)]},'Returning\x20partial\x20response\x20after\x20timeout'),_0x388a97(_0x431d55)):_0x476016[_0x20c1e6(0x1b4)](_0x31bdd2,new _0x4f9e91(_0x476016[_0x20c1e6(0x251)]));}else this[_0x20c1e6(0x1a5)][_0x20c1e6(0x27b)](_0xeeabad,_0x540ebc);}log['info']({'count':this[_0x20c1e6(0x1a5)]['size']},_0x476016[_0x20c1e6(0x283)]);}}catch(_0x54c331){log[_0x20c1e6(0x26c)]({'err':_0x54c331},_0x20c1e6(0x28d));}}[a0_0x5a716c(0x1af)](){const _0x53bd82=a0_0x5a716c,_0x2f61fe={'FsrPY':_0x53bd82(0x235),'urFku':'Nzxpo','ZfDKh':_0x53bd82(0x26a),'pOrVa':function(_0x4f47a7,_0x230319){return _0x4f47a7(_0x230319);},'bMfcm':function(_0x10f7a8,_0x175bad,_0x13b947){return _0x10f7a8(_0x175bad,_0x13b947);},'LxRca':_0x53bd82(0x211)};try{if(_0x2f61fe[_0x53bd82(0x22a)]===_0x2f61fe['ZfDKh'])_0x594f9a['push'](_0x2f61fe[_0x53bd82(0x222)]),_0x13c3e3[_0x53bd82(0x25c)](this[_0x53bd82(0x22f)]),_0x208fb3[_0x53bd82(0x25c)]('');else{const _0x44b4e0=dirname(this[_0x53bd82(0x1be)]);if(!_0x2f61fe[_0x53bd82(0x27d)](existsSync,_0x44b4e0))_0x2f61fe[_0x53bd82(0x274)](mkdirSync,_0x44b4e0,{'recursive':!![]});const _0x4607ac={'sessions':Object[_0x53bd82(0x260)](this[_0x53bd82(0x1a5)])};writeFileSync(this['sessionFile'],JSON[_0x53bd82(0x1ab)](_0x4607ac,null,0x2));}}catch(_0x2371e2){log[_0x53bd82(0x26c)]({'err':_0x2371e2},_0x2f61fe[_0x53bd82(0x299)]);}}async['sendMessage'](_0x18d6eb,_0x59ba0a){const _0x41edd6=a0_0x5a716c,_0x20f7c2={'iHmID':function(_0x4c868b,_0x4a7b20){return _0x4c868b(_0x4a7b20);},'hzuup':_0x41edd6(0x281),'nAcjl':_0x41edd6(0x1c4),'CjDBE':function(_0x4de198,_0x5a0b0c){return _0x4de198===_0x5a0b0c;},'OsVcX':function(_0x538543,_0x39cbf3){return _0x538543>_0x39cbf3;},'eFEEJ':function(_0x2c2298,_0x1632a){return _0x2c2298(_0x1632a);},'fDBdq':'Ops\x20assistant\x20queue\x20timeout','vzuqz':function(_0x424681,_0x57aa81,_0x2e0907){return _0x424681(_0x57aa81,_0x2e0907);},'WFLQA':_0x41edd6(0x231),'TXrbC':function(_0x3be585,_0x4843c1){return _0x3be585!==_0x4843c1;},'Vlqgi':'YvdxF','jQFZW':function(_0x42b912,_0x220221){return _0x42b912!==_0x220221;},'mnDVd':_0x41edd6(0x253),'gBxLG':function(_0x451ac7,_0x46561a){return _0x451ac7!==_0x46561a;},'tyMgz':'jdNTM','LyopO':_0x41edd6(0x292)};if(this[_0x41edd6(0x1c3)]['get'](_0x18d6eb))return log[_0x41edd6(0x1bb)]({'chatId':_0x18d6eb},_0x41edd6(0x22d)),new Promise((_0x1449bd,_0x5a52d1)=>{const _0x5797b0=_0x41edd6,_0x46bdee={'hrkTO':function(_0x5111c0,_0x53ff55){return _0x5111c0(_0x53ff55);},'ftDxx':function(_0x349a5d,_0x542e8b,_0x1b1fcb){const _0x2b5585=a0_0x4a35;return _0x20f7c2[_0x2b5585(0x242)](_0x349a5d,_0x542e8b,_0x1b1fcb);},'VURAD':function(_0x1e1b04,_0x1d106b){const _0x46ac7f=a0_0x4a35;return _0x20f7c2[_0x46ac7f(0x202)](_0x1e1b04,_0x1d106b);},'nxNCQ':_0x20f7c2[_0x5797b0(0x1a8)],'oNOfc':function(_0x4d1108,_0x42d9e2){const _0x4f4659=_0x5797b0;return _0x20f7c2[_0x4f4659(0x21a)](_0x4d1108,_0x42d9e2);},'ibqGd':_0x20f7c2[_0x5797b0(0x256)],'tQfbW':function(_0x165d35,_0x115e77){return _0x20f7c2['jQFZW'](_0x165d35,_0x115e77);},'NCPHX':_0x5797b0(0x264),'vpDbC':function(_0x55e4cb,_0x3b6d07){const _0x5e52f9=_0x5797b0;return _0x20f7c2[_0x5e52f9(0x202)](_0x55e4cb,_0x3b6d07);},'VcVsr':function(_0x121a33,_0x63a021){const _0x28ced0=_0x5797b0;return _0x20f7c2[_0x28ced0(0x202)](_0x121a33,_0x63a021);}};if(_0x20f7c2[_0x5797b0(0x280)]!==_0x5797b0(0x265)){if(!this[_0x5797b0(0x1c5)][_0x5797b0(0x1de)](_0x18d6eb)){if(_0x20f7c2[_0x5797b0(0x1d4)](_0x20f7c2[_0x5797b0(0x24f)],_0x20f7c2['LyopO']))this[_0x5797b0(0x1c5)]['set'](_0x18d6eb,[]);else{const _0x4f2962=_0x2231b6(this[_0x5797b0(0x1be)]);if(!ruPbzk[_0x5797b0(0x1bf)](_0x498f42,_0x4f2962))_0x1462f9(_0x4f2962,{'recursive':!![]});const _0x30f907={'sessions':_0x2b5398['fromEntries'](this[_0x5797b0(0x1a5)])};ruPbzk['ftDxx'](_0x1264fe,this[_0x5797b0(0x1be)],_0x5116ee['stringify'](_0x30f907,null,0x2));}}const _0x21e439=_0x20f7c2['vzuqz'](setTimeout,()=>{const _0xd8d141=_0x5797b0,_0x3eb056={'fQWCy':function(_0x119f23,_0x5426d3){const _0x153924=a0_0x4a35;return _0x20f7c2[_0x153924(0x232)](_0x119f23,_0x5426d3);}};if(_0x20f7c2[_0xd8d141(0x203)]===_0x20f7c2[_0xd8d141(0x1cb)])_0x46bdee['VURAD'](_0x3bda8b,new _0xd4b900(_0x46bdee[_0xd8d141(0x21e)]));else{const _0x62c58e=this[_0xd8d141(0x1c5)][_0xd8d141(0x272)](_0x18d6eb);if(_0x62c58e){if(_0x20f7c2[_0xd8d141(0x218)](_0xd8d141(0x21f),'XauAX')){const _0x18fbd4=_0x62c58e[_0xd8d141(0x289)](_0x428f2a=>_0x428f2a['resolve']===_0x1449bd);if(_0x20f7c2[_0xd8d141(0x1b6)](_0x18fbd4,-0x1))_0x62c58e[_0xd8d141(0x1d8)](_0x18fbd4,0x1);}else _0x3f60cf['info']({'chatId':_0x377a21,'responseLength':_0x5e64d4[_0xd8d141(0x207)]},'Returning\x20partial\x20response\x20after\x20timeout'),_0x3eb056[_0xd8d141(0x1f0)](_0x46f9e1,_0x15ddbc);}_0x20f7c2[_0xd8d141(0x202)](_0x5a52d1,new Error(_0x20f7c2['fDBdq']));}},0x493e0),_0x557b9f=_0x5e2056=>{const _0x56c19d=_0x5797b0;if(_0x46bdee['oNOfc']('LelVI',_0x46bdee[_0x56c19d(0x237)]))_0x46bdee[_0x56c19d(0x267)](clearTimeout,_0x21e439),_0x1449bd(_0x5e2056);else{if(_0x1cff14)return;_0x531bab=!![],_0x46bdee[_0x56c19d(0x267)](_0x193272,_0xb2dd67),_0x46bdee[_0x56c19d(0x267)](_0x5465ba,new _0x52e7ef(_0x56c19d(0x284)+_0xb3d565[_0x56c19d(0x1ec)]));}},_0x3dac84=_0x80b43=>{const _0x46c545=_0x5797b0;_0x46bdee['tQfbW'](_0x46bdee[_0x46c545(0x200)],_0x46bdee[_0x46c545(0x200)])?_0x55aa9a(new _0x2b8359('Ops\x20assistant\x20returned\x20empty\x20response')):(_0x46bdee[_0x46c545(0x267)](clearTimeout,_0x21e439),_0x46bdee[_0x46c545(0x1da)](_0x5a52d1,_0x80b43));};this[_0x5797b0(0x1c5)][_0x5797b0(0x272)](_0x18d6eb)['push']({'message':_0x59ba0a,'resolve':_0x557b9f,'reject':_0x3dac84});}else _0x46bdee[_0x5797b0(0x1bf)](_0x191d69,_0x36883d),_0x46bdee['VcVsr'](_0x37838e,_0x1b0e1c);});return this[_0x41edd6(0x1c1)](_0x18d6eb,_0x59ba0a);}async[a0_0x5a716c(0x1c1)](_0x4b9e86,_0x1b4dba,_0x23ca9c=![]){const _0x41db4b=a0_0x5a716c,_0x169400={'HjPje':function(_0x377e0d,_0x4d2948){return _0x377e0d(_0x4d2948);},'LylRK':_0x41db4b(0x295),'mQaQO':'Clearing\x20session\x20and\x20retrying','eAidm':function(_0x4e7fcd,_0x16d6ac){return _0x4e7fcd(_0x16d6ac);},'Zlabb':function(_0x584695,_0x357e52){return _0x584695(_0x357e52);}};this['activeProcesses'][_0x41db4b(0x27b)](_0x4b9e86,!![]);try{const _0x357eec=await this[_0x41db4b(0x1bc)](_0x4b9e86,_0x1b4dba);return _0x169400[_0x41db4b(0x1ff)](setImmediate,()=>this['_processQueue'](_0x4b9e86)),_0x357eec;}catch(_0x5562ec){log['warn']({'chatId':_0x4b9e86,'err':_0x5562ec[_0x41db4b(0x1ec)],'isRetry':_0x23ca9c},_0x169400[_0x41db4b(0x20b)]);if(!_0x23ca9c){log['info']({'chatId':_0x4b9e86},_0x169400[_0x41db4b(0x1a9)]),this[_0x41db4b(0x1a5)][_0x41db4b(0x201)](_0x4b9e86),this[_0x41db4b(0x1af)]();try{const _0x1d9896=await this[_0x41db4b(0x1bc)](_0x4b9e86,_0x1b4dba);return _0x169400[_0x41db4b(0x1ff)](setImmediate,()=>this[_0x41db4b(0x1d5)](_0x4b9e86)),_0x1d9896;}catch(_0x89060b){_0x169400[_0x41db4b(0x255)](setImmediate,()=>this[_0x41db4b(0x1d5)](_0x4b9e86));throw _0x89060b;}}_0x169400[_0x41db4b(0x212)](setImmediate,()=>this[_0x41db4b(0x1d5)](_0x4b9e86));throw _0x5562ec;}}async[a0_0x5a716c(0x1d5)](_0xf0109f){const _0x1a650d=a0_0x5a716c,_0x4ab00b={'LVlGg':function(_0x4369a0,_0x27c13c,_0x5b2e23){return _0x4369a0(_0x27c13c,_0x5b2e23);},'TLYRf':function(_0x92cea,_0x218be7){return _0x92cea>_0x218be7;},'fOsuh':'Loaded\x20ops\x20system\x20prompt','mhlnn':_0x1a650d(0x286),'pfBvQ':function(_0x5a5d34,_0x5af052){return _0x5a5d34===_0x5af052;},'dZBEH':function(_0xd3e9ee,_0xcf9e27){return _0xd3e9ee!==_0xcf9e27;},'Vybvy':_0x1a650d(0x1d2),'YUMmH':function(_0x1ffd03,_0x253d0d){return _0x1ffd03===_0x253d0d;},'LFFxN':'MyESz','aqwyd':function(_0x7418fc,_0x39a2c6){return _0x7418fc(_0x39a2c6);}},_0x206cb0=this[_0x1a650d(0x1c5)][_0x1a650d(0x272)](_0xf0109f);if(!_0x206cb0||_0x4ab00b[_0x1a650d(0x1fe)](_0x206cb0[_0x1a650d(0x207)],0x0)){this[_0x1a650d(0x1c3)][_0x1a650d(0x201)](_0xf0109f);return;}const _0x9e983b=_0x206cb0[_0x1a650d(0x1ee)]();if(!_0x9e983b){if(_0x4ab00b['dZBEH'](_0x4ab00b['Vybvy'],_0x1a650d(0x1d2)))_0xa1e4c[_0x1a650d(0x234)](_0x2f187a);else{this[_0x1a650d(0x1c3)]['delete'](_0xf0109f);return;}}try{if(_0x4ab00b['YUMmH'](_0x4ab00b[_0x1a650d(0x1f4)],_0x4ab00b['LFFxN'])){const _0x4ee25d=await this[_0x1a650d(0x1bc)](_0xf0109f,_0x9e983b['message']);_0x9e983b['resolve'](_0x4ee25d);}else try{const _0x39affa=aJxuMn[_0x1a650d(0x1f2)](_0x19245f,_0x549717,_0x1a650d(0x23d));if(aJxuMn[_0x1a650d(0x1c0)](_0x39affa['trim']()[_0x1a650d(0x207)],0x0))return _0x16d476[_0x1a650d(0x1bb)]({'path':_0x4ceddc,'length':_0x39affa['length']},aJxuMn[_0x1a650d(0x233)]),_0x39affa[_0x1a650d(0x261)]();}catch(_0x27130f){_0x5613ac[_0x1a650d(0x26c)]({'err':_0x27130f,'path':_0x475c82},aJxuMn[_0x1a650d(0x249)]);}}catch(_0x46d1ac){_0x9e983b['reject'](_0x46d1ac);}finally{_0x4ab00b[_0x1a650d(0x248)](setImmediate,()=>this['_processQueue'](_0xf0109f));}}async[a0_0x5a716c(0x1bc)](_0x2f0038,_0x43f8f6){const _0x4711bd=a0_0x5a716c,_0x37d964={'EOCDl':_0x4711bd(0x28f),'OJtOU':'Continuing\x20ops\x20session','fWLYr':_0x4711bd(0x25a),'nbsVW':function(_0xdfbc4f,_0x160c46){return _0xdfbc4f===_0x160c46;},'ANMOX':_0x4711bd(0x246),'XmlqJ':function(_0x40b36e,_0x17d6f5){return _0x40b36e(_0x17d6f5);},'OuDos':_0x4711bd(0x231),'xUUbx':_0x4711bd(0x23c),'RMLBl':'uEwne','innij':'MKxhT','JcuWT':'text','xgXtw':_0x4711bd(0x1fb),'ErRen':function(_0x33df53,_0x394e7d,_0x1758b7,_0x14a5ac,_0x14f81f){return _0x33df53(_0x394e7d,_0x1758b7,_0x14a5ac,_0x14f81f);},'BeaEn':function(_0x47cff8){return _0x47cff8();},'LVhmC':'.config','AbiOh':'opencode','ekhIV':_0x4711bd(0x1dc),'gpSVB':function(_0x516f18,_0xe95b2d){return _0x516f18!==_0xe95b2d;},'WqmrZ':_0x4711bd(0x1db),'eSNsT':function(_0x47ed63,_0xfc4a8b){return _0x47ed63(_0xfc4a8b);},'LUMRV':_0x4711bd(0x259),'MzmwK':'Ops\x20assistant\x20returned\x20empty\x20response','zTiiZ':_0x4711bd(0x28e),'MDiOw':_0x4711bd(0x215),'eDPqF':_0x4711bd(0x238),'iOLWH':function(_0x8e505a,_0x373dd4,_0x20e218){return _0x8e505a(_0x373dd4,_0x20e218);},'lvcMf':'data','zBrlH':'close','CRdkp':_0x4711bd(0x1d7),'dpGiu':_0x4711bd(0x293),'fTaAx':_0x4711bd(0x1f6),'OnmYl':function(_0x4a899f,_0xb26f35){return _0x4a899f===_0xb26f35;},'SCWts':'GThEz','gPLsF':_0x4711bd(0x252),'zZTqn':_0x4711bd(0x1d6),'aTQuq':_0x4711bd(0x276),'vtbyz':_0x4711bd(0x235),'VkfgV':_0x4711bd(0x226)},_0x2f6de1=this[_0x4711bd(0x1a5)][_0x4711bd(0x272)](_0x2f0038),_0x12a3b3=[_0x4711bd(0x1c7),_0x4711bd(0x21b),this['directory'],_0x37d964[_0x4711bd(0x1ed)],'json',_0x37d964['dpGiu'],_0x37d964[_0x4711bd(0x290)],this[_0x4711bd(0x25e)]];_0x2f6de1?_0x37d964[_0x4711bd(0x22c)](_0x37d964[_0x4711bd(0x244)],_0x37d964[_0x4711bd(0x25f)])?(_0x34d136[_0x4711bd(0x25c)](_0x37d964[_0x4711bd(0x20f)],_0x1c7d12['id'],'--continue'),_0x290f65[_0x4711bd(0x1bb)]({'chatId':_0x5eb7b1,'sessionId':_0x598e4d['id']},_0x37d964['OJtOU'])):(_0x12a3b3[_0x4711bd(0x25c)](_0x37d964['EOCDl'],_0x2f6de1['id'],_0x37d964['zZTqn']),log['info']({'chatId':_0x2f0038,'sessionId':_0x2f6de1['id']},_0x37d964[_0x4711bd(0x20a)])):log[_0x4711bd(0x1bb)]({'chatId':_0x2f0038},_0x37d964[_0x4711bd(0x1ef)]);const _0x30dc93=[];this['systemPrompt']&&(_0x30dc93['push'](_0x37d964[_0x4711bd(0x1b0)]),_0x30dc93['push'](this['systemPrompt']),_0x30dc93['push'](''));_0x30dc93['push'](_0x37d964[_0x4711bd(0x230)]),_0x30dc93[_0x4711bd(0x25c)](_0x43f8f6);const _0x3c642d=_0x30dc93[_0x4711bd(0x1e9)]('\x0a');return new Promise((_0x59901e,_0x3bf081)=>{const _0x56356e=_0x4711bd,_0x8867e4={'JEaqW':_0x37d964[_0x56356e(0x243)],'uMEca':function(_0x39dade,_0x124f30){const _0x46efe6=_0x56356e;return _0x37d964[_0x46efe6(0x1b5)](_0x39dade,_0x124f30);},'miykW':_0x56356e(0x1a7),'CWRSN':_0x37d964[_0x56356e(0x254)],'CVglr':function(_0x18630f,_0x24ef36){const _0x4329d5=_0x56356e;return _0x37d964[_0x4329d5(0x275)](_0x18630f,_0x24ef36);},'WPymk':_0x56356e(0x26b),'ZKleo':_0x37d964['OuDos'],'ueqBw':_0x37d964[_0x56356e(0x1f3)],'RuWHu':function(_0x26c521,_0x1bc47d){const _0x2849b9=_0x56356e;return _0x37d964[_0x2849b9(0x1b5)](_0x26c521,_0x1bc47d);},'umliH':_0x37d964[_0x56356e(0x1f5)],'cdJGw':_0x37d964[_0x56356e(0x273)],'biCRD':_0x37d964[_0x56356e(0x24c)],'tIVDR':_0x37d964[_0x56356e(0x221)],'yXPUm':function(_0x2893f0,_0x7ff2db,_0x1ead04,_0x3ff4cf,_0x52eef3){const _0xc25a97=_0x56356e;return _0x37d964[_0xc25a97(0x1e6)](_0x2893f0,_0x7ff2db,_0x1ead04,_0x3ff4cf,_0x52eef3);},'lociq':function(_0x5ae759){return _0x37d964['BeaEn'](_0x5ae759);},'oAvGC':_0x37d964[_0x56356e(0x263)],'jLVcu':_0x37d964[_0x56356e(0x1eb)],'XYwcB':_0x37d964[_0x56356e(0x1e0)],'DKOLR':function(_0x410f9f,_0x4dd29c){const _0x1ab082=_0x56356e;return _0x37d964[_0x1ab082(0x1e1)](_0x410f9f,_0x4dd29c);},'cxiTR':_0x37d964[_0x56356e(0x205)],'dIVLL':function(_0x8b3aa4,_0x3d995a){const _0x512a40=_0x56356e;return _0x37d964[_0x512a40(0x1bd)](_0x8b3aa4,_0x3d995a);},'MsMRJ':_0x37d964[_0x56356e(0x277)],'hmrWX':_0x37d964[_0x56356e(0x1fa)],'Lzzcg':_0x37d964[_0x56356e(0x227)]};if(_0x37d964[_0x56356e(0x1e1)](_0x56356e(0x214),_0x37d964[_0x56356e(0x1f8)])){const _0x2ebe56=[];let _0x117b72=null,_0x30e88c='',_0x148d78=![];log[_0x56356e(0x1b1)]({'cmd':_0x37d964[_0x56356e(0x1eb)],'args':_0x12a3b3[_0x56356e(0x219)](0x0,0x4),'inputLength':_0x3c642d['length']},'Spawning\x20opencode\x20run');const _0x577fe7=spawn(_0x37d964[_0x56356e(0x1eb)],_0x12a3b3,{'stdio':['pipe',_0x37d964['eDPqF'],_0x37d964['eDPqF']],'env':process.env});_0x577fe7[_0x56356e(0x279)][_0x56356e(0x1b8)](_0x3c642d),_0x577fe7[_0x56356e(0x279)][_0x56356e(0x22e)]();const _0x2ed783=_0x37d964[_0x56356e(0x24b)](setTimeout,()=>{const _0x4a850d=_0x56356e,_0x39a2f5={'hDjvT':function(_0x480a5d,_0x43facd){return _0x480a5d>_0x43facd;}};if(_0x8867e4[_0x4a850d(0x1b2)]!==_0x8867e4[_0x4a850d(0x1b2)]){const _0x523f63=_0x25d7e7['findIndex'](_0xcb3800=>_0xcb3800[_0x4a850d(0x216)]===_0x9cb410);if(GQSNpG[_0x4a850d(0x1ba)](_0x523f63,-0x1))_0x52f352['splice'](_0x523f63,0x1);}else{if(_0x148d78)return;_0x148d78=!![],log[_0x4a850d(0x26c)]({'chatId':_0x2f0038,'timeout':this[_0x4a850d(0x1ca)]},'Ops\x20assistant\x20timeout,\x20killing\x20process'),_0x577fe7['kill'](_0x4a850d(0x1ac));const _0x175e00=_0x2ebe56[_0x4a850d(0x1e9)]('');_0x175e00?_0x8867e4[_0x4a850d(0x220)]('fwwOD',_0x8867e4[_0x4a850d(0x208)])?this['sessions']['set'](_0x4172ed,_0x42ec8e):(log[_0x4a850d(0x1bb)]({'chatId':_0x2f0038,'responseLength':_0x175e00[_0x4a850d(0x207)]},_0x8867e4['CWRSN']),_0x8867e4[_0x4a850d(0x269)](_0x59901e,_0x175e00)):_0x8867e4['uMEca'](_0x8867e4['WPymk'],_0x8867e4['WPymk'])?_0x8867e4['CVglr'](_0x3bf081,new Error(_0x8867e4['ZKleo'])):(this['sessions'][_0x4a850d(0x27b)](_0x38cec5,{'id':_0x2184b9,'lastUsed':_0x30428b['now']()}),this['saveSessions'](),_0x34c2c6[_0x4a850d(0x1bb)]({'chatId':_0x4437ea,'sessionId':_0x54af39},_0x4a850d(0x1dc)));}},this[_0x56356e(0x1ca)]);_0x577fe7[_0x56356e(0x270)]['on'](_0x37d964[_0x56356e(0x282)],_0x42e2e9=>{const _0x399666=_0x56356e;if(_0x8867e4[_0x399666(0x220)](_0x399666(0x239),_0x399666(0x294)))_0x328c40['warn']({'code':_0x270f13,'stderr':_0xa8d437['slice'](0x0,0x1f4)},_0x8867e4[_0x399666(0x1ae)]);else{if(_0x148d78)return;const _0x1cc1e0=_0x42e2e9['toString']()[_0x399666(0x1a4)]('\x0a')['filter'](_0x3b881b=>_0x3b881b[_0x399666(0x261)]());for(const _0x50c7a2 of _0x1cc1e0){if(_0x8867e4[_0x399666(0x1c8)](_0x8867e4[_0x399666(0x1cc)],_0x8867e4['umliH']))try{if(_0x8867e4[_0x399666(0x220)](_0x8867e4[_0x399666(0x26e)],_0x399666(0x1c6)))return _0x31b4a8[_0x399666(0x1bb)]({'path':_0x28f4cc,'length':_0x3ef03f['length']},_0x399666(0x209)),_0x32c655['trim']();else{const _0x2b71c8=JSON['parse'](_0x50c7a2);_0x2b71c8[_0x399666(0x271)]===_0x8867e4[_0x399666(0x204)]&&_0x2b71c8['part']?.['text']&&_0x2ebe56['push'](_0x2b71c8[_0x399666(0x23e)]['text']),_0x2b71c8[_0x399666(0x1e4)]&&!_0x117b72&&(_0x117b72=_0x2b71c8[_0x399666(0x1e4)]);}}catch{}else _0x525e60(new _0x43ebae(_0x399666(0x241)+_0x201956['slice'](0x0,0xc8)));}}}),_0x577fe7[_0x56356e(0x1dd)]['on'](_0x56356e(0x297),_0x3c6703=>{const _0x34bee3=_0x56356e;if(_0x148d78)return;_0x30e88c+=_0x3c6703[_0x34bee3(0x1f1)]();}),_0x577fe7['on'](_0x37d964['zBrlH'],_0x226f28=>{const _0x4e3b51=_0x56356e;if(_0x148d78)return;_0x148d78=!![],_0x8867e4[_0x4e3b51(0x269)](clearTimeout,_0x2ed783);_0x117b72&&(this[_0x4e3b51(0x1a5)][_0x4e3b51(0x27b)](_0x2f0038,{'id':_0x117b72,'lastUsed':Date[_0x4e3b51(0x1e5)]()}),this[_0x4e3b51(0x1af)](),log['info']({'chatId':_0x2f0038,'sessionId':_0x117b72},_0x8867e4[_0x4e3b51(0x1d3)]));_0x226f28!==0x0&&_0x8867e4[_0x4e3b51(0x257)](_0x226f28,null)&&log[_0x4e3b51(0x26c)]({'code':_0x226f28,'stderr':_0x30e88c['slice'](0x0,0x1f4)},_0x8867e4[_0x4e3b51(0x1ae)]);const _0x3da11b=_0x2ebe56[_0x4e3b51(0x1e9)]('');if(_0x3da11b){if(_0x8867e4['uMEca'](_0x8867e4[_0x4e3b51(0x228)],_0x8867e4[_0x4e3b51(0x228)]))_0x8867e4[_0x4e3b51(0x225)](_0x59901e,_0x3da11b);else{const _0x1343ab=_0x8867e4[_0x4e3b51(0x1c2)][_0x4e3b51(0x1a4)]('|');let _0x5c2128=0x0;while(!![]){switch(_0x1343ab[_0x5c2128++]){case'0':this[_0x4e3b51(0x1c3)]=new _0x2625c4();continue;case'1':this[_0x4e3b51(0x1be)]=_0x507c38['sessionFile']||zvioCP[_0x4e3b51(0x21d)](_0x3bd948,zvioCP[_0x4e3b51(0x268)](_0x5dd604),zvioCP[_0x4e3b51(0x291)],zvioCP[_0x4e3b51(0x27a)],'ops-assistant-sessions.json');continue;case'2':this[_0x4e3b51(0x22f)]=null;continue;case'3':this[_0x4e3b51(0x22f)]=this[_0x4e3b51(0x1ce)]();continue;case'4':this[_0x4e3b51(0x1a5)]=new _0x2db44d();continue;case'5':this[_0x4e3b51(0x25e)]=_0x49cbd2['opencodeUrl']||_0x4e3b51(0x298);continue;case'6':this[_0x4e3b51(0x1c5)]=new _0x15600f();continue;case'7':this[_0x4e3b51(0x1ca)]=_0x139628[_0x4e3b51(0x1ca)]||0xea60;continue;case'8':this['directory']=_0x8f0518[_0x4e3b51(0x1b3)];continue;case'9':this[_0x4e3b51(0x288)]();continue;}break;}}}else _0x30e88c?_0x8867e4['CVglr'](_0x3bf081,new Error(_0x4e3b51(0x241)+_0x30e88c[_0x4e3b51(0x219)](0x0,0xc8))):_0x8867e4[_0x4e3b51(0x28a)]!==_0x4e3b51(0x259)?(this[_0x4e3b51(0x1a5)]['delete'](_0x491ad7),this[_0x4e3b51(0x1af)](),_0x246554[_0x4e3b51(0x1bb)]({'chatId':_0x1fb61d},_0x4e3b51(0x26d))):_0x3bf081(new Error(_0x8867e4[_0x4e3b51(0x24d)]));}),_0x577fe7['on'](_0x56356e(0x27e),_0x4c7226=>{const _0x4f7850=_0x56356e;if(_0x148d78)return;_0x148d78=!![],_0x8867e4[_0x4f7850(0x269)](clearTimeout,_0x2ed783),_0x8867e4['CVglr'](_0x3bf081,new Error(_0x4f7850(0x284)+_0x4c7226[_0x4f7850(0x1ec)]));});}else{const _0x3f2cab=_0x1267db[_0x56356e(0x1e8)](_0x2ce9e0(this[_0x56356e(0x1be)],_0x56356e(0x23d)));if(_0x3f2cab['sessions']&&zvioCP[_0x56356e(0x220)](typeof _0x3f2cab[_0x56356e(0x1a5)],_0x56356e(0x1df)))for(const [_0x18ce9c,_0x2b7d20]of _0x6341d3[_0x56356e(0x245)](_0x3f2cab[_0x56356e(0x1a5)])){this[_0x56356e(0x1a5)][_0x56356e(0x27b)](_0x18ce9c,_0x2b7d20);}_0x389387['info']({'count':this[_0x56356e(0x1a5)][_0x56356e(0x25b)]},zvioCP['Lzzcg']);}});}[a0_0x5a716c(0x1aa)](_0x4acd84){const _0x2db5c4=a0_0x5a716c,_0x33a1c3={'rTUlc':_0x2db5c4(0x26d)};this['sessions'][_0x2db5c4(0x201)](_0x4acd84),this[_0x2db5c4(0x1af)](),log[_0x2db5c4(0x1bb)]({'chatId':_0x4acd84},_0x33a1c3[_0x2db5c4(0x287)]);}}
|
package/dist/core/qr-crypto.d.ts
CHANGED
package/dist/core/qr-crypto.js
CHANGED
|
@@ -1,66 +1 @@
|
|
|
1
|
-
const QR_SECRET = 'dm_im_qr_key_v2_2026_secure';
|
|
2
|
-
const QR_SALT = 'qr_salt_x9k2';
|
|
3
|
-
function deriveKey() {
|
|
4
|
-
const input = QR_SECRET + QR_SALT;
|
|
5
|
-
const key = [];
|
|
6
|
-
for (let i = 0; i < 32; i++) {
|
|
7
|
-
let h = 0;
|
|
8
|
-
for (let j = 0; j < input.length; j++) {
|
|
9
|
-
h = ((h << 5) - h + input.charCodeAt((i + j) % input.length)) | 0;
|
|
10
|
-
}
|
|
11
|
-
key.push(h & 0xff);
|
|
12
|
-
}
|
|
13
|
-
return key;
|
|
14
|
-
}
|
|
15
|
-
function randomBytes(n) {
|
|
16
|
-
const bytes = [];
|
|
17
|
-
for (let i = 0; i < n; i++) {
|
|
18
|
-
bytes.push(Math.floor(Math.random() * 256));
|
|
19
|
-
}
|
|
20
|
-
return bytes;
|
|
21
|
-
}
|
|
22
|
-
function stringToUtf8Bytes(str) {
|
|
23
|
-
const bytes = [];
|
|
24
|
-
for (let i = 0; i < str.length; i++) {
|
|
25
|
-
const code = str.charCodeAt(i);
|
|
26
|
-
if (code < 0x80) {
|
|
27
|
-
bytes.push(code);
|
|
28
|
-
}
|
|
29
|
-
else if (code < 0x800) {
|
|
30
|
-
bytes.push(0xc0 | (code >> 6), 0x80 | (code & 0x3f));
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
bytes.push(0xe0 | (code >> 12), 0x80 | ((code >> 6) & 0x3f), 0x80 | (code & 0x3f));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return bytes;
|
|
37
|
-
}
|
|
38
|
-
const B64U = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
|
|
39
|
-
function toBase64url(bytes) {
|
|
40
|
-
let res = '';
|
|
41
|
-
for (let i = 0; i < bytes.length; i += 3) {
|
|
42
|
-
const a = bytes[i];
|
|
43
|
-
const b = i + 1 < bytes.length ? bytes[i + 1] : 0;
|
|
44
|
-
const c = i + 2 < bytes.length ? bytes[i + 2] : 0;
|
|
45
|
-
res += B64U[a >> 2];
|
|
46
|
-
res += B64U[((a & 3) << 4) | (b >> 4)];
|
|
47
|
-
if (i + 1 < bytes.length)
|
|
48
|
-
res += B64U[((b & 15) << 2) | (c >> 6)];
|
|
49
|
-
if (i + 2 < bytes.length)
|
|
50
|
-
res += B64U[c & 63];
|
|
51
|
-
}
|
|
52
|
-
return res;
|
|
53
|
-
}
|
|
54
|
-
export function encryptQR(plaintext) {
|
|
55
|
-
const key = deriveKey();
|
|
56
|
-
const iv = randomBytes(4);
|
|
57
|
-
const plainBytes = stringToUtf8Bytes(plaintext);
|
|
58
|
-
const cipherBytes = [];
|
|
59
|
-
for (let i = 0; i < plainBytes.length; i++) {
|
|
60
|
-
const keyIdx = (i + iv[i % 4]) % 32;
|
|
61
|
-
cipherBytes.push(plainBytes[i] ^ key[keyIdx]);
|
|
62
|
-
}
|
|
63
|
-
const payload = [...iv, ...cipherBytes];
|
|
64
|
-
return 'v3:' + toBase64url(payload);
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=qr-crypto.js.map
|
|
1
|
+
const a0_0x226efb=a0_0x2099;(function(_0x1d5e6e,_0x7d90f8){const _0x3ddfb8=a0_0x2099,_0x3c5524=_0x1d5e6e();while(!![]){try{const _0x20a83f=parseInt(_0x3ddfb8(0x1e5))/0x1*(parseInt(_0x3ddfb8(0x1aa))/0x2)+parseInt(_0x3ddfb8(0x1e7))/0x3+-parseInt(_0x3ddfb8(0x1e3))/0x4*(-parseInt(_0x3ddfb8(0x1bc))/0x5)+-parseInt(_0x3ddfb8(0x1da))/0x6*(parseInt(_0x3ddfb8(0x1cb))/0x7)+-parseInt(_0x3ddfb8(0x1e2))/0x8*(-parseInt(_0x3ddfb8(0x1d3))/0x9)+parseInt(_0x3ddfb8(0x1b1))/0xa+-parseInt(_0x3ddfb8(0x1c8))/0xb;if(_0x20a83f===_0x7d90f8)break;else _0x3c5524['push'](_0x3c5524['shift']());}catch(_0x3e8168){_0x3c5524['push'](_0x3c5524['shift']());}}}(a0_0x3e17,0xeccad));const QR_SECRET=process.env.CLAW_QR_SECRET||a0_0x226efb(0x1b9),QR_SALT=process.env.CLAW_QR_SALT||a0_0x226efb(0x1cc);function deriveKey(){const _0x409565=a0_0x226efb,_0x5d68e6={'sFkwD':function(_0x3d7b93,_0x422954){return _0x3d7b93<_0x422954;},'PaDec':function(_0xbf7ebb,_0x31dde0){return _0xbf7ebb<_0x31dde0;},'oMbry':function(_0x262810,_0x5ac4fa){return _0x262810|_0x5ac4fa;},'nKNKM':function(_0x5a1161,_0x50df70){return _0x5a1161>>_0x50df70;},'nGulk':function(_0x2c6e44,_0x30c364){return _0x2c6e44&_0x30c364;},'HLilL':function(_0x58b4ce,_0x27f27f){return _0x58b4ce|_0x27f27f;},'oZxpd':function(_0x50dbc5,_0x338b38){return _0x50dbc5>>_0x338b38;},'YTtYv':function(_0x3dff01,_0xa2031b){return _0x3dff01+_0xa2031b;},'nlauY':function(_0x8d331d,_0x380246){return _0x8d331d!==_0x380246;},'mRnJU':_0x409565(0x1d4),'twHOK':'jxyMG','eFWYE':function(_0x479d92,_0x4deb24){return _0x479d92<<_0x4deb24;},'BbmFG':function(_0x1b13ea,_0x5b4bff){return _0x1b13ea%_0x5b4bff;},'sraVC':function(_0x1356c8,_0x5ec68c){return _0x1356c8&_0x5ec68c;}},_0x36aa3c=_0x5d68e6[_0x409565(0x1ae)](QR_SECRET,QR_SALT),_0x2b9b2f=[];for(let _0x3b7022=0x0;_0x3b7022<0x20;_0x3b7022++){let _0x53f669=0x0;for(let _0x408de7=0x0;_0x5d68e6[_0x409565(0x1ac)](_0x408de7,_0x36aa3c['length']);_0x408de7++){if(_0x5d68e6[_0x409565(0x1c6)](_0x5d68e6[_0x409565(0x1f1)],_0x5d68e6['twHOK']))_0x53f669=_0x5d68e6['eFWYE'](_0x53f669,0x5)-_0x53f669+_0x36aa3c['charCodeAt'](_0x5d68e6[_0x409565(0x1bd)](_0x3b7022+_0x408de7,_0x36aa3c[_0x409565(0x1af)]))|0x0;else{const _0x130e08=_0xa38ab9[_0x409565(0x1d5)](_0x32ec68);if(_0x5d68e6[_0x409565(0x1c1)](_0x130e08,0x80))_0x493049[_0x409565(0x1c7)](_0x130e08);else _0x5d68e6[_0x409565(0x1ac)](_0x130e08,0x800)?_0x4cc16c[_0x409565(0x1c7)](_0x5d68e6[_0x409565(0x1b7)](0xc0,_0x5d68e6[_0x409565(0x1d0)](_0x130e08,0x6)),_0x5d68e6[_0x409565(0x1b7)](0x80,_0x5d68e6[_0x409565(0x1f0)](_0x130e08,0x3f))):_0x5be71a['push'](_0x5d68e6[_0x409565(0x1d9)](0xe0,_0x5d68e6['oZxpd'](_0x130e08,0xc)),_0x5d68e6[_0x409565(0x1d9)](0x80,_0x5d68e6[_0x409565(0x1f0)](_0x130e08>>0x6,0x3f)),0x80|_0x130e08&0x3f);}}_0x2b9b2f[_0x409565(0x1c7)](_0x5d68e6['sraVC'](_0x53f669,0xff));}return _0x2b9b2f;}function randomBytes(_0x38b2fc){const _0x1faddc=a0_0x226efb,_0x4d3fee={'geVdz':function(_0x35217a,_0x56acb2){return _0x35217a<_0x56acb2;},'pHrWW':function(_0x112777,_0x1ef2de){return _0x112777+_0x1ef2de;},'ZHfjI':function(_0x5d2f3f,_0x46ed97){return _0x5d2f3f-_0x46ed97;},'qawjt':function(_0x135e68,_0x3b6933){return _0x135e68%_0x3b6933;},'LXQxa':function(_0x46810a,_0x2859fe){return _0x46810a<_0x2859fe;},'ATEhQ':'wFkhr','aYLNh':function(_0x1b05db,_0x14c6f5){return _0x1b05db*_0x14c6f5;}},_0x1e8064=[];for(let _0x4b33a4=0x0;_0x4d3fee[_0x1faddc(0x1c3)](_0x4b33a4,_0x38b2fc);_0x4b33a4++){if(_0x4d3fee[_0x1faddc(0x1c9)]!==_0x4d3fee[_0x1faddc(0x1c9)]){let _0x14506e=0x0;for(let _0x14e994=0x0;jeZJDj['geVdz'](_0x14e994,_0x97efcd['length']);_0x14e994++){_0x14506e=jeZJDj[_0x1faddc(0x1dc)](jeZJDj['ZHfjI'](_0x14506e<<0x5,_0x14506e),_0x505447['charCodeAt'](jeZJDj[_0x1faddc(0x1ec)](_0xa105a3+_0x14e994,_0x2f4399[_0x1faddc(0x1af)])))|0x0;}_0x53551f[_0x1faddc(0x1c7)](_0x14506e&0xff);}else _0x1e8064[_0x1faddc(0x1c7)](Math[_0x1faddc(0x1ea)](_0x4d3fee['aYLNh'](Math['random'](),0x100)));}return _0x1e8064;}function stringToUtf8Bytes(_0x35945e){const _0xa29b17=a0_0x226efb,_0x293815={'BLBek':function(_0x5f1279,_0x4c0522){return _0x5f1279<_0x4c0522;},'DkSMA':function(_0x2dbf25,_0x28ed63){return _0x2dbf25+_0x28ed63;},'UZvLO':function(_0x7375b7,_0x42e7cf){return _0x7375b7|_0x42e7cf;},'bTeRN':function(_0x517e12,_0x12f764){return _0x517e12<<_0x12f764;},'FUVnK':function(_0xb241c2,_0x3b7e98){return _0xb241c2&_0x3b7e98;},'Ibfjc':function(_0x430fbe,_0x4e404a){return _0x430fbe+_0x4e404a;},'ShWjV':function(_0x4a5566,_0x1e94fc){return _0x4a5566|_0x1e94fc;},'RpsTA':function(_0x35da74,_0x185549){return _0x35da74&_0x185549;},'KbuuI':function(_0xb078ca,_0xe84378){return _0xb078ca+_0xe84378;},'tZzFb':function(_0x4b9866,_0x1a26ea){return _0x4b9866>>_0x1a26ea;},'NMmYf':function(_0x33d8cf,_0x24a023){return _0x33d8cf|_0x24a023;},'PODBR':function(_0x215518,_0x196ee2){return _0x215518&_0x196ee2;},'chTce':function(_0x59e00f,_0x1b26b9){return _0x59e00f<_0x1b26b9;},'DmHjA':function(_0x580955,_0x5170a4){return _0x580955===_0x5170a4;},'SaLOC':'PbmPz','gOVir':_0xa29b17(0x1d6),'kAgjt':_0xa29b17(0x1a9),'aFpXx':function(_0x412335,_0x44e927){return _0x412335<_0x44e927;},'jbUND':function(_0x572582,_0x2689ee){return _0x572582>>_0x2689ee;},'XDImY':function(_0x591e43,_0x40e003){return _0x591e43===_0x40e003;},'zuLAP':function(_0xd76cd8,_0x324d29){return _0xd76cd8>>_0x324d29;},'KVZVx':function(_0x69adf8,_0x2f1c94){return _0x69adf8&_0x2f1c94;}},_0x1912bf=[];for(let _0xddf07b=0x0;_0x293815[_0xa29b17(0x1ef)](_0xddf07b,_0x35945e[_0xa29b17(0x1af)]);_0xddf07b++){if(_0x293815[_0xa29b17(0x1cf)](_0x293815[_0xa29b17(0x1d2)],_0xa29b17(0x1ca))){const _0x41de95=_0x35945e[_0xa29b17(0x1d5)](_0xddf07b);if(_0x41de95<0x80){if(_0x293815['gOVir']===_0x293815[_0xa29b17(0x1b8)]){const _0x3a9866=_0x47f3de[_0x1a069e],_0x5b6ccd=_0x293815[_0xa29b17(0x1ba)](_0x293815['DkSMA'](_0x4def2b,0x1),_0x38d812[_0xa29b17(0x1af)])?_0xc4df02[_0x467ccf+0x1]:0x0,_0x50f5f3=_0x293815[_0xa29b17(0x1ba)](_0x2039f3+0x2,_0x3aabd1[_0xa29b17(0x1af)])?_0x35a4fe[_0x4200cc+0x2]:0x0;_0xac2c49+=_0x2135af[_0x3a9866>>0x2],_0x4d49cc+=_0x51e38c[_0x293815[_0xa29b17(0x1c0)](_0x293815[_0xa29b17(0x1df)](_0x293815['FUVnK'](_0x3a9866,0x3),0x4),_0x5b6ccd>>0x4)];if(_0x293815[_0xa29b17(0x1ba)](_0x293815['Ibfjc'](_0x5e9825,0x1),_0x1ad40c[_0xa29b17(0x1af)]))_0x3af1f6+=_0x3289e0[_0x293815[_0xa29b17(0x1f2)](_0x293815[_0xa29b17(0x1df)](_0x293815['RpsTA'](_0x5b6ccd,0xf),0x2),_0x50f5f3>>0x6)];if(_0x293815[_0xa29b17(0x1ce)](_0x35dc74,0x2)<_0x545d9e[_0xa29b17(0x1af)])_0x22cca6+=_0x17a221[_0x293815[_0xa29b17(0x1db)](_0x50f5f3,0x3f)];}else _0x1912bf[_0xa29b17(0x1c7)](_0x41de95);}else _0x293815[_0xa29b17(0x1bf)](_0x41de95,0x800)?_0x1912bf[_0xa29b17(0x1c7)](_0x293815[_0xa29b17(0x1c0)](0xc0,_0x293815[_0xa29b17(0x1bb)](_0x41de95,0x6)),0x80|_0x293815['RpsTA'](_0x41de95,0x3f)):_0x293815[_0xa29b17(0x1b6)](_0xa29b17(0x1c5),_0xa29b17(0x1c5))?_0x1912bf[_0xa29b17(0x1c7)](_0x293815[_0xa29b17(0x1c0)](0xe0,_0x293815[_0xa29b17(0x1b3)](_0x41de95,0xc)),_0x293815[_0xa29b17(0x1f2)](0x80,_0x293815['PODBR'](_0x41de95>>0x6,0x3f)),0x80|_0x293815[_0xa29b17(0x1d1)](_0x41de95,0x3f)):_0x4c53b5['push'](_0x293815['ShWjV'](0xc0,_0x293815[_0xa29b17(0x1e0)](_0x4312a1,0x6)),_0x293815['NMmYf'](0x80,_0x293815[_0xa29b17(0x1ad)](_0x286a7e,0x3f)));}else _0x237a7e[_0xa29b17(0x1c7)](_0x5e4af3);}return _0x1912bf;}function a0_0x3e17(){const _0xe62491=['s1zAvNG','u2fmt0m','ndvqwvDsrgy','Afrkq0y','y2HHCKnVzgvbDa','C3HkCeu','D2rlCva','v2TNzLq','seXPBeW','odu2oteYogjssxj2Aq','rLvwBKS','CeHYv1C','tfHNEMS','wfz6q1y','yLrLuK4','DfP6rMi','BvnuCLK','mti5mJaYng9iB0Pvta','ndm1odq0CgXvChL6','qujdrevgr0HjsKTmtu5puffsu1rvvLDywvPHyMnKzwzNAgLQA2XTBM9WCxjZDhv2D3H5EJaXmJm0nty3odKTxW','nurgu2r6za','v2jjvuO','mZi4mdu1n3PMqLP2sq','zg1wCK0','u1PLu24','zMXVB3i','CfDIA3G','Cwf3ANq','CgzIuKm','zfnPqMi','y2Huy2u','BKD1BgS','BvjUsLu','u2HxALy','sM5Qu1a','nduZntbsA3LAsLO','DJm6','ugfezwm','ue9eqLi','wvr0wxy','BgvUz3rO','vhLhCgK','mte3mti0mtb1vNzetM0','u05NtgO','ENvmqva','AhnowNK','Cw5lrhi','werjBvK','B01ICNK','A0fNANq','zg1FAw1FCxjFA2v5x3yYxZiWmJzFC2vJDxjL','qKXczwS','AMjvtKq','mtbNv2TIugG','qMjTrKC','yKnbwhm','yuzWwhG','vvP2te8','C0zRD0q','u3rOALG','tfHrEge','seH6y2W','ywnKz3m','BMXHDvK','ChvZAa','mteWnJaZmtnlC1nbuLG','qvrfAfe','ugjTuhO','n1H6zw92tq','CxjFC2fSDf94owSY','wMHsDge','s2j1DuK','rg1iAKe','BKTos00'];a0_0x3e17=function(){return _0xe62491;};return a0_0x3e17();}const B64U=a0_0x226efb(0x1e4);function toBase64url(_0x2b90e2){const _0x2ae616=a0_0x226efb,_0x564937={'ZhRta':function(_0xd0a98e,_0x11a973){return _0xd0a98e|_0x11a973;},'mSTrY':function(_0x61a455,_0x5bbe43){return _0x61a455+_0x5bbe43;},'SNgLj':function(_0x235903,_0xb45fd1){return _0x235903<<_0xb45fd1;},'pWbkx':function(_0x264441,_0xcec551){return _0x264441+_0xcec551;},'SZeSn':function(_0x248be1,_0x78ed91){return _0x248be1<_0x78ed91;},'pfbRC':function(_0x4b0a32,_0x569191){return _0x4b0a32!==_0x569191;},'qnKDr':_0x2ae616(0x1be),'wHUgb':'XvHJC','LXgzk':function(_0x3d58a5,_0x43f43e){return _0x3d58a5<_0x43f43e;},'HHzcl':function(_0x2ef1fd,_0x37fe09){return _0x2ef1fd+_0x37fe09;},'TyGpi':function(_0xab943b,_0x4341c8){return _0xab943b+_0x4341c8;},'dSiBb':function(_0x30b9d3,_0x3d6609){return _0x30b9d3+_0x3d6609;},'WkgfT':function(_0x3f15f2,_0x5b28f6){return _0x3f15f2>>_0x5b28f6;},'ujnpS':function(_0x131b15,_0x145e23){return _0x131b15<<_0x145e23;},'WbIUJ':function(_0x4ea2c0,_0xe69da){return _0x4ea2c0+_0xe69da;},'XVzCV':function(_0x59ee54,_0x3bde1a){return _0x59ee54|_0x3bde1a;},'hsNZy':function(_0x4fdbd3,_0x2f46ac){return _0x4fdbd3&_0x2f46ac;},'QujLi':function(_0x25fa89,_0x86e3df){return _0x25fa89<_0x86e3df;},'wdKqP':function(_0x21f881,_0x30eec0){return _0x21f881+_0x30eec0;}};let _0x25c033='';for(let _0xecb9a3=0x0;_0x564937[_0x2ae616(0x1e9)](_0xecb9a3,_0x2b90e2[_0x2ae616(0x1af)]);_0xecb9a3+=0x3){if(_0x564937[_0x2ae616(0x1ed)](_0x564937[_0x2ae616(0x1b5)],_0x564937['wHUgb'])){const _0x962667=_0x2b90e2[_0xecb9a3],_0x27d3de=_0x564937[_0x2ae616(0x1dd)](_0x564937[_0x2ae616(0x1c4)](_0xecb9a3,0x1),_0x2b90e2[_0x2ae616(0x1af)])?_0x2b90e2[_0x564937[_0x2ae616(0x1b0)](_0xecb9a3,0x1)]:0x0,_0x1307fb=_0x564937[_0x2ae616(0x1e9)](_0x564937[_0x2ae616(0x1ee)](_0xecb9a3,0x2),_0x2b90e2[_0x2ae616(0x1af)])?_0x2b90e2[_0xecb9a3+0x2]:0x0;_0x25c033+=B64U[_0x564937[_0x2ae616(0x1d8)](_0x962667,0x2)],_0x25c033+=B64U[_0x564937[_0x2ae616(0x1cd)](_0x564937['ujnpS'](_0x962667&0x3,0x4),_0x564937[_0x2ae616(0x1d8)](_0x27d3de,0x4))];if(_0x564937[_0x2ae616(0x1e6)](_0xecb9a3,0x1)<_0x2b90e2['length'])_0x25c033+=B64U[_0x564937[_0x2ae616(0x1de)](_0x564937[_0x2ae616(0x1b2)](_0x564937[_0x2ae616(0x1b4)](_0x27d3de,0xf),0x2),_0x564937[_0x2ae616(0x1d8)](_0x1307fb,0x6))];if(_0x564937['QujLi'](_0x564937[_0x2ae616(0x1d7)](_0xecb9a3,0x2),_0x2b90e2[_0x2ae616(0x1af)]))_0x25c033+=B64U[_0x564937[_0x2ae616(0x1b4)](_0x1307fb,0x3f)];}else _0x43bc6c=tWqHWj[_0x2ae616(0x1cd)](tWqHWj[_0x2ae616(0x1e1)](tWqHWj[_0x2ae616(0x1b2)](_0x53dda8,0x5)-_0x51423a,_0x44f499['charCodeAt'](tWqHWj[_0x2ae616(0x1eb)](_0x14bd2b,_0x1671a6)%_0x196ddb[_0x2ae616(0x1af)])),0x0);}return _0x25c033;}function a0_0x2099(_0x44f1f5,_0x3955a9){_0x44f1f5=_0x44f1f5-0x1a9;const _0x3e173b=a0_0x3e17();let _0x20998d=_0x3e173b[_0x44f1f5];if(a0_0x2099['Fuhofv']===undefined){var _0x496ca4=function(_0xe6dca7){const _0x2e2ece='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x41eea6='',_0x1b3fb3='';for(let _0x4130d8=0x0,_0x2a41f6,_0x191585,_0x41a90a=0x0;_0x191585=_0xe6dca7['charAt'](_0x41a90a++);~_0x191585&&(_0x2a41f6=_0x4130d8%0x4?_0x2a41f6*0x40+_0x191585:_0x191585,_0x4130d8++%0x4)?_0x41eea6+=String['fromCharCode'](0xff&_0x2a41f6>>(-0x2*_0x4130d8&0x6)):0x0){_0x191585=_0x2e2ece['indexOf'](_0x191585);}for(let _0x322f5e=0x0,_0x523bda=_0x41eea6['length'];_0x322f5e<_0x523bda;_0x322f5e++){_0x1b3fb3+='%'+('00'+_0x41eea6['charCodeAt'](_0x322f5e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b3fb3);};a0_0x2099['BxXQxs']=_0x496ca4,a0_0x2099['TpKEkH']={},a0_0x2099['Fuhofv']=!![];}const _0x594048=_0x3e173b[0x0],_0x23b760=_0x44f1f5+_0x594048,_0x48128e=a0_0x2099['TpKEkH'][_0x23b760];return!_0x48128e?(_0x20998d=a0_0x2099['BxXQxs'](_0x20998d),a0_0x2099['TpKEkH'][_0x23b760]=_0x20998d):_0x20998d=_0x48128e,_0x20998d;}export function encryptQR(_0x1dfe33){const _0x20ed2f=a0_0x226efb,_0x16e7fb={'SthjX':function(_0x53f737,_0x2ce8cf){return _0x53f737(_0x2ce8cf);},'mqSKd':function(_0x482744,_0x490bf4){return _0x482744<_0x490bf4;},'dmVrM':function(_0x15807a,_0x4f0f34){return _0x15807a%_0x4f0f34;},'Bthra':function(_0x4ef656,_0x2c60cf){return _0x4ef656+_0x2c60cf;},'iRlpC':_0x20ed2f(0x1ab)},_0x50ea63=deriveKey(),_0x334093=_0x16e7fb[_0x20ed2f(0x1c2)](randomBytes,0x4),_0x3495ab=_0x16e7fb[_0x20ed2f(0x1c2)](stringToUtf8Bytes,_0x1dfe33),_0x1cb44e=[];for(let _0x1b95a4=0x0;_0x16e7fb['mqSKd'](_0x1b95a4,_0x3495ab[_0x20ed2f(0x1af)]);_0x1b95a4++){const _0x45ced6=_0x16e7fb[_0x20ed2f(0x1e8)](_0x16e7fb['Bthra'](_0x1b95a4,_0x334093[_0x16e7fb[_0x20ed2f(0x1e8)](_0x1b95a4,0x4)]),0x20);_0x1cb44e['push'](_0x3495ab[_0x1b95a4]^_0x50ea63[_0x45ced6]);}const _0x1f4f15=[..._0x334093,..._0x1cb44e];return _0x16e7fb['iRlpC']+_0x16e7fb['SthjX'](toBase64url,_0x1f4f15);}
|
|
@@ -1,144 +1 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
2
|
-
import { dirname, join } from 'path';
|
|
3
|
-
import { homedir } from 'os';
|
|
4
|
-
import { createLogger } from './logger.js';
|
|
5
|
-
const log = createLogger('SessionManager');
|
|
6
|
-
const DEFAULT_STORAGE_PATH = join(homedir(), '.config', 'opencode', 'clawmessenger-sessions.json');
|
|
7
|
-
export class SessionManager {
|
|
8
|
-
constructor(opencode, storagePath) {
|
|
9
|
-
this.sessions = new Map();
|
|
10
|
-
this.creating = new Map();
|
|
11
|
-
this.opencode = opencode;
|
|
12
|
-
this.storagePath = storagePath || DEFAULT_STORAGE_PATH;
|
|
13
|
-
this.restore();
|
|
14
|
-
}
|
|
15
|
-
async getOrCreateSession(chatId, title) {
|
|
16
|
-
const existing = this.sessions.get(chatId);
|
|
17
|
-
if (existing) {
|
|
18
|
-
try {
|
|
19
|
-
const alive = await this.opencode.sessionExists(existing.id);
|
|
20
|
-
if (alive)
|
|
21
|
-
return existing;
|
|
22
|
-
// Only delete if explicitly confirmed not alive, not on error
|
|
23
|
-
this.sessions.delete(chatId);
|
|
24
|
-
}
|
|
25
|
-
catch (err) {
|
|
26
|
-
// Network error: keep existing session, don't delete
|
|
27
|
-
log.warn({ chatId, sessionId: existing.id, err }, 'sessionExists check failed, keeping existing session');
|
|
28
|
-
return existing;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
const pending = this.creating.get(chatId);
|
|
32
|
-
if (pending)
|
|
33
|
-
return pending;
|
|
34
|
-
const promise = (async () => {
|
|
35
|
-
const session = await this.opencode.createSession(title || `ClawMessenger ${chatId}`);
|
|
36
|
-
const info = {
|
|
37
|
-
id: session.id,
|
|
38
|
-
chatId,
|
|
39
|
-
status: 'idle',
|
|
40
|
-
};
|
|
41
|
-
this.sessions.set(chatId, info);
|
|
42
|
-
log.info({ chatId, sessionId: session.id }, 'Created new session');
|
|
43
|
-
this.scheduleSave();
|
|
44
|
-
return info;
|
|
45
|
-
})();
|
|
46
|
-
this.creating.set(chatId, promise);
|
|
47
|
-
try {
|
|
48
|
-
return await promise;
|
|
49
|
-
}
|
|
50
|
-
finally {
|
|
51
|
-
this.creating.delete(chatId);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
getSession(chatId) {
|
|
55
|
-
return this.sessions.get(chatId);
|
|
56
|
-
}
|
|
57
|
-
getSessionByOpencodeId(sessionId) {
|
|
58
|
-
for (const [, info] of this.sessions.entries()) {
|
|
59
|
-
if (info.id === sessionId)
|
|
60
|
-
return info;
|
|
61
|
-
}
|
|
62
|
-
return undefined;
|
|
63
|
-
}
|
|
64
|
-
getChatIdBySession(sessionId) {
|
|
65
|
-
for (const [chatId, info] of this.sessions.entries()) {
|
|
66
|
-
if (info.id === sessionId)
|
|
67
|
-
return chatId;
|
|
68
|
-
}
|
|
69
|
-
return undefined;
|
|
70
|
-
}
|
|
71
|
-
updateStatus(chatId, status) {
|
|
72
|
-
const session = this.sessions.get(chatId);
|
|
73
|
-
if (session) {
|
|
74
|
-
session.status = status;
|
|
75
|
-
log.info({ chatId, status }, 'Session status updated');
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
updateExtra(chatId, extra) {
|
|
79
|
-
const session = this.sessions.get(chatId);
|
|
80
|
-
if (session) {
|
|
81
|
-
session.extra = { ...session.extra, ...extra };
|
|
82
|
-
log.info({ chatId, extraKeys: Object.keys(extra) }, 'Session extra updated');
|
|
83
|
-
this.scheduleSave();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
deleteSession(chatId) {
|
|
87
|
-
this.sessions.delete(chatId);
|
|
88
|
-
this.scheduleSave();
|
|
89
|
-
}
|
|
90
|
-
getAllSessions() {
|
|
91
|
-
return Array.from(this.sessions.values());
|
|
92
|
-
}
|
|
93
|
-
async cleanup() {
|
|
94
|
-
if (this.saveTimer) {
|
|
95
|
-
clearTimeout(this.saveTimer);
|
|
96
|
-
this.saveTimer = undefined;
|
|
97
|
-
}
|
|
98
|
-
this.saveNow();
|
|
99
|
-
}
|
|
100
|
-
restore() {
|
|
101
|
-
if (!existsSync(this.storagePath))
|
|
102
|
-
return;
|
|
103
|
-
try {
|
|
104
|
-
const data = JSON.parse(readFileSync(this.storagePath, 'utf-8'));
|
|
105
|
-
if (data.version === 1 && Array.isArray(data.sessions)) {
|
|
106
|
-
for (const s of data.sessions) {
|
|
107
|
-
this.sessions.set(s.chatId, {
|
|
108
|
-
id: s.sessionId,
|
|
109
|
-
chatId: s.chatId,
|
|
110
|
-
status: 'idle',
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
log.info({ count: data.sessions.length }, 'Restored sessions');
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
catch (err) {
|
|
117
|
-
log.warn({ err }, 'Failed to restore sessions');
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
scheduleSave() {
|
|
121
|
-
if (this.saveTimer)
|
|
122
|
-
clearTimeout(this.saveTimer);
|
|
123
|
-
this.saveTimer = setTimeout(() => this.saveNow(), 500);
|
|
124
|
-
}
|
|
125
|
-
saveNow() {
|
|
126
|
-
const state = {
|
|
127
|
-
version: 1,
|
|
128
|
-
sessions: Array.from(this.sessions.entries()).map(([chatId, info]) => ({
|
|
129
|
-
chatId,
|
|
130
|
-
sessionId: info.id,
|
|
131
|
-
})),
|
|
132
|
-
};
|
|
133
|
-
try {
|
|
134
|
-
const dir = dirname(this.storagePath);
|
|
135
|
-
if (!existsSync(dir))
|
|
136
|
-
mkdirSync(dir, { recursive: true });
|
|
137
|
-
writeFileSync(this.storagePath, JSON.stringify(state, null, 2));
|
|
138
|
-
}
|
|
139
|
-
catch (err) {
|
|
140
|
-
log.error({ err }, 'Failed to save sessions');
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
//# sourceMappingURL=session-manager.js.map
|
|
1
|
+
const a0_0x5592f8=a0_0x5619;function a0_0x5619(_0x313c2a,_0x2b9209){_0x313c2a=_0x313c2a-0x1b1;const _0x3a4f1d=a0_0x3a4f();let _0x56198e=_0x3a4f1d[_0x313c2a];if(a0_0x5619['lGjbPI']===undefined){var _0xc07ac=function(_0x432167){const _0x25c403='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x38e4cf='',_0x4b4b70='';for(let _0x3f68a7=0x0,_0x4a53fb,_0x38aab0,_0x8322dd=0x0;_0x38aab0=_0x432167['charAt'](_0x8322dd++);~_0x38aab0&&(_0x4a53fb=_0x3f68a7%0x4?_0x4a53fb*0x40+_0x38aab0:_0x38aab0,_0x3f68a7++%0x4)?_0x38e4cf+=String['fromCharCode'](0xff&_0x4a53fb>>(-0x2*_0x3f68a7&0x6)):0x0){_0x38aab0=_0x25c403['indexOf'](_0x38aab0);}for(let _0x1315ff=0x0,_0x3f5f21=_0x38e4cf['length'];_0x1315ff<_0x3f5f21;_0x1315ff++){_0x4b4b70+='%'+('00'+_0x38e4cf['charCodeAt'](_0x1315ff)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4b4b70);};a0_0x5619['DPiJxh']=_0xc07ac,a0_0x5619['RdYOWW']={},a0_0x5619['lGjbPI']=!![];}const _0x4ea10b=_0x3a4f1d[0x0],_0x9bf12b=_0x313c2a+_0x4ea10b,_0x4b4ddb=a0_0x5619['RdYOWW'][_0x9bf12b];return!_0x4b4ddb?(_0x56198e=a0_0x5619['DPiJxh'](_0x56198e),a0_0x5619['RdYOWW'][_0x9bf12b]=_0x56198e):_0x56198e=_0x4b4ddb,_0x56198e;}(function(_0x3f354a,_0x227298){const _0x4414e3=a0_0x5619,_0x2a3299=_0x3f354a();while(!![]){try{const _0xf052c9=-parseInt(_0x4414e3(0x1c2))/0x1*(parseInt(_0x4414e3(0x1fc))/0x2)+-parseInt(_0x4414e3(0x1bd))/0x3+-parseInt(_0x4414e3(0x208))/0x4+parseInt(_0x4414e3(0x1b7))/0x5+-parseInt(_0x4414e3(0x1fa))/0x6*(parseInt(_0x4414e3(0x20f))/0x7)+parseInt(_0x4414e3(0x1ff))/0x8*(parseInt(_0x4414e3(0x1cd))/0x9)+-parseInt(_0x4414e3(0x1f7))/0xa*(-parseInt(_0x4414e3(0x1c1))/0xb);if(_0xf052c9===_0x227298)break;else _0x2a3299['push'](_0x2a3299['shift']());}catch(_0x189f1f){_0x2a3299['push'](_0x2a3299['shift']());}}}(a0_0x3a4f,0x70597));import{existsSync,mkdirSync,readFileSync,writeFileSync}from'fs';import{dirname,join}from'path';import{homedir}from'os';import{createLogger}from'./logger.js';const log=createLogger(a0_0x5592f8(0x1e7)),DEFAULT_STORAGE_PATH=join(homedir(),a0_0x5592f8(0x1ea),a0_0x5592f8(0x1df),a0_0x5592f8(0x1dc));function a0_0x3a4f(){const _0x56ef82=['m3WWFdj8nhWX','C3rYAw5NAwz5','lMnVBMzPzW','y3jLyxrPBMC','Aw5MBW','rgfgyNi','DMfSDwvZ','DxrMltG','C3bSAxq','EvDmtKy','rwjRDuK','C3rVCMfNzvbHDgG','yNLMChG','wwvJugK','uMvZDg9YzwqGC2vZC2LVBNm','mteWtK5MAvjd','t1fvvMK','AxnbCNjHEq','mtaXotG1nLzerwfOuq','DxbKyxrLrxH0CMe','mJaWmdm4BfrPt2Ty','C2f2zu5VDW','u1rdrve','nZmXmLvoz2rXqW','EwHgsKi','DeD4t3e','DxbKyxrLu3rHDhvZ','zw50CMLLCW','t2TKwvG','DKfrEe4','q1vSyNy','z2v0','mZe4nJqYmgn3B2zOuW','tNjqvLO','BffMyuy','vxbywe4','u0fVyvO','rMfPBgvKihrVihnHDMuGC2vZC2LVBNm','z2v0qwXSu2vZC2LVBNm','mJfmt1z3s2O','BwfW','q3Hmse4','AKvQExy','C2vZC2LVBKv4Axn0CW','z0D3A3e','vNPqreK','BeD1whC','q2XHD01LC3nLBMDLCIa','zxH0CMe','rMfPBgvKihrVihjLC3rVCMuGC2vZC2LVBNm','mJiWmZq5mgDuEg92Ca','C2f2zvrPBwvY','u2vZC2LVBIbLEhrYysb1CgrHDgvK','u1jRtvy','zgvSzxrL','rhHzqLm','ntK5mtG0veDNqujV','tLfoq20','AwrSzq','vMXkuvy','mtq5nJG5mvzJyNPnAG','mvbgz3nVyW','Dhbqvxq','y2XLyw51Ca','EvjrB1a','z2v0u2vZC2LVBG','A2v5CW','C2v0','CMvZDg9Yzq','DK5pA2u','C2nOzwr1BgvtyxzL','CuDRs2q','mti2oxnqB3PMyG','sgz2vfy','wuLTA3e','zxjYB3i','u0XABMe','C2vZC2LVBKv4Axn0CYbJAgvJAYbMywLSzwqSigTLzxbPBMCGzxHPC3rPBMCGC2vZC2LVBG','C2vZC2LVBKLK','EfnJvhy','D2fYBG','t3bqwwm','vLrQCwW','wgLrENm','y2HHDeLK','sg5REhC','BgvUz3rO','y2XHD21LC3nLBMDLCI1ZzxnZAw9UCY5QC29U','zgvSzxrLu2vZC2LVBG','z01Zv1K','B3bLBMnVzgu','C2vZC2LVBNm','y3jLyxrLu2vZC2LVBG','uKnSquW','zNjVBq','z2v0q2HHDeLKqNLtzxnZAw9U','q3jLyxrLzcbUzxCGC2vZC2LVBG','uev3ve4','u2vZC2LVBK1HBMfNzxi'];a0_0x3a4f=function(){return _0x56ef82;};return a0_0x3a4f();}export class SessionManager{constructor(_0x20aa68,_0x1bd2f6){const _0x1930e0=a0_0x5592f8,_0x1c458e={'VlJQV':'0|4|2|3|1'},_0x56c75c=_0x1c458e[_0x1930e0(0x1c0)][_0x1930e0(0x1f0)]('|');let _0x19a9e9=0x0;while(!![]){switch(_0x56c75c[_0x19a9e9++]){case'0':this['sessions']=new Map();continue;case'1':this['restore']();continue;case'2':this[_0x1930e0(0x1df)]=_0x20aa68;continue;case'3':this[_0x1930e0(0x1f3)]=_0x1bd2f6||DEFAULT_STORAGE_PATH;continue;case'4':this[_0x1930e0(0x1eb)]=new Map();continue;}break;}}async['getOrCreateSession'](_0x346f21,_0x3ea947){const _0x3206c3=a0_0x5592f8,_0x4e74d8={'vAQxN':_0x3206c3(0x1f6),'DxYBS':_0x3206c3(0x1bf),'HcTZA':_0x3206c3(0x1e5),'EbkuI':_0x3206c3(0x1e8),'qGkKd':function(_0x15cbf5,_0x4f4029){return _0x15cbf5===_0x4f4029;},'FhZDa':'SAoaZ','GARqA':function(_0x2910a4,_0x53da0f){return _0x2910a4!==_0x53da0f;},'XwrZc':_0x3206c3(0x1de),'HfvTV':_0x3206c3(0x1cf),'OQUVi':_0x3206c3(0x1d2),'lQfaF':_0x3206c3(0x1b2)},_0x509346=this[_0x3206c3(0x1e0)][_0x3206c3(0x207)](_0x346f21);if(_0x509346){if(_0x4e74d8[_0x3206c3(0x1cc)](_0x3206c3(0x20c),_0x4e74d8['FhZDa']))try{const _0x1a8c6f=await this[_0x3206c3(0x1df)][_0x3206c3(0x213)](_0x509346['id']);if(_0x1a8c6f)return _0x509346;this['sessions'][_0x3206c3(0x1bb)](_0x346f21);}catch(_0x5903bc){if(_0x4e74d8['GARqA'](_0x4e74d8['XwrZc'],_0x4e74d8[_0x3206c3(0x1ce)]))return log[_0x3206c3(0x1d5)]({'chatId':_0x346f21,'sessionId':_0x509346['id'],'err':_0x5903bc},_0x4e74d8[_0x3206c3(0x1f8)]),_0x509346;else{for(const _0x14c4ba of _0x1d3566['sessions']){this[_0x3206c3(0x1e0)]['set'](_0x14c4ba[_0x3206c3(0x1d9)],{'id':_0x14c4ba['sessionId'],'chatId':_0x14c4ba[_0x3206c3(0x1d9)],'status':'idle'});}_0x1be0c7[_0x3206c3(0x1ec)]({'count':_0x1a3366['sessions'][_0x3206c3(0x1db)]},_0x4e74d8[_0x3206c3(0x205)]);}}else return _0x2b0e1e['from'](this[_0x3206c3(0x1e0)][_0x3206c3(0x1ee)]());}const _0x1b7c03=this[_0x3206c3(0x1eb)][_0x3206c3(0x207)](_0x346f21);if(_0x1b7c03)return _0x1b7c03;const _0x119eae=((async()=>{const _0x1e2b06=_0x3206c3,_0xb9c0fc=await this[_0x1e2b06(0x1df)][_0x1e2b06(0x1e1)](_0x3ea947||_0x1e2b06(0x1b4)+_0x346f21),_0x50ceac={'id':_0xb9c0fc['id'],'chatId':_0x346f21,'status':_0x4e74d8[_0x1e2b06(0x1bc)]};return this[_0x1e2b06(0x1e0)][_0x1e2b06(0x1c8)](_0x346f21,_0x50ceac),log['info']({'chatId':_0x346f21,'sessionId':_0xb9c0fc['id']},_0x4e74d8['HcTZA']),this[_0x1e2b06(0x1cb)](),_0x50ceac;})());this[_0x3206c3(0x1eb)]['set'](_0x346f21,_0x119eae);try{if(_0x4e74d8[_0x3206c3(0x1cc)](_0x4e74d8[_0x3206c3(0x20a)],_0x4e74d8[_0x3206c3(0x20a)]))return await _0x119eae;else{const _0x4d9c7b=_0x4e74d8[_0x3206c3(0x1f2)][_0x3206c3(0x1f0)]('|');let _0x501a58=0x0;while(!![]){switch(_0x4d9c7b[_0x501a58++]){case'0':this['creating']=new _0x1315ff();continue;case'1':this[_0x3206c3(0x1c9)]();continue;case'2':this[_0x3206c3(0x1df)]=_0x3f5f21;continue;case'3':this[_0x3206c3(0x1e0)]=new _0x8322dd();continue;case'4':this[_0x3206c3(0x1f3)]=_0x1fe61b||_0xc44955;continue;}break;}}}finally{this[_0x3206c3(0x1eb)]['delete'](_0x346f21);}}[a0_0x5592f8(0x1c6)](_0x24592d){const _0x13983c=a0_0x5592f8;return this[_0x13983c(0x1e0)][_0x13983c(0x207)](_0x24592d);}['getSessionByOpencodeId'](_0x1da97d){const _0xaab8d4=a0_0x5592f8;for(const [,_0x3ab83f]of this[_0xaab8d4(0x1e0)][_0xaab8d4(0x203)]()){if(_0x3ab83f['id']===_0x1da97d)return _0x3ab83f;}return undefined;}[a0_0x5592f8(0x1e4)](_0x6ca593){const _0x9fc6e4=a0_0x5592f8,_0x99472b={'uQoJx':function(_0x1a6a41,_0x53a957){return _0x1a6a41!==_0x53a957;},'NQNCm':_0x9fc6e4(0x211),'OkdYX':function(_0x1cb4a3,_0xcf3505){return _0x1cb4a3===_0xcf3505;}};for(const [_0x33387b,_0x3ca38e]of this['sessions']['entries']()){if(_0x99472b['uQoJx'](_0x9fc6e4(0x211),_0x99472b[_0x9fc6e4(0x1be)]))_0x36e259[_0x9fc6e4(0x1d0)]({'err':_0x2c7785},_0x9fc6e4(0x20d));else{if(_0x99472b[_0x9fc6e4(0x204)](_0x3ca38e['id'],_0x6ca593))return _0x33387b;}}return undefined;}[a0_0x5592f8(0x202)](_0x1d71a6,_0x1b5a9d){const _0x2f26fe=a0_0x5592f8,_0x157852={'HrRhz':'Session\x20status\x20updated'},_0xb7b9d3=this[_0x2f26fe(0x1e0)][_0x2f26fe(0x207)](_0x1d71a6);_0xb7b9d3&&(_0xb7b9d3['status']=_0x1b5a9d,log[_0x2f26fe(0x1ec)]({'chatId':_0x1d71a6,'status':_0x1b5a9d},_0x157852['HrRhz']));}[a0_0x5592f8(0x1fb)](_0x592e34,_0x586564){const _0x335632=a0_0x5592f8,_0x34cd52={'vQmRJ':_0x335632(0x1b9)},_0x323e91=this[_0x335632(0x1e0)][_0x335632(0x207)](_0x592e34);_0x323e91&&(_0x323e91[_0x335632(0x1b5)]={..._0x323e91[_0x335632(0x1b5)],..._0x586564},log[_0x335632(0x1ec)]({'chatId':_0x592e34,'extraKeys':Object[_0x335632(0x1c7)](_0x586564)},_0x34cd52['vQmRJ']),this[_0x335632(0x1cb)]());}[a0_0x5592f8(0x1dd)](_0x213eff){const _0x5313cd=a0_0x5592f8;this[_0x5313cd(0x1e0)][_0x5313cd(0x1bb)](_0x213eff),this[_0x5313cd(0x1cb)]();}[a0_0x5592f8(0x20e)](){const _0x3a7580=a0_0x5592f8;return Array['from'](this[_0x3a7580(0x1e0)]['values']());}async[a0_0x5592f8(0x1c4)](){const _0x4d69f0=a0_0x5592f8,_0x2e24f8={'vNOke':_0x4d69f0(0x1d2),'nszbD':function(_0x41dfb8,_0x1ae566){return _0x41dfb8===_0x1ae566;},'tpPUt':'ljXnk','gGwkq':_0x4d69f0(0x212),'SLZna':function(_0x2fdca1,_0x3dcad3){return _0x2fdca1(_0x3dcad3);}};if(this[_0x4d69f0(0x1b8)]){if(_0x2e24f8['nszbD'](_0x2e24f8[_0x4d69f0(0x1c3)],_0x2e24f8[_0x4d69f0(0x1b1)]))return _0x4d7515[_0x4d69f0(0x1d5)]({'chatId':_0x32a680,'sessionId':_0x11d24b['id'],'err':_0x427310},DpsPzg[_0x4d69f0(0x1ca)]),_0x3891ec;else _0x2e24f8[_0x4d69f0(0x1d1)](clearTimeout,this[_0x4d69f0(0x1b8)]),this['saveTimer']=undefined;}this[_0x4d69f0(0x1fd)]();}[a0_0x5592f8(0x1c9)](){const _0x3b3900=a0_0x5592f8,_0x1c045a={'yRQoP':_0x3b3900(0x1bf),'STCEQ':function(_0x1cb98e,_0x38c435){return _0x1cb98e===_0x38c435;},'yWLNF':function(_0x9e4151,_0x47b7d3){return _0x9e4151(_0x47b7d3);},'UpXXN':function(_0x5f01d0,_0x24d988,_0x516692){return _0x5f01d0(_0x24d988,_0x516692);},'VTjql':_0x3b3900(0x1ef),'SRkMV':_0x3b3900(0x1e6),'DaFbr':function(_0x4d5bb4,_0xa3a828){return _0x4d5bb4!==_0xa3a828;},'QteaE':_0x3b3900(0x209),'byfpx':_0x3b3900(0x1f6),'lGuXw':_0x3b3900(0x1b6)};if(!_0x1c045a[_0x3b3900(0x1f1)](existsSync,this[_0x3b3900(0x1f3)]))return;try{const _0x1ac440=JSON['parse'](_0x1c045a[_0x3b3900(0x20b)](readFileSync,this[_0x3b3900(0x1f3)],_0x1c045a[_0x3b3900(0x1d7)]));if(_0x1ac440['version']===0x1&&Array[_0x3b3900(0x1f9)](_0x1ac440[_0x3b3900(0x1e0)])){if(_0x1c045a[_0x3b3900(0x1fe)](_0x1c045a[_0x3b3900(0x1ba)],_0x1c045a['SRkMV'])){for(const _0x597296 of _0x1ac440[_0x3b3900(0x1e0)]){_0x1c045a[_0x3b3900(0x1ed)](_0x3b3900(0x206),_0x1c045a['QteaE'])?this[_0x3b3900(0x1e0)]['set'](_0x597296[_0x3b3900(0x1d9)],{'id':_0x597296[_0x3b3900(0x1d3)],'chatId':_0x597296['chatId'],'status':_0x1c045a[_0x3b3900(0x1c5)]}):this[_0x3b3900(0x1e0)][_0x3b3900(0x1c8)](_0x268c9b[_0x3b3900(0x1d9)],{'id':_0x4b893a[_0x3b3900(0x1d3)],'chatId':_0x2f655b[_0x3b3900(0x1d9)],'status':_0x1c045a[_0x3b3900(0x1c5)]});}log[_0x3b3900(0x1ec)]({'count':_0x1ac440[_0x3b3900(0x1e0)][_0x3b3900(0x1db)]},_0x1c045a[_0x3b3900(0x1f4)]);}else{for(const [,_0x2143fc]of this['sessions'][_0x3b3900(0x203)]()){if(aYCMef[_0x3b3900(0x1fe)](_0x2143fc['id'],_0x5125e8))return _0x2143fc;}return _0x346ea0;}}}catch(_0x146260){log[_0x3b3900(0x1d5)]({'err':_0x146260},_0x1c045a[_0x3b3900(0x1b3)]);}}[a0_0x5592f8(0x1cb)](){const _0x262750=a0_0x5592f8,_0x5533cd={'xScTv':function(_0x258b15,_0x58edfb,_0x4a81aa){return _0x258b15(_0x58edfb,_0x4a81aa);}};if(this[_0x262750(0x1b8)])clearTimeout(this['saveTimer']);this[_0x262750(0x1b8)]=_0x5533cd[_0x262750(0x1d4)](setTimeout,()=>this['saveNow'](),0x1f4);}['saveNow'](){const _0x3319f1=a0_0x5592f8,_0x47e301={'mwmBD':function(_0x3922c7,_0x2526cb){return _0x3922c7(_0x2526cb);},'YecPi':function(_0x17e61b,_0x310df2){return _0x17e61b(_0x310df2);},'RClAL':function(_0x4f5e50,_0x354ac8,_0x543aeb){return _0x4f5e50(_0x354ac8,_0x543aeb);},'AwgWV':function(_0x5df09d,_0x3ba08e,_0x45032c){return _0x5df09d(_0x3ba08e,_0x45032c);},'Hnkxw':function(_0x4aeeee,_0x3b6b67){return _0x4aeeee(_0x3b6b67);},'OpPYc':function(_0x36bfb5,_0x14d538){return _0x36bfb5(_0x14d538);},'Tkoao':function(_0x2ef530,_0x3b311e){return _0x2ef530!==_0x3b311e;},'XiQzs':_0x3319f1(0x200),'tGxOq':'Failed\x20to\x20save\x20sessions'},_0x289b88={'version':0x1,'sessions':Array[_0x3319f1(0x1e3)](this['sessions'][_0x3319f1(0x203)]())[_0x3319f1(0x210)](([_0xde58dd,_0x2c0f53])=>({'chatId':_0xde58dd,'sessionId':_0x2c0f53['id']}))};try{const _0x34d154=_0x47e301[_0x3319f1(0x1da)](dirname,this[_0x3319f1(0x1f3)]);if(!_0x47e301[_0x3319f1(0x1d6)](existsSync,_0x34d154))mkdirSync(_0x34d154,{'recursive':!![]});_0x47e301[_0x3319f1(0x1e2)](writeFileSync,this[_0x3319f1(0x1f3)],JSON[_0x3319f1(0x1e9)](_0x289b88,null,0x2));}catch(_0x6cfc3){if(_0x47e301['Tkoao'](_0x47e301[_0x3319f1(0x1d8)],_0x47e301[_0x3319f1(0x1d8)])){const _0x4a275e=_0x47e301['mwmBD'](_0xf9266f,this[_0x3319f1(0x1f3)]);if(!_0x47e301[_0x3319f1(0x1f5)](_0xffe081,_0x4a275e))_0x47e301[_0x3319f1(0x1e2)](_0x5ebe40,_0x4a275e,{'recursive':!![]});_0x47e301['AwgWV'](_0x5d171c,this[_0x3319f1(0x1f3)],_0x536de2[_0x3319f1(0x1e9)](_0x40689b,null,0x2));}else log['error']({'err':_0x6cfc3},_0x47e301[_0x3319f1(0x201)]);}}}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface ClawMessengerConfig {
|
|
|
5
5
|
accountId: string;
|
|
6
6
|
nodeName?: string;
|
|
7
7
|
serverUrl: string;
|
|
8
|
-
opencodeUrl
|
|
8
|
+
opencodeUrl?: string;
|
|
9
9
|
opencodeDir: string;
|
|
10
10
|
opencodePassword?: string;
|
|
11
11
|
apiBaseUrl?: string;
|
|
@@ -75,4 +75,3 @@ export interface HookConfig {
|
|
|
75
75
|
onSessionIdle?: string;
|
|
76
76
|
}
|
|
77
77
|
export type { PluginInput, PluginHooks, Plugin } from '../types/plugin.js';
|
|
78
|
-
//# sourceMappingURL=types.d.ts.map
|