@nookplot/cli 0.6.66 → 0.6.68

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.
@@ -0,0 +1,14 @@
1
+ /**
2
+ * GPU marketplace CLI commands.
3
+ *
4
+ * nookplot gpu benchmark — Run standardized benchmark (detects GPU specs)
5
+ * nookplot gpu register — Submit attestation on-chain
6
+ * nookplot gpu update — Re-run benchmark + update attestation
7
+ * nookplot gpu status — Show attestation, availability, active jobs
8
+ * nookplot gpu list — Browse available GPUs
9
+ * nookplot gpu challenge — Challenge a provider's benchmark
10
+ *
11
+ * @module commands/gpu
12
+ */
13
+ import type { Command } from "commander";
14
+ export declare function registerGpuCommand(program: Command): void;
@@ -0,0 +1,424 @@
1
+ /**
2
+ * GPU marketplace CLI commands.
3
+ *
4
+ * nookplot gpu benchmark — Run standardized benchmark (detects GPU specs)
5
+ * nookplot gpu register — Submit attestation on-chain
6
+ * nookplot gpu update — Re-run benchmark + update attestation
7
+ * nookplot gpu status — Show attestation, availability, active jobs
8
+ * nookplot gpu list — Browse available GPUs
9
+ * nookplot gpu challenge — Challenge a provider's benchmark
10
+ *
11
+ * @module commands/gpu
12
+ */
13
+ import chalk from "chalk";
14
+ import ora from "ora";
15
+ import { ethers } from "ethers";
16
+ import { loadConfig, validateConfig } from "../config.js";
17
+ import { gatewayRequest, isGatewayError } from "../utils/http.js";
18
+ export function registerGpuCommand(program) {
19
+ const gpu = program
20
+ .command("gpu")
21
+ .description("GPU compute marketplace — benchmark, attest, browse, challenge");
22
+ // ============================================================
23
+ // nookplot gpu benchmark
24
+ // ============================================================
25
+ gpu
26
+ .command("benchmark")
27
+ .description("Run standardized GPU benchmark and output hash")
28
+ .option("--json", "Output raw JSON")
29
+ .action(async (opts) => {
30
+ try {
31
+ await runBenchmark(opts);
32
+ }
33
+ catch (err) {
34
+ const msg = err instanceof Error ? err.message : String(err);
35
+ console.error(chalk.red(`\nBenchmark failed: ${msg}`));
36
+ process.exit(1);
37
+ }
38
+ });
39
+ // ============================================================
40
+ // nookplot gpu register
41
+ // ============================================================
42
+ gpu
43
+ .command("register")
44
+ .description("Submit GPU benchmark attestation on-chain")
45
+ .option("--benchmark-hash <hash>", "Benchmark hash (from gpu benchmark)")
46
+ .option("--gpu-model <model>", "GPU model (e.g. 'NVIDIA A100 40GB')")
47
+ .option("--vram <gb>", "GPU VRAM in GB", parseInt)
48
+ .option("--compute <cap>", "CUDA compute capability (e.g. '8.0')")
49
+ .option("--cuda <version>", "CUDA version (e.g. '12.1')")
50
+ .option("--json", "Output raw JSON")
51
+ .action(async (opts) => {
52
+ try {
53
+ await runRegister(program.opts(), opts);
54
+ }
55
+ catch (err) {
56
+ const msg = err instanceof Error ? err.message : String(err);
57
+ console.error(chalk.red(`\nRegistration failed: ${msg}`));
58
+ process.exit(1);
59
+ }
60
+ });
61
+ // ============================================================
62
+ // nookplot gpu update
63
+ // ============================================================
64
+ gpu
65
+ .command("update")
66
+ .description("Update attestation with new benchmark hash")
67
+ .requiredOption("--benchmark-hash <hash>", "New benchmark hash")
68
+ .option("--json", "Output raw JSON")
69
+ .action(async (opts) => {
70
+ try {
71
+ await runUpdate(program.opts(), opts);
72
+ }
73
+ catch (err) {
74
+ const msg = err instanceof Error ? err.message : String(err);
75
+ console.error(chalk.red(`\nUpdate failed: ${msg}`));
76
+ process.exit(1);
77
+ }
78
+ });
79
+ // ============================================================
80
+ // nookplot gpu status
81
+ // ============================================================
82
+ gpu
83
+ .command("status")
84
+ .description("Show your GPU attestation and availability status")
85
+ .option("--json", "Output raw JSON")
86
+ .action(async (opts) => {
87
+ try {
88
+ await runGpuStatus(program.opts(), opts);
89
+ }
90
+ catch (err) {
91
+ const msg = err instanceof Error ? err.message : String(err);
92
+ console.error(chalk.red(`\nStatus check failed: ${msg}`));
93
+ process.exit(1);
94
+ }
95
+ });
96
+ // ============================================================
97
+ // nookplot gpu list
98
+ // ============================================================
99
+ gpu
100
+ .command("list")
101
+ .description("Browse available GPUs on the marketplace")
102
+ .option("--model <model>", "Filter by GPU model")
103
+ .option("--min-vram <gb>", "Minimum VRAM in GB", parseInt)
104
+ .option("--status <status>", "Filter by status (online|degraded|any)")
105
+ .option("--limit <n>", "Max results", parseInt)
106
+ .option("--json", "Output raw JSON")
107
+ .action(async (opts) => {
108
+ try {
109
+ await runList(program.opts(), opts);
110
+ }
111
+ catch (err) {
112
+ const msg = err instanceof Error ? err.message : String(err);
113
+ console.error(chalk.red(`\nListing failed: ${msg}`));
114
+ process.exit(1);
115
+ }
116
+ });
117
+ // ============================================================
118
+ // nookplot gpu challenge
119
+ // ============================================================
120
+ gpu
121
+ .command("challenge <listingId>")
122
+ .description("Challenge a GPU provider to verify performance")
123
+ .requiredOption("--provider <address>", "Provider address")
124
+ .requiredOption("--input-cid <cid>", "IPFS CID of test workload")
125
+ .option("--min-tflops <n>", "Expected minimum TFLOPS", parseFloat)
126
+ .option("--json", "Output raw JSON")
127
+ .action(async (listingId, opts) => {
128
+ try {
129
+ await runChallenge(program.opts(), listingId, opts);
130
+ }
131
+ catch (err) {
132
+ const msg = err instanceof Error ? err.message : String(err);
133
+ console.error(chalk.red(`\nChallenge failed: ${msg}`));
134
+ process.exit(1);
135
+ }
136
+ });
137
+ }
138
+ // ============================================================
139
+ // Command Implementations
140
+ // ============================================================
141
+ async function runBenchmark(opts) {
142
+ const spinner = ora("Detecting GPU hardware...").start();
143
+ // Detect GPU via nvidia-smi (best-effort)
144
+ let gpuInfo = { model: "Unknown GPU", vramGb: 0, driverVersion: "", cudaVersion: "" };
145
+ try {
146
+ const { execSync } = await import("child_process");
147
+ const nvidiaSmi = execSync("nvidia-smi --query-gpu=name,memory.total,driver_version --format=csv,noheader,nounits", { encoding: "utf-8" }).trim();
148
+ const parts = nvidiaSmi.split(",").map((s) => s.trim());
149
+ if (parts.length >= 3) {
150
+ gpuInfo.model = parts[0];
151
+ gpuInfo.vramGb = Math.round(parseInt(parts[1], 10) / 1024);
152
+ gpuInfo.driverVersion = parts[2];
153
+ }
154
+ // Try to get CUDA version
155
+ try {
156
+ const cudaOut = execSync("nvcc --version 2>/dev/null | grep release", { encoding: "utf-8" }).trim();
157
+ const cudaMatch = cudaOut.match(/release (\d+\.\d+)/);
158
+ if (cudaMatch)
159
+ gpuInfo.cudaVersion = cudaMatch[1];
160
+ }
161
+ catch { /* nvcc not found — ok */ }
162
+ }
163
+ catch {
164
+ spinner.warn("nvidia-smi not found — enter GPU details manually");
165
+ }
166
+ spinner.text = "Running benchmark workload...";
167
+ // Generate a synthetic benchmark output (canonical workload would be a PyTorch script)
168
+ const benchmarkOutput = {
169
+ version: "1.0",
170
+ benchmarkVersion: "nookplot-bench-v1",
171
+ gpu: {
172
+ model: gpuInfo.model,
173
+ vramGb: gpuInfo.vramGb,
174
+ driverVersion: gpuInfo.driverVersion,
175
+ cudaVersion: gpuInfo.cudaVersion,
176
+ },
177
+ results: {
178
+ // In production: actual TFLOPS measurement from canonical workload
179
+ tflopsFp32: 0,
180
+ timeToCompleteMs: 0,
181
+ },
182
+ environment: {
183
+ workloadHash: "0".repeat(64), // SHA-256 of benchmark workload code
184
+ os: process.platform,
185
+ },
186
+ timestamp: Math.floor(Date.now() / 1000),
187
+ };
188
+ // Compute benchmark hash (keccak256 of the canonical JSON)
189
+ const jsonStr = JSON.stringify(benchmarkOutput, null, 0);
190
+ const benchmarkHash = ethers.keccak256(ethers.toUtf8Bytes(jsonStr));
191
+ spinner.succeed("Benchmark complete");
192
+ if (opts.json) {
193
+ console.log(JSON.stringify({ benchmarkOutput, benchmarkHash }, null, 2));
194
+ return;
195
+ }
196
+ console.log(chalk.bold("\n GPU Benchmark Results\n"));
197
+ console.log(` GPU: ${chalk.cyan(gpuInfo.model)}`);
198
+ console.log(` VRAM: ${chalk.cyan(gpuInfo.vramGb + " GB")}`);
199
+ console.log(` CUDA: ${chalk.dim(gpuInfo.cudaVersion || "unknown")}`);
200
+ console.log(` Driver: ${chalk.dim(gpuInfo.driverVersion || "unknown")}`);
201
+ console.log("");
202
+ console.log(` Hash: ${chalk.yellow(benchmarkHash)}`);
203
+ console.log("");
204
+ console.log(chalk.dim(" Use `nookplot gpu register` to submit this attestation on-chain."));
205
+ console.log("");
206
+ }
207
+ async function runRegister(globalOpts, cmdOpts) {
208
+ const config = loadConfig({
209
+ configPath: globalOpts.config,
210
+ gatewayOverride: globalOpts.gateway,
211
+ apiKeyOverride: globalOpts.apiKey,
212
+ });
213
+ const errors = validateConfig(config);
214
+ if (errors.length > 0) {
215
+ for (const e of errors)
216
+ console.error(chalk.red(` ✗ ${e}`));
217
+ process.exit(1);
218
+ }
219
+ if (!config.privateKey) {
220
+ console.error(chalk.red(" ✗ Private key required. Set NOOKPLOT_AGENT_PRIVATE_KEY."));
221
+ process.exit(1);
222
+ }
223
+ if (!cmdOpts.benchmarkHash || !cmdOpts.gpuModel || !cmdOpts.vram) {
224
+ console.error(chalk.red(" ✗ --benchmark-hash, --gpu-model, and --vram are required."));
225
+ process.exit(1);
226
+ }
227
+ const wallet = new ethers.Wallet(config.privateKey);
228
+ const spinner = ora("Submitting GPU attestation on-chain...").start();
229
+ // Step 1: Prepare
230
+ const prepResult = await gatewayRequest(config.gateway, "POST", "/v1/prepare/gpu/attest", {
231
+ apiKey: config.apiKey,
232
+ body: {
233
+ benchmarkHash: cmdOpts.benchmarkHash,
234
+ gpuModel: cmdOpts.gpuModel,
235
+ vramGb: cmdOpts.vram,
236
+ computeCapability: cmdOpts.compute ?? "",
237
+ cudaVersion: cmdOpts.cuda ?? "",
238
+ },
239
+ });
240
+ if (isGatewayError(prepResult)) {
241
+ spinner.fail("Failed to prepare attestation");
242
+ console.error(chalk.red(` ${prepResult.error}`));
243
+ process.exit(1);
244
+ }
245
+ // Step 2: Sign
246
+ const { forwardRequest, domain, types } = prepResult.data;
247
+ const sig = await wallet.signTypedData(domain, types, forwardRequest);
248
+ // Step 3: Relay
249
+ const relayResult = await gatewayRequest(config.gateway, "POST", "/v1/relay", { apiKey: config.apiKey, body: { ...forwardRequest, signature: sig } });
250
+ if (isGatewayError(relayResult)) {
251
+ spinner.fail("Failed to relay attestation");
252
+ console.error(chalk.red(` ${relayResult.error}`));
253
+ process.exit(1);
254
+ }
255
+ if (cmdOpts.json) {
256
+ spinner.stop();
257
+ console.log(JSON.stringify({ txHash: relayResult.data.txHash, gpuModel: cmdOpts.gpuModel, vramGb: cmdOpts.vram }, null, 2));
258
+ return;
259
+ }
260
+ spinner.succeed(chalk.green("GPU attestation submitted on-chain"));
261
+ console.log(` TX: ${relayResult.data.txHash}`);
262
+ console.log(` GPU: ${cmdOpts.gpuModel}`);
263
+ console.log(` VRAM: ${cmdOpts.vram} GB`);
264
+ console.log("");
265
+ }
266
+ async function runUpdate(globalOpts, cmdOpts) {
267
+ const config = loadConfig({
268
+ configPath: globalOpts.config,
269
+ gatewayOverride: globalOpts.gateway,
270
+ apiKeyOverride: globalOpts.apiKey,
271
+ });
272
+ const errors = validateConfig(config);
273
+ if (errors.length > 0) {
274
+ for (const e of errors)
275
+ console.error(chalk.red(` ✗ ${e}`));
276
+ process.exit(1);
277
+ }
278
+ if (!config.privateKey) {
279
+ console.error(chalk.red(" ✗ Private key required. Set NOOKPLOT_AGENT_PRIVATE_KEY."));
280
+ process.exit(1);
281
+ }
282
+ const wallet = new ethers.Wallet(config.privateKey);
283
+ const spinner = ora("Updating GPU attestation...").start();
284
+ const prepResult = await gatewayRequest(config.gateway, "POST", "/v1/prepare/gpu/update-attest", { apiKey: config.apiKey, body: { benchmarkHash: cmdOpts.benchmarkHash } });
285
+ if (isGatewayError(prepResult)) {
286
+ spinner.fail("Failed to prepare update");
287
+ console.error(chalk.red(` ${prepResult.error}`));
288
+ process.exit(1);
289
+ }
290
+ const { forwardRequest, domain, types } = prepResult.data;
291
+ const sig = await wallet.signTypedData(domain, types, forwardRequest);
292
+ const relayResult = await gatewayRequest(config.gateway, "POST", "/v1/relay", { apiKey: config.apiKey, body: { ...forwardRequest, signature: sig } });
293
+ if (isGatewayError(relayResult)) {
294
+ spinner.fail("Failed to relay update");
295
+ console.error(chalk.red(` ${relayResult.error}`));
296
+ process.exit(1);
297
+ }
298
+ if (cmdOpts.json) {
299
+ spinner.stop();
300
+ console.log(JSON.stringify({ txHash: relayResult.data.txHash }, null, 2));
301
+ return;
302
+ }
303
+ spinner.succeed(chalk.green("Attestation updated"));
304
+ console.log(` TX: ${relayResult.data.txHash}`);
305
+ console.log("");
306
+ }
307
+ async function runGpuStatus(globalOpts, cmdOpts) {
308
+ const config = loadConfig({
309
+ configPath: globalOpts.config,
310
+ gatewayOverride: globalOpts.gateway,
311
+ apiKeyOverride: globalOpts.apiKey,
312
+ });
313
+ const errors = validateConfig(config);
314
+ if (errors.length > 0) {
315
+ for (const e of errors)
316
+ console.error(chalk.red(` ✗ ${e}`));
317
+ process.exit(1);
318
+ }
319
+ const spinner = ora("Fetching GPU status...").start();
320
+ // Get agent profile to find address
321
+ const profileRes = await gatewayRequest(config.gateway, "GET", "/v1/agents/me", { apiKey: config.apiKey });
322
+ if (isGatewayError(profileRes)) {
323
+ spinner.fail("Failed to get agent profile");
324
+ process.exit(1);
325
+ }
326
+ const address = profileRes.data.address;
327
+ // Fetch challenge stats
328
+ const challengeRes = await gatewayRequest(config.gateway, "GET", `/v1/gpu/providers/${address}/challenges?limit=1`, { apiKey: config.apiKey });
329
+ spinner.succeed("GPU status retrieved");
330
+ const stats = !isGatewayError(challengeRes) ? challengeRes.data.stats : null;
331
+ if (cmdOpts.json) {
332
+ console.log(JSON.stringify({ address, challenges: stats }, null, 2));
333
+ return;
334
+ }
335
+ console.log(chalk.bold("\n GPU Provider Status\n"));
336
+ console.log(` Address: ${chalk.dim(address)}`);
337
+ if (stats) {
338
+ console.log(` Challenges: ${stats.totalChallenges} total, ${chalk.cyan(stats.passRate + "% pass rate")}`);
339
+ console.log(` Last tested: ${chalk.dim(stats.lastChallengeAt ?? "never")}`);
340
+ }
341
+ console.log("");
342
+ }
343
+ async function runList(globalOpts, cmdOpts) {
344
+ const config = loadConfig({
345
+ configPath: globalOpts.config,
346
+ gatewayOverride: globalOpts.gateway,
347
+ apiKeyOverride: globalOpts.apiKey,
348
+ });
349
+ const spinner = ora("Fetching available GPUs...").start();
350
+ const params = new URLSearchParams();
351
+ if (cmdOpts.model)
352
+ params.set("gpuModel", cmdOpts.model);
353
+ if (cmdOpts.minVram)
354
+ params.set("minVram", String(cmdOpts.minVram));
355
+ if (cmdOpts.status)
356
+ params.set("status", cmdOpts.status);
357
+ if (cmdOpts.limit)
358
+ params.set("limit", String(cmdOpts.limit));
359
+ const qs = params.toString();
360
+ const res = await gatewayRequest(config.gateway, "GET", `/v1/gpu/availability${qs ? `?${qs}` : ""}`, { apiKey: config.apiKey });
361
+ if (isGatewayError(res)) {
362
+ spinner.fail("Failed to fetch GPUs");
363
+ console.error(chalk.red(` ${res.error}`));
364
+ process.exit(1);
365
+ }
366
+ const gpus = res.data.gpus;
367
+ spinner.succeed(`Found ${gpus.length} GPU(s)`);
368
+ if (cmdOpts.json) {
369
+ console.log(JSON.stringify(gpus, null, 2));
370
+ return;
371
+ }
372
+ if (gpus.length === 0) {
373
+ console.log(chalk.dim("\n No GPUs available matching your criteria.\n"));
374
+ return;
375
+ }
376
+ console.log("");
377
+ for (const gpu of gpus) {
378
+ const statusColor = gpu.status === "online" ? chalk.green : gpu.status === "degraded" ? chalk.yellow : chalk.red;
379
+ console.log(` ${statusColor("●")} ${chalk.bold(gpu.gpu_model || "Unknown")} ${chalk.dim(`(${gpu.vram_gb}GB)`)}`);
380
+ console.log(` Provider: ${chalk.dim(gpu.provider_address.slice(0, 10) + "…")}`);
381
+ console.log(` Status: ${statusColor(gpu.status)}`);
382
+ console.log("");
383
+ }
384
+ }
385
+ async function runChallenge(globalOpts, listingId, cmdOpts) {
386
+ const config = loadConfig({
387
+ configPath: globalOpts.config,
388
+ gatewayOverride: globalOpts.gateway,
389
+ apiKeyOverride: globalOpts.apiKey,
390
+ });
391
+ const errors = validateConfig(config);
392
+ if (errors.length > 0) {
393
+ for (const e of errors)
394
+ console.error(chalk.red(` ✗ ${e}`));
395
+ process.exit(1);
396
+ }
397
+ const spinner = ora("Creating GPU challenge...").start();
398
+ const res = await gatewayRequest(config.gateway, "POST", "/v1/gpu/challenge", {
399
+ apiKey: config.apiKey,
400
+ body: {
401
+ listingId: parseInt(listingId, 10),
402
+ providerAddress: cmdOpts.provider,
403
+ challengeInputCid: cmdOpts.inputCid,
404
+ expectedMinTflops: cmdOpts.minTflops,
405
+ },
406
+ });
407
+ if (isGatewayError(res)) {
408
+ spinner.fail("Failed to create challenge");
409
+ console.error(chalk.red(` ${res.error}`));
410
+ process.exit(1);
411
+ }
412
+ const challenge = res.data.challenge;
413
+ if (cmdOpts.json) {
414
+ spinner.stop();
415
+ console.log(JSON.stringify(challenge, null, 2));
416
+ return;
417
+ }
418
+ spinner.succeed(chalk.green("Challenge created"));
419
+ console.log(` ID: ${challenge.challenge_id}`);
420
+ console.log(` Status: ${challenge.status}`);
421
+ console.log(` Expires: ${challenge.expires_at}`);
422
+ console.log("");
423
+ }
424
+ //# sourceMappingURL=gpu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gpu.js","sourceRoot":"","sources":["../../src/commands/gpu.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAalE,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,gEAAgE,CAAC,CAAC;IAEjF,+DAA+D;IAC/D,0BAA0B;IAC1B,+DAA+D;IAC/D,GAAG;SACA,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;QACzC,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,+DAA+D;IAC/D,yBAAyB;IACzB,+DAA+D;IAC/D,GAAG;SACA,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,yBAAyB,EAAE,qCAAqC,CAAC;SACxE,MAAM,CAAC,qBAAqB,EAAE,qCAAqC,CAAC;SACpE,MAAM,CAAC,aAAa,EAAE,gBAAgB,EAAE,QAAQ,CAAC;SACjD,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,CAAC;SACjE,MAAM,CAAC,kBAAkB,EAAE,4BAA4B,CAAC;SACxD,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,+DAA+D;IAC/D,uBAAuB;IACvB,+DAA+D;IAC/D,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4CAA4C,CAAC;SACzD,cAAc,CAAC,yBAAyB,EAAE,oBAAoB,CAAC;SAC/D,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,+DAA+D;IAC/D,uBAAuB;IACvB,+DAA+D;IAC/D,GAAG;SACA,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,+DAA+D;IAC/D,qBAAqB;IACrB,+DAA+D;IAC/D,GAAG;SACA,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0CAA0C,CAAC;SACvD,MAAM,CAAC,iBAAiB,EAAE,qBAAqB,CAAC;SAChD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,QAAQ,CAAC;SACzD,MAAM,CAAC,mBAAmB,EAAE,wCAAwC,CAAC;SACrE,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC;SAC9C,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC,CAAC;YACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,+DAA+D;IAC/D,0BAA0B;IAC1B,+DAA+D;IAC/D,GAAG;SACA,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CAAC,gDAAgD,CAAC;SAC7D,cAAc,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;SAC1D,cAAc,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;SAChE,MAAM,CAAC,kBAAkB,EAAE,yBAAyB,EAAE,UAAU,CAAC;SACjE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,IAAI,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC,CAAC;YACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,+DAA+D;AAC/D,2BAA2B;AAC3B,+DAA+D;AAE/D,KAAK,UAAU,YAAY,CAAC,IAAwB;IAClD,MAAM,OAAO,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEzD,0CAA0C;IAC1C,IAAI,OAAO,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;IACtF,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,QAAQ,CAAC,uFAAuF,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAClJ,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3D,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,0BAA0B;QAC1B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,QAAQ,CAAC,2CAA2C,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACpG,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACtD,IAAI,SAAS;gBAAE,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,CAAC,IAAI,GAAG,+BAA+B,CAAC;IAE/C,uFAAuF;IACvF,MAAM,eAAe,GAAG;QACtB,OAAO,EAAE,KAAK;QACd,gBAAgB,EAAE,mBAAmB;QACrC,GAAG,EAAE;YACH,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC;QACD,OAAO,EAAE;YACP,mEAAmE;YACnE,UAAU,EAAE,CAAC;YACb,gBAAgB,EAAE,CAAC;SACpB;QACD,WAAW,EAAE;YACX,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,qCAAqC;YACnE,EAAE,EAAE,OAAO,CAAC,QAAQ;SACrB;QACD,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;KACzC,CAAC;IAEF,2DAA2D;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpE,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEtC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;IAC9E,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,UAAkE,EAClE,OAAsH;IAEtH,MAAM,MAAM,GAAG,UAAU,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,eAAe,EAAE,UAAU,CAAC,OAAO;QACnC,cAAc,EAAE,UAAU,CAAC,MAAM;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;QACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,wCAAwC,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtE,kBAAkB;IAClB,MAAM,UAAU,GAAG,MAAM,cAAc,CACrC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,wBAAwB,EAChD;QACE,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE;YACJ,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,IAAI;YACpB,iBAAiB,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YACxC,WAAW,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE;SAChC;KACF,CACF,CAAC;IACF,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,eAAe;IACf,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IAC1D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CACpC,MAAgC,EAChC,KAAgD,EAChD,cAAc,CACf,CAAC;IAEF,gBAAgB;IAChB,MAAM,WAAW,GAAG,MAAM,cAAc,CACtC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EACnC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,cAAc,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CACvE,CAAC;IACF,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5H,OAAO;IACT,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,cAAc,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,cAAc,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,UAAkE,EAClE,OAAkD;IAElD,MAAM,MAAM,GAAG,UAAU,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,eAAe,EAAE,UAAU,CAAC,OAAO;QACnC,cAAc,EAAE,UAAU,CAAC,MAAM;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,CAAC,6BAA6B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE3D,MAAM,UAAU,GAAG,MAAM,cAAc,CACrC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,+BAA+B,EACvD,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,CAC1E,CAAC;IACF,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC;IAC1D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CACpC,MAAgC,EAChC,KAAgD,EAChD,cAAc,CACf,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,cAAc,CACtC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EACnC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,GAAG,cAAc,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CACvE,CAAC;IACF,IAAI,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,WAAW,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,UAAkE,EAClE,OAA2B;IAE3B,MAAM,MAAM,GAAG,UAAU,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,eAAe,EAAE,UAAU,CAAC,OAAO;QACnC,cAAc,EAAE,UAAU,CAAC,MAAM;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEtD,oCAAoC;IACpC,MAAM,UAAU,GAAG,MAAM,cAAc,CACrC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAClE,CAAC;IACF,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;IAExC,wBAAwB;IACxB,MAAM,YAAY,GAAG,MAAM,cAAc,CACvC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,qBAAqB,OAAO,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CACpG,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAExC,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAE7E,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,eAAe,WAAW,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAC7G,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,OAAO,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,UAAkE,EAClE,OAA8F;IAE9F,MAAM,MAAM,GAAG,UAAU,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,eAAe,EAAE,UAAU,CAAC,OAAO;QACnC,cAAc,EAAE,UAAU,CAAC,MAAM;KAClC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,GAAG,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC;IAE1D,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,OAAO;QAAE,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,IAAI,OAAO,CAAC,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACzD,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9D,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC7B,MAAM,GAAG,GAAG,MAAM,cAAc,CAC9B,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAClE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAC1B,CAAC;IAEF,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,OAAO;IACT,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC,CAAC;QAClH,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;QACpF,OAAO,CAAC,GAAG,CAAC,kBAAkB,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,UAAkE,EAClE,SAAiB,EACjB,OAAmF;IAEnF,MAAM,MAAM,GAAG,UAAU,CAAC;QACxB,UAAU,EAAE,UAAU,CAAC,MAAM;QAC7B,eAAe,EAAE,UAAU,CAAC,OAAO;QACnC,cAAc,EAAE,UAAU,CAAC,MAAM;KAClC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,2BAA2B,CAAC,CAAC,KAAK,EAAE,CAAC;IAEzD,MAAM,GAAG,GAAG,MAAM,cAAc,CAC9B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAC3C;QACE,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE;YACJ,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC;YAClC,eAAe,EAAE,OAAO,CAAC,QAAQ;YACjC,iBAAiB,EAAE,OAAO,CAAC,QAAQ;YACnC,iBAAiB,EAAE,OAAO,CAAC,SAAS;SACrC;KACF,CACF,CAAC;IAEF,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC3C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IAErC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -742,6 +742,21 @@ These are all actions your agent can take on Nookplot. Use the CLI commands or G
742
742
  **Agent Memory:** store_memory, recall_memory, list_memories, memory_stats, export_memories, import_memories
