brosh 0.2.2 → 0.2.3

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.
Files changed (42) hide show
  1. package/README.github.md +169 -0
  2. package/README.md +18 -141
  3. package/README.npm.md +58 -0
  4. package/dist/lib.d.ts +1 -1
  5. package/dist/lib.d.ts.map +1 -1
  6. package/dist/lib.js +1 -1
  7. package/dist/lib.js.map +1 -1
  8. package/dist/terminal/index.d.ts +1 -1
  9. package/dist/terminal/index.d.ts.map +1 -1
  10. package/dist/terminal/index.js +1 -1
  11. package/dist/terminal/index.js.map +1 -1
  12. package/dist/terminal/session.d.ts +14 -1
  13. package/dist/terminal/session.d.ts.map +1 -1
  14. package/dist/terminal/session.js +263 -78
  15. package/dist/terminal/session.js.map +1 -1
  16. package/package.json +7 -4
  17. package/packages/desktop-electron/build/afterInstall-linux.sh +4 -0
  18. package/packages/desktop-electron/build/afterPack.cjs +29 -19
  19. package/packages/desktop-electron/build/entitlements.mac.inherit.plist +14 -0
  20. package/packages/desktop-electron/build/entitlements.mac.plist +16 -0
  21. package/packages/desktop-electron/package-lock.json +666 -165
  22. package/packages/desktop-electron/package.json +53 -14
  23. package/packages/desktop-electron/scripts/bundle-main.mjs +97 -0
  24. package/packages/desktop-electron/scripts/bytecode-compiler.cjs +3 -0
  25. package/packages/desktop-electron/scripts/fix-dev-entitlements.js +56 -0
  26. package/packages/desktop-electron/vite.config.ts +13 -0
  27. package/packaging/aur/.SRCINFO +20 -0
  28. package/packaging/aur/PKGBUILD +26 -0
  29. package/vendor/xterm-headless-5.5.0.tgz +0 -0
  30. package/vendor/xterm-xterm-5.5.0.tgz +0 -0
  31. package/website/CNAME +1 -0
  32. package/website/assets/images/.gitkeep +0 -0
  33. package/website/assets/videos/.gitkeep +0 -0
  34. package/website/css/styles.css +735 -0
  35. package/website/gpg.key +37 -0
  36. package/website/index.html +314 -0
  37. package/website/install.sh.asc +16 -0
  38. package/website/js/main.js +293 -0
  39. package/website/rpm/brosh.repo +6 -0
  40. package/website/uninstall.sh +10 -0
  41. package/packages/desktop-electron/tests/main/error-triage/buildTriagePrompt.test.ts +0 -133
  42. package/packages/desktop-electron/tests/main/error-triage/parseTriageResponse.test.ts +0 -123
@@ -5,28 +5,36 @@ import * as path from "path";
5
5
  import { execSync } from "child_process";
6
6
  import xtermHeadless from "@xterm/headless";
7
7
  const { Terminal } = xtermHeadless;
8
+ import serializeAddon from "@xterm/addon-serialize";
9
+ const { SerializeAddon } = serializeAddon;
8
10
  import { getDefaultShell } from "../utils/platform.js";
9
11
  import { setEnv } from "../utils/env.js";
10
12
  /**
11
13
  * Get system locale like Hyper does.
12
14
  * On macOS, reads from defaults. On Linux, checks environment.
15
+ * Result is cached at module level so the execSync only runs once.
13
16
  */
