skydive-cli 0.1.0-beta.393 → 0.1.0-beta.396

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
@@ -19,7 +19,7 @@ import semver from "semver";
19
19
 
20
20
  //#region package.json
21
21
  var name = "skydive-cli";
22
- var version = "0.1.0-beta.393";
22
+ var version = "0.1.0-beta.396";
23
23
 
24
24
  //#endregion
25
25
  //#region src/types.ts
@@ -1423,7 +1423,7 @@ const chatCommand = {
1423
1423
  printError(`Unknown theme "${themeId}". Valid themes: ${themes.map((t) => t.id).join(", ")}`);
1424
1424
  process.exit(1);
1425
1425
  }
1426
- const { runChat } = await import("./boot-B-AxTj84.mjs");
1426
+ const { runChat } = await import("./boot-BhSVccnq.mjs");
1427
1427
  await runChat({
1428
1428
  appUrl,
1429
1429
  sessionToken: session.value.sessionToken,
@@ -1735,7 +1735,7 @@ const switchCommand = {
1735
1735
  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.");
1736
1736
  process.exit(1);
1737
1737
  }
1738
- const { runWorkspacePicker } = await import("./boot-B-AxTj84.mjs");
1738
+ const { runWorkspacePicker } = await import("./boot-BhSVccnq.mjs");
1739
1739
  await runWorkspacePicker(session);
1740
1740
  return;
1741
1741
  }
@@ -1461,6 +1461,25 @@ function Indented({ children }) {
1461
1461
  //#endregion
1462
1462
  //#region src/chat/tui/list-line.ts
1463
1463
  /**
1464
+ * Flatten `text` to a single terminal line: newlines, carriage returns, tabs
1465
+ * and other C0/C1 control characters each become one space. A picker row is
1466
+ * budgeted as exactly one line (see the header comment), so a title carrying a
1467
+ * literal newline would otherwise render as two lines, push the rows box past
1468
+ * the height flexbox gave it, and collapse the rows above onto each other.
1469
+ *
1470
+ * The replacement is 1:1 (one code point in, one out) so fuzzy-match highlight
1471
+ * indexes computed against the raw string still line up with the displayed
1472
+ * text — do the same substitution on the fuzzy key.
1473
+ */
1474
+ function singleLine(text) {
1475
+ let out = "";
1476
+ for (const ch of text) {
1477
+ const code = ch.codePointAt(0) ?? 0;
1478
+ out += code <= 31 || code >= 127 && code <= 159 ? " " : ch;
1479
+ }
1480
+ return out;
1481
+ }
1482
+ /**
1464
1483
  * Fit a row's title and trailing detail into `width` columns. The title
1465
1484
  * identifies the row so it gets the space first; the detail takes what is
1466
1485
  * left and is dropped when nothing is.
@@ -1718,7 +1737,7 @@ function ConversationList({ agent, conversations, complete, showAutomated, onTog
1718
1737
  fg,
1719
1738
  children: [marker, truncate("+ new conversation", rowWidth)]
1720
1739
  }, "new");
1721
- const { title, detail } = fitRowText(row.hit.item.title ?? "(untitled)", previewLine(row.hit.item), rowWidth);
1740
+ const { title, detail } = fitRowText(singleLine(row.hit.item.title ?? "(untitled)"), previewLine(row.hit.item), rowWidth);
1722
1741
  return /* @__PURE__ */ jsxs("text", {
1723
1742
  fg,
1724
1743
  children: [
@@ -1738,7 +1757,7 @@ function ConversationList({ agent, conversations, complete, showAutomated, onTog
1738
1757
  ]
1739
1758
  });
1740
1759
  }
1741
- const conversationKeys = [(c) => c.title ?? "", (c) => c.preview ?? ""];
1760
+ const conversationKeys = [(c) => singleLine(c.title ?? ""), (c) => c.preview ?? ""];
1742
1761
  function previewLine(c) {
1743
1762
  const when = relativeTime(c.updatedAt);
1744
1763
  const prefix = c.preview ? c.preview.replace(/\s+/g, " ").trim() : "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skydive-cli",
3
- "version": "0.1.0-beta.393",
3
+ "version": "0.1.0-beta.396",
4
4
  "description": "Skydive CLI — cloud agents from the command line",
5
5
  "homepage": "https://skydive.com",
6
6
  "license": "MIT",