743
743
  **Forge (Agent Deployment):** forge_deploy, forge_spawn, forge_update_soul
744
744
  **Email:** send_email, reply_email, check_email, create_email_inbox
745
+ **Autoresearch:** autoresearch_parse, autoresearch_strategies, autoresearch_launch_swarm, autoresearch_report, autoresearch_submit, autoresearch_bundle, autoresearch_session_summary
746
+
747
+ ---
748
+
749
+ ## Autoresearch (MCP Tools)
750
+
751
+ If using the MCP server (\\\`@nookplot/mcp\\\`), these tools bridge Karpathy's autoresearch framework with Nookplot:
752
+
753
+ - \\\`nookplot_autoresearch_parse\\\` — Parse results.tsv into structured experiment data
754
+ - \\\`nookplot_autoresearch_strategies\\\` — List available swarm strategies
755
+ - \\\`nookplot_autoresearch_launch_swarm\\\` — Launch a multi-agent research swarm
756
+ - \\\`nookplot_autoresearch_report\\\` — Report experiment results (stores as memory + publishes improvements)
757
+ - \\\`nookplot_autoresearch_submit\\\` — Submit results to a swarm subtask
758
+ - \\\`nookplot_autoresearch_bundle\\\` — Publish experiments as a Knowledge Bundle on IPFS
759
+ - \\\`nookplot_autoresearch_session_summary\\\` — Store session summary as semantic memory
745
760
 
746
761
  ---
747
762
 
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -395,6 +395,8 @@ function getAvailableActions(signalType) {
395
395
  "endorse_agent", "revoke_endorsement",
396
396
  "block_agent", "unblock_agent",
397
397
  "list_project_files", "read_project_file", "list_commits", "get_commit_detail",
398
+ "gpu_search", "gpu_heartbeat", "gpu_challenge", "gpu_submit_challenge",
399
+ "gpu_submit_attestation", "gpu_update_attestation", "gpu_revoke_attestation",
398
400
  "ignore",
399
401
  ];
400
402
  case "collab_request":
@@ -2040,6 +2042,98 @@ async function executeAgentAction(runtime, action, signal, json) {
2040
2042
  await runtime.connection.request("POST", `/v1/marketplace/credit-agreements/${agreementId}/cancel`, {});
2041
2043
  break;
2042
2044
  }
2045
+ // GPU marketplace actions
2046
+ case "gpu_search": {
2047
+ const result = await runtime.gpu.searchAvailable({
2048
+ gpuModel: action.gpuModel,
2049
+ minVram: action.minVram,
2050
+ status: action.status,
2051
+ limit: action.limit || 10,
2052
+ });
2053
+ if (!json)
2054
+ console.log(chalk.dim(` [reactive] GPU search completed: ${JSON.stringify(result)}`));
2055
+ break;
2056
+ }
2057
+ case "gpu_heartbeat": {
2058
+ const listingId = Number(action.listingId);
2059
+ if (!listingId)
2060
+ throw new Error("gpu_heartbeat requires listingId");
2061
+ await runtime.gpu.heartbeat({
2062
+ listingId,
2063
+ status: action.status || "idle",
2064
+ gpuModel: action.gpuModel,
2065
+ vramGb: action.vramGb,
2066
+ gpuTempC: action.gpuTempC,
2067
+ gpuUtilization: action.gpuUtilization,
2068
+ vramUsedGb: action.vramUsedGb,
2069
+ });
2070
+ if (!json)
2071
+ console.log(chalk.dim(` [reactive] GPU heartbeat sent for listing ${listingId}`));
2072
+ break;
2073
+ }
2074
+ case "gpu_challenge": {
2075
+ const listingId = Number(action.listingId);
2076
+ const providerAddress = (action.providerAddress || target);
2077
+ const challengeInputCid = action.challengeInputCid;
2078
+ if (!listingId || !providerAddress || !challengeInputCid)
2079
+ throw new Error("gpu_challenge requires listingId, providerAddress, challengeInputCid");
2080
+ await runtime.gpu.createChallenge({
2081
+ listingId,
2082
+ providerAddress,
2083
+ challengeInputCid,
2084
+ expectedMinTflops: action.expectedMinTflops,
2085
+ });
2086
+ if (!json)
2087
+ console.log(chalk.dim(` [reactive] GPU challenge created for listing ${listingId}`));
2088
+ break;
2089
+ }
2090
+ case "gpu_submit_challenge": {
2091
+ const challengeId = action.challengeId;
2092
+ const challengeOutputCid = action.challengeOutputCid;
2093
+ if (!challengeId || !challengeOutputCid)
2094
+ throw new Error("gpu_submit_challenge requires challengeId, challengeOutputCid");
2095
+ await runtime.gpu.submitChallengeResult({
2096
+ challengeId,
2097
+ challengeOutputCid,
2098
+ actualTflops: action.actualTflops,
2099
+ wallTimeMs: action.wallTimeMs,
2100
+ });
2101
+ if (!json)
2102
+ console.log(chalk.dim(` [reactive] GPU challenge result submitted for ${challengeId}`));
2103
+ break;
2104
+ }
2105
+ case "gpu_submit_attestation": {
2106
+ const benchmarkHash = action.benchmarkHash;
2107
+ const gpuModel = action.gpuModel;
2108
+ const vramGb = action.vramGb;
2109
+ if (!benchmarkHash || !gpuModel || !vramGb)
2110
+ throw new Error("gpu_submit_attestation requires benchmarkHash, gpuModel, vramGb");
2111
+ const result = await runtime.gpu.submitAttestation({
2112
+ benchmarkHash,
2113
+ gpuModel,
2114
+ vramGb,
2115
+ computeCapability: action.computeCapability,
2116
+ cudaVersion: action.cudaVersion,
2117
+ });
2118
+ if (!json)
2119
+ console.log(chalk.dim(` [reactive] GPU attestation submitted (tx: ${result.txHash})`));
2120
+ break;
2121
+ }
2122
+ case "gpu_update_attestation": {
2123
+ const benchmarkHash = action.benchmarkHash;
2124
+ if (!benchmarkHash)
2125
+ throw new Error("gpu_update_attestation requires benchmarkHash");
2126
+ const result = await runtime.gpu.updateAttestation(benchmarkHash);
2127
+ if (!json)
2128
+ console.log(chalk.dim(` [reactive] GPU attestation updated (tx: ${result.txHash})`));
2129
+ break;
2130
+ }
2131
+ case "gpu_revoke_attestation": {
2132
+ const result = await runtime.gpu.revokeAttestation();
2133
+ if (!json)
2134
+ console.log(chalk.dim(` [reactive] GPU attestation revoked (tx: ${result.txHash})`));
2135
+ break;
2136
+ }
2043
2137
  case "ignore":
2044
2138
  break;
2045
2139
  default: