@vantaloom/runtime-darwin-arm64 0.2.0 → 0.3.2
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 +1 -1
- package/bin/vantaloom-agent +0 -0
- package/bin/vantaloom-api +0 -0
- package/bin/vantaloomctl +0 -0
- package/cli/package.json +1 -1
- package/cli/src/cli.mjs +183 -10
- package/manifest.json +2 -2
- package/package.json +1 -1
- package/web/404.html +1 -1
- package/web/__next.__PAGE__.txt +2 -2
- package/web/__next._full.txt +3 -3
- package/web/__next._head.txt +1 -1
- package/web/__next._index.txt +2 -2
- package/web/__next._tree.txt +2 -2
- package/web/_next/static/chunks/73d2c788f1076e9a.css +2 -0
- package/web/_next/static/chunks/7d5ab4ba8d474929.js +52 -0
- package/web/_not-found/__next._full.txt +2 -2
- package/web/_not-found/__next._head.txt +1 -1
- package/web/_not-found/__next._index.txt +2 -2
- package/web/_not-found/__next._not-found/__PAGE__.txt +1 -1
- package/web/_not-found/__next._not-found.txt +1 -1
- package/web/_not-found/__next._tree.txt +2 -2
- package/web/_not-found.html +1 -1
- package/web/_not-found.txt +2 -2
- package/web/index.html +1 -31
- package/web/index.txt +3 -3
- package/web/_next/static/chunks/1da7f8d27cd96c86.js +0 -52
- package/web/_next/static/chunks/c0c4db6d45c7ff65.css +0 -2
- /package/web/_next/static/{qDb937Fsr8zR_VHDxrNf_ → E7xzma4lFaip8CvAM7CW1}/_buildManifest.js +0 -0
- /package/web/_next/static/{qDb937Fsr8zR_VHDxrNf_ → E7xzma4lFaip8CvAM7CW1}/_clientMiddlewareManifest.json +0 -0
- /package/web/_next/static/{qDb937Fsr8zR_VHDxrNf_ → E7xzma4lFaip8CvAM7CW1}/_ssgManifest.js +0 -0
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
532507a
|
package/bin/vantaloom-agent
CHANGED
|
Binary file
|
package/bin/vantaloom-api
CHANGED
|
Binary file
|
package/bin/vantaloomctl
CHANGED
|
Binary file
|
package/cli/package.json
CHANGED
package/cli/src/cli.mjs
CHANGED
|
@@ -20,11 +20,39 @@ const installedConfigPath = path.join(cliRoot, "config.json")
|
|
|
20
20
|
const defaultReleaseTag = "runtime-latest"
|
|
21
21
|
const defaultRepo = "Timefiles404/Vantaloom-next"
|
|
22
22
|
const defaultNpmRegistry = "https://registry.npmjs.org"
|
|
23
|
+
const fallbackNpmRegistries = [
|
|
24
|
+
"https://registry.npmmirror.com",
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
// Inherit strict-ssl=false from npm/npx config, or respect NODE_TLS_REJECT_UNAUTHORIZED.
|
|
28
|
+
// When npm runs us via npx with strict-ssl disabled, it sets npm_config_strict_ssl="false".
|
|
29
|
+
// Also check user .npmrc for strict-ssl=false (common in China behind proxies).
|
|
30
|
+
function shouldDisableTLS() {
|
|
31
|
+
if (process.env.NODE_TLS_REJECT_UNAUTHORIZED === "0") return true
|
|
32
|
+
if (process.env.npm_config_strict_ssl === "false") return true
|
|
33
|
+
if (process.env.npm_config_strict_ssl === "") return true
|
|
34
|
+
try {
|
|
35
|
+
const npmrcPath = path.join(os.homedir(), ".npmrc")
|
|
36
|
+
if (existsSync(npmrcPath)) {
|
|
37
|
+
const content = readFileSync(npmrcPath, "utf8")
|
|
38
|
+
if (/^\s*strict-ssl\s*=\s*false/m.test(content)) return true
|
|
39
|
+
}
|
|
40
|
+
} catch {}
|
|
41
|
+
return false
|
|
42
|
+
}
|
|
43
|
+
if (shouldDisableTLS()) {
|
|
44
|
+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
|
|
45
|
+
}
|
|
23
46
|
|
|
24
47
|
export async function main(argv) {
|
|
25
48
|
const command = argv[0] ?? "help"
|
|
26
49
|
const options = parseOptions(argv.slice(1))
|
|
27
50
|
|
|
51
|
+
// --no-strict-ssl flag disables TLS certificate verification for fetch calls
|
|
52
|
+
if (options.noStrictSsl) {
|
|
53
|
+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0"
|
|
54
|
+
}
|
|
55
|
+
|
|
28
56
|
switch (command) {
|
|
29
57
|
case "install":
|
|
30
58
|
if (options.package) {
|
|
@@ -186,6 +214,10 @@ async function applyPackage(packageRoot, prefix, options) {
|
|
|
186
214
|
spawnSync(existingCtl, ["stop", "--prefix", prefix], { stdio: "inherit" })
|
|
187
215
|
}
|
|
188
216
|
|
|
217
|
+
// Kill lingering tray process that may hold locks on bin/ (older versions
|
|
218
|
+
// don't write tray.pid, so vantaloomctl stop won't find them).
|
|
219
|
+
killTrayProcess(prefix)
|
|
220
|
+
|
|
189
221
|
for (const name of ["bin", "web", "cli"]) {
|
|
190
222
|
removeKnownPath(path.join(prefix, name), prefix)
|
|
191
223
|
await cp(path.join(packageRoot, name), path.join(prefix, name), {
|
|
@@ -226,7 +258,8 @@ async function syncFromNpmRegistry(options, action) {
|
|
|
226
258
|
const installedConfig = readInstalledConfig(prefix)
|
|
227
259
|
const runtimePackage = options.runtimePackage || installedConfig.runtimePackage || runtimePackageName(platformId())
|
|
228
260
|
const runtimeVersion = options.runtimeVersion || installedConfig.runtimeVersion || "latest"
|
|
229
|
-
const
|
|
261
|
+
const explicitRegistry = options.npmRegistry || installedConfig.npmRegistry
|
|
262
|
+
const registry = normalizeRegistry(explicitRegistry || detectNpmRegistry() || defaultNpmRegistry)
|
|
230
263
|
const tempRoot = mkdtempSync(path.join(os.tmpdir(), "vantaloom-npm-"))
|
|
231
264
|
|
|
232
265
|
try {
|
|
@@ -234,7 +267,11 @@ async function syncFromNpmRegistry(options, action) {
|
|
|
234
267
|
const archive = path.join(tempRoot, `${packageBasename(runtimePackage)}-${runtimeVersion}.tgz`)
|
|
235
268
|
mkdirSync(extractRoot, { recursive: true })
|
|
236
269
|
|
|
237
|
-
const resolved = await
|
|
270
|
+
const resolved = await resolveNpmPackageWithFallback({
|
|
271
|
+
registries: explicitRegistry ? [registry] : [registry, ...fallbackNpmRegistries.map(normalizeRegistry)],
|
|
272
|
+
name: runtimePackage,
|
|
273
|
+
version: runtimeVersion,
|
|
274
|
+
})
|
|
238
275
|
await downloadNpmTarball({
|
|
239
276
|
tarballUrl: resolved.tarball,
|
|
240
277
|
target: archive,
|
|
@@ -248,13 +285,14 @@ async function syncFromNpmRegistry(options, action) {
|
|
|
248
285
|
noStart: options.noStart,
|
|
249
286
|
runtimePackage,
|
|
250
287
|
runtimeVersion: options.runtimeVersion ? resolved.version : "latest",
|
|
251
|
-
npmRegistry: registry,
|
|
288
|
+
npmRegistry: resolved.registry,
|
|
252
289
|
update: action === "update",
|
|
253
290
|
})
|
|
254
291
|
|
|
255
292
|
console.log(`${action === "update" ? "updated" : "installed"} Vantaloom: ${prefix}`)
|
|
256
293
|
console.log(`version: ${version}`)
|
|
257
294
|
console.log(`source: ${runtimePackage}@${resolved.version}`)
|
|
295
|
+
console.log(`registry: ${resolved.registry}`)
|
|
258
296
|
console.log(`run: ${displayCommand(prefix)} status`)
|
|
259
297
|
} finally {
|
|
260
298
|
removeKnownPath(tempRoot, os.tmpdir())
|
|
@@ -346,14 +384,114 @@ async function downloadReleaseAsset({ repo, releaseTag, assetName, target, token
|
|
|
346
384
|
await writeFile(target, buffer)
|
|
347
385
|
}
|
|
348
386
|
|
|
387
|
+
function detectNpmRegistry() {
|
|
388
|
+
// 1. NPM_CONFIG_REGISTRY env var (highest priority, set by npm/npx when running)
|
|
389
|
+
if (process.env.NPM_CONFIG_REGISTRY) {
|
|
390
|
+
return process.env.npm_config_registry || process.env.NPM_CONFIG_REGISTRY
|
|
391
|
+
}
|
|
392
|
+
// npm also sets the lowercase variant
|
|
393
|
+
if (process.env.npm_config_registry) {
|
|
394
|
+
return process.env.npm_config_registry
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
// 2. Read user .npmrc
|
|
398
|
+
try {
|
|
399
|
+
const npmrcPaths = [
|
|
400
|
+
path.join(os.homedir(), ".npmrc"),
|
|
401
|
+
]
|
|
402
|
+
// Also check project-level .npmrc
|
|
403
|
+
const localNpmrc = path.resolve(".npmrc")
|
|
404
|
+
if (localNpmrc !== npmrcPaths[0]) {
|
|
405
|
+
npmrcPaths.unshift(localNpmrc)
|
|
406
|
+
}
|
|
407
|
+
for (const npmrcPath of npmrcPaths) {
|
|
408
|
+
if (existsSync(npmrcPath)) {
|
|
409
|
+
const content = readFileSync(npmrcPath, "utf8")
|
|
410
|
+
const match = content.match(/^\s*registry\s*=\s*(.+)/m)
|
|
411
|
+
if (match) {
|
|
412
|
+
return match[1].trim()
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
} catch {
|
|
417
|
+
// Ignore .npmrc read errors
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
return ""
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
async function resolveNpmPackageWithFallback({ registries, name, version }) {
|
|
424
|
+
const errors = []
|
|
425
|
+
for (const registry of registries) {
|
|
426
|
+
try {
|
|
427
|
+
const result = await resolveNpmPackage({ registry, name, version })
|
|
428
|
+
return { ...result, registry }
|
|
429
|
+
} catch (error) {
|
|
430
|
+
const causeCode = error?.cause?.code || ""
|
|
431
|
+
const isNetworkError = causeCode === "ECONNREFUSED"
|
|
432
|
+
|| causeCode === "ENOTFOUND"
|
|
433
|
+
|| causeCode === "ETIMEDOUT"
|
|
434
|
+
|| causeCode === "ECONNRESET"
|
|
435
|
+
|| causeCode === "UND_ERR_CONNECT_TIMEOUT"
|
|
436
|
+
|| (error instanceof TypeError && error.message === "fetch failed")
|
|
437
|
+
const isSslError = causeCode === "UNABLE_TO_GET_ISSUER_CERT_LOCALLY"
|
|
438
|
+
|| causeCode === "CERT_HAS_EXPIRED"
|
|
439
|
+
|| causeCode === "DEPTH_ZERO_SELF_SIGNED_CERT"
|
|
440
|
+
|| causeCode === "SELF_SIGNED_CERT_IN_CHAIN"
|
|
441
|
+
|| causeCode === "ERR_TLS_CERT_ALTNAME_INVALID"
|
|
442
|
+
const isRetryable = isNetworkError || isSslError
|
|
443
|
+
errors.push({ registry, error, isRetryable, isSslError })
|
|
444
|
+
|
|
445
|
+
if (isRetryable && registries.length > 1) {
|
|
446
|
+
const hint = isSslError ? " (SSL certificate error)" : ""
|
|
447
|
+
console.error(`vantaloom: ${registry} unreachable${hint}, trying next registry...`)
|
|
448
|
+
continue
|
|
449
|
+
}
|
|
450
|
+
if (isSslError) {
|
|
451
|
+
throw new Error(
|
|
452
|
+
`SSL certificate error connecting to ${registry}: ${causeCode}\n` +
|
|
453
|
+
` Fix: run with --no-strict-ssl, or set npm config: npm config set strict-ssl false`
|
|
454
|
+
)
|
|
455
|
+
}
|
|
456
|
+
// Non-network error (404, parse error, etc.) — don't try fallbacks
|
|
457
|
+
throw error
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
// All registries failed
|
|
462
|
+
const hasSslError = errors.some((e) => e.isSslError)
|
|
463
|
+
const tried = errors.map((e) => e.registry).join(", ")
|
|
464
|
+
const sslHint = hasSslError
|
|
465
|
+
? `\n SSL fix: run with --no-strict-ssl, or set npm config: npm config set strict-ssl false`
|
|
466
|
+
: ""
|
|
467
|
+
throw new Error(
|
|
468
|
+
`all registries unreachable (tried: ${tried}). ` +
|
|
469
|
+
`Check your network or specify --npm-registry <url>${sslHint}`
|
|
470
|
+
)
|
|
471
|
+
}
|
|
472
|
+
|
|
349
473
|
async function resolveNpmPackage({ registry, name, version }) {
|
|
350
474
|
const metadataUrl = `${registry}/${encodeURIComponent(name).replace("%2F", "%2f")}`
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
475
|
+
let response
|
|
476
|
+
try {
|
|
477
|
+
response = await fetch(metadataUrl, {
|
|
478
|
+
headers: {
|
|
479
|
+
Accept: "application/vnd.npm.install-v1+json",
|
|
480
|
+
"User-Agent": "vantaloom-cli",
|
|
481
|
+
},
|
|
482
|
+
signal: AbortSignal.timeout(15000),
|
|
483
|
+
})
|
|
484
|
+
} catch (error) {
|
|
485
|
+
if (error instanceof TypeError && error.message === "fetch failed") {
|
|
486
|
+
const causeCode = error.cause?.code || ""
|
|
487
|
+
const causeMsg = causeCode || error.cause?.message || String(error.cause || "")
|
|
488
|
+
throw Object.assign(
|
|
489
|
+
new Error(`cannot reach registry ${registry} (${causeMsg})`),
|
|
490
|
+
{ cause: error.cause }
|
|
491
|
+
)
|
|
492
|
+
}
|
|
493
|
+
throw error
|
|
494
|
+
}
|
|
357
495
|
if (!response.ok) {
|
|
358
496
|
const detail = await response.text().catch(() => "")
|
|
359
497
|
throw new Error(`failed to inspect npm package ${name}: HTTP ${response.status}${detail ? ` ${detail.slice(0, 200)}` : ""}`)
|
|
@@ -470,7 +608,7 @@ function runtimeConfigFromSource(sourceRoot) {
|
|
|
470
608
|
releaseTag: defaultReleaseTag,
|
|
471
609
|
runtimePackage: runtimePackageName(platformId()),
|
|
472
610
|
runtimeVersion: "latest",
|
|
473
|
-
npmRegistry: defaultNpmRegistry,
|
|
611
|
+
npmRegistry: detectNpmRegistry() || defaultNpmRegistry,
|
|
474
612
|
}
|
|
475
613
|
}
|
|
476
614
|
|
|
@@ -776,6 +914,9 @@ function parseOptions(args) {
|
|
|
776
914
|
case "local":
|
|
777
915
|
options.local = true
|
|
778
916
|
break
|
|
917
|
+
case "no-strict-ssl":
|
|
918
|
+
options.noStrictSsl = true
|
|
919
|
+
break
|
|
779
920
|
default:
|
|
780
921
|
throw new Error(`unknown option --${key}`)
|
|
781
922
|
}
|
|
@@ -897,6 +1038,38 @@ async function writeText(filePath, content) {
|
|
|
897
1038
|
await writeFile(filePath, content)
|
|
898
1039
|
}
|
|
899
1040
|
|
|
1041
|
+
function killTrayProcess(prefix) {
|
|
1042
|
+
if (process.platform === "win32") {
|
|
1043
|
+
// Try PID file first (new tray versions write runtime/tray.pid).
|
|
1044
|
+
const pidFile = path.join(prefix, "runtime", "tray.pid")
|
|
1045
|
+
if (existsSync(pidFile)) {
|
|
1046
|
+
const pid = readFileSync(pidFile, "utf8").trim()
|
|
1047
|
+
if (pid) {
|
|
1048
|
+
spawnSync("taskkill", ["/PID", pid, "/F"], { stdio: "ignore" })
|
|
1049
|
+
try { rmSync(pidFile, { force: true }) } catch {}
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
1052
|
+
// Fallback: kill by image name if the binary is inside our prefix.
|
|
1053
|
+
const result = spawnSync("tasklist", ["/FI", "IMAGENAME eq vantaloom-tray.exe", "/FO", "CSV", "/NH"], {
|
|
1054
|
+
encoding: "utf8",
|
|
1055
|
+
windowsHide: true,
|
|
1056
|
+
})
|
|
1057
|
+
if (result.stdout) {
|
|
1058
|
+
for (const line of result.stdout.split("\n")) {
|
|
1059
|
+
const match = line.match(/"vantaloom-tray\.exe","(\d+)"/)
|
|
1060
|
+
if (match) {
|
|
1061
|
+
spawnSync("taskkill", ["/PID", match[1], "/F"], { stdio: "ignore" })
|
|
1062
|
+
}
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
// Brief pause to let file handles release.
|
|
1066
|
+
spawnSync("timeout", ["/t", "1", "/nobreak"], { stdio: "ignore", windowsHide: true })
|
|
1067
|
+
} else {
|
|
1068
|
+
// Unix: pkill by name (best-effort).
|
|
1069
|
+
spawnSync("pkill", ["-f", "vantaloom-tray"], { stdio: "ignore" })
|
|
1070
|
+
}
|
|
1071
|
+
}
|
|
1072
|
+
|
|
900
1073
|
function printHelp() {
|
|
901
1074
|
console.log(`Vantaloom CLI
|
|
902
1075
|
|
package/manifest.json
CHANGED
package/package.json
CHANGED
package/web/404.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><!--
|
|
1
|
+
<!DOCTYPE html><!--E7xzma4lFaip8CvAM7CW1--><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,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";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\":\"E7xzma4lFaip8CvAM7CW1\",\"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>
|
package/web/__next.__PAGE__.txt
CHANGED
|
@@ -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/
|
|
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":"
|
|
6
|
+
0:{"buildId":"E7xzma4lFaip8CvAM7CW1","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
|
package/web/__next._full.txt
CHANGED
|
@@ -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/
|
|
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/
|
|
13
|
-
0:{"P":null,"b":"
|
|
12
|
+
:HL["/_next/static/chunks/73d2c788f1076e9a.css","style"]
|
|
13
|
+
0:{"P":null,"b":"E7xzma4lFaip8CvAM7CW1","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"}]]
|
package/web/__next._head.txt
CHANGED
|
@@ -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":"
|
|
5
|
+
0:{"buildId":"E7xzma4lFaip8CvAM7CW1","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}
|
package/web/__next._index.txt
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
2:I[22332,["/_next/static/chunks/eca64d281474b631.js"],"ThemeProvider"]
|
|
3
3
|
3:I[45121,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
|
|
4
4
|
4:I[60512,["/_next/static/chunks/7dfeab42587bcc0e.js"],"default"]
|
|
5
|
-
:HL["/_next/static/chunks/
|
|
6
|
-
0:{"buildId":"
|
|
5
|
+
:HL["/_next/static/chunks/73d2c788f1076e9a.css","style"]
|
|
6
|
+
0:{"buildId":"E7xzma4lFaip8CvAM7CW1","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/73d2c788f1076e9a.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/eca64d281474b631.js","async":true}]],["$","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","template":["$","$L4",null,{}],"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."}]}]]}]}]],[]]}]}]}]}]]}],"loading":null,"isPartial":false}
|
package/web/__next._tree.txt
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:HL["/_next/static/chunks/
|
|
2
|
-
0:{"buildId":"
|
|
1
|
+
:HL["/_next/static/chunks/73d2c788f1076e9a.css","style"]
|
|
2
|
+
0:{"buildId":"E7xzma4lFaip8CvAM7CW1","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
|