skydive-cli 0.2.0-beta.624 → 0.2.0-beta.630
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/README.md +25 -22
- package/dist/js/bin.mjs +17 -17
- package/dist/js/{boot-CI6nXtmu.mjs → boot-DpgN_3SH.mjs} +72 -5
- package/dist/js/client-Csl6iRdd.mjs +5 -0
- package/dist/js/{client-DT9bWi1D.mjs → client-O5KfzIaB.mjs} +1 -1
- package/dist/js/{daemon-DfMgVlYE.mjs → daemon-Dk4RinJn.mjs} +2 -2
- package/dist/js/{daemon-CqhMYzpN.mjs → daemon-DxwrTG1K.mjs} +3 -3
- package/dist/js/{install-DKTnh1gy.mjs → install-ZNL9Ss_c.mjs} +2 -2
- package/dist/js/{print-DaPpTqxu.mjs → print-BUbxOvnm.mjs} +1 -1
- package/dist/js/{print-CB6L_1YB.mjs → print-DZC3Xxnl.mjs} +2 -2
- package/dist/js/{print-share-D8Nn1qFq.mjs → print-share-BTGabspc.mjs} +1 -1
- package/dist/js/{rest-Q5yl_b2-.mjs → rest-CCyln7vx.mjs} +6 -0
- package/dist/js/{rest-CBROy0L-.mjs → rest-HIAVuPQz.mjs} +1 -1
- package/package.json +1 -1
- package/dist/js/client-CKlIpyAb.mjs +0 -5
package/README.md
CHANGED
|
@@ -291,28 +291,31 @@ management API used by `agents`/`keys`.
|
|
|
291
291
|
|
|
292
292
|
### Keybindings
|
|
293
293
|
|
|
294
|
-
| Context | Key | Action
|
|
295
|
-
| ------------------- | ------------- |
|
|
296
|
-
| Pickers | _type_ | filter the list
|
|
297
|
-
| Pickers | `↑` / `↓` | move selection
|
|
298
|
-
| Pickers | `↵` | open / select
|
|
299
|
-
| Pickers | `esc` | back
|
|
300
|
-
| Agent picker | `ctrl+n` | create an agent
|
|
301
|
-
| Agent picker | `ctrl+w` | switch workspace
|
|
302
|
-
| Agent picker | `tab` | toggle mine / whole-org agents
|
|
303
|
-
| Conversation picker | `ctrl+
|
|
304
|
-
|
|
|
305
|
-
|
|
|
306
|
-
| Chat |
|
|
307
|
-
| Chat | `
|
|
308
|
-
| Chat | `ctrl+
|
|
309
|
-
| Chat | `
|
|
310
|
-
| Chat | `ctrl+
|
|
311
|
-
| Chat | `ctrl+
|
|
312
|
-
| Chat | `ctrl+
|
|
313
|
-
| Chat | `ctrl+
|
|
314
|
-
| Chat | `ctrl+
|
|
315
|
-
| Chat |
|
|
294
|
+
| Context | Key | Action |
|
|
295
|
+
| ------------------- | ------------- | ------------------------------------------ |
|
|
296
|
+
| Pickers | _type_ | filter the list |
|
|
297
|
+
| Pickers | `↑` / `↓` | move selection |
|
|
298
|
+
| Pickers | `↵` | open / select |
|
|
299
|
+
| Pickers | `esc` | back |
|
|
300
|
+
| Agent picker | `ctrl+n` | create an agent |
|
|
301
|
+
| Agent picker | `ctrl+w` | switch workspace |
|
|
302
|
+
| Agent picker | `tab` | toggle mine / whole-org agents |
|
|
303
|
+
| Conversation picker | `ctrl+a` | archive / restore it for you only |
|
|
304
|
+
| Conversation picker | `ctrl+d` | delete the highlighted conversation |
|
|
305
|
+
| Conversation picker | `shift+tab` | show / hide the ones you archived |
|
|
306
|
+
| Chat | `↵` | send (or queue, while streaming) |
|
|
307
|
+
| Chat | `pgup`/`pgdn` | scroll the transcript |
|
|
308
|
+
| Chat | `ctrl+c` | cancel the active run; again to quit |
|
|
309
|
+
| Chat | `esc` | back to the conversation picker |
|
|
310
|
+
| Chat | `ctrl+a` | archive this conversation (empty composer) |
|
|
311
|
+
| Chat | `ctrl+p` | switch model |
|
|
312
|
+
| Chat | `ctrl+o` | switch theme |
|
|
313
|
+
| Chat | `ctrl+t` | grant / revoke local machine access |
|
|
314
|
+
| Chat | `ctrl+l` | open this conversation in the browser |
|
|
315
|
+
| Chat | `ctrl+r` | run the newest pending connect card |
|
|
316
|
+
| Chat | `ctrl+v` | paste an image from the clipboard |
|
|
317
|
+
| Chat | `ctrl+x` | drop the most recently staged image |
|
|
318
|
+
| Chat | `?` | show the keybinding reference |
|
|
316
319
|
|
|
317
320
|
Messages typed while a response is streaming are **queued** and sent in
|
|
318
321
|
order as each run finishes; `ctrl+c` cancels the current run and clears the
|
package/dist/js/bin.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { C as setActiveWorkspace, S as listWorkspaces, T as version, _ as themes, b as getActiveWorkspaceId, o as brandHelpArt, t as installCrashHandler, w as name, x as getSessionIdentity, y as ensureActiveOrganization } from "./install-
|
|
3
|
-
import { A as resolveAppUrl, C as getPromptHistoryPath, D as getStoredApiKeyId, E as getShareMachineDefault, F as saveConfig, I as saveSession, M as resolveManagementAuth, N as resolveSession, O as getStoredApiKeyWorkspaceName, R as setLastSeenVersion, S as getLastSeenVersion, _ as API_KEY_PREFIX, b as deleteConfig, g as API_KEY_FAMILY_PREFIX, h as API_KEYS_URL, i as resolveAgent, j as resolveConfig, k as getUpdateCheckDisabled, v as DEFAULT_API_URL, x as getConfigPath } from "./print-
|
|
2
|
+
import { C as setActiveWorkspace, S as listWorkspaces, T as version, _ as themes, b as getActiveWorkspaceId, o as brandHelpArt, t as installCrashHandler, w as name, x as getSessionIdentity, y as ensureActiveOrganization } from "./install-ZNL9Ss_c.mjs";
|
|
3
|
+
import { A as resolveAppUrl, C as getPromptHistoryPath, D as getStoredApiKeyId, E as getShareMachineDefault, F as saveConfig, I as saveSession, M as resolveManagementAuth, N as resolveSession, O as getStoredApiKeyWorkspaceName, R as setLastSeenVersion, S as getLastSeenVersion, _ as API_KEY_PREFIX, b as deleteConfig, g as API_KEY_FAMILY_PREFIX, h as API_KEYS_URL, i as resolveAgent, j as resolveConfig, k as getUpdateCheckDisabled, v as DEFAULT_API_URL, x as getConfigPath } from "./print-BUbxOvnm.mjs";
|
|
4
4
|
import { n as printError, r as printTable, t as output } from "./output-DYzzdXYV.mjs";
|
|
5
|
-
import { n as createRestClient } from "./rest-
|
|
6
|
-
import { a as registerPortalDevice, i as grantPortalAccess, n as fetchPortalDevices, o as revokePortalAccess, r as findThisDevice, s as machineIdentity } from "./client-
|
|
7
|
-
import { c as PORTAL_DAEMON_FLAG, i as queryDaemonStatus, l as daemonPaths, n as ensureDaemonRunning, o as stopDaemon } from "./daemon-
|
|
5
|
+
import { n as createRestClient } from "./rest-CCyln7vx.mjs";
|
|
6
|
+
import { a as registerPortalDevice, i as grantPortalAccess, n as fetchPortalDevices, o as revokePortalAccess, r as findThisDevice, s as machineIdentity } from "./client-O5KfzIaB.mjs";
|
|
7
|
+
import { c as PORTAL_DAEMON_FLAG, i as queryDaemonStatus, l as daemonPaths, n as ensureDaemonRunning, o as stopDaemon } from "./daemon-Dk4RinJn.mjs";
|
|
8
8
|
import { t as SandboxStream } from "./client-DfcJFEbh.mjs";
|
|
9
9
|
import { hideBin } from "yargs/helpers";
|
|
10
10
|
import yargs from "yargs";
|
|
@@ -1198,7 +1198,7 @@ const importCommand = {
|
|
|
1198
1198
|
process.exit(1);
|
|
1199
1199
|
}
|
|
1200
1200
|
}
|
|
1201
|
-
const { runChat } = await import("./boot-
|
|
1201
|
+
const { runChat } = await import("./boot-DpgN_3SH.mjs");
|
|
1202
1202
|
await runChat({
|
|
1203
1203
|
appUrl,
|
|
1204
1204
|
sessionToken: session.value.sessionToken,
|
|
@@ -1225,7 +1225,7 @@ async function runImportPrintMode({ argv, appUrl }) {
|
|
|
1225
1225
|
printError(`${session.error.message} For non-interactive use, run \`skydive auth login --web\` first, or set SKYDIVE_SESSION_TOKEN.`);
|
|
1226
1226
|
process.exit(1);
|
|
1227
1227
|
}
|
|
1228
|
-
const { connectMachineShare } = await import("./print-share-
|
|
1228
|
+
const { connectMachineShare } = await import("./print-share-BTGabspc.mjs");
|
|
1229
1229
|
const machineShare = await connectMachineShare({
|
|
1230
1230
|
appUrl,
|
|
1231
1231
|
sessionToken: session.value.sessionToken,
|
|
@@ -1233,7 +1233,7 @@ async function runImportPrintMode({ argv, appUrl }) {
|
|
|
1233
1233
|
});
|
|
1234
1234
|
const extra = (argv.print ?? "").trim();
|
|
1235
1235
|
const prompt = buildImportSeedPrompt(process.cwd()) + (extra ? `\n\nAdditional instructions: ${extra}` : "");
|
|
1236
|
-
const { runPrint } = await import("./print-
|
|
1236
|
+
const { runPrint } = await import("./print-DZC3Xxnl.mjs");
|
|
1237
1237
|
try {
|
|
1238
1238
|
const result = await runPrint({
|
|
1239
1239
|
appUrl,
|
|
@@ -1514,7 +1514,7 @@ const chatCommand = {
|
|
|
1514
1514
|
printError(`Unknown theme "${themeId}". Valid themes: ${themes.map((t) => t.id).join(", ")}`);
|
|
1515
1515
|
process.exit(1);
|
|
1516
1516
|
}
|
|
1517
|
-
const { runChat } = await import("./boot-
|
|
1517
|
+
const { runChat } = await import("./boot-DpgN_3SH.mjs");
|
|
1518
1518
|
await runChat({
|
|
1519
1519
|
appUrl,
|
|
1520
1520
|
sessionToken: session.value.sessionToken,
|
|
@@ -1551,7 +1551,7 @@ async function runPrintMode({ argv, appUrl }) {
|
|
|
1551
1551
|
printError(`${session.error.message} For non-interactive use, run \`skydive auth login\` first, or set SKYDIVE_SESSION_TOKEN.`);
|
|
1552
1552
|
process.exit(1);
|
|
1553
1553
|
}
|
|
1554
|
-
const { runPrint, readStdin } = await import("./print-
|
|
1554
|
+
const { runPrint, readStdin } = await import("./print-DZC3Xxnl.mjs");
|
|
1555
1555
|
let prompt = (argv.print ?? "").trim();
|
|
1556
1556
|
if (!prompt) {
|
|
1557
1557
|
if (process.stdin.isTTY) {
|
|
@@ -1566,7 +1566,7 @@ async function runPrintMode({ argv, appUrl }) {
|
|
|
1566
1566
|
}
|
|
1567
1567
|
let machineShare = null;
|
|
1568
1568
|
if (resolveShareMachine(argv)) {
|
|
1569
|
-
const { connectMachineShare } = await import("./print-share-
|
|
1569
|
+
const { connectMachineShare } = await import("./print-share-BTGabspc.mjs");
|
|
1570
1570
|
machineShare = await connectMachineShare({
|
|
1571
1571
|
appUrl,
|
|
1572
1572
|
sessionToken: session.value.sessionToken,
|
|
@@ -1625,7 +1625,7 @@ const getCommand = {
|
|
|
1625
1625
|
printError(`${session.error.message} Run \`skydive auth login\` first, or set SKYDIVE_SESSION_TOKEN.`);
|
|
1626
1626
|
process.exit(1);
|
|
1627
1627
|
}
|
|
1628
|
-
const { messageGet } = await import("./print-
|
|
1628
|
+
const { messageGet } = await import("./print-DZC3Xxnl.mjs");
|
|
1629
1629
|
try {
|
|
1630
1630
|
const result = await messageGet({
|
|
1631
1631
|
appUrl,
|
|
@@ -1822,7 +1822,7 @@ const switchCommand = {
|
|
|
1822
1822
|
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.");
|
|
1823
1823
|
process.exit(1);
|
|
1824
1824
|
}
|
|
1825
|
-
const { runWorkspacePicker } = await import("./boot-
|
|
1825
|
+
const { runWorkspacePicker } = await import("./boot-DpgN_3SH.mjs");
|
|
1826
1826
|
await runWorkspacePicker(session);
|
|
1827
1827
|
return;
|
|
1828
1828
|
}
|
|
@@ -1900,7 +1900,7 @@ const openCommand = {
|
|
|
1900
1900
|
const agent = argv.agent ? resolveAgent((await fetchPortalDevices(session)).agents, argv.agent) : null;
|
|
1901
1901
|
const cwd = argv.cwd ? path.resolve(argv.cwd) : process.cwd();
|
|
1902
1902
|
const { machineName } = machineIdentity();
|
|
1903
|
-
const { PortalClient } = await import("./client-
|
|
1903
|
+
const { PortalClient } = await import("./client-Csl6iRdd.mjs");
|
|
1904
1904
|
let lastLine = "";
|
|
1905
1905
|
let signalConnected;
|
|
1906
1906
|
const connected = new Promise((resolve) => {
|
|
@@ -2173,8 +2173,8 @@ const sandboxCommand = {
|
|
|
2173
2173
|
}).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`"),
|
|
2174
2174
|
handler: async (argv) => {
|
|
2175
2175
|
const session = requireSession(argv);
|
|
2176
|
-
const { createRestClient } = await import("./rest-
|
|
2177
|
-
const { resolveAgent } = await import("./print-
|
|
2176
|
+
const { createRestClient } = await import("./rest-HIAVuPQz.mjs");
|
|
2177
|
+
const { resolveAgent } = await import("./print-DZC3Xxnl.mjs");
|
|
2178
2178
|
const client = createRestClient({
|
|
2179
2179
|
appUrl: session.appUrl,
|
|
2180
2180
|
sessionToken: session.sessionToken
|
|
@@ -3251,7 +3251,7 @@ if (process.argv.includes(UPDATE_WORKER_FLAG)) {
|
|
|
3251
3251
|
process.exit(0);
|
|
3252
3252
|
}
|
|
3253
3253
|
if (process.argv.includes(PORTAL_DAEMON_FLAG)) {
|
|
3254
|
-
const { runPortalDaemon } = await import("./daemon-
|
|
3254
|
+
const { runPortalDaemon } = await import("./daemon-DxwrTG1K.mjs");
|
|
3255
3255
|
runPortalDaemon(process.argv);
|
|
3256
3256
|
} else runCli();
|
|
3257
3257
|
function runCli() {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { C as setActiveWorkspace, S as listWorkspaces, a as WORDMARK, b as getActiveWorkspaceId, c as applyTheme, d as noColorRequested, f as theme, g as themeVersion, h as themeModeFromColorFgBg, i as MARK_CELLS, l as findTheme, m as themeMode, n as buildCrashReport, p as themeForMode, r as writeCrashReport, s as DEFAULT_THEME_ID, t as installCrashHandler, u as monoTheme, v as themesForMode } from "./install-
|
|
3
|
-
import { L as saveTheme, P as resolveWebUrl, T as getSavedTheme, c as cardActionErrorMessage, d as reconcileMaskedInput, f as resolveConnectUrl, i as resolveAgent, l as parseExternalOauthConnectParams, m as specKeyFor, p as parseConnectCard, s as MASK_CHAR, u as parseOauthConnectParams, v as DEFAULT_API_URL, w as getReviewStateDir, x as getConfigPath, y as DEFAULT_APP_URL } from "./print-
|
|
4
|
-
import { a as errorMessage, i as sendErrorMessage, n as createRestClient, o as isRecord, r as errorDetail, t as HttpError } from "./rest-
|
|
5
|
-
import { t as PortalClient } from "./client-
|
|
6
|
-
import { d as makeLineParser, f as parseDaemonMessage, l as daemonPaths, n as ensureDaemonRunning, s as LOCAL_PROTOCOL_VERSION, u as encodeLine } from "./daemon-
|
|
2
|
+
import { C as setActiveWorkspace, S as listWorkspaces, a as WORDMARK, b as getActiveWorkspaceId, c as applyTheme, d as noColorRequested, f as theme, g as themeVersion, h as themeModeFromColorFgBg, i as MARK_CELLS, l as findTheme, m as themeMode, n as buildCrashReport, p as themeForMode, r as writeCrashReport, s as DEFAULT_THEME_ID, t as installCrashHandler, u as monoTheme, v as themesForMode } from "./install-ZNL9Ss_c.mjs";
|
|
3
|
+
import { L as saveTheme, P as resolveWebUrl, T as getSavedTheme, c as cardActionErrorMessage, d as reconcileMaskedInput, f as resolveConnectUrl, i as resolveAgent, l as parseExternalOauthConnectParams, m as specKeyFor, p as parseConnectCard, s as MASK_CHAR, u as parseOauthConnectParams, v as DEFAULT_API_URL, w as getReviewStateDir, x as getConfigPath, y as DEFAULT_APP_URL } from "./print-BUbxOvnm.mjs";
|
|
4
|
+
import { a as errorMessage, i as sendErrorMessage, n as createRestClient, o as isRecord, r as errorDetail, t as HttpError } from "./rest-CCyln7vx.mjs";
|
|
5
|
+
import { t as PortalClient } from "./client-O5KfzIaB.mjs";
|
|
6
|
+
import { d as makeLineParser, f as parseDaemonMessage, l as daemonPaths, n as ensureDaemonRunning, s as LOCAL_PROTOCOL_VERSION, u as encodeLine } from "./daemon-Dk4RinJn.mjs";
|
|
7
7
|
import { t as SandboxStream } from "./client-DfcJFEbh.mjs";
|
|
8
8
|
import { t as runRawPtyPassthrough } from "./raw-pty-BcjbTjHJ.mjs";
|
|
9
9
|
import * as os$1 from "node:os";
|
|
@@ -1872,6 +1872,17 @@ function AgentCreateScreen() {
|
|
|
1872
1872
|
const fail = useStore((s) => s.fail);
|
|
1873
1873
|
const [name, setName] = useState("");
|
|
1874
1874
|
const [state, setState] = useState({ kind: "idle" });
|
|
1875
|
+
useEffect(() => {
|
|
1876
|
+
if (!rest) return;
|
|
1877
|
+
let cancelled = false;
|
|
1878
|
+
rest.suggestAgentIdentity().then((suggestion) => {
|
|
1879
|
+
if (cancelled || !suggestion) return;
|
|
1880
|
+
setName((current) => current ? current : suggestion.name);
|
|
1881
|
+
}).catch(() => {});
|
|
1882
|
+
return () => {
|
|
1883
|
+
cancelled = true;
|
|
1884
|
+
};
|
|
1885
|
+
}, [rest]);
|
|
1875
1886
|
useKeyboard((key) => {
|
|
1876
1887
|
if (key.name === "escape" && state.kind !== "creating") goTo({ kind: "agent-picker" });
|
|
1877
1888
|
});
|
|
@@ -5480,6 +5491,10 @@ const keybindGroups = [
|
|
|
5480
5491
|
keys: "exit",
|
|
5481
5492
|
action: "quit (type it as a message)"
|
|
5482
5493
|
},
|
|
5494
|
+
{
|
|
5495
|
+
keys: "ctrl+a",
|
|
5496
|
+
action: "archive this conversation (composer empty; hides it for you only)"
|
|
5497
|
+
},
|
|
5483
5498
|
{
|
|
5484
5499
|
keys: "ctrl+p",
|
|
5485
5500
|
action: "switch model"
|
|
@@ -5966,6 +5981,13 @@ const slashCommands = [
|
|
|
5966
5981
|
description: "start a new conversation with this agent",
|
|
5967
5982
|
action: { kind: "new-conversation" }
|
|
5968
5983
|
},
|
|
5984
|
+
{
|
|
5985
|
+
name: "archive",
|
|
5986
|
+
aliases: [],
|
|
5987
|
+
argsHint: null,
|
|
5988
|
+
description: "archive this conversation and hide it from your list",
|
|
5989
|
+
action: { kind: "archive-conversation" }
|
|
5990
|
+
},
|
|
5969
5991
|
{
|
|
5970
5992
|
name: "conversation",
|
|
5971
5993
|
aliases: ["conversations", "conv"],
|
|
@@ -9107,6 +9129,7 @@ function routeInput(raw) {
|
|
|
9107
9129
|
};
|
|
9108
9130
|
}
|
|
9109
9131
|
case "new-conversation":
|
|
9132
|
+
case "archive-conversation":
|
|
9110
9133
|
case "model-picker":
|
|
9111
9134
|
case "theme-picker":
|
|
9112
9135
|
case "status":
|
|
@@ -10248,6 +10271,41 @@ function ChatScreen({ agent, conversation }) {
|
|
|
10248
10271
|
agent,
|
|
10249
10272
|
goTo
|
|
10250
10273
|
]);
|
|
10274
|
+
const archiveConversation = useCallback(() => {
|
|
10275
|
+
if (grantPrompt || credPrompt) return;
|
|
10276
|
+
if (runRef.current.kind !== "idle") {
|
|
10277
|
+
useStore.getState().showToast({ message: "finish or cancel the run first (ctrl+c)" });
|
|
10278
|
+
return;
|
|
10279
|
+
}
|
|
10280
|
+
if (!conversationId) {
|
|
10281
|
+
useStore.getState().showToast({ message: "nothing to archive yet — send a message to start this one" });
|
|
10282
|
+
return;
|
|
10283
|
+
}
|
|
10284
|
+
if (!rest) return;
|
|
10285
|
+
rest.setConversationArchived({
|
|
10286
|
+
conversationId,
|
|
10287
|
+
archived: true
|
|
10288
|
+
}).then(() => {
|
|
10289
|
+
useStore.getState().showToast({
|
|
10290
|
+
variant: "success",
|
|
10291
|
+
message: "archived — shift+tab in the picker shows it, ctrl+a restores"
|
|
10292
|
+
});
|
|
10293
|
+
goTo({
|
|
10294
|
+
kind: "conversation-picker",
|
|
10295
|
+
agent
|
|
10296
|
+
});
|
|
10297
|
+
}).catch((err) => useStore.getState().showToast({
|
|
10298
|
+
variant: "error",
|
|
10299
|
+
message: err instanceof HttpError && err.status === 404 ? "can't archive this one — it's already gone from your list" : `couldn't archive: ${errorMessage(err)}`
|
|
10300
|
+
}));
|
|
10301
|
+
}, [
|
|
10302
|
+
grantPrompt,
|
|
10303
|
+
credPrompt,
|
|
10304
|
+
conversationId,
|
|
10305
|
+
rest,
|
|
10306
|
+
goTo,
|
|
10307
|
+
agent
|
|
10308
|
+
]);
|
|
10251
10309
|
/**
|
|
10252
10310
|
* Leave this conversation for another screen without ending its run: drop
|
|
10253
10311
|
* our own SSE subscription and nothing else — never `rest.cancelRun` — so
|
|
@@ -10406,6 +10464,9 @@ function ChatScreen({ agent, conversation }) {
|
|
|
10406
10464
|
case "sandbox-pty":
|
|
10407
10465
|
runSandboxPty();
|
|
10408
10466
|
break;
|
|
10467
|
+
case "archive-conversation":
|
|
10468
|
+
archiveConversation();
|
|
10469
|
+
break;
|
|
10409
10470
|
case "new-conversation":
|
|
10410
10471
|
if (runRef.current.kind !== "idle") {
|
|
10411
10472
|
useStore.getState().showToast({ message: "finish or cancel the run first (ctrl+c)" });
|
|
@@ -10507,6 +10568,7 @@ function ChatScreen({ agent, conversation }) {
|
|
|
10507
10568
|
runLocalShell,
|
|
10508
10569
|
runSandboxExec,
|
|
10509
10570
|
runSandboxPty,
|
|
10571
|
+
archiveConversation,
|
|
10510
10572
|
leaveForScreen,
|
|
10511
10573
|
openConversationRef,
|
|
10512
10574
|
toggleShare,
|
|
@@ -10703,6 +10765,11 @@ function ChatScreen({ agent, conversation }) {
|
|
|
10703
10765
|
setThemePickerOpen(true);
|
|
10704
10766
|
return;
|
|
10705
10767
|
}
|
|
10768
|
+
if (key.name === "a" && key.ctrl && input.trim() === "") {
|
|
10769
|
+
key.preventDefault();
|
|
10770
|
+
archiveConversation();
|
|
10771
|
+
return;
|
|
10772
|
+
}
|
|
10706
10773
|
if (key.name === "?" && !key.ctrl && !key.meta && input.trim() === "") {
|
|
10707
10774
|
composerRef.current?.clear();
|
|
10708
10775
|
setInput("");
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as errorMessage, t as HttpError } from "./rest-
|
|
2
|
+
import { a as errorMessage, t as HttpError } from "./rest-CCyln7vx.mjs";
|
|
3
3
|
import os from "node:os";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { spawn } from "node:child_process";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { o as isRecord } from "./rest-
|
|
3
|
-
import { t as PortalClient } from "./client-
|
|
2
|
+
import { o as isRecord } from "./rest-CCyln7vx.mjs";
|
|
3
|
+
import { t as PortalClient } from "./client-O5KfzIaB.mjs";
|
|
4
4
|
import os from "node:os";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { z } from "zod";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import "./rest-
|
|
3
|
-
import "./client-
|
|
4
|
-
import { a as runPortalDaemon, i as queryDaemonStatus, n as ensureDaemonRunning, o as stopDaemon, r as isDaemonListening, t as PortalDaemon } from "./daemon-
|
|
2
|
+
import "./rest-CCyln7vx.mjs";
|
|
3
|
+
import "./client-O5KfzIaB.mjs";
|
|
4
|
+
import { a as runPortalDaemon, i as queryDaemonStatus, n as ensureDaemonRunning, o as stopDaemon, r as isDaemonListening, t as PortalDaemon } from "./daemon-Dk4RinJn.mjs";
|
|
5
5
|
|
|
6
6
|
export { runPortalDaemon };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { x as getConfigPath } from "./print-
|
|
2
|
+
import { x as getConfigPath } from "./print-BUbxOvnm.mjs";
|
|
3
3
|
import os from "node:os";
|
|
4
4
|
import path from "node:path";
|
|
5
5
|
import { err, ok } from "neverthrow";
|
|
@@ -8,7 +8,7 @@ import fs from "node:fs";
|
|
|
8
8
|
|
|
9
9
|
//#region package.json
|
|
10
10
|
var name = "skydive-cli";
|
|
11
|
-
var version$1 = "0.2.0-beta.
|
|
11
|
+
var version$1 = "0.2.0-beta.630";
|
|
12
12
|
|
|
13
13
|
//#endregion
|
|
14
14
|
//#region src/auth/organization.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as errorMessage, i as sendErrorMessage, n as createRestClient, o as isRecord, t as HttpError } from "./rest-
|
|
2
|
+
import { a as errorMessage, i as sendErrorMessage, n as createRestClient, o as isRecord, t as HttpError } from "./rest-CCyln7vx.mjs";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import Conf from "conf";
|
|
5
5
|
import { err, ok } from "neverthrow";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { a as runPrint, i as resolveAgent, n as messageGet, o as toPrintError, r as readStdin, t as collectRunText } from "./print-
|
|
3
|
-
import "./rest-
|
|
2
|
+
import { a as runPrint, i as resolveAgent, n as messageGet, o as toPrintError, r as readStdin, t as collectRunText } from "./print-BUbxOvnm.mjs";
|
|
3
|
+
import "./rest-CCyln7vx.mjs";
|
|
4
4
|
|
|
5
5
|
export { messageGet, readStdin, resolveAgent, runPrint };
|
|
@@ -14,7 +14,7 @@ import { n as printError } from "./output-DYzzdXYV.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-Csl6iRdd.mjs");
|
|
18
18
|
let signalConnected;
|
|
19
19
|
const connected = new Promise((resolve) => {
|
|
20
20
|
signalConnected = resolve;
|
|
@@ -214,6 +214,10 @@ function createRestClient({ appUrl, sessionToken }) {
|
|
|
214
214
|
const { agent } = await post("/api/v1/agents", { name }, createAgentResponseSchema);
|
|
215
215
|
return agent;
|
|
216
216
|
},
|
|
217
|
+
suggestAgentIdentity: async () => {
|
|
218
|
+
const { suggestion } = await get("/api/v1/agents/suggest", suggestAgentResponseSchema);
|
|
219
|
+
return suggestion;
|
|
220
|
+
},
|
|
217
221
|
getConversation: async ({ conversationId }) => {
|
|
218
222
|
const { conversation } = await get(`/api/v1/conversations/${encodeURIComponent(conversationId)}`, getConversationResponseSchema);
|
|
219
223
|
return conversation;
|
|
@@ -432,6 +436,8 @@ const listAgentsResponseSchema = z.object({
|
|
|
432
436
|
totalCount: z.number().nullable().optional()
|
|
433
437
|
});
|
|
434
438
|
const createAgentResponseSchema = z.object({ agent: agentSummarySchema });
|
|
439
|
+
const agentSuggestionSchema = z.object({ name: z.string() });
|
|
440
|
+
const suggestAgentResponseSchema = z.object({ suggestion: agentSuggestionSchema.nullable() });
|
|
435
441
|
const conversationAgentSchema = z.object({
|
|
436
442
|
id: z.string().uuid(),
|
|
437
443
|
name: z.string(),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { i as sendErrorMessage, n as createRestClient, r as errorDetail, t as HttpError } from "./rest-
|
|
2
|
+
import { i as sendErrorMessage, n as createRestClient, r as errorDetail, t as HttpError } from "./rest-CCyln7vx.mjs";
|
|
3
3
|
|
|
4
4
|
export { createRestClient };
|
package/package.json
CHANGED