@boxes-dev/dvb 0.2.43 → 0.2.45

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/dist/bin/dvbd.cjs CHANGED
@@ -859,7 +859,7 @@ var init_sprites = __esm({
859
859
  await internalServicesRequest(apiBaseUrl, token, name, command);
860
860
  return [];
861
861
  };
862
- execCommand = async (apiBaseUrl, token, name, cmd, requestId) => {
862
+ execCommand = async (apiBaseUrl, token, name, cmd, requestId, options) => {
863
863
  const path6 = `/v1/sprites/${name}/exec`;
864
864
  const url = toWsUrl(apiBaseUrl, path6);
865
865
  cmd.forEach((part) => url.searchParams.append("cmd", part));
@@ -870,11 +870,28 @@ var init_sprites = __esm({
870
870
  const stderr = [];
871
871
  let exitCode = null;
872
872
  let resolved = false;
873
+ const timeoutMs = options?.timeoutMs;
874
+ const handshakeTimeoutMs = options?.handshakeTimeoutMs ?? (typeof timeoutMs === "number" ? Math.min(timeoutMs, 6e4) : void 0);
875
+ const timeoutHandle = typeof timeoutMs === "number" && timeoutMs > 0 ? setTimeout(() => {
876
+ if (resolved) return;
877
+ resolved = true;
878
+ logger.warn("sprites_exec_timeout", {
879
+ requestId,
880
+ path: path6,
881
+ timeoutMs
882
+ });
883
+ try {
884
+ ws.terminate();
885
+ } catch {
886
+ }
887
+ reject(new Error(`Exec websocket timed out after ${timeoutMs}ms`));
888
+ }, timeoutMs) : null;
873
889
  const ws = new import_ws.default(url.toString(), {
874
890
  headers: {
875
891
  Authorization: `Bearer ${token}`,
876
892
  "x-request-id": requestId
877
- }
893
+ },
894
+ ...typeof handshakeTimeoutMs === "number" && handshakeTimeoutMs > 0 ? { handshakeTimeout: handshakeTimeoutMs } : {}
878
895
  });
879
896
  const readResponseSnippet = async (response, limit = 800) => new Promise((resolveBody) => {
880
897
  let body = "";
@@ -900,6 +917,8 @@ var init_sprites = __esm({
900
917
  bodySnippet: snippet ? snippet.slice(0, 800) : void 0
901
918
  });
902
919
  if (!resolved) {
920
+ if (timeoutHandle) clearTimeout(timeoutHandle);
921
+ resolved = true;
903
922
  const suffix = snippet ? ` (${snippet.slice(0, 800)})` : "";
904
923
  reject(new Error(`Exec websocket error: Unexpected server response: ${status}${suffix}`));
905
924
  }
@@ -908,6 +927,7 @@ var init_sprites = __esm({
908
927
  const finish = (code2) => {
909
928
  if (resolved) return;
910
929
  resolved = true;
930
+ if (timeoutHandle) clearTimeout(timeoutHandle);
911
931
  logger.info("sprites_exec_response", { requestId, path: path6, status: code2 });
912
932
  resolve({
913
933
  exitCode: code2,
@@ -965,6 +985,8 @@ var init_sprites = __esm({
965
985
  errorStack: errorInfo.stack
966
986
  });
967
987
  if (!resolved) {
988
+ if (timeoutHandle) clearTimeout(timeoutHandle);
989
+ resolved = true;
968
990
  reject(new Error(`Exec websocket error: ${errorMessage}`));
969
991
  }
970
992
  };
@@ -1019,7 +1041,7 @@ var init_sprites = __esm({
1019
1041
  await writeFile(apiBaseUrl, token, name, remotePath, data);
1020
1042
  },
1021
1043
  readFile: async (name, options) => readFile(apiBaseUrl, token, name, options),
1022
- exec: async (name, cmd) => {
1044
+ exec: async (name, cmd, options) => {
1023
1045
  const requestId = (0, import_node_crypto.randomUUID)();
1024
1046
  logger.info("sprites_exec", {
1025
1047
  requestId,
@@ -1027,7 +1049,7 @@ var init_sprites = __esm({
1027
1049
  cmd,
1028
1050
  path: `/v1/sprites/${name}/exec`
1029
1051
  });
1030
- return execCommand(apiBaseUrl, token, name, cmd, requestId);
1052
+ return execCommand(apiBaseUrl, token, name, cmd, requestId, options);
1031
1053
  },
1032
1054
  listExecSessions: async (name) => listExecSessions(apiBaseUrl, token, name),
1033
1055
  listServices: async (name) => USE_INTERNAL_SERVICE_API ? listServicesInternal(apiBaseUrl, token, name) : listServices(apiBaseUrl, token, name),
@@ -10494,7 +10516,7 @@ var init_server = __esm({
10494
10516
  });
10495
10517
 
10496
10518
  // ../daemon/src/spritesRegistry.ts
10497
- var import_node_crypto2, import_node_fs, import_promises4, registryGet, registryReplace, registryUpsert, registryUsage, registryRemove, logger4, TOKEN_REFRESH_BUFFER_MS, clientCache, migrationPromise, migrationCompleted, trimEnv, resolveConvexUrl, resolveControlPlaneUrl, requireConvexConfig, decodeJwtPayload, parseTokenExpiresAt, shouldRefreshToken, isUnauthorizedError, clearControlPlaneSession, handleUnauthorized, refreshSession, loadControlPlaneToken, getClient, spritePortsList, logRequest, logResponse, parseTimestamp, pickEarlier, pickLater, mergeBoxes, mergeProjects, mergeRegistry, getRegistryFromConvex, replaceRegistry, migrateLocalRegistry, backfillInitStatus, fetchRegistry, upsertRegistry, recordRegistryUsage, removeRegistryEntry, subscribeSpritePorts;
10519
+ var import_node_crypto2, import_node_fs, import_promises4, registryGet, registryReplace, registryUpsert, registryUsage, registryRemove, logger4, TOKEN_REFRESH_BUFFER_MS, clientCache, migrationPromise, migrationCompleted, trimEnv, normalizeConvexDeployment, stripDevPrefix, resolveFromDeployment, resolveFromUrl, resolveConvexUrl, resolveControlPlaneUrl, requireConvexConfig, decodeJwtPayload, parseTokenExpiresAt, shouldRefreshToken, isUnauthorizedError, clearControlPlaneSession, handleUnauthorized, refreshSession, loadControlPlaneToken, requireControlPlaneToken, getClient, spritePortsList, logRequest, logResponse, parseTimestamp, pickEarlier, pickLater, mergeBoxes, mergeProjects, mergeRegistry, getRegistryFromConvex, replaceRegistry, migrateLocalRegistry, backfillInitStatus, fetchRegistry, upsertRegistry, recordRegistryUsage, removeRegistryEntry, subscribeSpritePorts;
10498
10520
  var init_spritesRegistry = __esm({
10499
10521
  "../daemon/src/spritesRegistry.ts"() {
10500
10522
  "use strict";
@@ -10516,13 +10538,55 @@ var init_spritesRegistry = __esm({
10516
10538
  migrationPromise = null;
10517
10539
  migrationCompleted = false;
10518
10540
  trimEnv = (value) => value?.trim() ?? "";
10541
+ normalizeConvexDeployment = (value) => {
10542
+ const normalized = trimEnv(value).replace(/\r/g, "");
10543
+ if (!normalized) return "";
10544
+ if (normalized.includes(":")) {
10545
+ const [prefix, rest] = normalized.split(":", 2);
10546
+ return `${prefix}:${trimEnv(rest ?? "")}`;
10547
+ }
10548
+ return normalized;
10549
+ };
10550
+ stripDevPrefix = (value) => {
10551
+ if (value.startsWith("dev:")) {
10552
+ return trimEnv(value.slice(4));
10553
+ }
10554
+ return value;
10555
+ };
10556
+ resolveFromDeployment = (deploymentRaw, suffix) => {
10557
+ const deployment = stripDevPrefix(normalizeConvexDeployment(deploymentRaw));
10558
+ if (!deployment) return "";
10559
+ if (deployment.includes("://")) {
10560
+ return deployment;
10561
+ }
10562
+ if (deployment.includes(".")) {
10563
+ const host = suffix === "cloud" ? deployment.replace(".convex.site", ".convex.cloud") : deployment.replace(".convex.cloud", ".convex.site");
10564
+ return `https://${host}`;
10565
+ }
10566
+ return `https://${deployment}.convex.${suffix}`;
10567
+ };
10568
+ resolveFromUrl = (raw, suffix) => {
10569
+ const value = trimEnv(raw).replace(/\r/g, "");
10570
+ if (!value) return "";
10571
+ try {
10572
+ const url = new URL(value);
10573
+ const host = suffix === "cloud" ? url.host.replace(".convex.site", ".convex.cloud") : url.host.replace(".convex.cloud", ".convex.site");
10574
+ return `${url.protocol}//${host}`;
10575
+ } catch {
10576
+ return "";
10577
+ }
10578
+ };
10519
10579
  resolveConvexUrl = () => {
10520
10580
  const url = trimEnv(process.env.DEVBOX_CONVEX_URL) || trimEnv(process.env.VITE_CONVEX_URL);
10521
- return url.length > 0 ? url : null;
10581
+ if (url.length > 0) return url;
10582
+ const derived = resolveFromDeployment(process.env.CONVEX_DEPLOYMENT ?? "", "cloud") || resolveFromUrl(process.env.CONVEX_SITE_URL ?? "", "cloud");
10583
+ return derived ? derived : null;
10522
10584
  };
10523
10585
  resolveControlPlaneUrl = () => {
10524
10586
  const url = trimEnv(process.env.DEVBOX_CONTROL_PLANE_URL) || trimEnv(process.env.CONVEX_SITE_URL);
10525
- return url.length > 0 ? url : null;
10587
+ if (url.length > 0) return url;
10588
+ const derived = resolveFromDeployment(process.env.CONVEX_DEPLOYMENT ?? "", "site") || resolveFromUrl(process.env.VITE_CONVEX_URL ?? "", "site");
10589
+ return derived ? derived : null;
10526
10590
  };
10527
10591
  requireConvexConfig = () => {
10528
10592
  if (!resolveControlPlaneUrl()) {
@@ -10658,26 +10722,35 @@ var init_spritesRegistry = __esm({
10658
10722
  if (!token) {
10659
10723
  const refreshToken = await store.getControlPlaneRefreshToken();
10660
10724
  if (refreshToken) {
10661
- const refreshed = await refreshSession(refreshToken);
10662
- token = refreshed.token;
10663
- await store.setControlPlaneToken(token);
10664
- if (refreshed.refreshToken) {
10665
- await store.setControlPlaneRefreshToken(refreshed.refreshToken);
10666
- }
10667
- const nextExpiresAt = parseTokenExpiresAt(token);
10668
- if (nextExpiresAt) {
10669
- await store.setControlPlaneTokenExpiresAt(nextExpiresAt);
10670
- } else {
10671
- await store.clearControlPlaneTokenExpiresAt();
10725
+ try {
10726
+ const refreshed = await refreshSession(refreshToken);
10727
+ token = refreshed.token;
10728
+ await store.setControlPlaneToken(token);
10729
+ if (refreshed.refreshToken) {
10730
+ await store.setControlPlaneRefreshToken(refreshed.refreshToken);
10731
+ }
10732
+ const nextExpiresAt = parseTokenExpiresAt(token);
10733
+ if (nextExpiresAt) {
10734
+ await store.setControlPlaneTokenExpiresAt(nextExpiresAt);
10735
+ } else {
10736
+ await store.clearControlPlaneTokenExpiresAt();
10737
+ }
10738
+ } catch (error) {
10739
+ logger4.warn("control_plane_refresh_failed", { error: String(error) });
10672
10740
  }
10673
10741
  }
10674
10742
  }
10743
+ return token ?? null;
10744
+ };
10745
+ requireControlPlaneToken = async () => {
10746
+ const token = await loadControlPlaneToken();
10675
10747
  if (!token) {
10676
10748
  throw new Error("Control plane auth missing. Run `dvb setup` to sign in.");
10677
10749
  }
10678
10750
  return token;
10679
10751
  };
10680
10752
  getClient = async () => {
10753
+ await requireControlPlaneToken();
10681
10754
  const convexUrl = requireConvexConfig();
10682
10755
  if (clientCache && clientCache.url === convexUrl) {
10683
10756
  return clientCache.client;
@@ -11485,7 +11558,7 @@ __export(src_exports, {
11485
11558
  runDaemon: () => runDaemon,
11486
11559
  startDaemon: () => startDaemon
11487
11560
  });
11488
- var import_node_http, import_promises5, import_node_fs2, import_node_crypto4, import_node_net2, import_node_path5, logger6, startedAt, DAEMON_API_VERSION, DAEMON_FEATURES, allowShutdown, buildBoxSummaries, readBody, readRequestPath, writeJson, handleRequestError, isSocketAlive, ensureRuntimeDir, startDaemon, runDaemon;
11561
+ var import_node_http, import_promises5, import_node_fs2, import_node_crypto4, import_node_net2, import_node_path5, logger6, startedAt, DAEMON_API_VERSION, DAEMON_FEATURES, allowShutdown, buildBoxSummaries, readBody, readRequestPath, writeJson, handleRequestError, isSocketAlive, waitForSocketAlive, ensureRuntimeDir, startDaemon, runDaemon;
11489
11562
  var init_src2 = __esm({
11490
11563
  "../daemon/src/index.ts"() {
11491
11564
  import_node_http = require("node:http");
@@ -11598,6 +11671,15 @@ var init_src2 = __esm({
11598
11671
  socket.once("error", () => done(false));
11599
11672
  socket.setTimeout(250, () => done(false));
11600
11673
  });
11674
+ waitForSocketAlive = async (socketPath, timeoutMs) => {
11675
+ const deadline = Date.now() + timeoutMs;
11676
+ while (Date.now() < deadline) {
11677
+ if (!(0, import_node_fs2.existsSync)(socketPath)) return false;
11678
+ if (await isSocketAlive(socketPath)) return true;
11679
+ await new Promise((resolve) => setTimeout(resolve, 50));
11680
+ }
11681
+ return false;
11682
+ };
11601
11683
  ensureRuntimeDir = async (runtimeDir) => {
11602
11684
  await import_promises5.default.mkdir(runtimeDir, { recursive: true, mode: 448 });
11603
11685
  try {
@@ -11613,7 +11695,7 @@ var init_src2 = __esm({
11613
11695
  const { socketPath, runtimeDir } = socketInfo;
11614
11696
  await ensureRuntimeDir(runtimeDir);
11615
11697
  if ((0, import_node_fs2.existsSync)(socketPath)) {
11616
- const alive = await isSocketAlive(socketPath);
11698
+ const alive = await waitForSocketAlive(socketPath, 1e3);
11617
11699
  if (alive) {
11618
11700
  throw new Error(`dvbd already running at ${socketPath}`);
11619
11701
  }
@@ -11621,19 +11703,6 @@ var init_src2 = __esm({
11621
11703
  }
11622
11704
  const portManager = new PortManager();
11623
11705
  portManager.start();
11624
- void fetchRegistry().then((registry) => {
11625
- for (const canonical of Object.keys(registry.boxes)) {
11626
- portManager.noteBox(canonical);
11627
- }
11628
- for (const canonical of Object.values(registry.aliases)) {
11629
- portManager.noteBox(canonical);
11630
- }
11631
- for (const project of Object.values(registry.projects)) {
11632
- portManager.noteBox(project.canonical);
11633
- }
11634
- }).catch((error) => {
11635
- logger6.warn("ports_registry_load_failed", { error: String(error) });
11636
- });
11637
11706
  const server = (0, import_node_http.createServer)((req, res) => {
11638
11707
  const requestId = req.headers["x-request-id"] ?? (0, import_node_crypto4.randomUUID)();
11639
11708
  const path6 = readRequestPath(req);
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/devbox/cli.ts"],"names":[],"mappings":"AA2EA,eAAO,MAAM,IAAI,qBA4GhB,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/devbox/cli.ts"],"names":[],"mappings":"AA8EA,eAAO,MAAM,IAAI,qBA8HhB,CAAC"}
@@ -10,10 +10,12 @@ import { runPorts } from "./commands/ports.js";
10
10
  import { runSessions } from "./commands/sessions.js";
11
11
  import { runServices } from "./commands/services.js";
12
12
  import { runSetup } from "./commands/setup.js";
13
+ import { runVersion } from "./commands/version.js";
13
14
  import { runWezterm } from "./commands/wezterm.js";
14
15
  import { maybeAutoUpdateCompletions, runComplete, runCompletions, } from "./completions/index.js";
15
16
  const printUsage = () => {
16
17
  console.log("Usage:");
18
+ console.log(" dvb --version");
17
19
  console.log(" dvb setup [--token <token>] [--org <slug>]");
18
20
  console.log(" [--api-base-url <url>] [--no-verify] [--json]");
19
21
  console.log(" dvb logout [--json]");
@@ -50,6 +52,7 @@ const printUsage = () => {
50
52
  console.log(" dvb wezterm proxy [<box>] [--port <port>] [--version <ver>] [--asset-url <url>]");
51
53
  console.log(" dvb wezterm setup [<box>] [--port <port>] [--domain <name>] [--path <path>]");
52
54
  console.log(" dvb wezterm [<box>] [--port <port>] [--domain <name>] [--path <path>]");
55
+ console.log(" dvb version [--json]");
53
56
  };
54
57
  export const main = async () => {
55
58
  const args = process.argv.slice(2);
@@ -57,9 +60,26 @@ export const main = async () => {
57
60
  printUsage();
58
61
  return;
59
62
  }
63
+ if (args[0] === "--version") {
64
+ await runVersion([]);
65
+ return;
66
+ }
60
67
  if (args[0] !== "complete" && args[0] !== "completions") {
61
68
  await maybeAutoUpdateCompletions();
62
69
  }
70
+ if (args[0] === "version") {
71
+ try {
72
+ await runVersion(args.slice(1));
73
+ }
74
+ catch (error) {
75
+ if (error instanceof Error && error.message === "help_requested") {
76
+ printUsage();
77
+ return;
78
+ }
79
+ throw error;
80
+ }
81
+ return;
82
+ }
63
83
  if (args[0] === "setup") {
64
84
  await runSetup(args.slice(1));
65
85
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/devbox/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/devbox/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../../src/devbox/commands/init/codex/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../../../../src/devbox/commands/init/codex/plan.ts"],"names":[],"mappings":"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"}
@@ -1,38 +1,53 @@
1
1
  import path from "node:path";
2
- import fs from "node:fs/promises";
2
+ import fs from "node:fs";
3
+ import fsPromises from "node:fs/promises";
3
4
  const resolveSchemaPath = (fileName) => {
4
- const binPath = process.argv[1];
5
- if (binPath) {
6
- return path.resolve(path.dirname(binPath), "..", "codex", fileName);
5
+ // Prefer resolving relative to the real dvb entrypoint, since `process.argv[1]`
6
+ // may be a bin shim (e.g. ~/.nvm/.../bin/dvb) rather than `.../dist/bin/dvb.cjs`.
7
+ const argv1 = typeof process.argv[1] === "string" ? process.argv[1] : "";
8
+ if (argv1) {
9
+ try {
10
+ const real = fs.realpathSync(argv1);
11
+ return path.resolve(path.dirname(real), "..", "codex", fileName);
12
+ }
13
+ catch {
14
+ // ignore and fall back
15
+ }
16
+ try {
17
+ return path.resolve(path.dirname(argv1), "..", "codex", fileName);
18
+ }
19
+ catch {
20
+ // ignore and fall back
21
+ }
7
22
  }
8
23
  return path.resolve(process.cwd(), "codex", fileName);
9
24
  };
10
25
  const writeSetupEnvSecretsSchema = async (dir) => {
11
26
  const sourceSchemaPath = resolveSchemaPath("setup-env-secrets-schema.json");
12
- const schemaContents = await fs.readFile(sourceSchemaPath, "utf8");
27
+ const schemaContents = await fsPromises.readFile(sourceSchemaPath, "utf8");
13
28
  const schemaPath = path.join(dir, "setup-env-secrets-schema.json");
14
- await fs.writeFile(schemaPath, schemaContents, "utf8");
29
+ await fsPromises.writeFile(schemaPath, schemaContents, "utf8");
15
30
  return schemaPath;
16
31
  };
17
32
  const writeSetupExternalSchema = async (dir) => {
18
33
  const sourceSchemaPath = resolveSchemaPath("setup-external-schema.json");
19
- const schemaContents = await fs.readFile(sourceSchemaPath, "utf8");
34
+ const schemaContents = await fsPromises.readFile(sourceSchemaPath, "utf8");
20
35
  const schemaPath = path.join(dir, "setup-external-schema.json");
21
- await fs.writeFile(schemaPath, schemaContents, "utf8");
36
+ await fsPromises.writeFile(schemaPath, schemaContents, "utf8");
22
37
  return schemaPath;
23
38
  };
24
39
  const writeSetupExtraArtifactsSchema = async (dir) => {
25
40
  const sourceSchemaPath = resolveSchemaPath("setup-extra-artifacts-schema.json");
26
- const schemaContents = await fs.readFile(sourceSchemaPath, "utf8");
41
+ const schemaContents = await fsPromises.readFile(sourceSchemaPath, "utf8");
27
42
  const schemaPath = path.join(dir, "setup-extra-artifacts-schema.json");
28
- await fs.writeFile(schemaPath, schemaContents, "utf8");
43
+ await fsPromises.writeFile(schemaPath, schemaContents, "utf8");
29
44
  return schemaPath;
30
45
  };
31
46
  const writeServicesSchema = async (dir) => {
32
47
  const sourceSchemaPath = resolveSchemaPath("services-schema.json");
33
- const schemaContents = await fs.readFile(sourceSchemaPath, "utf8");
48
+ const schemaContents = await fsPromises.readFile(sourceSchemaPath, "utf8");
34
49
  const schemaPath = path.join(dir, "services-schema.json");
35
- await fs.writeFile(schemaPath, schemaContents, "utf8");
50
+ await fsPromises.writeFile(schemaPath, schemaContents, "utf8");
36
51
  return schemaPath;
37
52
  };
38
53
  const isObject = (value) => typeof value === "object" && value !== null;
@@ -85,7 +100,7 @@ const isServicesPlan = (value) => {
85
100
  Array.isArray(value.backgroundServices));
86
101
  };
87
102
  const readSetupPlan = async (setupPath) => {
88
- const raw = await fs.readFile(setupPath, "utf8");
103
+ const raw = await fsPromises.readFile(setupPath, "utf8");
89
104
  const parsed = JSON.parse(raw);
90
105
  if (!isSetupPlan(parsed)) {
91
106
  throw new Error(`Invalid setup plan: ${setupPath}`);
@@ -93,7 +108,7 @@ const readSetupPlan = async (setupPath) => {
93
108
  return parsed;
94
109
  };
95
110
  const readSetupEnvSecretsPlan = async (scanPath) => {
96
- const raw = await fs.readFile(scanPath, "utf8");
111
+ const raw = await fsPromises.readFile(scanPath, "utf8");
97
112
  const parsed = JSON.parse(raw);
98
113
  if (!isSetupEnvSecretsPlan(parsed)) {
99
114
  throw new Error(`Invalid env/secrets scan: ${scanPath}`);
@@ -101,7 +116,7 @@ const readSetupEnvSecretsPlan = async (scanPath) => {
101
116
  return parsed;
102
117
  };
103
118
  const readSetupExternalPlan = async (scanPath) => {
104
- const raw = await fs.readFile(scanPath, "utf8");
119
+ const raw = await fsPromises.readFile(scanPath, "utf8");
105
120
  const parsed = JSON.parse(raw);
106
121
  if (!isSetupExternalPlan(parsed)) {
107
122
  throw new Error(`Invalid external scan: ${scanPath}`);
@@ -109,7 +124,7 @@ const readSetupExternalPlan = async (scanPath) => {
109
124
  return parsed;
110
125
  };
111
126
  const readSetupExtraArtifactsPlan = async (scanPath) => {
112
- const raw = await fs.readFile(scanPath, "utf8");
127
+ const raw = await fsPromises.readFile(scanPath, "utf8");
113
128
  const parsed = JSON.parse(raw);
114
129
  if (!isSetupExtraArtifactsPlan(parsed)) {
115
130
  throw new Error(`Invalid extra artifacts scan: ${scanPath}`);
@@ -117,7 +132,7 @@ const readSetupExtraArtifactsPlan = async (scanPath) => {
117
132
  return parsed;
118
133
  };
119
134
  const readServicesPlan = async (servicesPath) => {
120
- const raw = await fs.readFile(servicesPath, "utf8");
135
+ const raw = await fsPromises.readFile(servicesPath, "utf8");
121
136
  const parsed = JSON.parse(raw);
122
137
  if (!isServicesPlan(parsed)) {
123
138
  throw new Error(`Invalid services plan: ${servicesPath}`);
@@ -125,7 +140,7 @@ const readServicesPlan = async (servicesPath) => {
125
140
  return parsed;
126
141
  };
127
142
  const writeSetupPlan = async (setupPath, plan) => {
128
- await fs.writeFile(setupPath, JSON.stringify(plan, null, 2), "utf8");
143
+ await fsPromises.writeFile(setupPath, JSON.stringify(plan, null, 2), "utf8");
129
144
  };
130
145
  const mergeSetupScans = ({ envSecrets, external, extraArtifacts, services, }) => {
131
146
  const dedupeBy = (items, key) => {
@@ -167,7 +182,7 @@ const mergeSetupScans = ({ envSecrets, external, extraArtifacts, services, }) =>
167
182
  };
168
183
  };
169
184
  const writeServicesPlan = async (servicesPath, plan) => {
170
- await fs.writeFile(servicesPath, JSON.stringify(plan, null, 2), "utf8");
185
+ await fsPromises.writeFile(servicesPath, JSON.stringify(plan, null, 2), "utf8");
171
186
  };
172
187
  export { readSetupPlan, readSetupEnvSecretsPlan, readSetupExternalPlan, readSetupExtraArtifactsPlan, readServicesPlan, writeSetupPlan, mergeSetupScans, writeSetupEnvSecretsSchema, writeSetupExternalSchema, writeSetupExtraArtifactsSchema, writeServicesPlan, writeServicesSchema, };
173
188
  //# sourceMappingURL=plan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../../src/devbox/commands/init/codex/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../../../../src/devbox/commands/init/codex/plan.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../../src/devbox/commands/init/remote.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAgBrD,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAoBF,QAAA,MAAM,UAAU,GAAI,OAAO,MAAM,WACI,CAAC;AAEtC,QAAA,MAAM,UAAU,GAAI,OAAO,MAAM,WAKhC,CAAC;AAoEF,QAAA,MAAM,eAAe,GAAU,QAAQ,aAAa,EAAE,WAAW,MAAM,kBAmDtE,CAAC;AAgMF,QAAA,MAAM,sBAAsB,GAC1B,QAAQ,aAAa,EACrB,WAAW,MAAM,EACjB,UAAU,MAAM,kBAsBjB,CAAC;AAEF,QAAA,MAAM,yBAAyB,GAAU,6EAMtC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,kBA+HA,CAAC;AAqCF,QAAA,MAAM,yBAAyB,GAAU,yBAGtC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,kBA2BA,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAU,uDAM9B;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,OAAO,CAqIlB,CAAC;AAEF,QAAA,MAAM,uBAAuB,GAAU,yBAGpC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,kBA2BA,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAU,yBAGhC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,qBAwBA,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAU,yBAGhC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,qBAoCA,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAU,6DAMhC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB,kBAoCA,CAAC;AAEF,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,GAC1B,CAAC"}
1
+ {"version":3,"file":"remote.d.ts","sourceRoot":"","sources":["../../../../src/devbox/commands/init/remote.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAgBrD,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,CAAC;AAsBF,QAAA,MAAM,UAAU,GAAI,OAAO,MAAM,WACI,CAAC;AAEtC,QAAA,MAAM,UAAU,GAAI,OAAO,MAAM,WAKhC,CAAC;AAiFF,QAAA,MAAM,eAAe,GAAU,QAAQ,aAAa,EAAE,WAAW,MAAM,kBAqEtE,CAAC;AAgMF,QAAA,MAAM,sBAAsB,GAC1B,QAAQ,aAAa,EACrB,WAAW,MAAM,EACjB,UAAU,MAAM,kBAsBjB,CAAC;AAEF,QAAA,MAAM,yBAAyB,GAAU,6EAMtC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,kBA+HA,CAAC;AAqCF,QAAA,MAAM,yBAAyB,GAAU,yBAGtC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,kBA2BA,CAAC;AAEF,QAAA,MAAM,iBAAiB,GAAU,uDAM9B;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KAAG,OAAO,CAAC,OAAO,CAqIlB,CAAC;AAEF,QAAA,MAAM,uBAAuB,GAAU,yBAGpC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,kBA2BA,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAU,yBAGhC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,qBAwBA,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAU,yBAGhC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,qBAoCA,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAU,6DAMhC;IACD,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CACxB,kBAwCA,CAAC;AAEF,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,UAAU,EACV,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,GAC1B,CAAC"}
@@ -12,6 +12,8 @@ const DAEMON_SERVICE_NAME = "devbox-sprite-daemon";
12
12
  const DAEMON_CONFIG_FILE = `${DAEMON_DIR}/config.json`;
13
13
  const DEFAULT_DAEMON_BASE_URL = process.env.SPRITE_DAEMON_BASE_URL?.trim() || "https://deploy-dev.boxes.dev";
14
14
  const DEFAULT_HEARTBEAT_MS = 30_000;
15
+ const BOOTSTRAP_EXEC_TIMEOUT_MS = 90_000;
16
+ const BOOTSTRAP_EXEC_RETRY_DELAY_MS = 10_000;
15
17
  const logger = createLogger("devbox-init");
16
18
  const truncateTail = (value, maxChars) => {
17
19
  if (value.length <= maxChars)
@@ -26,7 +28,7 @@ const expandHome = (value) => {
26
28
  }
27
29
  return value;
28
30
  };
29
- const execWithLog = async (client, canonical, script, stage) => {
31
+ const execWithLog = async (client, canonical, script, stage, options) => {
30
32
  const requestId = randomUUID();
31
33
  const startedAt = Date.now();
32
34
  logger.info("sprites_request", {
@@ -36,7 +38,7 @@ const execWithLog = async (client, canonical, script, stage) => {
36
38
  box: canonical,
37
39
  stage,
38
40
  });
39
- const result = await client.exec(canonical, ["/bin/bash", "-lc", script]);
41
+ const result = await client.exec(canonical, ["/bin/bash", "-lc", script], options);
40
42
  const durationMs = Date.now() - startedAt;
41
43
  logger.info("sprites_response", {
42
44
  requestId,
@@ -58,6 +60,10 @@ const execWithLog = async (client, canonical, script, stage) => {
58
60
  });
59
61
  return result;
60
62
  };
63
+ const isExecTimeoutError = (error) => error instanceof Error &&
64
+ typeof error.message === "string" &&
65
+ error.message.startsWith("Exec websocket timed out after ");
66
+ const delay = async (ms) => new Promise((resolve) => setTimeout(resolve, ms));
61
67
  const writeRemoteFile = async (client, canonical, path, content, stage) => {
62
68
  const requestId = randomUUID();
63
69
  logger.info("sprites_request", {
@@ -89,7 +95,18 @@ const bootstrapDevbox = async (client, canonical) => {
89
95
  " sudo -n chown -R sprite:sprite /home/sprite/.devbox || true",
90
96
  "fi",
91
97
  ].join("\n");
92
- const permsResult = await execWithLog(client, canonical, permissionsScript, "bootstrap-permissions");
98
+ let permsResult = await execWithLog(client, canonical, permissionsScript, "bootstrap-permissions", { timeoutMs: BOOTSTRAP_EXEC_TIMEOUT_MS }).catch(async (error) => {
99
+ if (!isExecTimeoutError(error))
100
+ throw error;
101
+ // New sprites can take a bit to warm up; retry once before failing.
102
+ logger.warn("sprites_exec_retry_after_timeout", {
103
+ stage: "bootstrap-permissions",
104
+ timeoutMs: BOOTSTRAP_EXEC_TIMEOUT_MS,
105
+ delayMs: BOOTSTRAP_EXEC_RETRY_DELAY_MS,
106
+ });
107
+ await delay(BOOTSTRAP_EXEC_RETRY_DELAY_MS);
108
+ return await execWithLog(client, canonical, permissionsScript, "bootstrap-permissions", { timeoutMs: BOOTSTRAP_EXEC_TIMEOUT_MS });
109
+ });
93
110
  if (permsResult.exitCode !== 0) {
94
111
  const details = permsResult.stderr || permsResult.stdout || "";
95
112
  throw new Error(details
@@ -105,7 +122,7 @@ const bootstrapDevbox = async (client, canonical) => {
105
122
  "EOF",
106
123
  "fi",
107
124
  ].join("\n");
108
- const ipv4Result = await execWithLog(client, canonical, ipv4PreferenceScript, "bootstrap-ipv4-preference");
125
+ const ipv4Result = await execWithLog(client, canonical, ipv4PreferenceScript, "bootstrap-ipv4-preference", { timeoutMs: BOOTSTRAP_EXEC_TIMEOUT_MS });
109
126
  if (ipv4Result.exitCode !== 0) {
110
127
  const details = ipv4Result.stderr || ipv4Result.stdout || "";
111
128
  throw new Error(details
@@ -695,7 +712,7 @@ const installSpriteDaemon = async ({ client, spriteName, release, convexUrl, hea
695
712
  `--config-path ${DAEMON_CONFIG_FILE}`,
696
713
  ].join(" "),
697
714
  ].join("\n"),
698
- ]);
715
+ ], { timeoutMs: 120_000 });
699
716
  if (result.exitCode !== 0) {
700
717
  throw new Error(result.stderr || result.stdout || "Daemon install failed.");
701
718
  }