@vantaloom/runtime-linux-x64 0.2.0 → 0.3.6

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/VERSION CHANGED
@@ -1 +1 @@
1
- 9bcdf40
1
+ 532507a
Binary file
package/bin/vantaloom-api CHANGED
Binary file
package/bin/vantaloomctl CHANGED
Binary file
package/cli/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vantaloom/cli",
3
- "version": "0.2.0",
3
+ "version": "0.3.6",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Vantaloom local runtime manager.",
package/cli/src/cli.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  import { execFileSync, spawnSync } from "node:child_process"
2
2
  import {
3
+ appendFileSync,
3
4
  chmodSync,
4
5
  existsSync,
5
6
  mkdirSync,
@@ -20,11 +21,45 @@ const installedConfigPath = path.join(cliRoot, "config.json")
20
21
  const defaultReleaseTag = "runtime-latest"
21
22
  const defaultRepo = "Timefiles404/Vantaloom-next"
22
23
  const defaultNpmRegistry = "https://registry.npmjs.org"
24
+ const fallbackNpmRegistries = [
25
+ "https://registry.npmmirror.com",
26
+ ]
27
+
28
+ // Inherit strict-ssl=false from npm/npx config, or respect NODE_TLS_REJECT_UNAUTHORIZED.
29
+ // When npm runs us via npx with strict-ssl disabled, it sets npm_config_strict_ssl="false".
30
+ // Also check user .npmrc for strict-ssl=false (common in China behind proxies).
31
+ function shouldDisableTLS() {
32
+ if (process.env.NODE_TLS_REJECT_UNAUTHORIZED === "0") return true
33
+ if (process.env.npm_config_strict_ssl === "false") return true
34
+ if (process.env.npm_config_strict_ssl === "") return true
35
+ try {
36
+ const npmrcPath = path.join(os.homedir(), ".npmrc")
37
+ if (existsSync(npmrcPath)) {
38
+ const content = readFileSync(npmrcPath, "utf8")
39
+ if (/^\s*strict-ssl\s*=\s*false/m.test(content)) return true
40
+ }
41
+ } catch {}
42
+ return false
43
+ }
44
+ if (shouldDisableTLS()) {
45
+ process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
46
+ }
47
+
48
+ const cliVersion = readJSONIfExists(path.join(cliRoot, "package.json")).version ?? "unknown"
23
49
 
24
50
  export async function main(argv) {
25
51
  const command = argv[0] ?? "help"
26
52
  const options = parseOptions(argv.slice(1))
27
53
 
54
+ // --no-strict-ssl flag disables TLS certificate verification for fetch calls
55
+ if (options.noStrictSsl) {
56
+ process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
57
+ }
58
+
59
+ if (command === "install" || command === "update") {
60
+ console.log(`vantaloom-cli v${cliVersion} (${platformId()})`)
61
+ }
62
+
28
63
  switch (command) {
29
64
  case "install":
30
65
  if (options.package) {
@@ -91,6 +126,7 @@ async function installFromSource(options) {
91
126
 
92
127
  console.log(`${options.update ? "updated" : "installed"} Vantaloom: ${prefix}`)
93
128
  console.log(`version: ${version}`)
129
+ ensureInPath(prefix)
94
130
  console.log(`run: ${displayCommand(prefix)} status`)
95
131
  }
96
132
 
@@ -104,6 +140,7 @@ async function installFromPackage(options) {
104
140
 
105
141
  console.log(`${options.update ? "updated" : "installed"} Vantaloom: ${prefix}`)
106
142
  console.log(`version: ${version}`)
143
+ ensureInPath(prefix)
107
144
  console.log(`run: ${displayCommand(prefix)} status`)
108
145
  }
109
146
 
@@ -186,15 +223,49 @@ async function applyPackage(packageRoot, prefix, options) {
186
223
  spawnSync(existingCtl, ["stop", "--prefix", prefix], { stdio: "inherit" })
187
224
  }
188
225
 
226
+ // Kill lingering tray process that may hold locks on bin/ (older versions
227
+ // don't write tray.pid, so vantaloomctl stop won't find them).
228
+ killTrayProcess(prefix)
229
+
230
+ // Copy package contents to install prefix
189
231
  for (const name of ["bin", "web", "cli"]) {
190
- removeKnownPath(path.join(prefix, name), prefix)
191
- await cp(path.join(packageRoot, name), path.join(prefix, name), {
232
+ const src = path.join(packageRoot, name)
233
+ const dst = path.join(prefix, name)
234
+ if (!existsSync(src)) {
235
+ console.error(` warning: package missing ${name}/ directory`)
236
+ continue
237
+ }
238
+ removeKnownPath(dst, prefix)
239
+ await cp(src, dst, {
192
240
  recursive: true,
193
241
  force: true,
194
242
  dereference: false,
195
243
  })
196
244
  }
197
245
 
246
+ // Ensure binaries are executable on Unix (cross-compiled from Windows they lose +x)
247
+ const binDir = path.join(prefix, "bin")
248
+ if (process.platform !== "win32" && existsSync(binDir)) {
249
+ for (const entry of readdirSync(binDir)) {
250
+ const binPath = path.join(binDir, entry)
251
+ try { chmodSync(binPath, 0o755) } catch {}
252
+ }
253
+ }
254
+
255
+ // Verify vantaloomctl binary exists before trying to run it
256
+ const ctlBin = path.join(prefix, "bin", binaryName("vantaloomctl"))
257
+ if (!existsSync(ctlBin)) {
258
+ const binContents = existsSync(binDir) ? readdirSync(binDir) : []
259
+ const srcBinContents = existsSync(path.join(packageRoot, "bin")) ? readdirSync(path.join(packageRoot, "bin")) : []
260
+ throw new Error(
261
+ `vantaloomctl binary not found at ${ctlBin}\n` +
262
+ ` installed bin/: [${binContents.join(", ")}]\n` +
263
+ ` package bin/: [${srcBinContents.join(", ")}]\n` +
264
+ ` platform: ${platformId()}\n` +
265
+ ` This may indicate a corrupt download. Try again or install from source.`
266
+ )
267
+ }
268
+
198
269
  await writeLauncher(prefix)
199
270
  await writeText(path.join(prefix, "cli", "config.json"), `${JSON.stringify(mergedConfig, null, 2)}\n`)
200
271
  await writeText(path.join(prefix, "VERSION"), `${version}\n`)
@@ -202,7 +273,7 @@ async function applyPackage(packageRoot, prefix, options) {
202
273
  force: true,
203
274
  })
204
275
 
205
- run(path.join(prefix, "bin", binaryName("vantaloomctl")), [
276
+ run(ctlBin, [
206
277
  "install",
207
278
  "--prefix",
208
279
  prefix,
@@ -211,7 +282,7 @@ async function applyPackage(packageRoot, prefix, options) {
211
282
  ])
212
283
 
213
284
  if (!options.noStart) {
214
- run(path.join(prefix, "bin", binaryName("vantaloomctl")), [
285
+ run(ctlBin, [
215
286
  "start",
216
287
  "--prefix",
217
288
  prefix,
@@ -224,9 +295,13 @@ async function applyPackage(packageRoot, prefix, options) {
224
295
  async function syncFromNpmRegistry(options, action) {
225
296
  const prefix = safeDirectory(options.prefix ?? defaultPrefix())
226
297
  const installedConfig = readInstalledConfig(prefix)
227
- const runtimePackage = options.runtimePackage || installedConfig.runtimePackage || runtimePackageName(platformId())
298
+ // Always derive runtimePackage from current platform — never trust stale config
299
+ // from a different platform (e.g. win32 config baked into a darwin package).
300
+ // Only explicit --runtime-package flag can override.
301
+ const runtimePackage = options.runtimePackage || runtimePackageName(platformId())
228
302
  const runtimeVersion = options.runtimeVersion || installedConfig.runtimeVersion || "latest"
229
- const registry = normalizeRegistry(options.npmRegistry || installedConfig.npmRegistry || defaultNpmRegistry)
303
+ const explicitRegistry = options.npmRegistry || installedConfig.npmRegistry
304
+ const registry = normalizeRegistry(explicitRegistry || detectNpmRegistry() || defaultNpmRegistry)
230
305
  const tempRoot = mkdtempSync(path.join(os.tmpdir(), "vantaloom-npm-"))
231
306
 
232
307
  try {
@@ -234,7 +309,11 @@ async function syncFromNpmRegistry(options, action) {
234
309
  const archive = path.join(tempRoot, `${packageBasename(runtimePackage)}-${runtimeVersion}.tgz`)
235
310
  mkdirSync(extractRoot, { recursive: true })
236
311
 
237
- const resolved = await resolveNpmPackage({ registry, name: runtimePackage, version: runtimeVersion })
312
+ const resolved = await resolveNpmPackageWithFallback({
313
+ registries: explicitRegistry ? [registry] : [registry, ...fallbackNpmRegistries.map(normalizeRegistry)],
314
+ name: runtimePackage,
315
+ version: runtimeVersion,
316
+ })
238
317
  await downloadNpmTarball({
239
318
  tarballUrl: resolved.tarball,
240
319
  target: archive,
@@ -248,13 +327,15 @@ async function syncFromNpmRegistry(options, action) {
248
327
  noStart: options.noStart,
249
328
  runtimePackage,
250
329
  runtimeVersion: options.runtimeVersion ? resolved.version : "latest",
251
- npmRegistry: registry,
330
+ npmRegistry: resolved.registry,
252
331
  update: action === "update",
253
332
  })
254
333
 
255
334
  console.log(`${action === "update" ? "updated" : "installed"} Vantaloom: ${prefix}`)
256
335
  console.log(`version: ${version}`)
257
336
  console.log(`source: ${runtimePackage}@${resolved.version}`)
337
+ console.log(`registry: ${resolved.registry}`)
338
+ ensureInPath(prefix)
258
339
  console.log(`run: ${displayCommand(prefix)} status`)
259
340
  } finally {
260
341
  removeKnownPath(tempRoot, os.tmpdir())
@@ -296,6 +377,7 @@ async function syncFromRelease(options, action) {
296
377
  console.log(`${action === "update" ? "updated" : "installed"} Vantaloom: ${prefix}`)
297
378
  console.log(`version: ${version}`)
298
379
  console.log(`source: ${repo}@${releaseTag}`)
380
+ ensureInPath(prefix)
299
381
  console.log(`run: ${displayCommand(prefix)} status`)
300
382
  } finally {
301
383
  removeKnownPath(tempRoot, os.tmpdir())
@@ -346,14 +428,114 @@ async function downloadReleaseAsset({ repo, releaseTag, assetName, target, token
346
428
  await writeFile(target, buffer)
347
429
  }
348
430
 
431
+ function detectNpmRegistry() {
432
+ // 1. NPM_CONFIG_REGISTRY env var (highest priority, set by npm/npx when running)
433
+ if (process.env.NPM_CONFIG_REGISTRY) {
434
+ return process.env.npm_config_registry || process.env.NPM_CONFIG_REGISTRY
435
+ }
436
+ // npm also sets the lowercase variant
437
+ if (process.env.npm_config_registry) {
438
+ return process.env.npm_config_registry
439
+ }
440
+
441
+ // 2. Read user .npmrc
442
+ try {
443
+ const npmrcPaths = [
444
+ path.join(os.homedir(), ".npmrc"),
445
+ ]
446
+ // Also check project-level .npmrc
447
+ const localNpmrc = path.resolve(".npmrc")
448
+ if (localNpmrc !== npmrcPaths[0]) {
449
+ npmrcPaths.unshift(localNpmrc)
450
+ }
451
+ for (const npmrcPath of npmrcPaths) {
452
+ if (existsSync(npmrcPath)) {
453
+ const content = readFileSync(npmrcPath, "utf8")
454
+ const match = content.match(/^\s*registry\s*=\s*(.+)/m)
455
+ if (match) {
456
+ return match[1].trim()
457
+ }
458
+ }
459
+ }
460
+ } catch {
461
+ // Ignore .npmrc read errors
462
+ }
463
+
464
+ return ""
465
+ }
466
+
467
+ async function resolveNpmPackageWithFallback({ registries, name, version }) {
468
+ const errors = []
469
+ for (const registry of registries) {
470
+ try {
471
+ const result = await resolveNpmPackage({ registry, name, version })
472
+ return { ...result, registry }
473
+ } catch (error) {
474
+ const causeCode = error?.cause?.code || ""
475
+ const isNetworkError = causeCode === "ECONNREFUSED"
476
+ || causeCode === "ENOTFOUND"
477
+ || causeCode === "ETIMEDOUT"
478
+ || causeCode === "ECONNRESET"
479
+ || causeCode === "UND_ERR_CONNECT_TIMEOUT"
480
+ || (error instanceof TypeError && error.message === "fetch failed")
481
+ const isSslError = causeCode === "UNABLE_TO_GET_ISSUER_CERT_LOCALLY"
482
+ || causeCode === "CERT_HAS_EXPIRED"
483
+ || causeCode === "DEPTH_ZERO_SELF_SIGNED_CERT"
484
+ || causeCode === "SELF_SIGNED_CERT_IN_CHAIN"
485
+ || causeCode === "ERR_TLS_CERT_ALTNAME_INVALID"
486
+ const isRetryable = isNetworkError || isSslError
487
+ errors.push({ registry, error, isRetryable, isSslError })
488
+
489
+ if (isRetryable && registries.length > 1) {
490
+ const hint = isSslError ? " (SSL certificate error)" : ""
491
+ console.error(`vantaloom: ${registry} unreachable${hint}, trying next registry...`)
492
+ continue
493
+ }
494
+ if (isSslError) {
495
+ throw new Error(
496
+ `SSL certificate error connecting to ${registry}: ${causeCode}\n` +
497
+ ` Fix: run with --no-strict-ssl, or set npm config: npm config set strict-ssl false`
498
+ )
499
+ }
500
+ // Non-network error (404, parse error, etc.) — don't try fallbacks
501
+ throw error
502
+ }
503
+ }
504
+
505
+ // All registries failed
506
+ const hasSslError = errors.some((e) => e.isSslError)
507
+ const tried = errors.map((e) => e.registry).join(", ")
508
+ const sslHint = hasSslError
509
+ ? `\n SSL fix: run with --no-strict-ssl, or set npm config: npm config set strict-ssl false`
510
+ : ""
511
+ throw new Error(
512
+ `all registries unreachable (tried: ${tried}). ` +
513
+ `Check your network or specify --npm-registry <url>${sslHint}`
514
+ )
515
+ }
516
+
349
517
  async function resolveNpmPackage({ registry, name, version }) {
350
518
  const metadataUrl = `${registry}/${encodeURIComponent(name).replace("%2F", "%2f")}`
351
- const response = await fetch(metadataUrl, {
352
- headers: {
353
- Accept: "application/vnd.npm.install-v1+json",
354
- "User-Agent": "vantaloom-cli",
355
- },
356
- })
519
+ let response
520
+ try {
521
+ response = await fetch(metadataUrl, {
522
+ headers: {
523
+ Accept: "application/vnd.npm.install-v1+json",
524
+ "User-Agent": "vantaloom-cli",
525
+ },
526
+ signal: AbortSignal.timeout(15000),
527
+ })
528
+ } catch (error) {
529
+ if (error instanceof TypeError && error.message === "fetch failed") {
530
+ const causeCode = error.cause?.code || ""
531
+ const causeMsg = causeCode || error.cause?.message || String(error.cause || "")
532
+ throw Object.assign(
533
+ new Error(`cannot reach registry ${registry} (${causeMsg})`),
534
+ { cause: error.cause }
535
+ )
536
+ }
537
+ throw error
538
+ }
357
539
  if (!response.ok) {
358
540
  const detail = await response.text().catch(() => "")
359
541
  throw new Error(`failed to inspect npm package ${name}: HTTP ${response.status}${detail ? ` ${detail.slice(0, 200)}` : ""}`)
@@ -373,11 +555,22 @@ async function resolveNpmPackage({ registry, name, version }) {
373
555
  }
374
556
 
375
557
  async function downloadNpmTarball({ tarballUrl, target, packageName, version }) {
376
- const response = await fetch(tarballUrl, {
377
- headers: {
378
- "User-Agent": "vantaloom-cli",
379
- },
380
- })
558
+ console.log(` downloading ${packageName}@${version}...`)
559
+ let response
560
+ try {
561
+ response = await fetch(tarballUrl, {
562
+ headers: {
563
+ "User-Agent": "vantaloom-cli",
564
+ },
565
+ signal: AbortSignal.timeout(120000),
566
+ })
567
+ } catch (error) {
568
+ const causeCode = error?.cause?.code || ""
569
+ const causeMsg = causeCode || error?.cause?.message || error.message || ""
570
+ const isSsl = causeCode.includes("CERT") || causeCode === "UNABLE_TO_GET_ISSUER_CERT_LOCALLY"
571
+ const hint = isSsl ? `\n Fix: run with --no-strict-ssl` : ""
572
+ throw new Error(`failed to download ${packageName}@${version} from ${tarballUrl}: ${causeMsg}${hint}`)
573
+ }
381
574
  if (!response.ok) {
382
575
  const detail = await response.text().catch(() => "")
383
576
  throw new Error(`failed to download ${packageName}@${version}: HTTP ${response.status}${detail ? ` ${detail.slice(0, 200)}` : ""}`)
@@ -385,6 +578,7 @@ async function downloadNpmTarball({ tarballUrl, target, packageName, version })
385
578
 
386
579
  const buffer = Buffer.from(await response.arrayBuffer())
387
580
  await writeFile(target, buffer)
581
+ console.log(` downloaded ${(buffer.length / 1024 / 1024).toFixed(1)} MB`)
388
582
  }
389
583
 
390
584
  function shouldUseSourceInstall(options) {
@@ -448,9 +642,9 @@ function mergeRuntimeConfig(packageConfig, existingConfig, overrides) {
448
642
  if (!merged.releaseTag) {
449
643
  merged.releaseTag = defaultReleaseTag
450
644
  }
451
- if (!merged.runtimePackage) {
452
- merged.runtimePackage = runtimePackageName(platformId())
453
- }
645
+ // Always force runtimePackage to match the running platform — a cross-compiled
646
+ // package may carry a config for a different platform (e.g. win32 inside darwin).
647
+ merged.runtimePackage = runtimePackageName(platformId())
454
648
  if (!merged.runtimeVersion) {
455
649
  merged.runtimeVersion = "latest"
456
650
  }
@@ -470,7 +664,7 @@ function runtimeConfigFromSource(sourceRoot) {
470
664
  releaseTag: defaultReleaseTag,
471
665
  runtimePackage: runtimePackageName(platformId()),
472
666
  runtimeVersion: "latest",
473
- npmRegistry: defaultNpmRegistry,
667
+ npmRegistry: detectNpmRegistry() || defaultNpmRegistry,
474
668
  }
475
669
  }
476
670
 
@@ -776,6 +970,9 @@ function parseOptions(args) {
776
970
  case "local":
777
971
  options.local = true
778
972
  break
973
+ case "no-strict-ssl":
974
+ options.noStrictSsl = true
975
+ break
779
976
  default:
780
977
  throw new Error(`unknown option --${key}`)
781
978
  }
@@ -897,6 +1094,92 @@ async function writeText(filePath, content) {
897
1094
  await writeFile(filePath, content)
898
1095
  }
899
1096
 
1097
+ // ensureInPath adds the Vantaloom install directory to the user's shell PATH
1098
+ // on macOS and Linux, so `vantaloom` can be run directly after install.
1099
+ // On Windows this is not needed (vantaloom.cmd is run by full path or added via installer).
1100
+ function ensureInPath(prefix) {
1101
+ if (process.platform === "win32") return
1102
+
1103
+ // Check if already in PATH
1104
+ const pathDirs = (process.env.PATH || "").split(":")
1105
+ if (pathDirs.includes(prefix)) return
1106
+
1107
+ // Determine shell profile file
1108
+ const home = os.homedir()
1109
+ const shell = process.env.SHELL || ""
1110
+ let profilePath
1111
+ if (shell.endsWith("/zsh") || existsSync(path.join(home, ".zshrc"))) {
1112
+ profilePath = path.join(home, ".zshrc")
1113
+ } else if (shell.endsWith("/bash")) {
1114
+ // On macOS, bash uses .bash_profile; on Linux, .bashrc
1115
+ profilePath = process.platform === "darwin"
1116
+ ? path.join(home, ".bash_profile")
1117
+ : path.join(home, ".bashrc")
1118
+ } else if (existsSync(path.join(home, ".profile"))) {
1119
+ profilePath = path.join(home, ".profile")
1120
+ } else {
1121
+ profilePath = path.join(home, ".profile")
1122
+ }
1123
+
1124
+ // Use $HOME-relative path for portability
1125
+ const homeRelative = prefix.startsWith(home)
1126
+ ? `$HOME${prefix.slice(home.length)}`
1127
+ : prefix
1128
+ const exportLine = `export PATH="${homeRelative}:$PATH"`
1129
+ const marker = "# vantaloom"
1130
+
1131
+ // Check if already added to profile
1132
+ try {
1133
+ if (existsSync(profilePath)) {
1134
+ const content = readFileSync(profilePath, "utf8")
1135
+ if (content.includes("vantaloom") && content.includes("PATH")) return
1136
+ }
1137
+ } catch {}
1138
+
1139
+ // Append to profile
1140
+ try {
1141
+ const entry = `\n${marker}\n${exportLine}\n`
1142
+ appendFileSync(profilePath, entry)
1143
+ console.log(`PATH: added ${prefix} to ${profilePath}`)
1144
+ console.log(` run: source ${profilePath} (or open a new terminal)`)
1145
+ } catch (error) {
1146
+ console.log(`PATH: could not update ${profilePath}: ${error.message}`)
1147
+ console.log(` add manually: ${exportLine}`)
1148
+ }
1149
+ }
1150
+
1151
+ function killTrayProcess(prefix) {
1152
+ if (process.platform === "win32") {
1153
+ // Try PID file first (new tray versions write runtime/tray.pid).
1154
+ const pidFile = path.join(prefix, "runtime", "tray.pid")
1155
+ if (existsSync(pidFile)) {
1156
+ const pid = readFileSync(pidFile, "utf8").trim()
1157
+ if (pid) {
1158
+ spawnSync("taskkill", ["/PID", pid, "/F"], { stdio: "ignore" })
1159
+ try { rmSync(pidFile, { force: true }) } catch {}
1160
+ }
1161
+ }
1162
+ // Fallback: kill by image name if the binary is inside our prefix.
1163
+ const result = spawnSync("tasklist", ["/FI", "IMAGENAME eq vantaloom-tray.exe", "/FO", "CSV", "/NH"], {
1164
+ encoding: "utf8",
1165
+ windowsHide: true,
1166
+ })
1167
+ if (result.stdout) {
1168
+ for (const line of result.stdout.split("\n")) {
1169
+ const match = line.match(/"vantaloom-tray\.exe","(\d+)"/)
1170
+ if (match) {
1171
+ spawnSync("taskkill", ["/PID", match[1], "/F"], { stdio: "ignore" })
1172
+ }
1173
+ }
1174
+ }
1175
+ // Brief pause to let file handles release.
1176
+ spawnSync("timeout", ["/t", "1", "/nobreak"], { stdio: "ignore", windowsHide: true })
1177
+ } else {
1178
+ // Unix: pkill by name (best-effort).
1179
+ spawnSync("pkill", ["-f", "vantaloom-tray"], { stdio: "ignore" })
1180
+ }
1181
+ }
1182
+
900
1183
  function printHelp() {
901
1184
  console.log(`Vantaloom CLI
902
1185
 
package/manifest.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "Vantaloom Local Runtime",
3
- "version": "9bcdf40",
3
+ "version": "532507a",
4
4
  "platform": "linux-x64",
5
- "updatedAt": "2026-05-29T18:52:51.352Z",
5
+ "updatedAt": "2026-05-30T15:43:12.245Z",
6
6
  "components": [
7
7
  "api",
8
8
  "agent",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vantaloom/runtime-linux-x64",
3
- "version": "0.2.0",
3
+ "version": "0.3.6",
4
4
  "private": false,
5
5
  "description": "Vantaloom local runtime for linux-x64.",
6
6
  "type": "module",
package/web/404.html CHANGED
@@ -1 +1 @@
1
- <!DOCTYPE html><!--qDb937Fsr8zR_VHDxrNf_--><html lang="zh-CN" class="font-sans antialiased" data-vtl-theme="default" data-vtl-density="default" data-vtl-motion="default"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/c0c4db6d45c7ff65.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/a678910d6e3629e7.js"/><script src="/_next/static/chunks/b9cfbaaba1fd82be.js" async=""></script><script src="/_next/static/chunks/757e2e1b77b5bacc.js" async=""></script><script src="/_next/static/chunks/turbopack-d8677f40582561e6.js" async=""></script><script src="/_next/static/chunks/eca64d281474b631.js" async=""></script><script src="/_next/static/chunks/7dfeab42587bcc0e.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Vantaloom</title><meta name="description" content="Vantaloom local agent operations console."/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/a678910d6e3629e7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[22332,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"ThemeProvider\"]\n3:I[45121,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n4:I[60512,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n5:I[35417,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[35417,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"ViewportBoundary\"]\na:I[35417,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"MetadataBoundary\"]\nc:I[50025,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n:HL[\"/_next/static/chunks/c0c4db6d45c7ff65.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"qDb937Fsr8zR_VHDxrNf_\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/c0c4db6d45c7ff65.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/eca64d281474b631.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/7dfeab42587bcc0e.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"suppressHydrationWarning\":true,\"className\":\"font-sans antialiased\",\"data-vtl-theme\":\"default\",\"data-vtl-density\":\"default\",\"data-vtl-motion\":\"default\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Vantaloom\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Vantaloom local agent operations console.\"}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--2kPL4gOT89qnDZSfX50Rn--><html lang="zh-CN" class="font-sans antialiased" data-vtl-theme="default" data-vtl-density="default" data-vtl-motion="default"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/chunks/73d2c788f1076e9a.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/a678910d6e3629e7.js"/><script src="/_next/static/chunks/b9cfbaaba1fd82be.js" async=""></script><script src="/_next/static/chunks/757e2e1b77b5bacc.js" async=""></script><script src="/_next/static/chunks/turbopack-d8677f40582561e6.js" async=""></script><script src="/_next/static/chunks/eca64d281474b631.js" async=""></script><script src="/_next/static/chunks/7dfeab42587bcc0e.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>Vantaloom</title><meta name="description" content="Vantaloom local agent operations console."/><script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/a678910d6e3629e7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[22332,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"ThemeProvider\"]\n3:I[45121,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n4:I[60512,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n5:I[35417,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[35417,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"ViewportBoundary\"]\na:I[35417,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"MetadataBoundary\"]\nc:I[50025,[\"/_next/static/chunks/eca64d281474b631.js\",\"/_next/static/chunks/7dfeab42587bcc0e.js\"],\"default\"]\n:HL[\"/_next/static/chunks/73d2c788f1076e9a.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"2kPL4gOT89qnDZSfX50Rn\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"/_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/73d2c788f1076e9a.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/eca64d281474b631.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/7dfeab42587bcc0e.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"zh-CN\",\"suppressHydrationWarning\":true,\"className\":\"font-sans antialiased\",\"data-vtl-theme\":\"default\",\"data-vtl-density\":\"default\",\"data-vtl-motion\":\"default\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style\",\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style\",\"children\":404}],[\"$\",\"div\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style\",\"children\":[\"$\",\"h2\",null,{\"style\":\"$0:f:0:1:0:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style\",\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",\"$undefined\"],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"Vantaloom\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Vantaloom local agent operations console.\"}]]\n"])</script></body></html>
@@ -1,9 +1,9 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[66863,["/_next/static/chunks/7dfeab42587bcc0e.js"],"ClientPageRoot"]
3
- 3:I[66204,["/_next/static/chunks/eca64d281474b631.js","/_next/static/chunks/17e0384154325960.js","/_next/static/chunks/c990601c49cb69a5.js","/_next/static/chunks/1da7f8d27cd96c86.js","/_next/static/chunks/742d3900ca49db0a.js"],"default"]
3
+ 3:I[66204,["/_next/static/chunks/eca64d281474b631.js","/_next/static/chunks/17e0384154325960.js","/_next/static/chunks/c990601c49cb69a5.js","/_next/static/chunks/7d5ab4ba8d474929.js","/_next/static/chunks/742d3900ca49db0a.js"],"default"]
4
4
  6:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"OutletBoundary"]
5
5
  7:"$Sreact.suspense"
6
- 0:{"buildId":"qDb937Fsr8zR_VHDxrNf_","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/17e0384154325960.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/c990601c49cb69a5.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/1da7f8d27cd96c86.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/742d3900ca49db0a.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false}
6
+ 0:{"buildId":"2kPL4gOT89qnDZSfX50Rn","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/17e0384154325960.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/c990601c49cb69a5.js","async":true}],["$","script","script-2",{"src":"/_next/static/chunks/7d5ab4ba8d474929.js","async":true}],["$","script","script-3",{"src":"/_next/static/chunks/742d3900ca49db0a.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false}
7
7
  4:{}
8
8
  5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
9
9
  8:null
@@ -3,14 +3,14 @@
3
3
  3:I[45121,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
4
4
  4:I[60512,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
5
5
  5:I[66863,["/_next/static/chunks/7dfeab42587bcc0e.js"],"ClientPageRoot"]
6
- 6:I[66204,["/_next/static/chunks/eca64d281474b631.js","/_next/static/chunks/17e0384154325960.js","/_next/static/chunks/c990601c49cb69a5.js","/_next/static/chunks/1da7f8d27cd96c86.js","/_next/static/chunks/742d3900ca49db0a.js"],"default"]
6
+ 6:I[66204,["/_next/static/chunks/eca64d281474b631.js","/_next/static/chunks/17e0384154325960.js","/_next/static/chunks/c990601c49cb69a5.js","/_next/static/chunks/7d5ab4ba8d474929.js","/_next/static/chunks/742d3900ca49db0a.js"],"default"]
7
7
  9:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"OutletBoundary"]
8
8
  a:"$Sreact.suspense"
9
9
  c:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"ViewportBoundary"]
10
10
  e:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"MetadataBoundary"]
11
11
  10:I[50025,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
12
- :HL["/_next/static/chunks/c0c4db6d45c7ff65.css","style"]
13
- 0:{"P":null,"b":"qDb937Fsr8zR_VHDxrNf_","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/c0c4db6d45c7ff65.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/eca64d281474b631.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"zh-CN","suppressHydrationWarning":true,"className":"font-sans antialiased","data-vtl-theme":"default","data-vtl-density":"default","data-vtl-motion":"default","children":["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/17e0384154325960.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/c990601c49cb69a5.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/1da7f8d27cd96c86.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/742d3900ca49db0a.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true}
12
+ :HL["/_next/static/chunks/73d2c788f1076e9a.css","style"]
13
+ 0:{"P":null,"b":"2kPL4gOT89qnDZSfX50Rn","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/73d2c788f1076e9a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/eca64d281474b631.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"zh-CN","suppressHydrationWarning":true,"className":"font-sans antialiased","data-vtl-theme":"default","data-vtl-density":"default","data-vtl-motion":"default","children":["$","body",null,{"children":["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L4",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L5",null,{"Component":"$6","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@7","$@8"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/17e0384154325960.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/c990601c49cb69a5.js","async":true,"nonce":"$undefined"}],["$","script","script-2",{"src":"/_next/static/chunks/7d5ab4ba8d474929.js","async":true,"nonce":"$undefined"}],["$","script","script-3",{"src":"/_next/static/chunks/742d3900ca49db0a.js","async":true,"nonce":"$undefined"}]],["$","$L9",null,{"children":["$","$a",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$a",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],null]}],false]],"m":"$undefined","G":["$10",[]],"S":true}
14
14
  7:{}
15
15
  8:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params"
16
16
  d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]
@@ -2,4 +2,4 @@
2
2
  2:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"ViewportBoundary"]
3
3
  3:I[35417,["/_next/static/chunks/7dfeab42587bcc0e.js"],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
- 0:{"buildId":"qDb937Fsr8zR_VHDxrNf_","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Vantaloom"}],["$","meta","1",{"name":"description","content":"Vantaloom local agent operations console."}]]}]}]}],null]}],"loading":null,"isPartial":false}
5
+ 0:{"buildId":"2kPL4gOT89qnDZSfX50Rn","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Vantaloom"}],["$","meta","1",{"name":"description","content":"Vantaloom local agent operations console."}]]}]}]}],null]}],"loading":null,"isPartial":false}