skydive-cli 0.6.0-beta.107 → 0.6.0-beta.109
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 +20 -20
- package/dist/js/{boot-BoUhUOln.mjs → boot-BSQzFGWT.mjs} +25 -27
- package/dist/js/{client-CBdu6mzU.mjs → client-Cll7hJtd.mjs} +1 -1
- package/dist/js/{client-DVh3gv79.mjs → client-D3HoT65E.mjs} +1 -1
- package/dist/js/{daemon-gkS8p7S0.mjs → daemon-B6kpyO1_.mjs} +1 -1
- package/dist/js/{daemon-Coh1-Pzj.mjs → daemon-Cbn510bw.mjs} +2 -2
- package/dist/js/{daemon-client-CrA3X86o.mjs → daemon-client-BZMmzo95.mjs} +1 -1
- package/dist/js/daemon-client-DGDwDhcz.mjs +8 -0
- package/dist/js/{install-_poptaM0.mjs → install-Cj8eVA99.mjs} +2 -2
- package/dist/js/{print-Bdj30ak4.mjs → print-BQkJxHv8.mjs} +2 -2
- package/dist/js/{print-Dc0jOWIB.mjs → print-C5HFf6kK.mjs} +1 -1
- package/dist/js/{print-share-D5zt_4CV.mjs → print-share-C5ruHYHj.mjs} +1 -1
- package/dist/js/{rest-Cli8XL-M.mjs → rest-D72Prhru.mjs} +1 -1
- package/dist/js/{rest-GmS83Die.mjs → rest-DUJ_AVmA.mjs} +1 -1
- package/package.json +5 -5
- package/dist/js/daemon-client-BMptSMua.mjs +0 -8
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-
|
|
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-
|
|
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-
|
|
2
|
+
import { c as version, s as name, t as createRestClient } from "./rest-D72Prhru.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-C5HFf6kK.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-Cj8eVA99.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-
|
|
8
|
+
import { s as resolveMachineIdentity } from "./client-Cll7hJtd.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-
|
|
11
|
+
import { d as daemonPaths, i as queryDaemonStatus, n as ensureDaemonRunning, s as stopDaemon, u as PORTAL_DAEMON_FLAG } from "./daemon-B6kpyO1_.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";
|
|
@@ -1176,7 +1176,7 @@ async function resolveTargetAgentId(client, selector) {
|
|
|
1176
1176
|
printError("Missing --agent <id or name>. Run `skydive agents list` for candidates.");
|
|
1177
1177
|
process.exit(1);
|
|
1178
1178
|
}
|
|
1179
|
-
const { resolveAgent } = await import("./print-
|
|
1179
|
+
const { resolveAgent } = await import("./print-BQkJxHv8.mjs");
|
|
1180
1180
|
const result = await client.listAgents({
|
|
1181
1181
|
scope: "org",
|
|
1182
1182
|
limit: 100
|
|
@@ -1985,7 +1985,7 @@ const importCommand = {
|
|
|
1985
1985
|
process.exit(1);
|
|
1986
1986
|
}
|
|
1987
1987
|
}
|
|
1988
|
-
const { runChat } = await import("./boot-
|
|
1988
|
+
const { runChat } = await import("./boot-BSQzFGWT.mjs");
|
|
1989
1989
|
await runChat({
|
|
1990
1990
|
appUrl,
|
|
1991
1991
|
sessionToken: session.value.sessionToken,
|
|
@@ -2015,7 +2015,7 @@ async function runImportPrintMode({ argv, appUrl }) {
|
|
|
2015
2015
|
printError(`${session.error.message} For non-interactive use, run \`skydive auth login --web\` first, or set SKYDIVE_SESSION_TOKEN.`);
|
|
2016
2016
|
process.exit(1);
|
|
2017
2017
|
}
|
|
2018
|
-
const { connectMachineShare } = await import("./print-share-
|
|
2018
|
+
const { connectMachineShare } = await import("./print-share-C5ruHYHj.mjs");
|
|
2019
2019
|
const machineShare = await connectMachineShare({
|
|
2020
2020
|
appUrl,
|
|
2021
2021
|
sessionToken: session.value.sessionToken,
|
|
@@ -2023,7 +2023,7 @@ async function runImportPrintMode({ argv, appUrl }) {
|
|
|
2023
2023
|
});
|
|
2024
2024
|
const extra = (argv.print ?? "").trim();
|
|
2025
2025
|
const prompt = buildImportSeedPrompt(process.cwd(), machineOsFromPlatform(process.platform)) + (extra ? `\n\nAdditional instructions: ${extra}` : "");
|
|
2026
|
-
const { runPrint } = await import("./print-
|
|
2026
|
+
const { runPrint } = await import("./print-BQkJxHv8.mjs");
|
|
2027
2027
|
try {
|
|
2028
2028
|
const result = await runPrint({
|
|
2029
2029
|
appUrl,
|
|
@@ -2446,7 +2446,7 @@ const chatCommand = {
|
|
|
2446
2446
|
sessionToken: auth.value.token,
|
|
2447
2447
|
agentSelector: argv.agent ?? null
|
|
2448
2448
|
});
|
|
2449
|
-
const { runChat } = await import("./boot-
|
|
2449
|
+
const { runChat } = await import("./boot-BSQzFGWT.mjs");
|
|
2450
2450
|
await runChat({
|
|
2451
2451
|
appUrl: auth.value.appUrl,
|
|
2452
2452
|
sessionToken: auth.value.token,
|
|
@@ -2530,7 +2530,7 @@ async function runPrintMode({ argv, appUrl }) {
|
|
|
2530
2530
|
printError(`${auth.error.message} For non-interactive use, run \`skydive auth login\` first, or set SKYDIVE_API_KEY / SKYDIVE_SESSION_TOKEN.`);
|
|
2531
2531
|
process.exit(1);
|
|
2532
2532
|
}
|
|
2533
|
-
const { runPrint, readStdin } = await import("./print-
|
|
2533
|
+
const { runPrint, readStdin } = await import("./print-BQkJxHv8.mjs");
|
|
2534
2534
|
const workspaceId = await resolveWorkspaceFlag({
|
|
2535
2535
|
appUrl,
|
|
2536
2536
|
sessionToken: auth.value.token,
|
|
@@ -2560,7 +2560,7 @@ async function runPrintMode({ argv, appUrl }) {
|
|
|
2560
2560
|
process.exit(1);
|
|
2561
2561
|
}
|
|
2562
2562
|
} else {
|
|
2563
|
-
const { connectMachineShare } = await import("./print-share-
|
|
2563
|
+
const { connectMachineShare } = await import("./print-share-C5ruHYHj.mjs");
|
|
2564
2564
|
machineShare = await connectMachineShare({
|
|
2565
2565
|
appUrl: auth.value.appUrl,
|
|
2566
2566
|
sessionToken: auth.value.token,
|
|
@@ -2625,7 +2625,7 @@ const getCommand$1 = {
|
|
|
2625
2625
|
printError(`${auth.error.message} Run \`skydive auth login\` first, or set SKYDIVE_API_KEY / SKYDIVE_SESSION_TOKEN.`);
|
|
2626
2626
|
process.exit(1);
|
|
2627
2627
|
}
|
|
2628
|
-
const { messageGet } = await import("./print-
|
|
2628
|
+
const { messageGet } = await import("./print-BQkJxHv8.mjs");
|
|
2629
2629
|
try {
|
|
2630
2630
|
const result = await messageGet({
|
|
2631
2631
|
appUrl: auth.value.appUrl,
|
|
@@ -2828,7 +2828,7 @@ const switchCommand = {
|
|
|
2828
2828
|
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.");
|
|
2829
2829
|
process.exit(1);
|
|
2830
2830
|
}
|
|
2831
|
-
const { runWorkspacePicker } = await import("./boot-
|
|
2831
|
+
const { runWorkspacePicker } = await import("./boot-BSQzFGWT.mjs");
|
|
2832
2832
|
await runWorkspacePicker(session);
|
|
2833
2833
|
return;
|
|
2834
2834
|
}
|
|
@@ -2907,7 +2907,7 @@ const openCommand = {
|
|
|
2907
2907
|
const agent = argv.agent ? resolveAgent$1((await fetchPortalDevices(session)).agents, argv.agent) : null;
|
|
2908
2908
|
const cwd = argv.cwd ? path.resolve(argv.cwd) : process.cwd();
|
|
2909
2909
|
const { machineName } = await resolveMachineIdentity(null);
|
|
2910
|
-
const { PortalDaemonClient } = await import("./daemon-client-
|
|
2910
|
+
const { PortalDaemonClient } = await import("./daemon-client-DGDwDhcz.mjs");
|
|
2911
2911
|
let lastLine = "";
|
|
2912
2912
|
let signalConnected;
|
|
2913
2913
|
const connected = new Promise((resolve) => {
|
|
@@ -3267,8 +3267,8 @@ const sandboxCommand = {
|
|
|
3267
3267
|
}).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`"),
|
|
3268
3268
|
handler: async (argv) => {
|
|
3269
3269
|
const session = requireSession(argv);
|
|
3270
|
-
const { createRestClient } = await import("./rest-
|
|
3271
|
-
const { resolveAgent } = await import("./print-
|
|
3270
|
+
const { createRestClient } = await import("./rest-DUJ_AVmA.mjs");
|
|
3271
|
+
const { resolveAgent } = await import("./print-BQkJxHv8.mjs");
|
|
3272
3272
|
const client = createRestClient({
|
|
3273
3273
|
appUrl: session.appUrl,
|
|
3274
3274
|
sessionToken: session.sessionToken
|
|
@@ -3560,8 +3560,8 @@ function resolveEditor(override, env, platform = process.platform) {
|
|
|
3560
3560
|
* `sandbox-fs-enabled` kill switch) exits here before any file work.
|
|
3561
3561
|
*/
|
|
3562
3562
|
async function openAgentFs(session, agentSelector) {
|
|
3563
|
-
const { createRestClient } = await import("./rest-
|
|
3564
|
-
const { resolveAgent } = await import("./print-
|
|
3563
|
+
const { createRestClient } = await import("./rest-DUJ_AVmA.mjs");
|
|
3564
|
+
const { resolveAgent } = await import("./print-BQkJxHv8.mjs");
|
|
3565
3565
|
let agent;
|
|
3566
3566
|
try {
|
|
3567
3567
|
agent = resolveAgent(await createRestClient({
|
|
@@ -5351,7 +5351,7 @@ if (process.argv.includes(UPDATE_WORKER_FLAG)) {
|
|
|
5351
5351
|
process.exit(0);
|
|
5352
5352
|
}
|
|
5353
5353
|
if (process.argv.includes(PORTAL_DAEMON_FLAG)) {
|
|
5354
|
-
const { runPortalDaemon } = await import("./daemon-
|
|
5354
|
+
const { runPortalDaemon } = await import("./daemon-Cbn510bw.mjs");
|
|
5355
5355
|
runPortalDaemon(process.argv);
|
|
5356
5356
|
} else runCli();
|
|
5357
5357
|
function runCli() {
|
|
@@ -1,15 +1,15 @@
|
|
|
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-
|
|
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-
|
|
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-
|
|
2
|
+
import { a as errorMessage, i as sendErrorMessage, n as errorDetail, o as isRecord, t as createRestClient } from "./rest-D72Prhru.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-C5HFf6kK.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-Cj8eVA99.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-
|
|
7
|
+
import { n as PortalClient } from "./client-Cll7hJtd.mjs";
|
|
8
8
|
import { t as defaultTlsCertSource } from "./tls-cert-Rua2oV7n.mjs";
|
|
9
9
|
import "./api-BFQ4PQDA.mjs";
|
|
10
|
-
import "./daemon-
|
|
10
|
+
import "./daemon-B6kpyO1_.mjs";
|
|
11
11
|
import { t as SandboxStream } from "./client-Cxk3khQu.mjs";
|
|
12
|
-
import { t as PortalDaemonClient } from "./daemon-client-
|
|
12
|
+
import { t as PortalDaemonClient } from "./daemon-client-BZMmzo95.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";
|
|
@@ -8724,31 +8724,30 @@ function formatCents(cents) {
|
|
|
8724
8724
|
return `$${(cents / 100).toFixed(2)}`;
|
|
8725
8725
|
}
|
|
8726
8726
|
/**
|
|
8727
|
-
* The status-bar readout: the conversation's spend so far including
|
|
8728
|
-
* subagents it spawned.
|
|
8729
|
-
* estimate (see the api's conversationUsage) and the figure trails a live
|
|
8727
|
+
* The status-bar readout: the conversation's inference spend so far including
|
|
8728
|
+
* any subagents it spawned. Metered, not estimated: the figure trails a live
|
|
8730
8729
|
* turn by the telemetry lag. Null before the first read lands.
|
|
8731
8730
|
*/
|
|
8732
8731
|
function formatSpendBadge(totalCents) {
|
|
8733
8732
|
if (totalCents === null) return null;
|
|
8734
|
-
return
|
|
8733
|
+
return formatCents(totalCents);
|
|
8735
8734
|
}
|
|
8736
8735
|
/**
|
|
8737
8736
|
* Body text for the `/cost` transcript block, for every outcome of the read.
|
|
8738
8737
|
* `null` is "no conversation yet" (nothing has been sent).
|
|
8739
8738
|
*/
|
|
8740
8739
|
function formatCostRead(read) {
|
|
8741
|
-
if (read === null) return "Nothing spent yet
|
|
8740
|
+
if (read === null) return "Nothing spent yet. This conversation is created when you send the first message.";
|
|
8742
8741
|
switch (read.kind) {
|
|
8743
8742
|
case "usage": return formatCostInfo(read.usage);
|
|
8744
8743
|
case "off": return "Spend tracking is not turned on for this workspace yet.";
|
|
8745
|
-
case "unavailable": return "Couldn't read this conversation's spend right now
|
|
8744
|
+
case "unavailable": return "Couldn't read this conversation's spend right now, try again in a moment.";
|
|
8746
8745
|
}
|
|
8747
8746
|
}
|
|
8748
8747
|
/**
|
|
8749
|
-
* Inference by model, the subagents' share, the
|
|
8750
|
-
*
|
|
8751
|
-
*
|
|
8748
|
+
* Inference by model, the subagents' share, and the total, one aligned
|
|
8749
|
+
* `label value` row each. Pure so the layout is testable without a
|
|
8750
|
+
* renderer.
|
|
8752
8751
|
*/
|
|
8753
8752
|
function formatCostInfo(usage) {
|
|
8754
8753
|
const rows = [];
|
|
@@ -8758,12 +8757,11 @@ function formatCostInfo(usage) {
|
|
|
8758
8757
|
const n = usage.children.conversationCount;
|
|
8759
8758
|
rows.push(["subagents", `${formatCents(usage.children.inferenceCents)} inference across ${n} ${n === 1 ? "conversation" : "conversations"}`]);
|
|
8760
8759
|
}
|
|
8761
|
-
rows.push(["
|
|
8762
|
-
rows.push(["total", formatCents(usage.totalCents)]);
|
|
8760
|
+
rows.push(["total", formatCents(inferenceCents(usage))]);
|
|
8763
8761
|
const width = Math.max(...rows.map(([label]) => label.length));
|
|
8764
8762
|
const body = rows.map(([label, value]) => `${label.padEnd(width)} ${value}`).join("\n");
|
|
8765
|
-
const notes = ["
|
|
8766
|
-
if (usage.unpriced.length > 0) notes.push(`no rate on file for ${usage.unpriced.join(", ")}
|
|
8763
|
+
const notes = ["inference only"];
|
|
8764
|
+
if (usage.unpriced.length > 0) notes.push(`no rate on file for ${usage.unpriced.join(", ")}; that usage is in the counts above but priced at $0, so the total understates`);
|
|
8767
8765
|
return `${body}\n\n${notes.join("\n")}`;
|
|
8768
8766
|
}
|
|
8769
8767
|
/**
|
|
@@ -8773,15 +8771,14 @@ function formatCostInfo(usage) {
|
|
|
8773
8771
|
* Pure so the layout is testable without a renderer.
|
|
8774
8772
|
*/
|
|
8775
8773
|
function formatSpendSection(usage) {
|
|
8776
|
-
const lines = [`${formatCents(usage
|
|
8774
|
+
const lines = [`${formatCents(inferenceCents(usage))} total`];
|
|
8777
8775
|
if (usage.own.byModel.length === 0) lines.push(`inference ${formatCents(0)}`);
|
|
8778
8776
|
else {
|
|
8779
8777
|
lines.push(`inference ${formatCents(usage.own.inferenceCents)}${usage.own.byModel.length > 1 ? ` (${usage.own.byModel.length} models)` : ""}`);
|
|
8780
8778
|
for (const line of usage.own.byModel) lines.push(` ${line.model ?? "unknown"} ${formatCents(line.cents)}`);
|
|
8781
8779
|
}
|
|
8782
8780
|
if (usage.children.conversationCount > 0) lines.push(`subagents ${formatCents(usage.children.inferenceCents)}`);
|
|
8783
|
-
|
|
8784
|
-
if (usage.unpriced.length > 0) lines.push(`${usage.unpriced.join(", ")} unpriced — total understates (/cost)`);
|
|
8781
|
+
if (usage.unpriced.length > 0) lines.push(`${usage.unpriced.join(", ")} unpriced, total understates (/cost)`);
|
|
8785
8782
|
return lines;
|
|
8786
8783
|
}
|
|
8787
8784
|
function formatTokens(line) {
|
|
@@ -8796,10 +8793,11 @@ function formatCount(n) {
|
|
|
8796
8793
|
if (n >= 1e3) return `${(n / 1e3).toFixed(1)}k`;
|
|
8797
8794
|
return String(n);
|
|
8798
8795
|
}
|
|
8799
|
-
|
|
8800
|
-
|
|
8801
|
-
|
|
8802
|
-
|
|
8796
|
+
/** Inference only: the conversation's own plus its subagents'. What the
|
|
8797
|
+
* status badge and both spend readouts total up. The api's `totalCents`
|
|
8798
|
+
* still includes its (no longer displayed) compute estimate. */
|
|
8799
|
+
function inferenceCents(usage) {
|
|
8800
|
+
return usage.own.inferenceCents + usage.children.inferenceCents;
|
|
8803
8801
|
}
|
|
8804
8802
|
|
|
8805
8803
|
//#endregion
|
|
@@ -16670,7 +16668,7 @@ function useConversationSpend({ rest, conversationId, runActive }) {
|
|
|
16670
16668
|
setChatSpend(null, null, true);
|
|
16671
16669
|
return { kind: "off" };
|
|
16672
16670
|
}
|
|
16673
|
-
setChatSpend(usage.
|
|
16671
|
+
setChatSpend(usage.own.inferenceCents + usage.children.inferenceCents, usage, false);
|
|
16674
16672
|
return {
|
|
16675
16673
|
kind: "usage",
|
|
16676
16674
|
usage
|
|
@@ -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 "
|
|
164
|
+
return "1792107177";
|
|
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-
|
|
2
|
+
import { n as PortalClient, r as RATE_LIMIT_STAND_DOWN_MS, t as AUTH_STAND_DOWN_MS } from "./client-Cll7hJtd.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-
|
|
2
|
+
import { a as portalDaemonBuild, i as isNewerBuild, n as PortalClient, o as isRecord } from "./client-Cll7hJtd.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-
|
|
2
|
+
import "./client-Cll7hJtd.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-
|
|
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-B6kpyO1_.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-
|
|
2
|
+
import { d as daemonPaths, f as encodeLine, l as LOCAL_PROTOCOL_VERSION, m as parseDaemonMessage, n as ensureDaemonRunning, p as makeLineParser } from "./daemon-B6kpyO1_.mjs";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { connect } from "node:net";
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { c as version$1 } from "./rest-
|
|
3
|
-
import { D as getConfigPath } from "./print-
|
|
2
|
+
import { c as version$1 } from "./rest-D72Prhru.mjs";
|
|
3
|
+
import { D as getConfigPath } from "./print-C5HFf6kK.mjs";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { err, ok } from "neverthrow";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./rest-
|
|
3
|
-
import { a as runPrint, i as resolveAgent, n as messageGet, o as toPrintError, r as readStdin, t as collectRunText } from "./print-
|
|
2
|
+
import "./rest-D72Prhru.mjs";
|
|
3
|
+
import { a as runPrint, i as resolveAgent, n as messageGet, o as toPrintError, r as readStdin, t as collectRunText } from "./print-C5HFf6kK.mjs";
|
|
4
4
|
import "./billing-blocked-D3l5kJlX.mjs";
|
|
5
5
|
|
|
6
6
|
export { messageGet, readStdin, resolveAgent, runPrint };
|
|
@@ -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-
|
|
2
|
+
import { a as errorMessage, i as sendErrorMessage, o as isRecord, t as createRestClient } from "./rest-D72Prhru.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";
|
|
@@ -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-
|
|
17
|
+
const { PortalClient } = await import("./client-D3HoT65E.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 { i as sendErrorMessage, n as errorDetail, r as filenameFromContentDisposition, t as createRestClient } from "./rest-
|
|
2
|
+
import { i as sendErrorMessage, n as errorDetail, r as filenameFromContentDisposition, t as createRestClient } from "./rest-D72Prhru.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.6.0-beta.
|
|
3
|
+
"version": "0.6.0-beta.109",
|
|
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.
|
|
76
|
-
"skydive-cli-darwin-x64": "0.6.0-beta.
|
|
77
|
-
"skydive-cli-linux-x64": "0.6.0-beta.
|
|
78
|
-
"skydive-cli-linux-arm64": "0.6.0-beta.
|
|
75
|
+
"skydive-cli-darwin-arm64": "0.6.0-beta.109",
|
|
76
|
+
"skydive-cli-darwin-x64": "0.6.0-beta.109",
|
|
77
|
+
"skydive-cli-linux-x64": "0.6.0-beta.109",
|
|
78
|
+
"skydive-cli-linux-arm64": "0.6.0-beta.109"
|
|
79
79
|
}
|
|
80
80
|
}
|