@boxes-dev/dvb-runtime 1.0.195 → 1.0.197

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]="5b68969d-9b01-544a-9a71-757b2e0b1a99")}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]="e7954aab-79ea-5bb2-bed5-08b7ab0ad2a4")}catch(e){}}();
4
4
 
5
5
  var __create = Object.create;
6
6
  var __defProp = Object.defineProperty;
@@ -88688,8 +88688,8 @@ var init_otel = __esm({
88688
88688
  return trimmed && trimmed.length > 0 ? trimmed : void 0;
88689
88689
  };
88690
88690
  readBuildMetadata = () => {
88691
- const rawPackageVersion = "1.0.195";
88692
- const rawGitSha = "30bae354ec2eb6e4da82f5ac0b3b9ad00a8e60ad";
88691
+ const rawPackageVersion = "1.0.197";
88692
+ const rawGitSha = "10cf24383257802fc43f3ff2111203164f1122ee";
88693
88693
  const packageVersion = typeof rawPackageVersion === "string" ? rawPackageVersion : void 0;
88694
88694
  const gitSha = typeof rawGitSha === "string" ? rawGitSha : void 0;
88695
88695
  return { packageVersion, gitSha };
@@ -120881,9 +120881,9 @@ var init_sentry = __esm({
120881
120881
  sentryEnabled = false;
120882
120882
  uncaughtExceptionMonitorInstalled = false;
120883
120883
  readBuildMetadata2 = () => {
120884
- const rawPackageVersion = "1.0.195";
120885
- const rawGitSha = "30bae354ec2eb6e4da82f5ac0b3b9ad00a8e60ad";
120886
- const rawSentryRelease = "boxes-dev-dvb@1.0.195+30bae354ec2eb6e4da82f5ac0b3b9ad00a8e60ad";
120884
+ const rawPackageVersion = "1.0.197";
120885
+ const rawGitSha = "10cf24383257802fc43f3ff2111203164f1122ee";
120886
+ const rawSentryRelease = "boxes-dev-dvb@1.0.197+10cf24383257802fc43f3ff2111203164f1122ee";
120887
120887
  const packageVersion = typeof rawPackageVersion === "string" ? rawPackageVersion : void 0;
120888
120888
  const gitSha = typeof rawGitSha === "string" ? rawGitSha : void 0;
120889
120889
  const sentryRelease = typeof rawSentryRelease === "string" ? rawSentryRelease : void 0;
@@ -124880,7 +124880,7 @@ var init_packageVersion = __esm({
124880
124880
  return import_node_path8.default.join(process.cwd(), "dvb");
124881
124881
  };
124882
124882
  readEmbeddedPackageVersion = () => {
124883
- const raw = "1.0.195";
124883
+ const raw = "1.0.197";
124884
124884
  return trimVersion(raw);
124885
124885
  };
124886
124886
  readNearestPackageMetadata = (basePath) => {
@@ -142103,7 +142103,7 @@ var init_logger3 = __esm({
142103
142103
  });
142104
142104
 
142105
142105
  // src/devbox/controlPlane.ts
142106
- var import_node_http2, import_node_crypto6, import_node_child_process2, CURRENT_MODAL_BOOTSTRAP_CONTRACT_VERSION, normalizeStringRecord, resolveControlPlaneUrl2, resolveConvexUrl2, openBrowser, waitForAnyKeypress, escapeHtml, CALLBACK_LOGO_MARK, CALLBACK_FULL_LOGO, renderCallbackPage, requestJson2, startCallbackServer, getControlPlaneUrl, getConvexUrl, signInWithBrowser, spriteTokenGet, spriteTokenSet, spriteTokenClear, modalTokenSet, modalTokenClear, modalTokenResolvedGet, e2bTokenResolvedGet, e2bDevboxUpsert, e2bDevboxRemove, e2bDevboxGet, e2bDevboxStatusesList, e2bDevboxDestroy, e2bDevboxProvision, e2bDevboxPause, e2bDevboxEnsureActive, e2bDevboxIssueDaemonConnectInfo2, e2bDevboxExec, e2bDevboxReadFile, e2bDevboxWriteFile, e2bDevboxAssembleFileParts, e2bDevboxCreateCheckpoint, modalDevboxUpsert, modalDevboxRemove, modalDevboxEnsureActive2, modalDevboxIssueConnectToken2, modalDevboxEnsureDaemon, modalDevboxProvision, modalDevboxFind, modalDevboxTerminate, modalDevboxCreateCheckpoint, modalDevboxShellConnectionOpened, modalDevboxShellConnectionClosed, modalDevboxProxyConnectionOpened2, modalDevboxProxyConnectionClosed2, modalDevboxStatusesList, spriteDaemonReleaseGet, spriteDaemonTokenIssue, spriteDaemonSessionSummariesList, spriteDaemonSessionsList, instancesList2, helloViewerGet2, withConvexClient, resolveInstanceIdForAlias2, fetchSpriteTokenStatus, fetchResolvedModalCredentials, fetchResolvedE2bCredentials, fetchViewerIdentity, storeSpriteToken, clearSpriteToken, storeModalCredentials, clearModalCredentials, normalizeE2bDevboxRecord, fetchE2bDevboxLifecycle, listE2bDevboxStatuses, destroyE2bDevbox, provisionE2bDevbox, fetchE2bDaemonConnectInfo2, execE2bDevbox, readFileFromE2bDevbox, writeFileToE2bDevbox, assembleFilePartsForE2bDevbox, createE2bCheckpoint, upsertModalDevboxLifecycle, removeModalDevboxLifecycle, ensureModalDevboxActive, ensureModalDaemonInstalled, fetchModalDaemonConnectToken2, findModalSandboxViaControlPlane, provisionModalSandboxViaControlPlane, terminateModalSandboxesByAliasViaControlPlane, createModalCheckpointViaControlPlane, listModalDevboxStatuses, fetchSpriteDaemonRelease, issueSpriteDaemonToken, listSpriteDaemonSessionSummaries, listSpriteDaemonSessions, signOutControlPlane, refreshControlPlaneSession;
142106
+ var import_node_http2, import_node_crypto6, import_node_child_process2, CURRENT_MODAL_BOOTSTRAP_CONTRACT_VERSION, normalizeStringRecord, resolveControlPlaneUrl2, resolveConvexUrl2, openBrowser, waitForAnyKeypress, escapeHtml, CALLBACK_LOGO_MARK, CALLBACK_FULL_LOGO, renderCallbackPage, requestJson2, startCallbackServer, getControlPlaneUrl, getConvexUrl, signInWithBrowser, spriteTokenGet, spriteTokenSet, spriteTokenClear, modalTokenSet, modalTokenClear, modalTokenResolvedGet, e2bTokenResolvedGet, e2bDevboxUpsert, e2bDevboxRemove, e2bDevboxGet, e2bDevboxStatusesList, e2bDevboxDestroy, e2bDevboxProvision, e2bDevboxPause, e2bDevboxEnsureActive, e2bDevboxIssueDaemonConnectInfo2, e2bDevboxExec, e2bDevboxReadFile, e2bDevboxWriteFile, e2bDevboxAssembleFileParts, e2bDevboxCreateCheckpoint, modalDevboxUpsert, modalDevboxRemove, modalDevboxEnsureActive2, modalDevboxReboot, modalDevboxIssueConnectToken2, modalDevboxEnsureDaemon, modalDevboxProvision, modalDevboxFind, modalDevboxTerminate, modalDevboxCreateCheckpoint, modalDevboxShellConnectionOpened, modalDevboxShellConnectionClosed, modalDevboxProxyConnectionOpened2, modalDevboxProxyConnectionClosed2, modalDevboxStatusesList, spriteDaemonReleaseGet, spriteDaemonTokenIssue, spriteDaemonSessionSummariesList, spriteDaemonSessionsList, instancesList2, helloViewerGet2, withConvexClient, resolveInstanceIdForAlias2, fetchSpriteTokenStatus, fetchResolvedModalCredentials, fetchResolvedE2bCredentials, fetchViewerIdentity, storeSpriteToken, clearSpriteToken, storeModalCredentials, clearModalCredentials, normalizeE2bDevboxRecord, fetchE2bDevboxLifecycle, listE2bDevboxStatuses, destroyE2bDevbox, provisionE2bDevbox, fetchE2bDaemonConnectInfo2, execE2bDevbox, readFileFromE2bDevbox, writeFileToE2bDevbox, assembleFilePartsForE2bDevbox, createE2bCheckpoint, upsertModalDevboxLifecycle, removeModalDevboxLifecycle, ensureModalDevboxActive, rebootModalDevbox, ensureModalDaemonInstalled, fetchModalDaemonConnectToken2, findModalSandboxViaControlPlane, provisionModalSandboxViaControlPlane, terminateModalSandboxesByAliasViaControlPlane, createModalCheckpointViaControlPlane, listModalDevboxStatuses, listViewerInstances2, fetchSpriteDaemonRelease, issueSpriteDaemonToken, listSpriteDaemonSessionSummaries, listSpriteDaemonSessions, signOutControlPlane, refreshControlPlaneSession;
142107
142107
  var init_controlPlane = __esm({
142108
142108
  "src/devbox/controlPlane.ts"() {
142109
142109
  "use strict";
@@ -142614,6 +142614,7 @@ var init_controlPlane = __esm({
142614
142614
  modalDevboxUpsert = makeFunctionReference("modalDevboxes:upsertForViewer");
142615
142615
  modalDevboxRemove = makeFunctionReference("modalDevboxes:removeForViewer");
142616
142616
  modalDevboxEnsureActive2 = makeFunctionReference("modalDevboxes:ensureActiveForViewer");
142617
+ modalDevboxReboot = makeFunctionReference("modalDevboxes:rebootForViewer");
142617
142618
  modalDevboxIssueConnectToken2 = makeFunctionReference("modalDevboxes:issueConnectTokenForViewer");
142618
142619
  modalDevboxEnsureDaemon = makeFunctionReference("modalDevboxes:ensureDaemonForViewer");
142619
142620
  modalDevboxProvision = makeFunctionReference("modalDevboxes:provisionSandboxForViewer");
@@ -142938,6 +142939,50 @@ var init_controlPlane = __esm({
142938
142939
  };
142939
142940
  });
142940
142941
  };
142942
+ rebootModalDevbox = async (token, alias) => {
142943
+ return await withConvexClient(token, async (client2) => {
142944
+ const response = await client2.action(modalDevboxReboot, { alias });
142945
+ const resolvedAlias = typeof response?.alias === "string" ? response.alias.trim() : "";
142946
+ const canonical = typeof response?.canonical === "string" ? response.canonical.trim() : "";
142947
+ const appName = typeof response?.appName === "string" ? response.appName.trim() : "";
142948
+ const appId = typeof response?.appId === "string" ? response.appId.trim() : "";
142949
+ const sandboxId = typeof response?.sandboxId === "string" ? response.sandboxId.trim() : "";
142950
+ const wakeSource = response?.wakeSource === "already_running" || response?.wakeSource === "memory_snapshot" || response?.wakeSource === "filesystem_snapshot" ? response.wakeSource : null;
142951
+ if (!resolvedAlias || !canonical || !appName || !appId || !sandboxId) {
142952
+ throw new Error("Modal reboot response is missing required fields.");
142953
+ }
142954
+ if (response?.status !== "running") {
142955
+ throw new Error("Modal reboot response has invalid status.");
142956
+ }
142957
+ if (!wakeSource) {
142958
+ throw new Error("Modal reboot response has invalid wake source.");
142959
+ }
142960
+ if (response?.sleepStatus !== "slept") {
142961
+ throw new Error(
142962
+ "Modal reboot response did not confirm a fresh snapshot."
142963
+ );
142964
+ }
142965
+ const bootstrapContractVersion = typeof response?.bootstrapContractVersion === "string" ? response.bootstrapContractVersion.trim() || null : null;
142966
+ if (bootstrapContractVersion !== null && bootstrapContractVersion !== CURRENT_MODAL_BOOTSTRAP_CONTRACT_VERSION) {
142967
+ throw new Error(
142968
+ `Modal reboot returned bootstrap contract ${bootstrapContractVersion}, but CLI hot paths require current contract ${CURRENT_MODAL_BOOTSTRAP_CONTRACT_VERSION}.`
142969
+ );
142970
+ }
142971
+ return {
142972
+ alias: resolvedAlias,
142973
+ canonical,
142974
+ appName,
142975
+ appId,
142976
+ sandboxId,
142977
+ status: "running",
142978
+ woke: response?.woke === true,
142979
+ wakeSource,
142980
+ platformVersion: typeof response?.platformVersion === "string" ? response.platformVersion.trim() || null : null,
142981
+ bootstrapContractVersion,
142982
+ sleepStatus: "slept"
142983
+ };
142984
+ });
142985
+ };
142941
142986
  ensureModalDaemonInstalled = async (token, alias) => {
142942
142987
  await withConvexClient(token, async (client2) => {
142943
142988
  const response = await client2.action(modalDevboxEnsureDaemon, {
@@ -143092,6 +143137,28 @@ var init_controlPlane = __esm({
143092
143137
  return result;
143093
143138
  });
143094
143139
  };
143140
+ listViewerInstances2 = async (token) => {
143141
+ return await withConvexClient(token, async (client2) => {
143142
+ const entries = await client2.query(instancesList2, {});
143143
+ const result = [];
143144
+ for (const entry of entries) {
143145
+ const provider = entry?.provider === "sprites" || entry?.provider === "modal" ? entry.provider : null;
143146
+ const instanceId = typeof entry?.instanceId === "string" ? entry.instanceId.trim() : "";
143147
+ const alias = typeof entry?.alias === "string" ? entry.alias.trim() : "";
143148
+ const providerInstanceId = typeof entry?.providerInstanceId === "string" ? entry.providerInstanceId.trim() : "";
143149
+ if (!instanceId || !alias || !provider || !providerInstanceId) {
143150
+ continue;
143151
+ }
143152
+ result.push({
143153
+ instanceId,
143154
+ alias,
143155
+ provider,
143156
+ providerInstanceId
143157
+ });
143158
+ }
143159
+ return result;
143160
+ });
143161
+ };
143095
143162
  fetchSpriteDaemonRelease = async (token) => {
143096
143163
  return await withConvexClient(token, async (client2) => {
143097
143164
  return await client2.query(spriteDaemonReleaseGet, {});
@@ -145634,6 +145701,19 @@ var init_catalog = __esm({
145634
145701
  flag("json", "Output JSON")
145635
145702
  ]
145636
145703
  },
145704
+ {
145705
+ name: "reboot",
145706
+ category: "Devboxes",
145707
+ summary: "Reboot a modal devbox from a filesystem snapshot",
145708
+ usage: ["dvb reboot [<box>] [--json]"],
145709
+ arguments: [
145710
+ arg("box", "Target devbox alias", {
145711
+ required: false,
145712
+ completion: "boxes"
145713
+ })
145714
+ ],
145715
+ options: [flag("json", "Output JSON")]
145716
+ },
145637
145717
  {
145638
145718
  name: "ide",
145639
145719
  category: "Devboxes",
@@ -226894,6 +226974,132 @@ var init_ports3 = __esm({
226894
226974
  }
226895
226975
  });
226896
226976
 
226977
+ // src/devbox/commands/reboot.ts
226978
+ var parseRebootArgs, resolveTargetInstance, formatWakeSource, runReboot;
226979
+ var init_reboot = __esm({
226980
+ "src/devbox/commands/reboot.ts"() {
226981
+ "use strict";
226982
+ init_src();
226983
+ init_auth();
226984
+ init_controlPlane();
226985
+ init_args();
226986
+ init_errors3();
226987
+ init_statusLine();
226988
+ init_boxSelect();
226989
+ parseRebootArgs = (args) => {
226990
+ const { flags, positionals } = parseCommandArgs({
226991
+ args,
226992
+ commandPath: ["reboot"],
226993
+ flagLabel: "reboot",
226994
+ boolean: ["json"]
226995
+ });
226996
+ if (positionals.length > 1) {
226997
+ throw usageError(["reboot"], `Unexpected argument: ${positionals[1]}`);
226998
+ }
226999
+ const target2 = positionals[0];
227000
+ return {
227001
+ ...target2 ? { target: target2 } : {},
227002
+ json: readBooleanFlag(flags, "json")
227003
+ };
227004
+ };
227005
+ resolveTargetInstance = ({
227006
+ instances,
227007
+ target: target2
227008
+ }) => {
227009
+ const trimmedTarget = target2.trim();
227010
+ if (!trimmedTarget) {
227011
+ throw new Error("Devbox alias is required.");
227012
+ }
227013
+ return instances.find((entry) => entry.alias === trimmedTarget) ?? instances.find((entry) => entry.providerInstanceId === trimmedTarget) ?? null;
227014
+ };
227015
+ formatWakeSource = (wakeSource) => {
227016
+ if (wakeSource === "filesystem_snapshot") {
227017
+ return "filesystem snapshot";
227018
+ }
227019
+ if (wakeSource === "memory_snapshot") {
227020
+ return "memory snapshot";
227021
+ }
227022
+ return "already running";
227023
+ };
227024
+ runReboot = async (args) => {
227025
+ const parsed = parseRebootArgs(args);
227026
+ const statusEnabled = process.stderr.isTTY && !parsed.json;
227027
+ const status = createStatusLine({ enabled: statusEnabled });
227028
+ const run2 = async () => {
227029
+ let target2 = parsed.target;
227030
+ if (!target2) {
227031
+ const selected = await selectDevbox(
227032
+ "Use `dvb reboot <box>` to reboot a specific devbox."
227033
+ );
227034
+ if (!selected) {
227035
+ return;
227036
+ }
227037
+ target2 = selected.box;
227038
+ }
227039
+ status.stage("Loading devbox config");
227040
+ const config4 = await loadConfig(
227041
+ process.env.HOME ? { homeDir: process.env.HOME } : void 0
227042
+ );
227043
+ const store = await createSecretStore(
227044
+ config4?.tokenStore,
227045
+ process.env.HOME ? { homeDir: process.env.HOME } : void 0
227046
+ );
227047
+ status.stage("Checking control plane session");
227048
+ const controlPlaneToken = await ensureControlPlaneToken(
227049
+ store,
227050
+ (message) => status.stage(message)
227051
+ );
227052
+ if (!controlPlaneToken) {
227053
+ throw new Error(
227054
+ "Control plane session required to reboot modal devboxes."
227055
+ );
227056
+ }
227057
+ status.stage("Resolving devbox");
227058
+ const instances = await listViewerInstances2(controlPlaneToken);
227059
+ const resolved = resolveTargetInstance({
227060
+ instances,
227061
+ target: target2
227062
+ });
227063
+ if (!resolved) {
227064
+ throw new Error(`Unknown devbox: ${target2}`);
227065
+ }
227066
+ if (resolved.provider !== "modal") {
227067
+ throw new Error("`dvb reboot` is only supported for modal devboxes.");
227068
+ }
227069
+ status.stage(`Rebooting ${resolved.alias}`);
227070
+ const result = await rebootModalDevbox(controlPlaneToken, resolved.alias);
227071
+ status.stop();
227072
+ if (parsed.json) {
227073
+ console.log(
227074
+ JSON.stringify(
227075
+ {
227076
+ ok: true,
227077
+ alias: result.alias,
227078
+ canonical: result.canonical,
227079
+ sandboxId: result.sandboxId,
227080
+ wakeSource: result.wakeSource,
227081
+ platformVersion: result.platformVersion,
227082
+ bootstrapContractVersion: result.bootstrapContractVersion
227083
+ },
227084
+ null,
227085
+ 2
227086
+ )
227087
+ );
227088
+ return;
227089
+ }
227090
+ console.log(
227091
+ `devbox rebooted: ${result.alias} (${formatWakeSource(result.wakeSource)})`
227092
+ );
227093
+ };
227094
+ try {
227095
+ await run2();
227096
+ } finally {
227097
+ status.stop();
227098
+ }
227099
+ };
227100
+ }
227101
+ });
227102
+
226897
227103
  // src/devbox/commands/uninstall.ts
226898
227104
  var import_promises33, import_node_os24, import_node_path40, import_promises34, parseUninstallArgs, escapeRegExp, resolveCliName3, rcMarkers2, resolveCompletionTargets, readTextFile4, removeFile, removeDir, removeDirIfEmpty, removeRcBlock2, shouldTryRemoveRuntimeDir, confirmUninstall, summarizeResults, runUninstall;
226899
227105
  var init_uninstall = __esm({
@@ -230972,6 +231178,7 @@ var init_dispatch = __esm({
230972
231178
  init_logout();
230973
231179
  init_mount();
230974
231180
  init_ports3();
231181
+ init_reboot();
230975
231182
  init_uninstall();
230976
231183
  init_sessions2();
230977
231184
  init_services();
@@ -230996,6 +231203,7 @@ var init_dispatch = __esm({
230996
231203
  ["services", runServices],
230997
231204
  ["ports", runPorts],
230998
231205
  ["destroy", runDestroy],
231206
+ ["reboot", runReboot],
230999
231207
  ["ide", runIde],
231000
231208
  ["ssh proxy", runSshProxy],
231001
231209
  ["mount", runMount],
@@ -231581,4 +231789,4 @@ smol-toml/dist/index.js:
231581
231789
  */
231582
231790
  //# sourceMappingURL=dvb.cjs.map
231583
231791
 
231584
- //# debugId=5b68969d-9b01-544a-9a71-757b2e0b1a99
231792
+ //# debugId=e7954aab-79ea-5bb2-bed5-08b7ab0ad2a4