backpack-ontology 0.7.13 → 0.8.1
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 +123 -0
- package/dist/bin/bp.d.ts +3 -0
- package/dist/bin/bp.d.ts.map +1 -0
- package/dist/bin/bp.js +6 -0
- package/dist/bin/bp.js.map +1 -0
- package/dist/cli/colors.d.ts +20 -0
- package/dist/cli/colors.d.ts.map +1 -0
- package/dist/cli/colors.js +34 -0
- package/dist/cli/colors.js.map +1 -0
- package/dist/cli/commands/auth.d.ts +4 -0
- package/dist/cli/commands/auth.d.ts.map +1 -0
- package/dist/cli/commands/auth.js +48 -0
- package/dist/cli/commands/auth.js.map +1 -0
- package/dist/cli/commands/cat.d.ts +3 -0
- package/dist/cli/commands/cat.d.ts.map +1 -0
- package/dist/cli/commands/cat.js +28 -0
- package/dist/cli/commands/cat.js.map +1 -0
- package/dist/cli/commands/cloud-admin.d.ts +7 -0
- package/dist/cli/commands/cloud-admin.d.ts.map +1 -0
- package/dist/cli/commands/cloud-admin.js +169 -0
- package/dist/cli/commands/cloud-admin.js.map +1 -0
- package/dist/cli/commands/completion.d.ts +3 -0
- package/dist/cli/commands/completion.d.ts.map +1 -0
- package/dist/cli/commands/completion.js +156 -0
- package/dist/cli/commands/completion.js.map +1 -0
- package/dist/cli/commands/containers.d.ts +3 -0
- package/dist/cli/commands/containers.d.ts.map +1 -0
- package/dist/cli/commands/containers.js +29 -0
- package/dist/cli/commands/containers.js.map +1 -0
- package/dist/cli/commands/context.d.ts +4 -0
- package/dist/cli/commands/context.d.ts.map +1 -0
- package/dist/cli/commands/context.js +59 -0
- package/dist/cli/commands/context.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +3 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +65 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/graphs.d.ts +3 -0
- package/dist/cli/commands/graphs.d.ts.map +1 -0
- package/dist/cli/commands/graphs.js +57 -0
- package/dist/cli/commands/graphs.js.map +1 -0
- package/dist/cli/commands/init.d.ts +3 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +46 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/kbs.d.ts +3 -0
- package/dist/cli/commands/kbs.d.ts.map +1 -0
- package/dist/cli/commands/kbs.js +247 -0
- package/dist/cli/commands/kbs.js.map +1 -0
- package/dist/cli/commands/ls.d.ts +3 -0
- package/dist/cli/commands/ls.d.ts.map +1 -0
- package/dist/cli/commands/ls.js +81 -0
- package/dist/cli/commands/ls.js.map +1 -0
- package/dist/cli/commands/mutate.d.ts +7 -0
- package/dist/cli/commands/mutate.d.ts.map +1 -0
- package/dist/cli/commands/mutate.js +241 -0
- package/dist/cli/commands/mutate.js.map +1 -0
- package/dist/cli/commands/open.d.ts +3 -0
- package/dist/cli/commands/open.d.ts.map +1 -0
- package/dist/cli/commands/open.js +88 -0
- package/dist/cli/commands/open.js.map +1 -0
- package/dist/cli/commands/search.d.ts +3 -0
- package/dist/cli/commands/search.d.ts.map +1 -0
- package/dist/cli/commands/search.js +59 -0
- package/dist/cli/commands/search.js.map +1 -0
- package/dist/cli/commands/show.d.ts +3 -0
- package/dist/cli/commands/show.d.ts.map +1 -0
- package/dist/cli/commands/show.js +74 -0
- package/dist/cli/commands/show.js.map +1 -0
- package/dist/cli/commands/version.d.ts +2 -0
- package/dist/cli/commands/version.d.ts.map +1 -0
- package/dist/cli/commands/version.js +16 -0
- package/dist/cli/commands/version.js.map +1 -0
- package/dist/cli/help.d.ts +3 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +118 -0
- package/dist/cli/help.js.map +1 -0
- package/dist/cli/output.d.ts +23 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +189 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/cli/parser.d.ts +9 -0
- package/dist/cli/parser.d.ts.map +1 -0
- package/dist/cli/parser.js +106 -0
- package/dist/cli/parser.js.map +1 -0
- package/dist/cli/router.d.ts +2 -0
- package/dist/cli/router.d.ts.map +1 -0
- package/dist/cli/router.js +123 -0
- package/dist/cli/router.js.map +1 -0
- package/dist/cli/util/confirm.d.ts +3 -0
- package/dist/cli/util/confirm.d.ts.map +1 -0
- package/dist/cli/util/confirm.js +37 -0
- package/dist/cli/util/confirm.js.map +1 -0
- package/dist/core/backpack.d.ts +1 -92
- package/dist/core/backpack.d.ts.map +1 -1
- package/dist/core/backpack.js +23 -127
- package/dist/core/backpack.js.map +1 -1
- package/dist/core/backpacks-registry.d.ts +2 -2
- package/dist/core/backpacks-registry.js +2 -2
- package/dist/mcp/tools/cloud-tools.d.ts +2 -3
- package/dist/mcp/tools/cloud-tools.d.ts.map +1 -1
- package/dist/mcp/tools/cloud-tools.js +240 -81
- package/dist/mcp/tools/cloud-tools.js.map +1 -1
- package/dist/mcp/tools/share-tools.js +1 -1
- package/dist/mcp/tools/share-tools.js.map +1 -1
- package/dist/mcp/tools/signal-tools.js +1 -1
- package/dist/mcp/tools/signal-tools.js.map +1 -1
- package/dist/ops/auth.d.ts +25 -0
- package/dist/ops/auth.d.ts.map +1 -0
- package/dist/ops/auth.js +144 -0
- package/dist/ops/auth.js.map +1 -0
- package/dist/ops/containers.d.ts +25 -0
- package/dist/ops/containers.d.ts.map +1 -0
- package/dist/ops/containers.js +144 -0
- package/dist/ops/containers.js.map +1 -0
- package/dist/ops/context.d.ts +30 -0
- package/dist/ops/context.d.ts.map +1 -0
- package/dist/ops/context.js +133 -0
- package/dist/ops/context.js.map +1 -0
- package/dist/ops/graphs.d.ts +48 -0
- package/dist/ops/graphs.d.ts.map +1 -0
- package/dist/ops/graphs.js +249 -0
- package/dist/ops/graphs.js.map +1 -0
- package/dist/ops/kb.d.ts +28 -0
- package/dist/ops/kb.d.ts.map +1 -0
- package/dist/ops/kb.js +162 -0
- package/dist/ops/kb.js.map +1 -0
- package/package.json +3 -2
|
@@ -5,63 +5,35 @@ import { z } from "zod";
|
|
|
5
5
|
import { OAuthClient } from "../../auth/oauth.js";
|
|
6
6
|
import { configDir } from "../../core/paths.js";
|
|
7
7
|
import { trackEvent } from "../../core/telemetry.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
if (settings.relay_token && typeof settings.relay_token === "string") {
|
|
19
|
-
// Check JWT expiry
|
|
20
|
-
const parts = settings.relay_token.split(".");
|
|
21
|
-
if (parts.length === 3) {
|
|
22
|
-
const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString());
|
|
23
|
-
if (!payload.exp || payload.exp * 1000 > Date.now()) {
|
|
24
|
-
return settings.relay_token;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
catch { /* no viewer settings */ }
|
|
30
|
-
// 2. Check OAuth token cache (from backpack_cloud_login or backpack-sync)
|
|
31
|
-
try {
|
|
32
|
-
const cacheKey = crypto.createHash("sha256").update(RELAY_URL).digest("hex").slice(0, 12);
|
|
33
|
-
const cachePath = path.join(configDir(), "app-tokens", `${cacheKey}.json`);
|
|
34
|
-
const raw = await fs.readFile(cachePath, "utf8");
|
|
35
|
-
const cached = JSON.parse(raw);
|
|
36
|
-
const token = cached.id_token || cached.access_token;
|
|
37
|
-
if (token && (!cached.expires_at || cached.expires_at * 1000 > Date.now())) {
|
|
38
|
-
return token;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
catch { /* no cached token */ }
|
|
42
|
-
return null;
|
|
8
|
+
import { resolveCloudToken, emailFromToken, getRelayUrl, getClientId, getIssuerUrl } from "../../ops/auth.js";
|
|
9
|
+
export { resolveCloudToken };
|
|
10
|
+
async function fetchContainers(token) {
|
|
11
|
+
const res = await fetch(`${getRelayUrl()}/api/sync/backpacks`, {
|
|
12
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
13
|
+
});
|
|
14
|
+
if (!res.ok)
|
|
15
|
+
throw new Error(`list containers: ${res.status}`);
|
|
16
|
+
const data = await res.json();
|
|
17
|
+
return data.backpacks ?? [];
|
|
43
18
|
}
|
|
44
|
-
|
|
45
|
-
|
|
19
|
+
async function resolveContainerByName(token, name) {
|
|
20
|
+
let all;
|
|
46
21
|
try {
|
|
47
|
-
|
|
48
|
-
if (parts.length === 3) {
|
|
49
|
-
const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString());
|
|
50
|
-
return payload.email || payload.preferred_username;
|
|
51
|
-
}
|
|
22
|
+
all = await fetchContainers(token);
|
|
52
23
|
}
|
|
53
|
-
catch {
|
|
54
|
-
|
|
24
|
+
catch (err) {
|
|
25
|
+
return { ok: false, reason: "fetch_failed", error: err.message };
|
|
26
|
+
}
|
|
27
|
+
const found = all.find((c) => c.name === name);
|
|
28
|
+
return found ? { ok: true, container: found } : { ok: false, reason: "not_found" };
|
|
55
29
|
}
|
|
56
30
|
export function registerCloudTools(server, backpack) {
|
|
57
|
-
// --- backpack_cloud_login ---
|
|
58
31
|
server.registerTool("backpack_cloud_login", {
|
|
59
32
|
title: "Sign In to Cloud",
|
|
60
33
|
description: "Authenticate with Backpack App to access cloud-synced graphs. " +
|
|
61
34
|
"Opens the system browser for sign-in. If already signed in, returns the current account.",
|
|
62
35
|
}, async () => {
|
|
63
36
|
trackEvent("tool_call", { tool: "backpack_cloud_login" });
|
|
64
|
-
// Check if already authenticated
|
|
65
37
|
const existing = await resolveCloudToken();
|
|
66
38
|
if (existing) {
|
|
67
39
|
const email = emailFromToken(existing);
|
|
@@ -69,16 +41,14 @@ export function registerCloudTools(server, backpack) {
|
|
|
69
41
|
content: [{ type: "text", text: `Already signed in${email ? ` as ${email}` : ""}. Use backpack_cloud_list to see cloud graphs.` }],
|
|
70
42
|
};
|
|
71
43
|
}
|
|
72
|
-
|
|
73
|
-
const
|
|
74
|
-
const oauth = new OAuthClient(CLIENT_ID, ISSUER_URL, cacheKey);
|
|
44
|
+
const cacheKey = crypto.createHash("sha256").update(getRelayUrl()).digest("hex").slice(0, 12);
|
|
45
|
+
const oauth = new OAuthClient(getClientId(), getIssuerUrl(), cacheKey);
|
|
75
46
|
const token = await oauth.getAccessToken();
|
|
76
47
|
const email = emailFromToken(token);
|
|
77
48
|
return {
|
|
78
49
|
content: [{ type: "text", text: `Signed in${email ? ` as ${email}` : ""}. Use backpack_cloud_list to see your cloud graphs.` }],
|
|
79
50
|
};
|
|
80
51
|
});
|
|
81
|
-
// --- backpack_cloud_list ---
|
|
82
52
|
server.registerTool("backpack_cloud_list", {
|
|
83
53
|
title: "List Cloud Graphs",
|
|
84
54
|
description: "List all learning graphs in the user's cloud backpack (Backpack App). " +
|
|
@@ -93,7 +63,7 @@ export function registerCloudTools(server, backpack) {
|
|
|
93
63
|
content: [{ type: "text", text: "Not signed in to Backpack App. Use backpack_cloud_login to authenticate, then try again." }],
|
|
94
64
|
};
|
|
95
65
|
}
|
|
96
|
-
const res = await fetch(`${
|
|
66
|
+
const res = await fetch(`${getRelayUrl()}/api/graphs`, {
|
|
97
67
|
headers: { "Authorization": `Bearer ${token}` },
|
|
98
68
|
});
|
|
99
69
|
if (!res.ok) {
|
|
@@ -129,7 +99,6 @@ export function registerCloudTools(server, backpack) {
|
|
|
129
99
|
content: [{ type: "text", text: lines.join("\n") }],
|
|
130
100
|
};
|
|
131
101
|
});
|
|
132
|
-
// --- backpack_cloud_import ---
|
|
133
102
|
server.registerTool("backpack_cloud_import", {
|
|
134
103
|
title: "Import Cloud Graph",
|
|
135
104
|
description: "Import a cloud graph as a local copy. This creates a fork — edits to the local copy " +
|
|
@@ -148,8 +117,7 @@ export function registerCloudTools(server, backpack) {
|
|
|
148
117
|
content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }],
|
|
149
118
|
};
|
|
150
119
|
}
|
|
151
|
-
|
|
152
|
-
const listRes = await fetch(`${RELAY_URL}/api/graphs`, {
|
|
120
|
+
const listRes = await fetch(`${getRelayUrl()}/api/graphs`, {
|
|
153
121
|
headers: { "Authorization": `Bearer ${token}` },
|
|
154
122
|
});
|
|
155
123
|
if (!listRes.ok) {
|
|
@@ -163,15 +131,13 @@ export function registerCloudTools(server, backpack) {
|
|
|
163
131
|
if (target.encrypted) {
|
|
164
132
|
return { content: [{ type: "text", text: `Graph "${name}" is encrypted. Encrypted graphs cannot be imported via MCP — open the graph in the viewer to decrypt it, or re-sync it as plaintext from the viewer's Share panel.` }] };
|
|
165
133
|
}
|
|
166
|
-
|
|
167
|
-
const dataRes = await fetch(`${RELAY_URL}/api/graphs/${encodeURIComponent(name)}`, {
|
|
134
|
+
const dataRes = await fetch(`${getRelayUrl()}/api/graphs/${encodeURIComponent(name)}`, {
|
|
168
135
|
headers: { "Authorization": `Bearer ${token}` },
|
|
169
136
|
});
|
|
170
137
|
if (!dataRes.ok) {
|
|
171
138
|
return { content: [{ type: "text", text: `Failed to download graph "${name}": ${dataRes.status}` }] };
|
|
172
139
|
}
|
|
173
140
|
const data = await dataRes.json();
|
|
174
|
-
// Save locally
|
|
175
141
|
const localName = asLocalName || name;
|
|
176
142
|
const exists = await backpack.ontologyExists(localName);
|
|
177
143
|
if (exists) {
|
|
@@ -182,7 +148,6 @@ export function registerCloudTools(server, backpack) {
|
|
|
182
148
|
content: [{ type: "text", text: `Imported "${name}" from cloud as "${localName}". ${data.nodes?.length ?? 0} nodes, ${data.edges?.length ?? 0} edges. You can now use backpack_search, backpack_describe, etc.` }],
|
|
183
149
|
};
|
|
184
150
|
});
|
|
185
|
-
// --- backpack_cloud_search ---
|
|
186
151
|
server.registerTool("backpack_cloud_search", {
|
|
187
152
|
title: "Search Cloud Graphs",
|
|
188
153
|
description: "Search across graphs in the user's cloud backpack. Searches node types and property values. " +
|
|
@@ -200,13 +165,12 @@ export function registerCloudTools(server, backpack) {
|
|
|
200
165
|
return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
|
|
201
166
|
}
|
|
202
167
|
const lowerQuery = query.toLowerCase();
|
|
203
|
-
// Determine which graphs to search
|
|
204
168
|
let graphNames;
|
|
205
169
|
if (ontology) {
|
|
206
170
|
graphNames = [ontology];
|
|
207
171
|
}
|
|
208
172
|
else {
|
|
209
|
-
const listRes = await fetch(`${
|
|
173
|
+
const listRes = await fetch(`${getRelayUrl()}/api/graphs`, {
|
|
210
174
|
headers: { "Authorization": `Bearer ${token}` },
|
|
211
175
|
});
|
|
212
176
|
if (!listRes.ok) {
|
|
@@ -218,11 +182,10 @@ export function registerCloudTools(server, backpack) {
|
|
|
218
182
|
if (graphNames.length === 0) {
|
|
219
183
|
return { content: [{ type: "text", text: "No searchable cloud graphs found (encrypted graphs cannot be searched)." }] };
|
|
220
184
|
}
|
|
221
|
-
// Search each graph
|
|
222
185
|
const results = [];
|
|
223
186
|
for (const name of graphNames) {
|
|
224
187
|
try {
|
|
225
|
-
const res = await fetch(`${
|
|
188
|
+
const res = await fetch(`${getRelayUrl()}/api/graphs/${encodeURIComponent(name)}`, {
|
|
226
189
|
headers: { "Authorization": `Bearer ${token}` },
|
|
227
190
|
});
|
|
228
191
|
if (!res.ok)
|
|
@@ -249,7 +212,7 @@ export function registerCloudTools(server, backpack) {
|
|
|
249
212
|
results.push({ graph: name, matches });
|
|
250
213
|
}
|
|
251
214
|
}
|
|
252
|
-
catch {
|
|
215
|
+
catch { }
|
|
253
216
|
}
|
|
254
217
|
if (results.length === 0) {
|
|
255
218
|
return { content: [{ type: "text", text: `No matches for "${query}" across ${graphNames.length} cloud graph(s). Try backpack_cloud_list to see available graphs.` }] };
|
|
@@ -264,7 +227,6 @@ export function registerCloudTools(server, backpack) {
|
|
|
264
227
|
}
|
|
265
228
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
266
229
|
});
|
|
267
|
-
// --- backpack_cloud_sync ---
|
|
268
230
|
server.registerTool("backpack_cloud_sync", {
|
|
269
231
|
title: "Sync to Cloud",
|
|
270
232
|
description: "Push local graphs to the cloud backpack as plaintext JSON. " +
|
|
@@ -280,7 +242,6 @@ export function registerCloudTools(server, backpack) {
|
|
|
280
242
|
if (!token) {
|
|
281
243
|
return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
|
|
282
244
|
}
|
|
283
|
-
// Determine which graphs to sync
|
|
284
245
|
let names;
|
|
285
246
|
if (graphName) {
|
|
286
247
|
const exists = await backpack.ontologyExists(graphName);
|
|
@@ -303,7 +264,6 @@ export function registerCloudTools(server, backpack) {
|
|
|
303
264
|
try {
|
|
304
265
|
const data = await backpack.loadOntology(name);
|
|
305
266
|
const graphJSON = new TextEncoder().encode(JSON.stringify(data));
|
|
306
|
-
// Build plaintext BPAK envelope
|
|
307
267
|
const typeSet = new Set();
|
|
308
268
|
for (const n of data.nodes ?? [])
|
|
309
269
|
typeSet.add(n.type);
|
|
@@ -326,9 +286,9 @@ export function registerCloudTools(server, backpack) {
|
|
|
326
286
|
const envelope = new Uint8Array(4 + 1 + 4 + headerBytes.length + graphJSON.length);
|
|
327
287
|
let off = 0;
|
|
328
288
|
envelope.set(new Uint8Array([0x42, 0x50, 0x41, 0x4b]), off);
|
|
329
|
-
off += 4;
|
|
289
|
+
off += 4;
|
|
330
290
|
envelope[off] = 0x01;
|
|
331
|
-
off += 1;
|
|
291
|
+
off += 1;
|
|
332
292
|
envelope.set(new Uint8Array(headerLenBuf), off);
|
|
333
293
|
off += 4;
|
|
334
294
|
envelope.set(headerBytes, off);
|
|
@@ -343,7 +303,6 @@ export function registerCloudTools(server, backpack) {
|
|
|
343
303
|
syncHeaders["X-Backpack-Device-Name"] = osModule.hostname();
|
|
344
304
|
syncHeaders["X-Backpack-Device-Hostname"] = osModule.hostname();
|
|
345
305
|
syncHeaders["X-Backpack-Device-Platform"] = osModule.platform();
|
|
346
|
-
// Machine ID
|
|
347
306
|
const idPath = path.join(configDir(), "machine-id");
|
|
348
307
|
let mid;
|
|
349
308
|
try {
|
|
@@ -358,13 +317,12 @@ export function registerCloudTools(server, backpack) {
|
|
|
358
317
|
await fs.writeFile(idPath, mid, "utf-8");
|
|
359
318
|
}
|
|
360
319
|
syncHeaders["X-Backpack-Device-Id"] = mid;
|
|
361
|
-
// Source backpack name
|
|
362
320
|
const entry = backpack.getActiveBackpackEntry();
|
|
363
321
|
if (entry)
|
|
364
322
|
syncHeaders["X-Backpack-Source-Name"] = entry.name;
|
|
365
323
|
}
|
|
366
324
|
catch { }
|
|
367
|
-
const res = await fetch(`${
|
|
325
|
+
const res = await fetch(`${getRelayUrl()}/api/graphs/${encodeURIComponent(name)}/sync`, {
|
|
368
326
|
method: "PUT",
|
|
369
327
|
headers: syncHeaders,
|
|
370
328
|
body: envelope,
|
|
@@ -394,7 +352,6 @@ export function registerCloudTools(server, backpack) {
|
|
|
394
352
|
}
|
|
395
353
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
396
354
|
});
|
|
397
|
-
// --- backpack_cloud_refresh ---
|
|
398
355
|
server.registerTool("backpack_cloud_refresh", {
|
|
399
356
|
title: "Refresh Cloud Status",
|
|
400
357
|
description: "Fetch the current state of the cloud backpack — lists all cloud graphs and KB documents. " +
|
|
@@ -409,10 +366,9 @@ export function registerCloudTools(server, backpack) {
|
|
|
409
366
|
}
|
|
410
367
|
const email = emailFromToken(token);
|
|
411
368
|
const lines = [`Cloud backpack${email ? ` (${email})` : ""}:\n`];
|
|
412
|
-
// Fetch graphs
|
|
413
369
|
let graphCount = 0;
|
|
414
370
|
try {
|
|
415
|
-
const res = await fetch(`${
|
|
371
|
+
const res = await fetch(`${getRelayUrl()}/api/graphs`, {
|
|
416
372
|
headers: { "Authorization": `Bearer ${token}` },
|
|
417
373
|
});
|
|
418
374
|
if (res.ok) {
|
|
@@ -441,9 +397,8 @@ export function registerCloudTools(server, backpack) {
|
|
|
441
397
|
catch (err) {
|
|
442
398
|
lines.push(`Graphs: error (${err.message})`);
|
|
443
399
|
}
|
|
444
|
-
// Fetch KB documents
|
|
445
400
|
try {
|
|
446
|
-
const res = await fetch(`${
|
|
401
|
+
const res = await fetch(`${getRelayUrl()}/api/kb/documents`, {
|
|
447
402
|
headers: { "Authorization": `Bearer ${token}` },
|
|
448
403
|
});
|
|
449
404
|
if (res.ok) {
|
|
@@ -465,26 +420,230 @@ export function registerCloudTools(server, backpack) {
|
|
|
465
420
|
}
|
|
466
421
|
}
|
|
467
422
|
catch {
|
|
468
|
-
// KB endpoint may not exist — skip silently
|
|
469
423
|
}
|
|
470
|
-
// Compare with local
|
|
471
424
|
try {
|
|
472
425
|
const local = await backpack.listOntologies();
|
|
473
426
|
if (local.length > 0) {
|
|
474
427
|
lines.push(`\nLocal graphs (${local.length}): ${local.map(o => o.name).join(", ")}`);
|
|
475
428
|
}
|
|
476
429
|
}
|
|
477
|
-
catch {
|
|
430
|
+
catch { }
|
|
431
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
432
|
+
});
|
|
433
|
+
server.registerTool("backpack_cloud_containers", {
|
|
434
|
+
title: "List Cloud Containers",
|
|
435
|
+
description: "List the user's cloud sync_backpack containers (groupings of graphs). Each container has an origin (cloud-native or device-synced) and holds related graphs and KB docs. Use this to plan moves or before creating a new container.",
|
|
436
|
+
annotations: { readOnlyHint: true },
|
|
437
|
+
}, async () => {
|
|
438
|
+
trackEvent("tool_call", { tool: "backpack_cloud_containers" });
|
|
439
|
+
const token = await resolveCloudToken();
|
|
440
|
+
if (!token) {
|
|
441
|
+
return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
|
|
442
|
+
}
|
|
443
|
+
let containers;
|
|
444
|
+
try {
|
|
445
|
+
containers = await fetchContainers(token);
|
|
446
|
+
}
|
|
447
|
+
catch (err) {
|
|
448
|
+
return { content: [{ type: "text", text: `Failed to list containers: ${err.message}` }] };
|
|
449
|
+
}
|
|
450
|
+
if (containers.length === 0) {
|
|
451
|
+
return { content: [{ type: "text", text: "No cloud containers yet. Use backpack_cloud_container_create to make one." }] };
|
|
452
|
+
}
|
|
453
|
+
const email = emailFromToken(token);
|
|
454
|
+
const lines = [`Cloud containers${email ? ` (${email})` : ""}: ${containers.length}\n`];
|
|
455
|
+
for (const c of containers) {
|
|
456
|
+
const origin = c.origin_kind === "local"
|
|
457
|
+
? `device-synced${c.origin_device_name ? ` from ${c.origin_device_name}` : ""}`
|
|
458
|
+
: "cloud-native";
|
|
459
|
+
const tagStr = c.tags && c.tags.length > 0 ? ` tags=[${c.tags.join(", ")}]` : "";
|
|
460
|
+
lines.push(`- ${c.name} (${origin})${tagStr}`);
|
|
461
|
+
lines.push(` id=${c.id}`);
|
|
462
|
+
}
|
|
478
463
|
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
479
464
|
});
|
|
465
|
+
server.registerTool("backpack_cloud_container_create", {
|
|
466
|
+
title: "Create Cloud Container",
|
|
467
|
+
description: "Create a new cloud-native sync_backpack container to group graphs. Use this when you want a logical grouping (e.g. 'projects', 'client-acme') that doesn't yet exist. Idempotent: if a container with the same name already exists for this user, the existing one is returned.",
|
|
468
|
+
inputSchema: {
|
|
469
|
+
name: z.string().describe("Display name for the new container (e.g. 'projects', 'client-acme')"),
|
|
470
|
+
color: z.string().optional().describe("Hex color for the container's UI dot (defaults to a standard purple)"),
|
|
471
|
+
tags: z.array(z.string()).optional().describe("Optional tags for filtering"),
|
|
472
|
+
},
|
|
473
|
+
}, async ({ name, color, tags }) => {
|
|
474
|
+
trackEvent("tool_call", { tool: "backpack_cloud_container_create" });
|
|
475
|
+
const token = await resolveCloudToken();
|
|
476
|
+
if (!token) {
|
|
477
|
+
return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
|
|
478
|
+
}
|
|
479
|
+
const res = await fetch(`${getRelayUrl()}/api/sync/register`, {
|
|
480
|
+
method: "POST",
|
|
481
|
+
headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` },
|
|
482
|
+
body: JSON.stringify({ name, color, tags: tags ?? [] }),
|
|
483
|
+
});
|
|
484
|
+
if (!res.ok) {
|
|
485
|
+
const body = await res.text().catch(() => "");
|
|
486
|
+
return { content: [{ type: "text", text: `Failed to create container: ${res.status} ${body}` }] };
|
|
487
|
+
}
|
|
488
|
+
const created = await res.json();
|
|
489
|
+
const verb = res.status === 201 ? "Created" : "Container already existed";
|
|
490
|
+
return { content: [{ type: "text", text: `${verb}: ${created.name} (id=${created.id}, origin=${created.origin_kind})` }] };
|
|
491
|
+
});
|
|
492
|
+
server.registerTool("backpack_cloud_container_rename", {
|
|
493
|
+
title: "Rename Cloud Container",
|
|
494
|
+
description: "Rename a cloud sync_backpack container. Looks up the container by its current name. Color and tags can also be updated; omitted fields are preserved.",
|
|
495
|
+
inputSchema: {
|
|
496
|
+
name: z.string().describe("Current container name"),
|
|
497
|
+
newName: z.string().optional().describe("New container name"),
|
|
498
|
+
color: z.string().optional().describe("New color (hex)"),
|
|
499
|
+
tags: z.array(z.string()).optional().describe("New tags (replaces existing)"),
|
|
500
|
+
},
|
|
501
|
+
}, async ({ name, newName, color, tags }) => {
|
|
502
|
+
trackEvent("tool_call", { tool: "backpack_cloud_container_rename" });
|
|
503
|
+
const token = await resolveCloudToken();
|
|
504
|
+
if (!token) {
|
|
505
|
+
return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
|
|
506
|
+
}
|
|
507
|
+
if (!newName && !color && !tags) {
|
|
508
|
+
return { content: [{ type: "text", text: "Nothing to update — provide newName, color, or tags." }] };
|
|
509
|
+
}
|
|
510
|
+
const lookup = await resolveContainerByName(token, name);
|
|
511
|
+
if (!lookup.ok) {
|
|
512
|
+
const msg = lookup.reason === "fetch_failed"
|
|
513
|
+
? `Failed to look up container "${name}": ${lookup.error ?? "fetch failed"}`
|
|
514
|
+
: `Container "${name}" not found.`;
|
|
515
|
+
return { content: [{ type: "text", text: msg }] };
|
|
516
|
+
}
|
|
517
|
+
const target = lookup.container;
|
|
518
|
+
const body = {};
|
|
519
|
+
if (newName)
|
|
520
|
+
body.name = newName;
|
|
521
|
+
if (color)
|
|
522
|
+
body.color = color;
|
|
523
|
+
if (tags)
|
|
524
|
+
body.tags = tags;
|
|
525
|
+
const res = await fetch(`${getRelayUrl()}/api/sync/backpacks/${target.id}`, {
|
|
526
|
+
method: "PATCH",
|
|
527
|
+
headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` },
|
|
528
|
+
body: JSON.stringify(body),
|
|
529
|
+
});
|
|
530
|
+
if (!res.ok) {
|
|
531
|
+
const errBody = await res.text().catch(() => "");
|
|
532
|
+
return { content: [{ type: "text", text: `Rename failed: ${res.status} ${errBody}` }] };
|
|
533
|
+
}
|
|
534
|
+
const updated = await res.json();
|
|
535
|
+
return { content: [{ type: "text", text: `Renamed "${name}" → "${updated.name}" (id=${updated.id}).` }] };
|
|
536
|
+
});
|
|
537
|
+
server.registerTool("backpack_cloud_container_delete", {
|
|
538
|
+
title: "Delete Cloud Container",
|
|
539
|
+
description: "Delete an empty cloud sync_backpack container. The server refuses to delete a container that still has graphs or KB docs — move them out first with backpack_cloud_move_graph / backpack_cloud_move_kb.",
|
|
540
|
+
inputSchema: {
|
|
541
|
+
name: z.string().describe("Name of the container to delete"),
|
|
542
|
+
},
|
|
543
|
+
}, async ({ name }) => {
|
|
544
|
+
trackEvent("tool_call", { tool: "backpack_cloud_container_delete" });
|
|
545
|
+
const token = await resolveCloudToken();
|
|
546
|
+
if (!token) {
|
|
547
|
+
return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
|
|
548
|
+
}
|
|
549
|
+
const lookup = await resolveContainerByName(token, name);
|
|
550
|
+
if (!lookup.ok) {
|
|
551
|
+
const msg = lookup.reason === "fetch_failed"
|
|
552
|
+
? `Failed to look up container "${name}": ${lookup.error ?? "fetch failed"}`
|
|
553
|
+
: `Container "${name}" not found.`;
|
|
554
|
+
return { content: [{ type: "text", text: msg }] };
|
|
555
|
+
}
|
|
556
|
+
const target = lookup.container;
|
|
557
|
+
const res = await fetch(`${getRelayUrl()}/api/sync/backpacks/${target.id}`, {
|
|
558
|
+
method: "DELETE",
|
|
559
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
560
|
+
});
|
|
561
|
+
if (res.status === 204) {
|
|
562
|
+
return { content: [{ type: "text", text: `Deleted container "${name}".` }] };
|
|
563
|
+
}
|
|
564
|
+
const errBody = await res.text().catch(() => "");
|
|
565
|
+
if (res.status === 422) {
|
|
566
|
+
return { content: [{ type: "text", text: `Cannot delete "${name}": still has graphs or KB docs. Move them out first, then retry.` }] };
|
|
567
|
+
}
|
|
568
|
+
return { content: [{ type: "text", text: `Delete failed: ${res.status} ${errBody}` }] };
|
|
569
|
+
});
|
|
570
|
+
server.registerTool("backpack_cloud_move_graph", {
|
|
571
|
+
title: "Move Cloud Graph Between Containers",
|
|
572
|
+
description: "Move a graph (by name) into a different sync_backpack container. The graph data is unchanged — only its container assignment is updated. Useful for reorganizing graphs into client-, project-, or topic-based containers.",
|
|
573
|
+
inputSchema: {
|
|
574
|
+
graphName: z.string().describe("Name of the graph to move"),
|
|
575
|
+
toContainer: z.string().describe("Name of the destination container"),
|
|
576
|
+
},
|
|
577
|
+
}, async ({ graphName, toContainer }) => {
|
|
578
|
+
trackEvent("tool_call", { tool: "backpack_cloud_move_graph" });
|
|
579
|
+
const token = await resolveCloudToken();
|
|
580
|
+
if (!token) {
|
|
581
|
+
return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
|
|
582
|
+
}
|
|
583
|
+
const lookup = await resolveContainerByName(token, toContainer);
|
|
584
|
+
if (!lookup.ok) {
|
|
585
|
+
const msg = lookup.reason === "fetch_failed"
|
|
586
|
+
? `Failed to look up destination container "${toContainer}": ${lookup.error ?? "fetch failed"}`
|
|
587
|
+
: `Destination container "${toContainer}" not found. Create it first with backpack_cloud_container_create.`;
|
|
588
|
+
return { content: [{ type: "text", text: msg }] };
|
|
589
|
+
}
|
|
590
|
+
const dest = lookup.container;
|
|
591
|
+
const res = await fetch(`${getRelayUrl()}/api/sync/backpacks/${dest.id}/move-graph`, {
|
|
592
|
+
method: "POST",
|
|
593
|
+
headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` },
|
|
594
|
+
body: JSON.stringify({ name: graphName }),
|
|
595
|
+
});
|
|
596
|
+
if (res.status === 404) {
|
|
597
|
+
return { content: [{ type: "text", text: `Graph "${graphName}" not found in your cloud account.` }] };
|
|
598
|
+
}
|
|
599
|
+
if (!res.ok) {
|
|
600
|
+
const errBody = await res.text().catch(() => "");
|
|
601
|
+
return { content: [{ type: "text", text: `Move failed: ${res.status} ${errBody}` }] };
|
|
602
|
+
}
|
|
603
|
+
return { content: [{ type: "text", text: `Moved graph "${graphName}" into container "${toContainer}".` }] };
|
|
604
|
+
});
|
|
605
|
+
server.registerTool("backpack_cloud_move_kb", {
|
|
606
|
+
title: "Move Cloud KB Doc Between Containers",
|
|
607
|
+
description: "Move a KB document (by id) into a different sync_backpack container.",
|
|
608
|
+
inputSchema: {
|
|
609
|
+
docId: z.string().describe("KB document id"),
|
|
610
|
+
toContainer: z.string().describe("Name of the destination container"),
|
|
611
|
+
},
|
|
612
|
+
}, async ({ docId, toContainer }) => {
|
|
613
|
+
trackEvent("tool_call", { tool: "backpack_cloud_move_kb" });
|
|
614
|
+
const token = await resolveCloudToken();
|
|
615
|
+
if (!token) {
|
|
616
|
+
return { content: [{ type: "text", text: "Not signed in. Use backpack_cloud_login first." }] };
|
|
617
|
+
}
|
|
618
|
+
const lookup = await resolveContainerByName(token, toContainer);
|
|
619
|
+
if (!lookup.ok) {
|
|
620
|
+
const msg = lookup.reason === "fetch_failed"
|
|
621
|
+
? `Failed to look up destination container "${toContainer}": ${lookup.error ?? "fetch failed"}`
|
|
622
|
+
: `Destination container "${toContainer}" not found.`;
|
|
623
|
+
return { content: [{ type: "text", text: msg }] };
|
|
624
|
+
}
|
|
625
|
+
const dest = lookup.container;
|
|
626
|
+
const res = await fetch(`${getRelayUrl()}/api/sync/backpacks/${dest.id}/move-kb`, {
|
|
627
|
+
method: "POST",
|
|
628
|
+
headers: { "Content-Type": "application/json", Authorization: `Bearer ${token}` },
|
|
629
|
+
body: JSON.stringify({ id: docId }),
|
|
630
|
+
});
|
|
631
|
+
if (res.status === 404) {
|
|
632
|
+
return { content: [{ type: "text", text: `KB doc "${docId}" not found.` }] };
|
|
633
|
+
}
|
|
634
|
+
if (!res.ok) {
|
|
635
|
+
const errBody = await res.text().catch(() => "");
|
|
636
|
+
return { content: [{ type: "text", text: `Move failed: ${res.status} ${errBody}` }] };
|
|
637
|
+
}
|
|
638
|
+
return { content: [{ type: "text", text: `Moved KB doc "${docId}" into container "${toContainer}".` }] };
|
|
639
|
+
});
|
|
480
640
|
}
|
|
481
|
-
/** Count cloud graphs (for the hint in backpack_list). Returns 0 on any error. */
|
|
482
641
|
export async function countCloudGraphs() {
|
|
483
642
|
try {
|
|
484
643
|
const token = await resolveCloudToken();
|
|
485
644
|
if (!token)
|
|
486
645
|
return 0;
|
|
487
|
-
const res = await fetch(`${
|
|
646
|
+
const res = await fetch(`${getRelayUrl()}/api/graphs`, {
|
|
488
647
|
headers: { "Authorization": `Bearer ${token}` },
|
|
489
648
|
});
|
|
490
649
|
if (!res.ok)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/cloud-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloud-tools.js","sourceRoot":"","sources":["../../../src/mcp/tools/cloud-tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAS7B,KAAK,UAAU,eAAe,CAAC,KAAa;IACxC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,qBAAqB,EAAE;QAC3D,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;KAChD,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE;QACP,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAE1B,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;AAChC,CAAC;AASD,KAAK,UAAU,sBAAsB,CAAC,KAAa,EAAE,IAAY;IAC7D,IAAI,GAAqB,CAAC;IAC1B,IAAI,CAAC;QACD,GAAG,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,EAAE,CAAC;QACT,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;IAChF,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACvF,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,QAAkB;IACpE,MAAM,CAAC,YAAY,CAAC,sBAAsB,EAAE;QACxC,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,gEAAgE;YACzE,0FAA0F;KACjG,EAAE,KAAK,IAAI,EAAE;QACV,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,EAAE,CAAC;QAC3C,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;YACvC,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,oBAAoB,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,gDAAgD,EAAE,CAAC;aAC9I,CAAC;QACN,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9F,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACpC,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,qDAAqD,EAAE,CAAC;SAC3I,CAAC;IACN,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,qBAAqB,EAAE;QACvC,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,wEAAwE;YACjF,oFAAoF;YACpF,4EAA4E;QAChF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACtC,EAAE,KAAK,IAAI,EAAE;QACV,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0FAA0F,EAAE,CAAC;aACzI,CAAC;QACN,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,aAAa,EAAE;YACnD,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE;SAClD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACrB,OAAO;oBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,qEAAqE,EAAE,CAAC;iBACpH,CAAC;YACN,CAAC;YACD,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gCAAgC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;aAC3F,CAAC;QACN,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAO1B,CAAC;QACJ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,uGAAuG,EAAE,CAAC;aACtJ,CAAC;QACN,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,aAAa,CAAC,CAAC;QAC3F,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;YACrB,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,SAAS;gBACX,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;gBACpB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,QAAQ,KAAK,CAAC,CAAC,SAAS,IAAI,GAAG,WAAW,CAAC,CAAC,SAAS,IAAI,GAAG,QAAQ,CAAC,CAAC;YAC/F,IAAI,CAAC,CAAC,WAAW;gBACb,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC/D,CAAC;IACN,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE;QACzC,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,sFAAsF;YAC/F,0FAA0F;YAC1F,uFAAuF;YACvF,kFAAkF;QACtF,WAAW,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YAC9D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;SAChH;KACJ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;QAC/B,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO;gBACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC;aAC/F,CAAC;QACN,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,aAAa,EAAE;YACvD,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE;SAClD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC,EAAE,CAAC;QAC9F,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAG9B,CAAC;QACJ,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,IAAI,gCAAgC,EAAE,CAAC,EAAE,CAAC;QAC1G,CAAC;QACD,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,IAAI,qKAAqK,EAAE,CAAC,EAAE,CAAC;QAC/O,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE;YACnF,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE;SAClD,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,6BAA6B,IAAI,MAAM,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;QACnH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAClC,MAAM,SAAS,GAAG,WAAW,IAAI,IAAI,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,wBAAwB,SAAS,yFAAyF,EAAE,CAAC,EAAE,CAAC;QACtL,CAAC;QACD,MAAM,QAAQ,CAAC,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACvD,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,aAAa,IAAI,oBAAoB,SAAS,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,kEAAkE,EAAE,CAAC;SAC9N,CAAC;IACN,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,uBAAuB,EAAE;QACzC,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,8FAA8F;YACvG,gHAAgH;YAChH,4EAA4E;QAChF,WAAW,EAAE;YACT,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;YACnF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;SAC9G;QACD,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACtC,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7B,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,CAAC;QAC5G,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,IAAI,UAAoB,CAAC;QACzB,IAAI,QAAQ,EAAE,CAAC;YACX,UAAU,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,CAAC;aACI,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,aAAa,EAAE;gBACvD,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE;aAClD,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;gBACd,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gCAAgC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;YAC5G,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAG9B,CAAC;YACJ,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,yEAAyE,EAAE,CAAC,EAAE,CAAC;QACrI,CAAC;QACD,MAAM,OAAO,GAOP,EAAE,CAAC;QACT,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE;oBAC/E,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE;iBAClD,CAAC,CAAC;gBACH,IAAI,CAAC,GAAG,CAAC,EAAE;oBACP,SAAS;gBACb,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAM1B,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,KAAK;oBACX,SAAS;gBACb,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;oBACrC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;wBAC5C,OAAO,IAAI,CAAC;oBAChB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;wBAC3C,IAAI,OAAO,CAAC,KAAK,QAAQ;4BACrB,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAChD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;4BAChB,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;wBAC/F,OAAO,KAAK,CAAC;oBACjB,CAAC,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACtB,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAY,IAAI,CAAC,CAAC,EAAE;iBAC1F,CAAC,CAAC,CAAC;gBACJ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC3C,CAAC;YACL,CAAC;YACD,MAAM,CAAC,CAAC,CAAC;QACb,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mBAAmB,KAAK,YAAY,UAAU,CAAC,MAAM,mEAAmE,EAAE,CAAC,EAAE,CAAC;QACpL,CAAC;QACD,MAAM,KAAK,GAAa,CAAC,6BAA6B,KAAK,MAAM,CAAC,CAAC;QACnE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC/F,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACvD,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,KAAK,kDAAkD,CAAC,CAAC;QAC5G,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,qBAAqB,EAAE;QACvC,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,6DAA6D;YACtE,8EAA8E;YAC9E,4DAA4D;YAC5D,4EAA4E;QAChF,WAAW,EAAE;YACT,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;SACvG;KACJ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACvB,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACzD,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,CAAC;QAC5G,CAAC;QACD,IAAI,KAAe,CAAC;QACpB,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,SAAS,cAAc,EAAE,CAAC,EAAE,CAAC;YACnG,CAAC;YACD,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;QACxB,CAAC;aACI,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC5C,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,EAAE,CAAC;YACtF,CAAC;QACL,CAAC;QACD,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBAC/C,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;gBAClC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;oBAC5B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,MAAqB,CAAC,CAAC;gBAC3F,MAAM,QAAQ,GAAG,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxH,MAAM,SAAS,GAAG;oBACd,MAAM,EAAE,WAAW;oBACnB,IAAI,EAAE,gBAAgB;oBACtB,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACpC,aAAa,EAAE,IAAI;oBACnB,QAAQ;oBACR,WAAW,EAAE,CAAC;oBACd,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;oBACnC,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;oBACnC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;iBAClC,CAAC;gBACF,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;gBACxE,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;gBACxC,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACnE,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;gBACnF,IAAI,GAAG,GAAG,CAAC,CAAC;gBACZ,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAC5D,GAAG,IAAI,CAAC,CAAC;gBACT,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;gBACrB,GAAG,IAAI,CAAC,CAAC;gBACT,QAAQ,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;gBAChD,GAAG,IAAI,CAAC,CAAC;gBACT,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;gBAC/B,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC;gBAC1B,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBAC7B,MAAM,WAAW,GAA2B;oBACxC,cAAc,EAAE,0BAA0B;oBAC1C,eAAe,EAAE,UAAU,KAAK,EAAE;iBACrC,CAAC;gBACF,IAAI,CAAC;oBACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;oBACpC,WAAW,CAAC,wBAAwB,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBAC5D,WAAW,CAAC,4BAA4B,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBAChE,WAAW,CAAC,4BAA4B,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBAChE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,YAAY,CAAC,CAAC;oBACpD,IAAI,GAAW,CAAC;oBAChB,IAAI,CAAC;wBACD,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBACtD,CAAC;oBACD,MAAM,CAAC;wBACH,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC/G,IAAI,CAAC;4BACD,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC9D,CAAC;wBACD,MAAM,CAAC,CAAC,CAAC;wBACT,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;oBAC7C,CAAC;oBACD,WAAW,CAAC,sBAAsB,CAAC,GAAG,GAAG,CAAC;oBAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,sBAAsB,EAAE,CAAC;oBAChD,IAAI,KAAK;wBACL,WAAW,CAAC,wBAAwB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;gBAC3D,CAAC;gBACD,MAAM,CAAC,CAAC,CAAC;gBACT,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,eAAe,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE;oBACpF,MAAM,EAAE,KAAK;oBACb,OAAO,EAAE,WAAW;oBACpB,IAAI,EAAE,QAAQ;iBACjB,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;oBACT,MAAM,EAAE,CAAC;gBACb,CAAC;qBACI,CAAC;oBACF,MAAM,EAAE,CAAC;oBACT,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBACjD,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,KAAK,GAAG,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,KAAM,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,CAAC,wBAAwB,MAAM,YAAY,MAAM,eAAe,KAAK,CAAC,MAAM,UAAU,CAAC,CAAC;QACtG,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxB,KAAK,MAAM,CAAC,IAAI,MAAM;gBAClB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,4FAA4F,CAAC,CAAC;QAC7G,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE;QAC1C,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EAAE,2FAA2F;YACpG,6EAA6E;YAC7E,4EAA4E;QAChF,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACtC,EAAE,KAAK,IAAI,EAAE;QACV,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,CAAC;QAC5G,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GAAa,CAAC,iBAAiB,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3E,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,aAAa,EAAE;gBACnD,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE;aAClD,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACT,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAO1B,CAAC;gBACJ,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC3B,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACpB,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;oBACzC,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;wBACrB,MAAM,MAAM,GAAa,EAAE,CAAC;wBAC5B,IAAI,CAAC,CAAC,SAAS;4BACX,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBAC7B,IAAI,CAAC,CAAC,MAAM,KAAK,OAAO;4BACpB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wBACpE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,GAAG,QAAQ,KAAK,CAAC,CAAC,SAAS,IAAI,GAAG,WAAW,CAAC,CAAC,SAAS,IAAI,GAAG,QAAQ,CAAC,CAAC;oBACrG,CAAC;gBACL,CAAC;qBACI,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC/B,CAAC;YACL,CAAC;iBACI,CAAC;gBACF,KAAK,CAAC,IAAI,CAAC,4BAA4B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1D,CAAC;QACL,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACT,KAAK,CAAC,IAAI,CAAC,kBAAmB,GAAa,CAAC,OAAO,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,mBAAmB,EAAE;gBACzD,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE;aAClD,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACT,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,GAAG,CAAC,IAAI,EAMzC,CAAC;gBACF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClB,KAAK,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;oBAC/C,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;wBACnB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;wBAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC;wBACxD,KAAK,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,MAAM,GAAG,CAAC,CAAC;oBAC3C,CAAC;gBACL,CAAC;qBACI,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;gBACvC,CAAC;YACL,CAAC;iBACI,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1B,KAAK,CAAC,IAAI,CAAC,oCAAoC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;YAClE,CAAC;QACL,CAAC;QACD,MAAM,CAAC;QACP,CAAC;QACD,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;YAC9C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,mBAAmB,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzF,CAAC;QACL,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;QACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,2BAA2B,EAAE;QAC7C,KAAK,EAAE,uBAAuB;QAC9B,WAAW,EAAE,qOAAqO;QAClP,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;KACtC,EAAE,KAAK,IAAI,EAAE;QACV,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,CAAC;QAC5G,CAAC;QACD,IAAI,UAA4B,CAAC;QACjC,IAAI,CAAC;YACD,UAAU,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,GAAG,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,8BAA+B,GAAa,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QAClH,CAAC;QACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,2EAA2E,EAAE,CAAC,EAAE,CAAC;QACvI,CAAC;QACD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,KAAK,GAAa,CAAC,mBAAmB,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC;QAClG,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,CAAC,CAAC,WAAW,KAAK,OAAO;gBACpC,CAAC,CAAC,gBAAgB,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC/E,CAAC,CAAC,cAAc,CAAC;YACrB,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAClF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,iCAAiC,EAAE;QACnD,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,iRAAiR;QAC9R,WAAW,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qEAAqE,CAAC;YAChG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;YAC7G,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;SAC/E;KACJ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QAC/B,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,CAAC;QAC5G,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,oBAAoB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;YACjF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;SAC1D,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,+BAA+B,GAAG,CAAC,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC/G,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAoB,CAAC;QACnD,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC;QAC1E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,QAAQ,OAAO,CAAC,EAAE,YAAY,OAAO,CAAC,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC;IACxI,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,iCAAiC,EAAE;QACnD,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,uJAAuJ;QACpK,WAAW,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACnD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC7D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACxD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;SAChF;KACJ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE;QACxC,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,CAAC;QAC5G,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC9B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sDAAsD,EAAE,CAAC,EAAE,CAAC;QAClH,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,KAAK,cAAc;gBACxC,CAAC,CAAC,gCAAgC,IAAI,MAAM,MAAM,CAAC,KAAK,IAAI,cAAc,EAAE;gBAC5E,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC;YACvC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;QAChC,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,OAAO;YACP,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;QACxB,IAAI,KAAK;YACL,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI;YACJ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,uBAAuB,MAAM,CAAC,EAAE,EAAE,EAAE;YACxE,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;YACjF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC7B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,CAAC,MAAM,IAAI,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACrG,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAoB,CAAC;QACnD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,YAAY,IAAI,QAAQ,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACvH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,iCAAiC,EAAE;QACnD,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,yMAAyM;QACtN,WAAW,EAAE;YACT,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAC/D;KACJ,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QAClB,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,CAAC;QAC5G,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,KAAK,cAAc;gBACxC,CAAC,CAAC,gCAAgC,IAAI,MAAM,MAAM,CAAC,KAAK,IAAI,cAAc,EAAE;gBAC5E,CAAC,CAAC,cAAc,IAAI,cAAc,CAAC;YACvC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,uBAAuB,MAAM,CAAC,EAAE,EAAE,EAAE;YACxE,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,sBAAsB,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QAC1F,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,IAAI,kEAAkE,EAAE,CAAC,EAAE,CAAC;QACpJ,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,GAAG,CAAC,MAAM,IAAI,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;IACrG,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,2BAA2B,EAAE;QAC7C,KAAK,EAAE,qCAAqC;QAC5C,WAAW,EAAE,4NAA4N;QACzO,WAAW,EAAE;YACT,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC3D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACxE;KACJ,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QACpC,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,CAAC;QAC5G,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,KAAK,cAAc;gBACxC,CAAC,CAAC,4CAA4C,WAAW,MAAM,MAAM,CAAC,KAAK,IAAI,cAAc,EAAE;gBAC/F,CAAC,CAAC,0BAA0B,WAAW,oEAAoE,CAAC;YAChH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,uBAAuB,IAAI,CAAC,EAAE,aAAa,EAAE;YACjF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;YACjF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC5C,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,SAAS,oCAAoC,EAAE,CAAC,EAAE,CAAC;QACnH,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,GAAG,CAAC,MAAM,IAAI,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACnG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,SAAS,qBAAqB,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;IACzH,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,YAAY,CAAC,wBAAwB,EAAE;QAC1C,KAAK,EAAE,sCAAsC;QAC7C,WAAW,EAAE,sEAAsE;QACnF,WAAW,EAAE;YACT,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAC5C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;SACxE;KACJ,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;QAChC,UAAU,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,CAAC;QAC5G,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,KAAK,cAAc;gBACxC,CAAC,CAAC,4CAA4C,WAAW,MAAM,MAAM,CAAC,KAAK,IAAI,cAAc,EAAE;gBAC/F,CAAC,CAAC,0BAA0B,WAAW,cAAc,CAAC;YAC1D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC;QAC9B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,uBAAuB,IAAI,CAAC,EAAE,UAAU,EAAE;YAC9E,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAAE,UAAU,KAAK,EAAE,EAAE;YACjF,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;SACtC,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,KAAK,cAAc,EAAE,CAAC,EAAE,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACV,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,GAAG,CAAC,MAAM,IAAI,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC;QACnG,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iBAAiB,KAAK,qBAAqB,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;IACtH,CAAC,CAAC,CAAC;AACP,CAAC;AACD,MAAM,CAAC,KAAK,UAAU,gBAAgB;IAClC,IAAI,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK;YACN,OAAO,CAAC,CAAC;QACb,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,WAAW,EAAE,aAAa,EAAE;YACnD,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,KAAK,EAAE,EAAE;SAClD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YACP,OAAO,CAAC,CAAC;QACb,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,MAAM,CAAC;QACH,OAAO,CAAC,CAAC;IACb,CAAC;AACL,CAAC"}
|
|
@@ -165,7 +165,7 @@ export function registerShareTools(server, backpack) {
|
|
|
165
165
|
"(email, USB, Signal). Recipient decrypts with the secret key.",
|
|
166
166
|
inputSchema: {
|
|
167
167
|
name: z.string().describe("Name of the backpack to export"),
|
|
168
|
-
output: z.string().describe("Output file path (e.g., ./
|
|
168
|
+
output: z.string().describe("Output file path (e.g., ./my-graph.bpak)"),
|
|
169
169
|
encrypted: z
|
|
170
170
|
.boolean()
|
|
171
171
|
.default(true)
|