skydive-cli 0.6.0-beta.225 → 0.6.0-beta.227

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/js/bin.mjs CHANGED
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
- import { c as version, s as name, t as createRestClient } from "./rest-BST90ebn.mjs";
3
- import { A as getPreference, B as resolveChatAuth, C as DEFAULT_API_URL, D as getConfigPath, E as deleteConfig, F as getStoredApiKeyId, G as saveConfig, H as resolveManagementAuth, I as getStoredApiKeyWorkspaceName, J as setLastSeenVersion, K as saveSession, L as getUpdateCheckDisabled, O as getDefaultAgent, P as getShareMachineDefault, S as API_KEY_PREFIX, T as PREFERENCES, U as resolveSession$1, V as resolveConfig, b as API_KEYS_URL, i as resolveAgent$1, j as getPromptHistoryPath, k as getLastSeenVersion, x as API_KEY_FAMILY_PREFIX, z as resolveAppUrl } from "./print-WvgqIHDE.mjs";
4
- import { A as aliasActivationHint, B as getSessionIdentity, E as themes, F as SUPPORTED_SHELLS, H as resolveWorkspaceId, I as defaultInstallEnv, L as detectShell, M as installAgentAlias, N as slugifyAliasName, O as buildImportSeedPrompt, P as takenAliasNames, R as ensureActiveOrganization, U as setActiveWorkspace, V as listWorkspaces, c as brandHelpArt, d as maybeStartProfiling, f as profileDir, j as dedupeAliasName, k as machineOsFromPlatform, t as installCrashHandler, u as getAutomaticLogsDir, z as getActiveWorkspaceId } from "./install-DASm5cK_.mjs";
2
+ import { c as version, s as name, t as createRestClient } from "./rest-RQRlX_s2.mjs";
3
+ import { A as getPreference, B as resolveChatAuth, C as DEFAULT_API_URL, D as getConfigPath, E as deleteConfig, F as getStoredApiKeyId, G as saveConfig, H as resolveManagementAuth, I as getStoredApiKeyWorkspaceName, J as setLastSeenVersion, K as saveSession, L as getUpdateCheckDisabled, O as getDefaultAgent, P as getShareMachineDefault, S as API_KEY_PREFIX, T as PREFERENCES, U as resolveSession$1, V as resolveConfig, b as API_KEYS_URL, i as resolveAgent$1, j as getPromptHistoryPath, k as getLastSeenVersion, x as API_KEY_FAMILY_PREFIX, z as resolveAppUrl } from "./print-tXFnq3lj.mjs";
4
+ import { A as aliasActivationHint, B as getActiveWorkspaceId, E as themes, F as SUPPORTED_SHELLS, H as listWorkspaces, I as defaultInstallEnv, L as detectShell, M as installAgentAlias, N as slugifyAliasName, O as buildImportSeedPrompt, P as takenAliasNames, R as openBestEffort, U as resolveWorkspaceId, V as getSessionIdentity, W as setActiveWorkspace, c as brandHelpArt, d as maybeStartProfiling, f as profileDir, j as dedupeAliasName, k as machineOsFromPlatform, t as installCrashHandler, u as getAutomaticLogsDir, z as ensureActiveOrganization } from "./install-Dp11Tglv.mjs";
5
5
  import { n as printError, r as printTable, t as output } from "./output-C9mb3sUB.mjs";
6
6
  import { t as HttpError } from "./http-error-BF2NZZE3.mjs";
7
7
  import "./billing-blocked-D3l5kJlX.mjs";
8
- import { s as resolveMachineIdentity } from "./client-CskqcEQX.mjs";
8
+ import { s as resolveMachineIdentity } from "./client-Ba7q9z5g.mjs";
9
9
  import "./tls-cert-Rua2oV7n.mjs";
10
10
  import { i as grantPortalAccess, n as fetchPortalDevices, o as registerPortalDevice, r as findThisDevice, s as revokePortalAccess } from "./api-BFQ4PQDA.mjs";
