@f5xc-salesdemos/xcsh 19.42.1 → 19.42.2

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@f5xc-salesdemos/xcsh",
4
- "version": "19.42.1",
4
+ "version": "19.42.2",
5
5
  "description": "Coding agent CLI with read, bash, edit, write tools and session management",
6
6
  "homepage": "https://github.com/f5xc-salesdemos/xcsh",
7
7
  "author": "Can Boluk",
@@ -52,13 +52,13 @@
52
52
  "dependencies": {
53
53
  "@agentclientprotocol/sdk": "0.16.1",
54
54
  "@mozilla/readability": "^0.6",
55
- "@f5xc-salesdemos/xcsh-stats": "19.42.1",
56
- "@f5xc-salesdemos/pi-agent-core": "19.42.1",
57
- "@f5xc-salesdemos/pi-ai": "19.42.1",
58
- "@f5xc-salesdemos/pi-natives": "19.42.1",
59
- "@f5xc-salesdemos/pi-resource-management": "19.42.1",
60
- "@f5xc-salesdemos/pi-tui": "19.42.1",
61
- "@f5xc-salesdemos/pi-utils": "19.42.1",
55
+ "@f5xc-salesdemos/xcsh-stats": "19.42.2",
56
+ "@f5xc-salesdemos/pi-agent-core": "19.42.2",
57
+ "@f5xc-salesdemos/pi-ai": "19.42.2",
58
+ "@f5xc-salesdemos/pi-natives": "19.42.2",
59
+ "@f5xc-salesdemos/pi-resource-management": "19.42.2",
60
+ "@f5xc-salesdemos/pi-tui": "19.42.2",
61
+ "@f5xc-salesdemos/pi-utils": "19.42.2",
62
62
  "@sinclair/typebox": "^0.34",
63
63
  "@xterm/headless": "^6.0",
64
64
  "ajv": "^8.20",
@@ -17,17 +17,17 @@ export interface BuildInfo {
17
17
  }
18
18
 
19
19
  export const BUILD_INFO: BuildInfo = {
20
- "version": "19.42.1",
21
- "commit": "164a80d621b7e0c5f5e89bf9cd7caac2911eb764",
22
- "shortCommit": "164a80d",
20
+ "version": "19.42.2",
21
+ "commit": "a018af25c2adec4357b1aa63213417ef9331ef18",
22
+ "shortCommit": "a018af2",
23
23
  "branch": "main",
24
- "tag": "v19.42.1",
25
- "commitDate": "2026-06-24T02:41:01Z",
26
- "buildDate": "2026-06-24T03:11:24.436Z",
24
+ "tag": "v19.42.2",
25
+ "commitDate": "2026-06-24T03:15:55Z",
26
+ "buildDate": "2026-06-24T03:45:49.205Z",
27
27
  "dirty": true,
28
28
  "prNumber": "",
29
29
  "repoUrl": "https://github.com/f5xc-salesdemos/xcsh",
30
30
  "repoSlug": "f5xc-salesdemos/xcsh",
31
- "commitUrl": "https://github.com/f5xc-salesdemos/xcsh/commit/164a80d621b7e0c5f5e89bf9cd7caac2911eb764",
32
- "releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v19.42.1"
31
+ "commitUrl": "https://github.com/f5xc-salesdemos/xcsh/commit/a018af25c2adec4357b1aa63213417ef9331ef18",
32
+ "releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v19.42.2"
33
33
  };
@@ -63,7 +63,16 @@ export function renderMermaidThemed(source: string, theme: Theme, opts?: RenderM
63
63
  if (cached !== undefined) return cached;
64
64
 
65
65
  const asciiTheme = buildMermaidAsciiTheme(theme);
66
- const colored = renderMermaidAsciiSafe(source, { ...opts?.render, colorMode: mode, theme: asciiTheme });
66
+ // Compact defaults: beautiful-mermaid's paddingX/paddingY of 5 spreads nodes far
67
+ // apart and bloats the diagram. Tighter spacing reads more elegantly and helps it
68
+ // fit the transcript width. Callers can still override via opts.render.
69
+ const colored = renderMermaidAsciiSafe(source, {
70
+ paddingX: 2,
71
+ paddingY: 1,
72
+ ...opts?.render,
73
+ colorMode: mode,
74
+ theme: asciiTheme,
75
+ });
67
76
  if (colored == null) {
68
77
  cache.set(key, null);
69
78
  return null;
@@ -10,7 +10,6 @@ import type { RenderMermaidToolDetails } from "./render-mermaid";
10
10
  import { addSection, formatErrorMessage, replaceTabs } from "./render-utils";
11
11
 
12
12
  const TOOL_TITLE = "Mermaid";
13
- const MAX_DIAGRAM_LINES = 40;
14
13
 
15
14
  /** Human-friendly caption for the diagram-type badge in the block header. */
16
15
  function diagramTypeLabel(type: MermaidDiagramType): string {
@@ -77,8 +76,9 @@ export const mermaidRenderer = {
77
76
  const caption = source ? diagramTypeLabel(detectDiagramType(source)) : "diagram";
78
77
 
79
78
  // Keep the diagram's own colors — do NOT recolor each line a flat tool color.
79
+ // Show the FULL diagram: truncating a diagram with "… N more lines" defeats the purpose.
80
80
  const diagramLines = diagramText.split("\n").map(line => replaceTabs(line));
81
- addSection(sections, "Diagram", diagramLines, uiTheme, MAX_DIAGRAM_LINES);
81
+ addSection(sections, "Diagram", diagramLines, uiTheme);
82
82
 
83
83
  if (result.details?.artifactId) {
84
84
  meta.push(uiTheme.fg("dim", `artifact:${result.details.artifactId.slice(0, 8)}`));
@@ -6,7 +6,7 @@ import type { Theme, ThemeColor } from "../modes/theme/theme";
6
6
  import { getImageLineMask } from "../utils/image-passthrough";
7
7
  import type { State } from "./types";
8
8
  import type { RenderCache } from "./utils";
9
- import { getStateBgColor, Hasher, padToWidth, truncateToWidth } from "./utils";
9
+ import { Ellipsis, getStateBgColor, Hasher, padToWidth, truncateToWidth } from "./utils";
10
10
 
11
11
  /**
12
12
  * Border color override for F5-branded tool renderers.
@@ -109,7 +109,9 @@ export function renderOutputBlock(options: OutputBlockOptions, theme: Theme): st
109
109
  }
110
110
  const wrappedLines = wrapContent
111
111
  ? wrapTextWithAnsi(line.trimEnd(), contentWidth)
112
- : [truncateToWidth(line.trimEnd(), contentWidth)];
112
+ : // Clip cleanly with no trailing ellipsis — a column of "…" down the
113
+ // right edge of a clipped diagram is clutter, not information.
114
+ [truncateToWidth(line.trimEnd(), contentWidth, Ellipsis.Omit)];
113
115
  for (const wrappedLine of wrappedLines) {
114
116
  const innerPadding = padding(Math.max(0, contentWidth - visibleWidth(wrappedLine)));
115
117
  const fullLine = `${contentPrefix}${wrappedLine}${innerPadding}${contentSuffix}`;