skydive-cli 0.5.0-beta.46 → 0.5.0-beta.48

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,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
- import { o as name, s as version, t as createRestClient } from "./rest-BtHVI0y6.mjs";
3
- import { B as resolveSession$1, C as deleteConfig, D as getPreference, E as getLastSeenVersion, G as setLastSeenVersion, H as saveConfig, I as resolveAppUrl, L as resolveChatAuth, M as getStoredApiKeyId, N as getStoredApiKeyWorkspaceName, O as getPromptHistoryPath, P as getUpdateCheckDisabled, R as resolveConfig, S as PREFERENCES, T as getDefaultAgent, U as saveSession, _ as API_KEYS_URL, b as DEFAULT_API_URL, i as resolveAgent$1, j as getShareMachineDefault, v as API_KEY_FAMILY_PREFIX, w as getConfigPath, y as API_KEY_PREFIX, z as resolveManagementAuth } from "./print-Bg8rzq9t.mjs";
4
- import { A as installAgentAlias, B as resolveWorkspaceId, D as machineOsFromPlatform, E as buildImportSeedPrompt, F as detectShell, I as ensureActiveOrganization, L as getActiveWorkspaceId, M as takenAliasNames, N as SUPPORTED_SHELLS, O as aliasActivationHint, P as defaultInstallEnv, R as getSessionIdentity, V as setActiveWorkspace, c as getAutomaticLogsDir, j as slugifyAliasName, k as dedupeAliasName, l as maybeStartProfiling, o as brandHelpArt, t as installCrashHandler, u as profileDir, w as themes, z as listWorkspaces } from "./install-DNJ6k578.mjs";
2
+ import { o as name, s as version, t as createRestClient } from "./rest-B-dizrBw.mjs";
3
+ import { B as resolveSession$1, C as deleteConfig, D as getPreference, E as getLastSeenVersion, G as setLastSeenVersion, H as saveConfig, I as resolveAppUrl, L as resolveChatAuth, M as getStoredApiKeyId, N as getStoredApiKeyWorkspaceName, O as getPromptHistoryPath, P as getUpdateCheckDisabled, R as resolveConfig, S as PREFERENCES, T as getDefaultAgent, U as saveSession, _ as API_KEYS_URL, b as DEFAULT_API_URL, i as resolveAgent$1, j as getShareMachineDefault, v as API_KEY_FAMILY_PREFIX, w as getConfigPath, y as API_KEY_PREFIX, z as resolveManagementAuth } from "./print-SD_y9CTF.mjs";
4
+ import { A as installAgentAlias, B as resolveWorkspaceId, D as machineOsFromPlatform, E as buildImportSeedPrompt, F as detectShell, I as ensureActiveOrganization, L as getActiveWorkspaceId, M as takenAliasNames, N as SUPPORTED_SHELLS, O as aliasActivationHint, P as defaultInstallEnv, R as getSessionIdentity, V as setActiveWorkspace, c as getAutomaticLogsDir, j as slugifyAliasName, k as dedupeAliasName, l as maybeStartProfiling, o as brandHelpArt, t as installCrashHandler, u as profileDir, w as themes, z as listWorkspaces } from "./install-BOtarTEl.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
8
  import { r as resolveMachineIdentity } from "./client-C2lPer4b.mjs";
9
- import { d as daemonPaths, i as queryDaemonStatus, n as ensureDaemonRunning, s as stopDaemon, u as PORTAL_DAEMON_FLAG } from "./daemon-MZN78SYL.mjs";
9
+ import { d as daemonPaths, i as queryDaemonStatus, n as ensureDaemonRunning, s as stopDaemon, u as PORTAL_DAEMON_FLAG } from "./daemon-B7Wv4P6W.mjs";
10
10
  import "./tls-cert-CV-pwxVN.mjs";
11
11
  import { i as grantPortalAccess, n as fetchPortalDevices, o as registerPortalDevice, r as findThisDevice, s as revokePortalAccess } from "./api-TwLD7ibI.mjs";
12
12
  import { a as encodeFsRequest, i as decodeFsResponse, n as SANDBOX_STREAM_PATH, r as streamSpecToQuery, t as SandboxStream } from "./client-Btq6bMzX.mjs";
