@tangle-network/sandbox 0.2.1 → 0.3.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/README.md +71 -0
- package/dist/agent/index.d.ts +435 -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/{errors-BI75IXOM.d.ts → client-BuPZLOxS.d.ts} +2 -129
- package/dist/client-BwRV2Zun.js +1 -0
- 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-2gFsmmQs.d.ts} +1 -1
- package/dist/index.d.ts +7 -6
- package/dist/index.js +1 -825
- package/dist/openai/index.d.ts +4 -5
- package/dist/openai/index.js +1 -1721
- package/dist/platform-integrations.js +1 -2
- package/dist/{sandbox-aBpWqler.d.ts → sandbox-CpK8etqP.d.ts} +291 -84
- 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 +23 -2
- package/dist/client-Uve6A5C6.js +0 -2280
- 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/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,435 @@
|
|
|
1
|
+
import { F as CodeExecutionOptions, I as CodeExecutionResult, L as CodeLanguage, n as SandboxInstance, z as CodeResultPart } from "../sandbox-CpK8etqP.js";
|
|
2
|
+
import { i as SandboxClient } from "../client-BuPZLOxS.js";
|
|
3
|
+
|
|
4
|
+
//#region src/agent/tools/_specs.d.ts
|
|
5
|
+
/** JSON-schema-ish object describing tool inputs. Plain object literal — no Zod required. */
|
|
6
|
+
type ToolJSONSchema = {
|
|
7
|
+
type: "object";
|
|
8
|
+
properties: Record<string, unknown>;
|
|
9
|
+
required?: string[];
|
|
10
|
+
additionalProperties?: boolean;
|
|
11
|
+
};
|
|
12
|
+
interface ToolHandlerContext {
|
|
13
|
+
box: SandboxInstance;
|
|
14
|
+
/**
|
|
15
|
+
* Session scope passed through to code-kernel and session-aware methods.
|
|
16
|
+
* When unset, the bare-session kernel and the sandbox root workspace are used.
|
|
17
|
+
*/
|
|
18
|
+
sessionId?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Pack-agnostic tool definition. The handler returns whatever the underlying
|
|
22
|
+
* SDK method returns; each pack is responsible for serializing it into a
|
|
23
|
+
* framework-appropriate tool-result payload.
|
|
24
|
+
*/
|
|
25
|
+
interface ToolSpec<TArgs = Record<string, unknown>, TResult = unknown> {
|
|
26
|
+
name: string;
|
|
27
|
+
description: string;
|
|
28
|
+
inputSchema: ToolJSONSchema;
|
|
29
|
+
makeHandler: (ctx: ToolHandlerContext) => (args: TArgs) => Promise<TResult>;
|
|
30
|
+
}
|
|
31
|
+
/** All canonical tool names — derived from the keyed registry below. */
|
|
32
|
+
type ToolName = keyof typeof TOOL_SPECS;
|
|
33
|
+
/**
|
|
34
|
+
* Keyed registry. `as const` preserves per-tool TArgs/TResult through the
|
|
35
|
+
* type system — `TOOL_SPECS.sandbox_run_code.makeHandler` returns a handler
|
|
36
|
+
* whose args parameter is the runCodeSpec's typed `{language, source, ...}`,
|
|
37
|
+
* not the erased `Record<string, unknown>` that an array-of-ToolSpec loses.
|
|
38
|
+
*
|
|
39
|
+
* Iteration order matches the order entries are declared here (V8 preserves
|
|
40
|
+
* string-key insertion order), so the public surface is stable.
|
|
41
|
+
*/
|
|
42
|
+
declare const TOOL_SPECS: {
|
|
43
|
+
readonly sandbox_run_code: ToolSpec<{
|
|
44
|
+
language: "python" | "node" | "typescript" | "bash";
|
|
45
|
+
source: string;
|
|
46
|
+
timeout_ms?: number;
|
|
47
|
+
}, unknown>;
|
|
48
|
+
readonly sandbox_exec: ToolSpec<{
|
|
49
|
+
command: string;
|
|
50
|
+
cwd?: string;
|
|
51
|
+
timeout_ms?: number;
|
|
52
|
+
}, unknown>;
|
|
53
|
+
readonly sandbox_read: ToolSpec<{
|
|
54
|
+
path: string;
|
|
55
|
+
}, unknown>;
|
|
56
|
+
readonly sandbox_write: ToolSpec<{
|
|
57
|
+
path: string;
|
|
58
|
+
content: string;
|
|
59
|
+
}, unknown>;
|
|
60
|
+
readonly sandbox_list: ToolSpec<{
|
|
61
|
+
path: string;
|
|
62
|
+
}, unknown>;
|
|
63
|
+
readonly sandbox_search: ToolSpec<{
|
|
64
|
+
pattern: string;
|
|
65
|
+
path?: string;
|
|
66
|
+
max_results?: number;
|
|
67
|
+
}, unknown>;
|
|
68
|
+
};
|
|
69
|
+
//#endregion
|
|
70
|
+
//#region src/agent/mcp-local.d.ts
|
|
71
|
+
interface McpServerOptions {
|
|
72
|
+
/** Which tools to expose. Defaults to all. */
|
|
73
|
+
allow?: ToolName[];
|
|
74
|
+
/** Session scope passed to handlers. */
|
|
75
|
+
sessionId?: string;
|
|
76
|
+
/** Override the MCP server's reported name. Defaults to "tangle-sandbox". */
|
|
77
|
+
name?: string;
|
|
78
|
+
/** Override the reported version string. Defaults to the SDK package version. */
|
|
79
|
+
version?: string;
|
|
80
|
+
}
|
|
81
|
+
type AnyMcpServer = {
|
|
82
|
+
setRequestHandler: (schema: unknown, handler: (req: unknown) => unknown) => void;
|
|
83
|
+
connect: (transport: unknown) => Promise<void>;
|
|
84
|
+
close: () => Promise<void>;
|
|
85
|
+
};
|
|
86
|
+
interface McpServerHandle {
|
|
87
|
+
/** The underlying MCP Server instance (typed loosely to avoid a hard dep). */
|
|
88
|
+
server: AnyMcpServer;
|
|
89
|
+
/** Connect over a transport (typically StdioServerTransport). */
|
|
90
|
+
connect: (transport: unknown) => Promise<void>;
|
|
91
|
+
/** Shut the server down. */
|
|
92
|
+
close: () => Promise<void>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Build an MCP server backed by one sandbox. The server registers
|
|
96
|
+
* `tools/list` and `tools/call` handlers populated from the same registry
|
|
97
|
+
* the framework packs use.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```ts
|
|
101
|
+
* // tangle-mcp-server.ts — used as the command in your MCP client config.
|
|
102
|
+
* import { Sandbox } from "@tangle-network/sandbox";
|
|
103
|
+
* import { createMcpServer } from "@tangle-network/sandbox/agent";
|
|
104
|
+
* import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
105
|
+
*
|
|
106
|
+
* const client = new Sandbox({ apiKey: process.env.TANGLE_API_KEY });
|
|
107
|
+
* const box = await client.get(process.env.SANDBOX_ID!);
|
|
108
|
+
* const { connect } = await createMcpServer(box, { sessionId: "claude-desktop" });
|
|
109
|
+
* await connect(new StdioServerTransport());
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* Claude Desktop config snippet:
|
|
113
|
+
* ```json
|
|
114
|
+
* {
|
|
115
|
+
* "mcpServers": {
|
|
116
|
+
* "tangle-sandbox": {
|
|
117
|
+
* "command": "node",
|
|
118
|
+
* "args": ["./tangle-mcp-server.js"],
|
|
119
|
+
* "env": { "TANGLE_API_KEY": "...", "SANDBOX_ID": "..." }
|
|
120
|
+
* }
|
|
121
|
+
* }
|
|
122
|
+
* }
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
declare function createMcpServer(box: SandboxInstance, options?: McpServerOptions): Promise<McpServerHandle>;
|
|
126
|
+
//#endregion
|
|
127
|
+
//#region src/agent/run-code.d.ts
|
|
128
|
+
/**
|
|
129
|
+
* Functional form of `box.runCode(...)`. Useful when only the function is in
|
|
130
|
+
* scope (e.g., when wiring into a framework tool definition that captures
|
|
131
|
+
* the callable but not the surrounding instance).
|
|
132
|
+
*
|
|
133
|
+
* Identical semantics to {@link SandboxInstance.runCode}.
|
|
134
|
+
*/
|
|
135
|
+
declare function runCode(box: SandboxInstance, language: CodeLanguage, source: string, options?: CodeExecutionOptions): Promise<CodeExecutionResult>;
|
|
136
|
+
//#endregion
|
|
137
|
+
//#region src/agent/tools/anthropic.d.ts
|
|
138
|
+
interface AnthropicTool {
|
|
139
|
+
name: string;
|
|
140
|
+
description: string;
|
|
141
|
+
input_schema: {
|
|
142
|
+
type: "object";
|
|
143
|
+
properties: Record<string, unknown>;
|
|
144
|
+
required?: string[];
|
|
145
|
+
additionalProperties?: boolean;
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
interface AnthropicToolUseBlock {
|
|
149
|
+
type: "tool_use";
|
|
150
|
+
id: string;
|
|
151
|
+
name: string;
|
|
152
|
+
input: Record<string, unknown>;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Multi-block content payload for tool_result. The Anthropic Messages API
|
|
156
|
+
* accepts both a plain string and an array of content blocks; using the
|
|
157
|
+
* array form lets us hand images back as native `image` blocks instead of
|
|
158
|
+
* stuffing base64 into a JSON string the model has to re-parse.
|
|
159
|
+
*/
|
|
160
|
+
type AnthropicToolResultContentBlock = {
|
|
161
|
+
type: "text";
|
|
162
|
+
text: string;
|
|
163
|
+
} | {
|
|
164
|
+
type: "image";
|
|
165
|
+
source: {
|
|
166
|
+
type: "base64";
|
|
167
|
+
media_type: "image/png" | "image/jpeg" | "image/webp" | "image/gif";
|
|
168
|
+
data: string;
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
interface AnthropicToolResultBlock {
|
|
172
|
+
type: "tool_result";
|
|
173
|
+
tool_use_id: string;
|
|
174
|
+
content: string | AnthropicToolResultContentBlock[];
|
|
175
|
+
is_error?: boolean;
|
|
176
|
+
}
|
|
177
|
+
interface AnthropicToolPackOptions {
|
|
178
|
+
/** Which tools to expose. Defaults to all. */
|
|
179
|
+
allow?: ToolName[];
|
|
180
|
+
/** Session scope passed to handlers (kernel persistence, file routing). */
|
|
181
|
+
sessionId?: string;
|
|
182
|
+
}
|
|
183
|
+
interface AnthropicToolPack {
|
|
184
|
+
/** Tools array — pass directly to `messages.create({ tools })`. */
|
|
185
|
+
tools: AnthropicTool[];
|
|
186
|
+
/**
|
|
187
|
+
* Dispatch a single `tool_use` block. The returned `tool_result` block
|
|
188
|
+
* goes into the next assistant turn's `messages` array.
|
|
189
|
+
*/
|
|
190
|
+
handleToolUse(block: AnthropicToolUseBlock): Promise<AnthropicToolResultBlock>;
|
|
191
|
+
/**
|
|
192
|
+
* Convenience for batch handling: filters the assistant message's content
|
|
193
|
+
* for tool_use blocks, dispatches them in parallel, and returns the
|
|
194
|
+
* matching tool_result blocks ready to attach to the next user turn.
|
|
195
|
+
*/
|
|
196
|
+
handleAssistantMessage(content: unknown[]): Promise<AnthropicToolResultBlock[]>;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Build an Anthropic tool pack bound to one sandbox.
|
|
200
|
+
*
|
|
201
|
+
* @example
|
|
202
|
+
* ```ts
|
|
203
|
+
* import Anthropic from "@anthropic-ai/sdk";
|
|
204
|
+
* import { anthropicTools } from "@tangle-network/sandbox/agent";
|
|
205
|
+
*
|
|
206
|
+
* const claude = new Anthropic();
|
|
207
|
+
* const { tools, handleAssistantMessage } = anthropicTools(box, { sessionId: "s1" });
|
|
208
|
+
*
|
|
209
|
+
* const messages = [{ role: "user", content: "Plot sin(x) for x in [0, 2π]." }];
|
|
210
|
+
* for (let i = 0; i < 6; i++) {
|
|
211
|
+
* const r = await claude.messages.create({
|
|
212
|
+
* model: "claude-opus-4-7",
|
|
213
|
+
* max_tokens: 4096,
|
|
214
|
+
* tools,
|
|
215
|
+
* messages,
|
|
216
|
+
* });
|
|
217
|
+
* messages.push({ role: "assistant", content: r.content });
|
|
218
|
+
* if (r.stop_reason !== "tool_use") break;
|
|
219
|
+
* const results = await handleAssistantMessage(r.content);
|
|
220
|
+
* messages.push({ role: "user", content: results });
|
|
221
|
+
* }
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
declare function anthropicTools(box: SandboxInstance, options?: AnthropicToolPackOptions): AnthropicToolPack;
|
|
225
|
+
//#endregion
|
|
226
|
+
//#region src/agent/tools/fleet/_specs.d.ts
|
|
227
|
+
interface FleetToolHandlerContext {
|
|
228
|
+
client: SandboxClient;
|
|
229
|
+
}
|
|
230
|
+
interface FleetToolSpec<TArgs = Record<string, unknown>, TResult = unknown> {
|
|
231
|
+
name: string;
|
|
232
|
+
description: string;
|
|
233
|
+
inputSchema: ToolJSONSchema;
|
|
234
|
+
makeHandler: (ctx: FleetToolHandlerContext) => (args: TArgs) => Promise<TResult>;
|
|
235
|
+
}
|
|
236
|
+
declare const FLEET_TOOL_SPECS: {
|
|
237
|
+
readonly sandbox_fleet_spawn: FleetToolSpec<{
|
|
238
|
+
template_id: string;
|
|
239
|
+
workers: number;
|
|
240
|
+
metadata?: Record<string, string>;
|
|
241
|
+
}, unknown>;
|
|
242
|
+
readonly sandbox_fleet_dispatch: FleetToolSpec<{
|
|
243
|
+
fleet_id: string;
|
|
244
|
+
command: string;
|
|
245
|
+
machines?: string[];
|
|
246
|
+
timeout_ms?: number;
|
|
247
|
+
}, unknown>;
|
|
248
|
+
readonly sandbox_fleet_status: FleetToolSpec<{
|
|
249
|
+
fleet_id: string;
|
|
250
|
+
}, unknown>;
|
|
251
|
+
readonly sandbox_fleet_destroy: FleetToolSpec<{
|
|
252
|
+
fleet_id: string;
|
|
253
|
+
continue_on_error?: boolean;
|
|
254
|
+
}, unknown>;
|
|
255
|
+
};
|
|
256
|
+
type FleetToolName = keyof typeof FLEET_TOOL_SPECS;
|
|
257
|
+
//#endregion
|
|
258
|
+
//#region src/agent/tools/fleet/index.d.ts
|
|
259
|
+
interface FleetToolPackOptions {
|
|
260
|
+
/** Which fleet tools to expose. Defaults to all four. */
|
|
261
|
+
allow?: FleetToolName[];
|
|
262
|
+
}
|
|
263
|
+
interface AnthropicFleetTool {
|
|
264
|
+
name: string;
|
|
265
|
+
description: string;
|
|
266
|
+
input_schema: {
|
|
267
|
+
type: "object";
|
|
268
|
+
properties: Record<string, unknown>;
|
|
269
|
+
required?: string[];
|
|
270
|
+
additionalProperties?: boolean;
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
interface AnthropicFleetToolPack {
|
|
274
|
+
tools: AnthropicFleetTool[];
|
|
275
|
+
handleToolUse(block: {
|
|
276
|
+
type: "tool_use";
|
|
277
|
+
id: string;
|
|
278
|
+
name: string;
|
|
279
|
+
input: Record<string, unknown>;
|
|
280
|
+
}): Promise<{
|
|
281
|
+
type: "tool_result";
|
|
282
|
+
tool_use_id: string;
|
|
283
|
+
content: string;
|
|
284
|
+
is_error?: boolean;
|
|
285
|
+
}>;
|
|
286
|
+
}
|
|
287
|
+
declare function anthropicFleetTools(client: SandboxClient, options?: FleetToolPackOptions): AnthropicFleetToolPack;
|
|
288
|
+
interface OpenAIFleetTool {
|
|
289
|
+
type: "function";
|
|
290
|
+
function: {
|
|
291
|
+
name: string;
|
|
292
|
+
description: string;
|
|
293
|
+
parameters: {
|
|
294
|
+
type: "object";
|
|
295
|
+
properties: Record<string, unknown>;
|
|
296
|
+
required?: string[];
|
|
297
|
+
additionalProperties?: boolean;
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
interface OpenAIFleetToolPack {
|
|
302
|
+
tools: OpenAIFleetTool[];
|
|
303
|
+
handleToolCall(call: {
|
|
304
|
+
id: string;
|
|
305
|
+
type?: "function";
|
|
306
|
+
function: {
|
|
307
|
+
name: string;
|
|
308
|
+
arguments: string;
|
|
309
|
+
};
|
|
310
|
+
}): Promise<{
|
|
311
|
+
role: "tool";
|
|
312
|
+
tool_call_id: string;
|
|
313
|
+
content: string;
|
|
314
|
+
}>;
|
|
315
|
+
}
|
|
316
|
+
declare function openaiFleetTools(client: SandboxClient, options?: FleetToolPackOptions): OpenAIFleetToolPack;
|
|
317
|
+
declare function vercelAiFleetTools(client: SandboxClient, options?: FleetToolPackOptions): Promise<Record<string, unknown>>;
|
|
318
|
+
declare function mastraFleetTools(client: SandboxClient, options?: FleetToolPackOptions): Promise<Record<string, unknown>>;
|
|
319
|
+
//#endregion
|
|
320
|
+
//#region src/agent/tools/mastra.d.ts
|
|
321
|
+
interface MastraToolPackOptions {
|
|
322
|
+
allow?: ToolName[];
|
|
323
|
+
sessionId?: string;
|
|
324
|
+
}
|
|
325
|
+
type AnyTool$1 = unknown;
|
|
326
|
+
/**
|
|
327
|
+
* Build a Mastra tool pack bound to one sandbox.
|
|
328
|
+
*
|
|
329
|
+
* @example
|
|
330
|
+
* ```ts
|
|
331
|
+
* import { Agent } from "@mastra/core/agent";
|
|
332
|
+
* import { mastraTools } from "@tangle-network/sandbox/agent";
|
|
333
|
+
*
|
|
334
|
+
* const tools = await mastraTools(box, { sessionId: "s1" });
|
|
335
|
+
* const agent = new Agent({ name: "coder", instructions: "...", tools });
|
|
336
|
+
* await agent.generate("Plot sin(x).");
|
|
337
|
+
* ```
|
|
338
|
+
*/
|
|
339
|
+
declare function mastraTools(box: SandboxInstance, options?: MastraToolPackOptions): Promise<Record<string, AnyTool$1>>;
|
|
340
|
+
//#endregion
|
|
341
|
+
//#region src/agent/tools/openai.d.ts
|
|
342
|
+
interface OpenAITool {
|
|
343
|
+
type: "function";
|
|
344
|
+
function: {
|
|
345
|
+
name: string;
|
|
346
|
+
description: string;
|
|
347
|
+
parameters: {
|
|
348
|
+
type: "object";
|
|
349
|
+
properties: Record<string, unknown>;
|
|
350
|
+
required?: string[];
|
|
351
|
+
additionalProperties?: boolean;
|
|
352
|
+
};
|
|
353
|
+
};
|
|
354
|
+
}
|
|
355
|
+
interface OpenAIToolCall {
|
|
356
|
+
id: string;
|
|
357
|
+
type?: "function";
|
|
358
|
+
function: {
|
|
359
|
+
name: string;
|
|
360
|
+
arguments: string;
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
interface OpenAIToolResultMessage {
|
|
364
|
+
role: "tool";
|
|
365
|
+
tool_call_id: string;
|
|
366
|
+
content: string;
|
|
367
|
+
}
|
|
368
|
+
interface OpenAIToolPackOptions {
|
|
369
|
+
allow?: ToolName[];
|
|
370
|
+
sessionId?: string;
|
|
371
|
+
}
|
|
372
|
+
interface OpenAIToolPack {
|
|
373
|
+
tools: OpenAITool[];
|
|
374
|
+
/** Dispatch a single tool call into a Chat Completions tool message. */
|
|
375
|
+
handleToolCall(call: OpenAIToolCall): Promise<OpenAIToolResultMessage>;
|
|
376
|
+
/**
|
|
377
|
+
* Convenience: dispatch every tool_call on an assistant message in parallel.
|
|
378
|
+
*/
|
|
379
|
+
handleAssistantMessage(message: {
|
|
380
|
+
tool_calls?: OpenAIToolCall[];
|
|
381
|
+
}): Promise<OpenAIToolResultMessage[]>;
|
|
382
|
+
}
|
|
383
|
+
/**
|
|
384
|
+
* Build an OpenAI tool pack bound to one sandbox.
|
|
385
|
+
*
|
|
386
|
+
* @example
|
|
387
|
+
* ```ts
|
|
388
|
+
* import OpenAI from "openai";
|
|
389
|
+
* import { openaiTools } from "@tangle-network/sandbox/agent";
|
|
390
|
+
*
|
|
391
|
+
* const openai = new OpenAI();
|
|
392
|
+
* const { tools, handleAssistantMessage } = openaiTools(box, { sessionId: "s1" });
|
|
393
|
+
*
|
|
394
|
+
* const messages: any[] = [{ role: "user", content: "Plot sin(x) for x in [0, 2π]." }];
|
|
395
|
+
* for (let i = 0; i < 6; i++) {
|
|
396
|
+
* const r = await openai.chat.completions.create({
|
|
397
|
+
* model: "gpt-5.4", tools, messages,
|
|
398
|
+
* });
|
|
399
|
+
* const m = r.choices[0].message;
|
|
400
|
+
* messages.push(m);
|
|
401
|
+
* if (!m.tool_calls?.length) break;
|
|
402
|
+
* messages.push(...(await handleAssistantMessage(m)));
|
|
403
|
+
* }
|
|
404
|
+
* ```
|
|
405
|
+
*/
|
|
406
|
+
declare function openaiTools(box: SandboxInstance, options?: OpenAIToolPackOptions): OpenAIToolPack;
|
|
407
|
+
//#endregion
|
|
408
|
+
//#region src/agent/tools/vercel-ai.d.ts
|
|
409
|
+
interface VercelAiToolPackOptions {
|
|
410
|
+
allow?: ToolName[];
|
|
411
|
+
sessionId?: string;
|
|
412
|
+
}
|
|
413
|
+
type AnyTool = unknown;
|
|
414
|
+
/**
|
|
415
|
+
* Build a Vercel AI SDK tool pack bound to one sandbox. The returned object
|
|
416
|
+
* is a `Record<toolName, ai.Tool>` ready for `generateText({ tools })`.
|
|
417
|
+
*
|
|
418
|
+
* @example
|
|
419
|
+
* ```ts
|
|
420
|
+
* import { generateText } from "ai";
|
|
421
|
+
* import { anthropic } from "@ai-sdk/anthropic";
|
|
422
|
+
* import { vercelAiTools } from "@tangle-network/sandbox/agent";
|
|
423
|
+
*
|
|
424
|
+
* const tools = await vercelAiTools(box, { sessionId: "s1" });
|
|
425
|
+
* const { text } = await generateText({
|
|
426
|
+
* model: anthropic("claude-opus-4-7"),
|
|
427
|
+
* tools,
|
|
428
|
+
* prompt: "Plot sin(x) for x in [0, 2π].",
|
|
429
|
+
* maxSteps: 6,
|
|
430
|
+
* });
|
|
431
|
+
* ```
|
|
432
|
+
*/
|
|
433
|
+
declare function vercelAiTools(box: SandboxInstance, options?: VercelAiToolPackOptions): Promise<Record<string, AnyTool>>;
|
|
434
|
+
//#endregion
|
|
435
|
+
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_0x36f18d=a0_0xa7cc;(function(_0x3fc016,_0x568c4f){const _0x1a714e=a0_0xa7cc,_0x3db541=_0x3fc016();while(!![]){try{const _0x422bb8=-parseInt(_0x1a714e(0xd3))/0x1+parseInt(_0x1a714e(0x97))/0x2*(parseInt(_0x1a714e(0xce))/0x3)+parseInt(_0x1a714e(0x101))/0x4*(parseInt(_0x1a714e(0xd6))/0x5)+parseInt(_0x1a714e(0xc3))/0x6*(-parseInt(_0x1a714e(0xda))/0x7)+parseInt(_0x1a714e(0xe4))/0x8*(parseInt(_0x1a714e(0xea))/0x9)+-parseInt(_0x1a714e(0xfc))/0xa+-parseInt(_0x1a714e(0xc4))/0xb*(-parseInt(_0x1a714e(0xa2))/0xc);if(_0x422bb8===_0x568c4f)break;else _0x3db541['push'](_0x3db541['shift']());}catch(_0x4aba99){_0x3db541['push'](_0x3db541['shift']());}}}(a0_0x40cf,0xbdb99));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':a0_0x36f18d(0x10b),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x104),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x36f18d(0xb5),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x6c\x61\x6e\x67\x75\x61\x67\x65':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7),'\x65\x6e\x75\x6d':[a0_0x36f18d(0xd9),a0_0x36f18d(0xcd),'\x74\x79\x70\x65\x73\x63\x72\x69\x70\x74',a0_0x36f18d(0x10e)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x111)},'\x73\x6f\x75\x72\x63\x65':{'\x74\x79\x70\x65':'\x73\x74\x72\x69\x6e\x67','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0xaf)},'\x74\x69\x6d\x65\x6f\x75\x74\x5f\x6d\x73':{'\x74\x79\x70\x65':a0_0x36f18d(0x8f),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':'\x50\x65\x72\x2d\x63\x61\x6c\x6c\x20\x74\x69\x6d\x65\x6f\x75\x74\x2e\x20\x30\x20\x64\x69\x73\x61\x62\x6c\x65\x73\x2e\x20\x44\x65\x66\x61\x75\x6c\x74\x20\x36\x30\x30\x30\x30\x2e'}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x36f18d(0x86),a0_0x36f18d(0x105)],'\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:_0x2f6bef,sessionId:_0x50540d})=>async _0x367a11=>{const _0xb34b18=a0_0x36f18d;return await _0x2f6bef[_0xb34b18(0xa6)](_0x367a11[_0xb34b18(0x86)],_0x367a11[_0xb34b18(0x105)],{'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x50540d,'\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73':_0x367a11[_0xb34b18(0x84)]});}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x65\x78\x65\x63':{'\x6e\x61\x6d\x65':'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x65\x78\x65\x63','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x8a),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x36f18d(0xb5),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x63\x6f\x6d\x6d\x61\x6e\x64':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0xd8)},'\x63\x77\x64':{'\x74\x79\x70\x65':'\x73\x74\x72\x69\x6e\x67','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x93)},'\x74\x69\x6d\x65\x6f\x75\x74\x5f\x6d\x73':{'\x74\x79\x70\x65':a0_0x36f18d(0x8f),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0xdb)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x36f18d(0x7e)],'\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:_0x3ff737,sessionId:_0x4aa9dc})=>async _0x4bbc4e=>{const _0x1a082e=a0_0x36f18d;return await _0x3ff737[_0x1a082e(0xcc)](_0x4bbc4e[_0x1a082e(0x7e)],{'\x63\x77\x64':_0x4bbc4e[_0x1a082e(0x9b)],'\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73':_0x4bbc4e['\x74\x69\x6d\x65\x6f\x75\x74\x5f\x6d\x73'],'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x4aa9dc});}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x72\x65\x61\x64':{'\x6e\x61\x6d\x65':'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x72\x65\x61\x64','\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_0x36f18d(0xb5),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x70\x61\x74\x68':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x36f18d(0xb6)],'\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:_0x451694,sessionId:_0x275b1d})=>async _0x11f867=>{const _0x5c62bf=a0_0x36f18d;return{'\x63\x6f\x6e\x74\x65\x6e\x74':await _0x451694[_0x5c62bf(0x9f)](_0x11f867['\x70\x61\x74\x68'],{'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x275b1d})};}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x77\x72\x69\x74\x65':{'\x6e\x61\x6d\x65':a0_0x36f18d(0x82),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x96),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x36f18d(0xb5),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x70\x61\x74\x68':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7)},'\x63\x6f\x6e\x74\x65\x6e\x74':{'\x74\x79\x70\x65':'\x73\x74\x72\x69\x6e\x67','\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x99)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x36f18d(0xb6),'\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:_0x4763eb})=>async _0x4eb9f1=>{const _0x390d7f=a0_0x36f18d;return await _0x4763eb['\x77\x72\x69\x74\x65'](_0x4eb9f1[_0x390d7f(0xb6)],_0x4eb9f1[_0x390d7f(0xca)]),{'\x6f\x6b':!![]};}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x6c\x69\x73\x74':{'\x6e\x61\x6d\x65':a0_0x36f18d(0x89),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x85),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x36f18d(0xb5),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x70\x61\x74\x68':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7)}},'\x72\x65\x71\x75\x69\x72\x65\x64':['\x70\x61\x74\x68'],'\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:_0x212c6e})=>async _0x239432=>{const _0x1d3c5c=a0_0x36f18d;return{'\x65\x6e\x74\x72\x69\x65\x73':await _0x212c6e['\x66\x73'][_0x1d3c5c(0xc7)](_0x239432[_0x1d3c5c(0xb6)])};}},'\x73\x61\x6e\x64\x62\x6f\x78\x5f\x73\x65\x61\x72\x63\x68':{'\x6e\x61\x6d\x65':a0_0x36f18d(0x87),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':'\x52\x69\x70\x67\x72\x65\x70\x2d\x73\x74\x79\x6c\x65\x20\x63\x6f\x64\x65\x20\x73\x65\x61\x72\x63\x68\x2e\x20\x52\x65\x74\x75\x72\x6e\x73\x20\x6d\x61\x74\x63\x68\x69\x6e\x67\x20\x6c\x69\x6e\x65\x73\x20\x77\x69\x74\x68\x20\x73\x75\x72\x72\x6f\x75\x6e\x64\x69\x6e\x67\x20\x63\x6f\x6e\x74\x65\x78\x74\x2e','\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':'\x6f\x62\x6a\x65\x63\x74','\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x70\x61\x74\x74\x65\x72\x6e':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0xfb)},'\x70\x61\x74\x68':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0xb3)},'\x6d\x61\x78\x5f\x72\x65\x73\x75\x6c\x74\x73':{'\x74\x79\x70\x65':a0_0x36f18d(0x8f),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':'\x43\x61\x70\x2e\x20\x44\x65\x66\x61\x75\x6c\x74\x20\x31\x30\x30\x2e'}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x36f18d(0xa1)],'\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:_0x1d8d1f})=>async _0x43d1a5=>{const _0x2736d8=a0_0x36f18d,_0x8e35a7={'\x65\x63\x69\x42\x6e':function(_0x152718,_0x3f8c3f){return _0x152718>=_0x3f8c3f;}},_0x574176=[],_0x10e975=_0x43d1a5['\x6d\x61\x78\x5f\x72\x65\x73\x75\x6c\x74\x73']??0x64;for await(const _0xe49267 of _0x1d8d1f[_0x2736d8(0xe1)](_0x43d1a5[_0x2736d8(0xa1)],{'\x63\x77\x64':_0x43d1a5[_0x2736d8(0xb6)],'\x6d\x61\x78\x52\x65\x73\x75\x6c\x74\x73':_0x10e975})){_0x574176['\x70\x75\x73\x68'](_0xe49267);if(_0x8e35a7['\x65\x63\x69\x42\x6e'](_0x574176[_0x2736d8(0xba)],_0x10e975))break;}return{'\x6d\x61\x74\x63\x68\x65\x73':_0x574176};}}},ALL_TOOL_SPECS=Object[a0_0x36f18d(0xdd)](TOOL_SPECS);function a0_0xa7cc(_0x584b4d,_0xae06de){_0x584b4d=_0x584b4d-0x7b;const _0x40cf3e=a0_0x40cf();let _0xa7cce6=_0x40cf3e[_0x584b4d];if(a0_0xa7cc['\x5a\x66\x69\x41\x53\x72']===undefined){var _0x4488d9=function(_0xf3bf4a){const _0x4be7da='\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 _0x1e79ae='',_0x964ccd='';for(let _0x3d6daa=0x0,_0x46cdd4,_0x1baa98,_0x1b8722=0x0;_0x1baa98=_0xf3bf4a['\x63\x68\x61\x72\x41\x74'](_0x1b8722++);~_0x1baa98&&(_0x46cdd4=_0x3d6daa%0x4?_0x46cdd4*0x40+_0x1baa98:_0x1baa98,_0x3d6daa++%0x4)?_0x1e79ae+=String['\x66\x72\x6f\x6d\x43\x68\x61\x72\x43\x6f\x64\x65'](0xff&_0x46cdd4>>(-0x2*_0x3d6daa&0x6)):0x0){_0x1baa98=_0x4be7da['\x69\x6e\x64\x65\x78\x4f\x66'](_0x1baa98);}for(let _0x2e7254=0x0,_0x38ef0e=_0x1e79ae['\x6c\x65\x6e\x67\x74\x68'];_0x2e7254<_0x38ef0e;_0x2e7254++){_0x964ccd+='\x25'+('\x30\x30'+_0x1e79ae['\x63\x68\x61\x72\x43\x6f\x64\x65\x41\x74'](_0x2e7254)['\x74\x6f\x53\x74\x72\x69\x6e\x67'](0x10))['\x73\x6c\x69\x63\x65'](-0x2);}return decodeURIComponent(_0x964ccd);};a0_0xa7cc['\x4a\x66\x6f\x54\x4f\x77']=_0x4488d9,a0_0xa7cc['\x70\x6f\x69\x69\x78\x76']={},a0_0xa7cc['\x5a\x66\x69\x41\x53\x72']=!![];}const _0x3ccffa=_0x40cf3e[0x0],_0x46ee49=_0x584b4d+_0x3ccffa,_0x42576d=a0_0xa7cc['\x70\x6f\x69\x69\x78\x76'][_0x46ee49];return!_0x42576d?(_0xa7cce6=a0_0xa7cc['\x4a\x66\x6f\x54\x4f\x77'](_0xa7cce6),a0_0xa7cc['\x70\x6f\x69\x69\x78\x76'][_0x46ee49]=_0xa7cce6):_0xa7cce6=_0x42576d,_0xa7cce6;}function selectSpecs(_0x3764e5){const _0x5b33aa=a0_0x36f18d,_0x328305={'\x6c\x57\x4d\x62\x57':function(_0xa2f06e,_0x1d71aa){return _0xa2f06e===_0x1d71aa;}};if(!_0x3764e5||_0x328305[_0x5b33aa(0xab)](_0x3764e5[_0x5b33aa(0xba)],0x0))return ALL_TOOL_SPECS;const _0x3a4d4a=new Set(_0x3764e5);return Object['\x6b\x65\x79\x73'](TOOL_SPECS)[_0x5b33aa(0xf0)](_0x2016d2=>_0x3a4d4a[_0x5b33aa(0xf4)](_0x2016d2))[_0x5b33aa(0xb9)](_0x415034=>TOOL_SPECS[_0x415034]);}function serializeToolResult(_0xbfb92f){const _0x1e3439=a0_0x36f18d,_0x39794e={'\x46\x49\x46\x64\x72':function(_0xa5c0c1,_0x18cfc5){return _0xa5c0c1===_0x18cfc5;}};if(_0x39794e[_0x1e3439(0xeb)](typeof _0xbfb92f,'\x73\x74\x72\x69\x6e\x67'))return _0xbfb92f;try{return JSON[_0x1e3439(0xa3)](_0xbfb92f,null,0x2);}catch{return String(_0xbfb92f);}}const SDK_VERSION=((()=>{const _0x1c24e8=a0_0x36f18d,_0x43d39d={'\x61\x45\x72\x57\x72':function(_0x49aae0,_0x3a7cbe){return _0x49aae0(_0x3a7cbe);},'\x4e\x70\x47\x43\x54':_0x1c24e8(0x108)};try{return _0x43d39d[_0x1c24e8(0x9d)](createRequire,import.meta.url)(_0x1c24e8(0x81))[_0x1c24e8(0x80)]??_0x43d39d[_0x1c24e8(0xdf)];}catch{return _0x1c24e8(0x108);}})());async function createMcpServer(_0x5afd4d,_0x775bfa={}){const _0x2aaa5a=a0_0x36f18d,_0x95cce9={'\x77\x68\x5a\x70\x52':function(_0x16e0fb,_0x3749fd){return _0x16e0fb(_0x3749fd);},'\x6d\x71\x55\x54\x58':function(_0x1f7973,_0x23259b){return _0x1f7973 instanceof _0x23259b;},'\x54\x74\x58\x47\x4e':_0x2aaa5a(0x110),'\x4d\x53\x52\x59\x51':_0x2aaa5a(0x117),'\x56\x79\x44\x4b\x70':'\x63\x72\x65\x61\x74\x65\x4d\x63\x70\x53\x65\x72\x76\x65\x72\x28\x29\x3a\x20\x74\x68\x65\x20\x60\x40\x6d\x6f\x64\x65\x6c\x63\x6f\x6e\x74\x65\x78\x74\x70\x72\x6f\x74\x6f\x63\x6f\x6c\x2f\x73\x64\x6b\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\x40\x6d\x6f\x64\x65\x6c\x63\x6f\x6e\x74\x65\x78\x74\x70\x72\x6f\x74\x6f\x63\x6f\x6c\x2f\x73\x64\x6b\x60\x2e'};let _0x18feeb,_0x374932;try{[_0x18feeb,_0x374932]=await Promise[_0x2aaa5a(0xff)]([import(_0x95cce9['\x54\x74\x58\x47\x4e']),import(_0x95cce9[_0x2aaa5a(0xf3)])]);}catch{throw new Error(_0x95cce9[_0x2aaa5a(0xdc)]);}const _0x1e58e6=selectSpecs(_0x775bfa[_0x2aaa5a(0xac)]),_0xe1203e={'\x62\x6f\x78':_0x5afd4d,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x775bfa['\x73\x65\x73\x73\x69\x6f\x6e\x49\x64']},_0x2050c3=new Map();for(const _0x222340 of _0x1e58e6)_0x2050c3['\x73\x65\x74'](_0x222340[_0x2aaa5a(0xde)],_0x222340[_0x2aaa5a(0xa8)](_0xe1203e));const _0x56f7f7=new _0x18feeb['\x53\x65\x72\x76\x65\x72']({'\x6e\x61\x6d\x65':_0x775bfa['\x6e\x61\x6d\x65']??'\x74\x61\x6e\x67\x6c\x65\x2d\x73\x61\x6e\x64\x62\x6f\x78','\x76\x65\x72\x73\x69\x6f\x6e':_0x775bfa['\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 _0x56f7f7[_0x2aaa5a(0xd4)](_0x374932['\x4c\x69\x73\x74\x54\x6f\x6f\x6c\x73\x52\x65\x71\x75\x65\x73\x74\x53\x63\x68\x65\x6d\x61'],async()=>({'\x74\x6f\x6f\x6c\x73':_0x1e58e6[_0x2aaa5a(0xb9)](_0x3b6d4a=>({'\x6e\x61\x6d\x65':_0x3b6d4a[_0x2aaa5a(0xde)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x3b6d4a[_0x2aaa5a(0xd1)],'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':_0x3b6d4a[_0x2aaa5a(0x102)]}))})),_0x56f7f7['\x73\x65\x74\x52\x65\x71\x75\x65\x73\x74\x48\x61\x6e\x64\x6c\x65\x72'](_0x374932[_0x2aaa5a(0x119)],async _0x1e33d8=>{const _0x4c03a8=_0x2aaa5a,_0x192f07=_0x1e33d8,_0x28182e=_0x2050c3[_0x4c03a8(0xa7)](_0x192f07[_0x4c03a8(0xd5)][_0x4c03a8(0xde)]);if(!_0x28182e)return{'\x69\x73\x45\x72\x72\x6f\x72':!![],'\x63\x6f\x6e\x74\x65\x6e\x74':[{'\x74\x79\x70\x65':_0x4c03a8(0xaa),'\x74\x65\x78\x74':_0x4c03a8(0xb4)+_0x192f07[_0x4c03a8(0xd5)]['\x6e\x61\x6d\x65']}]};try{return{'\x63\x6f\x6e\x74\x65\x6e\x74':[{'\x74\x79\x70\x65':_0x4c03a8(0xaa),'\x74\x65\x78\x74':serializeToolResult(await _0x95cce9['\x77\x68\x5a\x70\x52'](_0x28182e,_0x192f07['\x70\x61\x72\x61\x6d\x73'][_0x4c03a8(0xbc)]??{}))}]};}catch(_0x37cb2d){return{'\x69\x73\x45\x72\x72\x6f\x72':!![],'\x63\x6f\x6e\x74\x65\x6e\x74':[{'\x74\x79\x70\x65':_0x4c03a8(0xaa),'\x74\x65\x78\x74':_0x95cce9[_0x4c03a8(0x8b)](_0x37cb2d,Error)?_0x37cb2d[_0x4c03a8(0xe0)]:String(_0x37cb2d)}]};}}),{'\x73\x65\x72\x76\x65\x72':_0x56f7f7,'\x63\x6f\x6e\x6e\x65\x63\x74':_0x6ebb5b=>_0x56f7f7[_0x2aaa5a(0xf6)](_0x6ebb5b),'\x63\x6c\x6f\x73\x65':()=>_0x56f7f7[_0x2aaa5a(0x107)]()};}function runCode(_0x5bf8fb,_0x4890ac,_0x3a959b,_0x83defb){const _0x4dd1b7=a0_0x36f18d;return _0x5bf8fb[_0x4dd1b7(0xa6)](_0x4890ac,_0x3a959b,_0x83defb);}function anthropicTools(_0x4e9c34,_0x35cce9={}){const _0x135a5b=a0_0x36f18d,_0x477aa7={'\x66\x54\x65\x77\x64':function(_0x2ab346,_0x4a57ab){return _0x2ab346(_0x4a57ab);}},_0x3008ed=selectSpecs(_0x35cce9[_0x135a5b(0xac)]),_0x52fd46={'\x62\x6f\x78':_0x4e9c34,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x35cce9[_0x135a5b(0xc9)]},_0x364d37=new Map();for(const _0x3879d7 of _0x3008ed)_0x364d37[_0x135a5b(0x90)](_0x3879d7[_0x135a5b(0xde)],_0x3879d7['\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72'](_0x52fd46));const _0x5f53cd=_0x3008ed[_0x135a5b(0xb9)](_0x299446=>({'\x6e\x61\x6d\x65':_0x299446[_0x135a5b(0xde)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x299446['\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e'],'\x69\x6e\x70\x75\x74\x5f\x73\x63\x68\x65\x6d\x61':_0x299446['\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61']}));async function _0x2c8973(_0x38e65e){const _0x37213c=_0x135a5b,_0x97bd3d=_0x364d37[_0x37213c(0xa7)](_0x38e65e[_0x37213c(0xde)]);if(!_0x97bd3d)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':_0x38e65e['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':'\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x74\x6f\x6f\x6c\x3a\x20'+_0x38e65e[_0x37213c(0xde)],'\x69\x73\x5f\x65\x72\x72\x6f\x72':!![]};try{const _0x5150e6=await _0x97bd3d(_0x38e65e[_0x37213c(0xb2)]);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':_0x38e65e['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':_0x477aa7[_0x37213c(0xf2)](toAnthropicContent,_0x5150e6)};}catch(_0x513ded){return{'\x74\x79\x70\x65':_0x37213c(0xb1),'\x74\x6f\x6f\x6c\x5f\x75\x73\x65\x5f\x69\x64':_0x38e65e['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':_0x513ded instanceof Error?_0x513ded[_0x37213c(0xe0)]:_0x477aa7[_0x37213c(0xf2)](String,_0x513ded),'\x69\x73\x5f\x65\x72\x72\x6f\x72':!![]};}}async function _0x5a6653(_0xc48c26){const _0x746b3f=_0x135a5b,_0x535433=_0xc48c26[_0x746b3f(0xf0)](_0x4c34bb=>typeof _0x4c34bb===_0x746b3f(0xb5)&&_0x4c34bb!==null&&_0x4c34bb[_0x746b3f(0xf8)]===_0x746b3f(0x8c));return Promise[_0x746b3f(0xff)](_0x535433['\x6d\x61\x70'](_0x2c8973));}return{'\x74\x6f\x6f\x6c\x73':_0x5f53cd,'\x68\x61\x6e\x64\x6c\x65\x54\x6f\x6f\x6c\x55\x73\x65':_0x2c8973,'\x68\x61\x6e\x64\x6c\x65\x41\x73\x73\x69\x73\x74\x61\x6e\x74\x4d\x65\x73\x73\x61\x67\x65':_0x5a6653};}function toAnthropicContent(_0x3573c0){const _0x24808d=a0_0x36f18d,_0x25053c={'\x57\x79\x48\x75\x49':function(_0x33ff00,_0x3b19c5){return _0x33ff00(_0x3b19c5);},'\x53\x5a\x65\x4a\x4e':function(_0x179fed,_0x1d96f7){return _0x179fed(_0x1d96f7);},'\x71\x4c\x4d\x53\x79':function(_0x16d462,_0xca7562){return _0x16d462(_0xca7562);},'\x70\x56\x6b\x46\x6d':_0x24808d(0xc0),'\x7a\x7a\x61\x48\x69':function(_0x45ff49,_0x1aff6f){return _0x45ff49(_0x1aff6f);}};if(!_0x25053c[_0x24808d(0xf9)](isCodeExecutionResultWithImages,_0x3573c0))return _0x25053c[_0x24808d(0x9c)](serializeToolResult,_0x3573c0);const _0x4a72c3=[],_0x1b3ff3={..._0x3573c0,'\x72\x65\x73\x75\x6c\x74\x73':_0x3573c0['\x72\x65\x73\x75\x6c\x74\x73']['\x66\x69\x6c\x74\x65\x72'](_0x782b46=>_0x782b46['\x74\x79\x70\x65']!==_0x24808d(0x8e))};_0x4a72c3[_0x24808d(0xb8)]({'\x74\x79\x70\x65':_0x24808d(0xaa),'\x74\x65\x78\x74':_0x25053c[_0x24808d(0xf9)](serializeToolResult,_0x1b3ff3)});for(const _0x212cdc of _0x3573c0[_0x24808d(0xbb)])if(_0x25053c[_0x24808d(0x98)](isImagePart,_0x212cdc))_0x4a72c3['\x70\x75\x73\x68']({'\x74\x79\x70\x65':_0x24808d(0x8e),'\x73\x6f\x75\x72\x63\x65':{'\x74\x79\x70\x65':_0x25053c[_0x24808d(0xc6)],'\x6d\x65\x64\x69\x61\x5f\x74\x79\x70\x65':_0x25053c[_0x24808d(0xbd)](imageMediaType,_0x212cdc[_0x24808d(0xa4)]),'\x64\x61\x74\x61':_0x212cdc[_0x24808d(0x9a)]}});return _0x4a72c3;}function isImagePart(_0x4447b7){const _0x41cd1c=a0_0x36f18d,_0x57a33f={'\x49\x6a\x72\x71\x45':_0x41cd1c(0x8e)};return _0x4447b7['\x74\x79\x70\x65']===_0x57a33f['\x49\x6a\x72\x71\x45'];}function a0_0x40cf(){const _0x11826c=['\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\x67\x66\x30\x44\x67\x76\x59\x42\x47','\x6d\x74\x6a\x55\x44\x65\x7a\x59\x74\x66\x69','\x43\x33\x72\x59\x41\x77\x35\x4e\x41\x77\x7a\x35','\x7a\x4d\x39\x59\x42\x77\x66\x30','\x77\x4e\x66\x4c\x7a\x67\x34','\x43\x4e\x76\x55\x71\x32\x39\x4b\x7a\x71','\x7a\x32\x76\x30','\x42\x77\x66\x52\x7a\x75\x48\x48\x42\x4d\x72\x53\x7a\x78\x69','\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','\x44\x67\x76\x34\x44\x61','\x42\x66\x44\x6e\x79\x4c\x43','\x79\x77\x58\x53\x42\x33\x43','\x43\x77\x39\x49\x72\x4b\x6d','\x44\x67\x39\x56\x42\x66\x39\x4a\x79\x77\x58\x53\x43\x57','\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','\x7a\x4d\x58\x4c\x7a\x78\x72\x5a','\x44\x67\x39\x56\x42\x66\x39\x59\x7a\x78\x6e\x31\x42\x68\x71','\x41\x77\x35\x57\x44\x78\x71','\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','\x76\x77\x35\x52\x42\x4d\x39\x33\x42\x49\x62\x30\x42\x32\x39\x53\x6f\x49\x61','\x42\x32\x6a\x51\x7a\x77\x6e\x30','\x43\x67\x66\x30\x41\x61','\x43\x33\x72\x59\x41\x77\x35\x4e','\x43\x68\x76\x5a\x41\x61','\x42\x77\x66\x57','\x42\x67\x76\x55\x7a\x33\x72\x4f','\x43\x4d\x76\x5a\x44\x77\x58\x30\x43\x57','\x79\x78\x6a\x4e\x44\x77\x31\x4c\x42\x4e\x72\x5a','\x45\x4e\x50\x48\x73\x67\x4b','\x76\x4c\x66\x4d\x76\x67\x79','\x7a\x4e\x76\x55\x79\x33\x72\x50\x42\x32\x34','\x79\x4d\x66\x5a\x7a\x74\x79\x30','\x41\x4e\x62\x4c\x7a\x57','\x41\x4d\x48\x4f\x74\x32\x47','\x6d\x4a\x69\x31\x6e\x64\x6a\x62\x77\x76\x62\x33\x74\x32\x4b','\x6d\x74\x61\x57\x6d\x4a\x47\x57\x6e\x4a\x6a\x6f\x41\x33\x6a\x76\x42\x65\x38','\x43\x67\x66\x59\x43\x32\x75','\x43\x66\x7a\x52\x72\x4d\x30','\x42\x67\x4c\x5a\x44\x61','\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','\x43\x32\x76\x5a\x43\x32\x4c\x56\x42\x4b\x4c\x4b','\x79\x32\x39\x55\x44\x67\x76\x55\x44\x61','\x44\x67\x76\x54\x43\x67\x58\x48\x44\x67\x76\x46\x41\x77\x71','\x7a\x78\x48\x4c\x79\x57','\x42\x4d\x39\x4b\x7a\x71','\x6d\x74\x75\x58\x6d\x5a\x4b\x58\x6e\x30\x72\x58\x79\x4b\x66\x75\x42\x71','\x43\x32\x39\x54\x7a\x71','\x73\x75\x4c\x64\x42\x33\x71','\x7a\x67\x76\x5a\x79\x33\x6a\x50\x43\x68\x72\x50\x42\x32\x34','\x72\x4b\x66\x68\x71\x4e\x4b','\x6d\x74\x69\x31\x6e\x74\x6d\x31\x6e\x77\x50\x79\x77\x67\x35\x57\x45\x71','\x43\x32\x76\x30\x75\x4d\x76\x58\x44\x77\x76\x5a\x44\x65\x48\x48\x42\x4d\x72\x53\x7a\x78\x69','\x43\x67\x66\x59\x79\x77\x31\x5a','\x6e\x75\x6a\x4a\x45\x77\x4c\x6d\x75\x47','\x79\x33\x6a\x4c\x79\x78\x72\x4c\x76\x67\x39\x56\x42\x61','\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','\x43\x68\x4c\x30\x41\x67\x39\x55','\x6d\x4a\x69\x30\x6e\x33\x48\x33\x45\x4d\x48\x4b\x41\x57','\x72\x67\x76\x4d\x79\x78\x76\x53\x44\x63\x61\x32\x6d\x64\x61\x57\x6d\x63\x34','\x76\x4e\x4c\x65\x73\x33\x61','\x44\x4d\x66\x53\x44\x77\x76\x5a','\x42\x4d\x66\x54\x7a\x71','\x74\x4e\x62\x68\x71\x31\x71','\x42\x77\x76\x5a\x43\x32\x66\x4e\x7a\x71','\x43\x32\x76\x48\x43\x4d\x6e\x4f','\x44\x32\x39\x59\x41\x32\x76\x59\x6c\x71','\x79\x78\x6a\x59\x79\x78\x4b','\x6e\x64\x69\x57\x6f\x64\x6d\x59\x6f\x68\x6e\x55\x45\x78\x62\x54\x41\x47','\x41\x78\x6e\x62\x43\x4e\x6a\x48\x45\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','\x79\x4d\x39\x56\x42\x67\x76\x48\x42\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','\x44\x67\x39\x56\x42\x61','\x6d\x74\x48\x4b\x71\x32\x39\x70\x71\x4d\x4b','\x72\x4b\x4c\x67\x7a\x68\x69','\x43\x33\x7a\x4e','\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','\x41\x4e\x6e\x56\x42\x4c\x6e\x4a\x41\x67\x76\x54\x79\x71','\x7a\x4d\x58\x4c\x7a\x78\x72\x46\x41\x77\x71','\x7a\x4d\x4c\x53\x44\x67\x76\x59','\x7a\x67\x4c\x5a\x43\x67\x66\x30\x79\x32\x48\x66\x45\x67\x76\x4a','\x7a\x4c\x72\x4c\x44\x32\x71','\x74\x76\x6e\x73\x77\x76\x65','\x41\x67\x66\x5a','\x41\x77\x72\x5a','\x79\x32\x39\x55\x42\x4d\x76\x4a\x44\x61','\x41\x4c\x6a\x5a\x7a\x31\x75','\x44\x68\x4c\x57\x7a\x71','\x76\x33\x4c\x69\x44\x75\x4b','\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\x4d\x76\x4e\x7a\x78\x47\x47\x43\x67\x66\x30\x44\x67\x76\x59\x42\x49\x34','\x6e\x64\x6d\x32\x6d\x5a\x65\x57\x79\x4e\x72\x56\x75\x68\x48\x4d','\x43\x66\x50\x6d\x41\x68\x69','\x71\x67\x31\x48\x43\x33\x72\x59\x79\x73\x39\x4a\x42\x33\x6a\x4c','\x79\x77\x58\x53','\x71\x32\x39\x55\x44\x67\x4c\x55\x44\x77\x75\x47\x7a\x67\x76\x53\x7a\x78\x72\x50\x42\x4d\x43\x47\x43\x4d\x76\x54\x79\x77\x4c\x55\x41\x77\x35\x4e\x69\x67\x31\x48\x79\x32\x48\x50\x42\x4d\x76\x5a\x69\x67\x4c\x4d\x69\x67\x39\x55\x7a\x73\x62\x4d\x79\x77\x4c\x53\x43\x59\x34','\x6d\x5a\x69\x31\x6e\x64\x4b\x5a\x6d\x4b\x4c\x51\x77\x4e\x72\x55\x7a\x47','\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','\x72\x78\x48\x4c\x79\x33\x76\x30\x7a\x73\x62\x4a\x42\x32\x72\x4c\x69\x67\x4c\x55\x69\x67\x65\x47\x43\x67\x76\x59\x43\x32\x4c\x5a\x44\x67\x76\x55\x44\x63\x62\x53\x79\x77\x35\x4e\x44\x77\x66\x4e\x7a\x73\x62\x52\x7a\x78\x6a\x55\x7a\x77\x57\x47\x41\x77\x35\x5a\x41\x77\x72\x4c\x69\x68\x72\x4f\x7a\x73\x62\x5a\x79\x77\x35\x4b\x79\x4d\x39\x34\x6c\x49\x62\x77\x79\x78\x6a\x50\x79\x77\x6a\x53\x7a\x78\x6d\x47\x43\x67\x76\x59\x43\x32\x4c\x5a\x44\x63\x62\x48\x79\x33\x6a\x56\x43\x33\x6d\x47\x79\x32\x66\x53\x42\x68\x6d\x47\x44\x32\x4c\x30\x41\x63\x62\x30\x41\x67\x75\x47\x43\x32\x66\x54\x7a\x73\x62\x5a\x7a\x78\x6e\x5a\x41\x77\x39\x55\x6c\x49\x62\x73\x7a\x78\x72\x31\x43\x4d\x35\x5a\x69\x68\x6e\x30\x7a\x67\x39\x31\x44\x63\x57\x47\x43\x33\x72\x4b\x7a\x78\x6a\x59\x6c\x63\x62\x4c\x45\x67\x4c\x30\x69\x67\x6e\x56\x7a\x67\x75\x53\x69\x67\x66\x55\x7a\x63\x62\x48\x69\x68\x72\x35\x43\x67\x76\x4b\x69\x67\x62\x59\x7a\x78\x6e\x31\x42\x68\x72\x5a\x79\x63\x62\x48\x43\x4e\x6a\x48\x45\x73\x62\x4a\x42\x32\x35\x30\x79\x77\x4c\x55\x41\x77\x35\x4e\x69\x67\x31\x48\x44\x68\x62\x53\x42\x33\x72\x53\x41\x77\x69\x47\x7a\x4d\x4c\x4e\x44\x78\x6a\x4c\x43\x59\x61\x4f\x79\x4d\x66\x5a\x7a\x74\x79\x30\x69\x66\x62\x6f\x72\x59\x4b\x53\x69\x68\x62\x48\x42\x4d\x72\x48\x43\x59\x62\x65\x79\x78\x72\x48\x72\x4e\x6a\x48\x42\x77\x76\x5a\x6c\x63\x62\x6b\x75\x30\x39\x6f\x69\x68\x7a\x50\x79\x73\x62\x4b\x41\x78\x6e\x57\x42\x67\x66\x35\x6b\x63\x4b\x53\x69\x67\x39\x59\x69\x67\x76\x59\x43\x4d\x39\x59\x43\x59\x34\x47\x75\x68\x6a\x4c\x7a\x4d\x76\x59\x69\x68\x72\x4f\x41\x78\x6d\x47\x42\x33\x7a\x4c\x43\x49\x62\x5a\x79\x77\x35\x4b\x79\x4d\x39\x34\x78\x32\x76\x34\x7a\x77\x6d\x47\x7a\x4d\x39\x59\x69\x67\x66\x55\x45\x73\x62\x4a\x42\x32\x72\x4c\x69\x68\x72\x4f\x79\x78\x71\x47\x42\x4d\x76\x4c\x7a\x68\x6d\x47\x43\x33\x72\x59\x44\x77\x6e\x30\x44\x78\x6a\x4c\x7a\x63\x62\x56\x44\x78\x72\x57\x44\x78\x71\x55','\x43\x32\x39\x31\x43\x4d\x6e\x4c','\x79\x32\x39\x55\x44\x67\x76\x34\x44\x61','\x79\x32\x58\x56\x43\x32\x75','\x6d\x63\x34\x57\x6c\x4a\x61','\x44\x77\x6a\x52\x76\x66\x65','\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','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x59\x44\x77\x35\x46\x79\x32\x39\x4b\x7a\x71','\x41\x77\x31\x48\x7a\x32\x75\x56\x43\x67\x35\x4e','\x7a\x67\x48\x52\x42\x68\x4b','\x79\x4d\x66\x5a\x41\x61','\x76\x31\x4c\x51\x72\x76\x71','\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','\x73\x32\x76\x59\x42\x4d\x76\x53\x69\x67\x58\x48\x42\x4d\x44\x31\x79\x77\x44\x4c\x6c\x47','\x44\x4d\x76\x59\x79\x32\x76\x53\x71\x77\x4c\x75\x42\x32\x39\x53\x43\x59\x47\x50\x6f\x49\x62\x30\x41\x67\x75\x47\x79\x67\x66\x50\x79\x63\x62\x57\x79\x77\x6e\x52\x79\x77\x44\x4c\x69\x67\x4c\x5a\x69\x67\x35\x56\x44\x63\x62\x50\x42\x4e\x6e\x30\x79\x77\x58\x53\x7a\x77\x71\x55\x69\x65\x4c\x55\x43\x33\x72\x48\x42\x67\x57\x47\x41\x78\x71\x47\x44\x4d\x4c\x48\x69\x67\x62\x57\x42\x4e\x62\x54\x69\x67\x66\x4b\x7a\x63\x62\x48\x41\x77\x61\x47\x6b\x67\x66\x55\x7a\x63\x62\x57\x41\x77\x6e\x52\x69\x67\x66\x55\x69\x67\x62\x61\x79\x77\x4b\x54\x43\x32\x72\x52\x6c\x59\x50\x47\x69\x67\x31\x56\x7a\x67\x76\x53\x69\x67\x66\x4b\x79\x78\x62\x30\x7a\x78\x69\x50\x6c\x47','\x72\x76\x4c\x70\x73\x65\x71','\x42\x4b\x6a\x56\x72\x68\x65','\x42\x65\x44\x56\x75\x77\x53','\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','\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','\x76\x78\x44\x73\x44\x4d\x43','\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','\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','\x45\x77\x35\x68\x44\x75\x34','\x44\x32\x39\x59\x41\x32\x76\x59\x43\x57','\x79\x32\x39\x54\x42\x77\x66\x55\x7a\x61','\x74\x67\x4c\x5a\x44\x63\x62\x30\x41\x67\x75\x47\x7a\x4d\x58\x4c\x7a\x78\x71\x4e\x43\x59\x62\x54\x79\x77\x6e\x4f\x41\x77\x35\x4c\x43\x59\x62\x48\x42\x4d\x71\x47\x44\x67\x48\x4c\x41\x78\x69\x47\x43\x67\x76\x59\x6c\x77\x31\x48\x79\x32\x48\x50\x42\x4d\x75\x47\x43\x33\x72\x48\x44\x67\x75\x47\x6b\x68\x6a\x31\x42\x4d\x35\x50\x42\x4d\x43\x47\x6c\x59\x62\x5a\x44\x67\x39\x57\x43\x67\x76\x4b\x69\x63\x38\x47\x7a\x4d\x66\x50\x42\x67\x76\x4b\x6b\x73\x62\x57\x42\x68\x76\x5a\x69\x67\x58\x48\x43\x33\x71\x54\x44\x78\x6e\x4c\x7a\x63\x62\x30\x41\x77\x31\x4c\x43\x33\x72\x48\x42\x78\x62\x5a\x6c\x47','\x44\x4d\x76\x59\x43\x32\x4c\x56\x42\x47','\x6c\x49\x34\x56\x6c\x49\x34\x56\x43\x67\x66\x4a\x41\x32\x66\x4e\x7a\x73\x35\x51\x43\x32\x39\x55','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x33\x43\x4d\x4c\x30\x7a\x71','\x43\x67\x35\x4e','\x44\x67\x4c\x54\x7a\x77\x39\x31\x44\x66\x39\x54\x43\x57','\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','\x42\x67\x66\x55\x7a\x33\x76\x48\x7a\x32\x75','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x5a\x7a\x77\x66\x59\x79\x32\x47','\x71\x4b\x31\x56\x7a\x67\x34','\x43\x32\x66\x55\x7a\x67\x6a\x56\x45\x66\x39\x53\x41\x78\x6e\x30','\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','\x42\x78\x66\x76\x76\x66\x47','\x44\x67\x39\x56\x42\x66\x39\x31\x43\x32\x75','\x7a\x67\x76\x53\x7a\x78\x72\x4c','\x41\x77\x31\x48\x7a\x32\x75','\x42\x4e\x76\x54\x79\x4d\x76\x59','\x43\x32\x76\x30','\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','\x79\x32\x39\x55\x44\x67\x4c\x55\x44\x77\x76\x46\x42\x32\x35\x46\x7a\x78\x6a\x59\x42\x33\x69','\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','\x7a\x4e\x6a\x56\x42\x71','\x79\x4b\x31\x72\x7a\x32\x43','\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','\x6d\x4e\x6a\x76\x45\x67\x39\x32\x45\x61','\x43\x75\x58\x6e\x75\x33\x4b','\x72\x4e\x76\x53\x42\x63\x62\x4d\x41\x77\x58\x4c\x69\x67\x6e\x56\x42\x4e\x72\x4c\x42\x4e\x72\x5a\x6c\x47','\x7a\x67\x66\x30\x79\x71','\x79\x33\x44\x4b','\x75\x31\x50\x4c\x73\x4b\x34','\x79\x75\x76\x59\x76\x33\x69','\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\x4d\x76\x48\x7a\x61'];a0_0x40cf=function(){return _0x11826c;};return a0_0x40cf();}function isCodeExecutionResultWithImages(_0x24ca5d){const _0x377d39=a0_0x36f18d;if(!_0x24ca5d||typeof _0x24ca5d!==_0x377d39(0xb5))return![];const _0x56712d=_0x24ca5d[_0x377d39(0xbb)];if(!Array[_0x377d39(0xe5)](_0x56712d))return![];return _0x56712d[_0x377d39(0xcf)](_0x4f1dd6=>_0x4f1dd6&&typeof _0x4f1dd6===_0x377d39(0xb5)&&_0x4f1dd6[_0x377d39(0xf8)]===_0x377d39(0x8e));}function imageMediaType(_0x3dab4a){const _0x136993=a0_0x36f18d,_0x3cacc0={'\x6c\x47\x6f\x51\x6b':_0x136993(0x83),'\x4b\x6d\x54\x57\x71':_0x136993(0xc1),'\x6a\x52\x73\x67\x55':'\x69\x6d\x61\x67\x65\x2f\x6a\x70\x65\x67','\x55\x77\x52\x76\x67':_0x136993(0x10c)};switch(_0x3dab4a){case _0x3cacc0[_0x136993(0x115)]:return _0x136993(0x10c);case _0x3cacc0['\x4b\x6d\x54\x57\x71']:return _0x3cacc0[_0x136993(0xf7)];case _0x136993(0xec):return _0x3cacc0[_0x136993(0x118)];}}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_0x36f18d(0x103),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0xc8),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x36f18d(0xb5),'\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':a0_0x36f18d(0xb7),'\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_0x36f18d(0x8f),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x7b)},'\x6d\x65\x74\x61\x64\x61\x74\x61':{'\x74\x79\x70\x65':a0_0x36f18d(0xb5),'\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_0x36f18d(0x116)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x36f18d(0xcb),'\x77\x6f\x72\x6b\x65\x72\x73'],'\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:_0x58ee40})=>async _0x5506b0=>{const _0x2364b7=a0_0x36f18d,_0x2c3cf5=await _0x58ee40[_0x2364b7(0xb0)][_0x2364b7(0xe6)]({'\x64\x65\x66\x61\x75\x6c\x74\x73':{'\x70\x75\x62\x6c\x69\x63\x54\x65\x6d\x70\x6c\x61\x74\x65\x49\x64':_0x5506b0['\x74\x65\x6d\x70\x6c\x61\x74\x65\x5f\x69\x64']},'\x77\x6f\x72\x6b\x65\x72\x73':Array[_0x2364b7(0x94)]({'\x6c\x65\x6e\x67\x74\x68':_0x5506b0[_0x2364b7(0x7d)]},(_0x44b2ba,_0x29e34c)=>({'\x6d\x61\x63\x68\x69\x6e\x65\x49\x64':_0x2364b7(0xe2)+_0x29e34c})),'\x6d\x65\x74\x61\x64\x61\x74\x61':_0x5506b0['\x6d\x65\x74\x61\x64\x61\x74\x61']});return{'\x66\x6c\x65\x65\x74\x49\x64':_0x2c3cf5['\x66\x6c\x65\x65\x74\x49\x64'],'\x6d\x61\x63\x68\x69\x6e\x65\x49\x64\x73':_0x2c3cf5[_0x2364b7(0xf5)]};}},'\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_0x36f18d(0x91),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':'\x6f\x62\x6a\x65\x63\x74','\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x66\x6c\x65\x65\x74\x5f\x69\x64':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7)},'\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_0x36f18d(0xd8)},'\x6d\x61\x63\x68\x69\x6e\x65\x73':{'\x74\x79\x70\x65':a0_0x36f18d(0xe3),'\x69\x74\x65\x6d\x73':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7)},'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x10a)},'\x74\x69\x6d\x65\x6f\x75\x74\x5f\x6d\x73':{'\x74\x79\x70\x65':a0_0x36f18d(0x8f),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':'\x50\x65\x72\x2d\x6d\x61\x63\x68\x69\x6e\x65\x20\x74\x69\x6d\x65\x6f\x75\x74\x2e\x20\x44\x65\x66\x61\x75\x6c\x74\x20\x36\x30\x30\x30\x30\x2e'}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x36f18d(0xef),a0_0x36f18d(0x7e)],'\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:_0x45066b})=>async _0x2cdfa9=>{const _0xe7f022=a0_0x36f18d;return await(await _0x45066b[_0xe7f022(0xb0)][_0xe7f022(0xc7)]({'\x66\x6c\x65\x65\x74\x49\x64':_0x2cdfa9['\x66\x6c\x65\x65\x74\x5f\x69\x64']}))[_0xe7f022(0xf1)](_0x2cdfa9[_0xe7f022(0x7e)],{'\x6d\x61\x63\x68\x69\x6e\x65\x73':_0x2cdfa9['\x6d\x61\x63\x68\x69\x6e\x65\x73'],'\x74\x69\x6d\x65\x6f\x75\x74\x4d\x73':_0x2cdfa9[_0xe7f022(0x84)]});}},'\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_0x36f18d(0xa9),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x7f),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':'\x6f\x62\x6a\x65\x63\x74','\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x66\x6c\x65\x65\x74\x5f\x69\x64':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7)}},'\x72\x65\x71\x75\x69\x72\x65\x64':[a0_0x36f18d(0xef)],'\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:_0x298982})=>async _0x443022=>{const _0x35dc1c=a0_0x36f18d,_0x8d1673=await _0x298982['\x66\x6c\x65\x65\x74\x73'][_0x35dc1c(0xc7)]({'\x66\x6c\x65\x65\x74\x49\x64':_0x443022[_0x35dc1c(0xef)]});return{'\x66\x6c\x65\x65\x74\x49\x64':_0x8d1673['\x66\x6c\x65\x65\x74\x49\x64'],'\x6d\x61\x63\x68\x69\x6e\x65\x73':_0x8d1673[_0x35dc1c(0xf5)]['\x6d\x61\x70'](_0xe7a3b4=>({'\x6d\x61\x63\x68\x69\x6e\x65\x49\x64':_0xe7a3b4,'\x73\x74\x61\x74\x75\x73':_0x8d1673[_0x35dc1c(0xa7)](_0xe7a3b4)['\x73\x74\x61\x74\x75\x73']}))};}},'\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_0x36f18d(0xe8),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0xed),'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':{'\x74\x79\x70\x65':a0_0x36f18d(0xb5),'\x70\x72\x6f\x70\x65\x72\x74\x69\x65\x73':{'\x66\x6c\x65\x65\x74\x5f\x69\x64':{'\x74\x79\x70\x65':a0_0x36f18d(0xb7)},'\x63\x6f\x6e\x74\x69\x6e\x75\x65\x5f\x6f\x6e\x5f\x65\x72\x72\x6f\x72':{'\x74\x79\x70\x65':a0_0x36f18d(0xe7),'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':a0_0x36f18d(0x100)}},'\x72\x65\x71\x75\x69\x72\x65\x64':['\x66\x6c\x65\x65\x74\x5f\x69\x64'],'\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:_0x1342e8})=>async _0x503d8d=>{const _0x4eca45=a0_0x36f18d;return await(await _0x1342e8[_0x4eca45(0xb0)][_0x4eca45(0xc7)]({'\x66\x6c\x65\x65\x74\x49\x64':_0x503d8d[_0x4eca45(0xef)]}))[_0x4eca45(0x8d)]({'\x63\x6f\x6e\x74\x69\x6e\x75\x65\x4f\x6e\x45\x72\x72\x6f\x72':_0x503d8d[_0x4eca45(0x92)]}),{'\x66\x6c\x65\x65\x74\x49\x64':_0x503d8d[_0x4eca45(0xef)],'\x64\x65\x6c\x65\x74\x65\x64':!![]};}}},ALL_FLEET_TOOL_SPECS=Object['\x76\x61\x6c\x75\x65\x73'](FLEET_TOOL_SPECS);function selectFleetSpecs(_0x43dd31){const _0x35fb07=a0_0x36f18d;if(!_0x43dd31||_0x43dd31[_0x35fb07(0xba)]===0x0)return ALL_FLEET_TOOL_SPECS;const _0x1cef00=new Set(_0x43dd31);return Object['\x6b\x65\x79\x73'](FLEET_TOOL_SPECS)[_0x35fb07(0xf0)](_0x3f6ad7=>_0x1cef00['\x68\x61\x73'](_0x3f6ad7))[_0x35fb07(0xb9)](_0x376dba=>FLEET_TOOL_SPECS[_0x376dba]);}function anthropicFleetTools(_0x24a654,_0x3e3a7d={}){const _0x4cbca0=a0_0x36f18d,_0x3a7ff6={'\x64\x68\x6b\x6c\x79':'\x74\x6f\x6f\x6c\x5f\x72\x65\x73\x75\x6c\x74','\x6a\x68\x68\x4f\x68':function(_0x3e9ff1,_0x2d5e7b){return _0x3e9ff1 instanceof _0x2d5e7b;}},_0x105a23=selectFleetSpecs(_0x3e3a7d[_0x4cbca0(0xac)]),_0x312d05=buildFleetHandlers(_0x105a23,{'\x63\x6c\x69\x65\x6e\x74':_0x24a654});return{'\x74\x6f\x6f\x6c\x73':_0x105a23[_0x4cbca0(0xb9)](_0x55154a=>({'\x6e\x61\x6d\x65':_0x55154a[_0x4cbca0(0xde)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x55154a[_0x4cbca0(0xd1)],'\x69\x6e\x70\x75\x74\x5f\x73\x63\x68\x65\x6d\x61':_0x55154a[_0x4cbca0(0x102)]})),async '\x68\x61\x6e\x64\x6c\x65\x54\x6f\x6f\x6c\x55\x73\x65'(_0x53ce22){const _0x169fc4=_0x4cbca0,_0x41304c=_0x312d05['\x67\x65\x74'](_0x53ce22[_0x169fc4(0xde)]);if(!_0x41304c)return{'\x74\x79\x70\x65':_0x3a7ff6[_0x169fc4(0x10d)],'\x74\x6f\x6f\x6c\x5f\x75\x73\x65\x5f\x69\x64':_0x53ce22['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':'\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x66\x6c\x65\x65\x74\x20\x74\x6f\x6f\x6c\x3a\x20'+_0x53ce22[_0x169fc4(0xde)],'\x69\x73\x5f\x65\x72\x72\x6f\x72':!![]};try{const _0x407bf8=await _0x41304c(_0x53ce22[_0x169fc4(0xb2)]);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':_0x53ce22['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':serializeToolResult(_0x407bf8)};}catch(_0x4948da){return{'\x74\x79\x70\x65':_0x169fc4(0xb1),'\x74\x6f\x6f\x6c\x5f\x75\x73\x65\x5f\x69\x64':_0x53ce22['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':_0x3a7ff6[_0x169fc4(0xc2)](_0x4948da,Error)?_0x4948da['\x6d\x65\x73\x73\x61\x67\x65']:String(_0x4948da),'\x69\x73\x5f\x65\x72\x72\x6f\x72':!![]};}}};}function openaiFleetTools(_0xf7cc3f,_0x4a7387={}){const _0x100b89=a0_0x36f18d,_0x3fe419={'\x46\x41\x47\x42\x79':function(_0x52bc91,_0x322314){return _0x52bc91===_0x322314;},'\x71\x6f\x62\x46\x43':'\x6f\x62\x6a\x65\x63\x74','\x49\x49\x43\x6f\x74':_0x100b89(0xe9),'\x42\x4d\x6f\x64\x6e':function(_0x50c22d,_0x4b95ad,_0x1f7da5){return _0x50c22d(_0x4b95ad,_0x1f7da5);}},_0x377364=selectFleetSpecs(_0x4a7387[_0x100b89(0xac)]),_0x4808f8=_0x3fe419[_0x100b89(0x88)](buildFleetHandlers,_0x377364,{'\x63\x6c\x69\x65\x6e\x74':_0xf7cc3f});return{'\x74\x6f\x6f\x6c\x73':_0x377364[_0x100b89(0xb9)](_0x18b1c3=>({'\x74\x79\x70\x65':_0x100b89(0xbf),'\x66\x75\x6e\x63\x74\x69\x6f\x6e':{'\x6e\x61\x6d\x65':_0x18b1c3[_0x100b89(0xde)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x18b1c3[_0x100b89(0xd1)],'\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73':_0x18b1c3[_0x100b89(0x102)]}})),async '\x68\x61\x6e\x64\x6c\x65\x54\x6f\x6f\x6c\x43\x61\x6c\x6c'(_0x43e967){const _0x550034=_0x100b89,_0x1af82f=_0x4808f8['\x67\x65\x74'](_0x43e967[_0x550034(0xbf)][_0x550034(0xde)]);if(!_0x1af82f)return{'\x72\x6f\x6c\x65':_0x550034(0xe9),'\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x43e967['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':JSON['\x73\x74\x72\x69\x6e\x67\x69\x66\x79']({'\x65\x72\x72\x6f\x72':_0x550034(0xfa)+_0x43e967['\x66\x75\x6e\x63\x74\x69\x6f\x6e'][_0x550034(0xde)]})};let _0x1c0f86={};try{const _0x1653b6=JSON[_0x550034(0xc5)](_0x43e967[_0x550034(0xbf)][_0x550034(0xbc)]||'\x7b\x7d');if(_0x1653b6&&_0x3fe419[_0x550034(0xd2)](typeof _0x1653b6,_0x3fe419[_0x550034(0xad)]))_0x1c0f86=_0x1653b6;}catch{}try{const _0x57c186=await _0x1af82f(_0x1c0f86);return{'\x72\x6f\x6c\x65':_0x3fe419[_0x550034(0xd0)],'\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x43e967['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':serializeToolResult(_0x57c186)};}catch(_0x427818){return{'\x72\x6f\x6c\x65':_0x550034(0xe9),'\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x43e967['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':JSON[_0x550034(0xa3)]({'\x65\x72\x72\x6f\x72':_0x427818 instanceof Error?_0x427818[_0x550034(0xe0)]:String(_0x427818)})};}}};}async function vercelAiFleetTools(_0x43360f,_0x5c680f={}){const _0x4f5e84=a0_0x36f18d,_0x31ded3={'\x62\x4d\x51\x67\x67':function(_0x39ea2f,_0x1ec289){return _0x39ea2f(_0x1ec289);},'\x4c\x4b\x53\x67\x6a':_0x4f5e84(0x9e),'\x70\x5a\x4c\x68\x72':function(_0x1a107b,_0x19f706){return _0x1a107b(_0x19f706);}};let _0x1328b6;try{_0x1328b6=await import('\x61\x69');}catch{throw new Error(_0x31ded3['\x4c\x4b\x53\x67\x6a']);}const _0x475beb=_0x31ded3[_0x4f5e84(0xfd)](selectFleetSpecs,_0x5c680f['\x61\x6c\x6c\x6f\x77']),_0x298a9=buildFleetHandlers(_0x475beb,{'\x63\x6c\x69\x65\x6e\x74':_0x43360f}),_0x413d58={};for(const _0x4cb9e5 of _0x475beb)_0x413d58[_0x4cb9e5[_0x4f5e84(0xde)]]=_0x1328b6[_0x4f5e84(0xe9)]({'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x4cb9e5['\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e'],'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':_0x1328b6[_0x4f5e84(0xee)](_0x4cb9e5[_0x4f5e84(0x102)]),'\x65\x78\x65\x63\x75\x74\x65':async _0x8800a4=>{const _0x295377=_0x4f5e84,_0x1e8de9=_0x298a9[_0x295377(0xa7)](_0x4cb9e5[_0x295377(0xde)]);if(!_0x1e8de9)throw new Error(_0x295377(0xfa)+_0x4cb9e5[_0x295377(0xde)]);return _0x31ded3[_0x295377(0x95)](serializeToolResult,await _0x31ded3['\x62\x4d\x51\x67\x67'](_0x1e8de9,_0x8800a4));}});return _0x413d58;}async function mastraFleetTools(_0x279945,_0x2c4ceb={}){const _0x3c7b50=a0_0x36f18d,_0x1d4b41={'\x5a\x71\x65\x64\x6e':function(_0x502c86,_0x30ed35,_0xd81e90){return _0x502c86(_0x30ed35,_0xd81e90);}};let _0x1b50e8;try{_0x1b50e8=await import('\x40\x6d\x61\x73\x74\x72\x61\x2f\x63\x6f\x72\x65');}catch{throw new Error(_0x3c7b50(0xa0));}const _0x10052c=selectFleetSpecs(_0x2c4ceb[_0x3c7b50(0xac)]),_0x367a68=_0x1d4b41[_0x3c7b50(0xa5)](buildFleetHandlers,_0x10052c,{'\x63\x6c\x69\x65\x6e\x74':_0x279945}),_0xe31541={};for(const _0xb151c3 of _0x10052c)_0xe31541[_0xb151c3['\x6e\x61\x6d\x65']]=_0x1b50e8[_0x3c7b50(0xd7)]({'\x69\x64':_0xb151c3[_0x3c7b50(0xde)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0xb151c3[_0x3c7b50(0xd1)],'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':_0x1b50e8[_0x3c7b50(0xee)]?_0x1b50e8['\x6a\x73\x6f\x6e\x53\x63\x68\x65\x6d\x61'](_0xb151c3['\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61']):_0xb151c3[_0x3c7b50(0x102)],'\x65\x78\x65\x63\x75\x74\x65':async _0x161070=>{const _0x5bac61=_0x3c7b50,_0x2cf638=_0x367a68[_0x5bac61(0xa7)](_0xb151c3['\x6e\x61\x6d\x65']);if(!_0x2cf638)throw new Error(_0x5bac61(0xfa)+_0xb151c3[_0x5bac61(0xde)]);return{'\x72\x65\x73\x75\x6c\x74':serializeToolResult(await _0x2cf638(_0x161070?.['\x63\x6f\x6e\x74\x65\x78\x74']??{}))};}});return _0xe31541;}function buildFleetHandlers(_0x44ac04,_0x27d4c7){const _0x3da7f4=a0_0x36f18d,_0x325841=new Map();for(const _0x46611d of _0x44ac04)_0x325841['\x73\x65\x74'](_0x46611d[_0x3da7f4(0xde)],_0x46611d['\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72'](_0x27d4c7));return _0x325841;}async function mastraTools(_0x128041,_0x3b3b63={}){const _0x1e9e8c=a0_0x36f18d,_0x917491={'\x75\x62\x6b\x54\x51':function(_0x4c412a,_0x51ca59){return _0x4c412a(_0x51ca59);},'\x6e\x42\x6f\x44\x71':'\x6d\x61\x73\x74\x72\x61\x54\x6f\x6f\x6c\x73\x28\x29\x3a\x20\x74\x68\x65\x20\x60\x40\x6d\x61\x73\x74\x72\x61\x2f\x63\x6f\x72\x65\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\x40\x6d\x61\x73\x74\x72\x61\x2f\x63\x6f\x72\x65\x60\x2e'};let _0x3f8f6e;try{_0x3f8f6e=await import(_0x1e9e8c(0xfe));}catch{throw new Error(_0x917491[_0x1e9e8c(0x114)]);}const _0x1b92cc=selectSpecs(_0x3b3b63[_0x1e9e8c(0xac)]),_0x274841={'\x62\x6f\x78':_0x128041,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x3b3b63[_0x1e9e8c(0xc9)]},_0x405f60={};for(const _0x4fcd53 of _0x1b92cc){const _0x40da37=_0x4fcd53['\x6d\x61\x6b\x65\x48\x61\x6e\x64\x6c\x65\x72'](_0x274841);_0x405f60[_0x4fcd53[_0x1e9e8c(0xde)]]=_0x3f8f6e[_0x1e9e8c(0xd7)]({'\x69\x64':_0x4fcd53[_0x1e9e8c(0xde)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x4fcd53[_0x1e9e8c(0xd1)],'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':_0x3f8f6e[_0x1e9e8c(0xee)]?_0x3f8f6e[_0x1e9e8c(0xee)](_0x4fcd53[_0x1e9e8c(0x102)]):_0x4fcd53['\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61'],'\x65\x78\x65\x63\x75\x74\x65':async _0x472dbe=>{const _0x134861=_0x1e9e8c;return{'\x72\x65\x73\x75\x6c\x74':serializeToolResult(await _0x917491[_0x134861(0x109)](_0x40da37,_0x472dbe?.[_0x134861(0x106)]??{}))};}});}return _0x405f60;}function openaiTools(_0x1e0b3e,_0x40442c={}){const _0x149a24=a0_0x36f18d,_0x2feb43={'\x57\x59\x6a\x45\x54':function(_0x5e208a,_0x49285c){return _0x5e208a===_0x49285c;},'\x79\x6e\x47\x75\x4e':function(_0x4898ce,_0x21fda2){return _0x4898ce!==_0x21fda2;},'\x76\x42\x65\x78\x75':'\x74\x6f\x6f\x6c','\x45\x59\x4f\x48\x44':function(_0x54d918,_0x2cb78f){return _0x54d918(_0x2cb78f);}},_0x453216=selectSpecs(_0x40442c[_0x149a24(0xac)]),_0x16ef55={'\x62\x6f\x78':_0x1e0b3e,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0x40442c[_0x149a24(0xc9)]},_0x5b6256=new Map();for(const _0x4437bd of _0x453216)_0x5b6256[_0x149a24(0x90)](_0x4437bd[_0x149a24(0xde)],_0x4437bd[_0x149a24(0xa8)](_0x16ef55));const _0x56e3ab=_0x453216[_0x149a24(0xb9)](_0x5af351=>({'\x74\x79\x70\x65':'\x66\x75\x6e\x63\x74\x69\x6f\x6e','\x66\x75\x6e\x63\x74\x69\x6f\x6e':{'\x6e\x61\x6d\x65':_0x5af351[_0x149a24(0xde)],'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x5af351['\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e'],'\x70\x61\x72\x61\x6d\x65\x74\x65\x72\x73':_0x5af351[_0x149a24(0x102)]}}));function _0xbe0629(_0x30aa36){const _0x356a21=_0x149a24;if(!_0x30aa36)return{};try{const _0x403f20=JSON['\x70\x61\x72\x73\x65'](_0x30aa36);return _0x2feb43[_0x356a21(0x10f)](typeof _0x403f20,_0x356a21(0xb5))&&_0x2feb43[_0x356a21(0x7c)](_0x403f20,null)?_0x403f20:{};}catch{return{};}}async function _0x5083e5(_0x4f28ac){const _0x2d3599=_0x149a24,_0x409b95=_0x5b6256['\x67\x65\x74'](_0x4f28ac[_0x2d3599(0xbf)][_0x2d3599(0xde)]);if(!_0x409b95)return{'\x72\x6f\x6c\x65':_0x2feb43['\x76\x42\x65\x78\x75'],'\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x4f28ac['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':JSON[_0x2d3599(0xa3)]({'\x65\x72\x72\x6f\x72':'\x55\x6e\x6b\x6e\x6f\x77\x6e\x20\x74\x6f\x6f\x6c\x3a\x20'+_0x4f28ac['\x66\x75\x6e\x63\x74\x69\x6f\x6e']['\x6e\x61\x6d\x65']})};try{const _0x4f5cb3=await _0x409b95(_0x2feb43[_0x2d3599(0x113)](_0xbe0629,_0x4f28ac[_0x2d3599(0xbf)][_0x2d3599(0xbc)]));return{'\x72\x6f\x6c\x65':'\x74\x6f\x6f\x6c','\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x4f28ac['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':serializeToolResult(_0x4f5cb3)};}catch(_0xec5fe1){return{'\x72\x6f\x6c\x65':_0x2d3599(0xe9),'\x74\x6f\x6f\x6c\x5f\x63\x61\x6c\x6c\x5f\x69\x64':_0x4f28ac['\x69\x64'],'\x63\x6f\x6e\x74\x65\x6e\x74':JSON[_0x2d3599(0xa3)]({'\x65\x72\x72\x6f\x72':_0xec5fe1 instanceof Error?_0xec5fe1['\x6d\x65\x73\x73\x61\x67\x65']:String(_0xec5fe1)})};}}async function _0x833f76(_0x1ac6bc){const _0x372211=_0x149a24,_0x6a39f4=_0x1ac6bc[_0x372211(0xae)]??[];return Promise[_0x372211(0xff)](_0x6a39f4[_0x372211(0xb9)](_0x5083e5));}return{'\x74\x6f\x6f\x6c\x73':_0x56e3ab,'\x68\x61\x6e\x64\x6c\x65\x54\x6f\x6f\x6c\x43\x61\x6c\x6c':_0x5083e5,'\x68\x61\x6e\x64\x6c\x65\x41\x73\x73\x69\x73\x74\x61\x6e\x74\x4d\x65\x73\x73\x61\x67\x65':_0x833f76};}async function vercelAiTools(_0x20845d,_0xe611f2={}){const _0xbf890=a0_0x36f18d,_0x38ef32={'\x56\x51\x66\x54\x66':function(_0x56d6e3,_0x37e6f7){return _0x56d6e3(_0x37e6f7);}};let _0x10f519;try{_0x10f519=await import('\x61\x69');}catch{throw new Error(_0xbf890(0x112));}const _0x15fcec=selectSpecs(_0xe611f2[_0xbf890(0xac)]),_0x1a7713={'\x62\x6f\x78':_0x20845d,'\x73\x65\x73\x73\x69\x6f\x6e\x49\x64':_0xe611f2[_0xbf890(0xc9)]},_0x4dcb2c={};for(const _0x4a9e3e of _0x15fcec){const _0x1f5cda=_0x4a9e3e[_0xbf890(0xa8)](_0x1a7713);_0x4dcb2c[_0x4a9e3e[_0xbf890(0xde)]]=_0x10f519[_0xbf890(0xe9)]({'\x64\x65\x73\x63\x72\x69\x70\x74\x69\x6f\x6e':_0x4a9e3e[_0xbf890(0xd1)],'\x69\x6e\x70\x75\x74\x53\x63\x68\x65\x6d\x61':_0x10f519['\x6a\x73\x6f\x6e\x53\x63\x68\x65\x6d\x61'](_0x4a9e3e[_0xbf890(0x102)]),'\x65\x78\x65\x63\x75\x74\x65':async _0x1f97c5=>{const _0x35428e=_0xbf890;return _0x38ef32[_0x35428e(0xbe)](serializeToolResult,await _0x1f5cda(_0x1f97c5));}});}return _0x4dcb2c;}export{anthropicFleetTools,anthropicTools,createMcpServer,mastraFleetTools,mastraTools,openaiFleetTools,openaiTools,runCode,vercelAiFleetTools,vercelAiTools};
|
package/dist/auth/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as ReadTokenPayload, a as issueCollaborationToken, c as issueSessionScopedToken, d as AnyTokenPayload, f as BatchScopedTokenPayload, g as ProjectScopedTokenPayload, h as IssueCollaborationTokenOptions, i as issueBatchScopedToken, l as unsafeDecodeToken, m as CollaborationTokenPayload, n as getTokenTTL, o as issueProjectScopedToken, p as CollaborationAccess, r as isTokenExpiringSoon, s as issueReadToken, t as ProductTokenIssuer, u as verifyToken, v as SessionScopedTokenPayload, y as TokenScope } from "../index-
|
|
1
|
+
import { _ as ReadTokenPayload, a as issueCollaborationToken, c as issueSessionScopedToken, d as AnyTokenPayload, f as BatchScopedTokenPayload, g as ProjectScopedTokenPayload, h as IssueCollaborationTokenOptions, i as issueBatchScopedToken, l as unsafeDecodeToken, m as CollaborationTokenPayload, n as getTokenTTL, o as issueProjectScopedToken, p as CollaborationAccess, r as isTokenExpiringSoon, s as issueReadToken, t as ProductTokenIssuer, u as verifyToken, v as SessionScopedTokenPayload, y as TokenScope } from "../index-D-2pH_70.js";
|
|
2
2
|
export { AnyTokenPayload, BatchScopedTokenPayload, CollaborationAccess, CollaborationTokenPayload, IssueCollaborationTokenOptions, ProductTokenIssuer, ProjectScopedTokenPayload, ReadTokenPayload, SessionScopedTokenPayload, TokenScope, getTokenTTL, isTokenExpiringSoon, issueBatchScopedToken, issueCollaborationToken, issueProjectScopedToken, issueReadToken, issueSessionScopedToken, unsafeDecodeToken, verifyToken };
|