11
- import { d as daemonPaths, i as queryDaemonStatus, n as ensureDaemonRunning, s as stopDaemon, u as PORTAL_DAEMON_FLAG } from "./daemon-CMEQ6irk.mjs";
11
+ import { d as daemonPaths, i as queryDaemonStatus, n as ensureDaemonRunning, s as stopDaemon, u as PORTAL_DAEMON_FLAG } from "./daemon-BWfYtIep.mjs";
12
12
  import { a as FS_MAX_BLOB_BYTES, i as streamSpecToQuery, n as DEFAULT_EXEC_TIMEOUT_MS, o as decodeFsResponse, r as SANDBOX_STREAM_PATH, s as encodeFsRequest, t as SandboxStream } from "./client-Cxk3khQu.mjs";
13
13
  import { hideBin } from "yargs/helpers";
14
14
  import yargs from "yargs";
@@ -17,7 +17,6 @@ import path, { join } from "node:path";
17
17
  import { err, ok } from "neverthrow";
18
18
  import fsp, { mkdtemp, open, readFile, rm, stat, writeFile } from "node:fs/promises";
19
19
  import { z } from "zod";
20
- import open$1 from "open";
21
20
  import fs from "node:fs";
22
21
  import { spawn, spawnSync } from "node:child_process";
23
22
  import { createHash } from "node:crypto";
