@tangle-network/sandbox 0.2.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +11 -0
- package/README.md +71 -0
- package/dist/agent/index.d.ts +433 -0
- package/dist/agent/index.js +1 -0
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.js +1 -271
- package/dist/client-CygjzF3v.js +1 -0
- package/dist/{errors-BI75IXOM.d.ts → client-DM2pIli7.d.ts} +2 -129
- package/dist/collaboration/index.d.ts +1 -1
- package/dist/collaboration/index.js +1 -2
- package/dist/collaboration-CRyb5e8F.js +1 -201
- package/dist/core.d.ts +3 -2
- package/dist/core.js +1 -4
- package/dist/errors-1Se5ATyZ.d.ts +128 -0
- package/dist/errors-CljiGR__.js +1 -262
- package/dist/{index-DhNGZ0h4.d.ts → index-CTj81tF9.d.ts} +1 -1
- package/dist/index.d.ts +256 -7
- package/dist/index.js +1 -825
- package/dist/openai/index.d.ts +21 -6
- package/dist/openai/index.js +1 -1721
- package/dist/{sandbox-aBpWqler.d.ts → sandbox-CBmfYqMQ.d.ts} +291 -117
- package/dist/sandbox-DTup2jzz.js +1 -0
- package/dist/session-gateway/index.js +1 -667
- package/dist/tangle/index.d.ts +1 -1
- package/dist/tangle/index.js +1 -2
- package/dist/tangle-CnYnTRi6.js +1 -0
- package/package.json +50 -78
- package/dist/client-Uve6A5C6.js +0 -2280
- package/dist/platform-integrations.d.ts +0 -2
- package/dist/platform-integrations.js +0 -2
- package/dist/sandbox-ksXTNlo-.js +0 -3394
- package/dist/tangle-DQ05paN7.js +0 -826
- /package/dist/{index-Dpj1oB5i.d.ts → index-D-2pH_70.d.ts} +0 -0
- /package/dist/{index-CCsA3S0D.d.ts → index-D7bwmNs8.d.ts} +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Copyright (c) 2025 Tangle Network
|
|
2
|
+
|
|
3
|
+
All rights reserved.
|
|
4
|
+
|
|
5
|
+
This software and associated documentation files (the "Software") are proprietary
|
|
6
|
+
and confidential. No part of this Software may be reproduced, distributed, or
|
|
7
|
+
transmitted in any form or by any means, including photocopying, recording, or
|
|
8
|
+
other electronic or mechanical methods, without the prior written permission of
|
|
9
|
+
Tangle Network.
|
|
10
|
+
|
|
11
|
+
For licensing inquiries, contact: hello@tangle.tools
|
package/README.md
CHANGED
|
@@ -43,6 +43,77 @@ console.log(task.response);
|
|
|
43
43
|
await box.delete();
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
+
## Stream durability is platform-managed — do not build your own
|
|
47
|
+
|
|
48
|
+
> **If you are about to add a Cloudflare Durable Object, a KV bucket, an in-Worker
|
|
49
|
+
> ring buffer, or any other state store to "buffer agent stream events so the user
|
|
50
|
+
> survives a reload" — stop.** The Tangle orchestrator already buffers every event
|
|
51
|
+
> for every session to a Redis sorted-set keyed by `sessionId` with TTL, and the
|
|
52
|
+
> SDK ships a browser/Worker-safe client that reconnects, replays missed events,
|
|
53
|
+
> and persists `lastEventId` across tab reloads. The work is done. Use it.
|
|
54
|
+
|
|
55
|
+
The decision tree:
|
|
56
|
+
|
|
57
|
+
| You need… | Use |
|
|
58
|
+
|---|---|
|
|
59
|
+
| Fire-and-forget streaming from a server you control (CLI, cron, batch worker) | `box.streamPrompt()` / `box.streamTask()` — internal auto-reconnect handles transient drops within the same call |
|
|
60
|
+
| Survive **client process death** (Worker isolate eviction, laptop crash, deploy) and resume later | `box.dispatchPrompt(msg, { sessionId })` then `box.session(sessionId).events({ since })` / `.result()` from a fresh process |
|
|
61
|
+
| Survive **browser** disconnects (wifi flap, tab reload, mobile background) with `Last-Event-ID` replay | `SessionGatewayClient` from `@tangle-network/sandbox/session-gateway` |
|
|
62
|
+
| Retry a payment-triggered or webhook-triggered run safely | `box.dispatchPrompt(msg, { sessionId: deterministicKeyFromRequest })` — same `sessionId` is idempotent: a duplicate dispatch returns the in-flight or completed session, never re-executes |
|
|
63
|
+
| Inspect what happened to a turn that died mid-stream | `box.session(id).status()` (terminal state), `box.session(id).events({ since })` (replay buffered events) |
|
|
64
|
+
|
|
65
|
+
### Dispatch + reconnect (the "Worker restart" pattern)
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
import { Sandbox } from "@tangle-network/sandbox";
|
|
69
|
+
|
|
70
|
+
const client = new Sandbox({ apiKey: process.env.TANGLE_API_KEY! });
|
|
71
|
+
|
|
72
|
+
// In your /chat handler:
|
|
73
|
+
const sessionId = req.headers.get("x-turn-id") ?? crypto.randomUUID();
|
|
74
|
+
const { sessionId: id, alreadyExisted } = await box.dispatchPrompt(prompt, {
|
|
75
|
+
sessionId, // idempotent: a retry with the same id is a lookup, not a re-execute
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// Stream to the browser; if the client comes back later with the same sessionId
|
|
79
|
+
// and a Last-Event-ID, hand them the replay path below.
|
|
80
|
+
for await (const event of box.session(id).events({
|
|
81
|
+
since: req.headers.get("last-event-id") ?? undefined,
|
|
82
|
+
})) {
|
|
83
|
+
res.write(`id: ${event.id}\ndata: ${JSON.stringify(event)}\n\n`);
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Browser-direct streaming (without proxying tokens through your server)
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
import { SessionGatewayClient } from "@tangle-network/sandbox/session-gateway";
|
|
91
|
+
|
|
92
|
+
const client = new SessionGatewayClient({
|
|
93
|
+
url: "wss://your-sandbox-api.example.com/session",
|
|
94
|
+
token: await fetchScopedToken(), // mint via box.mintScopedToken({ scope: 'session', sessionId })
|
|
95
|
+
sessionId,
|
|
96
|
+
autoReconnect: true,
|
|
97
|
+
enableReplayPersistence: true, // remembers lastEventId across reloads
|
|
98
|
+
replayStorage: { /* localStorage adapter, see session-gateway docs */ },
|
|
99
|
+
handlers: {
|
|
100
|
+
onMessage: (event) => render(event),
|
|
101
|
+
onReplayStart: ({ since }) => showSpinner(`replaying from ${since}`),
|
|
102
|
+
onReplayComplete: () => hideSpinner(),
|
|
103
|
+
onBackpressureWarning: ({ droppedCount, suggestReplay }) =>
|
|
104
|
+
suggestReplay && client.replay(client.stats.replay.lastEventId),
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
client.connect();
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
`SessionGatewayClient` handles auto-reconnect with exponential backoff, sequence-gap
|
|
111
|
+
detection, replay-on-reconnect, and `lastEventId` persistence. None of this requires a
|
|
112
|
+
Durable Object.
|
|
113
|
+
|
|
114
|
+
See `examples/cf-worker-chat.ts`, `examples/browser-streaming-resume.ts`, and
|
|
115
|
+
`examples/reconnect-from-last-event-id.ts` for end-to-end patterns.
|
|
116
|
+
|
|
46
117
|
## Features
|
|
47
118
|
|
|
48
119
|
- **Sandbox Management** - Create, list, stop, resume, and delete sandboxes
|
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
import { F as CodeExecutionOptions, I as CodeExecutionResult, L as CodeLanguage, n as SandboxInstance, z as CodeResultPart } from "../sandbox-CBmfYqMQ.js";
|
|
2
|
+
import { i as SandboxClient } from "../client-DM2pIli7.js";
|
|
3
|
+
import * as _$_modelcontextprotocol_sdk_server_index_js0 from "@modelcontextprotocol/sdk/server/index.js";
|
|
4
|
+
|
|
5
|
+
//#region src/agent/tools/_specs.d.ts
|
|
6
|
+
/** JSON-schema-ish object describing tool inputs. Plain object literal — no Zod required. */
|
|
7
|
+
type ToolJSONSchema = {
|
|
8
|
+
type: "object";
|
|
9
|
+
properties: Record<string, unknown>;
|
|
10
|
+
required?: string[];
|
|
11
|
+
additionalProperties?: boolean;
|
|
12
|
+
};
|
|
13
|
+
interface ToolHandlerContext {
|
|
14
|
+
box: SandboxInstance;
|
|
15
|
+
/**
|
|
16
|
+
* Session scope passed through to code-kernel and session-aware methods.
|
|
17
|
+
* When unset, the bare-session kernel and the sandbox root workspace are used.
|
|
18
|
+
*/
|
|
19
|
+
sessionId?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Pack-agnostic tool definition. The handler returns whatever the underlying
|
|
23
|
+
* SDK method returns; each pack is responsible for serializing it into a
|
|
24
|
+
* framework-appropriate tool-result payload.
|
|
25
|
+
*/
|
|
26
|
+
interface ToolSpec<TArgs = Record<string, unknown>, TResult = unknown> {
|
|
27
|
+
name: string;
|
|
28
|
+
description: string;
|
|
29
|
+
inputSchema: ToolJSONSchema;
|
|
30
|
+
makeHandler: (ctx: ToolHandlerContext) => (args: TArgs) => Promise<TResult>;
|
|
31
|
+
}
|
|
32
|
+
/** All canonical tool names — derived from the keyed registry below. */
|
|
33
|
+
type ToolName = keyof typeof TOOL_SPECS;
|
|
34
|
+
/**
|
|
35
|
+
* Keyed registry. `as const` preserves per-tool TArgs/TResult through the
|
|
36
|
+
* type system — `TOOL_SPECS.sandbox_run_code.makeHandler` returns a handler
|
|
37
|
+
* whose args parameter is the runCodeSpec's typed `{language, source, ...}`,
|
|
38
|
+
* not the erased `Record<string, unknown>` that an array-of-ToolSpec loses.
|
|
39
|
+
*
|
|
40
|
+
* Iteration order matches the order entries are declared here (V8 preserves
|
|
41
|
+
* string-key insertion order), so the public surface is stable.
|
|
42
|
+
*/
|
|
43
|
+
declare const TOOL_SPECS: {
|
|
44
|
+
readonly sandbox_run_code: ToolSpec<{
|
|
45
|
+
language: "python" | "node" | "typescript" | "bash";
|
|
46
|
+
source: string;
|
|
47
|
+
timeout_ms?: number;
|
|
48
|
+
}, unknown>;
|
|
49
|
+
readonly sandbox_exec: ToolSpec<{
|
|
50
|
+
command: string;
|
|
51
|
+
cwd?: string;
|
|
52
|
+
timeout_ms?: number;
|
|
53
|
+
}, unknown>;
|
|
54
|
+
readonly sandbox_read: ToolSpec<{
|
|
55
|
+
path: string;
|
|
56
|
+
}, unknown>;
|
|
57
|
+
readonly sandbox_write: ToolSpec<{
|
|
58
|
+
path: string;
|
|
59
|
+
content: string;
|
|
60
|
+
}, unknown>;
|
|
61
|
+
readonly sandbox_list: ToolSpec<{
|
|
62
|
+
path: string;
|
|
63
|
+
}, unknown>;
|
|
64
|
+
readonly sandbox_search: ToolSpec<{
|
|
65
|
+
pattern: string;
|
|
66
|
+
path?: string;
|
|
67
|
+
max_results?: number;
|
|
68
|
+
}, unknown>;
|
|
69
|
+
};
|
|
70
|
+
//#endregion
|
|
71
|
+
//#region src/agent/mcp-local.d.ts
|
|
72
|
+
interface McpServerOptions {
|
|
73
|
+
/** Which tools to expose. Defaults to all. */
|
|
74
|
+
allow?: ToolName[];
|
|
75
|
+
/** Session scope passed to handlers. */
|
|
76
|
+
sessionId?: string;
|
|
77
|
+
/** Override the MCP server's reported name. Defaults to "tangle-sandbox". */
|
|
78
|
+
name?: string;
|
|
79
|
+
/** Override the reported version string. Defaults to the SDK package version. */
|
|
80
|
+
version?: string;
|
|
81
|
+
}
|
|
82
|
+
type McpSdkServerModule = typeof _$_modelcontextprotocol_sdk_server_index_js0;
|
|
83
|
+
type AnyMcpServer = InstanceType<McpSdkServerModule["Server"]>;
|
|
84
|
+
interface McpServerHandle {
|
|
85
|
+
/** The underlying MCP Server instance (typed loosely to avoid a hard dep). */
|
|
86
|
+
server: AnyMcpServer;
|
|
87
|
+
/** Connect over a transport (typically StdioServerTransport). */
|
|
88
|
+
connect: (transport: unknown) => Promise<void>;
|
|
89
|
+
/** Shut the server down. */
|
|
90
|
+
close: () => Promise<void>;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Build an MCP server backed by one sandbox. The server registers
|
|
94
|
+
* `tools/list` and `tools/call` handlers populated from the same registry
|
|
95
|
+
* the framework packs use.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```ts
|
|
99
|
+
* // tangle-mcp-server.ts — used as the command in your MCP client config.
|
|
100
|
+
* import { Sandbox } from "@tangle-network/sandbox";
|
|
101
|
+
* import { createMcpServer } from "@tangle-network/sandbox/agent";
|
|
102
|
+
* import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
103
|
+
*
|
|
104
|
+
* const client = new Sandbox({ apiKey: process.env.TANGLE_API_KEY });
|
|
105
|
+
* const box = await client.get(process.env.SANDBOX_ID!);
|
|
106
|
+
* const { connect } = await createMcpServer(box, { sessionId: "claude-desktop" });
|
|
107
|
+
* await connect(new StdioServerTransport());
|
|
108
|
+
* ```
|
|
109
|
+
*
|
|
110
|
+
* Claude Desktop config snippet:
|
|
111
|
+
* ```json
|
|
112
|
+
* {
|
|
113
|
+
* "mcpServers": {
|
|
114
|
+
* "tangle-sandbox": {
|
|
115
|
+
* "command": "node",
|
|
116
|
+
* "args": ["./tangle-mcp-server.js"],
|
|
117
|
+
* "env": { "TANGLE_API_KEY": "...", "SANDBOX_ID": "..." }
|
|
118
|
+
* }
|
|
119
|
+
* }
|
|
120
|
+
* }
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
declare function createMcpServer(box: SandboxInstance, options?: McpServerOptions): Promise<McpServerHandle>;
|
|
124
|
+
//#endregion
|
|
125
|
+
//#region src/agent/run-code.d.ts
|
|
126
|
+
/**
|
|
127
|
+
* Functional form of `box.runCode(...)`. Useful when only the function is in
|
|
128
|
+
* scope (e.g., when wiring into a framework tool definition that captures
|
|
129
|
+
* the callable but not the surrounding instance).
|
|
130
|
+
*
|
|
131
|
+
* Identical semantics to {@link SandboxInstance.runCode}.
|
|
132
|
+
*/
|
|
133
|
+
declare function runCode(box: SandboxInstance, language: CodeLanguage, source: string, options?: CodeExecutionOptions): Promise<CodeExecutionResult>;
|
|
134
|
+
//#endregion
|
|
135
|
+
//#region src/agent/tools/anthropic.d.ts
|
|
136
|
+
interface AnthropicTool {
|
|
137
|
+
name: string;
|
|
138
|
+
description: string;
|
|
139
|
+
input_schema: {
|
|
140
|
+
type: "object";
|
|
141
|
+
properties: Record<string, unknown>;
|
|
142
|
+
required?: string[];
|
|
143
|
+
additionalProperties?: boolean;
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
interface AnthropicToolUseBlock {
|
|
147
|
+
type: "tool_use";
|
|
148
|
+
id: string;
|
|
149
|
+
name: string;
|
|
150
|
+
input: Record<string, unknown>;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Multi-block content payload for tool_result. The Anthropic Messages API
|
|
154
|
+
* accepts both a plain string and an array of content blocks; using the
|
|
155
|
+
* array form lets us hand images back as native `image` blocks instead of
|
|
156
|
+
* stuffing base64 into a JSON string the model has to re-parse.
|
|
157
|
+
*/
|
|
158
|
+
type AnthropicToolResultContentBlock = {
|
|
159
|
+
type: "text";
|
|
160
|
+
text: string;
|
|
161
|
+
} | {
|
|
162
|
+
type: "image";
|
|
163
|
+
source: {
|
|
164
|
+
type: "base64";
|
|
165
|
+
media_type: "image/png" | "image/jpeg" | "image/webp" | "image/gif";
|
|
166
|
+
data: string;
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
interface AnthropicToolResultBlock {
|
|
170
|
+
type: "tool_result";
|
|
171
|
+
tool_use_id: string;
|
|
172
|
+
content: string | AnthropicToolResultContentBlock[];
|
|
173
|
+
is_error?: boolean;
|
|
174
|
+
}
|
|
175
|
+
interface AnthropicToolPackOptions {
|
|
176
|
+
/** Which tools to expose. Defaults to all. */
|
|
177
|
+
allow?: ToolName[];
|
|
178
|
+
/** Session scope passed to handlers (kernel persistence, file routing). */
|
|
179
|
+
sessionId?: string;
|
|
180
|
+
}
|
|
181
|
+
interface AnthropicToolPack {
|
|
182
|
+
/** Tools array — pass directly to `messages.create({ tools })`. */
|
|
183
|
+
tools: AnthropicTool[];
|
|
184
|
+
/**
|
|
185
|
+
* Dispatch a single `tool_use` block. The returned `tool_result` block
|
|
186
|
+
* goes into the next assistant turn's `messages` array.
|
|
187
|
+
*/
|
|
188
|
+
handleToolUse(block: AnthropicToolUseBlock): Promise<AnthropicToolResultBlock>;
|
|
189
|
+
/**
|
|
190
|
+
* Convenience for batch handling: filters the assistant message's content
|
|
191
|
+
* for tool_use blocks, dispatches them in parallel, and returns the
|
|
192
|
+
* matching tool_result blocks ready to attach to the next user turn.
|
|
193
|
+
*/
|
|
194
|
+
handleAssistantMessage(content: unknown[]): Promise<AnthropicToolResultBlock[]>;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Build an Anthropic tool pack bound to one sandbox.
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```ts
|
|
201
|
+
* import Anthropic from "@anthropic-ai/sdk";
|
|
202
|
+
* import { anthropicTools } from "@tangle-network/sandbox/agent";
|
|
203
|
+
*
|
|
204
|
+
* const claude = new Anthropic();
|
|
205
|
+
* const { tools, handleAssistantMessage } = anthropicTools(box, { sessionId: "s1" });
|
|
206
|
+
*
|
|
207
|
+
* const messages = [{ role: "user", content: "Plot sin(x) for x in [0, 2π]." }];
|
|
208
|
+
* for (let i = 0; i < 6; i++) {
|
|
209
|
+
* const r = await claude.messages.create({
|
|
210
|
+
* model: "claude-opus-4-7",
|
|
211
|
+
* max_tokens: 4096,
|
|
212
|
+
* tools,
|
|
213
|
+
* messages,
|
|
214
|
+
* });
|
|
215
|
+
* messages.push({ role: "assistant", content: r.content });
|
|
216
|
+
* if (r.stop_reason !== "tool_use") break;
|
|
217
|
+
* const results = await handleAssistantMessage(r.content);
|
|
218
|
+
* messages.push({ role: "user", content: results });
|
|
219
|
+
* }
|
|
220
|
+
* ```
|
|
221
|
+
*/
|
|
222
|
+
declare function anthropicTools(box: SandboxInstance, options?: AnthropicToolPackOptions): AnthropicToolPack;
|
|
223
|
+
//#endregion
|
|
224
|
+
//#region src/agent/tools/fleet/_specs.d.ts
|
|
225
|
+
interface FleetToolHandlerContext {
|
|
226
|
+
client: SandboxClient;
|
|
227
|
+
}
|
|
228
|
+
interface FleetToolSpec<TArgs = Record<string, unknown>, TResult = unknown> {
|
|
229
|
+
name: string;
|
|
230
|
+
description: string;
|
|
231
|
+
inputSchema: ToolJSONSchema;
|
|
232
|
+
makeHandler: (ctx: FleetToolHandlerContext) => (args: TArgs) => Promise<TResult>;
|
|
233
|
+
}
|
|
234
|
+
declare const FLEET_TOOL_SPECS: {
|
|
235
|
+
readonly sandbox_fleet_spawn: FleetToolSpec<{
|
|
236
|
+
template_id: string;
|
|
237
|
+
workers: number;
|
|
238
|
+
metadata?: Record<string, string>;
|
|
239
|
+
}, unknown>;
|
|
240
|
+
readonly sandbox_fleet_dispatch: FleetToolSpec<{
|
|
241
|
+
fleet_id: string;
|
|
242
|
+
command: string;
|
|
243
|
+
machines?: string[];
|
|
244
|
+
timeout_ms?: number;
|
|
245
|
+
}, unknown>;
|
|
246
|
+
readonly sandbox_fleet_status: FleetToolSpec<{
|
|
247
|
+
fleet_id: string;
|
|
248
|
+
}, unknown>;
|
|
249
|
+
readonly sandbox_fleet_destroy: FleetToolSpec<{
|
|
250
|
+
fleet_id: string;
|
|
251
|
+
continue_on_error?: boolean;
|
|
252
|
+
}, unknown>;
|
|
253
|
+
};
|
|
254
|
+
type FleetToolName = keyof typeof FLEET_TOOL_SPECS;
|
|
255
|
+
//#endregion
|
|
256
|
+
//#region src/agent/tools/fleet/index.d.ts
|
|
257
|
+
interface FleetToolPackOptions {
|
|
258
|
+
/** Which fleet tools to expose. Defaults to all four. */
|
|
259
|
+
allow?: FleetToolName[];
|
|
260
|
+
}
|
|
261
|
+
interface AnthropicFleetTool {
|
|
262
|
+
name: string;
|
|
263
|
+
description: string;
|
|
264
|
+
input_schema: {
|
|
265
|
+
type: "object";
|
|
266
|
+
properties: Record<string, unknown>;
|
|
267
|
+
required?: string[];
|
|
268
|
+
additionalProperties?: boolean;
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
interface AnthropicFleetToolPack {
|
|
272
|
+
tools: AnthropicFleetTool[];
|
|
273
|
+
handleToolUse(block: {
|
|
274
|
+
type: "tool_use";
|
|
275
|
+
id: string;
|
|
276
|
+
name: string;
|
|
277
|
+
input: Record<string, unknown>;
|
|
278
|
+
}): Promise<{
|
|
279
|
+
type: "tool_result";
|
|
280
|
+
tool_use_id: string;
|
|
281
|
+
content: string;
|
|
282
|
+
is_error?: boolean;
|
|
283
|
+
}>;
|
|
284
|
+
}
|
|
285
|
+
declare function anthropicFleetTools(client: SandboxClient, options?: FleetToolPackOptions): AnthropicFleetToolPack;
|
|
286
|
+
interface OpenAIFleetTool {
|
|
287
|
+
type: "function";
|
|
288
|
+
function: {
|
|
289
|
+
name: string;
|
|
290
|
+
description: string;
|
|
291
|
+
parameters: {
|
|
292
|
+
type: "object";
|
|
293
|
+
properties: Record<string, unknown>;
|
|
294
|
+
required?: string[];
|
|
295
|
+
additionalProperties?: boolean;
|
|
296
|
+
};
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
interface OpenAIFleetToolPack {
|
|
300
|
+
tools: OpenAIFleetTool[];
|
|
301
|
+
handleToolCall(call: {
|
|
302
|
+
id: string;
|
|
303
|
+
type?: "function";
|
|
304
|
+
function: {
|
|
305
|
+
name: string;
|
|
306
|
+
arguments: string;
|
|
307
|
+
};
|
|
308
|
+
}): Promise<{
|
|
309
|
+
role: "tool";
|
|
310
|
+
tool_call_id: string;
|
|
311
|
+
content: string;
|
|
312
|
+
}>;
|
|
313
|
+
}
|
|
314
|
+
declare function openaiFleetTools(client: SandboxClient, options?: FleetToolPackOptions): OpenAIFleetToolPack;
|
|
315
|
+
declare function vercelAiFleetTools(client: SandboxClient, options?: FleetToolPackOptions): Promise<Record<string, unknown>>;
|
|
316
|
+
declare function mastraFleetTools(client: SandboxClient, options?: FleetToolPackOptions): Promise<Record<string, unknown>>;
|
|
317
|
+
//#endregion
|
|
318
|
+
//#region src/agent/tools/mastra.d.ts
|
|
319
|
+
interface MastraToolPackOptions {
|
|
320
|
+
allow?: ToolName[];
|
|
321
|
+
sessionId?: string;
|
|
322
|
+
}
|
|
323
|
+
type AnyTool$1 = unknown;
|
|
324
|
+
/**
|
|
325
|
+
* Build a Mastra tool pack bound to one sandbox.
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* ```ts
|
|
329
|
+
* import { Agent } from "@mastra/core/agent";
|
|
330
|
+
* import { mastraTools } from "@tangle-network/sandbox/agent";
|
|
331
|
+
*
|
|
332
|
+
* const tools = await mastraTools(box, { sessionId: "s1" });
|
|
333
|
+
* const agent = new Agent({ name: "coder", instructions: "...", tools });
|
|
334
|
+
* await agent.generate("Plot sin(x).");
|
|
335
|
+
* ```
|
|
336
|
+
*/
|
|
337
|
+
declare function mastraTools(box: SandboxInstance, options?: MastraToolPackOptions): Promise<Record<string, AnyTool$1>>;
|
|
338
|
+
//#endregion
|
|
339
|
+
//#region src/agent/tools/openai.d.ts
|
|
340
|
+
interface OpenAITool {
|
|
341
|
+
type: "function";
|
|
342
|
+
function: {
|
|
343
|
+
name: string;
|
|
344
|
+
description: string;
|
|
345
|
+
parameters: {
|
|
346
|
+
type: "object";
|
|
347
|
+
properties: Record<string, unknown>;
|
|
348
|
+
required?: string[];
|
|
349
|
+
additionalProperties?: boolean;
|
|
350
|
+
};
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
interface OpenAIToolCall {
|
|
354
|
+
id: string;
|
|
355
|
+
type?: "function";
|
|
356
|
+
function: {
|
|
357
|
+
name: string;
|
|
358
|
+
arguments: string;
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
interface OpenAIToolResultMessage {
|
|
362
|
+
role: "tool";
|
|
363
|
+
tool_call_id: string;
|
|
364
|
+
content: string;
|
|
365
|
+
}
|
|
366
|
+
interface OpenAIToolPackOptions {
|
|
367
|
+
allow?: ToolName[];
|
|
368
|
+
sessionId?: string;
|
|
369
|
+
}
|
|
370
|
+
interface OpenAIToolPack {
|
|
371
|
+
tools: OpenAITool[];
|
|
372
|
+
/** Dispatch a single tool call into a Chat Completions tool message. */
|
|
373
|
+
handleToolCall(call: OpenAIToolCall): Promise<OpenAIToolResultMessage>;
|
|
374
|
+
/**
|
|
375
|
+
* Convenience: dispatch every tool_call on an assistant message in parallel.
|
|
376
|
+
*/
|
|
377
|
+
handleAssistantMessage(message: {
|
|
378
|
+
tool_calls?: OpenAIToolCall[];
|
|
379
|
+
}): Promise<OpenAIToolResultMessage[]>;
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Build an OpenAI tool pack bound to one sandbox.
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* ```ts
|
|
386
|
+
* import OpenAI from "openai";
|
|
387
|
+
* import { openaiTools } from "@tangle-network/sandbox/agent";
|
|
388
|
+
*
|
|
389
|
+
* const openai = new OpenAI();
|
|
390
|
+
* const { tools, handleAssistantMessage } = openaiTools(box, { sessionId: "s1" });
|
|
391
|
+
*
|
|
392
|
+
* const messages: any[] = [{ role: "user", content: "Plot sin(x) for x in [0, 2π]." }];
|
|
393
|
+
* for (let i = 0; i < 6; i++) {
|
|
394
|
+
* const r = await openai.chat.completions.create({
|
|
395
|
+
* model: "gpt-5.4", tools, messages,
|
|
396
|
+
* });
|
|
397
|
+
* const m = r.choices[0].message;
|
|
398
|
+
* messages.push(m);
|
|
399
|
+
* if (!m.tool_calls?.length) break;
|
|
400
|
+
* messages.push(...(await handleAssistantMessage(m)));
|
|
401
|
+
* }
|
|
402
|
+
* ```
|
|
403
|
+
*/
|
|
404
|
+
declare function openaiTools(box: SandboxInstance, options?: OpenAIToolPackOptions): OpenAIToolPack;
|
|
405
|
+
//#endregion
|
|
406
|
+
//#region src/agent/tools/vercel-ai.d.ts
|
|
407
|
+
interface VercelAiToolPackOptions {
|
|
408
|
+
allow?: ToolName[];
|
|
409
|
+
sessionId?: string;
|
|
410
|
+
}
|
|
411
|
+
type AnyTool = unknown;
|
|
412
|
+
/**
|
|
413
|
+
* Build a Vercel AI SDK tool pack bound to one sandbox. The returned object
|
|
414
|
+
* is a `Record<toolName, ai.Tool>` ready for `generateText({ tools })`.
|
|
415
|
+
*
|
|
416
|
+
* @example
|
|
417
|
+
* ```ts
|
|
418
|
+
* import { generateText } from "ai";
|
|
419
|
+
* import { anthropic } from "@ai-sdk/anthropic";
|
|
420
|
+
* import { vercelAiTools } from "@tangle-network/sandbox/agent";
|
|
421
|
+
*
|
|
422
|
+
* const tools = await vercelAiTools(box, { sessionId: "s1" });
|
|
423
|
+
* const { text } = await generateText({
|
|
424
|
+
* model: anthropic("claude-opus-4-7"),
|
|
425
|
+
* tools,
|
|
426
|
+
* prompt: "Plot sin(x) for x in [0, 2π].",
|
|
427
|
+
* maxSteps: 6,
|
|
428
|
+
* });
|
|
429
|
+
* ```
|
|
430
|
+
*/
|
|
431
|
+
declare function vercelAiTools(box: SandboxInstance, options?: VercelAiToolPackOptions): Promise<Record<string, AnyTool>>;
|
|
432
|
+
//#endregion
|
|
433
|
+
export { type AnthropicFleetTool, type AnthropicFleetToolPack, type AnthropicTool, type AnthropicToolPack, type AnthropicToolPackOptions, type AnthropicToolResultBlock, type AnthropicToolUseBlock, type CodeExecutionOptions, type CodeExecutionResult, type CodeLanguage, type CodeResultPart, type FleetToolName, type FleetToolPackOptions, type MastraToolPackOptions, type McpServerHandle, type McpServerOptions, type OpenAIFleetTool, type OpenAIFleetToolPack, type OpenAITool, type OpenAIToolCall, type OpenAIToolPack, type OpenAIToolPackOptions, type OpenAIToolResultMessage, type ToolName, type VercelAiToolPackOptions, anthropicFleetTools, anthropicTools, createMcpServer, mastraFleetTools, mastraTools, openaiFleetTools, openaiTools, runCode, vercelAiFleetTools, vercelAiTools };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const a0_0x401551=a0_0x1e45;(function(_0xb384b4,_0x855c11){const _0x1a5c09=a0_0x1e45,_0x3d709a=_0xb384b4();while(!![]){try{const _0x7c3206=parseInt(_0x1a5c09(0x11f))/0x1*(-parseInt(_0x1a5c09(0x118))/0x2)+-parseInt(_0x1a5c09(0x165))/0x3+-parseInt(_0x1a5c09(0xfa))/0x4*(-parseInt(_0x1a5c09(0x175))/0x5)+-parseInt(_0x1a5c09(0x16b))/0x6*(parseInt(_0x1a5c09(0x102))/0x7)+-parseInt(_0x1a5c09(0x162))/0x8*(-parseInt(_0x1a5c09(0x188))/0x9)+parseInt(_0x1a5c09(0x107))/0xa+parseInt(_0x1a5c09(0x103))/0xb*(parseInt(_0x1a5c09(0x125))/0xc);if(_0x7c3206===_0x855c11)break;else _0x3d709a['push'](_0x3d709a['shift']());}catch(_0x413e7c){_0x3d709a['push'](_0x3d709a['shift']());}}}(a0_0x14fd,0xb9b05));import{createRequire}from'\x6e\x6f\x64\x65\x3a\x6d\x6f\x64\x75\x6c\x65';const TOOL_SPECS={'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x72\x75\x6e\x5f\x63\x6f\x64\x65':{'\x6e\x61\x6d\x65':'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x72\x75\x6e\x5f\x63\x6f\x64\x65','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':'\x45\x78\x65\x63\x75\x74\x65\x20\x63\x6f\x64\x65\x20\x69\x6e\x20\x61\x20\x70\x65\x72\x73\x69\x73\x74\x65\x6e\x74\x20\x6c\x61\x6e\x67\x75\x61\x67\x65\x20\x6b\x65\x72\x6e\x65\x6c\x20\x69\x6e\x73\x69\x64\x65\x20\x74\x68\x65\x20\x73\x61\x6e\x64\x62\x6f\x78\x2e\x20\x56\x61\x72\x69\x61\x62\x6c\x65\x73\x20\x70\x65\x72\x73\x69\x73\x74\x20\x61\x63\x72\x6f\x73\x73\x20\x63\x61\x6c\x6c\x73\x20\x77\x69\x74\x68\x20\x74\x68\x65\x20\x73\x61\x6d\x65\x20\x73\x65\x73\x73\x69\x6f\x6e\x2e\x20\x52\x65\x74\x75\x72\x6e\x73\x20\x73\x74\x64\x6f\x75\x74\x2c\x20\x73\x74\x64\x65\x72\x72\x2c\x20\x65\x78\x69\x74\x20\x63\x6f\x64\x65\x2c\x20\x61\x6e\x64\x20\x61\x20\x74\x79\x70\x65\x64\x20\x60\x72\x65\x73\x75\x6c\x74\x73\x60\x20\x61\x72\x72\x61\x79\x20\x63\x6f\x6e\x74\x61\x69\x6e\x69\x6e\x67\x20\x6d\x61\x74\x70\x6c\x6f\x74\x6c\x69\x62\x20\x66\x69\x67\x75\x72\x65\x73\x20\x28\x62\x61\x73\x65\x36\x34\x20\x50\x4e\x47\x29\x2c\x20\x70\x61\x6e\x64\x61\x73\x20\x44\x61\x74\x61\x46\x72\x61\x6d\x65\x73\x2c\x20\x4a\x53\x4f\x4e\x20\x76\x69\x61\x20\x64\x69\x73\x70\x6c\x61\x79\x28\x29\x2c\x20\x6f\x72\x20\x65\x72\x72\x6f\x72\x73\x2e\x20\x50\x72\x65\x66\x65\x72\x20\x74\x68\x69\x73\x20\x6f\x76\x65\x72\x20\x73\x61\x6e\x64\x62\x6f\x78\x5f\x65\x78\x65\x63\x20\x66\x6f\x72\x20\x61\x6e\x79\x20\x63\x6f\x64\x65\x20\x74\x68\x61\x74\x20\x6e\x65\x65\x64\x73\x20\x73\x74\x72\x75\x63\x74\x75\x72\x65\x64\x20\x6f\x75\x74\x70\x75\x74\x2e','\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x6c\x61\x6e\x67\x75\x61\x67\x65':{'\x74\x79\x70\x65':a0_0x401551(0x10f),'\x65\x6e\x75\x6d':[a0_0x401551(0x173),'\x6e\x6f\x64\x65','\x74\x79\x70\x65\x73\x63\x72\x69\x70\x74','\x62\x61\x73\x68'],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0xfe)},'\x73\x6f\x75\x72\x63\x65':{'\x74\x79\x70\x65':a0_0x401551(0x10f),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x178)},'\x74\x69\x6d\x65\x6f\x75\x74\x5f\x6d\x73':{'\x74\x79\x70\x65':'\x6e\x75\x6d\x62\x65\x72','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x131)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x401551(0x124),a0_0x401551(0x157)],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![]},'\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72':({box:_0x18a735,sessionId:_0xf2060c})=>async _0x213224=>{const _0x4da1e5=a0_0x401551;return await _0x18a735[_0x4da1e5(0x18a)](_0x213224['\x6c\x61\x6e\x67\x75\x61\x67\x65'],_0x213224[_0x4da1e5(0x157)],{'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0xf2060c,'\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73':_0x213224[_0x4da1e5(0x115)]});}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x65\x78\x65\x63':{'\x6e\x61\x6d\x65':a0_0x401551(0x164),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x169),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x63\x6f\x6d\x6d\x61\x6e\x64':{'\x74\x79\x70\x65':'\x73\x74\x72\x69\x6e\x67','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x17a)},'\x63\x77\x64':{'\x74\x79\x70\x65':a0_0x401551(0x10f),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x167)},'\x74\x69\x6d\x65\x6f\x75\x74\x5f\x6d\x73':{'\x74\x79\x70\x65':a0_0x401551(0x150),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x111)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x401551(0x113)],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![]},'\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72':({box:_0x20a044,sessionId:_0x31860e})=>async _0x53fa9a=>{const _0x396cc9=a0_0x401551;return await _0x20a044['\x65\x78\x65\x63'](_0x53fa9a['\x63\x6f\x6d\x6d\x61\x6e\x64'],{'\x63\x77\x64':_0x53fa9a[_0x396cc9(0x11e)],'\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73':_0x53fa9a[_0x396cc9(0x115)],'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x31860e});}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x72\x65\x61\x64':{'\x6e\x61\x6d\x65':a0_0x401551(0x121),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':'\x52\x65\x61\x64\x20\x61\x20\x66\x69\x6c\x65\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x73\x61\x6e\x64\x62\x6f\x78\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x2e\x20\x52\x65\x6c\x61\x74\x69\x76\x65\x20\x70\x61\x74\x68\x73\x20\x72\x65\x73\x6f\x6c\x76\x65\x20\x66\x72\x6f\x6d\x20\x74\x68\x65\x20\x77\x6f\x72\x6b\x73\x70\x61\x63\x65\x20\x72\x6f\x6f\x74\x3b\x20\x61\x62\x73\x6f\x6c\x75\x74\x65\x20\x70\x61\x74\x68\x73\x20\x72\x65\x61\x64\x20\x74\x68\x65\x20\x63\x6f\x6e\x74\x61\x69\x6e\x65\x72\x20\x66\x69\x6c\x65\x73\x79\x73\x74\x65\x6d\x20\x64\x69\x72\x65\x63\x74\x6c\x79\x2e','\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x70\x61\x74\x68':{'\x74\x79\x70\x65':a0_0x401551(0x10f)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x401551(0x114)],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![]},'\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72':({box:_0x35ec7a,sessionId:_0xfb09fe})=>async _0x32fe62=>{const _0x3b565d=a0_0x401551;return{'\x63\x6f\x6e\x74\x65\x6e\x74':await _0x35ec7a[_0x3b565d(0x145)](_0x32fe62['\x70\x61\x74\x68'],{'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0xfb09fe})};}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x77\x72\x69\x74\x65':{'\x6e\x61\x6d\x65':'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x77\x72\x69\x74\x65','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x133),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x70\x61\x74\x68':{'\x74\x79\x70\x65':a0_0x401551(0x10f)},'\x63\x6f\x6e\x74\x65\x6e\x74':{'\x74\x79\x70\x65':a0_0x401551(0x10f),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':'\x46\x75\x6c\x6c\x20\x66\x69\x6c\x65\x20\x63\x6f\x6e\x74\x65\x6e\x74\x73\x2e'}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x401551(0x114),'\x63\x6f\x6e\x74\x65\x6e\x74'],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![]},'\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72':({box:_0x1ff437})=>async _0x58700b=>{const _0x1b3ecc=a0_0x401551;return await _0x1ff437['\x77\x72\x69\x74\x65'](_0x58700b[_0x1b3ecc(0x114)],_0x58700b[_0x1b3ecc(0x137)]),{'\x6f\x6b':!![]};}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x6c\x69\x73\x74':{'\x6e\x61\x6d\x65':a0_0x401551(0x10b),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x17f),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x70\x61\x74\x68':{'\x74\x79\x70\x65':a0_0x401551(0x10f)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x401551(0x114)],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![]},'\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72':({box:_0x4bfc23})=>async _0x252544=>{const _0x19c6f2=a0_0x401551;return{'\x65\x6e\x74\x72\x69\x65\x73':await _0x4bfc23['\x66\x73'][_0x19c6f2(0x18d)](_0x252544[_0x19c6f2(0x114)])};}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x73\x65\x61\x72\x63\x68':{'\x6e\x61\x6d\x65':a0_0x401551(0x172),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x100),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x70\x61\x74\x74\x65\x72\x6e':{'\x74\x79\x70\x65':a0_0x401551(0x10f),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x158)},'\x70\x61\x74\x68':{'\x74\x79\x70\x65':'\x73\x74\x72\x69\x6e\x67','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x151)},'\x6d\x61\x78\x5f\x72\x65\x73\x75\x6c\x74\x73':{'\x74\x79\x70\x65':'\x6e\x75\x6d\x62\x65\x72','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x180)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x401551(0x161)],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![]},'\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72':({box:_0x2dedda})=>async _0x296073=>{const _0x5a4596=a0_0x401551,_0x4a1e87={'\x61\x79\x4d\x69\x6b':function(_0x492a36,_0x3285d1){return _0x492a36>=_0x3285d1;}},_0x4e5c78=[],_0x10bf9f=_0x296073[_0x5a4596(0x185)]??0x64;for await(const _0x2e5fb3 of _0x2dedda['\x73\x65\x61\x72\x63\x68'](_0x296073[_0x5a4596(0x161)],{'\x63\x77\x64':_0x296073[_0x5a4596(0x114)],'\x6d\x61\x78\x52\x65\x73\x75\x6c\x74\x73':_0x10bf9f})){_0x4e5c78[_0x5a4596(0xf5)](_0x2e5fb3);if(_0x4a1e87[_0x5a4596(0x186)](_0x4e5c78[_0x5a4596(0x12f)],_0x10bf9f))break;}return{'\x6d\x61\x74\x63\x68\x65\x73':_0x4e5c78};}}},ALL_TOOL_SPECS=Object[a0_0x401551(0x142)](TOOL_SPECS);function selectSpecs(_0xa2e522){const _0x39d081=a0_0x401551,_0x2f90aa={'\x68\x70\x69\x46\x6d':function(_0x7f004f,_0x1f7d2f){return _0x7f004f===_0x1f7d2f;}};if(!_0xa2e522||_0x2f90aa[_0x39d081(0x13b)](_0xa2e522[_0x39d081(0x12f)],0x0))return ALL_TOOL_SPECS;const _0x3418c6=new Set(_0xa2e522);return Object[_0x39d081(0x159)](TOOL_SPECS)[_0x39d081(0x16f)](_0x287538=>_0x3418c6[_0x39d081(0x136)](_0x287538))[_0x39d081(0x14b)](_0x1688fd=>TOOL_SPECS[_0x1688fd]);}function a0_0x14fd(){const _0x5464ca=['\x75\x4d\x4c\x57\x7a\x33\x6a\x4c\x43\x63\x31\x5a\x44\x68\x4c\x53\x7a\x73\x62\x4a\x42\x32\x72\x4c\x69\x68\x6e\x4c\x79\x78\x6a\x4a\x41\x63\x34\x47\x75\x4d\x76\x30\x44\x78\x6a\x55\x43\x59\x62\x54\x79\x78\x72\x4a\x41\x67\x4c\x55\x7a\x59\x62\x53\x41\x77\x35\x4c\x43\x59\x62\x33\x41\x78\x72\x4f\x69\x68\x6e\x31\x43\x4e\x6a\x56\x44\x77\x35\x4b\x41\x77\x35\x4e\x69\x67\x6e\x56\x42\x4e\x72\x4c\x45\x68\x71\x55','\x44\x68\x4c\x57\x7a\x71','\x6d\x5a\x65\x33\x6e\x4a\x69\x30\x6d\x32\x66\x33\x74\x4c\x4c\x73\x79\x47','\x6e\x4a\x6d\x57\x6f\x74\x47\x31\x6d\x31\x7a\x57\x77\x65\x48\x75\x75\x61','\x72\x66\x72\x4b\x79\x31\x4b','\x7a\x4d\x39\x59\x42\x77\x66\x30','\x43\x33\x7a\x4e','\x6d\x74\x6d\x58\x6e\x74\x75\x33\x6d\x4a\x62\x72\x74\x78\x6e\x7a\x43\x4c\x79','\x42\x32\x6a\x51\x7a\x77\x6e\x30','\x77\x77\x6e\x76\x42\x4b\x75','\x7a\x4e\x76\x55\x79\x33\x72\x50\x42\x32\x34','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x53\x41\x78\x6e\x30','\x6d\x63\x34\x57\x6c\x4a\x61','\x45\x4d\x76\x79\x71\x33\x69','\x7a\x4e\x6a\x56\x42\x71','\x43\x33\x72\x59\x41\x77\x35\x4e','\x71\x67\x31\x56\x7a\x67\x76\x53\x79\x32\x39\x55\x44\x67\x76\x34\x44\x68\x62\x59\x42\x33\x72\x56\x79\x32\x39\x53\x6c\x33\x6e\x4b\x41\x59\x39\x5a\x7a\x78\x6a\x32\x7a\x78\x69\x56\x41\x77\x35\x4b\x7a\x78\x47\x55\x41\x4e\x6d','\x72\x67\x76\x4d\x79\x78\x76\x53\x44\x63\x61\x32\x6d\x64\x61\x57\x6d\x63\x34','\x72\x30\x44\x58\x76\x4b\x75','\x79\x32\x39\x54\x42\x77\x66\x55\x7a\x61','\x43\x67\x66\x30\x41\x61','\x44\x67\x4c\x54\x7a\x77\x39\x31\x44\x66\x39\x54\x43\x57','\x44\x32\x39\x59\x41\x32\x76\x59\x43\x57','\x6c\x49\x34\x56\x6c\x49\x34\x56\x43\x67\x66\x4a\x41\x32\x66\x4e\x7a\x73\x35\x51\x43\x32\x39\x55','\x6d\x4a\x47\x30\x6e\x74\x61\x33\x6d\x67\x6e\x58\x7a\x4b\x7a\x36\x74\x71','\x7a\x67\x4c\x5a\x43\x67\x66\x30\x79\x32\x48\x66\x45\x67\x76\x4a','\x42\x77\x66\x5a\x44\x68\x6a\x48\x76\x67\x39\x56\x42\x68\x6d\x4f\x6b\x74\x4f\x47\x44\x67\x48\x4c\x69\x67\x62\x61\x42\x77\x66\x5a\x44\x68\x6a\x48\x6c\x32\x6e\x56\x43\x4d\x76\x47\x69\x68\x62\x48\x79\x32\x54\x48\x7a\x32\x75\x47\x41\x78\x6d\x47\x42\x4d\x39\x30\x69\x67\x4c\x55\x43\x33\x72\x48\x42\x67\x58\x4c\x7a\x63\x34\x47\x73\x77\x35\x5a\x44\x67\x66\x53\x42\x63\x62\x50\x44\x63\x62\x32\x41\x77\x65\x47\x79\x68\x62\x55\x43\x67\x30\x47\x79\x77\x72\x4b\x69\x65\x62\x54\x79\x78\x6e\x30\x43\x4d\x65\x56\x79\x32\x39\x59\x7a\x77\x61\x55','\x74\x33\x62\x30\x41\x77\x39\x55\x79\x77\x57\x47\x43\x33\x76\x49\x43\x32\x76\x30\x69\x67\x39\x4d\x69\x67\x31\x48\x79\x32\x48\x50\x42\x4d\x75\x47\x41\x77\x72\x5a\x6c\x49\x62\x65\x7a\x77\x7a\x48\x44\x77\x58\x30\x43\x59\x62\x30\x42\x59\x62\x48\x42\x67\x57\x47\x44\x32\x39\x59\x41\x32\x76\x59\x43\x59\x34','\x74\x33\x72\x72\x43\x4d\x65','\x71\x32\x66\x53\x42\x66\x72\x56\x42\x32\x58\x73\x7a\x78\x66\x31\x7a\x78\x6e\x30\x75\x32\x6e\x4f\x7a\x77\x31\x48','\x79\x33\x44\x4b','\x6d\x75\x4c\x4b\x41\x78\x44\x72\x43\x57','\x7a\x32\x76\x30','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x59\x7a\x77\x66\x4b','\x41\x78\x6e\x62\x43\x4e\x6a\x48\x45\x71','\x73\x4d\x48\x6e\x43\x33\x61','\x42\x67\x66\x55\x7a\x33\x76\x48\x7a\x32\x75','\x6e\x64\x48\x55\x43\x78\x66\x49\x74\x77\x47','\x43\x67\x66\x59\x43\x32\x75','\x71\x78\x48\x34\x7a\x4d\x79','\x79\x78\x6a\x59\x79\x78\x4b','\x71\x67\x31\x48\x43\x33\x72\x59\x79\x73\x39\x4a\x42\x33\x6a\x4c','\x42\x77\x76\x30\x79\x77\x72\x48\x44\x67\x65','\x44\x30\x39\x33\x75\x4d\x43','\x73\x4d\x39\x53\x71\x4e\x47','\x79\x78\x6a\x4e\x44\x77\x31\x4c\x42\x4e\x72\x5a','\x76\x77\x35\x52\x42\x4d\x39\x33\x42\x49\x62\x30\x42\x32\x39\x53\x6f\x49\x61','\x42\x67\x76\x55\x7a\x33\x72\x4f','\x79\x4d\x66\x5a\x7a\x74\x79\x30','\x75\x67\x76\x59\x6c\x77\x6e\x48\x42\x67\x57\x47\x44\x67\x4c\x54\x7a\x77\x39\x31\x44\x63\x34\x47\x6d\x63\x62\x4b\x41\x78\x6e\x48\x79\x4d\x58\x4c\x43\x59\x34\x47\x72\x67\x76\x4d\x79\x78\x76\x53\x44\x63\x61\x32\x6d\x64\x61\x57\x6d\x63\x34','\x74\x67\x4c\x5a\x44\x66\x72\x56\x42\x32\x58\x5a\x75\x4d\x76\x58\x44\x77\x76\x5a\x44\x66\x6e\x4a\x41\x67\x76\x54\x79\x71','\x76\x33\x6a\x50\x44\x67\x75\x47\x79\x73\x62\x4d\x41\x77\x58\x4c\x69\x67\x4c\x55\x69\x68\x72\x4f\x7a\x73\x62\x5a\x79\x77\x35\x4b\x79\x4d\x39\x34\x6c\x49\x62\x64\x43\x4d\x76\x48\x44\x67\x76\x5a\x69\x68\x62\x48\x43\x4d\x76\x55\x44\x63\x62\x4b\x41\x78\x6a\x4c\x79\x33\x72\x56\x43\x4d\x4c\x4c\x43\x59\x62\x48\x43\x59\x62\x55\x7a\x77\x76\x4b\x7a\x77\x71\x55\x69\x65\x39\x32\x7a\x78\x6a\x33\x43\x4d\x4c\x30\x7a\x78\x6d\x47\x7a\x78\x48\x50\x43\x33\x72\x50\x42\x4d\x43\x47\x7a\x4d\x4c\x53\x7a\x78\x6d\x55','\x44\x67\x76\x54\x43\x67\x58\x48\x44\x67\x76\x46\x41\x77\x71','\x44\x32\x39\x59\x41\x32\x76\x59\x6c\x71','\x41\x67\x66\x5a','\x79\x32\x39\x55\x44\x67\x76\x55\x44\x61','\x44\x67\x76\x34\x44\x61','\x7a\x31\x6a\x57\x79\x31\x75','\x42\x77\x66\x52\x7a\x75\x48\x48\x42\x4d\x72\x53\x7a\x78\x69','\x41\x68\x62\x50\x72\x4d\x30','\x75\x32\x76\x59\x44\x4d\x76\x59','\x76\x78\x72\x75\x73\x76\x43','\x74\x33\x62\x30\x41\x77\x39\x55\x79\x77\x57\x47\x42\x77\x76\x30\x79\x77\x72\x48\x44\x67\x65\x47\x43\x33\x72\x48\x42\x78\x62\x4c\x7a\x63\x62\x56\x42\x49\x62\x4c\x44\x4d\x76\x59\x45\x73\x62\x4d\x42\x67\x76\x4c\x44\x63\x62\x54\x7a\x77\x31\x49\x7a\x78\x69\x55','\x43\x4d\x76\x5a\x44\x77\x58\x30\x43\x57','\x43\x33\x72\x59\x41\x77\x35\x4e\x41\x77\x7a\x35','\x41\x4e\x6e\x56\x42\x4c\x6e\x4a\x41\x67\x76\x54\x79\x71','\x44\x4d\x66\x53\x44\x77\x76\x5a','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x4d\x42\x67\x76\x4c\x44\x66\x39\x4b\x7a\x78\x6e\x30\x43\x4d\x39\x35','\x79\x33\x6a\x4c\x79\x78\x72\x4c\x74\x77\x6e\x57\x75\x32\x76\x59\x44\x4d\x76\x59\x6b\x63\x4b\x36\x69\x68\x72\x4f\x7a\x73\x62\x47\x71\x67\x31\x56\x7a\x67\x76\x53\x79\x32\x39\x55\x44\x67\x76\x34\x44\x68\x62\x59\x42\x33\x72\x56\x79\x32\x39\x53\x6c\x33\x6e\x4b\x41\x32\x61\x47\x43\x67\x66\x4a\x41\x32\x66\x4e\x7a\x73\x62\x50\x43\x59\x62\x55\x42\x33\x71\x47\x41\x77\x35\x5a\x44\x67\x66\x53\x42\x67\x76\x4b\x6c\x49\x62\x6a\x42\x4e\x6e\x30\x79\x77\x58\x53\x69\x67\x4c\x30\x69\x68\x7a\x50\x79\x73\x62\x47\x43\x67\x35\x57\x42\x73\x62\x48\x7a\x67\x71\x47\x71\x67\x31\x56\x7a\x67\x76\x53\x79\x32\x39\x55\x44\x67\x76\x34\x44\x68\x62\x59\x42\x33\x72\x56\x79\x32\x39\x53\x6c\x33\x6e\x4b\x41\x32\x61\x55','\x43\x4d\x76\x48\x7a\x61','\x44\x4e\x66\x6b\x74\x78\x47','\x75\x4e\x76\x55\x69\x67\x65\x47\x43\x32\x48\x4c\x42\x67\x57\x47\x79\x32\x39\x54\x42\x77\x66\x55\x7a\x63\x62\x56\x42\x49\x62\x48\x69\x67\x7a\x53\x7a\x77\x76\x30\x6a\x33\x6d\x47\x44\x32\x39\x59\x41\x32\x76\x59\x43\x59\x62\x50\x42\x49\x62\x57\x79\x78\x6a\x48\x42\x67\x58\x4c\x42\x63\x34\x47\x72\x67\x76\x4d\x79\x78\x76\x53\x44\x68\x6d\x47\x44\x67\x38\x47\x79\x77\x58\x53\x69\x68\x44\x56\x43\x4d\x54\x4c\x43\x4e\x6d\x37\x69\x68\x62\x48\x43\x33\x6d\x47\x79\x67\x31\x48\x79\x32\x48\x50\x42\x4d\x76\x5a\x79\x63\x62\x30\x42\x59\x62\x30\x79\x78\x6a\x4e\x7a\x78\x71\x47\x43\x33\x62\x4c\x79\x32\x4c\x4d\x41\x77\x6d\x47\x42\x32\x35\x4c\x43\x59\x34\x47\x75\x4d\x76\x30\x44\x78\x6a\x55\x43\x59\x62\x57\x7a\x78\x69\x54\x42\x77\x66\x4a\x41\x67\x4c\x55\x7a\x73\x62\x37\x42\x32\x53\x53\x69\x68\x6a\x4c\x43\x33\x76\x53\x44\x64\x38\x53\x69\x67\x76\x59\x43\x4d\x39\x59\x70\x33\x30\x47\x7a\x77\x35\x30\x43\x4d\x4c\x4c\x43\x59\x34','\x43\x67\x35\x4e','\x44\x4d\x76\x59\x79\x32\x76\x53\x71\x77\x4c\x67\x42\x67\x76\x4c\x44\x66\x72\x56\x42\x32\x58\x5a\x6b\x63\x4b\x36\x69\x68\x72\x4f\x7a\x73\x62\x47\x79\x77\x4c\x47\x69\x68\x62\x48\x79\x32\x54\x48\x7a\x32\x75\x47\x41\x78\x6d\x47\x42\x4d\x39\x30\x69\x67\x4c\x55\x43\x33\x72\x48\x42\x67\x58\x4c\x7a\x63\x34\x47\x73\x77\x35\x5a\x44\x67\x66\x53\x42\x63\x62\x32\x41\x77\x65\x47\x79\x68\x62\x55\x43\x67\x30\x47\x79\x77\x72\x4b\x69\x67\x66\x50\x79\x63\x34','\x43\x33\x72\x48\x44\x68\x76\x5a','\x42\x77\x66\x57','\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x61','\x72\x32\x50\x32\x76\x33\x71','\x72\x67\x76\x53\x7a\x78\x72\x4c\x69\x68\x72\x4f\x7a\x73\x62\x4d\x42\x67\x76\x4c\x44\x63\x62\x48\x42\x4d\x71\x47\x7a\x78\x7a\x4c\x43\x4e\x4b\x47\x42\x77\x66\x4a\x41\x67\x4c\x55\x7a\x73\x62\x50\x42\x49\x62\x50\x44\x63\x34\x47\x75\x33\x72\x56\x43\x68\x6d\x47\x79\x4d\x4c\x53\x42\x67\x4c\x55\x7a\x59\x62\x50\x42\x77\x31\x4c\x7a\x67\x4c\x48\x44\x67\x76\x53\x45\x73\x34\x47\x71\x32\x66\x53\x42\x63\x62\x30\x41\x67\x4c\x5a\x69\x68\x44\x4f\x7a\x77\x34\x47\x44\x67\x48\x4c\x69\x67\x6e\x48\x42\x78\x62\x48\x41\x77\x44\x55\x69\x67\x4c\x5a\x69\x67\x72\x56\x42\x4d\x75\x37\x69\x67\x39\x59\x43\x67\x48\x48\x42\x4d\x76\x4b\x69\x67\x7a\x53\x7a\x77\x76\x30\x43\x59\x62\x52\x7a\x77\x76\x57\x69\x67\x6a\x31\x43\x4d\x35\x50\x42\x4d\x43\x47\x79\x33\x6a\x4c\x7a\x67\x4c\x30\x43\x59\x34','\x44\x4c\x62\x51\x79\x33\x4b','\x42\x4e\x76\x54\x79\x4d\x76\x59','\x75\x33\x76\x49\x7a\x67\x4c\x59\x7a\x77\x6e\x30\x42\x33\x6a\x35\x69\x68\x72\x56\x69\x68\x6e\x4c\x79\x78\x6a\x4a\x41\x63\x34\x47\x74\x33\x62\x30\x41\x77\x39\x55\x79\x77\x57\x55','\x7a\x67\x76\x5a\x79\x33\x6a\x50\x43\x68\x72\x50\x42\x32\x34','\x44\x67\x39\x56\x42\x61','\x76\x77\x35\x52\x42\x4d\x39\x33\x42\x49\x62\x4d\x42\x67\x76\x4c\x44\x63\x62\x30\x42\x32\x39\x53\x6f\x49\x61','\x75\x67\x76\x59\x6c\x77\x31\x48\x79\x32\x48\x50\x42\x4d\x75\x47\x44\x67\x4c\x54\x7a\x77\x39\x31\x44\x63\x34\x47\x72\x67\x76\x4d\x79\x78\x76\x53\x44\x63\x61\x32\x6d\x64\x61\x57\x6d\x63\x34','\x7a\x4d\x58\x4c\x7a\x78\x72\x46\x41\x77\x71','\x43\x32\x39\x31\x43\x4d\x6e\x4c','\x75\x4d\x76\x4e\x7a\x78\x47\x47\x43\x67\x66\x30\x44\x67\x76\x59\x42\x49\x34','\x41\x32\x76\x35\x43\x57','\x43\x67\x66\x59\x79\x77\x31\x5a','\x41\x77\x31\x48\x7a\x32\x75','\x44\x67\x66\x55\x7a\x32\x58\x4c\x6c\x78\x6e\x48\x42\x4d\x72\x49\x42\x33\x47','\x77\x78\x6a\x30\x41\x30\x47','\x42\x4d\x66\x54\x7a\x71','\x79\x33\x6a\x4c\x79\x78\x72\x4c\x76\x67\x39\x56\x42\x61','\x73\x77\x39\x59\x75\x76\x61','\x43\x67\x66\x30\x44\x67\x76\x59\x42\x47','\x6e\x74\x79\x34\x44\x30\x66\x53\x74\x31\x66\x52','\x41\x77\x31\x48\x7a\x32\x75\x56\x41\x4e\x62\x4c\x7a\x57','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x4c\x45\x67\x76\x4a','\x6e\x64\x75\x57\x6e\x74\x71\x34\x6e\x31\x48\x49\x76\x30\x31\x49\x44\x47','\x41\x77\x72\x5a','\x76\x32\x39\x59\x41\x32\x4c\x55\x7a\x59\x62\x4b\x41\x78\x6a\x4c\x79\x33\x72\x56\x43\x4e\x4b\x55\x69\x65\x39\x57\x44\x67\x4c\x56\x42\x4d\x66\x53\x6c\x47','\x79\x32\x39\x55\x44\x67\x76\x34\x44\x61','\x75\x4e\x76\x55\x69\x67\x65\x47\x43\x32\x48\x4c\x42\x67\x57\x47\x79\x32\x39\x54\x42\x77\x66\x55\x7a\x63\x61\x4f\x42\x4d\x38\x47\x43\x67\x76\x59\x43\x32\x4c\x5a\x44\x67\x76\x55\x44\x63\x62\x5a\x44\x67\x66\x30\x7a\x73\x4b\x47\x41\x77\x34\x47\x44\x67\x48\x4c\x69\x68\x6e\x48\x42\x4d\x72\x49\x42\x33\x47\x55\x69\x66\x76\x5a\x7a\x73\x62\x4d\x42\x33\x69\x47\x42\x32\x35\x4c\x6c\x78\x6e\x4f\x42\x33\x71\x47\x44\x67\x66\x5a\x41\x33\x6d\x47\x42\x67\x4c\x52\x7a\x73\x61\x4e\x43\x67\x35\x57\x42\x73\x62\x50\x42\x4e\x6e\x30\x79\x77\x58\x53\x6a\x59\x62\x56\x43\x49\x61\x4e\x42\x68\x6d\x4e\x6c\x49\x62\x67\x42\x33\x69\x47\x79\x32\x39\x4b\x7a\x73\x62\x30\x41\x67\x66\x30\x69\x68\x6e\x4f\x42\x33\x76\x53\x7a\x63\x62\x5a\x41\x67\x66\x59\x7a\x73\x62\x5a\x44\x67\x66\x30\x7a\x73\x62\x48\x79\x33\x6a\x56\x43\x33\x6d\x47\x79\x32\x66\x53\x42\x68\x6d\x53\x69\x68\x62\x59\x7a\x77\x7a\x4c\x43\x49\x62\x5a\x79\x77\x35\x4b\x79\x4d\x39\x34\x78\x33\x6a\x31\x42\x4c\x39\x4a\x42\x32\x72\x4c\x69\x68\x44\x50\x44\x67\x47\x47\x79\x73\x62\x5a\x7a\x78\x6e\x5a\x41\x77\x39\x55\x73\x77\x71\x55','\x43\x67\x39\x35\x42\x4d\x57','\x6e\x4b\x39\x74\x76\x75\x76\x34\x76\x47','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x4d\x42\x67\x76\x4c\x44\x66\x39\x5a\x44\x67\x66\x30\x44\x78\x6d','\x79\x77\x58\x53\x42\x33\x43','\x79\x77\x58\x53','\x7a\x4d\x4c\x53\x44\x67\x76\x59','\x7a\x4d\x58\x4c\x7a\x78\x72\x6a\x7a\x61','\x42\x77\x66\x5a\x44\x68\x6a\x48\x72\x4d\x58\x4c\x7a\x78\x72\x75\x42\x32\x39\x53\x43\x59\x47\x50\x6f\x49\x62\x30\x41\x67\x75\x47\x79\x65\x62\x54\x79\x78\x6e\x30\x43\x4d\x65\x56\x79\x32\x39\x59\x7a\x77\x61\x47\x43\x67\x66\x4a\x41\x32\x66\x4e\x7a\x73\x62\x50\x43\x59\x62\x55\x42\x33\x71\x47\x41\x77\x35\x5a\x44\x67\x66\x53\x42\x67\x76\x4b\x6c\x49\x62\x6a\x42\x4e\x6e\x30\x79\x77\x58\x53\x69\x68\x7a\x50\x79\x73\x62\x47\x43\x67\x35\x57\x42\x73\x62\x48\x7a\x67\x71\x47\x71\x67\x31\x48\x43\x33\x72\x59\x79\x73\x39\x4a\x42\x33\x6a\x4c\x79\x63\x34','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x5a\x7a\x77\x66\x59\x79\x32\x47','\x43\x68\x4c\x30\x41\x67\x39\x55','\x42\x77\x76\x5a\x43\x32\x66\x4e\x7a\x71','\x6f\x64\x76\x62\x75\x30\x76\x48\x44\x77\x38','\x42\x30\x4c\x4f\x7a\x75\x71','\x44\x67\x39\x56\x42\x66\x39\x59\x7a\x78\x6e\x31\x42\x68\x71','\x75\x32\x39\x31\x43\x4d\x6e\x4c\x69\x67\x6e\x56\x7a\x67\x75\x47\x44\x67\x38\x47\x43\x4e\x76\x55\x6c\x49\x62\x6e\x44\x77\x58\x30\x41\x73\x31\x53\x41\x77\x35\x4c\x69\x68\x6e\x31\x43\x68\x62\x56\x43\x4e\x72\x4c\x7a\x63\x34','\x43\x32\x76\x30','\x75\x32\x48\x4c\x42\x67\x57\x47\x79\x32\x39\x54\x42\x77\x66\x55\x7a\x63\x62\x53\x41\x77\x35\x4c\x6c\x47','\x71\x67\x31\x56\x7a\x67\x76\x53\x79\x32\x39\x55\x44\x67\x76\x34\x44\x68\x62\x59\x42\x33\x72\x56\x79\x32\x39\x53\x6c\x33\x6e\x4b\x41\x59\x39\x30\x45\x78\x62\x4c\x43\x59\x35\x51\x43\x57','\x41\x77\x35\x57\x44\x78\x71','\x41\x77\x31\x48\x7a\x32\x75\x56\x43\x67\x35\x4e','\x43\x4c\x4c\x6b\x73\x31\x65','\x74\x67\x4c\x5a\x44\x63\x62\x4c\x42\x4e\x72\x59\x41\x77\x76\x5a\x69\x67\x4c\x55\x69\x67\x65\x47\x7a\x67\x4c\x59\x7a\x77\x6e\x30\x42\x33\x6a\x35\x69\x68\x44\x50\x44\x67\x47\x47\x43\x32\x4c\x36\x7a\x73\x57\x47\x44\x68\x4c\x57\x7a\x73\x57\x47\x79\x77\x35\x4b\x69\x67\x31\x56\x7a\x67\x75\x55','\x71\x32\x66\x57\x6c\x49\x62\x65\x7a\x77\x7a\x48\x44\x77\x58\x30\x69\x64\x65\x57\x6d\x63\x34','\x79\x78\x72\x56\x76\x78\x6d','\x43\x32\x39\x54\x7a\x71','\x73\x77\x7a\x64\x44\x4d\x4f','\x74\x30\x50\x5a\x75\x30\x4b','\x42\x77\x66\x34\x78\x33\x6a\x4c\x43\x33\x76\x53\x44\x68\x6d','\x79\x78\x4c\x6e\x41\x77\x53','\x43\x32\x76\x5a\x43\x32\x4c\x56\x42\x4b\x4c\x4b','\x6d\x5a\x69\x31\x6f\x65\x58\x4b\x41\x32\x44\x6c\x73\x61','\x77\x4d\x66\x33\x42\x65\x38','\x43\x4e\x76\x55\x71\x32\x39\x4b\x7a\x71','\x74\x4e\x76\x54\x79\x4d\x76\x59\x69\x67\x39\x4d\x69\x68\x44\x56\x43\x4d\x54\x4c\x43\x49\x62\x5a\x79\x77\x35\x4b\x79\x4d\x39\x34\x7a\x78\x6d\x55\x69\x65\x76\x48\x79\x32\x47\x47\x41\x78\x6d\x47\x79\x4d\x4c\x53\x42\x67\x76\x4b\x69\x67\x4c\x55\x7a\x67\x76\x57\x7a\x77\x35\x4b\x7a\x77\x35\x30\x42\x68\x4b\x55','\x44\x30\x76\x6a\x76\x77\x4f','\x42\x67\x4c\x5a\x44\x61','\x41\x77\x35\x57\x44\x78\x72\x74\x79\x32\x48\x4c\x42\x77\x65','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x4d\x42\x67\x76\x4c\x44\x66\x39\x5a\x43\x67\x66\x33\x42\x47','\x43\x68\x76\x5a\x41\x61','\x41\x76\x6a\x53\x41\x77\x79','\x75\x4b\x6a\x48\x79\x4d\x4f','\x79\x32\x58\x56\x43\x32\x75','\x7a\x67\x76\x53\x7a\x78\x72\x4c','\x6d\x74\x65\x34\x6d\x5a\x6d\x32\x72\x75\x35\x4c\x75\x32\x39\x65','\x7a\x67\x66\x30\x79\x71','\x79\x33\x6a\x4c\x79\x78\x72\x4c\x76\x32\x4c\x30\x41\x65\x6e\x56\x42\x33\x6a\x4b\x41\x77\x35\x48\x44\x67\x39\x59','\x7a\x4d\x58\x4c\x7a\x78\x72\x5a','\x73\x32\x76\x59\x42\x4d\x76\x53\x69\x67\x58\x48\x42\x4d\x44\x31\x79\x77\x44\x4c\x6c\x47','\x75\x33\x62\x48\x44\x32\x34\x47\x79\x73\x62\x4d\x42\x67\x76\x4c\x44\x63\x62\x56\x7a\x49\x62\x6f\x69\x68\x6e\x48\x42\x4d\x72\x49\x42\x33\x48\x4c\x43\x59\x62\x4d\x43\x4d\x39\x54\x69\x67\x65\x47\x44\x67\x76\x54\x43\x67\x58\x48\x44\x67\x75\x53\x69\x68\x44\x50\x44\x67\x47\x47\x79\x73\x62\x4a\x42\x32\x39\x59\x7a\x67\x4c\x55\x79\x78\x72\x56\x43\x49\x62\x57\x42\x68\x76\x5a\x69\x65\x34\x47\x44\x32\x39\x59\x41\x32\x76\x59\x43\x59\x62\x5a\x41\x67\x66\x59\x41\x77\x35\x4e\x69\x67\x65\x47\x44\x32\x39\x59\x41\x33\x6e\x57\x79\x77\x6e\x4c\x6c\x49\x62\x73\x7a\x78\x72\x31\x43\x4d\x35\x5a\x69\x68\x72\x4f\x7a\x73\x62\x4d\x42\x67\x76\x4c\x44\x63\x62\x50\x7a\x63\x62\x48\x42\x4d\x71\x47\x44\x67\x48\x4c\x69\x67\x31\x48\x79\x32\x48\x50\x42\x4d\x75\x47\x41\x77\x72\x5a\x6c\x49\x62\x66\x79\x77\x6e\x4f\x69\x68\x44\x56\x43\x4d\x54\x4c\x43\x49\x62\x4f\x79\x78\x6d\x47\x41\x78\x72\x5a\x69\x67\x39\x33\x42\x49\x62\x57\x7a\x78\x6a\x5a\x41\x78\x6e\x30\x7a\x77\x35\x30\x69\x67\x6e\x56\x7a\x67\x75\x54\x7a\x78\x48\x4c\x79\x33\x76\x30\x41\x77\x39\x55\x69\x67\x54\x4c\x43\x4d\x35\x4c\x42\x64\x53\x47\x44\x67\x48\x4c\x69\x68\x6e\x48\x42\x77\x75\x47\x44\x32\x39\x59\x41\x33\x6e\x57\x79\x77\x6e\x4c\x69\x67\x4c\x5a\x69\x67\x31\x56\x44\x77\x35\x30\x7a\x77\x71\x47\x79\x77\x6e\x59\x42\x33\x6e\x5a\x69\x68\x72\x4f\x7a\x77\x30\x55\x69\x65\x6e\x70\x75\x31\x72\x74\x69\x66\x6e\x64\x71\x75\x58\x66\x69\x65\x58\x6a\x74\x4b\x76\x62\x75\x4b\x58\x7a\x69\x68\x44\x50\x44\x67\x47\x47\x79\x68\x44\x56\x43\x4d\x54\x4c\x43\x4e\x6e\x47\x6c\x49\x62\x76\x43\x32\x75\x47\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x4d\x42\x67\x76\x4c\x44\x66\x39\x4b\x7a\x78\x6e\x30\x43\x4d\x39\x35\x69\x68\x44\x4f\x7a\x77\x34\x47\x7a\x67\x39\x55\x7a\x73\x34'];a0_0x14fd=function(){return _0x5464ca;};return a0_0x14fd();}function serializeToolResult(_0x54cc23){const _0x2038ec=a0_0x401551,_0x78fc46={'\x49\x6f\x72\x51\x50':function(_0x34fb77,_0x2ea2f0){return _0x34fb77===_0x2ea2f0;}};if(_0x78fc46[_0x2038ec(0x160)](typeof _0x54cc23,_0x2038ec(0x10f)))return _0x54cc23;try{return JSON[_0x2038ec(0x140)](_0x54cc23,null,0x2);}catch{return String(_0x54cc23);}}const SDK_VERSION=((()=>{const _0x2c44e8=a0_0x401551,_0x2b2481={'\x76\x76\x72\x51\x4b':_0x2c44e8(0x117),'\x4a\x68\x4d\x73\x70':_0x2c44e8(0x10c)};try{return createRequire(import.meta.url)(_0x2b2481['\x76\x76\x72\x51\x4b'])['\x76\x65\x72\x73\x69\x6f\x6e']??_0x2b2481[_0x2c44e8(0x123)];}catch{return _0x2c44e8(0x10c);}})());async function createMcpServer(_0x41b49c,_0x465adc={}){const _0x116d30=a0_0x401551,_0x478742={'\x69\x52\x6c\x69\x66':_0x116d30(0x110),'\x77\x4f\x77\x52\x67':_0x116d30(0x17b),'\x76\x50\x6a\x63\x79':function(_0x20654b,_0x23aa91){return _0x20654b(_0x23aa91);}};let _0x17a3aa,_0x1fef44;try{[_0x17a3aa,_0x1fef44]=await Promise['\x61\x6c\x6c']([import(_0x478742[_0x116d30(0xf6)]),import(_0x478742[_0x116d30(0x12b)])]);}catch{throw new Error(_0x116d30(0x144));}const _0x54eb11=_0x478742[_0x116d30(0x14f)](selectSpecs,_0x465adc[_0x116d30(0x16d)]),_0x544b41={'\x62\x6f\x78':_0x41b49c,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x465adc['\x73\x65\x73\x73\x69\x6f\x6e\x49\x64']},_0x1a1e0d=new Map();for(const _0xb945f9 of _0x54eb11)_0x1a1e0d[_0x116d30(0x179)](_0xb945f9[_0x116d30(0x15e)],_0xb945f9[_0x116d30(0x13a)](_0x544b41));const _0x222d74=new _0x17a3aa[(_0x116d30(0x13c))]({'\x6e\x61\x6d\x65':_0x465adc[_0x116d30(0x15e)]??_0x116d30(0x15c),'\x76\x65\x72\x73\x69\x6f\x6e':_0x465adc['\x76\x65\x72\x73\x69\x6f\x6e']??SDK_VERSION},{'\x63\x61\x70\x61\x62\x69\x6c\x69\x74\x69\x65\x73':{'\x74\x6f\x6f\x6c\x73':{}}});return _0x222d74['\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x61\x6e\x64\x6c\x65\x72'](_0x1fef44[_0x116d30(0x132)],async()=>({'\x74\x6f\x6f\x6c\x73':_0x54eb11[_0x116d30(0x14b)](_0x48e791=>({'\x6e\x61\x6d\x65':_0x48e791[_0x116d30(0x15e)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x48e791[_0x116d30(0x152)],'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':_0x48e791['\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61']}))})),_0x222d74['\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x61\x6e\x64\x6c\x65\x72'](_0x1fef44[_0x116d30(0x11d)],async _0x446af6=>{const _0x2cb87b=_0x116d30,_0x451b06=_0x446af6,_0x54c3bd=_0x1a1e0d[_0x2cb87b(0x120)](_0x451b06[_0x2cb87b(0x15a)][_0x2cb87b(0x15e)]);if(!_0x54c3bd)return{'\x69\x73\x45\x72\x72\x6f\x72':!![],'\x63\x6f\x6e\x74\x65\x6e\x74':[{'\x74\x79\x70\x65':_0x2cb87b(0x138),'\x74\x65\x78\x74':_0x2cb87b(0x12e)+_0x451b06[_0x2cb87b(0x15a)]['\x6e\x61\x6d\x65']}]};try{return{'\x63\x6f\x6e\x74\x65\x6e\x74':[{'\x74\x79\x70\x65':'\x74\x65\x78\x74','\x74\x65\x78\x74':serializeToolResult(await _0x54c3bd(_0x451b06[_0x2cb87b(0x15a)][_0x2cb87b(0x12d)]??{}))}]};}catch(_0x347aaf){return{'\x69\x73\x45\x72\x72\x6f\x72':!![],'\x63\x6f\x6e\x74\x65\x6e\x74':[{'\x74\x79\x70\x65':_0x2cb87b(0x138),'\x74\x65\x78\x74':_0x347aaf instanceof Error?_0x347aaf['\x6d\x65\x73\x73\x61\x67\x65']:String(_0x347aaf)}]};}}),{'\x73\x65\x72\x76\x65\x72':_0x222d74,'\x63\x6f\x6e\x6e\x65\x63\x74':_0x5b231d=>_0x222d74[_0x116d30(0x14c)](_0x5b231d),'\x63\x6c\x6f\x73\x65':()=>_0x222d74[_0x116d30(0xf8)]()};}function runCode(_0x3e1a13,_0x4016dc,_0x4b3160,_0x4b339c){const _0x228a6b=a0_0x401551;return _0x3e1a13[_0x228a6b(0x18a)](_0x4016dc,_0x4b3160,_0x4b339c);}function anthropicTools(_0x4b7524,_0x3c9e55={}){const _0x3fbc6b=a0_0x401551,_0x25f359={'\x55\x74\x54\x49\x57':function(_0xba069c,_0x4bda47){return _0xba069c(_0x4bda47);},'\x7a\x65\x58\x43\x72':_0x3fbc6b(0x177)},_0x4d012c=selectSpecs(_0x3c9e55[_0x3fbc6b(0x16d)]),_0x2d10c3={'\x62\x6f\x78':_0x4b7524,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x3c9e55[_0x3fbc6b(0x187)]},_0x192ec4=new Map();for(const _0x10a0ca of _0x4d012c)_0x192ec4['\x73\x65\x74'](_0x10a0ca[_0x3fbc6b(0x15e)],_0x10a0ca[_0x3fbc6b(0x13a)](_0x2d10c3));const _0x1a95ce=_0x4d012c[_0x3fbc6b(0x14b)](_0x3acddd=>({'\x6e\x61\x6d\x65':_0x3acddd['\x6e\x61\x6d\x65'],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x3acddd[_0x3fbc6b(0x152)],'\x69\x6e\x70\x75\x74\x5f\x73\x63\x68\x65\x6d\x61':_0x3acddd[_0x3fbc6b(0x18e)]}));async function _0xa1aeee(_0x14314a){const _0x829cdb=_0x3fbc6b,_0xd7dbe5=_0x192ec4['\x67\x65\x74'](_0x14314a['\x6e\x61\x6d\x65']);if(!_0xd7dbe5)return{'\x74\x79\x70\x65':'\x74\x6f\x6f\x6c\x5f\x72\x65\x73\x75\x6c\x74','\x74\x6f\x6f\x6c\x5f\x75\x73\x65\x5f\x69\x64':_0x14314a['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':'\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x74\x6f\x6f\x6c\x3a\x20'+_0x14314a[_0x829cdb(0x15e)],'\x69\x73\x5f\x65\x72\x72\x6f\x72':!![]};try{const _0x4d8dee=await _0x25f359[_0x829cdb(0x13d)](_0xd7dbe5,_0x14314a[_0x829cdb(0x17c)]);return{'\x74\x79\x70\x65':_0x25f359[_0x829cdb(0x10d)],'\x74\x6f\x6f\x6c\x5f\x75\x73\x65\x5f\x69\x64':_0x14314a['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':toAnthropicContent(_0x4d8dee)};}catch(_0x20bb01){return{'\x74\x79\x70\x65':_0x25f359[_0x829cdb(0x10d)],'\x74\x6f\x6f\x6c\x5f\x75\x73\x65\x5f\x69\x64':_0x14314a['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':_0x20bb01 instanceof Error?_0x20bb01[_0x829cdb(0x174)]:_0x25f359[_0x829cdb(0x13d)](String,_0x20bb01),'\x69\x73\x5f\x65\x72\x72\x6f\x72':!![]};}}async function _0x15a01c(_0x3be90e){const _0x4a413a=_0x3fbc6b,_0x5ceb23=_0x3be90e[_0x4a413a(0x16f)](_0x441eaa=>typeof _0x441eaa===_0x4a413a(0x108)&&_0x441eaa!==null&&_0x441eaa['\x74\x79\x70\x65']==='\x74\x6f\x6f\x6c\x5f\x75\x73\x65');return Promise[_0x4a413a(0x16e)](_0x5ceb23['\x6d\x61\x70'](_0xa1aeee));}return{'\x74\x6f\x6f\x6c\x73':_0x1a95ce,'\x68\x61\x6e\x64\x6c\x65\x54\x6f\x6f\x6c\x55\x73\x65':_0xa1aeee,'\x68\x61\x6e\x64\x6c\x65\x41\x73\x73\x69\x73\x74\x61\x6e\x74\x4d\x65\x73\x73\x61\x67\x65':_0x15a01c};}function a0_0x1e45(_0x3fc160,_0x12ad28){_0x3fc160=_0x3fc160-0xf4;const _0x14fdc2=a0_0x14fd();let _0x1e45f0=_0x14fdc2[_0x3fc160];if(a0_0x1e45['\x47\x52\x55\x6b\x6c\x68']===undefined){var _0x37f7d3=function(_0x135c68){const _0x22a439='\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x2b\x2f\x3d';let _0x115cbb='',_0xdd0827='';for(let _0x51b1aa=0x0,_0x5251ab,_0x223829,_0x34f913=0x0;_0x223829=_0x135c68['\x63\x68\x61\x72\x41\x74'](_0x34f913++);~_0x223829&&(_0x5251ab=_0x51b1aa%0x4?_0x5251ab*0x40+_0x223829:_0x223829,_0x51b1aa++%0x4)?_0x115cbb+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xff&_0x5251ab>>(-0x2*_0x51b1aa&0x6)):0x0){_0x223829=_0x22a439['\x69\x6e\x64\x65\x78\x4f\x66'](_0x223829);}for(let _0x3b1d9b=0x0,_0x4bd9ee=_0x115cbb['\x6c\x65\x6e\x67\x74\x68'];_0x3b1d9b<_0x4bd9ee;_0x3b1d9b++){_0xdd0827+='\x25'+('\x30\x30'+_0x115cbb['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x3b1d9b)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x10))['\x73\x6c\x69\x63\x65'](-0x2);}return decodeURIComponent(_0xdd0827);};a0_0x1e45['\x7a\x55\x79\x4b\x74\x42']=_0x37f7d3,a0_0x1e45['\x61\x6d\x55\x6a\x79\x69']={},a0_0x1e45['\x47\x52\x55\x6b\x6c\x68']=!![];}const _0xce45b9=_0x14fdc2[0x0],_0x20625c=_0x3fc160+_0xce45b9,_0x563543=a0_0x1e45['\x61\x6d\x55\x6a\x79\x69'][_0x20625c];return!_0x563543?(_0x1e45f0=a0_0x1e45['\x7a\x55\x79\x4b\x74\x42'](_0x1e45f0),a0_0x1e45['\x61\x6d\x55\x6a\x79\x69'][_0x20625c]=_0x1e45f0):_0x1e45f0=_0x563543,_0x1e45f0;}function toAnthropicContent(_0x168638){const _0x50d3ef=a0_0x401551,_0x254da3={'\x5a\x61\x77\x6c\x4f':function(_0x35d6d0,_0x40e38f){return _0x35d6d0(_0x40e38f);},'\x72\x59\x4a\x4b\x51':'\x74\x65\x78\x74'};if(!isCodeExecutionResultWithImages(_0x168638))return _0x254da3[_0x50d3ef(0x189)](serializeToolResult,_0x168638);const _0x50a829=[],_0x1e9fb4={..._0x168638,'\x72\x65\x73\x75\x6c\x74\x73':_0x168638[_0x50d3ef(0x13f)]['\x66\x69\x6c\x74\x65\x72'](_0x32f08d=>_0x32f08d[_0x50d3ef(0x101)]!==_0x50d3ef(0x15b))};_0x50a829['\x70\x75\x73\x68']({'\x74\x79\x70\x65':_0x254da3[_0x50d3ef(0x17e)],'\x74\x65\x78\x74':serializeToolResult(_0x1e9fb4)});for(const _0x38727a of _0x168638[_0x50d3ef(0x13f)])if(_0x254da3[_0x50d3ef(0x189)](isImagePart,_0x38727a))_0x50a829[_0x50d3ef(0xf5)]({'\x74\x79\x70\x65':_0x50d3ef(0x15b),'\x73\x6f\x75\x72\x63\x65':{'\x74\x79\x70\x65':_0x50d3ef(0x130),'\x6d\x65\x64\x69\x61\x5f\x74\x79\x70\x65':_0x254da3[_0x50d3ef(0x189)](imageMediaType,_0x38727a[_0x50d3ef(0x105)]),'\x64\x61\x74\x61':_0x38727a[_0x50d3ef(0xfb)]}});return _0x50a829;}function isImagePart(_0x27b3c4){const _0x420823=a0_0x401551;return _0x27b3c4[_0x420823(0x101)]===_0x420823(0x15b);}function isCodeExecutionResultWithImages(_0x2f026a){const _0x4f6d51=a0_0x401551,_0x2390da={'\x4f\x74\x51\x72\x61':_0x4f6d51(0x108)};if(!_0x2f026a||typeof _0x2f026a!==_0x2390da[_0x4f6d51(0x11c)])return![];const _0x70bae=_0x2f026a[_0x4f6d51(0x13f)];if(!Array[_0x4f6d51(0x122)](_0x70bae))return![];return _0x70bae[_0x4f6d51(0x182)](_0x1bbc41=>_0x1bbc41&&typeof _0x1bbc41==='\x6f\x62\x6a\x65\x63\x74'&&_0x1bbc41['\x74\x79\x70\x65']===_0x4f6d51(0x15b));}function imageMediaType(_0xd7f65b){const _0x84fda0=a0_0x401551,_0x3bdc34={'\x49\x66\x43\x76\x6a':_0x84fda0(0x148),'\x4a\x6f\x6c\x42\x78':_0x84fda0(0x106),'\x47\x47\x71\x56\x45':_0x84fda0(0x17d)};switch(_0xd7f65b){case _0x3bdc34[_0x84fda0(0x183)]:return _0x84fda0(0x17d);case'\x6a\x70\x65\x67':return _0x84fda0(0x163);case _0x3bdc34[_0x84fda0(0x12c)]:return _0x3bdc34[_0x84fda0(0x112)];}}const FLEET_TOOL_SPECS={'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x66\x6c\x65\x65\x74\x5f\x73\x70\x61\x77\x6e':{'\x6e\x61\x6d\x65':a0_0x401551(0xf4),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0xff),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x74\x65\x6d\x70\x6c\x61\x74\x65\x5f\x69\x64':{'\x74\x79\x70\x65':'\x73\x74\x72\x69\x6e\x67','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':'\x50\x75\x62\x6c\x69\x63\x20\x74\x65\x6d\x70\x6c\x61\x74\x65\x20\x73\x6c\x75\x67\x20\x6f\x72\x20\x69\x64\x20\x28\x65\x2e\x67\x2e\x20\x27\x70\x79\x74\x68\x6f\x6e\x2d\x64\x61\x74\x61\x2d\x73\x63\x69\x65\x6e\x63\x65\x27\x29\x2e'},'\x77\x6f\x72\x6b\x65\x72\x73':{'\x74\x79\x70\x65':a0_0x401551(0x150),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x18b)},'\x6d\x65\x74\x61\x64\x61\x74\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{},'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':!![],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x13e)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x401551(0x134),a0_0x401551(0x116)],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![]},'\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72':({client:_0xd451f2})=>async _0x4e4c69=>{const _0x161a10=a0_0x401551,_0x1b1124=await _0xd451f2[_0x161a10(0xfd)][_0x161a10(0xfc)]({'\x64\x65\x66\x61\x75\x6c\x74\x73':{'\x70\x75\x62\x6c\x69\x63\x54\x65\x6d\x70\x6c\x61\x74\x65\x49\x64':_0x4e4c69[_0x161a10(0x134)]},'\x77\x6f\x72\x6b\x65\x72\x73':Array[_0x161a10(0x10e)]({'\x6c\x65\x6e\x67\x74\x68':_0x4e4c69['\x77\x6f\x72\x6b\x65\x72\x73']},(_0x1d79ed,_0x5a168f)=>({'\x6d\x61\x63\x68\x69\x6e\x65\x49\x64':_0x161a10(0x135)+_0x5a168f})),'\x6d\x65\x74\x61\x64\x61\x74\x61':_0x4e4c69[_0x161a10(0x12a)]});return{'\x66\x6c\x65\x65\x74\x49\x64':_0x1b1124[_0x161a10(0x170)],'\x6d\x61\x63\x68\x69\x6e\x65\x49\x64\x73':_0x1b1124[_0x161a10(0x166)]};}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x66\x6c\x65\x65\x74\x5f\x64\x69\x73\x70\x61\x74\x63\x68':{'\x6e\x61\x6d\x65':'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x66\x6c\x65\x65\x74\x5f\x64\x69\x73\x70\x61\x74\x63\x68','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x147),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x66\x6c\x65\x65\x74\x5f\x69\x64':{'\x74\x79\x70\x65':a0_0x401551(0x10f)},'\x63\x6f\x6d\x6d\x61\x6e\x64':{'\x74\x79\x70\x65':a0_0x401551(0x10f),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x17a)},'\x6d\x61\x63\x68\x69\x6e\x65\x73':{'\x74\x79\x70\x65':a0_0x401551(0x128),'\x69\x74\x65\x6d\x73':{'\x74\x79\x70\x65':a0_0x401551(0x10f)},'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x11b)},'\x74\x69\x6d\x65\x6f\x75\x74\x5f\x6d\x73':{'\x74\x79\x70\x65':a0_0x401551(0x150),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x155)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x401551(0x156),a0_0x401551(0x113)],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![]},'\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72':({client:_0x47171f})=>async _0x3a9ff3=>{const _0x674af2=a0_0x401551;return await(await _0x47171f[_0x674af2(0xfd)][_0x674af2(0x18d)]({'\x66\x6c\x65\x65\x74\x49\x64':_0x3a9ff3[_0x674af2(0x156)]}))[_0x674af2(0x119)](_0x3a9ff3[_0x674af2(0x113)],{'\x6d\x61\x63\x68\x69\x6e\x65\x73':_0x3a9ff3['\x6d\x61\x63\x68\x69\x6e\x65\x73'],'\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73':_0x3a9ff3['\x74\x69\x6d\x65\x6f\x75\x74\x5f\x6d\x73']});}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x66\x6c\x65\x65\x74\x5f\x73\x74\x61\x74\x75\x73':{'\x6e\x61\x6d\x65':a0_0x401551(0x16c),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':'\x4c\x69\x73\x74\x20\x74\x68\x65\x20\x66\x6c\x65\x65\x74\x27\x73\x20\x6d\x61\x63\x68\x69\x6e\x65\x73\x20\x61\x6e\x64\x20\x74\x68\x65\x69\x72\x20\x70\x65\x72\x2d\x6d\x61\x63\x68\x69\x6e\x65\x20\x73\x74\x61\x74\x65\x20\x28\x72\x75\x6e\x6e\x69\x6e\x67\x20\x2f\x20\x73\x74\x6f\x70\x70\x65\x64\x20\x2f\x20\x66\x61\x69\x6c\x65\x64\x29\x20\x70\x6c\x75\x73\x20\x6c\x61\x73\x74\x2d\x75\x73\x65\x64\x20\x74\x69\x6d\x65\x73\x74\x61\x6d\x70\x73\x2e','\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x66\x6c\x65\x65\x74\x5f\x69\x64':{'\x74\x79\x70\x65':a0_0x401551(0x10f)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x401551(0x156)],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![]},'\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72':({client:_0x41e0ad})=>async _0x1664d8=>{const _0x3e4e4f=a0_0x401551,_0x9a0615=await _0x41e0ad['\x66\x6c\x65\x65\x74\x73'][_0x3e4e4f(0x18d)]({'\x66\x6c\x65\x65\x74\x49\x64':_0x1664d8['\x66\x6c\x65\x65\x74\x5f\x69\x64']});return{'\x66\x6c\x65\x65\x74\x49\x64':_0x9a0615[_0x3e4e4f(0x170)],'\x6d\x61\x63\x68\x69\x6e\x65\x73':_0x9a0615[_0x3e4e4f(0x166)]['\x6d\x61\x70'](_0x2a1f63=>({'\x6d\x61\x63\x68\x69\x6e\x65\x49\x64':_0x2a1f63,'\x73\x74\x61\x74\x75\x73':_0x9a0615[_0x3e4e4f(0x120)](_0x2a1f63)[_0x3e4e4f(0x14a)]}))};}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x66\x6c\x65\x65\x74\x5f\x64\x65\x73\x74\x72\x6f\x79':{'\x6e\x61\x6d\x65':a0_0x401551(0x143),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x401551(0x14e),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x401551(0x108),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x66\x6c\x65\x65\x74\x5f\x69\x64':{'\x74\x79\x70\x65':a0_0x401551(0x10f)},'\x63\x6f\x6e\x74\x69\x6e\x75\x65\x5f\x6f\x6e\x5f\x65\x72\x72\x6f\x72':{'\x74\x79\x70\x65':'\x62\x6f\x6f\x6c\x65\x61\x6e','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':'\x43\x6f\x6e\x74\x69\x6e\x75\x65\x20\x64\x65\x6c\x65\x74\x69\x6e\x67\x20\x72\x65\x6d\x61\x69\x6e\x69\x6e\x67\x20\x6d\x61\x63\x68\x69\x6e\x65\x73\x20\x69\x66\x20\x6f\x6e\x65\x20\x66\x61\x69\x6c\x73\x2e'}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x401551(0x156)],'\x61\x64\x64\x69\x74\x69\x6f\x6e\x61\x6c\x50\x72\x6f\x70\x65\x72\x74\x69\x65\x73':![]},'\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72':({client:_0x26ae5f})=>async _0x19bc93=>{const _0x33f53e=a0_0x401551;return await(await _0x26ae5f[_0x33f53e(0xfd)][_0x33f53e(0x18d)]({'\x66\x6c\x65\x65\x74\x49\x64':_0x19bc93['\x66\x6c\x65\x65\x74\x5f\x69\x64']}))[_0x33f53e(0xf9)]({'\x63\x6f\x6e\x74\x69\x6e\x75\x65\x4f\x6e\x45\x72\x72\x6f\x72':_0x19bc93['\x63\x6f\x6e\x74\x69\x6e\x75\x65\x5f\x6f\x6e\x5f\x65\x72\x72\x6f\x72']}),{'\x66\x6c\x65\x65\x74\x49\x64':_0x19bc93[_0x33f53e(0x156)],'\x64\x65\x6c\x65\x74\x65\x64':!![]};}}},ALL_FLEET_TOOL_SPECS=Object['\x76\x61\x6c\x75\x65\x73'](FLEET_TOOL_SPECS);function selectFleetSpecs(_0xf32929){const _0x4541f3=a0_0x401551;if(!_0xf32929||_0xf32929['\x6c\x65\x6e\x67\x74\x68']===0x0)return ALL_FLEET_TOOL_SPECS;const _0x3ceefb=new Set(_0xf32929);return Object[_0x4541f3(0x159)](FLEET_TOOL_SPECS)[_0x4541f3(0x16f)](_0x3a43c5=>_0x3ceefb[_0x4541f3(0x136)](_0x3a43c5))[_0x4541f3(0x14b)](_0x193025=>FLEET_TOOL_SPECS[_0x193025]);}function anthropicFleetTools(_0x5b32dc,_0x2f8669={}){const _0x3e6666=a0_0x401551,_0x18dbeb={'\x59\x63\x55\x6e\x45':function(_0x1eafa0,_0x2b624c){return _0x1eafa0(_0x2b624c);},'\x6f\x61\x42\x55\x45':'\x74\x6f\x6f\x6c\x5f\x72\x65\x73\x75\x6c\x74','\x47\x6a\x76\x57\x74':function(_0x582f97,_0x2eecc7){return _0x582f97 instanceof _0x2eecc7;},'\x61\x4d\x70\x54\x6f':function(_0x22ec74,_0x2fd8e1){return _0x22ec74(_0x2fd8e1);},'\x78\x72\x4f\x63\x76':function(_0x552b23,_0x595d30){return _0x552b23(_0x595d30);},'\x70\x6f\x79\x6e\x6c':function(_0x39ab96,_0x491682,_0x29ee29){return _0x39ab96(_0x491682,_0x29ee29);}},_0xc160b3=_0x18dbeb['\x78\x72\x4f\x63\x76'](selectFleetSpecs,_0x2f8669[_0x3e6666(0x16d)]),_0x9552ef=_0x18dbeb[_0x3e6666(0x16a)](buildFleetHandlers,_0xc160b3,{'\x63\x6c\x69\x65\x6e\x74':_0x5b32dc});return{'\x74\x6f\x6f\x6c\x73':_0xc160b3[_0x3e6666(0x14b)](_0x3e8617=>({'\x6e\x61\x6d\x65':_0x3e8617[_0x3e6666(0x15e)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x3e8617['\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e'],'\x69\x6e\x70\x75\x74\x5f\x73\x63\x68\x65\x6d\x61':_0x3e8617['\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61']})),async '\x68\x61\x6e\x64\x6c\x65\x54\x6f\x6f\x6c\x55\x73\x65'(_0xeb3fe1){const _0x269a96=_0x3e6666,_0x115fab=_0x9552ef[_0x269a96(0x120)](_0xeb3fe1[_0x269a96(0x15e)]);if(!_0x115fab)return{'\x74\x79\x70\x65':'\x74\x6f\x6f\x6c\x5f\x72\x65\x73\x75\x6c\x74','\x74\x6f\x6f\x6c\x5f\x75\x73\x65\x5f\x69\x64':_0xeb3fe1['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':_0x269a96(0x154)+_0xeb3fe1['\x6e\x61\x6d\x65'],'\x69\x73\x5f\x65\x72\x72\x6f\x72':!![]};try{const _0x24db57=await _0x18dbeb[_0x269a96(0x109)](_0x115fab,_0xeb3fe1[_0x269a96(0x17c)]);return{'\x74\x79\x70\x65':_0x269a96(0x177),'\x74\x6f\x6f\x6c\x5f\x75\x73\x65\x5f\x69\x64':_0xeb3fe1['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':serializeToolResult(_0x24db57)};}catch(_0x11ffda){return{'\x74\x79\x70\x65':_0x18dbeb['\x6f\x61\x42\x55\x45'],'\x74\x6f\x6f\x6c\x5f\x75\x73\x65\x5f\x69\x64':_0xeb3fe1['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':_0x18dbeb[_0x269a96(0x14d)](_0x11ffda,Error)?_0x11ffda[_0x269a96(0x174)]:_0x18dbeb['\x61\x4d\x70\x54\x6f'](String,_0x11ffda),'\x69\x73\x5f\x65\x72\x72\x6f\x72':!![]};}}};}function openaiFleetTools(_0xb39ce7,_0x3267f9={}){const _0x259066=a0_0x401551,_0x442456={'\x59\x72\x74\x6b\x48':_0x259066(0x153),'\x61\x74\x6f\x55\x73':function(_0x4b741d,_0x283e0f){return _0x4b741d===_0x283e0f;},'\x77\x45\x49\x55\x6a':function(_0x4217b7,_0x11a31c){return _0x4217b7(_0x11a31c);},'\x41\x78\x78\x66\x66':function(_0x248096,_0x255679){return _0x248096(_0x255679);},'\x76\x71\x4a\x4d\x78':function(_0x1b095c,_0x4332ee,_0x198c21){return _0x1b095c(_0x4332ee,_0x198c21);}},_0x1ef66b=_0x442456[_0x259066(0x127)](selectFleetSpecs,_0x3267f9[_0x259066(0x16d)]),_0x7369ad=_0x442456[_0x259066(0x146)](buildFleetHandlers,_0x1ef66b,{'\x63\x6c\x69\x65\x6e\x74':_0xb39ce7});return{'\x74\x6f\x6f\x6c\x73':_0x1ef66b[_0x259066(0x14b)](_0x471d98=>({'\x74\x79\x70\x65':_0x259066(0x10a),'\x66\x75\x6e\x63\x74\x69\x6f\x6e':{'\x6e\x61\x6d\x65':_0x471d98[_0x259066(0x15e)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x471d98[_0x259066(0x152)],'\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73':_0x471d98['\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61']}})),async '\x68\x61\x6e\x64\x6c\x65\x54\x6f\x6f\x6c\x43\x61\x6c\x6c'(_0x1c6ca0){const _0x51c45a=_0x259066,_0x1abf0b=_0x7369ad[_0x51c45a(0x120)](_0x1c6ca0['\x66\x75\x6e\x63\x74\x69\x6f\x6e']['\x6e\x61\x6d\x65']);if(!_0x1abf0b)return{'\x72\x6f\x6c\x65':_0x442456[_0x51c45a(0x15d)],'\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x1c6ca0['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':JSON[_0x51c45a(0x140)]({'\x65\x72\x72\x6f\x72':_0x51c45a(0x154)+_0x1c6ca0[_0x51c45a(0x10a)][_0x51c45a(0x15e)]})};let _0x55d3f9={};try{const _0x3469b3=JSON[_0x51c45a(0x126)](_0x1c6ca0['\x66\x75\x6e\x63\x74\x69\x6f\x6e'][_0x51c45a(0x12d)]||'\x7b\x7d');if(_0x3469b3&&_0x442456[_0x51c45a(0x181)](typeof _0x3469b3,_0x51c45a(0x108)))_0x55d3f9=_0x3469b3;}catch{}try{const _0x3b6f66=await _0x442456['\x77\x45\x49\x55\x6a'](_0x1abf0b,_0x55d3f9);return{'\x72\x6f\x6c\x65':_0x51c45a(0x153),'\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x1c6ca0['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':_0x442456[_0x51c45a(0x18c)](serializeToolResult,_0x3b6f66)};}catch(_0x4e7d43){return{'\x72\x6f\x6c\x65':_0x51c45a(0x153),'\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x1c6ca0['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':JSON[_0x51c45a(0x140)]({'\x65\x72\x72\x6f\x72':_0x4e7d43 instanceof Error?_0x4e7d43[_0x51c45a(0x174)]:_0x442456['\x41\x78\x78\x66\x66'](String,_0x4e7d43)})};}}};}async function vercelAiFleetTools(_0x1ea022,_0x1af1c1={}){const _0x42c876=a0_0x401551,_0x40fedc={'\x44\x54\x64\x63\x59':function(_0x5bb55a,_0x2a5495){return _0x5bb55a(_0x2a5495);},'\x6f\x49\x68\x65\x44':_0x42c876(0x149),'\x6d\x4e\x64\x49\x4c':function(_0x21c7e0,_0x944a65){return _0x21c7e0(_0x944a65);}};let _0x2998bb;try{_0x2998bb=await import('\x61\x69');}catch{throw new Error(_0x40fedc[_0x42c876(0x176)]);}const _0x2a24a3=_0x40fedc['\x6d\x4e\x64\x49\x4c'](selectFleetSpecs,_0x1af1c1[_0x42c876(0x16d)]),_0x55c682=buildFleetHandlers(_0x2a24a3,{'\x63\x6c\x69\x65\x6e\x74':_0x1ea022}),_0x19c6c0={};for(const _0x54677a of _0x2a24a3)_0x19c6c0[_0x54677a[_0x42c876(0x15e)]]=_0x2998bb['\x74\x6f\x6f\x6c']({'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x54677a[_0x42c876(0x152)],'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':_0x2998bb['\x6a\x73\x6f\x6e\x53\x63\x68\x65\x6d\x61'](_0x54677a[_0x42c876(0x18e)]),'\x65\x78\x65\x63\x75\x74\x65':async _0x2c270e=>{const _0x2a1414=_0x42c876,_0x4935e3=_0x55c682[_0x2a1414(0x120)](_0x54677a[_0x2a1414(0x15e)]);if(!_0x4935e3)throw new Error(_0x2a1414(0x154)+_0x54677a[_0x2a1414(0x15e)]);return _0x40fedc[_0x2a1414(0x104)](serializeToolResult,await _0x4935e3(_0x2c270e));}});return _0x19c6c0;}async function mastraFleetTools(_0x3edf11,_0xf27fb8={}){const _0x1338c2=a0_0x401551,_0x5ac7c4={'\x4b\x65\x71\x73\x6c':function(_0x269580,_0x3b1dd3){return _0x269580(_0x3b1dd3);}};let _0x942413;try{_0x942413=await import(_0x1338c2(0x129));}catch{throw new Error(_0x1338c2(0x171));}const _0x645a32=selectFleetSpecs(_0xf27fb8[_0x1338c2(0x16d)]),_0x327d15=buildFleetHandlers(_0x645a32,{'\x63\x6c\x69\x65\x6e\x74':_0x3edf11}),_0x3fa6b6={};for(const _0x48760c of _0x645a32)_0x3fa6b6[_0x48760c[_0x1338c2(0x15e)]]=_0x942413[_0x1338c2(0x15f)]({'\x69\x64':_0x48760c[_0x1338c2(0x15e)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x48760c[_0x1338c2(0x152)],'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':_0x942413[_0x1338c2(0x141)]?_0x942413[_0x1338c2(0x141)](_0x48760c[_0x1338c2(0x18e)]):_0x48760c[_0x1338c2(0x18e)],'\x65\x78\x65\x63\x75\x74\x65':async _0x1b1951=>{const _0x1992f7=_0x1338c2,_0x503b9a=_0x327d15[_0x1992f7(0x120)](_0x48760c[_0x1992f7(0x15e)]);if(!_0x503b9a)throw new Error(_0x1992f7(0x154)+_0x48760c[_0x1992f7(0x15e)]);return{'\x72\x65\x73\x75\x6c\x74':serializeToolResult(await _0x5ac7c4['\x4b\x65\x71\x73\x6c'](_0x503b9a,_0x1b1951?.[_0x1992f7(0x168)]??{}))};}});return _0x3fa6b6;}function buildFleetHandlers(_0x421315,_0x45e293){const _0x50071b=a0_0x401551,_0x804479=new Map();for(const _0x270d40 of _0x421315)_0x804479[_0x50071b(0x179)](_0x270d40[_0x50071b(0x15e)],_0x270d40[_0x50071b(0x13a)](_0x45e293));return _0x804479;}async function mastraTools(_0x5e0ae1,_0x2d998a={}){const _0x15a22f=a0_0x401551,_0x4d9be0={'\x48\x56\x78\x70\x6a':function(_0x5805cd,_0xb99926){return _0x5805cd(_0xb99926);},'\x56\x77\x51\x47\x58':_0x15a22f(0x11a)};let _0x2bd397;try{_0x2bd397=await import('\x40\x6d\x61\x73\x74\x72\x61\x2f\x63\x6f\x72\x65');}catch{throw new Error(_0x4d9be0['\x56\x77\x51\x47\x58']);}const _0x11eea7=selectSpecs(_0x2d998a[_0x15a22f(0x16d)]),_0x53d4f8={'\x62\x6f\x78':_0x5e0ae1,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x2d998a[_0x15a22f(0x187)]},_0x20bde4={};for(const _0x3b06e7 of _0x11eea7){const _0x25f091=_0x3b06e7[_0x15a22f(0x13a)](_0x53d4f8);_0x20bde4[_0x3b06e7[_0x15a22f(0x15e)]]=_0x2bd397[_0x15a22f(0x15f)]({'\x69\x64':_0x3b06e7['\x6e\x61\x6d\x65'],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x3b06e7[_0x15a22f(0x152)],'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':_0x2bd397['\x6a\x73\x6f\x6e\x53\x63\x68\x65\x6d\x61']?_0x2bd397['\x6a\x73\x6f\x6e\x53\x63\x68\x65\x6d\x61'](_0x3b06e7[_0x15a22f(0x18e)]):_0x3b06e7['\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61'],'\x65\x78\x65\x63\x75\x74\x65':async _0x51af45=>{const _0x447a0c=_0x15a22f;return{'\x72\x65\x73\x75\x6c\x74':_0x4d9be0['\x48\x56\x78\x70\x6a'](serializeToolResult,await _0x25f091(_0x51af45?.[_0x447a0c(0x168)]??{}))};}});}return _0x20bde4;}function openaiTools(_0xf765db,_0x4fb6fe={}){const _0x3e6238=a0_0x401551,_0x408d6f={'\x78\x47\x71\x41\x48':function(_0x5f3f60,_0x140bf2){return _0x5f3f60!==_0x140bf2;},'\x52\x42\x61\x62\x6a':function(_0x70711b,_0x3efaec){return _0x70711b(_0x3efaec);},'\x67\x52\x70\x63\x55':function(_0x41aee9,_0x643d34){return _0x41aee9(_0x643d34);},'\x73\x4f\x5a\x50\x4b':_0x3e6238(0x153)},_0x22a94f=selectSpecs(_0x4fb6fe[_0x3e6238(0x16d)]),_0x394150={'\x62\x6f\x78':_0xf765db,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x4fb6fe[_0x3e6238(0x187)]},_0x2d1ba4=new Map();for(const _0x7b1e87 of _0x22a94f)_0x2d1ba4[_0x3e6238(0x179)](_0x7b1e87[_0x3e6238(0x15e)],_0x7b1e87[_0x3e6238(0x13a)](_0x394150));const _0x135ed7=_0x22a94f[_0x3e6238(0x14b)](_0x4bddd3=>({'\x74\x79\x70\x65':_0x3e6238(0x10a),'\x66\x75\x6e\x63\x74\x69\x6f\x6e':{'\x6e\x61\x6d\x65':_0x4bddd3['\x6e\x61\x6d\x65'],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x4bddd3[_0x3e6238(0x152)],'\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73':_0x4bddd3[_0x3e6238(0x18e)]}}));function _0x5c6059(_0xe0d583){const _0x900dd5=_0x3e6238;if(!_0xe0d583)return{};try{const _0x476ab5=JSON[_0x900dd5(0x126)](_0xe0d583);return typeof _0x476ab5===_0x900dd5(0x108)&&_0x408d6f['\x78\x47\x71\x41\x48'](_0x476ab5,null)?_0x476ab5:{};}catch{return{};}}async function _0x250d93(_0x5efa86){const _0x373002=_0x3e6238,_0x39035b=_0x2d1ba4['\x67\x65\x74'](_0x5efa86['\x66\x75\x6e\x63\x74\x69\x6f\x6e']['\x6e\x61\x6d\x65']);if(!_0x39035b)return{'\x72\x6f\x6c\x65':'\x74\x6f\x6f\x6c','\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x5efa86['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':JSON['\x73\x74\x72\x69\x6e\x67\x69\x66\x79']({'\x65\x72\x72\x6f\x72':_0x373002(0x12e)+_0x5efa86[_0x373002(0x10a)]['\x6e\x61\x6d\x65']})};try{const _0x535b51=await _0x408d6f[_0x373002(0xf7)](_0x39035b,_0x408d6f['\x67\x52\x70\x63\x55'](_0x5c6059,_0x5efa86[_0x373002(0x10a)][_0x373002(0x12d)]));return{'\x72\x6f\x6c\x65':_0x373002(0x153),'\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x5efa86['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':_0x408d6f[_0x373002(0x139)](serializeToolResult,_0x535b51)};}catch(_0x1b8f7a){return{'\x72\x6f\x6c\x65':_0x408d6f['\x73\x4f\x5a\x50\x4b'],'\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x5efa86['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':JSON[_0x373002(0x140)]({'\x65\x72\x72\x6f\x72':_0x1b8f7a instanceof Error?_0x1b8f7a[_0x373002(0x174)]:_0x408d6f['\x52\x42\x61\x62\x6a'](String,_0x1b8f7a)})};}}async function _0x3dfaa3(_0x131c46){const _0x468320=_0x3e6238,_0xcfc31c=_0x131c46['\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x73']??[];return Promise[_0x468320(0x16e)](_0xcfc31c[_0x468320(0x14b)](_0x250d93));}return{'\x74\x6f\x6f\x6c\x73':_0x135ed7,'\x68\x61\x6e\x64\x6c\x65\x54\x6f\x6f\x6c\x43\x61\x6c\x6c':_0x250d93,'\x68\x61\x6e\x64\x6c\x65\x41\x73\x73\x69\x73\x74\x61\x6e\x74\x4d\x65\x73\x73\x61\x67\x65':_0x3dfaa3};}async function vercelAiTools(_0x2e7495,_0xfaaa46={}){const _0x13f89a=a0_0x401551,_0x37acd5={'\x4f\x4a\x73\x53\x49':function(_0x2e36de,_0x49902e){return _0x2e36de(_0x49902e);}};let _0x105e2a;try{_0x105e2a=await import('\x61\x69');}catch{throw new Error('\x76\x65\x72\x63\x65\x6c\x41\x69\x54\x6f\x6f\x6c\x73\x28\x29\x3a\x20\x74\x68\x65\x20\x60\x61\x69\x60\x20\x70\x61\x63\x6b\x61\x67\x65\x20\x69\x73\x20\x6e\x6f\x74\x20\x69\x6e\x73\x74\x61\x6c\x6c\x65\x64\x2e\x20\x49\x6e\x73\x74\x61\x6c\x6c\x20\x69\x74\x20\x76\x69\x61\x20\x60\x70\x6e\x70\x6d\x20\x61\x64\x64\x20\x61\x69\x60\x20\x28\x61\x6e\x64\x20\x70\x69\x63\x6b\x20\x61\x6e\x20\x60\x40\x61\x69\x2d\x73\x64\x6b\x2f\x2a\x60\x20\x6d\x6f\x64\x65\x6c\x20\x61\x64\x61\x70\x74\x65\x72\x29\x2e');}const _0x52b33a=selectSpecs(_0xfaaa46[_0x13f89a(0x16d)]),_0x39163c={'\x62\x6f\x78':_0x2e7495,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0xfaaa46[_0x13f89a(0x187)]},_0x33d82b={};for(const _0x520f0d of _0x52b33a){const _0x486cd7=_0x520f0d['\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72'](_0x39163c);_0x33d82b[_0x520f0d[_0x13f89a(0x15e)]]=_0x105e2a[_0x13f89a(0x153)]({'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x520f0d[_0x13f89a(0x152)],'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':_0x105e2a['\x6a\x73\x6f\x6e\x53\x63\x68\x65\x6d\x61'](_0x520f0d[_0x13f89a(0x18e)]),'\x65\x78\x65\x63\x75\x74\x65':async _0x8bd536=>{const _0x11e45c=_0x13f89a;return _0x37acd5[_0x11e45c(0x184)](serializeToolResult,await _0x486cd7(_0x8bd536));}});}return _0x33d82b;}export{anthropicFleetTools,anthropicTools,createMcpServer,mastraFleetTools,mastraTools,openaiFleetTools,openaiTools,runCode,vercelAiFleetTools,vercelAiTools};
|