@boxes-dev/dvb 1.0.62 → 1.0.64

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/dvb.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4e18cf4e-c377-5d7b-a7bf-2022f0e42fc7")}catch(e){}}();
3
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="4c2dc0a8-a9b7-51c8-91d9-d939ecc88f96")}catch(e){}}();
4
4
 
5
5
  var __create = Object.create;
6
6
  var __defProp = Object.defineProperty;
@@ -88683,8 +88683,8 @@ var init_otel = __esm({
88683
88683
  return trimmed && trimmed.length > 0 ? trimmed : void 0;
88684
88684
  };
88685
88685
  readBuildMetadata = () => {
88686
- const rawPackageVersion = "1.0.62";
88687
- const rawGitSha = "8a25791a1d926f86c02d06dba8c09aa9d3c4574b";
88686
+ const rawPackageVersion = "1.0.64";
88687
+ const rawGitSha = "d2bdc33fe650217d15bebd2b8ae26e11d2d0cd33";
88688
88688
  const packageVersion = typeof rawPackageVersion === "string" ? rawPackageVersion : void 0;
88689
88689
  const gitSha = typeof rawGitSha === "string" ? rawGitSha : void 0;
88690
88690
  return { packageVersion, gitSha };
@@ -120672,9 +120672,9 @@ var init_sentry = __esm({
120672
120672
  sentryEnabled = false;
120673
120673
  uncaughtExceptionMonitorInstalled = false;
120674
120674
  readBuildMetadata2 = () => {
120675
- const rawPackageVersion = "1.0.62";
120676
- const rawGitSha = "8a25791a1d926f86c02d06dba8c09aa9d3c4574b";
120677
- const rawSentryRelease = "boxes-dev-dvb@1.0.62+8a25791a1d926f86c02d06dba8c09aa9d3c4574b";
120675
+ const rawPackageVersion = "1.0.64";
120676
+ const rawGitSha = "d2bdc33fe650217d15bebd2b8ae26e11d2d0cd33";
120677
+ const rawSentryRelease = "boxes-dev-dvb@1.0.64+d2bdc33fe650217d15bebd2b8ae26e11d2d0cd33";
120678
120678
  const packageVersion = typeof rawPackageVersion === "string" ? rawPackageVersion : void 0;
120679
120679
  const gitSha = typeof rawGitSha === "string" ? rawGitSha : void 0;
120680
120680
  const sentryRelease = typeof rawSentryRelease === "string" ? rawSentryRelease : void 0;
@@ -130499,7 +130499,7 @@ var init_simple_client_node = __esm({
130499
130499
  var http6 = __require("http");
130500
130500
  var net5 = __require("net");
130501
130501
  var tls2 = __require("tls");
130502
- var { randomBytes, createHash: createHash4 } = __require("crypto");
130502
+ var { randomBytes, createHash: createHash5 } = __require("crypto");
130503
130503
  var { Duplex, Readable: Readable2 } = __require("stream");
130504
130504
  var { URL: URL2 } = __require("url");
130505
130505
  var PerMessageDeflate = require_permessage_deflate();
@@ -131156,7 +131156,7 @@ var init_simple_client_node = __esm({
131156
131156
  abortHandshake(websocket, socket, "Invalid Upgrade header");
131157
131157
  return;
131158
131158
  }
131159
- const digest = createHash4("sha1").update(key + GUID).digest("base64");
131159
+ const digest = createHash5("sha1").update(key + GUID).digest("base64");
131160
131160
  if (res.headers["sec-websocket-accept"] !== digest) {
131161
131161
  abortHandshake(websocket, socket, "Invalid Sec-WebSocket-Accept header");
131162
131162
  return;
@@ -131421,7 +131421,7 @@ var init_simple_client_node = __esm({
131421
131421
  var EventEmitter = __require("events");
131422
131422
  var http6 = __require("http");
131423
131423
  var { Duplex } = __require("stream");
131424
- var { createHash: createHash4 } = __require("crypto");
131424
+ var { createHash: createHash5 } = __require("crypto");
131425
131425
  var extension = require_extension();
131426
131426
  var PerMessageDeflate = require_permessage_deflate();
131427
131427
  var subprotocol = require_subprotocol();
@@ -131716,7 +131716,7 @@ var init_simple_client_node = __esm({
131716
131716
  );
131717
131717
  }
131718
131718
  if (this._state > RUNNING) return abortHandshake(socket, 503);
131719
- const digest = createHash4("sha1").update(key + GUID).digest("base64");
131719
+ const digest = createHash5("sha1").update(key + GUID).digest("base64");
131720
131720
  const headers = [
131721
131721
  "HTTP/1.1 101 Switching Protocols",
131722
131722
  "Upgrade: websocket",
@@ -198554,16 +198554,18 @@ var init_modalRuntime = __esm({
198554
198554
  });
198555
198555
 
198556
198556
  // src/devbox/commands/provider/modalLifecycle.ts
198557
- var DEFAULT_APP_NAME, DEFAULT_MODAL_DEVBOX_IMAGE, DEFAULT_TIMEOUT_MS, SANDBOX_LIST_PAGE_LIMIT, MODAL_DAEMON_WRAPPER_PATH, MODAL_DAEMON_SUPERVISOR_ENTRYPOINT, FINISHED_STATUS_LABELS, trimEnv2, decodeJwtExpMs, createSafeModalAuthTokenManager, installSafeModalAuthTokenManager, parsePositiveInt, resolveRegions, resolveAppName, resolveModalSandboxTimeoutMs, isNotFoundError, isModalAlreadyExistsError, trimToNull, resolveControlPlaneToken, hasContextModalCredentialPair, shouldUseControlPlaneFallback, withModalClient, resolveModalApp, listSandboxesRaw, formatSandboxStatus, isRunningSandbox, resolveImageFromTag, provisionModalSandbox, findModalSandbox, terminateModalSandboxesByAlias;
198557
+ var import_node_crypto9, DEFAULT_APP_NAME, DEFAULT_MODAL_DEVBOX_IMAGE, DEFAULT_TIMEOUT_MS, IMAGE_TAG_RESOLUTION_CACHE_TTL_MS, SANDBOX_LIST_PAGE_LIMIT, MODAL_DAEMON_WRAPPER_PATH, MODAL_DAEMON_SUPERVISOR_ENTRYPOINT, FINISHED_STATUS_LABELS, REGISTRY_MANIFEST_ACCEPT_HEADER, resolvedImageTagCache, trimEnv2, parseRegistryImageTag, parseWwwAuthenticateBearer, fetchRegistryToken, resolveLatestImageTagToDigest, resolveImageTagForBuild, decodeJwtExpMs, createSafeModalAuthTokenManager, installSafeModalAuthTokenManager, parsePositiveInt, resolveRegions, resolveAppName, resolveModalSandboxTimeoutMs, isNotFoundError, isModalAlreadyExistsError, trimToNull, resolveControlPlaneToken, hasContextModalCredentialPair, shouldUseControlPlaneFallback, withModalClient, resolveModalApp, listSandboxesRaw, formatSandboxStatus, isRunningSandbox, resolveImageFromTag, provisionModalSandbox, findModalSandbox, terminateModalSandboxesByAlias;
198558
198558
  var init_modalLifecycle = __esm({
198559
198559
  "src/devbox/commands/provider/modalLifecycle.ts"() {
198560
198560
  "use strict";
198561
198561
  init_src();
198562
+ import_node_crypto9 = require("node:crypto");
198562
198563
  init_dist5();
198563
198564
  init_controlPlane();
198564
198565
  DEFAULT_APP_NAME = "sandbox-modal-smoke";
198565
198566
  DEFAULT_MODAL_DEVBOX_IMAGE = "public.ecr.aws/d8m4p4w9/modal-devbox:latest";
198566
198567
  DEFAULT_TIMEOUT_MS = 24 * 60 * 60 * 1e3;
198568
+ IMAGE_TAG_RESOLUTION_CACHE_TTL_MS = 5 * 60 * 1e3;
198567
198569
  SANDBOX_LIST_PAGE_LIMIT = 100;
198568
198570
  MODAL_DAEMON_WRAPPER_PATH = "/home/sprite/.devbox/daemon/run-daemon.sh";
198569
198571
  MODAL_DAEMON_SUPERVISOR_ENTRYPOINT = [
@@ -198590,7 +198592,178 @@ var init_modalLifecycle = __esm({
198590
198592
  6: "internal_failure",
198591
198593
  7: "idle_timeout"
198592
198594
  };
198595
+ REGISTRY_MANIFEST_ACCEPT_HEADER = [
198596
+ "application/vnd.oci.image.index.v1+json",
198597
+ "application/vnd.oci.image.manifest.v1+json",
198598
+ "application/vnd.docker.distribution.manifest.list.v2+json",
198599
+ "application/vnd.docker.distribution.manifest.v2+json"
198600
+ ].join(", ");
198601
+ resolvedImageTagCache = /* @__PURE__ */ new Map();
198593
198602
  trimEnv2 = (value) => value?.trim() ?? "";
198603
+ parseRegistryImageTag = (imageTag) => {
198604
+ const trimmed = imageTag.trim();
198605
+ if (!trimmed || trimmed.includes("@")) {
198606
+ return null;
198607
+ }
198608
+ const lastSlashIndex = trimmed.lastIndexOf("/");
198609
+ const lastColonIndex = trimmed.lastIndexOf(":");
198610
+ if (lastColonIndex <= lastSlashIndex) {
198611
+ return null;
198612
+ }
198613
+ const repositoryWithHost = trimmed.slice(0, lastColonIndex);
198614
+ const tag = trimmed.slice(lastColonIndex + 1).trim();
198615
+ if (!repositoryWithHost || !tag) {
198616
+ return null;
198617
+ }
198618
+ const firstSlashIndex = repositoryWithHost.indexOf("/");
198619
+ if (firstSlashIndex <= 0) {
198620
+ return null;
198621
+ }
198622
+ const registryHost = repositoryWithHost.slice(0, firstSlashIndex);
198623
+ const repository = repositoryWithHost.slice(firstSlashIndex + 1);
198624
+ if (!repository) {
198625
+ return null;
198626
+ }
198627
+ const hasExplicitRegistryHost = registryHost.includes(".") || registryHost.includes(":") || registryHost === "localhost";
198628
+ if (!hasExplicitRegistryHost) {
198629
+ return null;
198630
+ }
198631
+ return {
198632
+ registryHost,
198633
+ repository,
198634
+ tag,
198635
+ repositoryWithHost
198636
+ };
198637
+ };
198638
+ parseWwwAuthenticateBearer = (headerValue) => {
198639
+ const trimmed = headerValue.trim();
198640
+ if (!trimmed.toLowerCase().startsWith("bearer ")) {
198641
+ return null;
198642
+ }
198643
+ const attributes = /* @__PURE__ */ new Map();
198644
+ for (const match2 of trimmed.slice("bearer ".length).matchAll(/([A-Za-z0-9_-]+)="([^"]*)"/g)) {
198645
+ const [, key, value] = match2;
198646
+ if (!key) {
198647
+ continue;
198648
+ }
198649
+ attributes.set(key.toLowerCase(), value ?? "");
198650
+ }
198651
+ const realm = attributes.get("realm");
198652
+ const service = attributes.get("service");
198653
+ const scope = attributes.get("scope");
198654
+ if (!realm || !service) {
198655
+ return null;
198656
+ }
198657
+ return {
198658
+ realm,
198659
+ service,
198660
+ scope: scope || null
198661
+ };
198662
+ };
198663
+ fetchRegistryToken = async ({
198664
+ realm,
198665
+ service,
198666
+ scope
198667
+ }) => {
198668
+ const tokenUrl = new URL(realm);
198669
+ tokenUrl.searchParams.set("service", service);
198670
+ if (scope) {
198671
+ tokenUrl.searchParams.set("scope", scope);
198672
+ }
198673
+ const response = await fetch(tokenUrl.toString());
198674
+ if (!response.ok) {
198675
+ throw new Error(
198676
+ `Container registry auth token request failed (${response.status}).`
198677
+ );
198678
+ }
198679
+ const payload = await response.json();
198680
+ const token = typeof payload.token === "string" ? payload.token.trim() : typeof payload.access_token === "string" ? payload.access_token.trim() : "";
198681
+ if (!token) {
198682
+ throw new Error("Container registry auth token response was empty.");
198683
+ }
198684
+ return token;
198685
+ };
198686
+ resolveLatestImageTagToDigest = async (parsed) => {
198687
+ const manifestUrl = `https://${parsed.registryHost}/v2/${parsed.repository}/manifests/${encodeURIComponent(parsed.tag)}`;
198688
+ const fetchManifest = async ({
198689
+ method,
198690
+ token: token2
198691
+ }) => {
198692
+ const headers = {
198693
+ Accept: REGISTRY_MANIFEST_ACCEPT_HEADER
198694
+ };
198695
+ if (token2) {
198696
+ headers.Authorization = `Bearer ${token2}`;
198697
+ }
198698
+ return await fetch(manifestUrl, {
198699
+ headers,
198700
+ method
198701
+ });
198702
+ };
198703
+ let token = null;
198704
+ let headResponse = await fetchManifest({ method: "HEAD" });
198705
+ if (headResponse.status === 401) {
198706
+ const authHeader = headResponse.headers.get("www-authenticate") ?? "";
198707
+ const challenge = parseWwwAuthenticateBearer(authHeader);
198708
+ if (!challenge) {
198709
+ throw new Error(
198710
+ `Container registry auth challenge missing or invalid for ${parsed.repositoryWithHost}:${parsed.tag}.`
198711
+ );
198712
+ }
198713
+ token = await fetchRegistryToken(challenge);
198714
+ headResponse = await fetchManifest({
198715
+ method: "HEAD",
198716
+ token
198717
+ });
198718
+ }
198719
+ if (!headResponse.ok) {
198720
+ throw new Error(
198721
+ `Container registry manifest lookup failed for ${parsed.repositoryWithHost}:${parsed.tag} (${headResponse.status}).`
198722
+ );
198723
+ }
198724
+ const headDigest = headResponse.headers.get("docker-content-digest")?.trim();
198725
+ if (headDigest) {
198726
+ return `${parsed.repositoryWithHost}@${headDigest}`;
198727
+ }
198728
+ const getResponse = await fetchManifest(
198729
+ token ? {
198730
+ method: "GET",
198731
+ token
198732
+ } : {
198733
+ method: "GET"
198734
+ }
198735
+ );
198736
+ if (!getResponse.ok) {
198737
+ throw new Error(
198738
+ `Container registry manifest body lookup failed for ${parsed.repositoryWithHost}:${parsed.tag} (${getResponse.status}).`
198739
+ );
198740
+ }
198741
+ const headerDigest = getResponse.headers.get("docker-content-digest")?.trim();
198742
+ if (headerDigest) {
198743
+ return `${parsed.repositoryWithHost}@${headerDigest}`;
198744
+ }
198745
+ const manifestBytes = Buffer.from(await getResponse.arrayBuffer());
198746
+ const bodyDigest = `sha256:${(0, import_node_crypto9.createHash)("sha256").update(manifestBytes).digest("hex")}`;
198747
+ return `${parsed.repositoryWithHost}@${bodyDigest}`;
198748
+ };
198749
+ resolveImageTagForBuild = async (imageTag) => {
198750
+ const parsed = parseRegistryImageTag(imageTag);
198751
+ if (!parsed || parsed.tag !== "latest") {
198752
+ return imageTag;
198753
+ }
198754
+ const cacheKey = `${parsed.repositoryWithHost}:${parsed.tag}`;
198755
+ const now = Date.now();
198756
+ const cached = resolvedImageTagCache.get(cacheKey);
198757
+ if (cached && cached.expiresAt > now) {
198758
+ return cached.value;
198759
+ }
198760
+ const resolved = await resolveLatestImageTagToDigest(parsed);
198761
+ resolvedImageTagCache.set(cacheKey, {
198762
+ value: resolved,
198763
+ expiresAt: now + IMAGE_TAG_RESOLUTION_CACHE_TTL_MS
198764
+ });
198765
+ return resolved;
198766
+ };
198594
198767
  decodeJwtExpMs = (token) => {
198595
198768
  const segments = token.split(".");
198596
198769
  if (segments.length < 2) return null;
@@ -198781,6 +198954,7 @@ var init_modalLifecycle = __esm({
198781
198954
  const appName = resolveAppName();
198782
198955
  const envImageTag = trimEnv2(process.env.MODAL_SANDBOX_IMAGE);
198783
198956
  const imageTag = envImageTag || DEFAULT_MODAL_DEVBOX_IMAGE;
198957
+ const resolvedImageTag = await resolveImageTagForBuild(imageTag);
198784
198958
  const timeoutMs = resolveModalSandboxTimeoutMs();
198785
198959
  const timeoutSecs = Math.max(1, Math.floor(timeoutMs / 1e3));
198786
198960
  const regions = resolveRegions();
@@ -198793,7 +198967,7 @@ var init_modalLifecycle = __esm({
198793
198967
  const image = await resolveImageFromTag(modal, tag);
198794
198968
  return await image.build({ appId: app.appId });
198795
198969
  };
198796
- const builtImage = await buildImage(imageTag);
198970
+ const builtImage = await buildImage(resolvedImageTag);
198797
198971
  const createResponse = await modal.cpClient.sandboxCreate({
198798
198972
  appId: app.appId,
198799
198973
  definition: {
@@ -198809,7 +198983,7 @@ var init_modalLifecycle = __esm({
198809
198983
  sandboxId: createResponse.sandboxId,
198810
198984
  appId: app.appId,
198811
198985
  appName,
198812
- imageTag,
198986
+ imageTag: resolvedImageTag,
198813
198987
  timeoutMs,
198814
198988
  memorySnapshotEnabled: false,
198815
198989
  regions
@@ -199597,12 +199771,12 @@ var init_sessionUtils = __esm({
199597
199771
  });
199598
199772
 
199599
199773
  // src/devbox/commands/connect.ts
199600
- var import_node_child_process4, import_node_crypto9, import_node_os9, import_node_path16, import_node_readline3, import_promises13, resolveInitialSessionId, shouldAttachToExistingSession, resolveSessionSpecifierFromExplicitTarget, isAttachReplacedCloseCode, shouldCancelConnectOnSigint, DEFAULT_TTY_COLS, DEFAULT_TTY_ROWS, TERMINAL_INPUT_MODE_RESET, resetTerminalInputModes, openBrowser2, warnSetupStatus, resolveTtyEnv, formatEnvExports, parseEnvSize, readStreamSize, resolveTtySize, resolveSessionEnv, parseReachabilityState, runCommand, checkReachability, watchReachabilityWithScutil, watchReachabilityWithNotifyutil, waitForNetworkOnline, parseConnectArgs, parseConnectTarget, isSessionNotFoundError, SESSION_NAME_TOKEN_KEY, encodeSessionNameToken, decodeSessionNameToken, extractSessionNameFromCommand, SESSION_LOG_FLUSH_BYTES, SESSION_LOG_EOF_MARKER, createRemoteSessionLogSink, CONNECT_SHELL_CANDIDATES, resolveConnectShell, confirmNewSession, promptRenameSession, HEARTBEAT_INTERVAL_MS, HEARTBEAT_TIMEOUT_MS, INPUT_PROBE_TIMEOUT_MS, STREAM_STALL_PROBE_MISS_THRESHOLD, CONNECT_OPEN_TIMEOUT_MS, WS_OPEN_STATE, streamExecSession, runConnect;
199774
+ var import_node_child_process4, import_node_crypto10, import_node_os9, import_node_path16, import_node_readline3, import_promises13, resolveInitialSessionId, shouldAttachToExistingSession, resolveSessionSpecifierFromExplicitTarget, isAttachReplacedCloseCode, shouldCancelConnectOnSigint, DEFAULT_TTY_COLS, DEFAULT_TTY_ROWS, TERMINAL_INPUT_MODE_RESET, resetTerminalInputModes, openBrowser2, warnSetupStatus, resolveTtyEnv, formatEnvExports, parseEnvSize, readStreamSize, resolveTtySize, resolveSessionEnv, parseReachabilityState, runCommand, checkReachability, watchReachabilityWithScutil, watchReachabilityWithNotifyutil, waitForNetworkOnline, parseConnectArgs, parseConnectTarget, isSessionNotFoundError, SESSION_NAME_TOKEN_KEY, encodeSessionNameToken, decodeSessionNameToken, extractSessionNameFromCommand, SESSION_LOG_FLUSH_BYTES, SESSION_LOG_EOF_MARKER, createRemoteSessionLogSink, CONNECT_SHELL_CANDIDATES, resolveConnectShell, confirmNewSession, promptRenameSession, HEARTBEAT_INTERVAL_MS, HEARTBEAT_TIMEOUT_MS, INPUT_PROBE_TIMEOUT_MS, STREAM_STALL_PROBE_MISS_THRESHOLD, CONNECT_OPEN_TIMEOUT_MS, WS_OPEN_STATE, streamExecSession, runConnect;
199601
199775
  var init_connect2 = __esm({
199602
199776
  "src/devbox/commands/connect.ts"() {
199603
199777
  "use strict";
199604
199778
  import_node_child_process4 = require("node:child_process");
199605
- import_node_crypto9 = require("node:crypto");
199779
+ import_node_crypto10 = require("node:crypto");
199606
199780
  import_node_os9 = __toESM(require("node:os"), 1);
199607
199781
  import_node_path16 = require("node:path");
199608
199782
  import_node_readline3 = require("node:readline");
@@ -201025,7 +201199,7 @@ var init_connect2 = __esm({
201025
201199
  const weztermPane = process.env.WEZTERM_PANE?.trim() || "";
201026
201200
  const weztermSocket = process.env.WEZTERM_UNIX_SOCKET?.trim() || "";
201027
201201
  const weztermSessionId = weztermPane ? `wezterm:${weztermPane}${weztermSocket ? `:${(0, import_node_path16.basename)(weztermSocket)}` : ""}` : "";
201028
- const terminalSessionId = process.env.DEVBOX_TERM_SESSION_ID?.trim() || weztermSessionId || process.env.TERM_SESSION_ID?.trim() || process.env.ITERM_SESSION_ID?.trim() || `dvb-${(0, import_node_crypto9.randomUUID)()}`;
201202
+ const terminalSessionId = process.env.DEVBOX_TERM_SESSION_ID?.trim() || weztermSessionId || process.env.TERM_SESSION_ID?.trim() || process.env.ITERM_SESSION_ID?.trim() || `dvb-${(0, import_node_crypto10.randomUUID)()}`;
201029
201203
  const logPath = shouldLog2 && sessionName ? buildSessionLogPath(sessionName) : null;
201030
201204
  const modalSessionLogPath = computeProvider === "modal" ? logPath : null;
201031
201205
  const sessionLogSink = logPath && computeProvider !== "modal" ? createRemoteSessionLogSink(client2, spriteAlias, logPath) : null;
@@ -202744,11 +202918,11 @@ var init_session3 = __esm({
202744
202918
  });
202745
202919
 
202746
202920
  // src/devbox/commands/init/repo.ts
202747
- var import_node_crypto10, import_node_child_process5, import_node_path20, buildSpawnEnv, runCommand2, runCommandRaw, findRepoRoot, readRepoOrigin, readLocalGitConfigValue, writeLocalGitConfigValue, ensureRepoProjectId, resolveGitCommonDir, readHeadState, readNullSeparatedPaths, readWorktreeState, confirmCopyWorktree, readGlobalGitConfigFiles, mapGlobalGitConfigDestinations;
202921
+ var import_node_crypto11, import_node_child_process5, import_node_path20, buildSpawnEnv, runCommand2, runCommandRaw, findRepoRoot, readRepoOrigin, readLocalGitConfigValue, writeLocalGitConfigValue, ensureRepoProjectId, resolveGitCommonDir, readHeadState, readNullSeparatedPaths, readWorktreeState, confirmCopyWorktree, readGlobalGitConfigFiles, mapGlobalGitConfigDestinations;
202748
202922
  var init_repo2 = __esm({
202749
202923
  "src/devbox/commands/init/repo.ts"() {
202750
202924
  "use strict";
202751
- import_node_crypto10 = require("node:crypto");
202925
+ import_node_crypto11 = require("node:crypto");
202752
202926
  import_node_child_process5 = require("node:child_process");
202753
202927
  import_node_path20 = __toESM(require("node:path"), 1);
202754
202928
  init_dist3();
@@ -202835,7 +203009,7 @@ var init_repo2 = __esm({
202835
203009
  const key = "devbox.projectId";
202836
203010
  const existing = await readLocalGitConfigValue(repoRoot, key);
202837
203011
  if (existing) return existing;
202838
- const created = (0, import_node_crypto10.randomUUID)();
203012
+ const created = (0, import_node_crypto11.randomUUID)();
202839
203013
  await writeLocalGitConfigValue(repoRoot, key, created);
202840
203014
  return created;
202841
203015
  };
@@ -203009,11 +203183,11 @@ var init_config2 = __esm({
203009
203183
  });
203010
203184
 
203011
203185
  // src/devbox/commands/init/remote.ts
203012
- var import_node_crypto11, DAEMON_DIR, DAEMON_TARBALL, DAEMON_BUNDLE_DIR, DAEMON_ENTRY, DAEMON_WRAPPER, DAEMON_SERVICE_NAME, DAEMON_CONFIG_FILE, MODAL_DAEMON_HEALTH_PORT, DEFAULT_DAEMON_BASE_URL, DEFAULT_HEARTBEAT_MS, BOOTSTRAP_EXEC_TIMEOUT_MS, BOOTSTRAP_EXEC_HANDSHAKE_TIMEOUT_MS, BASHRC_PATH, ZSHRC_PATH, CODEX_CONFIG_DIR, CODEX_CONFIG_PATH, BASIC_ALIASES_MARKER, LEGACY_BASH_TRAP, SAFE_BASH_TRAP, BASH_HISTORY_BLOCK, ZSH_HISTORY_BLOCK, HISTORY_BLOCK_PATTERN, BASH_HISTORY_LINE_PATTERN, ZSH_HISTORY_LINE_PATTERN, logger8, truncateTail, shellQuote3, expandHome2, execWithLog, writeRemoteFile, readRemoteFile, ensureTrailingNewline, upsertHistoryBlock, patchBashrcContent, patchZshrcContent, bootstrapDevbox, buildWeztermMuxConfig, buildWeztermMuxRunner, patchRemoteRcFile, patchBashrc, patchZshrc, ensureRemoteCodexConfig, stageRemoteSetupArtifacts, resolveDaemonUrl, fetchDaemonBinary, buildDaemonConfig, buildDaemonWrapperScript, isSameArgs, ensureSpriteDaemonService, installWeztermMux, ensureWeztermMuxService, hasWeztermMuxBinary, isWeztermMuxHealthy, installSpriteDaemon;
203186
+ var import_node_crypto12, DAEMON_DIR, DAEMON_TARBALL, DAEMON_BUNDLE_DIR, DAEMON_ENTRY, DAEMON_WRAPPER, DAEMON_SERVICE_NAME, DAEMON_CONFIG_FILE, MODAL_DAEMON_HEALTH_PORT, DEFAULT_DAEMON_BASE_URL, DEFAULT_HEARTBEAT_MS, BOOTSTRAP_EXEC_TIMEOUT_MS, BOOTSTRAP_EXEC_HANDSHAKE_TIMEOUT_MS, BASHRC_PATH, ZSHRC_PATH, CODEX_CONFIG_DIR, CODEX_CONFIG_PATH, BASIC_ALIASES_MARKER, LEGACY_BASH_TRAP, SAFE_BASH_TRAP, BASH_HISTORY_BLOCK, ZSH_HISTORY_BLOCK, HISTORY_BLOCK_PATTERN, BASH_HISTORY_LINE_PATTERN, ZSH_HISTORY_LINE_PATTERN, logger8, truncateTail, shellQuote3, expandHome2, execWithLog, writeRemoteFile, readRemoteFile, ensureTrailingNewline, upsertHistoryBlock, patchBashrcContent, patchZshrcContent, bootstrapDevbox, buildWeztermMuxConfig, buildWeztermMuxRunner, patchRemoteRcFile, patchBashrc, patchZshrc, ensureRemoteCodexConfig, stageRemoteSetupArtifacts, resolveDaemonUrl, fetchDaemonBinary, buildDaemonConfig, buildDaemonWrapperScript, isSameArgs, ensureSpriteDaemonService, installWeztermMux, ensureWeztermMuxService, hasWeztermMuxBinary, isWeztermMuxHealthy, installSpriteDaemon;
203013
203187
  var init_remote = __esm({
203014
203188
  "src/devbox/commands/init/remote.ts"() {
203015
203189
  "use strict";
203016
- import_node_crypto11 = require("node:crypto");
203190
+ import_node_crypto12 = require("node:crypto");
203017
203191
  init_src();
203018
203192
  init_weztermMux();
203019
203193
  init_config2();
@@ -203070,7 +203244,7 @@ var init_remote = __esm({
203070
203244
  return value;
203071
203245
  };
203072
203246
  execWithLog = async (client2, spriteAlias, script, stage, options) => {
203073
- const requestId = (0, import_node_crypto11.randomUUID)();
203247
+ const requestId = (0, import_node_crypto12.randomUUID)();
203074
203248
  const startedAt2 = Date.now();
203075
203249
  logger8.info("sprites_request", {
203076
203250
  requestId,
@@ -203104,7 +203278,7 @@ var init_remote = __esm({
203104
203278
  return result;
203105
203279
  };
203106
203280
  writeRemoteFile = async (client2, spriteAlias, path37, content, stage) => {
203107
- const requestId = (0, import_node_crypto11.randomUUID)();
203281
+ const requestId = (0, import_node_crypto12.randomUUID)();
203108
203282
  logger8.info("sprites_request", {
203109
203283
  requestId,
203110
203284
  method: "writeFile",
@@ -203124,7 +203298,7 @@ var init_remote = __esm({
203124
203298
  });
203125
203299
  };
203126
203300
  readRemoteFile = async (client2, spriteAlias, path37, stage) => {
203127
- const requestId = (0, import_node_crypto11.randomUUID)();
203301
+ const requestId = (0, import_node_crypto12.randomUUID)();
203128
203302
  logger8.info("sprites_request", {
203129
203303
  requestId,
203130
203304
  method: "readFile",
@@ -206338,11 +206512,11 @@ ${usageText}`;
206338
206512
  });
206339
206513
 
206340
206514
  // src/devbox/commands/init/codex/artifacts.ts
206341
- var import_node_crypto12, import_node_fs10, import_promises23, import_node_path26, import_node_os13, macCopyfileDisabledEnv, SETUP_ARTIFACT_PART_SIZE_BYTES, SETUP_ARTIFACT_PARTS_DIRNAME, SETUP_ARTIFACT_PARTS_DESCRIPTOR_FILENAME, isWithinRepo, normalizeExternalPath, expandHomePath, buildArtifactEntry, buildEntries, copyArtifact, sha256File, readSetupArtifactsPartsDescriptor, createSetupArtifacts;
206515
+ var import_node_crypto13, import_node_fs10, import_promises23, import_node_path26, import_node_os13, macCopyfileDisabledEnv, SETUP_ARTIFACT_PART_SIZE_BYTES, SETUP_ARTIFACT_PARTS_DIRNAME, SETUP_ARTIFACT_PARTS_DESCRIPTOR_FILENAME, isWithinRepo, normalizeExternalPath, expandHomePath, buildArtifactEntry, buildEntries, copyArtifact, sha256File, readSetupArtifactsPartsDescriptor, createSetupArtifacts;
206342
206516
  var init_artifacts = __esm({
206343
206517
  "src/devbox/commands/init/codex/artifacts.ts"() {
206344
206518
  "use strict";
206345
- import_node_crypto12 = require("node:crypto");
206519
+ import_node_crypto13 = require("node:crypto");
206346
206520
  import_node_fs10 = require("node:fs");
206347
206521
  import_promises23 = __toESM(require("node:fs/promises"), 1);
206348
206522
  import_node_path26 = __toESM(require("node:path"), 1);
@@ -206452,7 +206626,7 @@ var init_artifacts = __esm({
206452
206626
  await import_promises23.default.cp(entry.sourcePath, destPath, { recursive: false });
206453
206627
  };
206454
206628
  sha256File = async (filePath) => await new Promise((resolve2, reject) => {
206455
- const hash = (0, import_node_crypto12.createHash)("sha256");
206629
+ const hash = (0, import_node_crypto13.createHash)("sha256");
206456
206630
  const stream = (0, import_node_fs10.createReadStream)(filePath);
206457
206631
  stream.on("data", (chunk) => hash.update(chunk));
206458
206632
  stream.on("error", reject);
@@ -206855,12 +207029,12 @@ var init_progress = __esm({
206855
207029
  });
206856
207030
 
206857
207031
  // src/devbox/commands/init/codex/index.ts
206858
- var import_node_path27, import_node_crypto13, import_promises24, import_node_os14, resolveLocalCodexRoot, readLocalCodexAuthCache, syncLocalCodexAuthCacheToSprite, uploadSetupPlan, runRemoteCodexSetup;
207032
+ var import_node_path27, import_node_crypto14, import_promises24, import_node_os14, resolveLocalCodexRoot, readLocalCodexAuthCache, syncLocalCodexAuthCacheToSprite, uploadSetupPlan, runRemoteCodexSetup;
206859
207033
  var init_codex = __esm({
206860
207034
  "src/devbox/commands/init/codex/index.ts"() {
206861
207035
  "use strict";
206862
207036
  import_node_path27 = __toESM(require("node:path"), 1);
206863
- import_node_crypto13 = require("node:crypto");
207037
+ import_node_crypto14 = require("node:crypto");
206864
207038
  import_promises24 = __toESM(require("node:fs/promises"), 1);
206865
207039
  import_node_os14 = require("node:os");
206866
207040
  init_dist3();
@@ -207101,7 +207275,7 @@ var init_codex = __esm({
207101
207275
  }
207102
207276
  if (splitArtifacts && remoteArtifactsBundlePath) {
207103
207277
  status.stage("Assembling artifacts on remote");
207104
- const assembledTmpPath = `${remoteArtifactsBundlePath}.tmp-assemble-${(0, import_node_crypto13.randomUUID)()}`;
207278
+ const assembledTmpPath = `${remoteArtifactsBundlePath}.tmp-assemble-${(0, import_node_crypto14.randomUUID)()}`;
207105
207279
  const assembleScript = [
207106
207280
  "set -euo pipefail",
207107
207281
  `bundle=${shellQuote3(remoteArtifactsBundlePath)}`,
@@ -207303,7 +207477,7 @@ codex login`
207303
207477
  entrypoints
207304
207478
  });
207305
207479
  const codexLastMessagePath = "/home/sprite/.devbox/codex-setup-output.txt";
207306
- const proxyRoot = proxyOptions ? `/home/sprite/.devbox/tmp/codex-proxy-${(0, import_node_crypto13.randomUUID)()}` : null;
207480
+ const proxyRoot = proxyOptions ? `/home/sprite/.devbox/tmp/codex-proxy-${(0, import_node_crypto14.randomUUID)()}` : null;
207307
207481
  const proxyTokenPath = proxyRoot ? `${proxyRoot}/devbox-token` : null;
207308
207482
  const proxyCodexHome = proxyRoot ? `${proxyRoot}/codex-home` : null;
207309
207483
  const proxyConfigPath = proxyCodexHome ? `${proxyCodexHome}/config.toml` : null;
@@ -208915,11 +209089,11 @@ var init_provisionFlow = __esm({
208915
209089
  });
208916
209090
 
208917
209091
  // src/devbox/commands/init/ssh.ts
208918
- var import_node_crypto14, import_node_child_process10, logger9, SSH_IDENTITY_FILE, SSH_ED25519_PUBLIC_KEY_PATTERN, stripGitSuffix2, buildSshUrl, buildSettingsUrl, parseScpLike, parseGitRemote, execRemote, extractEd25519PublicKey, readRemoteOrigin, setRemoteOrigin, ensureSshKey, ensureSshConfig, verifySshAuth, openBrowser4, runClipboardCommand, copyToClipboard;
209092
+ var import_node_crypto15, import_node_child_process10, logger9, SSH_IDENTITY_FILE, SSH_ED25519_PUBLIC_KEY_PATTERN, stripGitSuffix2, buildSshUrl, buildSettingsUrl, parseScpLike, parseGitRemote, execRemote, extractEd25519PublicKey, readRemoteOrigin, setRemoteOrigin, ensureSshKey, ensureSshConfig, verifySshAuth, openBrowser4, runClipboardCommand, copyToClipboard;
208919
209093
  var init_ssh = __esm({
208920
209094
  "src/devbox/commands/init/ssh.ts"() {
208921
209095
  "use strict";
208922
- import_node_crypto14 = require("node:crypto");
209096
+ import_node_crypto15 = require("node:crypto");
208923
209097
  import_node_child_process10 = require("node:child_process");
208924
209098
  init_src();
208925
209099
  init_remote();
@@ -209001,7 +209175,7 @@ var init_ssh = __esm({
209001
209175
  return null;
209002
209176
  };
209003
209177
  execRemote = async (client2, spriteAlias, script, stage) => {
209004
- const requestId = (0, import_node_crypto14.randomUUID)();
209178
+ const requestId = (0, import_node_crypto15.randomUUID)();
209005
209179
  logger9.info("sprites_request", {
209006
209180
  requestId,
209007
209181
  method: "exec",
@@ -215626,11 +215800,11 @@ var init_qr = __esm({
215626
215800
  });
215627
215801
 
215628
215802
  // src/devbox/commands/setup.ts
215629
- var import_node_crypto15, trim, normalizeOrgSlug, extractOrgFromSpriteToken, parseCodexAuthMode, parseSpriteAuthMode, resolveSpriteAuthMode, normalizeSiteUrl, resolveSiteUrl, MOBILE_DOWNLOAD_LINK, parseSetupArgs, splitQrLines, printMobileDownloadQr, printFirstSetupCompleteMessage, normalizeUrlForCompare, resolveHostForCompare, resolveCliName3, formatSpritesApiError, probeSpritesAccess, runSetup;
215803
+ var import_node_crypto16, trim, normalizeOrgSlug, extractOrgFromSpriteToken, parseCodexAuthMode, parseSpriteAuthMode, resolveSpriteAuthMode, normalizeSiteUrl, resolveSiteUrl, MOBILE_DOWNLOAD_LINK, parseSetupArgs, splitQrLines, printMobileDownloadQr, printFirstSetupCompleteMessage, normalizeUrlForCompare, resolveHostForCompare, resolveCliName3, formatSpritesApiError, probeSpritesAccess, runSetup;
215630
215804
  var init_setup = __esm({
215631
215805
  "src/devbox/commands/setup.ts"() {
215632
215806
  "use strict";
215633
- import_node_crypto15 = require("node:crypto");
215807
+ import_node_crypto16 = require("node:crypto");
215634
215808
  init_src();
215635
215809
  init_src();
215636
215810
  init_auth();
@@ -215853,7 +216027,7 @@ var init_setup = __esm({
215853
216027
  return lines.join("\n");
215854
216028
  };
215855
216029
  probeSpritesAccess = async (relayBaseUrl, token) => {
215856
- const requestId = (0, import_node_crypto15.randomUUID)();
216030
+ const requestId = (0, import_node_crypto16.randomUUID)();
215857
216031
  const url = new URL("/v1/sprites", relayBaseUrl);
215858
216032
  url.searchParams.set("max_results", "1");
215859
216033
  logger7.info("sprites_request", {
@@ -216458,11 +216632,11 @@ var init_whoami = __esm({
216458
216632
  });
216459
216633
 
216460
216634
  // src/devbox/commands/wezterm.ts
216461
- var import_node_crypto16, import_node_child_process12, import_promises32, import_node_os23, import_node_path37, import_promises33, logger10, WEZTERM_APP_PATH, WEZTERM_BIN_PATH, WEZTERM_BIN_DIR, WEZTERM_INSTALL_URL, WEZTERM_PATH_EXPORT, WEZTERM_HEALTH_POLL_INTERVAL_MS, WEZTERM_HEALTH_POLL_TIMEOUT_MS, WEZTERM_PROXY_BASE_ENV, WEZTERM_PROXY_LOG_NAME, WEZTERM_USAGE, parseWeztermArgs, resolveSpriteAlias2, initWeztermClient, waitForWeztermMuxHealthy, ensureWeztermMuxReady, runWeztermProxy, runCommand6, promptYesNo2, fileExists, hasWeztermOnPath, resolveShellProfilePath, ensureWeztermOnPath, ensureWeztermInstalled, expandPath, resolveDefaultConfigPath, escapeRegExp2, resolveCliName4, resolveDvbCommand, formatLuaArgs, resolveWeztermProxyEnv, buildProxyCommand, buildDomainBlock, canAppendToConfig, countReturns, applyReturnTableTransform, insertBlock, runWeztermSetup, startWeztermDomain, runWezterm;
216635
+ var import_node_crypto17, import_node_child_process12, import_promises32, import_node_os23, import_node_path37, import_promises33, logger10, WEZTERM_APP_PATH, WEZTERM_BIN_PATH, WEZTERM_BIN_DIR, WEZTERM_INSTALL_URL, WEZTERM_PATH_EXPORT, WEZTERM_HEALTH_POLL_INTERVAL_MS, WEZTERM_HEALTH_POLL_TIMEOUT_MS, WEZTERM_PROXY_BASE_ENV, WEZTERM_PROXY_LOG_NAME, WEZTERM_USAGE, parseWeztermArgs, resolveSpriteAlias2, initWeztermClient, waitForWeztermMuxHealthy, ensureWeztermMuxReady, runWeztermProxy, runCommand6, promptYesNo2, fileExists, hasWeztermOnPath, resolveShellProfilePath, ensureWeztermOnPath, ensureWeztermInstalled, expandPath, resolveDefaultConfigPath, escapeRegExp2, resolveCliName4, resolveDvbCommand, formatLuaArgs, resolveWeztermProxyEnv, buildProxyCommand, buildDomainBlock, canAppendToConfig, countReturns, applyReturnTableTransform, insertBlock, runWeztermSetup, startWeztermDomain, runWezterm;
216462
216636
  var init_wezterm = __esm({
216463
216637
  "src/devbox/commands/wezterm.ts"() {
216464
216638
  "use strict";
216465
- import_node_crypto16 = require("node:crypto");
216639
+ import_node_crypto17 = require("node:crypto");
216466
216640
  import_node_child_process12 = require("node:child_process");
216467
216641
  import_promises32 = __toESM(require("node:fs/promises"), 1);
216468
216642
  import_node_os23 = __toESM(require("node:os"), 1);
@@ -216673,7 +216847,7 @@ var init_wezterm = __esm({
216673
216847
  await writeProxyLog(
216674
216848
  `proxy_ready box=${spriteAlias} setup=${skipSetup ? "skip" : "full"}`
216675
216849
  );
216676
- const requestId = (0, import_node_crypto16.randomUUID)();
216850
+ const requestId = (0, import_node_crypto17.randomUUID)();
216677
216851
  const proxyPath = `/v1/sprites/${spriteAlias}/proxy`;
216678
216852
  logger10.info("sprites_request", {
216679
216853
  requestId,
@@ -217754,4 +217928,4 @@ smol-toml/dist/index.js:
217754
217928
  */
217755
217929
  //# sourceMappingURL=dvb.cjs.map
217756
217930
 
217757
- //# debugId=4e18cf4e-c377-5d7b-a7bf-2022f0e42fc7
217931
+ //# debugId=4c2dc0a8-a9b7-51c8-91d9-d939ecc88f96