@@ -478,7 +477,7 @@ async function loginWithDevice({ appUrl, openBrowser = true }) {
478
477
  const verificationUrl = code.verification_uri_complete ?? code.verification_uri;
479
478
  process.stderr.write(`\nTo sign in, open:\n ${verificationUrl}\n`);
480
479
  process.stderr.write(`and enter the code: ${formatUserCode(code.user_code)}\n\n`);
481
- if (openBrowser) await open$1(verificationUrl).catch(() => void 0);
480
+ if (openBrowser) await openBestEffort({ target: verificationUrl });
482
481
  process.stderr.write("Waiting for approval…\n");
483
482
  let intervalMs = (code.interval ?? 5) * 1e3 || DEFAULT_INTERVAL_MS;
484
483
  const expiresAt = Date.now() + code.expires_in * 1e3;
@@ -1176,7 +1175,7 @@ async function resolveTargetAgentId(client, selector) {
1176
1175
  printError("Missing --agent <id or name>. Run `skydive agents list` for candidates.");
1177
1176
  process.exit(1);
1178
1177
  }
1179
- const { resolveAgent } = await import("./print-R96tdG4o.mjs");
1178
+ const { resolveAgent } = await import("./print-B3W2mj7v.mjs");
1180
1179
  const result = await client.listAgents({
1181
1180
  scope: "org",
1182
1181
  limit: 100
@@ -1985,7 +1984,7 @@ const importCommand = {
1985
1984
  process.exit(1);
1986
1985
  }
1987
1986
  }
1988
- const { runChat } = await import("./boot-Dzo69fgi.mjs");
1987
+ const { runChat } = await import("./boot-bYiQ4Pcz.mjs");
1989
1988
  await runChat({
1990
1989
  appUrl,
1991
1990
  sessionToken: session.value.sessionToken,
@@ -2018,7 +2017,7 @@ async function runImportPrintMode({ argv, appUrl }) {
2018
2017
  printError(`${session.error.message} For non-interactive use, run \`skydive auth login --web\` first, or set SKYDIVE_SESSION_TOKEN.`);
2019
2018
  process.exit(1);
2020
2019
  }
2021
- const { connectMachineShare } = await import("./print-share-CV0yi8al.mjs");
2020
+ const { connectMachineShare } = await import("./print-share-BeqALXfJ.mjs");
2022
2021
  const machineShare = await connectMachineShare({
2023
2022
  appUrl,
2024
2023
  sessionToken: session.value.sessionToken,
@@ -2029,7 +2028,7 @@ async function runImportPrintMode({ argv, appUrl }) {
2029
2028
  projectDir: process.cwd(),
2030
2029
  os: machineOsFromPlatform(process.platform)
2031
2030
  }) + (extra ? `\n\nAdditional instructions: ${extra}` : "");
2032
- const { runPrint } = await import("./print-R96tdG4o.mjs");
2031
+ const { runPrint } = await import("./print-B3W2mj7v.mjs");
2033
2032
  try {
2034
2033
  const result = await runPrint({
2035
2034
  appUrl,
@@ -2452,7 +2451,7 @@ const chatCommand = {
2452
2451
  sessionToken: auth.value.token,
2453
2452
  agentSelector: argv.agent ?? null
2454
2453
  });
2455
- const { runChat } = await import("./boot-Dzo69fgi.mjs");
2454
+ const { runChat } = await import("./boot-bYiQ4Pcz.mjs");
2456
2455
  await runChat({
2457
2456
  appUrl: auth.value.appUrl,
2458
2457
  sessionToken: auth.value.token,
@@ -2536,7 +2535,7 @@ async function runPrintMode({ argv, appUrl }) {
2536
2535
  printError(`${auth.error.message} For non-interactive use, run \`skydive auth login\` first, or set SKYDIVE_API_KEY / SKYDIVE_SESSION_TOKEN.`);
2537
2536
  process.exit(1);
2538
2537
  }
2539
- const { runPrint, readStdin } = await import("./print-R96tdG4o.mjs");
2538
+ const { runPrint, readStdin } = await import("./print-B3W2mj7v.mjs");
2540
2539
  const workspaceId = await resolveWorkspaceFlag({
2541
2540
  appUrl,
2542
2541
  sessionToken: auth.value.token,
@@ -2566,7 +2565,7 @@ async function runPrintMode({ argv, appUrl }) {
2566
2565
  process.exit(1);
2567
2566
  }
2568
2567
  } else {
2569
- const { connectMachineShare } = await import("./print-share-CV0yi8al.mjs");
2568
+ const { connectMachineShare } = await import("./print-share-BeqALXfJ.mjs");
2570
2569
  machineShare = await connectMachineShare({
2571
2570
  appUrl: auth.value.appUrl,
2572
2571
  sessionToken: auth.value.token,
@@ -2631,7 +2630,7 @@ const getCommand$1 = {
2631
2630
  printError(`${auth.error.message} Run \`skydive auth login\` first, or set SKYDIVE_API_KEY / SKYDIVE_SESSION_TOKEN.`);
2632
2631
  process.exit(1);
2633
2632
  }
2634
- const { messageGet } = await import("./print-R96tdG4o.mjs");
2633
+ const { messageGet } = await import("./print-B3W2mj7v.mjs");
2635
2634
  try {
2636
2635
  const result = await messageGet({
2637
2636
  appUrl: auth.value.appUrl,
@@ -2834,7 +2833,7 @@ const switchCommand = {
2834
2833
  printError("The workspace picker needs the Bun runtime and it could not be set up automatically. Pass a workspace slug instead, or install Bun and retry.");
2835
2834
  process.exit(1);
2836
2835
  }
2837
- const { runWorkspacePicker } = await import("./boot-Dzo69fgi.mjs");
2836
+ const { runWorkspacePicker } = await import("./boot-bYiQ4Pcz.mjs");
2838
2837
  await runWorkspacePicker(session);
2839
2838
  return;
2840
2839
  }
@@ -2913,7 +2912,7 @@ const openCommand = {
2913
2912
  const agent = argv.agent ? resolveAgent$1((await fetchPortalDevices(session)).agents, argv.agent) : null;
2914
2913
  const cwd = argv.cwd ? path.resolve(argv.cwd) : process.cwd();
2915
2914
  const { machineName } = await resolveMachineIdentity(null);
2916
- const { PortalDaemonClient } = await import("./daemon-client-qeLWDtMe.mjs");
2915
+ const { PortalDaemonClient } = await import("./daemon-client-wVeH3Ttb.mjs");
2917
2916
  let lastLine = "";
2918
2917
  let signalConnected;
2919
2918
  const connected = new Promise((resolve) => {
@@ -3273,8 +3272,8 @@ const sandboxCommand = {
3273
3272
  }).example("skydive sandbox --agent grace", "Live terminal (Ctrl-] detaches)").example("skydive sandbox --agent grace -- tail -n 50 /tmp/harness.log", "One-shot command (use `--` so its flags reach the sandbox)").example("skydive sandbox --agent grace -- sh -c 'ls /tmp | wc -l'", "Shell features go through an explicit `sh -c`"),
3274
3273
  handler: async (argv) => {
3275
3274
  const session = requireSession(argv);
3276
- const { createRestClient } = await import("./rest-QuEyBIza.mjs");
3277
- const { resolveAgent } = await import("./print-R96tdG4o.mjs");
3275
+ const { createRestClient } = await import("./rest-Bfi41NX7.mjs");
3276
+ const { resolveAgent } = await import("./print-B3W2mj7v.mjs");
3278
3277
  const client = createRestClient({
3279
3278
  appUrl: session.appUrl,
3280
3279
  sessionToken: session.sessionToken
@@ -3566,8 +3565,8 @@ function resolveEditor(override, env, platform = process.platform) {
3566
3565
  * `sandbox-fs-enabled` kill switch) exits here before any file work.
3567
3566
  */
3568
3567
  async function openAgentFs(session, agentSelector) {
3569
- const { createRestClient } = await import("./rest-QuEyBIza.mjs");
3570
- const { resolveAgent } = await import("./print-R96tdG4o.mjs");
3568
+ const { createRestClient } = await import("./rest-Bfi41NX7.mjs");
3569
+ const { resolveAgent } = await import("./print-B3W2mj7v.mjs");
3571
3570
  let agent;
3572
3571
  try {
3573
3572
  agent = resolveAgent(await createRestClient({
@@ -4898,7 +4897,7 @@ async function offerIssueReport(archivePath) {
4898
4897
  console.log(`File an issue: ${ISSUE_REPOSITORY_URL}`);
4899
4898
  return;
4900
4899
  }
4901
- await open$1(issueUrl(archivePath));
4900
+ await openBestEffort({ target: issueUrl(archivePath) });
4902
4901
  console.log(`Attach the diagnostics archive: ${archivePath}`);
4903
4902
  } finally {
4904
4903
  prompt.close();
@@ -5357,7 +5356,7 @@ if (process.argv.includes(UPDATE_WORKER_FLAG)) {
5357
5356
  process.exit(0);
5358
5357
  }
5359
5358
  if (process.argv.includes(PORTAL_DAEMON_FLAG)) {
5360
- const { runPortalDaemon } = await import("./daemon-BBWraZlk.mjs");
5359
+ const { runPortalDaemon } = await import("./daemon-Nxf6diPa.mjs");
5361
5360
  runPortalDaemon(process.argv);
5362
5361
  } else runCli();
5363
5362
  function runCli() {
@@ -1,22 +1,21 @@
1
1
  #!/usr/bin/env node
2
- import { a as errorMessage, i as sendErrorMessage, n as errorDetail, o as isRecord, t as createRestClient } from "./rest-BST90ebn.mjs";
3
- import { C as DEFAULT_API_URL, D as getConfigPath, M as getReviewStateDir, N as getSavedTheme, R as recordDefaultAgent, W as resolveWebUrl, _ as computeSettledLabel, c as actionableCardVerb, d as parseOauthConnectParams, f as prioritizeActionableCards, g as composeQuestionAnswerEntries, h as composeQuestionAnswer, i as resolveAgent, l as cardActionErrorMessage, m as resolveConnectUrl, p as reconcileMaskedInput, q as saveTheme, s as MASK_CHAR, u as parseExternalOauthConnectParams, v as parseConnectCard, w as DEFAULT_APP_URL, y as specKeyFor } from "./print-WvgqIHDE.mjs";
4
- import { A as aliasActivationHint, C as themeMode, D as themesForMode, L as detectShell, M as installAgentAlias, N as slugifyAliasName, P as takenAliasNames, S as themeForMode, T as themeVersion, U as setActiveWorkspace, V as listWorkspaces, _ as applyTheme, a as writeCrashReport, b as noColorRequested, g as DEFAULT_THEME_ID, h as writeArtifact, i as buildCrashReport, j as dedupeAliasName, k as machineOsFromPlatform, l as splashFitsWidth, m as record, n as disableTerminalAutowrap, o as MARK_CELLS, p as profilingEnabled, r as restoreTerminalAutowrap, s as WORDMARK, t as installCrashHandler, v as findTheme, w as themeModeFromColorFgBg, x as theme, y as monoTheme, z as getActiveWorkspaceId } from "./install-DASm5cK_.mjs";
2
+ import { a as errorMessage, i as sendErrorMessage, n as errorDetail, o as isRecord, t as createRestClient } from "./rest-RQRlX_s2.mjs";
3
+ import { C as DEFAULT_API_URL, D as getConfigPath, M as getReviewStateDir, N as getSavedTheme, R as recordDefaultAgent, W as resolveWebUrl, _ as computeSettledLabel, c as actionableCardVerb, d as parseOauthConnectParams, f as prioritizeActionableCards, g as composeQuestionAnswerEntries, h as composeQuestionAnswer, i as resolveAgent, l as cardActionErrorMessage, m as resolveConnectUrl, p as reconcileMaskedInput, q as saveTheme, s as MASK_CHAR, u as parseExternalOauthConnectParams, v as parseConnectCard, w as DEFAULT_APP_URL, y as specKeyFor } from "./print-tXFnq3lj.mjs";
4
+ import { A as aliasActivationHint, B as getActiveWorkspaceId, C as themeMode, D as themesForMode, H as listWorkspaces, L as detectShell, M as installAgentAlias, N as slugifyAliasName, P as takenAliasNames, R as openBestEffort, S as themeForMode, T as themeVersion, W as setActiveWorkspace, _ as applyTheme, a as writeCrashReport, b as noColorRequested, g as DEFAULT_THEME_ID, h as writeArtifact, i as buildCrashReport, j as dedupeAliasName, k as machineOsFromPlatform, l as splashFitsWidth, m as record, n as disableTerminalAutowrap, o as MARK_CELLS, p as profilingEnabled, r as restoreTerminalAutowrap, s as WORDMARK, t as installCrashHandler, v as findTheme, w as themeModeFromColorFgBg, x as theme, y as monoTheme } from "./install-Dp11Tglv.mjs";
5
5
  import { t as HttpError } from "./http-error-BF2NZZE3.mjs";
6
6
  import { i as billingBlockedOutcomeFromSendResponse } from "./billing-blocked-D3l5kJlX.mjs";
7
- import { n as PortalClient } from "./client-CskqcEQX.mjs";
7
+ import { n as PortalClient } from "./client-Ba7q9z5g.mjs";
8
8
  import { t as defaultTlsCertSource } from "./tls-cert-Rua2oV7n.mjs";
9
9
  import "./api-BFQ4PQDA.mjs";
10
- import "./daemon-CMEQ6irk.mjs";
10
+ import "./daemon-BWfYtIep.mjs";
11
11
  import { t as SandboxStream } from "./client-Cxk3khQu.mjs";
12
- import { t as PortalDaemonClient } from "./daemon-client-CwKw0lNL.mjs";
12
+ import { t as PortalDaemonClient } from "./daemon-client-CjWAPVZh.mjs";
13
13
  import { t as runRawPtyPassthrough } from "./raw-pty-B-WKaaE3.mjs";
14
14
  import * as os$1 from "node:os";
15
15
  import { homedir, platform, release, tmpdir } from "node:os";
16
16
  import path, { basename, extname, isAbsolute, join, posix, win32 } from "node:path";
17
17
  import { access, appendFile, mkdir, mkdtemp, readFile, readdir, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
18
18
  import { z } from "zod";
19
- import open$1 from "open";
20
19
  import { constants } from "node:fs";
21
20
  import { execFile, spawn } from "node:child_process";
22
21
  import { createHash } from "node:crypto";
@@ -13174,7 +13173,7 @@ function unfoldSettled(current) {
13174
13173
  * shortcut), which would otherwise shadow it inside the component body.
13175
13174
  */
13176
13175
  async function openUrlInBrowser(url) {
13177
- await open$1(url).catch(() => void 0);
13176
+ await openBestEffort({ target: url });
13178
13177
  }
13179
13178
  function isActionableCard(m) {
13180
13179
  return m.kind === "card" && m.status !== "done" && m.status !== "busy" && m.card.button !== null;
@@ -16142,7 +16141,7 @@ function useConversationActions({ rest, appUrl, conversationId, agent, goTo, dri
16142
16141
  return;
16143
16142
  }
16144
16143
  const url = `${resolveWebUrl(appUrl)}/c/${encodeURIComponent(conversationId)}`;
16145
- open$1(url).then(() => useStore.getState().showToast({
16144
+ openBestEffort({ target: url }).then(() => useStore.getState().showToast({
16146
16145
  message: `opened in browser: ${url}`,
16147
16146
  variant: "success"
16148
16147
  })).catch((err) => setItems((prev) => [...prev, {
@@ -16156,7 +16155,7 @@ function useConversationActions({ rest, appUrl, conversationId, agent, goTo, dri
16156
16155
  const target = itemsRef.current.find((m) => m.kind === "agent-file" && m.id === id);
16157
16156
  if (!target || target.status === "saving") return;
16158
16157
  if (target.status === "saved" && target.savedPath) {
16159
- open$1(target.savedPath).catch(() => void 0);
16158
+ openBestEffort({ target: target.savedPath });
16160
16159
  useStore.getState().showToast({
16161
16160
  message: `opened ${basename(target.savedPath)}`,
16162
16161
  variant: "success"
@@ -16187,7 +16186,7 @@ function useConversationActions({ rest, appUrl, conversationId, agent, goTo, dri
16187
16186
  message: `saved to ${path}`,
16188
16187
  variant: "success"
16189
16188
  });
16190
- open$1(path).catch(() => void 0);
16189
+ openBestEffort({ target: path });
16191
16190
  } catch (err) {
16192
16191
  patch({
16193
16192
  status: "error",
@@ -161,7 +161,7 @@ function errorMessage(err) {
161
161
  * the commit time of the built tree is one monotonic clock they share.
162
162
  */
163
163
  function portalDaemonBuild() {
164
- return "1793835029";
164
+ return "1793843832";
165
165
  }
166
166
  /**
167
167
  * Whether a client carrying `mine` should replace a running daemon carrying
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as PortalClient, r as RATE_LIMIT_STAND_DOWN_MS, t as AUTH_STAND_DOWN_MS } from "./client-CskqcEQX.mjs";
2
+ import { n as PortalClient, r as RATE_LIMIT_STAND_DOWN_MS, t as AUTH_STAND_DOWN_MS } from "./client-Ba7q9z5g.mjs";
3
3
  import "./api-BFQ4PQDA.mjs";
4
4
 
5
5
  export { PortalClient };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as portalDaemonBuild, i as isNewerBuild, n as PortalClient, o as isRecord } from "./client-CskqcEQX.mjs";
2
+ import { a as portalDaemonBuild, i as isNewerBuild, n as PortalClient, o as isRecord } from "./client-Ba7q9z5g.mjs";
3
3
  import { t as defaultTlsCertSource } from "./tls-cert-Rua2oV7n.mjs";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import "./client-CskqcEQX.mjs";
2
+ import "./client-Ba7q9z5g.mjs";
3
3
  import "./tls-cert-Rua2oV7n.mjs";
4
4
  import "./api-BFQ4PQDA.mjs";
5
- import { a as runPortalDaemon, c as stopDaemonForHandoff, i as queryDaemonStatus, n as ensureDaemonRunning, o as startPortalDaemon, r as isDaemonListening, s as stopDaemon, t as PortalDaemon } from "./daemon-CMEQ6irk.mjs";
5
+ import { a as runPortalDaemon, c as stopDaemonForHandoff, i as queryDaemonStatus, n as ensureDaemonRunning, o as startPortalDaemon, r as isDaemonListening, s as stopDaemon, t as PortalDaemon } from "./daemon-BWfYtIep.mjs";
6
6
 
7
7
  export { runPortalDaemon };
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { d as daemonPaths, f as encodeLine, l as LOCAL_PROTOCOL_VERSION, m as parseDaemonMessage, n as ensureDaemonRunning, p as makeLineParser } from "./daemon-CMEQ6irk.mjs";
2
+ import { d as daemonPaths, f as encodeLine, l as LOCAL_PROTOCOL_VERSION, m as parseDaemonMessage, n as ensureDaemonRunning, p as makeLineParser } from "./daemon-BWfYtIep.mjs";
3
3
  import { randomUUID } from "node:crypto";
4
4
  import { connect } from "node:net";
5
5
 
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+ import "./client-Ba7q9z5g.mjs";
3
+ import "./tls-cert-Rua2oV7n.mjs";
4
+ import "./api-BFQ4PQDA.mjs";
5
+ import "./daemon-BWfYtIep.mjs";
6
+ import { t as PortalDaemonClient } from "./daemon-client-CjWAPVZh.mjs";
7
+
8
+ export { PortalDaemonClient };
@@ -1,11 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { c as version$1 } from "./rest-BST90ebn.mjs";
3
- import { D as getConfigPath } from "./print-WvgqIHDE.mjs";
2
+ import { c as version$1 } from "./rest-RQRlX_s2.mjs";
3
+ import { D as getConfigPath } from "./print-tXFnq3lj.mjs";
4
4
  import os from "node:os";
5
- import path from "node:path";
5
+ import path, { delimiter, join } from "node:path";
6
6
  import { err, ok } from "neverthrow";
7
7
  import { z } from "zod";
8
- import fs from "node:fs";
8
+ import open from "open";
9
+ import fs, { accessSync, constants } from "node:fs";
9
10
 
10
11
  //#region src/auth/organization.ts
11
12
  const workspaceSchema = z.object({
@@ -147,6 +148,29 @@ async function ensureActiveOrganization({ appUrl, sessionToken }) {
147
148
  });
148
149
  }
149
150
 
151
+ //#endregion
152
+ //#region src/open-url.ts
153
+ function isOnPath(command) {
154
+ return (process.env.PATH ?? "").split(delimiter).filter(Boolean).some((dir) => {
155
+ try {
156
+ accessSync(join(dir, command), constants.X_OK);
157
+ return true;
158
+ } catch {
159
+ return false;
160
+ }
161
+ });
162
+ }
163
+ /**
164
+ * Best-effort open of a URL or file in the OS default app. On Linux, skips
165
+ * silently when xdg-open is missing: `open` spawns it detached with no error
166
+ * handler, and under Bun the resulting ENOENT error event fires before the
167
+ * caller can attach a listener, killing the process.
168
+ */
169
+ async function openBestEffort({ target }) {
170
+ if (process.platform === "linux" && !isOnPath("xdg-open")) return;
171
+ await open(target).catch(() => void 0);
172
+ }
173
+
150
174
  //#endregion
151
175
  //#region src/shell/shell-env.ts
152
176
  /**
@@ -1642,4 +1666,4 @@ function printFatalNotice(file, memory) {
1642
1666
  }
1643
1667
 
1644
1668
  //#endregion
1645
- export { aliasActivationHint as A, getSessionIdentity as B, themeMode as C, themesForMode as D, themes as E, SUPPORTED_SHELLS as F, resolveWorkspaceId as H, defaultInstallEnv as I, detectShell as L, installAgentAlias as M, slugifyAliasName as N, buildImportSeedPrompt as O, takenAliasNames as P, ensureActiveOrganization as R, themeForMode as S, themeVersion as T, setActiveWorkspace as U, listWorkspaces as V, applyTheme as _, writeCrashReport as a, noColorRequested as b, brandHelpArt as c, maybeStartProfiling as d, profileDir as f, DEFAULT_THEME_ID as g, writeArtifact as h, buildCrashReport as i, dedupeAliasName as j, machineOsFromPlatform as k, splashFitsWidth as l, record as m, disableTerminalAutowrap as n, MARK_CELLS as o, profilingEnabled as p, restoreTerminalAutowrap as r, WORDMARK as s, installCrashHandler as t, getAutomaticLogsDir as u, findTheme as v, themeModeFromColorFgBg as w, theme as x, monoTheme as y, getActiveWorkspaceId as z };
1669
+ export { aliasActivationHint as A, getActiveWorkspaceId as B, themeMode as C, themesForMode as D, themes as E, SUPPORTED_SHELLS as F, listWorkspaces as H, defaultInstallEnv as I, detectShell as L, installAgentAlias as M, slugifyAliasName as N, buildImportSeedPrompt as O, takenAliasNames as P, openBestEffort as R, themeForMode as S, themeVersion as T, resolveWorkspaceId as U, getSessionIdentity as V, setActiveWorkspace as W, applyTheme as _, writeCrashReport as a, noColorRequested as b, brandHelpArt as c, maybeStartProfiling as d, profileDir as f, DEFAULT_THEME_ID as g, writeArtifact as h, buildCrashReport as i, dedupeAliasName as j, machineOsFromPlatform as k, splashFitsWidth as l, record as m, disableTerminalAutowrap as n, MARK_CELLS as o, profilingEnabled as p, restoreTerminalAutowrap as r, WORDMARK as s, installCrashHandler as t, getAutomaticLogsDir as u, findTheme as v, themeModeFromColorFgBg as w, theme as x, monoTheme as y, ensureActiveOrganization as z };
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import "./rest-BST90ebn.mjs";
3
- import { a as runPrint, i as resolveAgent, n as messageGet, o as toPrintError, r as readStdin, t as collectRunText } from "./print-WvgqIHDE.mjs";
2
+ import "./rest-RQRlX_s2.mjs";
3
+ import { a as runPrint, i as resolveAgent, n as messageGet, o as toPrintError, r as readStdin, t as collectRunText } from "./print-tXFnq3lj.mjs";
4
4
  import "./billing-blocked-D3l5kJlX.mjs";
5
5
 
6
6
  export { messageGet, readStdin, resolveAgent, runPrint };
@@ -14,7 +14,7 @@ import { n as printError } from "./output-C9mb3sUB.mjs";
14
14
  * the reply (and to --json).
15
15
  */
16
16
  async function connectMachineShare({ appUrl, sessionToken, timeoutHint }) {
17
- const { PortalClient } = await import("./client-BcqIEhAK.mjs");
17
+ const { PortalClient } = await import("./client-jr9NQaCu.mjs");
18
18
  const { defaultTlsCertSource } = await import("./tls-cert-BpCaD5AT.mjs");
19
19
  let signalConnected;
20
20
  const connected = new Promise((resolve) => {
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as errorMessage, i as sendErrorMessage, o as isRecord, t as createRestClient } from "./rest-BST90ebn.mjs";
2
+ import { a as errorMessage, i as sendErrorMessage, o as isRecord, t as createRestClient } from "./rest-RQRlX_s2.mjs";
3
3
  import { t as HttpError } from "./http-error-BF2NZZE3.mjs";
4
4
  import { i as billingBlockedOutcomeFromSendResponse, n as BillingBlockedError } from "./billing-blocked-D3l5kJlX.mjs";
5
5
  import path from "node:path";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { i as sendErrorMessage, n as errorDetail, r as filenameFromContentDisposition, t as createRestClient } from "./rest-BST90ebn.mjs";
2
+ import { i as sendErrorMessage, n as errorDetail, r as filenameFromContentDisposition, t as createRestClient } from "./rest-RQRlX_s2.mjs";
3
3
  import { t as HttpError } from "./http-error-BF2NZZE3.mjs";
4
4
  import "./billing-blocked-D3l5kJlX.mjs";
5
5
 
@@ -6,7 +6,7 @@ import { createParser } from "eventsource-parser";
6
6
 
7
7
  //#region package.json
8
8
  var name = "skydive-cli";
9
- var version = "0.6.0-beta.225";
9
+ var version = "0.6.0-beta.227";
10
10
 
11
11
  //#endregion
12
12
  //#region src/chat/util.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skydive-cli",
3
- "version": "0.6.0-beta.225",
3
+ "version": "0.6.0-beta.227",
4
4
  "description": "Skydive CLI — cloud agents from the command line",
5
5
  "homepage": "https://skydive.com",
6
6
  "license": "MIT",
@@ -72,9 +72,9 @@
72
72
  },
73
73
  "//optionalDependencies": "The per-platform binary packages (skydive-cli-<os>-<arch>) are INTENTIONALLY not committed here. They are published by release-skydive-cli-binaries.yml and injected — pinned to the exact version being published — into the published launcher's optionalDependencies at release time (scripts/prepare-platform-packages.mjs --pin-version, run in release-skydive-cli.yml). Committing them would make `yarn install` try to resolve versions that only exist post-publish, breaking local dev and CI. npm installs of a published skydive-cli still get them (os/cpu-gated); the launcher (src/launcher.ts) resolves and execs the matching one. Local dev never needs them: it runs the JS bundle or `build:binary` directly.",
74
74
  "optionalDependencies": {
75
- "skydive-cli-darwin-arm64": "0.6.0-beta.225",
76
- "skydive-cli-darwin-x64": "0.6.0-beta.225",
77
- "skydive-cli-linux-x64": "0.6.0-beta.225",
78
- "skydive-cli-linux-arm64": "0.6.0-beta.225"
75
+ "skydive-cli-darwin-arm64": "0.6.0-beta.227",
76
+ "skydive-cli-darwin-x64": "0.6.0-beta.227",
77
+ "skydive-cli-linux-x64": "0.6.0-beta.227",
78
+ "skydive-cli-linux-arm64": "0.6.0-beta.227"
79
79
  }
80
80
  }
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env node
2
- import "./client-CskqcEQX.mjs";
3
- import "./tls-cert-Rua2oV7n.mjs";
4
- import "./api-BFQ4PQDA.mjs";
5
- import "./daemon-CMEQ6irk.mjs";
6
- import { t as PortalDaemonClient } from "./daemon-client-CwKw0lNL.mjs";
7
-
8
- export { PortalDaemonClient };