skydive-cli 0.2.0-beta.624 → 0.2.0-beta.626
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
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,5 +1,5 @@
|
|
|
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-
|
|
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-CQNnRJ0V.mjs";
|
|
3
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-DaPpTqxu.mjs";
|
|
4
4
|
import { n as printError, r as printTable, t as output } from "./output-DYzzdXYV.mjs";
|
|
5
5
|
import { n as createRestClient } from "./rest-Q5yl_b2-.mjs";
|
|
@@ -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-Bk_R-SnG.mjs");
|
|
1202
1202
|
await runChat({
|
|
1203
1203
|
appUrl,
|
|
1204
1204
|
sessionToken: session.value.sessionToken,
|
|
@@ -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-Bk_R-SnG.mjs");
|
|
1518
1518
|
await runChat({
|
|
1519
1519
|
appUrl,
|
|
1520
1520
|
sessionToken: session.value.sessionToken,
|
|
@@ -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-Bk_R-SnG.mjs");
|
|
1826
1826
|
await runWorkspacePicker(session);
|
|
1827
1827
|
return;
|
|
1828
1828
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
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-
|
|
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-CQNnRJ0V.mjs";
|
|
3
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-DaPpTqxu.mjs";
|
|
4
4
|
import { a as errorMessage, i as sendErrorMessage, n as createRestClient, o as isRecord, r as errorDetail, t as HttpError } from "./rest-Q5yl_b2-.mjs";
|
|
5
5
|
import { t as PortalClient } from "./client-DT9bWi1D.mjs";
|
|
@@ -5480,6 +5480,10 @@ const keybindGroups = [
|
|
|
5480
5480
|
keys: "exit",
|
|
5481
5481
|
action: "quit (type it as a message)"
|
|
5482
5482
|
},
|
|
5483
|
+
{
|
|
5484
|
+
keys: "ctrl+a",
|
|
5485
|
+
action: "archive this conversation (composer empty; hides it for you only)"
|
|
5486
|
+
},
|
|
5483
5487
|
{
|
|
5484
5488
|
keys: "ctrl+p",
|
|
5485
5489
|
action: "switch model"
|
|
@@ -5966,6 +5970,13 @@ const slashCommands = [
|
|
|
5966
5970
|
description: "start a new conversation with this agent",
|
|
5967
5971
|
action: { kind: "new-conversation" }
|
|
5968
5972
|
},
|
|
5973
|
+
{
|
|
5974
|
+
name: "archive",
|
|
5975
|
+
aliases: [],
|
|
5976
|
+
argsHint: null,
|
|
5977
|
+
description: "archive this conversation and hide it from your list",
|
|
5978
|
+
action: { kind: "archive-conversation" }
|
|
5979
|
+
},
|
|
5969
5980
|
{
|
|
5970
5981
|
name: "conversation",
|
|
5971
5982
|
aliases: ["conversations", "conv"],
|
|
@@ -9107,6 +9118,7 @@ function routeInput(raw) {
|
|
|
9107
9118
|
};
|
|
9108
9119
|
}
|
|
9109
9120
|
case "new-conversation":
|
|
9121
|
+
case "archive-conversation":
|
|
9110
9122
|
case "model-picker":
|
|
9111
9123
|
case "theme-picker":
|
|
9112
9124
|
case "status":
|
|
@@ -10248,6 +10260,41 @@ function ChatScreen({ agent, conversation }) {
|
|
|
10248
10260
|
agent,
|
|
10249
10261
|
goTo
|
|
10250
10262
|
]);
|
|
10263
|
+
const archiveConversation = useCallback(() => {
|
|
10264
|
+
if (grantPrompt || credPrompt) return;
|
|
10265
|
+
if (runRef.current.kind !== "idle") {
|
|
10266
|
+
useStore.getState().showToast({ message: "finish or cancel the run first (ctrl+c)" });
|
|
10267
|
+
return;
|
|
10268
|
+
}
|
|
10269
|
+
if (!conversationId) {
|
|
10270
|
+
useStore.getState().showToast({ message: "nothing to archive yet — send a message to start this one" });
|
|
10271
|
+
return;
|
|
10272
|
+
}
|
|
10273
|
+
if (!rest) return;
|
|
10274
|
+
rest.setConversationArchived({
|
|
10275
|
+
conversationId,
|
|
10276
|
+
archived: true
|
|
10277
|
+
}).then(() => {
|
|
10278
|
+
useStore.getState().showToast({
|
|
10279
|
+
variant: "success",
|
|
10280
|
+
message: "archived — shift+tab in the picker shows it, ctrl+a restores"
|
|
10281
|
+
});
|
|
10282
|
+
goTo({
|
|
10283
|
+
kind: "conversation-picker",
|
|
10284
|
+
agent
|
|
10285
|
+
});
|
|
10286
|
+
}).catch((err) => useStore.getState().showToast({
|
|
10287
|
+
variant: "error",
|
|
10288
|
+
message: err instanceof HttpError && err.status === 404 ? "can't archive this one — it's already gone from your list" : `couldn't archive: ${errorMessage(err)}`
|
|
10289
|
+
}));
|
|
10290
|
+
}, [
|
|
10291
|
+
grantPrompt,
|
|
10292
|
+
credPrompt,
|
|
10293
|
+
conversationId,
|
|
10294
|
+
rest,
|
|
10295
|
+
goTo,
|
|
10296
|
+
agent
|
|
10297
|
+
]);
|
|
10251
10298
|
/**
|
|
10252
10299
|
* Leave this conversation for another screen without ending its run: drop
|
|
10253
10300
|
* our own SSE subscription and nothing else — never `rest.cancelRun` — so
|
|
@@ -10406,6 +10453,9 @@ function ChatScreen({ agent, conversation }) {
|
|
|
10406
10453
|
case "sandbox-pty":
|
|
10407
10454
|
runSandboxPty();
|
|
10408
10455
|
break;
|
|
10456
|
+
case "archive-conversation":
|
|
10457
|
+
archiveConversation();
|
|
10458
|
+
break;
|
|
10409
10459
|
case "new-conversation":
|
|
10410
10460
|
if (runRef.current.kind !== "idle") {
|
|
10411
10461
|
useStore.getState().showToast({ message: "finish or cancel the run first (ctrl+c)" });
|
|
@@ -10507,6 +10557,7 @@ function ChatScreen({ agent, conversation }) {
|
|
|
10507
10557
|
runLocalShell,
|
|
10508
10558
|
runSandboxExec,
|
|
10509
10559
|
runSandboxPty,
|
|
10560
|
+
archiveConversation,
|
|
10510
10561
|
leaveForScreen,
|
|
10511
10562
|
openConversationRef,
|
|
10512
10563
|
toggleShare,
|
|
@@ -10703,6 +10754,11 @@ function ChatScreen({ agent, conversation }) {
|
|
|
10703
10754
|
setThemePickerOpen(true);
|
|
10704
10755
|
return;
|
|
10705
10756
|
}
|
|
10757
|
+
if (key.name === "a" && key.ctrl && input.trim() === "") {
|
|
10758
|
+
key.preventDefault();
|
|
10759
|
+
archiveConversation();
|
|
10760
|
+
return;
|
|
10761
|
+
}
|
|
10706
10762
|
if (key.name === "?" && !key.ctrl && !key.meta && input.trim() === "") {
|
|
10707
10763
|
composerRef.current?.clear();
|
|
10708
10764
|
setInput("");
|