14
- function getSystemLocale() {
17
+ let cachedSystemLocale = null;
18
+ export function getSystemLocale() {
19
+ if (cachedSystemLocale !== null)
20
+ return cachedSystemLocale;
15
21
  // Check if already set to UTF-8
16
22
  const lang = process.env.LANG || "";
17
23
  if (lang.toLowerCase().includes("utf-8") || lang.toLowerCase().includes("utf8")) {
24
+ cachedSystemLocale = lang;
18
25
  return lang;
19
26
  }
20
27
  try {
21
28
  if (process.platform === "darwin") {
22
- // macOS: read from system preferences
29
+ // macOS: read from system preferences (no user input, safe static command)
23
30
  const output = execSync("defaults read -g AppleLocale 2>/dev/null", {
24
31
  encoding: "utf8",
25
32
  timeout: 1000,
26
33
  }).trim();
27
34
  if (output) {
28
35
  // Convert format: en_US -> en_US.UTF-8
29
- return `${output.replace(/-/g, "_")}.UTF-8`;
36
+ cachedSystemLocale = `${output.replace(/-/g, "_")}.UTF-8`;
37
+ return cachedSystemLocale;
30
38
  }
31
39
  }
32
40
  }
@@ -34,10 +42,182 @@ function getSystemLocale() {
34
42
  // Fall through to default
35
43
  }
36
44
  // Default to en_US.UTF-8
37
- return "en_US.UTF-8";
45
+ cachedSystemLocale = "en_US.UTF-8";
46
+ return cachedSystemLocale;
38
47
  }
39
48
  // Custom prompt indicator for brosh (nf-md-palm_tree from Nerd Fonts, U+F1055)
40
49
  const PROMPT_INDICATOR = "\uDB84\uDC55";
50
+ // ── Pre-warm caches ──────────────────────────────────────────────────
51
+ // These module-level caches store expensive-to-compute values so that
52
+ // the first TerminalSession.create() after app launch is fast.
53
+ /** Cached base env (process.env minus npm_* and optionally LC_*) */
54
+ let cachedBaseEnv = null;
55
+ function getFilteredBaseEnv(filterLcVars) {
56
+ if (cachedBaseEnv && cachedBaseEnv.filterLc === filterLcVars) {
57
+ return { ...cachedBaseEnv.env };
58
+ }
59
+ const baseEnv = {};
60
+ for (const [key, value] of Object.entries(process.env)) {
61
+ if (filterLcVars && key.startsWith("LC_"))
62
+ continue;
63
+ if (key.startsWith("npm_"))
64
+ continue;
65
+ if (value !== undefined)
66
+ baseEnv[key] = value;
67
+ }
68
+ cachedBaseEnv = { filterLc: filterLcVars, env: baseEnv };
69
+ return { ...baseEnv };
70
+ }
71
+ /** Pre-warmed zsh ZDOTDIR path (written once, reused across sessions) */
72
+ let preWarmedZdotdir = null;
73
+ /** Pre-warmed bash rcfile path */
74
+ let preWarmedBashRc = null;
75
+ /**
76
+ * Pre-write shell RC files to a stable temp path so initialize() can skip
77
+ * the synchronous fs.writeFileSync calls on the hot path.
78
+ */
79
+ function preWarmRcFiles() {
80
+ const defaultShell = path.basename(getDefaultShell());
81
+ if (defaultShell === "zsh" && !preWarmedZdotdir) {
82
+ const userZdotdir = process.env.ZDOTDIR || os.homedir();
83
+ const zdotdir = path.join(os.tmpdir(), `brosh-zsh-${process.pid}`);
84
+ fs.mkdirSync(zdotdir, { recursive: true });
85
+ // .zshenv
86
+ fs.writeFileSync(path.join(zdotdir, ".zshenv"), `typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"\n` +
87
+ `export ZDOTDIR="${userZdotdir}"\n` +
88
+ `HISTFILE="${userZdotdir}/.zsh_history"\n` +
89
+ `[[ -f "${userZdotdir}/.zshenv" ]] && source "${userZdotdir}/.zshenv"\n` +
90
+ `export ZDOTDIR="$__BROSH_WRAPPER_ZDOTDIR"\n` +
91
+ `unset __BROSH_WRAPPER_ZDOTDIR\n` +
92
+ `[[ -z "$HISTFILE" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
93
+ `[[ "$HISTFILE" == "$ZDOTDIR/.zsh_history" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n`);
94
+ // .zprofile
95
+ fs.writeFileSync(path.join(zdotdir, ".zprofile"), `typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"\n` +
96
+ `export ZDOTDIR="${userZdotdir}"\n` +
97
+ `[[ -f "${userZdotdir}/.zprofile" ]] && source "${userZdotdir}/.zprofile"\n` +
98
+ `export ZDOTDIR="$__BROSH_WRAPPER_ZDOTDIR"\n` +
99
+ `unset __BROSH_WRAPPER_ZDOTDIR\n` +
100
+ `[[ -z "$HISTFILE" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
101
+ `[[ "$HISTFILE" == "$ZDOTDIR/.zsh_history" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n`);
102
+ // .zshrc
103
+ const zshrcContent = `
104
+ # Keep wrapper ZDOTDIR so brosh startup files still run.
105
+ typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"
106
+
107
+ # Make user config see the real ZDOTDIR.
108
+ # Many zsh configs derive HISTFILE from ZDOTDIR.
109
+ export ZDOTDIR="${userZdotdir}"
110
+ [[ -f "${userZdotdir}/.zshrc" ]] && source "${userZdotdir}/.zshrc"
111
+
112
+ # Restore wrapper ZDOTDIR for the remainder of startup.
113
+ export ZDOTDIR="$__BROSH_WRAPPER_ZDOTDIR"
114
+ unset __BROSH_WRAPPER_ZDOTDIR
115
+
116
+ # If user config left HISTFILE empty or pointing to wrapper temp ZDOTDIR,
117
+ # reset it to the user's default history file.
118
+ [[ -z "$HISTFILE" ]] && HISTFILE="${userZdotdir}/.zsh_history"
119
+ [[ "$HISTFILE" == "$ZDOTDIR/.zsh_history" ]] && HISTFILE="${userZdotdir}/.zsh_history"
120
+
121
+ # HISTFILE is set in .zshenv (before zsh initializes history).
122
+ # Set size defaults here; user's .zshrc can override.
123
+ : \${HISTSIZE:=50000}
124
+ : \${SAVEHIST:=10000}
125
+
126
+ # OSC 133 shell integration (command marks for error detection)
127
+ # A = prompt start, C = output start, D;exitcode = command finished
128
+ # Uses add-zsh-hook so it doesn't interfere with user's hooks
129
+ __brosh_cmd_executed=""
130
+ __brosh_precmd() {
131
+ local exit_code=$?
132
+ if [[ -n "$__brosh_cmd_executed" ]]; then
133
+ printf '\\e]133;D;%d\\a' "$exit_code"
134
+ fi
135
+ __brosh_cmd_executed=""
136
+ printf '\\e]133;A\\a'
137
+ }
138
+ __brosh_preexec() {
139
+ __brosh_cmd_executed=1
140
+ printf '\\e]133;C\\a'
141
+ }
142
+ autoload -Uz add-zsh-hook
143
+ add-zsh-hook precmd __brosh_precmd
144
+ add-zsh-hook preexec __brosh_preexec
145
+ `;
146
+ fs.writeFileSync(path.join(zdotdir, ".zshrc"), zshrcContent);
147
+ // .zlogin
148
+ fs.writeFileSync(path.join(zdotdir, ".zlogin"), `typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"\n` +
149
+ `export ZDOTDIR="${userZdotdir}"\n` +
150
+ `[[ -f "${userZdotdir}/.zlogin" ]] && source "${userZdotdir}/.zlogin"\n` +
151
+ `export ZDOTDIR="$__BROSH_WRAPPER_ZDOTDIR"\n` +
152
+ `unset __BROSH_WRAPPER_ZDOTDIR\n` +
153
+ `[[ -z "$HISTFILE" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
154
+ `[[ "$HISTFILE" == "$ZDOTDIR/.zsh_history" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
155
+ `[[ -s "\$HISTFILE" ]] && fc -R "\$HISTFILE"\n` +
156
+ `export ZDOTDIR="${userZdotdir}"\n`);
157
+ preWarmedZdotdir = zdotdir;
158
+ }
159
+ if ((defaultShell === "bash" || defaultShell === "sh") && !preWarmedBashRc) {
160
+ const homeDir = os.homedir();
161
+ const bashRcContent = `
162
+ # Source user's login profile for PATH, aliases, etc.
163
+ [ -f "${homeDir}/.bash_profile" ] && source "${homeDir}/.bash_profile" || {
164
+ [ -f "${homeDir}/.bash_login" ] && source "${homeDir}/.bash_login" || {
165
+ [ -f "${homeDir}/.profile" ] && source "${homeDir}/.profile"
166
+ }
167
+ }
168
+ # Source .bashrc if not already sourced by the profile above
169
+ [ -f "${homeDir}/.bashrc" ] && source "${homeDir}/.bashrc"
170
+
171
+ # Emit OSC 7 (current working directory) on every prompt
172
+ # This lets the terminal track cwd changes for status bar badges
173
+ __brosh_osc7() {
174
+ printf '\\e]7;file://%s%s\\e\\\\' "$HOSTNAME" "$PWD"
175
+ }
176
+
177
+ # OSC 133 shell integration (command marks for error detection)
178
+ # A = prompt start, C = output start, D;exitcode = command finished
179
+ __brosh_cmd_executed=""
180
+ __brosh_precmd() {
181
+ local __brosh_exit=$?
182
+ if [[ -n "$__brosh_cmd_executed" ]]; then
183
+ printf '\\e]133;D;%d\\a' "$__brosh_exit"
184
+ __brosh_cmd_executed=""
185
+ fi
186
+ printf '\\e]133;A\\a'
187
+ }
188
+ PROMPT_COMMAND="__brosh_precmd;__brosh_osc7\${PROMPT_COMMAND:+;\\$PROMPT_COMMAND}"
189
+
190
+ # DEBUG trap for preexec (marks output start when command begins executing)
191
+ trap '
192
+ if [[ -z "$__brosh_cmd_executed" && "$BASH_COMMAND" != "__brosh_precmd" && "$BASH_COMMAND" != "__brosh_osc7" ]]; then
193
+ __brosh_cmd_executed=1
194
+ printf '"'"'\\e]133;C\\a'"'"'
195
+ fi
196
+ ' DEBUG
197
+ `;
198
+ const rcPath = path.join(os.tmpdir(), `brosh-bashrc-${process.pid}`);
199
+ fs.writeFileSync(rcPath, bashRcContent);
200
+ preWarmedBashRc = rcPath;
201
+ }
202
+ }
203
+ /**
204
+ * Pre-warm terminal session resources (locale, RC files, env filtering).
205
+ * Call this early (e.g. while the mode selection modal is visible) so the
206
+ * first createSession() is fast.
207
+ */
208
+ export function preWarmSession(options) {
209
+ const nativeShell = options?.nativeShell ?? true;
210
+ const setLocaleEnv = options?.setLocaleEnv ?? false;
211
+ // Trigger locale cache (may execSync "defaults read")
212
+ getSystemLocale();
213
+ // Pre-write RC files for the default shell
214
+ if (nativeShell) {
215
+ preWarmRcFiles();
216
+ }
217
+ // Pre-filter env vars
218
+ const filterLc = nativeShell && !setLocaleEnv;
219
+ getFilteredBaseEnv(filterLc);
220
+ }
41
221
  /**
42
222
  * Terminal session that combines node-pty with xterm.js headless
43
223
  * for full terminal emulation
@@ -45,6 +225,7 @@ const PROMPT_INDICATOR = "\uDB84\uDC55";
45
225
  export class TerminalSession {
46
226
  ptyProcess;
47
227
  terminal;
228
+ serializeAddon;
48
229
  disposed = false;
49
230
  dataListeners = [];
50
231
  exitListeners = [];
@@ -279,6 +460,8 @@ ${bannerCmd}
279
460
  scrollback: 1000,
280
461
  allowProposedApi: true,
281
462
  });
463
+ this.serializeAddon = new SerializeAddon();
464
+ this.terminal.loadAddon(this.serializeAddon);
282
465
  // Determine shell type and set up custom prompt (unless nativeShell is enabled)
283
466
  const shellName = path.basename(shell);
284
467
  let args = [];
@@ -291,8 +474,14 @@ ${bannerCmd}
291
474
  if (shellName === "bash" || shellName === "sh") {
292
475
  // Bash: use --rcfile with a temp file that sources the user's profile,
293
476
  // injects OSC 7 (cwd reporting) and OSC 133 (command marks for error detection)
294
- const homeDir = os.homedir();
295
- const bashRcContent = `
477
+ if (preWarmedBashRc && fs.existsSync(preWarmedBashRc)) {
478
+ // Reuse pre-warmed RC file
479
+ this.rcFile = preWarmedBashRc;
480
+ preWarmedBashRc = null; // consumed — next session will write fresh
481
+ }
482
+ else {
483
+ const homeDir = os.homedir();
484
+ const bashRcContent = `
296
485
  # Source user's login profile for PATH, aliases, etc.
297
486
  [ -f "${homeDir}/.bash_profile" ] && source "${homeDir}/.bash_profile" || {
298
487
  [ -f "${homeDir}/.bash_login" ] && source "${homeDir}/.bash_login" || {
@@ -329,40 +518,44 @@ trap '
329
518
  fi
330
519
  ' DEBUG
331
520
  `;
332
- this.rcFile = path.join(os.tmpdir(), `brosh-bashrc-${process.pid}-${Date.now()}`);
333
- fs.writeFileSync(this.rcFile, bashRcContent);
521
+ this.rcFile = path.join(os.tmpdir(), `brosh-bashrc-${process.pid}`);
522
+ fs.writeFileSync(this.rcFile, bashRcContent);
523
+ }
334
524
  args = ["--rcfile", this.rcFile];
335
525
  }
336
526
  else if (shellName === "zsh") {
337
527
  // Zsh: create ZDOTDIR wrapper that sources user's config and adds
338
528
  // OSC 133 shell integration hooks (non-destructive via add-zsh-hook)
339
- const userZdotdir = process.env.ZDOTDIR || os.homedir();
340
- this.zdotdir = path.join(os.tmpdir(), `brosh-zsh-${process.pid}-${Date.now()}`);
341
- fs.mkdirSync(this.zdotdir, { recursive: true });
342
- console.log(`[session] Created ZDOTDIR: ${this.zdotdir}, user ZDOTDIR: ${userZdotdir}`);
343
- // .zshenv - runs for all zsh invocations (earliest rc file)
344
- // Set HISTFILE here before zsh initializes history. Since ZDOTDIR is a
345
- // temp dir, zsh's default HISTFILE ($ZDOTDIR/.zsh_history) would point
346
- // to a nonexistent file. Must be set before user's .zshenv in case they
347
- // rely on the default.
348
- fs.writeFileSync(path.join(this.zdotdir, ".zshenv"), `typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"\n` +
349
- `export ZDOTDIR="${userZdotdir}"\n` +
350
- `HISTFILE="${userZdotdir}/.zsh_history"\n` +
351
- `[[ -f "${userZdotdir}/.zshenv" ]] && source "${userZdotdir}/.zshenv"\n` +
352
- `export ZDOTDIR="$__BROSH_WRAPPER_ZDOTDIR"\n` +
353
- `unset __BROSH_WRAPPER_ZDOTDIR\n` +
354
- `[[ -z "$HISTFILE" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
355
- `[[ "$HISTFILE" == "$ZDOTDIR/.zsh_history" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n`);
356
- // .zprofile - runs for login shells (before .zshrc)
357
- fs.writeFileSync(path.join(this.zdotdir, ".zprofile"), `typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"\n` +
358
- `export ZDOTDIR="${userZdotdir}"\n` +
359
- `[[ -f "${userZdotdir}/.zprofile" ]] && source "${userZdotdir}/.zprofile"\n` +
360
- `export ZDOTDIR="$__BROSH_WRAPPER_ZDOTDIR"\n` +
361
- `unset __BROSH_WRAPPER_ZDOTDIR\n` +
362
- `[[ -z "$HISTFILE" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
363
- `[[ "$HISTFILE" == "$ZDOTDIR/.zsh_history" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n`);
364
- // .zshrc - runs for interactive shells
365
- const zshrcContent = `
529
+ if (preWarmedZdotdir && fs.existsSync(preWarmedZdotdir)) {
530
+ // Reuse pre-warmed ZDOTDIR
531
+ this.zdotdir = preWarmedZdotdir;
532
+ preWarmedZdotdir = null; // consumed next session will write fresh
533
+ console.log(`[session] Reusing pre-warmed ZDOTDIR: ${this.zdotdir}`);
534
+ }
535
+ else {
536
+ const userZdotdir = process.env.ZDOTDIR || os.homedir();
537
+ this.zdotdir = path.join(os.tmpdir(), `brosh-zsh-${process.pid}`);
538
+ fs.mkdirSync(this.zdotdir, { recursive: true });
539
+ console.log(`[session] Created ZDOTDIR: ${this.zdotdir}, user ZDOTDIR: ${userZdotdir}`);
540
+ // .zshenv - runs for all zsh invocations (earliest rc file)
541
+ fs.writeFileSync(path.join(this.zdotdir, ".zshenv"), `typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"\n` +
542
+ `export ZDOTDIR="${userZdotdir}"\n` +
543
+ `HISTFILE="${userZdotdir}/.zsh_history"\n` +
544
+ `[[ -f "${userZdotdir}/.zshenv" ]] && source "${userZdotdir}/.zshenv"\n` +
545
+ `export ZDOTDIR="$__BROSH_WRAPPER_ZDOTDIR"\n` +
546
+ `unset __BROSH_WRAPPER_ZDOTDIR\n` +
547
+ `[[ -z "$HISTFILE" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
548
+ `[[ "$HISTFILE" == "$ZDOTDIR/.zsh_history" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n`);
549
+ // .zprofile - runs for login shells (before .zshrc)
550
+ fs.writeFileSync(path.join(this.zdotdir, ".zprofile"), `typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"\n` +
551
+ `export ZDOTDIR="${userZdotdir}"\n` +
552
+ `[[ -f "${userZdotdir}/.zprofile" ]] && source "${userZdotdir}/.zprofile"\n` +
553
+ `export ZDOTDIR="$__BROSH_WRAPPER_ZDOTDIR"\n` +
554
+ `unset __BROSH_WRAPPER_ZDOTDIR\n` +
555
+ `[[ -z "$HISTFILE" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
556
+ `[[ "$HISTFILE" == "$ZDOTDIR/.zsh_history" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n`);
557
+ // .zshrc - runs for interactive shells
558
+ const zshrcContent = `
366
559
  # Keep wrapper ZDOTDIR so brosh startup files still run.
367
560
  typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"
368
561
 
@@ -405,20 +598,20 @@ autoload -Uz add-zsh-hook
405
598
  add-zsh-hook precmd __brosh_precmd
406
599
  add-zsh-hook preexec __brosh_preexec
407
600
  `;
408
- fs.writeFileSync(path.join(this.zdotdir, ".zshrc"), zshrcContent);
409
- // .zlogin - runs for login shells (after .zshrc) — last rc file
410
- // Force-read history here, after restoring the user's ZDOTDIR context.
411
- fs.writeFileSync(path.join(this.zdotdir, ".zlogin"), `typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"\n` +
412
- `export ZDOTDIR="${userZdotdir}"\n` +
413
- `[[ -f "${userZdotdir}/.zlogin" ]] && source "${userZdotdir}/.zlogin"\n` +
414
- `export ZDOTDIR="$__BROSH_WRAPPER_ZDOTDIR"\n` +
415
- `unset __BROSH_WRAPPER_ZDOTDIR\n` +
416
- `[[ -z "$HISTFILE" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
417
- `[[ "$HISTFILE" == "$ZDOTDIR/.zsh_history" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
418
- `[[ -s "\$HISTFILE" ]] && fc -R "\$HISTFILE"\n` +
419
- // Keep runtime ZDOTDIR on the user's path so prompt hooks/plugins
420
- // that derive HISTFILE from ZDOTDIR don't switch back to wrapper temp dir.
421
- `export ZDOTDIR="${userZdotdir}"\n`);
601
+ fs.writeFileSync(path.join(this.zdotdir, ".zshrc"), zshrcContent);
602
+ // .zlogin - runs for login shells (after .zshrc) — last rc file
603
+ fs.writeFileSync(path.join(this.zdotdir, ".zlogin"), `typeset -g __BROSH_WRAPPER_ZDOTDIR="$ZDOTDIR"\n` +
604
+ `export ZDOTDIR="${userZdotdir}"\n` +
605
+ `[[ -f "${userZdotdir}/.zlogin" ]] && source "${userZdotdir}/.zlogin"\n` +
606
+ `export ZDOTDIR="$__BROSH_WRAPPER_ZDOTDIR"\n` +
607
+ `unset __BROSH_WRAPPER_ZDOTDIR\n` +
608
+ `[[ -z "$HISTFILE" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
609
+ `[[ "$HISTFILE" == "$ZDOTDIR/.zsh_history" ]] && HISTFILE="${userZdotdir}/.zsh_history"\n` +
610
+ `[[ -s "\$HISTFILE" ]] && fc -R "\$HISTFILE"\n` +
611
+ // Keep runtime ZDOTDIR on the user's path so prompt hooks/plugins
612
+ // that derive HISTFILE from ZDOTDIR don't switch back to wrapper temp dir.
613
+ `export ZDOTDIR="${userZdotdir}"\n`);
614
+ }
422
615
  env.ZDOTDIR = this.zdotdir;
423
616
  args = ["--login"];
424
617
  }
@@ -459,22 +652,8 @@ add-zsh-hook preexec __brosh_preexec
459
652
  // SSH forwarding issues (SSH's SendEnv LC_* forwards these to remote servers
460
653
  // that may not have the same locales). We set LANG which is sufficient for
461
654
  // local UTF-8 support - the shell derives other locale settings from LANG.
462
- const baseEnv = {};
463
- const filterLcVars = options.nativeShell && !options.setLocaleEnv;
464
- for (const [key, value] of Object.entries(process.env)) {
465
- // Skip LC_* variables when filtering is enabled
466
- if (filterLcVars && key.startsWith("LC_")) {
467
- continue;
468
- }
469
- // Strip npm internal variables — these leak from Electron's parent process
470
- // (npm run dev/start) and break tools like nvm that check npm_config_prefix
471
- if (key.startsWith("npm_")) {
472
- continue;
473
- }
474
- if (value !== undefined) {
475
- baseEnv[key] = value;
476
- }
477
- }
655
+ const filterLcVars = !!(options.nativeShell && !options.setLocaleEnv);
656
+ const baseEnv = getFilteredBaseEnv(filterLcVars);
478
657
  // Spawn PTY process
479
658
  this.ptyProcess = pty.spawn(spawnCmd, spawnArgs, {
480
659
  name: "xterm-256color",
@@ -528,26 +707,32 @@ add-zsh-hook preexec __brosh_preexec
528
707
  this.ptyProcess.write(data);
529
708
  }
530
709
  /**
531
- * Get the current terminal buffer content as plain text
710
+ * Get the current terminal buffer content.
711
+ * Uses the serialize addon to preserve ANSI formatting (colors, bold, etc.)
712
+ * so that rehydrated terminals look correct.
532
713
  */
533
714
  getContent() {
534
715
  if (this.disposed) {
535
716
  throw new Error("Terminal session has been disposed");
536
717
  }
537
- const buffer = this.terminal.buffer.active;
538
- const lines = [];
539
- // Get all lines from the buffer (including scrollback)
540
- for (let i = 0; i < buffer.length; i++) {
541
- const line = buffer.getLine(i);
542
- if (line) {
543
- lines.push(line.translateToString(true));
544
- }
718
+ try {
719
+ return this.serializeAddon.serialize();
545
720
  }
546
- // Trim trailing empty lines
547
- while (lines.length > 0 && lines[lines.length - 1].trim() === "") {
548
- lines.pop();
721
+ catch {
722
+ // Fallback to plain text if serialize fails
723
+ const buffer = this.terminal.buffer.active;
724
+ const lines = [];
725
+ for (let i = 0; i < buffer.length; i++) {
726
+ const line = buffer.getLine(i);
727
+ if (line) {
728
+ lines.push(line.translateToString(true));
729
+ }
730
+ }
731
+ while (lines.length > 0 && lines[lines.length - 1].trim() === "") {
732
+ lines.pop();
733
+ }
734
+ return lines.join("\n");
549
735
  }
550
- return lines.join("\n");
551
736
  }
552
737
  /**
553
738
  * Get only the visible viewport content
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/terminal/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/terminal/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "brosh",
3
- "version": "0.2.2",
4
- "description": "A modern terminal emulator with built-in AI integration via MCP",
3
+ "version": "0.2.3",
4
+ "description": "Terminal MCP bridge for AI-powered development",
5
5
  "author": "Ellery Familia",
6
6
  "repository": {
7
7
  "type": "git",
@@ -28,12 +28,15 @@
28
28
  "scripts": {
29
29
  "build": "tsc",
30
30
  "dev": "tsx src/index.ts",
31
- "prepare": "npm run build"
31
+ "prepare": "npm run build",
32
+ "prepack": "mv README.md README.github.md && cp README.npm.md README.md",
33
+ "postpack": "mv README.github.md README.md"
32
34
  },
33
35
  "dependencies": {
34
36
  "@anthropic-ai/sandbox-runtime": "^0.0.32",
35
37
  "@modelcontextprotocol/sdk": "^1.0.0",
36
- "@xterm/headless": "^5.3.0",
38
+ "@xterm/addon-serialize": "^0.14.0",
39
+ "@xterm/headless": "file:vendor/xterm-headless-5.5.0.tgz",
37
40
  "ink": "^5.0.1",
38
41
  "node-pty": "^1.2.0-beta.8",
39
42
  "react": "^18.3.1",
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ # Fix chrome-sandbox SUID permissions for Electron
3
+ chown root:root /opt/brosh/chrome-sandbox 2>/dev/null || true
4
+ chmod 4755 /opt/brosh/chrome-sandbox 2>/dev/null || true