@@ -1588,7 +1588,7 @@ const importCommand = {
1588
1588
  process.exit(1);
1589
1589
  }
1590
1590
  }
1591
- const { runChat } = await import("./boot-BD8HZcOo.mjs");
1591
+ const { runChat } = await import("./boot-BoqVFa4M.mjs");
1592
1592
  await runChat({
1593
1593
  appUrl,
1594
1594
  sessionToken: session.value.sessionToken,
@@ -1626,7 +1626,7 @@ async function runImportPrintMode({ argv, appUrl }) {
1626
1626
  });
1627
1627
  const extra = (argv.print ?? "").trim();
1628
1628
  const prompt = buildImportSeedPrompt(process.cwd(), machineOsFromPlatform(process.platform)) + (extra ? `\n\nAdditional instructions: ${extra}` : "");
1629
- const { runPrint } = await import("./print-BAdeImNJ.mjs");
1629
+ const { runPrint } = await import("./print-ejS3eAZz.mjs");
1630
1630
  try {
1631
1631
  const result = await runPrint({
1632
1632
  appUrl,
@@ -2033,7 +2033,7 @@ const chatCommand = {
2033
2033
  sessionToken: auth.value.token,
2034
2034
  agentSelector: argv.agent ?? null
2035
2035
  });
2036
- const { runChat } = await import("./boot-BD8HZcOo.mjs");
2036
+ const { runChat } = await import("./boot-BoqVFa4M.mjs");
2037
2037
  await runChat({
2038
2038
  appUrl: auth.value.appUrl,
2039
2039
  sessionToken: auth.value.token,
@@ -2117,7 +2117,7 @@ async function runPrintMode({ argv, appUrl }) {
2117
2117
  printError(`${auth.error.message} For non-interactive use, run \`skydive auth login\` first, or set SKYDIVE_API_KEY / SKYDIVE_SESSION_TOKEN.`);
2118
2118
  process.exit(1);
2119
2119
  }
2120
- const { runPrint, readStdin } = await import("./print-BAdeImNJ.mjs");
2120
+ const { runPrint, readStdin } = await import("./print-ejS3eAZz.mjs");
2121
2121
  const workspaceId = await resolveWorkspaceFlag({
2122
2122
  appUrl,
2123
2123
  sessionToken: auth.value.token,
@@ -2212,7 +2212,7 @@ const getCommand$1 = {
2212
2212
  printError(`${auth.error.message} Run \`skydive auth login\` first, or set SKYDIVE_API_KEY / SKYDIVE_SESSION_TOKEN.`);
2213
2213
  process.exit(1);
2214
2214
  }
2215
- const { messageGet } = await import("./print-BAdeImNJ.mjs");
2215
+ const { messageGet } = await import("./print-ejS3eAZz.mjs");
2216
2216
  try {
2217
2217
  const result = await messageGet({
2218
2218
  appUrl: auth.value.appUrl,
@@ -2415,7 +2415,7 @@ const switchCommand = {
2415
2415
  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.");
2416
2416
  process.exit(1);
2417
2417
  }
2418
- const { runWorkspacePicker } = await import("./boot-BD8HZcOo.mjs");
2418
+ const { runWorkspacePicker } = await import("./boot-BoqVFa4M.mjs");
2419
2419
  await runWorkspacePicker(session);
2420
2420
  return;
2421
2421
  }
@@ -2494,7 +2494,7 @@ const openCommand = {
2494
2494
  const agent = argv.agent ? resolveAgent$1((await fetchPortalDevices(session)).agents, argv.agent) : null;
2495
2495
  const cwd = argv.cwd ? path.resolve(argv.cwd) : process.cwd();
2496
2496
  const { machineName } = await resolveMachineIdentity(null);
2497
- const { PortalDaemonClient } = await import("./daemon-client-DMx26-Rz.mjs");
2497
+ const { PortalDaemonClient } = await import("./daemon-client-DL3eNr6N.mjs");
2498
2498
  let lastLine = "";
2499
2499
  let signalConnected;
2500
2500
  const connected = new Promise((resolve) => {
@@ -2808,8 +2808,8 @@ const sandboxCommand = {
2808
2808
  }).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`"),
2809
2809
  handler: async (argv) => {
2810
2810
  const session = requireSession(argv);
2811
- const { createRestClient } = await import("./rest-8QGtGZIO.mjs");
2812
- const { resolveAgent } = await import("./print-BAdeImNJ.mjs");
2811
+ const { createRestClient } = await import("./rest-Cz-aN-ME.mjs");
2812
+ const { resolveAgent } = await import("./print-ejS3eAZz.mjs");
2813
2813
  const client = createRestClient({
2814
2814
  appUrl: session.appUrl,
2815
2815
  sessionToken: session.sessionToken
@@ -3077,8 +3077,8 @@ const fsEditCommand = {
3077
3077
  handler: async (argv) => {
3078
3078
  const session = requireSession(argv);
3079
3079
  const remotePath = argv.path;
3080
- const { createRestClient } = await import("./rest-8QGtGZIO.mjs");
3081
- const { resolveAgent } = await import("./print-BAdeImNJ.mjs");
3080
+ const { createRestClient } = await import("./rest-Cz-aN-ME.mjs");
3081
+ const { resolveAgent } = await import("./print-ejS3eAZz.mjs");
3082
3082
  const client = createRestClient({
3083
3083
  appUrl: session.appUrl,
3084
3084
  sessionToken: session.sessionToken
@@ -4548,7 +4548,7 @@ if (process.argv.includes(UPDATE_WORKER_FLAG)) {
4548
4548
  process.exit(0);
4549
4549
  }
4550
4550
  if (process.argv.includes(PORTAL_DAEMON_FLAG)) {
4551
- const { runPortalDaemon } = await import("./daemon-S0p-4FGa.mjs");
4551
+ const { runPortalDaemon } = await import("./daemon-B57zYVAN.mjs");
4552
4552
  runPortalDaemon(process.argv);
4553
4553
  } else runCli();
4554
4554
  function runCli() {
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
- import { a as isRecord, i as errorMessage, n as errorDetail, r as sendErrorMessage, t as createRestClient } from "./rest-BtHVI0y6.mjs";
3
- import { A as getSavedTheme, F as recordDefaultAgent, V as resolveWebUrl, W as saveTheme, b as DEFAULT_API_URL, c as cardActionErrorMessage, d as reconcileMaskedInput, f as resolveConnectUrl, g as specKeyFor, h as parseConnectCard, i as resolveAgent, k as getReviewStateDir, l as parseExternalOauthConnectParams, m as computeSettledLabel, p as composeQuestionAnswer, s as MASK_CHAR, u as parseOauthConnectParams, w as getConfigPath, x as DEFAULT_APP_URL } from "./print-Bg8rzq9t.mjs";
4
- import { A as installAgentAlias, C as themeVersion, D as machineOsFromPlatform, F as detectShell, L as getActiveWorkspaceId, M as takenAliasNames, O as aliasActivationHint, S as themeModeFromColorFgBg, T as themesForMode, V as setActiveWorkspace, _ as monoTheme, a as WORDMARK, b as themeForMode, d as profilingEnabled, f as record, g as findTheme, h as applyTheme, i as MARK_CELLS, j as slugifyAliasName, k as dedupeAliasName, m as DEFAULT_THEME_ID, n as buildCrashReport, p as writeArtifact, r as writeCrashReport, s as splashFitsWidth, t as installCrashHandler, v as noColorRequested, x as themeMode, y as theme, z as listWorkspaces } from "./install-DNJ6k578.mjs";
2
+ import { a as isRecord, i as errorMessage, n as errorDetail, r as sendErrorMessage, t as createRestClient } from "./rest-B-dizrBw.mjs";
3
+ import { A as getSavedTheme, F as recordDefaultAgent, V as resolveWebUrl, W as saveTheme, b as DEFAULT_API_URL, c as cardActionErrorMessage, d as reconcileMaskedInput, f as resolveConnectUrl, g as specKeyFor, h as parseConnectCard, i as resolveAgent, k as getReviewStateDir, l as parseExternalOauthConnectParams, m as computeSettledLabel, p as composeQuestionAnswer, s as MASK_CHAR, u as parseOauthConnectParams, w as getConfigPath, x as DEFAULT_APP_URL } from "./print-SD_y9CTF.mjs";
4
+ import { A as installAgentAlias, C as themeVersion, D as machineOsFromPlatform, F as detectShell, L as getActiveWorkspaceId, M as takenAliasNames, O as aliasActivationHint, S as themeModeFromColorFgBg, T as themesForMode, V as setActiveWorkspace, _ as monoTheme, a as WORDMARK, b as themeForMode, d as profilingEnabled, f as record, g as findTheme, h as applyTheme, i as MARK_CELLS, j as slugifyAliasName, k as dedupeAliasName, m as DEFAULT_THEME_ID, n as buildCrashReport, p as writeArtifact, r as writeCrashReport, s as splashFitsWidth, t as installCrashHandler, v as noColorRequested, x as themeMode, y as theme, z as listWorkspaces } from "./install-BOtarTEl.mjs";
5
5
  import { t as HttpError } from "./http-error-BF2NZZE3.mjs";
6
6
  import { i as billingBlockedOutcomeFromSendResponse } from "./billing-blocked-D3l5kJlX.mjs";
7
7
  import { t as PortalClient } from "./client-C2lPer4b.mjs";
8
- import "./daemon-MZN78SYL.mjs";
8
+ import "./daemon-B7Wv4P6W.mjs";
9
9
  import { t as defaultTlsCertSource } from "./tls-cert-CV-pwxVN.mjs";
10
10
  import "./api-TwLD7ibI.mjs";
11
11
  import { t as SandboxStream } from "./client-Btq6bMzX.mjs";
12
- import { t as PortalDaemonClient } from "./daemon-client-qNlw9inL.mjs";
12
+ import { t as PortalDaemonClient } from "./daemon-client-Btr9rmKl.mjs";
13
13
  import { t as runRawPtyPassthrough } from "./raw-pty-D5PhKZSl.mjs";
14
14
  import * as os$1 from "node:os";
15
15
  import { homedir, platform, release, tmpdir } from "node:os";
@@ -7597,6 +7597,7 @@ function usePromptHistory({ filePath }) {
7597
7597
  const entriesRef = useRef([]);
7598
7598
  const indexRef = useRef(0);
7599
7599
  const shownRef = useRef(null);
7600
+ const draftRef = useRef("");
7600
7601
  useEffect(() => {
7601
7602
  if (!filePath) return;
7602
7603
  let cancelled = false;
@@ -7617,6 +7618,7 @@ function usePromptHistory({ filePath }) {
7617
7618
  const after = withPromptEntry(before, raw);
7618
7619
  indexRef.current = 0;
7619
7620
  shownRef.current = null;
7621
+ draftRef.current = "";
7620
7622
  if (after === before) return;
7621
7623
  const trimmed = after.length < before.length + 1;
7622
7624
  entriesRef.current = after;
@@ -7632,6 +7634,7 @@ function usePromptHistory({ filePath }) {
7632
7634
  if (isEdited(indexRef.current, shownRef.current, currentText)) return null;
7633
7635
  const result = recallPrevious(entriesRef.current, indexRef.current);
7634
7636
  if (!result) return null;
7637
+ if (indexRef.current === 0) draftRef.current = currentText;
7635
7638
  indexRef.current = result.index;
7636
7639
  shownRef.current = result.text;
7637
7640
  return result.text;
@@ -7641,7 +7644,11 @@ function usePromptHistory({ filePath }) {
7641
7644
  const result = recallNext(entriesRef.current, indexRef.current);
7642
7645
  if (!result) return null;
7643
7646
  indexRef.current = result.index;
7644
- shownRef.current = result.index === 0 ? null : result.text;
7647
+ if (result.index === 0) {
7648
+ shownRef.current = null;
7649
+ return draftRef.current;
7650
+ }
7651
+ shownRef.current = result.text;
7645
7652
  return result.text;
7646
7653
  }, [])
7647
7654
  };
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import "./client-C2lPer4b.mjs";
3
- 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-MZN78SYL.mjs";
3
+ 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-B7Wv4P6W.mjs";
4
4
  import "./tls-cert-CV-pwxVN.mjs";
5
5
  import "./api-TwLD7ibI.mjs";
6
6
 
@@ -21,7 +21,7 @@ import { access, appendFile, mkdir, readFile, unlink, writeFile } from "node:fs/
21
21
  * the commit time of the built tree is one monotonic clock they share.
22
22
  */
23
23
  function portalDaemonBuild() {
24
- return "1787048488";
24
+ return "1787070117";
25
25
  }
26
26
  /**
27
27
  * Whether a client carrying `mine` should replace a running daemon carrying
@@ -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-MZN78SYL.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-B7Wv4P6W.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-C2lPer4b.mjs";
3
+ import "./daemon-B7Wv4P6W.mjs";
4
+ import "./tls-cert-CV-pwxVN.mjs";
5
+ import "./api-TwLD7ibI.mjs";
6
+ import { t as PortalDaemonClient } from "./daemon-client-Btr9rmKl.mjs";
7
+
8
+ export { PortalDaemonClient };
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import { s as version$1 } from "./rest-BtHVI0y6.mjs";
3
- import { w as getConfigPath } from "./print-Bg8rzq9t.mjs";
2
+ import { s as version$1 } from "./rest-B-dizrBw.mjs";
3
+ import { w as getConfigPath } from "./print-SD_y9CTF.mjs";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
6
6
  import { err, ok } from "neverthrow";
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { a as isRecord, i as errorMessage, r as sendErrorMessage, t as createRestClient } from "./rest-BtHVI0y6.mjs";
2
+ import { a as isRecord, i as errorMessage, r as sendErrorMessage, t as createRestClient } from "./rest-B-dizrBw.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,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
- import "./rest-BtHVI0y6.mjs";
3
- import { a as runPrint, i as resolveAgent, n as messageGet, o as toPrintError, r as readStdin, t as collectRunText } from "./print-Bg8rzq9t.mjs";
2
+ import "./rest-B-dizrBw.mjs";
3
+ import { a as runPrint, i as resolveAgent, n as messageGet, o as toPrintError, r as readStdin, t as collectRunText } from "./print-SD_y9CTF.mjs";
4
4
  import "./billing-blocked-D3l5kJlX.mjs";
5
5
 
6
6
  export { messageGet, readStdin, resolveAgent, runPrint };
@@ -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.5.0-beta.46";
9
+ var version = "0.5.0-beta.48";
10
10
 
11
11
  //#endregion
12
12
  //#region src/chat/util.ts
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { n as errorDetail, r as sendErrorMessage, t as createRestClient } from "./rest-BtHVI0y6.mjs";
2
+ import { n as errorDetail, r as sendErrorMessage, t as createRestClient } from "./rest-B-dizrBw.mjs";
3
3
  import { t as HttpError } from "./http-error-BF2NZZE3.mjs";
4
4
  import "./billing-blocked-D3l5kJlX.mjs";
5
5
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skydive-cli",
3
- "version": "0.5.0-beta.46",
3
+ "version": "0.5.0-beta.48",
4
4
  "description": "Skydive CLI — cloud agents from the command line",
5
5
  "homepage": "https://skydive.com",
6
6
  "license": "MIT",
@@ -69,9 +69,9 @@
69
69
  },
70
70
  "//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.",
71
71
  "optionalDependencies": {
72
- "skydive-cli-darwin-arm64": "0.5.0-beta.46",
73
- "skydive-cli-darwin-x64": "0.5.0-beta.46",
74
- "skydive-cli-linux-x64": "0.5.0-beta.46",
75
- "skydive-cli-linux-arm64": "0.5.0-beta.46"
72
+ "skydive-cli-darwin-arm64": "0.5.0-beta.48",
73
+ "skydive-cli-darwin-x64": "0.5.0-beta.48",
74
+ "skydive-cli-linux-x64": "0.5.0-beta.48",
75
+ "skydive-cli-linux-arm64": "0.5.0-beta.48"
76
76
  }
77
77
  }
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env node
2
- import "./client-C2lPer4b.mjs";
3
- import "./daemon-MZN78SYL.mjs";
4
- import "./tls-cert-CV-pwxVN.mjs";
5
- import "./api-TwLD7ibI.mjs";
6
- import { t as PortalDaemonClient } from "./daemon-client-qNlw9inL.mjs";
7
-
8
- export { PortalDaemonClient };