brosh 0.1.0 → 0.1.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.
@@ -0,0 +1,193 @@
1
+ <p align="center">
2
+ <strong>The AI-native terminal. Built for Claude coders.</strong>
3
+ </p>
4
+
5
+ <p align="center">
6
+ <a href="https://github.com/elleryfamilia/brosh/releases"><img src="https://img.shields.io/github/v/release/elleryfamilia/brosh" alt="Release"></a>
7
+ <a href="LICENSE"><img src="https://img.shields.io/github/license/elleryfamilia/brosh" alt="License: MIT"></a>
8
+ <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-blue" alt="Platforms">
9
+ </p>
10
+
11
+ ![brosh desktop](docs/images/brosh_startscreen.png)
12
+
13
+ ## Install
14
+
15
+ **macOS (Homebrew):**
16
+
17
+ ```bash
18
+ brew install --cask elleryfamilia/brosh/brosh
19
+ ```
20
+
21
+ **Ubuntu/Debian:**
22
+
23
+ ```bash
24
+ curl -fsSL https://elleryfamilia.github.io/brosh/install.sh | sudo bash
25
+ ```
26
+
27
+ **Arch Linux (AUR):**
28
+
29
+ ```bash
30
+ yay -S brosh-bin
31
+ ```
32
+
33
+ **Direct download:** `.dmg` (macOS) / `.deb` (Linux) from the [releases page](https://github.com/elleryfamilia/brosh/releases).
34
+
35
+ **Build from source:**
36
+
37
+ ```bash
38
+ git clone https://github.com/elleryfamilia/brosh.git
39
+ cd brosh/packages/desktop-electron && npm install && npm run start
40
+ ```
41
+
42
+ **CLI only:** `npm install -g brosh` or `brew install elleryfamilia/brosh/brosh-cli` -- [more install options](./docs/installation.md)
43
+
44
+ ## Features
45
+
46
+ - [**Claude Code integration**](#claude-code-integration) -- Natural language detection, model switching, "Continue in Claude" handoff, built-in MCP server
47
+ - [**Split panes & tabs**](#terminal) -- Horizontal/vertical splits with draggable dividers, multi-tab interface
48
+ - [**Git sidebar**](#git-integration) -- Visual commit graph, file change tracking, Monaco diff editor
49
+ - [**Sandbox mode**](#sandbox-mode) -- Restrict filesystem and network access per session
50
+ - [**Themes & customization**](#terminal) -- 9 themes, 25+ fonts, cursor styles, window opacity, scrollback
51
+ - [**MCP tools**](#mcp-integration) -- Give Claude Code direct access to type, read, and screenshot your terminal
52
+ - [**Session recording**](#developer-tools) -- Record to asciicast format, play back with asciinema
53
+ - **Cross-platform** -- macOS, Linux
54
+
55
+ ---
56
+
57
+ ## Claude Code Integration
58
+
59
+ brosh is purpose-built for working with Claude Code. Every part of the terminal is designed to make AI-assisted development seamless.
60
+
61
+ - **Natural language detection** -- An ML classifier distinguishes commands from questions in real time. Type `git push` and it runs. Type `how do I rebase onto main?` and Claude answers.
62
+ - **Model switching** -- Switch between Sonnet, Opus, and Haiku from the status bar.
63
+ - **MCP server built in** -- Claude Code connects over MCP and can see your terminal, run commands, and read output. No extra setup.
64
+ - **Continue in Claude** -- Start a conversation in the terminal and seamlessly continue it in the Claude Code CLI with full context.
65
+ - **Smart status bar** -- Git branch, active Claude model, MCP connection status, and session info at a glance.
66
+
67
+ ![brosh terminal chat](docs/images/terminal_chat.png)
68
+
69
+ ![MCP enabled](docs/images/mcp-enabled2.png)
70
+
71
+ ## Terminal
72
+
73
+ - Multi-tab interface with split panes (horizontal and vertical)
74
+ - Draggable panel dividers for custom layouts
75
+ - 9 built-in themes and 25+ fonts
76
+ - Cursor style options, window opacity, and configurable scrollback
77
+ - Find bar for searching terminal output
78
+
79
+ ## Git Integration
80
+
81
+ Built-in git sidebar with visual commit graph, file change tracking, and a Monaco-powered diff editor.
82
+
83
+ ![git sidebar](docs/images/git_sidebar.png)
84
+
85
+ Click any changed file to open a full diff view:
86
+
87
+ ![git diff view](docs/images/git_sidebar_diff.png)
88
+
89
+ ## Sandbox Mode
90
+
91
+ Choose between standard and sandboxed terminal sessions at launch. Sandbox mode restricts filesystem and network access so Claude can only touch what you allow.
92
+
93
+ ![sandbox permissions](docs/images/sandbox_selection2.png)
94
+
95
+ See [docs/sandbox.md](./docs/sandbox.md) for configuration details.
96
+
97
+ ## Developer Tools
98
+
99
+ - Monaco code editor integration
100
+ - Terminal session recording ([asciicast format](./docs/recording.md))
101
+ - Cross-platform: macOS, Linux
102
+
103
+ ## MCP Integration
104
+
105
+ The desktop app runs a built-in MCP server on a Unix socket, giving Claude Code direct access to your terminal session.
106
+
107
+ Add to your Claude Code MCP settings:
108
+
109
+ ```json
110
+ {
111
+ "mcpServers": {
112
+ "terminal": {
113
+ "command": "brosh"
114
+ }
115
+ }
116
+ }
117
+ ```
118
+
119
+ | Tool | Description |
120
+ |------|-------------|
121
+ | `type` | Send text input to the terminal |
122
+ | `sendKey` | Send special keys and key combinations |
123
+ | `getContent` | Retrieve terminal buffer content |
124
+ | `takeScreenshot` | Capture terminal state with metadata |
125
+ | `startRecording` | Start recording terminal output |
126
+ | `stopRecording` | Stop recording and save file |
127
+
128
+ See [docs/tools.md](./docs/tools.md) for the full API reference.
129
+
130
+ ## Keyboard Shortcuts
131
+
132
+ | Shortcut | Action |
133
+ |----------|--------|
134
+ | <kbd>Cmd</kbd>+<kbd>T</kbd> | New tab |
135
+ | <kbd>Cmd</kbd>+<kbd>N</kbd> | New window |
136
+ | <kbd>Cmd</kbd>+<kbd>W</kbd> | Close tab |
137
+ | <kbd>Cmd</kbd>+<kbd>D</kbd> | Split pane vertically |
138
+ | <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>D</kbd> | Split pane horizontally |
139
+ | <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> | Toggle git sidebar |
140
+ | <kbd>Cmd</kbd>+<kbd>F</kbd> | Find in terminal |
141
+ | <kbd>Cmd</kbd>+<kbd>,</kbd> | Settings |
142
+
143
+ ## CLI Mode
144
+
145
+ brosh also works as a standalone CLI terminal and MCP server without the desktop app:
146
+
147
+ ```bash
148
+ brosh # Interactive mode -- shell + MCP server on Unix socket
149
+ brosh --sandbox # With filesystem/network restrictions
150
+ brosh --record # With session recording
151
+ ```
152
+
153
+ See the [docs/](./docs/) folder for CLI flags, recording, and sandbox configuration.
154
+
155
+ ## Development
156
+
157
+ ```bash
158
+ # Core library
159
+ npm install && npm run build
160
+
161
+ # Desktop app
162
+ cd packages/desktop-electron
163
+ npm run dev # Dev mode with hot-reload
164
+ npm run package # Build distributable
165
+ ```
166
+
167
+ ### Linux: Sandbox binaries
168
+
169
+ The desktop app bundles statically-compiled `socat` and `bwrap` (bubblewrap) so sandbox mode works out of the box on any Linux distro. The binaries are built automatically during `npm run package` (via `prepackage`). You just need the build tools installed:
170
+
171
+ ```bash
172
+ # One-time setup (Linux only)
173
+ sudo apt-get install -y meson ninja-build pkg-config libcap-dev
174
+ ```
175
+
176
+ The script fetches the latest source releases from upstream, compiles static binaries, and places them in `resources/bin/`. On macOS the step is a no-op. You can also run it manually with `npm run prepare-sandbox-bins`.
177
+
178
+ ## Documentation
179
+
180
+ - [Overview](./docs/index.md) -- [Installation](./docs/installation.md) -- [Architecture](./docs/architecture.md)
181
+ - [Tools Reference](./docs/tools.md) -- [Configuration](./docs/configuration.md) -- [Examples](./docs/examples.md)
182
+ - [Recording](./docs/recording.md) -- [Sandbox Mode](./docs/sandbox.md)
183
+
184
+ ## Requirements
185
+
186
+ - **Desktop App**: macOS 10.15+, Linux
187
+ - **CLI**: Node.js 18+
188
+
189
+ ## License
190
+
191
+ MIT
192
+
193
+ The Linux desktop build bundles [socat](http://www.dest-unreach.org/socat/) (GPL-2.0) and [bubblewrap](https://github.com/containers/bubblewrap) (LGPL-2.1) as standalone executables for sandbox support. See [`packages/desktop-electron/THIRD-PARTY-NOTICES`](packages/desktop-electron/THIRD-PARTY-NOTICES) for full license texts.
package/README.md CHANGED
@@ -1,98 +1,26 @@
1
- <p align="center">
2
- <strong>The AI-native terminal. Built for Claude coders.</strong>
3
- </p>
1
+ # brosh
4
2
 
5
- <p align="center">
6
- <a href="https://github.com/elleryfamilia/brosh/releases"><img src="https://img.shields.io/github/v/release/elleryfamilia/brosh" alt="Release"></a>
7
- <a href="LICENSE"><img src="https://img.shields.io/github/license/elleryfamilia/brosh" alt="License: MIT"></a>
8
- <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-blue" alt="Platforms">
9
- </p>
3
+ A terminal emulator and MCP server that gives Claude Code direct access to your terminal.
10
4
 
11
- ![brosh desktop](docs/images/brosh_startscreen.png)
5
+ brosh runs a shell inside a PTY with a headless xterm emulator, exposing tools over the [Model Context Protocol](https://modelcontextprotocol.io/) so AI agents can type commands, read output, send key combinations, and take screenshots.
12
6
 
13
7
  ## Install
14
8
 
15
- **Homebrew (macOS):**
16
-
17
9
  ```bash
18
- brew install --cask elleryfamilia/brosh/brosh
10
+ npm install -g brosh
19
11
  ```
20
12
 
21
- **Direct download:** `.dmg` (macOS) / `.AppImage` (Linux) from the [releases page](https://github.com/elleryfamilia/brosh/releases).
22
-
23
- **Build from source:**
13
+ ## CLI Usage
24
14
 
25
15
  ```bash
26
- git clone https://github.com/elleryfamilia/brosh.git
27
- cd brosh/packages/desktop-electron && npm install && npm run start
16
+ brosh # Interactive mode -- shell + MCP server on Unix socket
17
+ brosh --sandbox # With filesystem/network restrictions
18
+ brosh --record # With session recording (asciicast format)
28
19
  ```
29
20
 
30
- **CLI only:** `npm install -g brosh` or `brew install elleryfamilia/brosh/brosh-cli` -- [more install options](./docs/installation.md)
31
-
32
- ## Features
33
-
34
- - [**Claude Code integration**](#claude-code-integration) -- Natural language detection, model switching, "Continue in Claude" handoff, built-in MCP server
35
- - [**Split panes & tabs**](#terminal) -- Horizontal/vertical splits with draggable dividers, multi-tab interface
36
- - [**Git sidebar**](#git-integration) -- Visual commit graph, file change tracking, Monaco diff editor
37
- - [**Sandbox mode**](#sandbox-mode) -- Restrict filesystem and network access per session
38
- - [**Themes & customization**](#terminal) -- 9 themes, 25+ fonts, cursor styles, window opacity, scrollback
39
- - [**MCP tools**](#mcp-integration) -- Give Claude Code direct access to type, read, and screenshot your terminal
40
- - [**Session recording**](#developer-tools) -- Record to asciicast format, play back with asciinema
41
- - **Cross-platform** -- macOS, Linux
42
-
43
- ---
44
-
45
- ## Claude Code Integration
46
-
47
- brosh is purpose-built for working with Claude Code. Every part of the terminal is designed to make AI-assisted development seamless.
48
-
49
- - **Natural language detection** -- An ML classifier distinguishes commands from questions in real time. Type `git push` and it runs. Type `how do I rebase onto main?` and Claude answers.
50
- - **Model switching** -- Switch between Sonnet, Opus, and Haiku from the status bar.
51
- - **MCP server built in** -- Claude Code connects over MCP and can see your terminal, run commands, and read output. No extra setup.
52
- - **Continue in Claude** -- Start a conversation in the terminal and seamlessly continue it in the Claude Code CLI with full context.
53
- - **Smart status bar** -- Git branch, active Claude model, MCP connection status, and session info at a glance.
54
-
55
- ![brosh terminal chat](docs/images/terminal_chat.png)
56
-
57
- ![MCP enabled](docs/images/mcp-enabled2.png)
58
-
59
- ## Terminal
60
-
61
- - Multi-tab interface with split panes (horizontal and vertical)
62
- - Draggable panel dividers for custom layouts
63
- - 9 built-in themes and 25+ fonts
64
- - Cursor style options, window opacity, and configurable scrollback
65
- - Find bar for searching terminal output
66
-
67
- ## Git Integration
68
-
69
- Built-in git sidebar with visual commit graph, file change tracking, and a Monaco-powered diff editor.
70
-
71
- ![git sidebar](docs/images/git_sidebar.png)
72
-
73
- Click any changed file to open a full diff view:
74
-
75
- ![git diff view](docs/images/git_sidebar_diff.png)
76
-
77
- ## Sandbox Mode
78
-
79
- Choose between standard and sandboxed terminal sessions at launch. Sandbox mode restricts filesystem and network access so Claude can only touch what you allow.
80
-
81
- ![sandbox permissions](docs/images/sandbox_selection2.png)
82
-
83
- See [docs/sandbox.md](./docs/sandbox.md) for configuration details.
84
-
85
- ## Developer Tools
86
-
87
- - Monaco code editor integration
88
- - Terminal session recording ([asciicast format](./docs/recording.md))
89
- - Cross-platform: macOS, Linux
90
-
91
21
  ## MCP Integration
92
22
 
93
- The desktop app runs a built-in MCP server on a Unix socket, giving Claude Code direct access to your terminal session.
94
-
95
- Add to your Claude Code MCP settings:
23
+ Add to your Claude Code MCP config (`~/.claude/settings.json` or `.mcp.json`):
96
24
 
97
25
  ```json
98
26
  {
@@ -104,78 +32,27 @@ Add to your Claude Code MCP settings:
104
32
  }
105
33
  ```
106
34
 
35
+ When Claude Code launches brosh as an MCP server, it connects to the running interactive session over a Unix socket and proxies tool calls.
36
+
37
+ ### Tools
38
+
107
39
  | Tool | Description |
108
40
  |------|-------------|
109
41
  | `type` | Send text input to the terminal |
110
- | `sendKey` | Send special keys and key combinations |
42
+ | `sendKey` | Send special keys and key combinations (Enter, Ctrl+C, etc.) |
111
43
  | `getContent` | Retrieve terminal buffer content |
112
- | `takeScreenshot` | Capture terminal state with metadata |
44
+ | `takeScreenshot` | Capture terminal state with ANSI formatting |
113
45
  | `startRecording` | Start recording terminal output |
114
46
  | `stopRecording` | Stop recording and save file |
115
47
 
116
- See [docs/tools.md](./docs/tools.md) for the full API reference.
117
-
118
- ## Keyboard Shortcuts
119
-
120
- | Shortcut | Action |
121
- |----------|--------|
122
- | <kbd>Cmd</kbd>+<kbd>T</kbd> | New tab |
123
- | <kbd>Cmd</kbd>+<kbd>N</kbd> | New window |
124
- | <kbd>Cmd</kbd>+<kbd>W</kbd> | Close tab |
125
- | <kbd>Cmd</kbd>+<kbd>D</kbd> | Split pane vertically |
126
- | <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>D</kbd> | Split pane horizontally |
127
- | <kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>G</kbd> | Toggle git sidebar |
128
- | <kbd>Cmd</kbd>+<kbd>F</kbd> | Find in terminal |
129
- | <kbd>Cmd</kbd>+<kbd>,</kbd> | Settings |
130
-
131
- ## CLI Mode
132
-
133
- brosh also works as a standalone CLI terminal and MCP server without the desktop app:
134
-
135
- ```bash
136
- brosh # Interactive mode -- shell + MCP server on Unix socket
137
- brosh --sandbox # With filesystem/network restrictions
138
- brosh --record # With session recording
139
- ```
140
-
141
- See the [docs/](./docs/) folder for CLI flags, recording, and sandbox configuration.
142
-
143
- ## Development
48
+ ## Desktop App
144
49
 
145
- ```bash
146
- # Core library
147
- npm install && npm run build
148
-
149
- # Desktop app
150
- cd packages/desktop-electron
151
- npm run dev # Dev mode with hot-reload
152
- npm run package # Build distributable
153
- ```
154
-
155
- ### Linux: Sandbox binaries
156
-
157
- The desktop app bundles statically-compiled `socat` and `bwrap` (bubblewrap) so sandbox mode works out of the box on any Linux distro. The binaries are built automatically during `npm run package` (via `prepackage`). You just need the build tools installed:
158
-
159
- ```bash
160
- # One-time setup (Linux only)
161
- sudo apt-get install -y meson ninja-build pkg-config libcap-dev
162
- ```
163
-
164
- The script fetches the latest source releases from upstream, compiles static binaries, and places them in `resources/bin/`. On macOS the step is a no-op. You can also run it manually with `npm run prepare-sandbox-bins`.
165
-
166
- ## Documentation
167
-
168
- - [Overview](./docs/index.md) -- [Installation](./docs/installation.md) -- [Architecture](./docs/architecture.md)
169
- - [Tools Reference](./docs/tools.md) -- [Configuration](./docs/configuration.md) -- [Examples](./docs/examples.md)
170
- - [Recording](./docs/recording.md) -- [Sandbox Mode](./docs/sandbox.md)
50
+ brosh also ships as a full desktop terminal (Electron) with split panes, tabs, a Git sidebar, themes, and more. See the [GitHub repo](https://github.com/elleryfamilia/brosh) for install instructions and documentation.
171
51
 
172
52
  ## Requirements
173
53
 
174
- - **Desktop App**: macOS 10.15+, Linux
175
- - **CLI**: Node.js 18+
54
+ - Node.js 18+
176
55
 
177
56
  ## License
178
57
 
179
58
  MIT
180
-
181
- The Linux desktop build bundles [socat](http://www.dest-unreach.org/socat/) (GPL-2.0) and [bubblewrap](https://github.com/containers/bubblewrap) (LGPL-2.1) as standalone executables for sandbox support. See [`packages/desktop-electron/THIRD-PARTY-NOTICES`](packages/desktop-electron/THIRD-PARTY-NOTICES) for full license texts.
package/README.npm.md ADDED
@@ -0,0 +1,58 @@
1
+ # brosh
2
+
3
+ A terminal emulator and MCP server that gives Claude Code direct access to your terminal.
4
+
5
+ brosh runs a shell inside a PTY with a headless xterm emulator, exposing tools over the [Model Context Protocol](https://modelcontextprotocol.io/) so AI agents can type commands, read output, send key combinations, and take screenshots.
6
+
7
+ ## Install
8
+
9
+ ```bash
10
+ npm install -g brosh
11
+ ```
12
+
13
+ ## CLI Usage
14
+
15
+ ```bash
16
+ brosh # Interactive mode -- shell + MCP server on Unix socket
17
+ brosh --sandbox # With filesystem/network restrictions
18
+ brosh --record # With session recording (asciicast format)
19
+ ```
20
+
21
+ ## MCP Integration
22
+
23
+ Add to your Claude Code MCP config (`~/.claude/settings.json` or `.mcp.json`):
24
+
25
+ ```json
26
+ {
27
+ "mcpServers": {
28
+ "terminal": {
29
+ "command": "brosh"
30
+ }
31
+ }
32
+ }
33
+ ```
34
+
35
+ When Claude Code launches brosh as an MCP server, it connects to the running interactive session over a Unix socket and proxies tool calls.
36
+
37
+ ### Tools
38
+
39
+ | Tool | Description |
40
+ |------|-------------|
41
+ | `type` | Send text input to the terminal |
42
+ | `sendKey` | Send special keys and key combinations (Enter, Ctrl+C, etc.) |
43
+ | `getContent` | Retrieve terminal buffer content |
44
+ | `takeScreenshot` | Capture terminal state with ANSI formatting |
45
+ | `startRecording` | Start recording terminal output |
46
+ | `stopRecording` | Stop recording and save file |
47
+
48
+ ## Desktop App
49
+
50
+ brosh also ships as a full desktop terminal (Electron) with split panes, tabs, a Git sidebar, themes, and more. See the [GitHub repo](https://github.com/elleryfamilia/brosh) for install instructions and documentation.
51
+
52
+ ## Requirements
53
+
54
+ - Node.js 18+
55
+
56
+ ## License
57
+
58
+ MIT
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "brosh",
3
- "version": "0.1.0",
4
- "description": "A modern terminal emulator with built-in AI integration via MCP",
3
+ "version": "0.1.2",
4
+ "description": "Terminal MCP bridge for AI-powered development",
5
5
  "author": "Ellery Familia",
6
6
  "repository": {
7
7
  "type": "git",
@@ -28,7 +28,9 @@
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",
@@ -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
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>com.apple.security.cs.allow-jit</key>
6
+ <true/>
7
+ <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
8
+ <true/>
9
+ <key>com.apple.security.cs.disable-library-validation</key>
10
+ <true/>
11
+ </dict>
12
+ </plist>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>com.apple.security.cs.allow-jit</key>
6
+ <true/>
7
+ <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
8
+ <true/>
9
+ <key>com.apple.security.cs.disable-library-validation</key>
10
+ <true/>
11
+ <key>com.apple.security.network.client</key>
12
+ <true/>
13
+ </dict>
14
+ </plist>
@@ -38,6 +38,7 @@
38
38
  "electron-store": "^10.0.0",
39
39
  "electron-updater": "^6.7.3",
40
40
  "fastest-levenshtein": "^1.0.16",
41
+ "material-file-icons": "^2.4.0",
41
42
  "monaco-editor": "^0.55.1",
42
43
  "monaco-vim": "^0.4.4",
43
44
  "posthog-node": "^5.24.7",
@@ -52,7 +53,7 @@
52
53
  "@vitejs/plugin-react": "^4.2.0",
53
54
  "@vitest/coverage-v8": "^2.0.0",
54
55
  "concurrently": "^8.2.0",
55
- "electron": "^33.0.0",
56
+ "electron": "^33.4.11",
56
57
  "electron-builder": "^25.0.0",
57
58
  "react": "^18.2.0",
58
59
  "react-dom": "^18.2.0",
@@ -62,8 +63,7 @@
62
63
  }
63
64
  },
64
65
  "../..": {
65
- "name": "brosh",
66
- "version": "0.2.2",
66
+ "version": "0.1.0",
67
67
  "license": "MIT",
68
68
  "dependencies": {
69
69
  "@anthropic-ai/sandbox-runtime": "^0.0.32",
@@ -1683,29 +1683,6 @@
1683
1683
  "url": "https://opencollective.com/libvips"
1684
1684
  }
1685
1685
  },
1686
- "node_modules/@isaacs/balanced-match": {
1687
- "version": "4.0.1",
1688
- "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
1689
- "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
1690
- "dev": true,
1691
- "license": "MIT",
1692
- "engines": {
1693
- "node": "20 || >=22"
1694
- }
1695
- },
1696
- "node_modules/@isaacs/brace-expansion": {
1697
- "version": "5.0.0",
1698
- "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
1699
- "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
1700
- "dev": true,
1701
- "license": "MIT",
1702
- "dependencies": {
1703
- "@isaacs/balanced-match": "^4.0.1"
1704
- },
1705
- "engines": {
1706
- "node": "20 || >=22"
1707
- }
1708
- },
1709
1686
  "node_modules/@isaacs/cliui": {
1710
1687
  "version": "8.0.2",
1711
1688
  "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
@@ -3610,9 +3587,9 @@
3610
3587
  }
3611
3588
  },
3612
3589
  "node_modules/ajv-formats/node_modules/ajv": {
3613
- "version": "8.17.1",
3614
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
3615
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
3590
+ "version": "8.18.0",
3591
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
3592
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
3616
3593
  "license": "MIT",
3617
3594
  "dependencies": {
3618
3595
  "fast-deep-equal": "^3.1.3",
@@ -4751,9 +4728,9 @@
4751
4728
  }
4752
4729
  },
4753
4730
  "node_modules/conf/node_modules/ajv": {
4754
- "version": "8.17.1",
4755
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
4756
- "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
4731
+ "version": "8.18.0",
4732
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz",
4733
+ "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==",
4757
4734
  "license": "MIT",
4758
4735
  "dependencies": {
4759
4736
  "fast-deep-equal": "^3.1.3",
@@ -7221,6 +7198,12 @@
7221
7198
  "node": ">=10"
7222
7199
  }
7223
7200
  },
7201
+ "node_modules/material-file-icons": {
7202
+ "version": "2.4.0",
7203
+ "resolved": "https://registry.npmjs.org/material-file-icons/-/material-file-icons-2.4.0.tgz",
7204
+ "integrity": "sha512-MgxhwBgoiNXyQdZVtXvdqP8t7Fu/Z3zW1aPeYN+UqtepzbKyf41b+Wme6DnwGk5Crt2JzmWLtl1XGE2YMooaQw==",
7205
+ "license": "MIT"
7206
+ },
7224
7207
  "node_modules/math-intrinsics": {
7225
7208
  "version": "1.1.0",
7226
7209
  "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
@@ -7306,21 +7289,44 @@
7306
7289
  }
7307
7290
  },
7308
7291
  "node_modules/minimatch": {
7309
- "version": "10.1.1",
7310
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
7311
- "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
7292
+ "version": "10.2.2",
7293
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.2.tgz",
7294
+ "integrity": "sha512-+G4CpNBxa5MprY+04MbgOw1v7So6n5JY166pFi9KfYwT78fxScCeSNQSNzp6dpPSW2rONOps6Ocam1wFhCgoVw==",
7312
7295
  "dev": true,
7313
7296
  "license": "BlueOak-1.0.0",
7314
7297
  "dependencies": {
7315
- "@isaacs/brace-expansion": "^5.0.0"
7298
+ "brace-expansion": "^5.0.2"
7316
7299
  },
7317
7300
  "engines": {
7318
- "node": "20 || >=22"
7301
+ "node": "18 || 20 || >=22"
7319
7302
  },
7320
7303
  "funding": {
7321
7304
  "url": "https://github.com/sponsors/isaacs"
7322
7305
  }
7323
7306
  },
7307
+ "node_modules/minimatch/node_modules/balanced-match": {
7308
+ "version": "4.0.3",
7309
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz",
7310
+ "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==",
7311
+ "dev": true,
7312
+ "license": "MIT",
7313
+ "engines": {
7314
+ "node": "20 || >=22"
7315
+ }
7316
+ },
7317
+ "node_modules/minimatch/node_modules/brace-expansion": {
7318
+ "version": "5.0.2",
7319
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
7320
+ "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
7321
+ "dev": true,
7322
+ "license": "MIT",
7323
+ "dependencies": {
7324
+ "balanced-match": "^4.0.2"
7325
+ },
7326
+ "engines": {
7327
+ "node": "20 || >=22"
7328
+ }
7329
+ },
7324
7330
  "node_modules/minimist": {
7325
7331
  "version": "1.2.8",
7326
7332
  "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
@@ -7778,9 +7784,9 @@
7778
7784
  }
7779
7785
  },
7780
7786
  "node_modules/onnxruntime-node/node_modules/tar": {
7781
- "version": "7.5.7",
7782
- "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.7.tgz",
7783
- "integrity": "sha512-fov56fJiRuThVFXD6o6/Q354S7pnWMJIVlDBYijsTNx6jKSE4pvrDTs6lUnmGvNyfJwFQQwWy3owKz1ucIhveQ==",
7787
+ "version": "7.5.9",
7788
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.9.tgz",
7789
+ "integrity": "sha512-BTLcK0xsDh2+PUe9F6c2TlRp4zOOBMTkoQHQIWSIzI0R7KG46uEwq4OPk2W7bZcprBMsuaeFsqwYr7pjh6CuHg==",
7784
7790
  "license": "BlueOak-1.0.0",
7785
7791
  "dependencies": {
7786
7792
  "@isaacs/fs-minipass": "^4.0.0",