@f5xc-salesdemos/xcsh 18.4.0 → 18.4.1

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": "18.4.0",
4
+ "version": "18.4.1",
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",
@@ -47,12 +47,12 @@
47
47
  "dependencies": {
48
48
  "@agentclientprotocol/sdk": "0.16.1",
49
49
  "@mozilla/readability": "^0.6",
50
- "@f5xc-salesdemos/xcsh-stats": "18.4.0",
51
- "@f5xc-salesdemos/pi-agent-core": "18.4.0",
52
- "@f5xc-salesdemos/pi-ai": "18.4.0",
53
- "@f5xc-salesdemos/pi-natives": "18.4.0",
54
- "@f5xc-salesdemos/pi-tui": "18.4.0",
55
- "@f5xc-salesdemos/pi-utils": "18.4.0",
50
+ "@f5xc-salesdemos/xcsh-stats": "18.4.1",
51
+ "@f5xc-salesdemos/pi-agent-core": "18.4.1",
52
+ "@f5xc-salesdemos/pi-ai": "18.4.1",
53
+ "@f5xc-salesdemos/pi-natives": "18.4.1",
54
+ "@f5xc-salesdemos/pi-tui": "18.4.1",
55
+ "@f5xc-salesdemos/pi-utils": "18.4.1",
56
56
  "@sinclair/typebox": "^0.34",
57
57
  "@xterm/headless": "^6.0",
58
58
  "ajv": "^8.18",
@@ -17,17 +17,17 @@ export interface BuildInfo {
17
17
  }
18
18
 
19
19
  export const BUILD_INFO: BuildInfo = {
20
- "version": "18.4.0",
21
- "commit": "f388891f65f5ccdae8bb220c9471768d8fbc58b7",
22
- "shortCommit": "f388891",
20
+ "version": "18.4.1",
21
+ "commit": "9518fb720214d6c2832965e94a7ae858ac302c57",
22
+ "shortCommit": "9518fb7",
23
23
  "branch": "main",
24
- "tag": "v18.4.0",
25
- "commitDate": "2026-04-21T04:54:23Z",
26
- "buildDate": "2026-04-21T05:21:37.774Z",
24
+ "tag": "v18.4.1",
25
+ "commitDate": "2026-04-21T06:41:15Z",
26
+ "buildDate": "2026-04-21T07:03:57.574Z",
27
27
  "dirty": false,
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/f388891f65f5ccdae8bb220c9471768d8fbc58b7",
32
- "releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v18.4.0"
31
+ "commitUrl": "https://github.com/f5xc-salesdemos/xcsh/commit/9518fb720214d6c2832965e94a7ae858ac302c57",
32
+ "releaseUrl": "https://github.com/f5xc-salesdemos/xcsh/releases/tag/v18.4.1"
33
33
  };
@@ -1,17 +1,16 @@
1
1
  import { Container, Markdown, padding, Spacer, visibleWidth } from "@f5xc-salesdemos/pi-tui";
2
2
  import { getMarkdownTheme, theme } from "../../modes/theme/theme";
3
3
 
4
- // OSC 133 shell integration: marks prompt zones for terminal multiplexers
5
- const OSC133_ZONE_START = "\x1b]133;A\x07";
6
- const OSC133_ZONE_END = "\x1b]133;B\x07";
7
- const OSC133_ZONE_FINAL = "\x1b]133;C\x07";
8
-
9
4
  // U+2503 BOX DRAWINGS HEAVY VERTICAL — continuation bar on wrapped lines.
10
5
  const CONTINUATION_BAR = "┃";
11
6
  // Markdown child uses paddingX=1 and clamps contentWidth>=1, so its minimum
12
7
  // render output is 3 terminal cells. Anything narrower than prefix+3 would
13
8
  // overflow the requested width — bail out instead.
14
9
  const MIN_MARKDOWN_WIDTH = 3;
10
+ // Leading gutter reserved for sibling GutterBlock indicators (● etc.) so the
11
+ // π / ┃ accent bar aligns with content text rather than sitting at column 0.
12
+ const GUTTER_WIDTH = 2;
13
+ const GUTTER_PAD = " ";
15
14
 
16
15
  /**
17
16
  * Renders a user message as an F5-branded admonition block: pi icon on the
@@ -24,7 +23,7 @@ export class UserMessageComponent extends Container {
24
23
  super();
25
24
  const color = synthetic
26
25
  ? (value: string) => theme.fg("dim", value)
27
- : (value: string) => theme.fg("userMessageText", value);
26
+ : (value: string) => `\x1b[3m${theme.fg("userMessageText", value)}\x1b[23m`;
28
27
  this.addChild(new Spacer(1));
29
28
  this.addChild(new Markdown(text, 1, 0, getMarkdownTheme(), { color }));
30
29
  }
@@ -36,7 +35,7 @@ export class UserMessageComponent extends Container {
36
35
  // glyph and ASCII "pi" are 2 cols. Measure both and reserve the
37
36
  // larger so every content line leaves room for either shape.
38
37
  const prefixWidth = Math.max(visibleWidth(piPrefix), visibleWidth(contPrefix));
39
- const innerWidth = width - prefixWidth;
38
+ const innerWidth = width - GUTTER_WIDTH - prefixWidth;
40
39
  if (innerWidth < MIN_MARKDOWN_WIDTH) {
41
40
  return [];
42
41
  }
@@ -57,13 +56,10 @@ export class UserMessageComponent extends Container {
57
56
  const content = raw.slice(firstContent).map((line, i) => {
58
57
  const prefix = theme.fg("border", i === 0 ? piPrefix : contPrefix);
59
58
  const combined = prefix + line;
60
- const pad = Math.max(0, width - visibleWidth(combined));
61
- return theme.bg("userMessageBg", combined + padding(pad));
59
+ const pad = Math.max(0, width - GUTTER_WIDTH - visibleWidth(combined));
60
+ return GUTTER_PAD + theme.bg("userMessageBg", combined + padding(pad));
62
61
  });
63
62
 
64
- content[0] = OSC133_ZONE_START + content[0];
65
- content[content.length - 1] = content[content.length - 1] + OSC133_ZONE_END + OSC133_ZONE_FINAL;
66
-
67
63
  return [...leading, ...content];
68
64
  }
69
65
  }