visionclaw 0.1.111 → 0.1.113
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/CHANGELOG.md +34 -0
- package/dist/agent/backup.d.ts.map +1 -1
- package/dist/agent/backup.js +41 -0
- package/dist/agent/backup.js.map +1 -1
- package/dist/agent/client-factory.js +1 -74
- package/dist/agent/command-handlers.d.ts.map +1 -1
- package/dist/agent/command-handlers.js +7 -3
- package/dist/agent/command-handlers.js.map +1 -1
- package/dist/agent/loop.d.ts.map +1 -1
- package/dist/agent/loop.js +16 -1
- package/dist/agent/loop.js.map +1 -1
- package/dist/agent/openai-file-session.js +1 -78
- package/dist/agent/openai-session.js +1 -413
- package/dist/agent/openai-tools.js +1 -167
- package/dist/agent/providers/claude/session.d.ts.map +1 -1
- package/dist/agent/providers/claude/session.js +17 -0
- package/dist/agent/providers/claude/session.js.map +1 -1
- package/dist/agent/runtime-surface.d.ts.map +1 -1
- package/dist/agent/runtime-surface.js +17 -3
- package/dist/agent/runtime-surface.js.map +1 -1
- package/dist/agent/session-trimmer.d.ts +34 -0
- package/dist/agent/session-trimmer.d.ts.map +1 -0
- package/dist/agent/session-trimmer.js +101 -0
- package/dist/agent/session-trimmer.js.map +1 -0
- package/dist/agent/session-types.js +1 -2
- package/dist/agent/session.js +1 -500
- package/dist/agent/state.d.ts +2 -0
- package/dist/agent/state.d.ts.map +1 -1
- package/dist/agent/state.js +14 -0
- package/dist/agent/state.js.map +1 -1
- package/dist/agent/system-prompt.d.ts.map +1 -1
- package/dist/agent/system-prompt.js +5 -3
- package/dist/agent/system-prompt.js.map +1 -1
- package/dist/builtin-skills/visionclaw-manual/SKILL.md +29 -5
- package/dist/channels/slack.js +1 -142
- package/dist/channels/sms.js +1 -111
- package/dist/channels/whatsapp.js +1 -292
- package/dist/config/types.d.ts +3 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +3 -0
- package/dist/config/types.js.map +1 -1
- package/dist/files.js +1 -82
- package/dist/google/default-oauth-app.js +1 -7
- package/dist/index.js +36 -1
- package/dist/index.js.map +1 -1
- package/dist/memory/store.js +1 -71
- package/dist/onboarding/index.d.ts.map +1 -1
- package/dist/onboarding/index.js +55 -6
- package/dist/onboarding/index.js.map +1 -1
- package/dist/onboarding/macos-permissions.d.ts +4 -8
- package/dist/onboarding/macos-permissions.d.ts.map +1 -1
- package/dist/onboarding/macos-permissions.js +79 -28
- package/dist/onboarding/macos-permissions.js.map +1 -1
- package/dist/onboarding/prepare-mac.d.ts.map +1 -1
- package/dist/onboarding/prepare-mac.js +206 -70
- package/dist/onboarding/prepare-mac.js.map +1 -1
- package/dist/onboarding/provisioning-spec.d.ts +5 -0
- package/dist/onboarding/provisioning-spec.d.ts.map +1 -1
- package/dist/onboarding/provisioning-spec.js +6 -0
- package/dist/onboarding/provisioning-spec.js.map +1 -1
- package/dist/onboarding/setup-state.d.ts +1 -0
- package/dist/onboarding/setup-state.d.ts.map +1 -1
- package/dist/onboarding/setup-state.js +1 -0
- package/dist/onboarding/setup-state.js.map +1 -1
- package/dist/restore.d.ts.map +1 -1
- package/dist/restore.js +26 -0
- package/dist/restore.js.map +1 -1
- package/dist/service/launchd.d.ts +11 -0
- package/dist/service/launchd.d.ts.map +1 -0
- package/dist/service/launchd.js +344 -0
- package/dist/service/launchd.js.map +1 -0
- package/dist/tools/browser.js +1 -108
- package/dist/tools/helpers/macos-screenshot.swift +74 -0
- package/dist/tools/screenshot.d.ts.map +1 -1
- package/dist/tools/screenshot.js +55 -2
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/sleep-interval.js +1 -25
- package/dist/tools/upgrade.d.ts.map +1 -1
- package/dist/tools/upgrade.js +2 -1
- package/dist/tools/upgrade.js.map +1 -1
- package/dist/tools/version-check.js +1 -164
- package/dist/tools/web-search.js +1 -2
- package/dist/utils/backup-paths.js +1 -14
- package/dist/utils/restart.d.ts +3 -1
- package/dist/utils/restart.d.ts.map +1 -1
- package/dist/utils/restart.js +43 -26
- package/dist/utils/restart.js.map +1 -1
- package/package.json +5 -3
|
@@ -1,413 +1 @@
|
|
|
1
|
-
import { Agent, OpenAIResponsesCompactionSession, Runner } from "@openai/agents";
|
|
2
|
-
import { loadSessionId, loadUsageSnapshot, saveSessionId, saveUsageSnapshot } from "../config/index.js";
|
|
3
|
-
import { logger } from "../logger.js";
|
|
4
|
-
import { configureOpenAIProvider, createOpenAIClient, getModelId } from "./client-factory.js";
|
|
5
|
-
import { OpenAIFileSession } from "./openai-file-session.js";
|
|
6
|
-
import { createOpenAIMcpServers, createOpenAITools } from "./openai-tools.js";
|
|
7
|
-
const MAX_TURNS = 100;
|
|
8
|
-
export class OpenAIAgentSession {
|
|
9
|
-
config;
|
|
10
|
-
buildSystemPrompt;
|
|
11
|
-
staticMcpServers;
|
|
12
|
-
dynamicMcpServers;
|
|
13
|
-
dualSessionEnabled;
|
|
14
|
-
client;
|
|
15
|
-
runner;
|
|
16
|
-
underlyingSession;
|
|
17
|
-
session;
|
|
18
|
-
abortController = null;
|
|
19
|
-
inputClosed = true;
|
|
20
|
-
stopRequested = false;
|
|
21
|
-
lastUsageSnapshot = null;
|
|
22
|
-
currentRun = null;
|
|
23
|
-
sessionId;
|
|
24
|
-
hasOrphanedInjections = false;
|
|
25
|
-
mode;
|
|
26
|
-
constructor(config, buildSystemPrompt, staticMcpServers, mode = "general", options) {
|
|
27
|
-
configureOpenAIProvider(config);
|
|
28
|
-
this.config = config;
|
|
29
|
-
this.buildSystemPrompt = buildSystemPrompt;
|
|
30
|
-
this.staticMcpServers = staticMcpServers;
|
|
31
|
-
this.dynamicMcpServers = {};
|
|
32
|
-
this.dualSessionEnabled = options?.dualSessionEnabled ?? true;
|
|
33
|
-
this.mode = mode;
|
|
34
|
-
this.client = createOpenAIClient(config);
|
|
35
|
-
this.runner = new Runner({ model: getModelId(config) });
|
|
36
|
-
const persistedSessionId = loadSessionId(mode);
|
|
37
|
-
this.underlyingSession = new OpenAIFileSession({
|
|
38
|
-
fileName: `openai-session-${mode}.json`,
|
|
39
|
-
sessionId: persistedSessionId,
|
|
40
|
-
});
|
|
41
|
-
this.sessionId = this.underlyingSession.getSessionIdSync();
|
|
42
|
-
saveSessionId(this.sessionId, mode);
|
|
43
|
-
this.session = new OpenAIResponsesCompactionSession({
|
|
44
|
-
client: this.client,
|
|
45
|
-
underlyingSession: this.underlyingSession,
|
|
46
|
-
model: getModelId(config),
|
|
47
|
-
});
|
|
48
|
-
const persistedUsage = loadUsageSnapshot(mode);
|
|
49
|
-
if (persistedUsage) {
|
|
50
|
-
this.lastUsageSnapshot = {
|
|
51
|
-
...persistedUsage,
|
|
52
|
-
capturedAtMs: Date.now(),
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
sendAndStream(content) {
|
|
57
|
-
const input = contentBlocksToInputItems(content);
|
|
58
|
-
this.inputClosed = false;
|
|
59
|
-
this.stopRequested = false;
|
|
60
|
-
this.abortController = new AbortController();
|
|
61
|
-
return this.streamMessages(input, this.sessionId);
|
|
62
|
-
}
|
|
63
|
-
injectMessage(_content) {
|
|
64
|
-
// The OpenAI runner does not support mid-run message injection.
|
|
65
|
-
return false;
|
|
66
|
-
}
|
|
67
|
-
closeInput() {
|
|
68
|
-
this.inputClosed = true;
|
|
69
|
-
}
|
|
70
|
-
requestStop() {
|
|
71
|
-
this.stopRequested = true;
|
|
72
|
-
this.inputClosed = true;
|
|
73
|
-
this.abortController?.abort();
|
|
74
|
-
}
|
|
75
|
-
clearStop() {
|
|
76
|
-
this.stopRequested = false;
|
|
77
|
-
this.abortController = null;
|
|
78
|
-
}
|
|
79
|
-
isStopRequested() {
|
|
80
|
-
return this.stopRequested;
|
|
81
|
-
}
|
|
82
|
-
captureSessionId(id) {
|
|
83
|
-
if (!id) {
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
this.sessionId = id;
|
|
87
|
-
saveSessionId(id, this.mode);
|
|
88
|
-
}
|
|
89
|
-
captureUsageSnapshot(snapshot) {
|
|
90
|
-
if (snapshot.contextWindow <= 0) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
this.lastUsageSnapshot = {
|
|
94
|
-
...snapshot,
|
|
95
|
-
capturedAtMs: Date.now(),
|
|
96
|
-
};
|
|
97
|
-
saveUsageSnapshot(snapshot, this.mode);
|
|
98
|
-
}
|
|
99
|
-
capturePostCompactionSnapshot(_postCompactionTokens) {
|
|
100
|
-
// OpenAI compaction is handled by the SDK session decorator.
|
|
101
|
-
}
|
|
102
|
-
async requestCompaction() {
|
|
103
|
-
await this.session.runCompaction({ force: true });
|
|
104
|
-
}
|
|
105
|
-
async maybeCompactByTokens() {
|
|
106
|
-
// Compaction runs inside the OpenAIResponsesCompactionSession decorator.
|
|
107
|
-
}
|
|
108
|
-
getSessionId() {
|
|
109
|
-
return this.sessionId;
|
|
110
|
-
}
|
|
111
|
-
getTranscriptPath() {
|
|
112
|
-
return null;
|
|
113
|
-
}
|
|
114
|
-
getUsageSnapshot() {
|
|
115
|
-
return this.lastUsageSnapshot ? { ...this.lastUsageSnapshot } : null;
|
|
116
|
-
}
|
|
117
|
-
getCurrentQuery() {
|
|
118
|
-
return this.currentRun;
|
|
119
|
-
}
|
|
120
|
-
setDynamicMcpServers(servers) {
|
|
121
|
-
this.dynamicMcpServers = { ...servers };
|
|
122
|
-
}
|
|
123
|
-
getDynamicMcpServers() {
|
|
124
|
-
return { ...this.dynamicMcpServers };
|
|
125
|
-
}
|
|
126
|
-
get isInputClosed() {
|
|
127
|
-
return this.inputClosed;
|
|
128
|
-
}
|
|
129
|
-
async *streamMessages(input, sessionId) {
|
|
130
|
-
const mcpServers = createOpenAIMcpServers({
|
|
131
|
-
...this.staticMcpServers,
|
|
132
|
-
...this.dynamicMcpServers,
|
|
133
|
-
});
|
|
134
|
-
try {
|
|
135
|
-
await connectMcpServers(mcpServers);
|
|
136
|
-
const agent = new Agent({
|
|
137
|
-
name: this.mode === "coding" ? `${this.config.agentName} Coding` : this.config.agentName,
|
|
138
|
-
instructions: renderSystemPrompt(this.buildSystemPrompt()),
|
|
139
|
-
model: getModelId(this.config),
|
|
140
|
-
tools: createOpenAITools({
|
|
141
|
-
dualSession: this.dualSessionEnabled,
|
|
142
|
-
mode: this.mode,
|
|
143
|
-
}),
|
|
144
|
-
mcpServers,
|
|
145
|
-
});
|
|
146
|
-
const stream = await this.runner.run(agent, input, {
|
|
147
|
-
stream: true,
|
|
148
|
-
session: this.session,
|
|
149
|
-
maxTurns: MAX_TURNS,
|
|
150
|
-
signal: this.abortController?.signal,
|
|
151
|
-
});
|
|
152
|
-
this.currentRun = null;
|
|
153
|
-
for await (const event of stream) {
|
|
154
|
-
const normalized = normalizeRunEvent(event, sessionId);
|
|
155
|
-
if (normalized) {
|
|
156
|
-
yield normalized;
|
|
157
|
-
}
|
|
158
|
-
const usage = captureUsageFromEvent(event);
|
|
159
|
-
if (usage) {
|
|
160
|
-
this.captureUsageSnapshot(usage);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
await stream.completed;
|
|
164
|
-
const result = buildResultMessage(stream, this.config);
|
|
165
|
-
const usage = extractUsageFromStream(stream);
|
|
166
|
-
if (usage) {
|
|
167
|
-
this.captureUsageSnapshot(usage);
|
|
168
|
-
}
|
|
169
|
-
yield result;
|
|
170
|
-
}
|
|
171
|
-
finally {
|
|
172
|
-
this.inputClosed = true;
|
|
173
|
-
this.abortController = null;
|
|
174
|
-
this.currentRun = null;
|
|
175
|
-
await closeMcpServers(mcpServers);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
function renderSystemPrompt(prompt) {
|
|
180
|
-
if (typeof prompt === "string") {
|
|
181
|
-
return prompt;
|
|
182
|
-
}
|
|
183
|
-
const presetIntro = "You are in a coding-focused session. Prefer careful, multi-step engineering work.";
|
|
184
|
-
return [presetIntro, prompt.append ?? ""].filter(Boolean).join("\n\n");
|
|
185
|
-
}
|
|
186
|
-
function contentBlocksToInputItems(content) {
|
|
187
|
-
const blocks = normalizeInputContent(content);
|
|
188
|
-
return [
|
|
189
|
-
{
|
|
190
|
-
role: "user",
|
|
191
|
-
content: blocks.map((block) => {
|
|
192
|
-
if (block.type === "text") {
|
|
193
|
-
return {
|
|
194
|
-
type: "input_text",
|
|
195
|
-
text: block.text,
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
if (block.source.type === "url") {
|
|
199
|
-
return {
|
|
200
|
-
type: "input_image",
|
|
201
|
-
image: block.source.url,
|
|
202
|
-
detail: "original",
|
|
203
|
-
};
|
|
204
|
-
}
|
|
205
|
-
return {
|
|
206
|
-
type: "input_image",
|
|
207
|
-
image: `data:${block.source.media_type};base64,${block.source.data}`,
|
|
208
|
-
detail: "original",
|
|
209
|
-
};
|
|
210
|
-
}),
|
|
211
|
-
},
|
|
212
|
-
];
|
|
213
|
-
}
|
|
214
|
-
function normalizeInputContent(content) {
|
|
215
|
-
if (typeof content === "string") {
|
|
216
|
-
return [{ type: "text", text: content }];
|
|
217
|
-
}
|
|
218
|
-
const blocks = [];
|
|
219
|
-
for (const block of content) {
|
|
220
|
-
if (block.type === "text") {
|
|
221
|
-
blocks.push({ type: "text", text: block.text });
|
|
222
|
-
continue;
|
|
223
|
-
}
|
|
224
|
-
if (block.type === "image") {
|
|
225
|
-
if (block.source.type === "url") {
|
|
226
|
-
blocks.push({ type: "image", source: { type: "url", url: block.source.url } });
|
|
227
|
-
continue;
|
|
228
|
-
}
|
|
229
|
-
blocks.push({
|
|
230
|
-
type: "image",
|
|
231
|
-
source: {
|
|
232
|
-
type: "base64",
|
|
233
|
-
media_type: block.source.media_type,
|
|
234
|
-
data: block.source.data,
|
|
235
|
-
},
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
return blocks;
|
|
240
|
-
}
|
|
241
|
-
function normalizeRunEvent(event, sessionId) {
|
|
242
|
-
if (event.type === "raw_model_stream_event") {
|
|
243
|
-
const data = event.data;
|
|
244
|
-
if (data.type === "output_text_delta" && data.delta) {
|
|
245
|
-
return {
|
|
246
|
-
type: "assistant",
|
|
247
|
-
session_id: sessionId,
|
|
248
|
-
message: {
|
|
249
|
-
role: "assistant",
|
|
250
|
-
content: [{ type: "text", text: data.delta }],
|
|
251
|
-
},
|
|
252
|
-
};
|
|
253
|
-
}
|
|
254
|
-
return null;
|
|
255
|
-
}
|
|
256
|
-
if (event.type !== "run_item_stream_event") {
|
|
257
|
-
return null;
|
|
258
|
-
}
|
|
259
|
-
const raw = event.item.rawItem;
|
|
260
|
-
if (!raw?.type) {
|
|
261
|
-
return null;
|
|
262
|
-
}
|
|
263
|
-
if (event.name === "message_output_created" && raw.type === "message") {
|
|
264
|
-
return null;
|
|
265
|
-
}
|
|
266
|
-
if (event.name === "reasoning_item_created" && raw.type === "reasoning") {
|
|
267
|
-
const text = raw.content
|
|
268
|
-
?.filter((entry) => entry.type === "reasoning_text" && typeof entry.text === "string")
|
|
269
|
-
.map((entry) => entry.text)
|
|
270
|
-
.join(" ");
|
|
271
|
-
if (!text) {
|
|
272
|
-
return null;
|
|
273
|
-
}
|
|
274
|
-
return {
|
|
275
|
-
type: "assistant",
|
|
276
|
-
session_id: sessionId,
|
|
277
|
-
message: {
|
|
278
|
-
role: "assistant",
|
|
279
|
-
content: [{ type: "thinking", thinking: text }],
|
|
280
|
-
},
|
|
281
|
-
};
|
|
282
|
-
}
|
|
283
|
-
if (event.name === "tool_called") {
|
|
284
|
-
if (raw.type === "function_call") {
|
|
285
|
-
return {
|
|
286
|
-
type: "assistant",
|
|
287
|
-
session_id: sessionId,
|
|
288
|
-
message: {
|
|
289
|
-
role: "assistant",
|
|
290
|
-
content: [{
|
|
291
|
-
type: "tool_use",
|
|
292
|
-
id: raw.callId,
|
|
293
|
-
tool_use_id: raw.callId,
|
|
294
|
-
name: raw.name ?? "tool",
|
|
295
|
-
input: parseToolArguments(raw.arguments),
|
|
296
|
-
}],
|
|
297
|
-
},
|
|
298
|
-
};
|
|
299
|
-
}
|
|
300
|
-
if (raw.type === "computer_call") {
|
|
301
|
-
return {
|
|
302
|
-
type: "assistant",
|
|
303
|
-
session_id: sessionId,
|
|
304
|
-
message: {
|
|
305
|
-
role: "assistant",
|
|
306
|
-
content: [{
|
|
307
|
-
type: "tool_use",
|
|
308
|
-
id: raw.callId,
|
|
309
|
-
tool_use_id: raw.callId,
|
|
310
|
-
name: "computer",
|
|
311
|
-
input: raw.action ?? {},
|
|
312
|
-
}],
|
|
313
|
-
},
|
|
314
|
-
};
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
if (event.name === "tool_output") {
|
|
318
|
-
if (raw.type === "function_call_result" || raw.type === "computer_call_result") {
|
|
319
|
-
return {
|
|
320
|
-
type: "user",
|
|
321
|
-
session_id: sessionId,
|
|
322
|
-
parent_tool_use_id: null,
|
|
323
|
-
message: {
|
|
324
|
-
role: "user",
|
|
325
|
-
content: [{
|
|
326
|
-
type: "tool_result",
|
|
327
|
-
tool_use_id: raw.callId ?? "",
|
|
328
|
-
content: raw.output ?? "",
|
|
329
|
-
is_error: false,
|
|
330
|
-
}],
|
|
331
|
-
},
|
|
332
|
-
};
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
return null;
|
|
336
|
-
}
|
|
337
|
-
function parseToolArguments(value) {
|
|
338
|
-
if (!value) {
|
|
339
|
-
return {};
|
|
340
|
-
}
|
|
341
|
-
try {
|
|
342
|
-
return JSON.parse(value);
|
|
343
|
-
}
|
|
344
|
-
catch {
|
|
345
|
-
return value;
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
function captureUsageFromEvent(event) {
|
|
349
|
-
if (event.type !== "raw_model_stream_event") {
|
|
350
|
-
return null;
|
|
351
|
-
}
|
|
352
|
-
const data = event.data;
|
|
353
|
-
if (data.type !== "response_done") {
|
|
354
|
-
return null;
|
|
355
|
-
}
|
|
356
|
-
const inputTokens = data.response?.usage?.inputTokens;
|
|
357
|
-
if (typeof inputTokens !== "number") {
|
|
358
|
-
return null;
|
|
359
|
-
}
|
|
360
|
-
return {
|
|
361
|
-
usedInputTokens: inputTokens,
|
|
362
|
-
contextWindow: 0,
|
|
363
|
-
usedPct: 0,
|
|
364
|
-
};
|
|
365
|
-
}
|
|
366
|
-
function extractUsageFromStream(stream) {
|
|
367
|
-
const usage = stream.rawResponses?.at(-1)?.usage;
|
|
368
|
-
if (typeof usage?.inputTokens !== "number") {
|
|
369
|
-
return null;
|
|
370
|
-
}
|
|
371
|
-
return {
|
|
372
|
-
usedInputTokens: usage.inputTokens,
|
|
373
|
-
contextWindow: 0,
|
|
374
|
-
usedPct: 0,
|
|
375
|
-
};
|
|
376
|
-
}
|
|
377
|
-
function buildResultMessage(stream, config) {
|
|
378
|
-
const usage = stream.rawResponses?.at(-1)?.usage;
|
|
379
|
-
const errorText = stream.error instanceof Error
|
|
380
|
-
? stream.error.message
|
|
381
|
-
: stream.error
|
|
382
|
-
? JSON.stringify(stream.error)
|
|
383
|
-
: "";
|
|
384
|
-
return {
|
|
385
|
-
type: "result",
|
|
386
|
-
subtype: errorText ? "error" : "success",
|
|
387
|
-
num_turns: 1,
|
|
388
|
-
usage: {
|
|
389
|
-
input_tokens: usage?.inputTokens ?? 0,
|
|
390
|
-
output_tokens: usage?.outputTokens ?? 0,
|
|
391
|
-
},
|
|
392
|
-
total_cost_usd: 0,
|
|
393
|
-
is_error: Boolean(errorText),
|
|
394
|
-
errors: errorText ? [errorText] : [],
|
|
395
|
-
model: getModelId(config),
|
|
396
|
-
};
|
|
397
|
-
}
|
|
398
|
-
async function connectMcpServers(servers) {
|
|
399
|
-
for (const server of servers) {
|
|
400
|
-
await server.connect();
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
async function closeMcpServers(servers) {
|
|
404
|
-
for (const server of servers) {
|
|
405
|
-
try {
|
|
406
|
-
await server.close();
|
|
407
|
-
}
|
|
408
|
-
catch (err) {
|
|
409
|
-
logger.warn(`Failed to close MCP server "${server.name}": ${err instanceof Error ? err.message : String(err)}`);
|
|
410
|
-
}
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
//# sourceMappingURL=openai-session.js.map
|
|
1
|
+
const a14_0x5759ba=a14_0x2e25;(function(_0x3b0770,_0x40217d){const _0x535fb5=a14_0x2e25,_0x39d67b=_0x3b0770();while(!![]){try{const _0x34cae0=-parseInt(_0x535fb5(0x99))/0x1*(parseInt(_0x535fb5(0xaf))/0x2)+-parseInt(_0x535fb5(0xa7))/0x3*(parseInt(_0x535fb5(0xf4))/0x4)+-parseInt(_0x535fb5(0xb5))/0x5+-parseInt(_0x535fb5(0xa5))/0x6+-parseInt(_0x535fb5(0xa0))/0x7+-parseInt(_0x535fb5(0x70))/0x8+parseInt(_0x535fb5(0x89))/0x9;if(_0x34cae0===_0x40217d)break;else _0x39d67b['push'](_0x39d67b['shift']());}catch(_0x4cd453){_0x39d67b['push'](_0x39d67b['shift']());}}}(a14_0x364f,0xc8c4e));function a14_0x364f(){const _0x2db83f=['qxC1v0r4CMrczZLAENDX','rhHUshOYDq','BgvUz3rO','qxCXshOYDq','qZj2wKmYtfzcs0Xl','rdjMwujh','rhC1s3P4ALnfD0XvEJfUtemZBLbcmJq','mLD0C2vpvq','Eu52uejNCNrfEg4WENCXCunnovrdAhe','rhHQuW','rgC5vKjMouP5D1HtENDX','q052vxGYtdb6DZfgqZnYwxP3zLr4mNyYENC1ma','C3rYAw5N','EJj2mheZDLLdtxzvrgzMmxP4AJu','ota2ntu2n2r1D3PzDW','y2fWDhvYzvvZywDLu25HChnOB3q','qxC1v0r4CKzez3y0rge','C2vZC2LVBG','DxnLCG','mtyYnJKXohb6B3LLAW','C2HPzNq','nte5ntq5uw91wvzT','rgC5vKjMotfdmNu','qZnYwxP3zLr0D3zAqZjMtNP4Bq','EJj2mhuYDLPdmKXwqKTmsW','ExDUmef3ovu','q012wKnNovvdmNu','Etn2wunnDLvezMOXqKC','BLPTng1kzvL6AhzkrgvYyG','mtu5nJy4mgLguvr3BW','ExDQvKnoCMrcmJuWq005u0jNDLK','qND2wKmYzK56Cq','Eti5venODJb6EgK','qxC1uxP3BJb0D3zAqZjMtNPX','CLL0Bhzx','nJa0ndy1r3HPyvL4','qZjmtKjnzLm','ChvZAa','C2vUzefUzfn0CMvHBq','C2vZC2LVBKLK','Aw5WDxruB2TLBNm','EJj2mhz4BKH6mNz0qK1Mv0mYsfzeyq','qJnQuhOYtfv5D1C','z2v0vhjHBNnJCMLWDfbHDgG','Eti5vujnDKPeyq','BuPXng9NtgXcs2PKC3e','CevqDefx','zgvSDge','AuPprW','Aw5KzxHpzG','ywjVCNq','BZjQsemYDtjUy1C','EJj2mhjOtfv5DZfqEtaXsKnMBKXdtNPmq05T','Dgv4Da','Bxr5mM1KDMDetKH6DNC0','ExHIv3P3nuS','Eu1MwNP0Eta','EtjMv0rODLL6DNzAExDethuYnuHdAg5pqJnX','ywjVCNrdB250CM9SBgvY','qZnYvKnMAKXdEhzmqZnYthPH','ExHQtKr3muXctNjA','CNvUBMvY','Bw9Kzq','rgD2nerH','qMDMwKrMDLP5D0rmDti1senOBK9cm3e','EK52vxKZCLbcmJvgEtjMu0jMovL6Eg4XqMHX','zNjVBunOyxjdB2rL','BxrHmM5AyvDTmM4WDu1iD3vh','zNvUy3rPB25Fy2fSBa','B3jPz2LUywW','q01Mm3n4CKXcCq','q01Mm3GYmvz6z3ztEdnUmennDKHcDJLmre12vurH','qND2s0f3zKzeAeXxENe','EMDMmhL0tW','Be1qwKiYna','Aw1Hz2u','rgC5vKjMovzeEhjxrhHX','y2fSBeLK','C3rVCfjLCxvLC3rLza','C2XPy2u','EtjMv0rODLL6DMjwqZnYzeiYmvD5D24WqxC5vxuYnuHdAg5pqJnX','y2XVC2vjBNb1Da','q052vq','BLP5v210ytj2DtflDtn6tq','Aw5WDxrdBg9Zzwq','qJnItejnzLbSEg5mqZnUueiYnfq','y2HHCKnVzgvbDa','zhvHBfnLC3nPB25fBMfIBgvK','q052vujnDLK','q012wKr3wda','Bxrhnw1kyvHUDxPyEJbqAKfx','EJj2mhuYDLPdmKXwqKTms3uZtfv5vW','qJn2menODJb2zZLsENC1wG','q012semYovvbDZvo','qZj2mhjOtfv5DZfqEtaXsKnMBKXdtNPmq05T','qZnYserNteP0D25xDtj2wurnDLLdvW','CK1MuejNDKTPAhjwAwDUu0iZBKXPztfKDwnIwNP4AJj6EgLhAuC','z2vUzxjHBa','oeT5sLzQuG','DhLWzq','qZi5munnBKW','qK1MvhPX','BgfZDfvZywDLu25HChnOB3q','qJn2menODJb4m3jmrwHYrNPNDLnez2u','ww91igfYzsbPBIbHignVzgLUzY1MB2n1C2vKihnLC3nPB24UifbYzwzLCIbJyxjLzNvSlcbTDwX0As1ZDgvWigvUz2LUzwvYAw5NihDVCMSU','Eti5s0f3nu4','qxHUAKjoyJfezw5tqJnUthPH','qxHUDerNovD1txzyrhD2wKrNDKS','EtjMv0rODLL6DM5mqZnUueiYnwP6yq','qK52vhLnDLK','zxjYB3i','ExHUwKf4BJb5DZuW','y29TCgXLDgvK','mJeZoduWngrqzxrhua','BvPHmM10AtvTzvrrDNu1DxPx','qZnYwuf3nu4','qNC5s3PX','qxHYtejX','qND2wKmYzK56DJLwrhHYv0r4CKz5m2PmExHYthPH','Eti5venODJb6EgPgEtjMu0jH','Eti5vurNDLveyq','ywjJzgvMz2HPAMTSBw5VChfYC3r1DND4ExPbqKneruzhseLks0XntK9quvjtvfvwv1HzwJaXmJm0nty3odKRlZ0','C291CMnL','BKP5v21LuhHZthPKELC','BwfW','q2DMwumYDq','BMrisxv4zK9cteC','Eti5venODJb6EgPgEtjMu0jMovL6Eg4XqMHX','Dg9VBf9Yzxn1Bhq','EtjMu0jLteS','qxC1v0r4CKzbDZfiEJj1','DxjS','q012semYovvbDZvoEdnYtevOCq','z2XutMf6','q052vxeYovrdz2zkrgDmvKjh','Eti5vurNDJrezKrqqK1YvKrx','zhLUyw1Py01JCfnLCNzLCNm','q01Mm3vnDLPdzZLvqZj2wG','ndi0nZG1mJr2DKXJCM4','ENHQwuiZAq','q012semYovvbDZvoEdjmmhP3muz5m2PmExHYthPH','BwvZC2fNzq','EMH2sejMBKXdm25qqJi1zKjnzKLcz3zl','rgHmv3PX','EMDMmhLX','qZn2sNKYDLPdvW','Eti5vxPnte4'];a14_0x364f=function(){return _0x2db83f;};return a14_0x364f();}const a14_0x28d73f=a14_0x2af4;(function(_0x596ae3,_0x5ef718){const _0x1553e5=a14_0x2e25,_0x7527ef=a14_0x2af4,_0xe2925e=_0x596ae3();while(!![]){try{const _0x5bce4c=parseInt(_0x7527ef(0x201))/0x1+-parseInt(_0x7527ef(0x20b))/0x2+parseInt(_0x7527ef(0x200))/0x3+-parseInt(_0x7527ef(0x1db))/0x4+-parseInt(_0x7527ef(0x22a))/0x5+-parseInt(_0x7527ef(0x236))/0x6*(-parseInt(_0x7527ef(0x1f1))/0x7)+parseInt(_0x7527ef(0x1d9))/0x8*(-parseInt(_0x7527ef(0x221))/0x9);if(_0x5bce4c===_0x5ef718)break;else _0xe2925e[_0x1553e5(0xb7)](_0xe2925e[_0x1553e5(0xa6)]());}catch(_0x51f299){_0xe2925e['push'](_0xe2925e[_0x1553e5(0xa6)]());}}}(a14_0x399b,0xaa227));import{Agent,OpenAIResponsesCompactionSession,Runner}from'@openai/agents';import{loadSessionId,loadUsageSnapshot,saveSessionId,saveUsageSnapshot}from'../config/index.js';import{logger}from'../logger.js';import{configureOpenAIProvider,createOpenAIClient,getModelId}from'./client-factory.js';import{OpenAIFileSession}from'./openai-file-session.js';import{createOpenAIMcpServers,createOpenAITools}from'./openai-tools.js';const MAX_TURNS=0x64;function a14_0x2af4(_0x47dcb3,_0x5cc236){const _0x46ae0c=a14_0x2e25;_0x47dcb3=_0x47dcb3-0x1ce;const _0xa961a0=a14_0x399b();let _0x3461b4=_0xa961a0[_0x47dcb3];if(a14_0x2af4[_0x46ae0c(0xb4)]===undefined){var _0x420cd0=function(_0x548f56){const _0x3511c6=_0x46ae0c,_0x1e8af7=_0x3511c6(0x78);let _0x15b999='',_0x40047a='';for(let _0x10e604=0x0,_0x69a6e1,_0x579ac9,_0x5f5c87=0x0;_0x579ac9=_0x548f56['charAt'](_0x5f5c87++);~_0x579ac9&&(_0x69a6e1=_0x10e604%0x4?_0x69a6e1*0x40+_0x579ac9:_0x579ac9,_0x10e604++%0x4)?_0x15b999+=String[_0x3511c6(0xd4)](0xff&_0x69a6e1>>(-0x2*_0x10e604&0x6)):0x0){_0x579ac9=_0x1e8af7[_0x3511c6(0xc3)](_0x579ac9);}for(let _0x1806c4=0x0,_0x50c8be=_0x15b999[_0x3511c6(0x94)];_0x1806c4<_0x50c8be;_0x1806c4++){_0x40047a+='%'+('00'+_0x15b999[_0x3511c6(0xe8)](_0x1806c4)['toString'](0x10))[_0x3511c6(0xe1)](-0x2);}return decodeURIComponent(_0x40047a);};a14_0x2af4[_0x46ae0c(0x84)]=_0x420cd0,a14_0x2af4[_0x46ae0c(0xc0)]={},a14_0x2af4['rYtlvW']=!![];}const _0xe866fd=_0xa961a0[0x0],_0x6b5c39=_0x47dcb3+_0xe866fd,_0x20109a=a14_0x2af4[_0x46ae0c(0xc0)][_0x6b5c39];return!_0x20109a?(_0x3461b4=a14_0x2af4[_0x46ae0c(0x84)](_0x3461b4),a14_0x2af4[_0x46ae0c(0xc0)][_0x6b5c39]=_0x3461b4):_0x3461b4=_0x20109a,_0x3461b4;}function a14_0x399b(){const _0xe379d=a14_0x2e25,_0x257011=[_0xe379d(0x91),_0xe379d(0xdb),_0xe379d(0xf1),_0xe379d(0x7d),'C2vZC2LVBG',_0xe379d(0x90),_0xe379d(0x76),_0xe379d(0x9d),_0xe379d(0x93),_0xe379d(0xb2),_0xe379d(0xe2),_0xe379d(0xd8),_0xe379d(0x8e),'y2XVC2u',_0xe379d(0x6c),_0xe379d(0xcb),_0xe379d(0x83),_0xe379d(0x7c),_0xe379d(0xa9),_0xe379d(0x9a),_0xe379d(0xd3),_0xe379d(0x73),'BM93',_0xe379d(0x7a),_0xe379d(0x8a),_0xe379d(0xbf),_0xe379d(0x98),_0xe379d(0x9b),_0xe379d(0xf7),_0xe379d(0x80),_0xe379d(0xf0),'ChvZAa',_0xe379d(0x75),_0xe379d(0x95),'B3v0Chv0',_0xe379d(0xb3),_0xe379d(0xbc),_0xe379d(0xe4),_0xe379d(0xa8),_0xe379d(0x6b),_0xe379d(0x74),_0xe379d(0xde),_0xe379d(0xce),_0xe379d(0xac),_0xe379d(0xcd),_0xe379d(0x72),_0xe379d(0xf2),_0xe379d(0xd5),'DgHPBMTPBMC',_0xe379d(0xa2),_0xe379d(0x8f),'AM9PBG',_0xe379d(0xbb),'DxnLCG',_0xe379d(0xdc),_0xe379d(0xb6),_0xe379d(0xed),_0xe379d(0x88),_0xe379d(0xaa),_0xe379d(0xc6),_0xe379d(0xc2),_0xe379d(0x9f),_0xe379d(0x71),_0xe379d(0xae),_0xe379d(0xc5),_0xe379d(0xeb),'ywDLBNroyw1L',_0xe379d(0x9c),_0xe379d(0x8b),_0xe379d(0xef),'y2XLyxjtDg9W',_0xe379d(0xf9),'Dg9VBa',_0xe379d(0xe5),'BwfW',_0xe379d(0xbe),_0xe379d(0x69),_0xe379d(0xad),'zMLSDgvY',_0xe379d(0x8d),_0xe379d(0xd2),_0xe379d(0xd1),_0xe379d(0xfb),_0xe379d(0xb0),_0xe379d(0xea),'y2XPzw50',_0xe379d(0xca),_0xe379d(0xee),_0xe379d(0x86),_0xe379d(0xb1),_0xe379d(0x96),_0xe379d(0x97),_0xe379d(0x6a),_0xe379d(0x85),_0xe379d(0xc9),_0xe379d(0xc8),'CMvXDwvZDfn0B3a',_0xe379d(0xf6),_0xe379d(0x81),_0xe379d(0xd9),'Bwf5yMvdB21Wywn0qNLuB2TLBNm',_0xe379d(0xab),_0xe379d(0x7e),_0xe379d(0xda),_0xe379d(0xec),_0xe379d(0x92),_0xe379d(0xe7),'Aw5WDxruB2TLBNm','CMvZCg9UC2vFzg9Uzq',_0xe379d(0x77),'zhLUyw1Py01JCfnLCNzLCNm',_0xe379d(0x6e),'ienVzgLUzW'];return a14_0x399b=function(){return _0x257011;},a14_0x399b();}export class OpenAIAgentSession{['config'];[a14_0x28d73f(0x1d5)];['staticMcpServers'];[a14_0x28d73f(0x230)];[a14_0x28d73f(0x211)];[a14_0x28d73f(0x217)];[a14_0x28d73f(0x216)];[a14_0x28d73f(0x1dc)];[a14_0x28d73f(0x237)];[a14_0x5759ba(0xcc)]=null;[a14_0x28d73f(0x22b)]=!![];[a14_0x28d73f(0x1ee)]=![];[a14_0x28d73f(0x212)]=null;[a14_0x28d73f(0x20f)]=null;[a14_0x28d73f(0x21c)];['hasOrphanedInjections']=![];[a14_0x5759ba(0xd0)];constructor(_0x401d3b,_0x3f88a3,_0x44da23,_0x547786=a14_0x5759ba(0xf3),_0x1e6e4f){const _0x51b005=a14_0x5759ba,_0x12b364=a14_0x28d73f;configureOpenAIProvider(_0x401d3b),this[_0x12b364(0x233)]=_0x401d3b,this[_0x12b364(0x1d5)]=_0x3f88a3,this['staticMcpServers']=_0x44da23,this[_0x12b364(0x230)]={},this[_0x51b005(0xe9)]=_0x1e6e4f?.[_0x12b364(0x211)]??!![],this[_0x12b364(0x1d7)]=_0x547786,this[_0x12b364(0x217)]=createOpenAIClient(_0x401d3b),this[_0x51b005(0xcf)]=new Runner({'model':getModelId(_0x401d3b)});const _0x12a7cc=loadSessionId(_0x547786);this[_0x12b364(0x1dc)]=new OpenAIFileSession({'fileName':_0x12b364(0x22c)+_0x547786+_0x12b364(0x1f8),'sessionId':_0x12a7cc}),this[_0x12b364(0x21c)]=this[_0x12b364(0x1dc)][_0x12b364(0x1fa)](),saveSessionId(this[_0x12b364(0x21c)],_0x547786),this[_0x51b005(0xa3)]=new OpenAIResponsesCompactionSession({'client':this['client'],'underlyingSession':this['underlyingSession'],'model':getModelId(_0x401d3b)});const _0x1e6289=loadUsageSnapshot(_0x547786);_0x1e6289&&(this[_0x12b364(0x212)]={..._0x1e6289,'capturedAtMs':Date[_0x12b364(0x1d8)]()});}[a14_0x5759ba(0xb8)](_0x4fd16d){const _0x599ca7=a14_0x5759ba,_0x3bbcc4=a14_0x28d73f,_0x4794ee=contentBlocksToInputItems(_0x4fd16d);return this[_0x3bbcc4(0x22b)]=![],this[_0x599ca7(0xe0)]=![],this[_0x3bbcc4(0x215)]=new AbortController(),this[_0x3bbcc4(0x1d4)](_0x4794ee,this[_0x3bbcc4(0x21c)]);}[a14_0x28d73f(0x1e5)](_0x2a793e){return![];}[a14_0x5759ba(0xe3)](){const _0x398a1f=a14_0x28d73f;this[_0x398a1f(0x22b)]=!![];}[a14_0x28d73f(0x222)](){const _0x26ea45=a14_0x5759ba;this[_0x26ea45(0xe0)]=!![],this[_0x26ea45(0xe6)]=!![],this[_0x26ea45(0xcc)]?.[_0x26ea45(0xc4)]();}[a14_0x28d73f(0x208)](){const _0x2fd7cc=a14_0x28d73f;this[_0x2fd7cc(0x1ee)]=![],this[_0x2fd7cc(0x215)]=null;}[a14_0x28d73f(0x21e)](){const _0x367993=a14_0x28d73f;return this[_0x367993(0x1ee)];}[a14_0x28d73f(0x1e9)](_0x145f2f){const _0x29535a=a14_0x5759ba,_0x19a849=a14_0x28d73f;if(!_0x145f2f)return;this[_0x29535a(0xb9)]=_0x145f2f,saveSessionId(_0x145f2f,this[_0x19a849(0x1d7)]);}[a14_0x5759ba(0xa1)](_0xdf233a){const _0x19b235=a14_0x28d73f;if(_0xdf233a[_0x19b235(0x21a)]<=0x0)return;this['lastUsageSnapshot']={..._0xdf233a,'capturedAtMs':Date[_0x19b235(0x1d8)]()},saveUsageSnapshot(_0xdf233a,this['mode']);}[a14_0x28d73f(0x23d)](_0x16fc21){}async['requestCompaction'](){const _0x3224d5=a14_0x28d73f;await this[_0x3224d5(0x237)][_0x3224d5(0x21f)]({'force':!![]});}async[a14_0x28d73f(0x226)](){}[a14_0x28d73f(0x1fc)](){const _0x17f9a1=a14_0x28d73f;return this[_0x17f9a1(0x21c)];}[a14_0x5759ba(0xbd)](){return null;}[a14_0x28d73f(0x1f6)](){const _0x1b564d=a14_0x5759ba,_0x38fc6b=a14_0x28d73f;return this[_0x38fc6b(0x212)]?{...this[_0x1b564d(0xf8)]}:null;}[a14_0x28d73f(0x1ff)](){return this['currentRun'];}[a14_0x28d73f(0x1e0)](_0x181143){const _0x7ba83=a14_0x28d73f;this[_0x7ba83(0x230)]={..._0x181143};}[a14_0x28d73f(0x1fd)](){const _0x401569=a14_0x5759ba;return{...this[_0x401569(0x87)]};}get[a14_0x28d73f(0x20e)](){const _0x453fa7=a14_0x5759ba;return this[_0x453fa7(0xe6)];}async*[a14_0x28d73f(0x1d4)](_0x4f14ca,_0x100fdd){const _0x20d4d6=a14_0x5759ba,_0x32c7f2=a14_0x28d73f,_0x35c13b=createOpenAIMcpServers({...this[_0x32c7f2(0x235)],...this[_0x32c7f2(0x230)]});try{await connectMcpServers(_0x35c13b);const _0x28caf7=new Agent({'name':this['mode']===_0x32c7f2(0x214)?this[_0x32c7f2(0x233)][_0x32c7f2(0x204)]+_0x32c7f2(0x232):this[_0x32c7f2(0x233)][_0x32c7f2(0x204)],'instructions':renderSystemPrompt(this[_0x32c7f2(0x1d5)]()),'model':getModelId(this[_0x32c7f2(0x233)]),'tools':createOpenAITools({'dualSession':this[_0x32c7f2(0x211)],'mode':this[_0x32c7f2(0x1d7)]}),'mcpServers':_0x35c13b}),_0x2c2335=await this[_0x32c7f2(0x216)][_0x32c7f2(0x1e7)](_0x28caf7,_0x4f14ca,{'stream':!![],'session':this[_0x32c7f2(0x237)],'maxTurns':MAX_TURNS,'signal':this[_0x32c7f2(0x215)]?.[_0x32c7f2(0x1f9)]});this[_0x32c7f2(0x20f)]=null;for await(const _0x3a1ecf of _0x2c2335){const _0x43ce75=normalizeRunEvent(_0x3a1ecf,_0x100fdd);_0x43ce75&&(yield _0x43ce75);const _0x3ac709=captureUsageFromEvent(_0x3a1ecf);_0x3ac709&&this[_0x32c7f2(0x1d1)](_0x3ac709);}await _0x2c2335[_0x20d4d6(0x6f)];const _0x72508b=buildResultMessage(_0x2c2335,this[_0x32c7f2(0x233)]),_0x81ef98=extractUsageFromStream(_0x2c2335);_0x81ef98&&this[_0x32c7f2(0x1d1)](_0x81ef98),yield _0x72508b;}finally{this[_0x32c7f2(0x22b)]=!![],this[_0x32c7f2(0x215)]=null,this[_0x32c7f2(0x20f)]=null,await closeMcpServers(_0x35c13b);}}}function renderSystemPrompt(_0x405c5f){const _0xfaf1d3=a14_0x5759ba,_0x3e9018=a14_0x28d73f;if(typeof _0x405c5f===_0x3e9018(0x1ef))return _0x405c5f;const _0x228f8f=_0xfaf1d3(0xfa);return[_0x228f8f,_0x405c5f[_0x3e9018(0x220)]??''][_0x3e9018(0x210)](Boolean)[_0x3e9018(0x1f5)]('\x0a\x0a');}function contentBlocksToInputItems(_0x2ee168){const _0x5d296f=a14_0x28d73f,_0x26b819=normalizeInputContent(_0x2ee168);return[{'role':_0x5d296f(0x1f7),'content':_0x26b819[_0x5d296f(0x20c)](_0x24a9a9=>{const _0x4a226a=a14_0x2e25,_0x14ad75=_0x5d296f;if(_0x24a9a9[_0x14ad75(0x1ce)]===_0x14ad75(0x213))return{'type':_0x14ad75(0x1f3),'text':_0x24a9a9[_0x14ad75(0x213)]};if(_0x24a9a9[_0x14ad75(0x223)][_0x14ad75(0x1ce)]===_0x14ad75(0x1dd))return{'type':_0x14ad75(0x224),'image':_0x24a9a9[_0x14ad75(0x223)][_0x4a226a(0x82)],'detail':_0x4a226a(0xd7)};return{'type':_0x14ad75(0x224),'image':_0x14ad75(0x234)+_0x24a9a9[_0x14ad75(0x223)][_0x14ad75(0x229)]+_0x14ad75(0x202)+_0x24a9a9[_0x14ad75(0x223)]['data'],'detail':_0x14ad75(0x1e6)};})}];}function normalizeInputContent(_0xf702ff){const _0x30abd4=a14_0x5759ba,_0xa1ee05=a14_0x28d73f;if(typeof _0xf702ff===_0xa1ee05(0x1ef))return[{'type':_0xa1ee05(0x213),'text':_0xf702ff}];const _0xdd2e98=[];for(const _0x464c8f of _0xf702ff){if(_0x464c8f['type']===_0x30abd4(0xc7)){_0xdd2e98[_0xa1ee05(0x1e1)]({'type':_0xa1ee05(0x213),'text':_0x464c8f[_0xa1ee05(0x213)]});continue;}if(_0x464c8f[_0x30abd4(0xf5)]===_0xa1ee05(0x1e3)){if(_0x464c8f[_0xa1ee05(0x223)][_0x30abd4(0xf5)]===_0xa1ee05(0x1dd)){_0xdd2e98[_0x30abd4(0xb7)]({'type':_0x30abd4(0xdd),'source':{'type':_0xa1ee05(0x1dd),'url':_0x464c8f[_0xa1ee05(0x223)][_0xa1ee05(0x1dd)]}});continue;}_0xdd2e98[_0xa1ee05(0x1e1)]({'type':_0x30abd4(0xdd),'source':{'type':_0xa1ee05(0x218),'media_type':_0x464c8f[_0xa1ee05(0x223)][_0xa1ee05(0x229)],'data':_0x464c8f[_0x30abd4(0x79)][_0xa1ee05(0x1f4)]}});}}return _0xdd2e98;}function normalizeRunEvent(_0x350240,_0x5379a1){const _0x59fa0c=a14_0x5759ba,_0x4d3853=a14_0x28d73f;if(_0x350240[_0x4d3853(0x1ce)]===_0x4d3853(0x225)){const _0x7bef34=_0x350240['data'];if(_0x7bef34[_0x4d3853(0x1ce)]===_0x4d3853(0x209)&&_0x7bef34[_0x59fa0c(0xc1)])return{'type':_0x4d3853(0x231),'session_id':_0x5379a1,'message':{'role':_0x4d3853(0x231),'content':[{'type':_0x4d3853(0x213),'text':_0x7bef34['delta']}]}};return null;}if(_0x350240[_0x4d3853(0x1ce)]!==_0x4d3853(0x23a))return null;const _0x1f5244=_0x350240[_0x4d3853(0x1ea)][_0x4d3853(0x23e)];if(!_0x1f5244?.[_0x4d3853(0x1ce)])return null;if(_0x350240[_0x4d3853(0x1de)]===_0x4d3853(0x1e2)&&_0x1f5244[_0x4d3853(0x1ce)]===_0x4d3853(0x21b))return null;if(_0x350240[_0x4d3853(0x1de)]===_0x4d3853(0x206)&&_0x1f5244[_0x59fa0c(0xf5)]===_0x4d3853(0x207)){const _0x5b2290=_0x1f5244[_0x4d3853(0x22f)]?.[_0x4d3853(0x210)](_0x42128c=>_0x42128c[_0x4d3853(0x1ce)]===_0x4d3853(0x1d2)&&typeof _0x42128c[_0x59fa0c(0xc7)]===_0x59fa0c(0x9e))[_0x59fa0c(0x7b)](_0x224651=>_0x224651['text'])[_0x4d3853(0x1f5)]('\x20');if(!_0x5b2290)return null;return{'type':_0x4d3853(0x231),'session_id':_0x5379a1,'message':{'role':_0x4d3853(0x231),'content':[{'type':_0x4d3853(0x1f2),'thinking':_0x5b2290}]}};}if(_0x350240[_0x4d3853(0x1de)]===_0x4d3853(0x205)){if(_0x1f5244[_0x4d3853(0x1ce)]===_0x59fa0c(0xd6))return{'type':_0x4d3853(0x231),'session_id':_0x5379a1,'message':{'role':'assistant','content':[{'type':_0x4d3853(0x1e8),'id':_0x1f5244[_0x59fa0c(0xdf)],'tool_use_id':_0x1f5244[_0x4d3853(0x1df)],'name':_0x1f5244[_0x4d3853(0x1de)]??_0x4d3853(0x20a),'input':parseToolArguments(_0x1f5244[_0x4d3853(0x1ec)])}]}};if(_0x1f5244[_0x59fa0c(0xf5)]===_0x4d3853(0x239))return{'type':_0x4d3853(0x231),'session_id':_0x5379a1,'message':{'role':_0x4d3853(0x231),'content':[{'type':'tool_use','id':_0x1f5244[_0x4d3853(0x1df)],'tool_use_id':_0x1f5244[_0x4d3853(0x1df)],'name':_0x4d3853(0x23c),'input':_0x1f5244[_0x4d3853(0x227)]??{}}]}};}if(_0x350240[_0x4d3853(0x1de)]===_0x4d3853(0x1eb)){if(_0x1f5244[_0x4d3853(0x1ce)]===_0x4d3853(0x1d6)||_0x1f5244[_0x4d3853(0x1ce)]===_0x4d3853(0x228))return{'type':_0x4d3853(0x1f7),'session_id':_0x5379a1,'parent_tool_use_id':null,'message':{'role':_0x59fa0c(0xa4),'content':[{'type':_0x59fa0c(0x7f),'tool_use_id':_0x1f5244[_0x4d3853(0x1df)]??'','content':_0x1f5244[_0x4d3853(0x1e4)]??'','is_error':![]}]}};}return null;}function parseToolArguments(_0x2ee35a){const _0x1bd5aa=a14_0x28d73f;if(!_0x2ee35a)return{};try{return JSON[_0x1bd5aa(0x1d3)](_0x2ee35a);}catch{return _0x2ee35a;}}function captureUsageFromEvent(_0xac11f6){const _0x6fa03f=a14_0x5759ba,_0x3d2771=a14_0x28d73f;if(_0xac11f6[_0x3d2771(0x1ce)]!==_0x3d2771(0x225))return null;const _0x460eca=_0xac11f6[_0x3d2771(0x1f4)];if(_0x460eca[_0x6fa03f(0xf5)]!==_0x3d2771(0x22e))return null;const _0x2cd27d=_0x460eca[_0x3d2771(0x1ed)]?.[_0x3d2771(0x23b)]?.[_0x6fa03f(0xba)];if(typeof _0x2cd27d!==_0x3d2771(0x1d0))return null;return{'usedInputTokens':_0x2cd27d,'contextWindow':0x0,'usedPct':0x0};}function a14_0x2e25(_0x17dea6,_0x274e23){_0x17dea6=_0x17dea6-0x69;const _0x364f8a=a14_0x364f();let _0x2e250a=_0x364f8a[_0x17dea6];if(a14_0x2e25['iUvRLv']===undefined){var _0x58d01a=function(_0x3b1a7c){const _0x39b613='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x596ae3='',_0x5ef718='';for(let _0x7527ef=0x0,_0xe2925e,_0x5bce4c,_0x51f299=0x0;_0x5bce4c=_0x3b1a7c['charAt'](_0x51f299++);~_0x5bce4c&&(_0xe2925e=_0x7527ef%0x4?_0xe2925e*0x40+_0x5bce4c:_0x5bce4c,_0x7527ef++%0x4)?_0x596ae3+=String['fromCharCode'](0xff&_0xe2925e>>(-0x2*_0x7527ef&0x6)):0x0){_0x5bce4c=_0x39b613['indexOf'](_0x5bce4c);}for(let _0x47dcb3=0x0,_0x5cc236=_0x596ae3['length'];_0x47dcb3<_0x5cc236;_0x47dcb3++){_0x5ef718+='%'+('00'+_0x596ae3['charCodeAt'](_0x47dcb3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5ef718);};a14_0x2e25['mRPhMS']=_0x58d01a,a14_0x2e25['jEuwTL']={},a14_0x2e25['iUvRLv']=!![];}const _0x43a0cb=_0x364f8a[0x0],_0x109598=_0x17dea6+_0x43a0cb,_0x518ec4=a14_0x2e25['jEuwTL'][_0x109598];return!_0x518ec4?(_0x2e250a=a14_0x2e25['mRPhMS'](_0x2e250a),a14_0x2e25['jEuwTL'][_0x109598]=_0x2e250a):_0x2e250a=_0x518ec4,_0x2e250a;}function extractUsageFromStream(_0x3f4b19){const _0x895273=a14_0x28d73f,_0x1c891a=_0x3f4b19[_0x895273(0x1fb)]?.['at'](-0x1)?.[_0x895273(0x23b)];if(typeof _0x1c891a?.[_0x895273(0x22d)]!==_0x895273(0x1d0))return null;return{'usedInputTokens':_0x1c891a['inputTokens'],'contextWindow':0x0,'usedPct':0x0};}function buildResultMessage(_0x1c117d,_0x2f3ad3){const _0x3765f6=a14_0x5759ba,_0x562fb9=a14_0x28d73f,_0x769ace=_0x1c117d[_0x562fb9(0x1fb)]?.['at'](-0x1)?.[_0x562fb9(0x23b)],_0x339a2a=_0x1c117d[_0x3765f6(0x6d)]instanceof Error?_0x1c117d[_0x562fb9(0x1da)][_0x562fb9(0x21b)]:_0x1c117d[_0x562fb9(0x1da)]?JSON['stringify'](_0x1c117d[_0x562fb9(0x1da)]):'';return{'type':_0x562fb9(0x203),'subtype':_0x339a2a?_0x562fb9(0x1da):_0x562fb9(0x238),'num_turns':0x1,'usage':{'input_tokens':_0x769ace?.[_0x562fb9(0x22d)]??0x0,'output_tokens':_0x769ace?.[_0x562fb9(0x219)]??0x0},'total_cost_usd':0x0,'is_error':Boolean(_0x339a2a),'errors':_0x339a2a?[_0x339a2a]:[],'model':getModelId(_0x2f3ad3)};}async function connectMcpServers(_0x450c5d){const _0x54085e=a14_0x28d73f;for(const _0x397148 of _0x450c5d){await _0x397148[_0x54085e(0x20d)]();}}async function closeMcpServers(_0x2d5307){const _0x340447=a14_0x5759ba,_0x23ef25=a14_0x28d73f;for(const _0x25de7a of _0x2d5307){try{await _0x25de7a[_0x23ef25(0x1cf)]();}catch(_0x231ad7){logger[_0x23ef25(0x21d)](_0x23ef25(0x1f0)+_0x25de7a[_0x23ef25(0x1de)]+_0x23ef25(0x1fe)+(_0x231ad7 instanceof Error?_0x231ad7[_0x340447(0x8c)]:String(_0x231ad7)));}}}
|
|
@@ -1,167 +1 @@
|
|
|
1
|
-
import { setTimeout as delay } from "node:timers/promises";
|
|
2
|
-
import { computerTool, MCPServerSSE, MCPServerStdio, MCPServerStreamableHttp, tool } from "@openai/agents";
|
|
3
|
-
import { codexTool } from "@openai/agents-extensions/experimental/codex";
|
|
4
|
-
import { z } from "zod";
|
|
5
|
-
import { finishTool } from "../tools/finish.js";
|
|
6
|
-
import { manageCalendarTool } from "../tools/calendar.js";
|
|
7
|
-
import { manageDriveTool } from "../tools/drive.js";
|
|
8
|
-
import { manageEmailTool } from "../tools/email.js";
|
|
9
|
-
import { memoryTool } from "../tools/memory.js";
|
|
10
|
-
import { manageMcpServersTool } from "../tools/mcp-manager.js";
|
|
11
|
-
import { notifyUserTool } from "../tools/notify.js";
|
|
12
|
-
import { manageSkillsTool } from "../tools/skill.js";
|
|
13
|
-
import { switchSessionTool } from "../tools/switch-session.js";
|
|
14
|
-
import { upgradeTool } from "../tools/upgrade.js";
|
|
15
|
-
import { waitTool } from "../tools/wait.js";
|
|
16
|
-
import { captureScreen, click, doubleClick, drag, getDisplaySize, moveTo, pressKey, rightClick, scrollBy, typeText } from "../tools/desktop-executor.js";
|
|
17
|
-
function toZodParameters(schema) {
|
|
18
|
-
return z.object(schema ?? {});
|
|
19
|
-
}
|
|
20
|
-
function normalizeToolOutput(result) {
|
|
21
|
-
const normalized = result.content.map((entry) => {
|
|
22
|
-
if (entry.type === "text") {
|
|
23
|
-
return {
|
|
24
|
-
type: "text",
|
|
25
|
-
text: result.isError ? `Tool error: ${entry.text}` : entry.text,
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
if (entry.type === "image") {
|
|
29
|
-
return {
|
|
30
|
-
type: "image",
|
|
31
|
-
image: {
|
|
32
|
-
data: entry.data,
|
|
33
|
-
mediaType: entry.mimeType,
|
|
34
|
-
},
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
return {
|
|
38
|
-
type: "text",
|
|
39
|
-
text: JSON.stringify(entry),
|
|
40
|
-
};
|
|
41
|
-
});
|
|
42
|
-
const only = normalized[0];
|
|
43
|
-
if (normalized.length === 1 && only.type === "text") {
|
|
44
|
-
return only.text;
|
|
45
|
-
}
|
|
46
|
-
return normalized;
|
|
47
|
-
}
|
|
48
|
-
function adaptClaudeTool(definition) {
|
|
49
|
-
return tool({
|
|
50
|
-
name: definition.name,
|
|
51
|
-
description: definition.description,
|
|
52
|
-
parameters: toZodParameters(definition.inputSchema),
|
|
53
|
-
execute: async (input) => {
|
|
54
|
-
const result = await definition.handler(input, undefined);
|
|
55
|
-
return normalizeToolOutput(result);
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
class VisionClawComputer {
|
|
60
|
-
environment = "mac";
|
|
61
|
-
get dimensions() {
|
|
62
|
-
const size = getDisplaySize();
|
|
63
|
-
return [size.width, size.height];
|
|
64
|
-
}
|
|
65
|
-
async screenshot() {
|
|
66
|
-
const { base64 } = await captureScreen();
|
|
67
|
-
return base64;
|
|
68
|
-
}
|
|
69
|
-
async click(x, y, button) {
|
|
70
|
-
if (button === "left") {
|
|
71
|
-
await click(x, y);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
if (button === "right") {
|
|
75
|
-
await rightClick(x, y);
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
throw new Error(`Unsupported click button: ${button}`);
|
|
79
|
-
}
|
|
80
|
-
async doubleClick(x, y) {
|
|
81
|
-
await doubleClick(x, y);
|
|
82
|
-
}
|
|
83
|
-
async scroll(x, y, scrollX, scrollY) {
|
|
84
|
-
await scrollBy(x, y, scrollY, scrollX);
|
|
85
|
-
}
|
|
86
|
-
async type(text) {
|
|
87
|
-
await typeText(text);
|
|
88
|
-
}
|
|
89
|
-
async wait() {
|
|
90
|
-
await delay(1000);
|
|
91
|
-
}
|
|
92
|
-
async move(x, y) {
|
|
93
|
-
await moveTo(x, y);
|
|
94
|
-
}
|
|
95
|
-
async keypress(keys) {
|
|
96
|
-
await pressKey(keys.join("+"));
|
|
97
|
-
}
|
|
98
|
-
async drag(path) {
|
|
99
|
-
const start = path[0];
|
|
100
|
-
const end = path[path.length - 1];
|
|
101
|
-
await drag(start[0], start[1], end[0], end[1]);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
export function createVisionClawComputerTool() {
|
|
105
|
-
return computerTool({
|
|
106
|
-
computer: new VisionClawComputer(),
|
|
107
|
-
needsApproval: false,
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
export function createOpenAIMcpServers(serverConfigs) {
|
|
111
|
-
return Object.entries(serverConfigs).map(([name, config]) => {
|
|
112
|
-
if (typeof config.command === "string") {
|
|
113
|
-
return new MCPServerStdio({
|
|
114
|
-
name,
|
|
115
|
-
command: config.command,
|
|
116
|
-
args: Array.isArray(config.args) ? config.args.filter((arg) => typeof arg === "string") : [],
|
|
117
|
-
env: isStringRecord(config.env) ? config.env : undefined,
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
if (config.type === "http" && typeof config.url === "string") {
|
|
121
|
-
return new MCPServerStreamableHttp({
|
|
122
|
-
name,
|
|
123
|
-
url: config.url,
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
if (config.type === "sse" && typeof config.url === "string") {
|
|
127
|
-
return new MCPServerSSE({
|
|
128
|
-
name,
|
|
129
|
-
url: config.url,
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
throw new Error(`Unsupported MCP server config for "${name}"`);
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
export function createOpenAITools(options) {
|
|
136
|
-
const tools = [
|
|
137
|
-
adaptClaudeTool(waitTool),
|
|
138
|
-
adaptClaudeTool(notifyUserTool),
|
|
139
|
-
adaptClaudeTool(finishTool),
|
|
140
|
-
adaptClaudeTool(manageSkillsTool),
|
|
141
|
-
adaptClaudeTool(upgradeTool),
|
|
142
|
-
adaptClaudeTool(manageCalendarTool),
|
|
143
|
-
adaptClaudeTool(manageEmailTool),
|
|
144
|
-
adaptClaudeTool(manageDriveTool),
|
|
145
|
-
adaptClaudeTool(memoryTool),
|
|
146
|
-
adaptClaudeTool(manageMcpServersTool),
|
|
147
|
-
createVisionClawComputerTool(),
|
|
148
|
-
];
|
|
149
|
-
if (options.dualSession) {
|
|
150
|
-
tools.push(adaptClaudeTool(switchSessionTool));
|
|
151
|
-
}
|
|
152
|
-
if (options.mode === "coding") {
|
|
153
|
-
tools.push(codexTool({
|
|
154
|
-
sandboxMode: "workspace-write",
|
|
155
|
-
workingDirectory: process.cwd(),
|
|
156
|
-
persistSession: true,
|
|
157
|
-
}));
|
|
158
|
-
}
|
|
159
|
-
return tools;
|
|
160
|
-
}
|
|
161
|
-
function isStringRecord(value) {
|
|
162
|
-
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
|
163
|
-
return false;
|
|
164
|
-
}
|
|
165
|
-
return Object.values(value).every((entry) => typeof entry === "string");
|
|
166
|
-
}
|
|
167
|
-
//# sourceMappingURL=openai-tools.js.map
|
|
1
|
+
const a15_0x168963=a15_0x43e6;(function(_0x2fb17a,_0x3b67d5){const _0xc7c2a8=a15_0x43e6,_0x233773=_0x2fb17a();while(!![]){try{const _0x23ab99=parseInt(_0xc7c2a8(0x1aa))/0x1+parseInt(_0xc7c2a8(0x1cd))/0x2*(parseInt(_0xc7c2a8(0x1ed))/0x3)+parseInt(_0xc7c2a8(0x1bb))/0x4*(parseInt(_0xc7c2a8(0x1c4))/0x5)+parseInt(_0xc7c2a8(0x1d5))/0x6+parseInt(_0xc7c2a8(0x1af))/0x7*(parseInt(_0xc7c2a8(0x1ab))/0x8)+-parseInt(_0xc7c2a8(0x1da))/0x9*(-parseInt(_0xc7c2a8(0x1b5))/0xa)+-parseInt(_0xc7c2a8(0x1b2))/0xb;if(_0x23ab99===_0x3b67d5)break;else _0x233773['push'](_0x233773['shift']());}catch(_0x34e129){_0x233773['push'](_0x233773['shift']());}}}(a15_0xab3d,0x269ba));const a15_0x39fee0=a15_0x34b0;(function(_0x444cc0,_0x461e49){const _0x5074cb=a15_0x43e6,_0x4d6c83=a15_0x34b0,_0x16a734=_0x444cc0();while(!![]){try{const _0x5814f4=parseInt(_0x4d6c83(0x1fd))/0x1*(-parseInt(_0x4d6c83(0x1e2))/0x2)+parseInt(_0x4d6c83(0x1ec))/0x3+parseInt(_0x4d6c83(0x200))/0x4*(parseInt(_0x4d6c83(0x1da))/0x5)+-parseInt(_0x4d6c83(0x1e7))/0x6*(-parseInt(_0x4d6c83(0x1e6))/0x7)+parseInt(_0x4d6c83(0x1ed))/0x8+parseInt(_0x4d6c83(0x1ef))/0x9*(parseInt(_0x4d6c83(0x1e3))/0xa)+-parseInt(_0x4d6c83(0x1fb))/0xb;if(_0x5814f4===_0x461e49)break;else _0x16a734[_0x5074cb(0x1d9)](_0x16a734[_0x5074cb(0x1ec)]());}catch(_0x5b415f){_0x16a734[_0x5074cb(0x1d9)](_0x16a734[_0x5074cb(0x1ec)]());}}}(a15_0x51c4,0x6df7a));import{setTimeout as a15_0x418f10}from'node:timers/promises';import{computerTool,MCPServerSSE,MCPServerStdio,MCPServerStreamableHttp,tool}from'@openai/agents';import{codexTool}from'@openai/agents-extensions/experimental/codex';import{z}from'zod';import{finishTool}from'../tools/finish.js';import{manageCalendarTool}from'../tools/calendar.js';import{manageDriveTool}from'../tools/drive.js';import{manageEmailTool}from'../tools/email.js';function a15_0x34b0(_0x483fab,_0x3146eb){const _0x18acfb=a15_0x43e6;_0x483fab=_0x483fab-0x1d7;const _0x2e85ba=a15_0x51c4();let _0x36045d=_0x2e85ba[_0x483fab];if(a15_0x34b0['NPSoPW']===undefined){var _0x18d9bf=function(_0x8b13a1){const _0x5e9f26=a15_0x43e6,_0x449575='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3d98dc='',_0x5168bf='';for(let _0xd13027=0x0,_0x37b4fd,_0x4a8b9a,_0x2ff82a=0x0;_0x4a8b9a=_0x8b13a1[_0x5e9f26(0x1e5)](_0x2ff82a++);~_0x4a8b9a&&(_0x37b4fd=_0xd13027%0x4?_0x37b4fd*0x40+_0x4a8b9a:_0x4a8b9a,_0xd13027++%0x4)?_0x3d98dc+=String['fromCharCode'](0xff&_0x37b4fd>>(-0x2*_0xd13027&0x6)):0x0){_0x4a8b9a=_0x449575[_0x5e9f26(0x1dd)](_0x4a8b9a);}for(let _0x141827=0x0,_0x8cff66=_0x3d98dc['length'];_0x141827<_0x8cff66;_0x141827++){_0x5168bf+='%'+('00'+_0x3d98dc[_0x5e9f26(0x1d6)](_0x141827)[_0x5e9f26(0x1b4)](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5168bf);};a15_0x34b0['NlyaCZ']=_0x18d9bf,a15_0x34b0[_0x18acfb(0x1eb)]={},a15_0x34b0[_0x18acfb(0x1db)]=!![];}const _0x1a794f=_0x2e85ba[0x0],_0x4da82d=_0x483fab+_0x1a794f,_0x4341d3=a15_0x34b0['zizkDc'][_0x4da82d];return!_0x4341d3?(_0x36045d=a15_0x34b0[_0x18acfb(0x1d3)](_0x36045d),a15_0x34b0['zizkDc'][_0x4da82d]=_0x36045d):_0x36045d=_0x4341d3,_0x36045d;}import{memoryTool}from'../tools/memory.js';import{manageMcpServersTool}from'../tools/mcp-manager.js';function a15_0xab3d(){const _0x40bb3c=['vw5ZDxbWB3j0zwqGtunqihnLCNzLCIbJB25MAwCGzM9Yici','qxHUyKnoAKHfCq','BuPlv252sfr2teHrCKC','qtj2nunOAKXdm20','EML6A0rJ','C2HPzNq','odq1otC2C0HfruTZ','BwfJ','EMC5mxLnweXXmLHqEtjt','qZnYwuf3nu5bD3O1','ENH6tenosW','zhvHBfnLC3nPB24','BNrTwM9KEtfdtxi1DxC1uG','mty3nJyZuhb4BK5W','nZmYnJy0rgDqu3jV','ENC1mennteXdvW','zgLTzw5ZAw9UCW','qJjQuxP3BJa','mJf6Bgzky3m','qxC1v0r4CNr5mKHmqNDL','DxjS','mteZmda2odvvAwzNvhu','rdjMuerH','Dg9tDhjPBMC','mtbdywH0C2K','qxCXshOYDq','DMfSDwvZ','ExHQtKnx','rgHmv3PX','D29YA3nWywnLlxDYAxrL','nte2zeL1z3fz','EtnesW','BMrIDhjMyNP2tKm','ENC1mG','qZnUta','rgD2nerH','qNDMvW','CMLNAhq','C2nYzwvUC2HVDa','mZC1nvvHCvjMBG','EK1mu0rNDLK','BxrPmg5oseXXs2z0q1C','Dgv4Da','qu05uejh','rhHQuW','Bw9Kzq','EtjyuhKYuW','BKPPmg90DvHZDuHrqu1Mta','mMPzCvrOwa','qZnYwuf3nu4','Eti5vej3zLv6yq','qK1MvhPX','zhjHzW','y29KAw5N','tMX5yunA','ENC1mKf4ALzcttfmqK5X','mte0mJyXmhjQC29iDq','y2HHCKnVzgvbDa','qMD2turH','qwD2uhOYsda','ChvZAa','mtu2mZC5nwL2rxftzq','tLbtB1bx','DNC1wKr4yLDcm2OWENDXr3KYwfb5mLnhEu52merNovvVswe','Aw5KzxHpzG','C3rYAw5N','B3rLnxqZEKH2mwzK','qZjUwuiYwfm','Ahr0Ca','qNDmvhP2CJvdz3u','EMD2wNKZALbdAhjqqJi0','qMD2vxOZCK8','y2HHCKf0','AgfUzgXLCG'];a15_0xab3d=function(){return _0x40bb3c;};return a15_0xab3d();}import{notifyUserTool}from'../tools/notify.js';import{manageSkillsTool}from'../tools/skill.js';import{switchSessionTool}from'../tools/switch-session.js';import{upgradeTool}from'../tools/upgrade.js';import{waitTool}from'../tools/wait.js';import{captureScreen,click,doubleClick,drag,getDisplaySize,moveTo,pressKey,rightClick,scrollBy,typeText}from'../tools/desktop-executor.js';function toZodParameters(_0x2769e2){const _0x354c8b=a15_0x34b0;return z[_0x354c8b(0x1e8)](_0x2769e2??{});}function normalizeToolOutput(_0x5a85b9){const _0x1f576b=a15_0x34b0,_0x3113bc=_0x5a85b9[_0x1f576b(0x1e4)][_0x1f576b(0x202)](_0x24caf1=>{const _0x5e0692=a15_0x43e6,_0x444817=_0x1f576b;if(_0x24caf1[_0x444817(0x1e9)]===_0x444817(0x1e5))return{'type':'text','text':_0x5a85b9[_0x444817(0x1eb)]?'Tool\x20error:\x20'+_0x24caf1['text']:_0x24caf1[_0x5e0692(0x1c7)]};if(_0x24caf1[_0x444817(0x1e9)]===_0x444817(0x1d9))return{'type':_0x444817(0x1d9),'image':{'data':_0x24caf1[_0x444817(0x1de)],'mediaType':_0x24caf1[_0x444817(0x1fa)]}};return{'type':_0x444817(0x1e5),'text':JSON[_0x444817(0x1ea)](_0x24caf1)};}),_0x1edeab=_0x3113bc[0x0];if(_0x3113bc[_0x1f576b(0x1dd)]===0x1&&_0x1edeab[_0x1f576b(0x1e9)]==='text')return _0x1edeab[_0x1f576b(0x1e5)];return _0x3113bc;}function adaptClaudeTool(_0x12774e){const _0x25d968=a15_0x34b0;return tool({'name':_0x12774e[_0x25d968(0x1fc)],'description':_0x12774e[_0x25d968(0x1f4)],'parameters':toZodParameters(_0x12774e[_0x25d968(0x206)]),'execute':async _0x2dd93f=>{const _0x2d9388=a15_0x43e6,_0x33dda7=await _0x12774e[_0x2d9388(0x1e6)](_0x2dd93f,undefined);return normalizeToolOutput(_0x33dda7);}});}function a15_0x51c4(){const _0x5af5e1=a15_0x43e6,_0xb07464=[_0x5af5e1(0x1ae),_0x5af5e1(0x1b9),_0x5af5e1(0x1f0),'AxnfCNjVCG','mtC1ntyZm1LuEwTgDa','nJe4nZy1nNzXuNPftW',_0x5af5e1(0x1d7),_0x5af5e1(0x1cc),_0x5af5e1(0x1b3),_0x5af5e1(0x1e0),_0x5af5e1(0x1ce),_0x5af5e1(0x1c9),_0x5af5e1(0x1e3),_0x5af5e1(0x1cf),'Bw92zq',_0x5af5e1(0x1bf),_0x5af5e1(0x1ef),_0x5af5e1(0x1ac),_0x5af5e1(0x1e2),'mtq2mJiWmJvgsu9NA3O',_0x5af5e1(0x1d0),_0x5af5e1(0x1df),_0x5af5e1(0x1dc),_0x5af5e1(0x1c8),'mtjAC0njufO',_0x5af5e1(0x1b8),_0x5af5e1(0x1c1),_0x5af5e1(0x1cb),_0x5af5e1(0x1e8),_0x5af5e1(0x1d4),_0x5af5e1(0x1b0),_0x5af5e1(0x1ea),_0x5af5e1(0x1f1),_0x5af5e1(0x1b6),_0x5af5e1(0x1a9),_0x5af5e1(0x1bc),'ChvZAa',_0x5af5e1(0x1e4),'zgf0yq',_0x5af5e1(0x1d8),_0x5af5e1(0x1c5),_0x5af5e1(0x1be),_0x5af5e1(0x1c6),_0x5af5e1(0x1bd),'y29UDgvUDa',_0x5af5e1(0x1c0),_0x5af5e1(0x1e9),'ntCXogH0AxnlwG'];return a15_0x51c4=function(){return _0xb07464;},a15_0x51c4();}class VisionClawComputer{[a15_0x39fee0(0x205)]=a15_0x168963(0x1ee);get[a15_0x168963(0x1ad)](){const _0x86934c=a15_0x39fee0,_0x18212b=getDisplaySize();return[_0x18212b['width'],_0x18212b[_0x86934c(0x1df)]];}async[a15_0x168963(0x1c3)](){const {base64:_0x234b90}=await captureScreen();return _0x234b90;}async[a15_0x39fee0(0x203)](_0x3f4216,_0x1700d7,_0x100cc4){const _0x21e5c6=a15_0x168963,_0x399bc8=a15_0x39fee0;if(_0x100cc4===_0x399bc8(0x1ee)){await click(_0x3f4216,_0x1700d7);return;}if(_0x100cc4===_0x21e5c6(0x1c2)){await rightClick(_0x3f4216,_0x1700d7);return;}throw new Error(_0x399bc8(0x1fe)+_0x100cc4);}async[a15_0x39fee0(0x1f8)](_0xf3bf9e,_0x154656){await doubleClick(_0xf3bf9e,_0x154656);}async[a15_0x39fee0(0x1f1)](_0x5e97d5,_0x33ef93,_0x551e61,_0x4cbf30){await scrollBy(_0x5e97d5,_0x33ef93,_0x4cbf30,_0x551e61);}async['type'](_0x30e169){await typeText(_0x30e169);}async[a15_0x39fee0(0x1f0)](){await a15_0x418f10(0x3e8);}async[a15_0x39fee0(0x1f6)](_0x35056c,_0x2fff5b){await moveTo(_0x35056c,_0x2fff5b);}async[a15_0x39fee0(0x1d7)](_0x15c19e){const _0x9bd529=a15_0x39fee0;await pressKey(_0x15c19e[_0x9bd529(0x1ff)]('+'));}async[a15_0x168963(0x1d1)](_0x1eba28){const _0x3bb2b5=a15_0x39fee0,_0x2a5725=_0x1eba28[0x0],_0x2a1348=_0x1eba28[_0x1eba28[_0x3bb2b5(0x1dd)]-0x1];await drag(_0x2a5725[0x0],_0x2a5725[0x1],_0x2a1348[0x0],_0x2a1348[0x1]);}}export function createVisionClawComputerTool(){return computerTool({'computer':new VisionClawComputer(),'needsApproval':![]});}function a15_0x43e6(_0x40cf7e,_0x2935de){_0x40cf7e=_0x40cf7e-0x1a8;const _0xab3d3f=a15_0xab3d();let _0x43e616=_0xab3d3f[_0x40cf7e];if(a15_0x43e6['uDaqMK']===undefined){var _0x11b347=function(_0x25aa53){const _0x432de0='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x418f10='',_0x444cc0='';for(let _0x461e49=0x0,_0x4d6c83,_0x16a734,_0x5814f4=0x0;_0x16a734=_0x25aa53['charAt'](_0x5814f4++);~_0x16a734&&(_0x4d6c83=_0x461e49%0x4?_0x4d6c83*0x40+_0x16a734:_0x16a734,_0x461e49++%0x4)?_0x418f10+=String['fromCharCode'](0xff&_0x4d6c83>>(-0x2*_0x461e49&0x6)):0x0){_0x16a734=_0x432de0['indexOf'](_0x16a734);}for(let _0x5b415f=0x0,_0x483fab=_0x418f10['length'];_0x5b415f<_0x483fab;_0x5b415f++){_0x444cc0+='%'+('00'+_0x418f10['charCodeAt'](_0x5b415f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x444cc0);};a15_0x43e6['ZECGjv']=_0x11b347,a15_0x43e6['TrToGx']={},a15_0x43e6['uDaqMK']=!![];}const _0x4bc35c=_0xab3d3f[0x0],_0x50f5b2=_0x40cf7e+_0x4bc35c,_0x4ff49c=a15_0x43e6['TrToGx'][_0x50f5b2];return!_0x4ff49c?(_0x43e616=a15_0x43e6['ZECGjv'](_0x43e616),a15_0x43e6['TrToGx'][_0x50f5b2]=_0x43e616):_0x43e616=_0x4ff49c,_0x43e616;}export function createOpenAIMcpServers(_0x2a984b){const _0x43bd92=a15_0x39fee0;return Object[_0x43bd92(0x1f9)](_0x2a984b)[_0x43bd92(0x202)](([_0x270449,_0x3b6f1b])=>{const _0x5be836=a15_0x43e6,_0x1fae47=_0x43bd92;if(typeof _0x3b6f1b[_0x1fae47(0x1f5)]===_0x1fae47(0x1f2))return new MCPServerStdio({'name':_0x270449,'command':_0x3b6f1b[_0x1fae47(0x1f5)],'args':Array[_0x1fae47(0x204)](_0x3b6f1b[_0x1fae47(0x201)])?_0x3b6f1b[_0x1fae47(0x201)][_0x1fae47(0x1e0)](_0x4beda0=>typeof _0x4beda0===_0x5be836(0x1de)):[],'env':isStringRecord(_0x3b6f1b[_0x1fae47(0x1e1)])?_0x3b6f1b['env']:undefined});if(_0x3b6f1b[_0x1fae47(0x1e9)]===_0x5be836(0x1e1)&&typeof _0x3b6f1b['url']===_0x1fae47(0x1f2))return new MCPServerStreamableHttp({'name':_0x270449,'url':_0x3b6f1b[_0x1fae47(0x1f3)]});if(_0x3b6f1b[_0x1fae47(0x1e9)]===_0x1fae47(0x1f7)&&typeof _0x3b6f1b[_0x1fae47(0x1f3)]===_0x1fae47(0x1f2))return new MCPServerSSE({'name':_0x270449,'url':_0x3b6f1b[_0x5be836(0x1b1)]});throw new Error(_0x5be836(0x1e7)+_0x270449+'\x22');});}export function createOpenAITools(_0x584822){const _0x228815=a15_0x168963,_0x3165ee=a15_0x39fee0,_0x57ecfe=[adaptClaudeTool(waitTool),adaptClaudeTool(notifyUserTool),adaptClaudeTool(finishTool),adaptClaudeTool(manageSkillsTool),adaptClaudeTool(upgradeTool),adaptClaudeTool(manageCalendarTool),adaptClaudeTool(manageEmailTool),adaptClaudeTool(manageDriveTool),adaptClaudeTool(memoryTool),adaptClaudeTool(manageMcpServersTool),createVisionClawComputerTool()];return _0x584822[_0x228815(0x1a8)]&&_0x57ecfe[_0x3165ee(0x1dc)](adaptClaudeTool(switchSessionTool)),_0x584822[_0x228815(0x1ca)]===_0x228815(0x1d2)&&_0x57ecfe[_0x3165ee(0x1dc)](codexTool({'sandboxMode':_0x228815(0x1ba),'workingDirectory':process[_0x3165ee(0x1db)](),'persistSession':!![]})),_0x57ecfe;}function isStringRecord(_0x11d5d4){const _0x577e64=a15_0x168963,_0x1fcf88=a15_0x39fee0;if(!_0x11d5d4||typeof _0x11d5d4!==_0x1fcf88(0x1e8)||Array[_0x1fcf88(0x204)](_0x11d5d4))return![];return Object[_0x577e64(0x1b7)](_0x11d5d4)[_0x1fcf88(0x1d8)](_0x5779fe=>typeof _0x5779fe===_0x1fcf88(0x1f2));}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/agent/providers/claude/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,UAAU,EACf,KAAK,cAAc,EAOpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAIhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAOpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../../src/agent/providers/claude/session.ts"],"names":[],"mappings":"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"}
|