brosh 0.1.0

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 (200) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +181 -0
  3. package/brosh_brandmark.svg +3 -0
  4. package/brosh_logo.svg +27 -0
  5. package/cli_icon.svg +52 -0
  6. package/dist/client.d.ts +5 -0
  7. package/dist/client.d.ts.map +1 -0
  8. package/dist/client.js +138 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +618 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/lib.d.ts +25 -0
  15. package/dist/lib.d.ts.map +1 -0
  16. package/dist/lib.js +28 -0
  17. package/dist/lib.js.map +1 -0
  18. package/dist/mode-selector.d.ts +7 -0
  19. package/dist/mode-selector.d.ts.map +1 -0
  20. package/dist/mode-selector.js +138 -0
  21. package/dist/mode-selector.js.map +1 -0
  22. package/dist/prompts/index.d.ts +3 -0
  23. package/dist/prompts/index.d.ts.map +1 -0
  24. package/dist/prompts/index.js +79 -0
  25. package/dist/prompts/index.js.map +1 -0
  26. package/dist/recording/index.d.ts +4 -0
  27. package/dist/recording/index.d.ts.map +1 -0
  28. package/dist/recording/index.js +3 -0
  29. package/dist/recording/index.js.map +1 -0
  30. package/dist/recording/manager.d.ts +62 -0
  31. package/dist/recording/manager.d.ts.map +1 -0
  32. package/dist/recording/manager.js +123 -0
  33. package/dist/recording/manager.js.map +1 -0
  34. package/dist/recording/recorder.d.ts +95 -0
  35. package/dist/recording/recorder.d.ts.map +1 -0
  36. package/dist/recording/recorder.js +330 -0
  37. package/dist/recording/recorder.js.map +1 -0
  38. package/dist/recording/types.d.ts +65 -0
  39. package/dist/recording/types.d.ts.map +1 -0
  40. package/dist/recording/types.js +2 -0
  41. package/dist/recording/types.js.map +1 -0
  42. package/dist/sandbox/ModeSelector.d.ts +2 -0
  43. package/dist/sandbox/ModeSelector.d.ts.map +1 -0
  44. package/dist/sandbox/ModeSelector.js +2 -0
  45. package/dist/sandbox/ModeSelector.js.map +1 -0
  46. package/dist/sandbox/config.d.ts +46 -0
  47. package/dist/sandbox/config.d.ts.map +1 -0
  48. package/dist/sandbox/config.js +144 -0
  49. package/dist/sandbox/config.js.map +1 -0
  50. package/dist/sandbox/controller.d.ts +72 -0
  51. package/dist/sandbox/controller.d.ts.map +1 -0
  52. package/dist/sandbox/controller.js +208 -0
  53. package/dist/sandbox/controller.js.map +1 -0
  54. package/dist/sandbox/index.d.ts +6 -0
  55. package/dist/sandbox/index.d.ts.map +1 -0
  56. package/dist/sandbox/index.js +4 -0
  57. package/dist/sandbox/index.js.map +1 -0
  58. package/dist/sandbox/mode-prompt.d.ts +10 -0
  59. package/dist/sandbox/mode-prompt.d.ts.map +1 -0
  60. package/dist/sandbox/mode-prompt.js +130 -0
  61. package/dist/sandbox/mode-prompt.js.map +1 -0
  62. package/dist/sandbox/prompt.d.ts +10 -0
  63. package/dist/sandbox/prompt.d.ts.map +1 -0
  64. package/dist/sandbox/prompt.js +434 -0
  65. package/dist/sandbox/prompt.js.map +1 -0
  66. package/dist/server.d.ts +28 -0
  67. package/dist/server.d.ts.map +1 -0
  68. package/dist/server.js +59 -0
  69. package/dist/server.js.map +1 -0
  70. package/dist/terminal/index.d.ts +5 -0
  71. package/dist/terminal/index.d.ts.map +1 -0
  72. package/dist/terminal/index.js +3 -0
  73. package/dist/terminal/index.js.map +1 -0
  74. package/dist/terminal/manager.d.ts +153 -0
  75. package/dist/terminal/manager.d.ts.map +1 -0
  76. package/dist/terminal/manager.js +276 -0
  77. package/dist/terminal/manager.js.map +1 -0
  78. package/dist/terminal/session.d.ts +137 -0
  79. package/dist/terminal/session.d.ts.map +1 -0
  80. package/dist/terminal/session.js +752 -0
  81. package/dist/terminal/session.js.map +1 -0
  82. package/dist/tools/definitions.d.ts +18 -0
  83. package/dist/tools/definitions.d.ts.map +1 -0
  84. package/dist/tools/definitions.js +114 -0
  85. package/dist/tools/definitions.js.map +1 -0
  86. package/dist/tools/getContent.d.ts +32 -0
  87. package/dist/tools/getContent.d.ts.map +1 -0
  88. package/dist/tools/getContent.js +38 -0
  89. package/dist/tools/getContent.js.map +1 -0
  90. package/dist/tools/index.d.ts +4 -0
  91. package/dist/tools/index.d.ts.map +1 -0
  92. package/dist/tools/index.js +49 -0
  93. package/dist/tools/index.js.map +1 -0
  94. package/dist/tools/screenshot.d.ts +20 -0
  95. package/dist/tools/screenshot.d.ts.map +1 -0
  96. package/dist/tools/screenshot.js +28 -0
  97. package/dist/tools/screenshot.js.map +1 -0
  98. package/dist/tools/sendKey.d.ts +31 -0
  99. package/dist/tools/sendKey.d.ts.map +1 -0
  100. package/dist/tools/sendKey.js +38 -0
  101. package/dist/tools/sendKey.js.map +1 -0
  102. package/dist/tools/startRecording.d.ts +68 -0
  103. package/dist/tools/startRecording.d.ts.map +1 -0
  104. package/dist/tools/startRecording.js +111 -0
  105. package/dist/tools/startRecording.js.map +1 -0
  106. package/dist/tools/stopRecording.d.ts +31 -0
  107. package/dist/tools/stopRecording.d.ts.map +1 -0
  108. package/dist/tools/stopRecording.js +76 -0
  109. package/dist/tools/stopRecording.js.map +1 -0
  110. package/dist/tools/type.d.ts +31 -0
  111. package/dist/tools/type.d.ts.map +1 -0
  112. package/dist/tools/type.js +31 -0
  113. package/dist/tools/type.js.map +1 -0
  114. package/dist/transport/gui-protocol.d.ts +163 -0
  115. package/dist/transport/gui-protocol.d.ts.map +1 -0
  116. package/dist/transport/gui-protocol.js +68 -0
  117. package/dist/transport/gui-protocol.js.map +1 -0
  118. package/dist/transport/gui-stream.d.ts +139 -0
  119. package/dist/transport/gui-stream.d.ts.map +1 -0
  120. package/dist/transport/gui-stream.js +440 -0
  121. package/dist/transport/gui-stream.js.map +1 -0
  122. package/dist/transport/index.d.ts +6 -0
  123. package/dist/transport/index.d.ts.map +1 -0
  124. package/dist/transport/index.js +6 -0
  125. package/dist/transport/index.js.map +1 -0
  126. package/dist/transport/socket.d.ts +46 -0
  127. package/dist/transport/socket.d.ts.map +1 -0
  128. package/dist/transport/socket.js +310 -0
  129. package/dist/transport/socket.js.map +1 -0
  130. package/dist/types/mcp-client-info.d.ts +226 -0
  131. package/dist/types/mcp-client-info.d.ts.map +1 -0
  132. package/dist/types/mcp-client-info.js +62 -0
  133. package/dist/types/mcp-client-info.js.map +1 -0
  134. package/dist/ui/index.d.ts +12 -0
  135. package/dist/ui/index.d.ts.map +1 -0
  136. package/dist/ui/index.js +84 -0
  137. package/dist/ui/index.js.map +1 -0
  138. package/dist/utils/env.d.ts +17 -0
  139. package/dist/utils/env.d.ts.map +1 -0
  140. package/dist/utils/env.js +35 -0
  141. package/dist/utils/env.js.map +1 -0
  142. package/dist/utils/keys.d.ts +16 -0
  143. package/dist/utils/keys.d.ts.map +1 -0
  144. package/dist/utils/keys.js +155 -0
  145. package/dist/utils/keys.js.map +1 -0
  146. package/dist/utils/platform.d.ts +16 -0
  147. package/dist/utils/platform.d.ts.map +1 -0
  148. package/dist/utils/platform.js +41 -0
  149. package/dist/utils/platform.js.map +1 -0
  150. package/dist/utils/session-logger.d.ts +31 -0
  151. package/dist/utils/session-logger.d.ts.map +1 -0
  152. package/dist/utils/session-logger.js +125 -0
  153. package/dist/utils/session-logger.js.map +1 -0
  154. package/dist/utils/stats.d.ts +46 -0
  155. package/dist/utils/stats.d.ts.map +1 -0
  156. package/dist/utils/stats.js +89 -0
  157. package/dist/utils/stats.js.map +1 -0
  158. package/dist/utils/version.d.ts +2 -0
  159. package/dist/utils/version.d.ts.map +1 -0
  160. package/dist/utils/version.js +9 -0
  161. package/dist/utils/version.js.map +1 -0
  162. package/logo.png +0 -0
  163. package/package.json +61 -0
  164. package/packages/desktop-electron/THIRD-PARTY-NOTICES +56 -0
  165. package/packages/desktop-electron/build/afterPack.cjs +147 -0
  166. package/packages/desktop-electron/package-lock.json +10071 -0
  167. package/packages/desktop-electron/package.json +172 -0
  168. package/packages/desktop-electron/resources/icons/mac/icon.icns +0 -0
  169. package/packages/desktop-electron/resources/icons/png/1024x1024.png +0 -0
  170. package/packages/desktop-electron/resources/icons/png/128x128.png +0 -0
  171. package/packages/desktop-electron/resources/icons/png/16x16.png +0 -0
  172. package/packages/desktop-electron/resources/icons/png/24x24.png +0 -0
  173. package/packages/desktop-electron/resources/icons/png/256x256.png +0 -0
  174. package/packages/desktop-electron/resources/icons/png/32x32.png +0 -0
  175. package/packages/desktop-electron/resources/icons/png/48x48.png +0 -0
  176. package/packages/desktop-electron/resources/icons/png/512x512.png +0 -0
  177. package/packages/desktop-electron/resources/icons/png/64x64.png +0 -0
  178. package/packages/desktop-electron/resources/icons/win/icon.ico +0 -0
  179. package/packages/desktop-electron/scripts/download-models.js +97 -0
  180. package/packages/desktop-electron/scripts/prepare-sandbox-bins.js +186 -0
  181. package/packages/desktop-electron/tests/main/ai-detection/additionalFunctions.test.ts +224 -0
  182. package/packages/desktop-electron/tests/main/ai-detection/checkOverridePrefix.test.ts +162 -0
  183. package/packages/desktop-electron/tests/main/ai-detection/classifyInput.test.ts +132 -0
  184. package/packages/desktop-electron/tests/main/ai-detection/detectTypos.test.ts +342 -0
  185. package/packages/desktop-electron/tests/main/ai-detection/fixtures/commands.ts +134 -0
  186. package/packages/desktop-electron/tests/main/ai-detection/fixtures/natural-language.ts +133 -0
  187. package/packages/desktop-electron/tests/main/ai-detection/fixtures/typos.ts +123 -0
  188. package/packages/desktop-electron/tests/main/ai-detection/hasValidSubcommand.test.ts +218 -0
  189. package/packages/desktop-electron/tests/main/ai-detection/isCommandNotFound.test.ts +117 -0
  190. package/packages/desktop-electron/tests/main/error-triage/buildTriagePrompt.test.ts +133 -0
  191. package/packages/desktop-electron/tests/main/error-triage/parseTriageResponse.test.ts +123 -0
  192. package/packages/desktop-electron/tests/main/terminal-bridge/battery-optimization.test.ts +243 -0
  193. package/packages/desktop-electron/tests/main/terminal-bridge/command-fast-track.test.ts +292 -0
  194. package/packages/desktop-electron/tests/main/terminal-bridge/default-cwd.test.ts +70 -0
  195. package/packages/desktop-electron/tests/setup.ts +274 -0
  196. package/packages/desktop-electron/tsconfig.json +18 -0
  197. package/packages/desktop-electron/tsconfig.main.json +20 -0
  198. package/packages/desktop-electron/vite.config.ts +19 -0
  199. package/packages/desktop-electron/vitest.config.ts +18 -0
  200. package/tsconfig.json +19 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ellery Familia
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,181 @@
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
+ **Homebrew (macOS):**
16
+
17
+ ```bash
18
+ brew install --cask elleryfamilia/brosh/brosh
19
+ ```
20
+
21
+ **Direct download:** `.dmg` (macOS) / `.AppImage` (Linux) from the [releases page](https://github.com/elleryfamilia/brosh/releases).
22
+
23
+ **Build from source:**
24
+
25
+ ```bash
26
+ git clone https://github.com/elleryfamilia/brosh.git
27
+ cd brosh/packages/desktop-electron && npm install && npm run start
28
+ ```
29
+
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
+ ## MCP Integration
92
+
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:
96
+
97
+ ```json
98
+ {
99
+ "mcpServers": {
100
+ "terminal": {
101
+ "command": "brosh"
102
+ }
103
+ }
104
+ }
105
+ ```
106
+
107
+ | Tool | Description |
108
+ |------|-------------|
109
+ | `type` | Send text input to the terminal |
110
+ | `sendKey` | Send special keys and key combinations |
111
+ | `getContent` | Retrieve terminal buffer content |
112
+ | `takeScreenshot` | Capture terminal state with metadata |
113
+ | `startRecording` | Start recording terminal output |
114
+ | `stopRecording` | Stop recording and save file |
115
+
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
144
+
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)
171
+
172
+ ## Requirements
173
+
174
+ - **Desktop App**: macOS 10.15+, Linux
175
+ - **CLI**: Node.js 18+
176
+
177
+ ## License
178
+
179
+ 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.
@@ -0,0 +1,3 @@
1
+ <svg width="366" height="366" viewBox="0 0 366 366" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M212.514 311.615C204.654 296.708 182.5 244.104 182.5 124.538V123.007L195.545 131.706C205.913 138.608 214.413 147.972 220.288 158.962C226.162 169.952 229.229 182.227 229.214 194.692H252.571C252.585 178.38 248.569 162.318 240.881 147.936C233.193 133.554 222.072 121.299 208.508 112.262L191.878 101.154H209.746C227.429 101.187 244.63 106.928 258.796 117.523L280.6 133.892L294.614 115.185L272.81 98.8154C254.593 85.1992 232.48 77.8195 209.746 77.7692H195.545C210.8 62.8567 231.251 54.4705 252.571 54.3846H275.929V31H252.571C236.882 31.0626 221.404 34.6254 207.263 41.4293C193.121 48.2332 180.672 58.1071 170.821 70.3329C160.97 58.1071 148.522 48.2332 134.38 41.4293C120.239 34.6254 104.761 31.0626 89.0714 31H65.7143V54.3846H89.0714C110.392 54.4705 130.843 62.8567 146.098 77.7692H131.897C109.163 77.8195 87.0497 85.1992 68.8325 98.8154L47.0286 115.185L61.0429 133.892L82.8468 117.523C97.0131 106.928 114.214 101.187 131.897 101.154H149.765L133.146 112.262C119.58 121.297 108.457 133.552 100.767 147.934C93.077 162.316 89.0592 178.379 89.0714 194.692H112.429C112.414 182.227 115.48 169.952 121.355 158.962C127.23 147.972 135.73 138.608 146.098 131.706L159.143 123.018V124.538C159.143 229.114 175.633 285.483 186.716 311.615H19V335H346V311.615H212.514Z" fill="#FFCE27"/>
3
+ </svg>