mstro-app 0.4.17 → 0.4.20

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 (162) hide show
  1. package/README.md +148 -75
  2. package/dist/server/cli/headless/claude-invoker-process.d.ts +1 -1
  3. package/dist/server/cli/headless/claude-invoker-process.d.ts.map +1 -1
  4. package/dist/server/cli/headless/claude-invoker-process.js +4 -10
  5. package/dist/server/cli/headless/claude-invoker-process.js.map +1 -1
  6. package/dist/server/cli/headless/claude-invoker.js +1 -1
  7. package/dist/server/cli/headless/claude-invoker.js.map +1 -1
  8. package/dist/server/cli/headless/mcp-config.d.ts +7 -2
  9. package/dist/server/cli/headless/mcp-config.d.ts.map +1 -1
  10. package/dist/server/cli/headless/mcp-config.js +28 -4
  11. package/dist/server/cli/headless/mcp-config.js.map +1 -1
  12. package/dist/server/cli/headless/runner.d.ts.map +1 -1
  13. package/dist/server/cli/headless/runner.js +0 -1
  14. package/dist/server/cli/headless/runner.js.map +1 -1
  15. package/dist/server/cli/headless/types.d.ts +1 -4
  16. package/dist/server/cli/headless/types.d.ts.map +1 -1
  17. package/dist/server/cli/improvisation-retry.d.ts +1 -1
  18. package/dist/server/cli/improvisation-retry.d.ts.map +1 -1
  19. package/dist/server/cli/improvisation-retry.js +1 -2
  20. package/dist/server/cli/improvisation-retry.js.map +1 -1
  21. package/dist/server/cli/improvisation-session-manager.d.ts +0 -1
  22. package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
  23. package/dist/server/cli/improvisation-session-manager.js +44 -9
  24. package/dist/server/cli/improvisation-session-manager.js.map +1 -1
  25. package/dist/server/index.js +17 -2
  26. package/dist/server/index.js.map +1 -1
  27. package/dist/server/mcp/bouncer-haiku.d.ts.map +1 -1
  28. package/dist/server/mcp/bouncer-haiku.js +10 -5
  29. package/dist/server/mcp/bouncer-haiku.js.map +1 -1
  30. package/dist/server/mcp/bouncer-integration.d.ts +3 -1
  31. package/dist/server/mcp/bouncer-integration.d.ts.map +1 -1
  32. package/dist/server/mcp/bouncer-integration.js +16 -5
  33. package/dist/server/mcp/bouncer-integration.js.map +1 -1
  34. package/dist/server/mcp/server.js +3 -1
  35. package/dist/server/mcp/server.js.map +1 -1
  36. package/dist/server/services/plan/composer.d.ts +1 -1
  37. package/dist/server/services/plan/composer.d.ts.map +1 -1
  38. package/dist/server/services/plan/composer.js +2 -3
  39. package/dist/server/services/plan/composer.js.map +1 -1
  40. package/dist/server/services/plan/executor.d.ts +0 -3
  41. package/dist/server/services/plan/executor.d.ts.map +1 -1
  42. package/dist/server/services/plan/executor.js +1 -8
  43. package/dist/server/services/plan/executor.js.map +1 -1
  44. package/dist/server/services/plan/review-gate.d.ts.map +1 -1
  45. package/dist/server/services/plan/review-gate.js +19 -2
  46. package/dist/server/services/plan/review-gate.js.map +1 -1
  47. package/dist/server/services/plan/state-reconciler.d.ts +6 -0
  48. package/dist/server/services/plan/state-reconciler.d.ts.map +1 -1
  49. package/dist/server/services/plan/state-reconciler.js +68 -1
  50. package/dist/server/services/plan/state-reconciler.js.map +1 -1
  51. package/dist/server/services/platform.d.ts.map +1 -1
  52. package/dist/server/services/platform.js +18 -6
  53. package/dist/server/services/platform.js.map +1 -1
  54. package/dist/server/services/terminal/pty-manager.d.ts +2 -4
  55. package/dist/server/services/terminal/pty-manager.d.ts.map +1 -1
  56. package/dist/server/services/terminal/pty-manager.js +5 -28
  57. package/dist/server/services/terminal/pty-manager.js.map +1 -1
  58. package/dist/server/services/terminal/pty-utils.d.ts +2 -13
  59. package/dist/server/services/terminal/pty-utils.d.ts.map +1 -1
  60. package/dist/server/services/terminal/pty-utils.js +2 -74
  61. package/dist/server/services/terminal/pty-utils.js.map +1 -1
  62. package/dist/server/services/websocket/autocomplete.d.ts +1 -1
  63. package/dist/server/services/websocket/autocomplete.d.ts.map +1 -1
  64. package/dist/server/services/websocket/autocomplete.js +37 -24
  65. package/dist/server/services/websocket/autocomplete.js.map +1 -1
  66. package/dist/server/services/websocket/file-explorer-handlers.d.ts +2 -2
  67. package/dist/server/services/websocket/file-explorer-handlers.d.ts.map +1 -1
  68. package/dist/server/services/websocket/file-explorer-handlers.js +11 -4
  69. package/dist/server/services/websocket/file-explorer-handlers.js.map +1 -1
  70. package/dist/server/services/websocket/handler.d.ts.map +1 -1
  71. package/dist/server/services/websocket/handler.js +6 -1
  72. package/dist/server/services/websocket/handler.js.map +1 -1
  73. package/dist/server/services/websocket/plan-board-handlers.d.ts +5 -5
  74. package/dist/server/services/websocket/plan-board-handlers.d.ts.map +1 -1
  75. package/dist/server/services/websocket/plan-board-handlers.js.map +1 -1
  76. package/dist/server/services/websocket/plan-execution-handlers.d.ts +6 -6
  77. package/dist/server/services/websocket/plan-execution-handlers.d.ts.map +1 -1
  78. package/dist/server/services/websocket/plan-execution-handlers.js +1 -4
  79. package/dist/server/services/websocket/plan-execution-handlers.js.map +1 -1
  80. package/dist/server/services/websocket/plan-handlers.d.ts +1 -1
  81. package/dist/server/services/websocket/plan-handlers.d.ts.map +1 -1
  82. package/dist/server/services/websocket/plan-handlers.js.map +1 -1
  83. package/dist/server/services/websocket/plan-helpers.d.ts +1 -1
  84. package/dist/server/services/websocket/plan-helpers.d.ts.map +1 -1
  85. package/dist/server/services/websocket/plan-helpers.js.map +1 -1
  86. package/dist/server/services/websocket/plan-issue-handlers.d.ts +4 -4
  87. package/dist/server/services/websocket/plan-issue-handlers.d.ts.map +1 -1
  88. package/dist/server/services/websocket/plan-issue-handlers.js +10 -0
  89. package/dist/server/services/websocket/plan-issue-handlers.js.map +1 -1
  90. package/dist/server/services/websocket/plan-sprint-handlers.d.ts +3 -3
  91. package/dist/server/services/websocket/plan-sprint-handlers.d.ts.map +1 -1
  92. package/dist/server/services/websocket/plan-sprint-handlers.js.map +1 -1
  93. package/dist/server/services/websocket/quality-handlers.d.ts +1 -1
  94. package/dist/server/services/websocket/quality-handlers.d.ts.map +1 -1
  95. package/dist/server/services/websocket/quality-handlers.js +9 -5
  96. package/dist/server/services/websocket/quality-handlers.js.map +1 -1
  97. package/dist/server/services/websocket/quality-review-agent.d.ts.map +1 -1
  98. package/dist/server/services/websocket/quality-review-agent.js +7 -4
  99. package/dist/server/services/websocket/quality-review-agent.js.map +1 -1
  100. package/dist/server/services/websocket/session-handlers.d.ts +1 -1
  101. package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
  102. package/dist/server/services/websocket/session-handlers.js +5 -2
  103. package/dist/server/services/websocket/session-handlers.js.map +1 -1
  104. package/dist/server/services/websocket/terminal-handlers.d.ts +1 -1
  105. package/dist/server/services/websocket/terminal-handlers.d.ts.map +1 -1
  106. package/dist/server/services/websocket/terminal-handlers.js +9 -21
  107. package/dist/server/services/websocket/terminal-handlers.js.map +1 -1
  108. package/dist/server/services/websocket/types.d.ts +2 -2
  109. package/dist/server/services/websocket/types.d.ts.map +1 -1
  110. package/dist/server/utils/port.d.ts +0 -11
  111. package/dist/server/utils/port.d.ts.map +1 -1
  112. package/dist/server/utils/port.js +0 -31
  113. package/dist/server/utils/port.js.map +1 -1
  114. package/package.json +1 -2
  115. package/server/cli/headless/claude-invoker-process.ts +5 -12
  116. package/server/cli/headless/claude-invoker.ts +1 -1
  117. package/server/cli/headless/mcp-config.ts +31 -4
  118. package/server/cli/headless/runner.ts +0 -1
  119. package/server/cli/headless/types.ts +1 -4
  120. package/server/cli/improvisation-retry.ts +0 -2
  121. package/server/cli/improvisation-session-manager.ts +45 -10
  122. package/server/index.ts +16 -2
  123. package/server/mcp/bouncer-haiku.ts +11 -5
  124. package/server/mcp/bouncer-integration.ts +14 -5
  125. package/server/mcp/server.ts +3 -1
  126. package/server/services/plan/composer.ts +1 -3
  127. package/server/services/plan/executor.ts +1 -9
  128. package/server/services/plan/review-gate.ts +13 -2
  129. package/server/services/plan/state-reconciler.ts +70 -1
  130. package/server/services/platform.ts +17 -6
  131. package/server/services/terminal/pty-manager.ts +6 -33
  132. package/server/services/terminal/pty-utils.ts +2 -80
  133. package/server/services/websocket/autocomplete.ts +48 -26
  134. package/server/services/websocket/file-explorer-handlers.ts +14 -7
  135. package/server/services/websocket/handler.ts +8 -2
  136. package/server/services/websocket/plan-board-handlers.ts +5 -5
  137. package/server/services/websocket/plan-execution-handlers.ts +7 -10
  138. package/server/services/websocket/plan-handlers.ts +1 -1
  139. package/server/services/websocket/plan-helpers.ts +1 -1
  140. package/server/services/websocket/plan-issue-handlers.ts +14 -4
  141. package/server/services/websocket/plan-sprint-handlers.ts +3 -3
  142. package/server/services/websocket/quality-handlers.ts +9 -5
  143. package/server/services/websocket/quality-review-agent.ts +7 -4
  144. package/server/services/websocket/session-handlers.ts +8 -3
  145. package/server/services/websocket/terminal-handlers.ts +10 -24
  146. package/server/services/websocket/types.ts +2 -2
  147. package/server/utils/port.ts +0 -41
  148. package/dist/server/mcp/bouncer-sandbox.d.ts +0 -60
  149. package/dist/server/mcp/bouncer-sandbox.d.ts.map +0 -1
  150. package/dist/server/mcp/bouncer-sandbox.js +0 -182
  151. package/dist/server/mcp/bouncer-sandbox.js.map +0 -1
  152. package/dist/server/services/credentials.d.ts +0 -39
  153. package/dist/server/services/credentials.d.ts.map +0 -1
  154. package/dist/server/services/credentials.js +0 -110
  155. package/dist/server/services/credentials.js.map +0 -1
  156. package/dist/server/services/sandbox-utils.d.ts +0 -8
  157. package/dist/server/services/sandbox-utils.d.ts.map +0 -1
  158. package/dist/server/services/sandbox-utils.js +0 -75
  159. package/dist/server/services/sandbox-utils.js.map +0 -1
  160. package/server/mcp/bouncer-sandbox.ts +0 -214
  161. package/server/services/credentials.ts +0 -134
  162. package/server/services/sandbox-utils.ts +0 -82
package/README.md CHANGED
@@ -1,84 +1,134 @@
1
1
  # mstro
2
2
 
3
- Run [Claude Code](https://docs.anthropic.com/en/docs/claude-code) from any browser. Your code stays on your machine, mstro bridges your computer and your browser through a secure connection.
3
+ The productivity scaling workspace. AI that builds, ships, and monitors software on your machines, autonomously, from any browser.
4
4
 
5
- > **Get started in 30 seconds:**
5
+ > **Start in 30 seconds:**
6
6
  >
7
7
  > ```bash
8
8
  > npx mstro-app
9
9
  > ```
10
10
  >
11
- > Open [mstro.app](https://mstro.app) in your browser. Start prompting.
11
+ > Open [mstro.app](https://mstro.app). Start building.
12
12
 
13
- ## What Is This?
13
+ ## What Mstro Does
14
14
 
15
- mstro is for developers who use Claude Code and want to:
15
+ ### 1. Browser-based AI workstation for your machines
16
16
 
17
- - **Work from any device**: start on your desktop, continue from your phone or tablet
18
- - **Use a powerful machine remotely**: run Claude on a beefy server, interact from a lightweight laptop
19
- - **Stop babysitting permissions**: mstro's Security Bouncer handles tool approvals automatically so you can kick off long-running tasks and walk away knowing Claude will keep working until the job is done
20
- - **Share live sessions**: let a teammate watch or collaborate in real time
17
+ Open [mstro.app](https://mstro.app) and connect to Claude Code running on your laptop, cloud VMs, or servers. Chat, edit files, use git, run terminals. All from any browser, on any device. Your code stays on your hardware.
21
18
 
22
- If you haven't used Claude Code before, [start here](https://docs.anthropic.com/en/docs/claude-code).
19
+ ### 2. Long-running AI tasks with zero babysitting
23
20
 
24
- ## How It Works
21
+ Start a complex task and walk away. The Security Bouncer handles every permission decision automatically. A three-layer watchdog detects stalls, kills frozen processes, and recovers. Come back to finished work.
25
22
 
26
- 1. Start mstro on a computer with your project files (one command in the terminal)
27
- 2. Open [mstro.app](https://mstro.app) in any browser, your machine appears as a workspace
28
- 3. Type a prompt in the browser, and mstro works on your code directly on your machine
29
- 4. Results stream back to your browser in real time
23
+ ### 3. One prompt to full apps of any complexity
30
24
 
31
- Your code never leaves your computer. The browser is just a window into what's happening.
25
+ Describe what you want. The PM board breaks it into a kanban board of tasks, assigns AI agent teams, and they build features in parallel on separate git worktrees. Track progress in real time. What takes a solo developer a week ships in hours.
32
26
 
33
- ## Prerequisites
27
+ ## Quick Start
34
28
 
35
- - **Node.js 18+**: check with `node --version` ([download](https://nodejs.org/) if needed)
36
- - **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)** installed and signed in, you should be able to run `claude` in your terminal
29
+ **Prerequisites:**
37
30
 
38
- ## Installation
31
+ - Node.js 18+ (check with `node --version`, [download here](https://nodejs.org/))
32
+ - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) installed and signed in. `claude` must work in your terminal
39
33
 
40
- ```bash
41
- npm install -g mstro-app
42
- ```
43
-
44
- Or skip the install and run directly:
34
+ **Run without installing:**
45
35
 
46
36
  ```bash
47
37
  npx mstro-app
48
38
  ```
49
39
 
50
- ## Quick Start
40
+ **Or install globally:**
51
41
 
52
42
  ```bash
43
+ npm install -g mstro-app
53
44
  mstro
54
45
  ```
55
46
 
56
- On first run, mstro opens your browser so you can sign in to your mstro.app account. Once connected, open [mstro.app](https://mstro.app), your machine appears as a workspace. Start a conversation with Claude right from your browser.
47
+ On first run, mstro opens your browser to sign in. Once connected, open [mstro.app](https://mstro.app) your machine appears as a workspace.
57
48
 
58
- Run multiple instances for different projects. Each auto-selects an available port and appears as a separate workspace on [mstro.app](https://mstro.app)
49
+ Run `mstro` on multiple machines. Each one appears as a separate workspace.
59
50
 
60
- Stop with Ctrl+C.
51
+ Stop with `Ctrl+C`.
61
52
 
62
- ## CLI Reference
53
+ ## How It Works
54
+
55
+ ```
56
+ Browser (mstro.app) <--WS--> Platform Server (relay) <--WS--> mstro CLI (your machine) --> Claude Code
57
+ ```
58
+
59
+ Your code never leaves your computer. The browser is a window into what's happening on your machines.
60
+
61
+ ## Features
62
+
63
+ | Feature | What it does |
64
+ |---------|-------------|
65
+ | **Chat** | Parallel AI conversation tabs with file autocomplete and drag-and-drop context |
66
+ | **PM Board** | One prompt becomes a kanban board. AI agent teams build features in parallel on separate git worktrees |
67
+ | **Quality** | Automated linting, complexity analysis, and AI code review before shipping |
68
+ | **Files** | Browse, edit, search, and diff files on any connected machine with syntax highlighting |
69
+ | **Git** | Stage, commit, push, and create PRs — AI writes commit messages |
70
+ | **Terminal** | Full PTY shell access to any machine from your browser |
71
+ | **Shared Apps** | Invite others with view-only, project control, or full machine access |
72
+
73
+ ## Security
74
+
75
+ The Security Bouncer makes permission decisions so you don't have to sit there clicking "Allow."
76
+
77
+ Two layers:
78
+
79
+ 1. **Pattern matching** (<5ms): instantly blocks known threats like `rm -rf /` and reverse shells
80
+ 2. **AI analysis** (~200-500ms): catches prompt injection and data exfiltration
81
+
82
+ Validated against 400+ tests covering 22 MITRE ATT&CK techniques.
83
+
84
+ For the full architecture, threat model, red-team results, and vulnerability reporting, see **[SECURITY.md](./SECURITY.md)**.
85
+
86
+ ### Autonomous Execution
87
+
88
+ Three safety layers run continuously during AI sessions:
89
+
90
+ - **Security Bouncer**: 2-layer tool approval (pattern matching + Haiku AI) via MCP
91
+ - **Stall Assessor**: heuristic + AI analysis detects stuck processes
92
+ - **Tool Watchdog**: per-tool adaptive timeouts using RFC 6298 EMA, with custom profiles for long-running operations (WebFetch 3m, Bash 5m, Task 15m)
63
93
 
64
- Running `mstro` with no arguments starts a local server on port 4101 (auto-increments if busy), connects to the relay server, and runs in the foreground.
94
+ ## PM Board
65
95
 
66
- ### Commands
96
+ The PM board turns a single prompt into a managed project:
97
+
98
+ 1. Describe what you want to build
99
+ 2. AI generates a kanban board with prioritized issues
100
+ 3. AI agent teams execute issues in parallel on separate git worktrees
101
+ 4. Track progress in real time — see each agent's output, status, and artifacts
102
+ 5. Review quality before merging
103
+
104
+ Configurable parallel execution (max concurrent agents), custom review criteria per board, and board-scoped artifacts (progress logs, output files, review results).
105
+
106
+ ## Quality
107
+
108
+ Quality analysis runs across your codebase:
109
+
110
+ - **Tool detection**: auto-detects linters and analyzers for your ecosystem (Node, Python, Rust, Go, Swift, Kotlin)
111
+ - **Automated scanning**: runs detected tools with progress tracking
112
+ - **AI code review**: Claude reviews code for architecture violations, SOLID principles, security, and performance
113
+ - **Severity scoring**: findings tagged with severity, category, file paths, and line numbers
114
+ - **Automated fixes**: AI can fix identified issues with progress tracking
115
+
116
+ ## CLI Reference
67
117
 
68
118
  ```bash
69
- mstro # Start mstro (auto-authenticates if needed)
70
- mstro login # Re-authenticate or switch accounts
119
+ mstro # Start (auto-authenticates)
120
+ mstro login # Authenticate or switch accounts
71
121
  mstro logout # Sign out
72
- mstro whoami # Show current user and device info
73
- mstro status # Show connection and auth status
122
+ mstro whoami # Show user and device info
123
+ mstro status # Show connection status
74
124
  mstro setup-terminal # Enable web terminal (compiles native module)
75
- mstro telemetry [on|off] # Show/toggle anonymous telemetry
125
+ mstro telemetry [on|off] # Toggle anonymous telemetry
76
126
  ```
77
127
 
78
128
  ### Options
79
129
 
80
- | Option | Description |
81
- |--------|-------------|
130
+ | Flag | Description |
131
+ |------|-------------|
82
132
  | `-p, --port <port>` | Start on a specific port (default: 4101, auto-increments if busy) |
83
133
  | `-w, --working-dir <dir>` | Set working directory |
84
134
  | `-v, --verbose` | Verbose output |
@@ -92,67 +142,100 @@ mstro telemetry [on|off] # Show/toggle anonymous telemetry
92
142
  | Variable | Description |
93
143
  |----------|-------------|
94
144
  | `PORT` | Override server port |
95
- | `BOUNCER_USE_AI` | Set to `false` to disable AI analysis layer |
96
- | `MSTRO_TELEMETRY` | Set to `0` to disable telemetry |
145
+ | `BOUNCER_USE_AI` | `false` to disable AI analysis layer |
146
+ | `MSTRO_TELEMETRY` | `0` to disable telemetry |
97
147
 
98
148
  ### Config Files
99
149
 
100
- mstro stores config in `~/.mstro/`:
150
+ Stored in `~/.mstro/`:
101
151
 
102
152
  | File | Purpose |
103
153
  |------|---------|
104
- | `~/.mstro/credentials.json` | Device auth token (created by `mstro login`) |
154
+ | `credentials.json` | Device auth token (created by `mstro login`) |
155
+ | `settings.json` | Model selection, preferences |
156
+ | `session-registry.json` | Tab-to-session mapping |
105
157
 
106
- ## Security
107
-
108
- When you use Claude Code through mstro, you don't need to sit there approving every file write and shell command. The Security Bouncer makes those decisions for you, and it's been tested more rigorously than any human clicking "Allow" ever could be.
158
+ ## Architecture
109
159
 
110
- The bouncer runs two layers of checks on every tool call: fast pattern matching that instantly blocks known threats (like `rm -rf /` or reverse shells) and an AI analysis layer that catches the subtle stuff like prompt injection and data exfiltration. It's validated against 400+ tests covering 22 MITRE ATT&CK techniques, including adversarial red teaming with real attack payloads.
160
+ ```
161
+ server/
162
+ index.ts # Hono app entry, port detection, WebSocket setup
163
+ services/
164
+ websocket/handler.ts # Main WebSocket message router
165
+ websocket/*-handlers.ts # Domain handlers (session, plan, quality, git, terminal, files)
166
+ plan/executor.ts # PM board execution engine
167
+ plan/composer.ts # AI prompt composition for boards
168
+ plan/review-gate.ts # Quality gates for board execution
169
+ terminal/pty-manager.ts # PTY session management
170
+ platform.ts # WebSocket connection to platform server
171
+ cli/
172
+ headless/runner.ts # Claude Code orchestrator
173
+ headless/stall-assessor.ts # 2-layer stall detection (heuristic + Haiku AI)
174
+ headless/tool-watchdog.ts # Per-tool adaptive timeouts (RFC 6298 EMA)
175
+ improvisation-session-manager.ts # Session orchestration, retry, checkpoints
176
+ mcp/
177
+ server.ts # MCP server (stdio transport)
178
+ bouncer-integration.ts # 2-layer security (patterns + Haiku AI)
179
+ security-patterns.ts # Threat/safe pattern matching
180
+ bin/
181
+ mstro.js # CLI entry point
182
+ commands/ # login, logout, status, whoami, config
183
+ ```
111
184
 
112
- The result: you can trust mstro to run unattended and make better, more consistent security decisions than the "click Allow and hope for the best" workflow that most developers have normalized.
185
+ ### Key Subsystems
113
186
 
114
- For full details on architecture, threat model, red team results, and vulnerability reporting see **[SECURITY.md](./SECURITY.md)**.
187
+ - **Headless Runner**: spawns Claude Code processes with MCP bouncer integration, manages lifecycle
188
+ - **Improvisation Session Manager**: session orchestration, retry with context recovery, checkpoint-and-retry on tool timeouts
189
+ - **Security Bouncer**: MCP-integrated 2-layer tool approval (see [SECURITY.md](./SECURITY.md))
190
+ - **PM Board Executor**: parallel board execution with wave-based scheduling and quality gates
191
+ - **PTY Manager**: terminal session management with tmux support and subscriber model
192
+ - **Session Registry**: tab-to-session persistence across WebSocket disconnects
115
193
 
116
194
  ## Optional Setup
117
195
 
118
196
  ### Web Terminal
119
197
 
120
- The web terminal lets you use a full terminal in your browser. mstro works without it, if you don't set it up you just won't have the terminal tab.
121
-
122
- On first run, mstro automatically tries to compile the required native module. If your system has build tools, it just works. If not, install them first:
198
+ The terminal tab requires a native module. Mstro tries to compile it automatically on first run. If it fails, install build tools first:
123
199
 
124
200
  - **macOS**: `xcode-select --install`
125
201
  - **Linux (Debian/Ubuntu)**: `sudo apt install build-essential python3`
126
202
  - **Linux (Fedora/RHEL)**: `sudo dnf install gcc-c++ make python3`
127
203
  - **Windows**: `npm install -g windows-build-tools`
128
204
 
129
- Then run:
130
-
131
- ```bash
132
- mstro setup-terminal
133
- ```
205
+ Then run `mstro setup-terminal`.
134
206
 
135
207
  ### Persistent Terminals
136
208
 
137
- Install [tmux](https://github.com/tmux/tmux) for terminal sessions that survive restarts:
209
+ Install [tmux](https://github.com/tmux/tmux) for sessions that survive restarts:
138
210
 
139
211
  ```bash
140
212
  # macOS
141
213
  brew install tmux
142
-
143
214
  # Debian/Ubuntu
144
215
  sudo apt install tmux
145
216
  ```
146
217
 
147
- ## Troubleshooting
218
+ ## Development
148
219
 
149
- **`claude` not found** — Install [Claude Code](https://docs.anthropic.com/en/docs/claude-code) and make sure you can run `claude` in your terminal.
220
+ ```bash
221
+ cd cli
222
+ npm install
223
+ npm run dev # Dev server with tsx (port 4101)
224
+ npm run test # vitest
225
+ npm run check # tsc + vitest + biome + npm audit
226
+ npm run build # tsc -p tsconfig.build.json
227
+ ```
150
228
 
151
- **Port conflict** mstro auto-increments, but you can force a port with `mstro -p 4200`.
229
+ The CLI runs on Node.js with tsx in development (no build step). Hono serves HTTP and WebSocket. Biome handles linting. Published as ESM.
152
230
 
153
- **Machine not appearing in web app** — Run `mstro status` to verify the platform connection.
231
+ ## Troubleshooting
154
232
 
155
- **node-pty build fails** Install build tools for your OS (see Optional Setup above), then run `mstro setup-terminal`.
233
+ | Problem | Fix |
234
+ |---------|-----|
235
+ | `claude` not found | Install [Claude Code](https://docs.anthropic.com/en/docs/claude-code) and sign in |
236
+ | Port conflict | `mstro -p 4200` or let it auto-increment |
237
+ | Machine not appearing | Run `mstro status` to verify connection |
238
+ | node-pty build fails | Install build tools (see Optional Setup), then `mstro setup-terminal` |
156
239
 
157
240
  ## Uninstall
158
241
 
@@ -161,20 +244,10 @@ npm uninstall -g mstro-app
161
244
  rm -rf ~/.mstro
162
245
  ```
163
246
 
164
- ## Telemetry and Privacy
165
-
166
- Mstro collects anonymous error reports and usage data to improve the software. No personal data or code is collected. See [PRIVACY.md](./PRIVACY.md) for details.
167
-
168
- ```bash
169
- mstro telemetry off # Disable
170
- mstro telemetry on # Enable
171
- ```
172
-
173
247
  ## Links
174
248
 
175
249
  - **Web App**: [mstro.app](https://mstro.app)
176
- - **GitHub**: [github.com/mstro-app/mstro](https://github.com/mstro-app/mstro)
177
- - **Security**: [SECURITY.md](./SECURITY.md) — bouncer architecture, threat model, vulnerability reporting
250
+ - **Security**: [SECURITY.md](./SECURITY.md) - bouncer architecture, threat model, red teaming, vulnerability reporting
178
251
 
179
252
  ## License
180
253
 
@@ -4,7 +4,7 @@ import type { ExecutionResult, ResolvedHeadlessConfig } from './types.js';
4
4
  export declare function handleSpawnError(error: NodeJS.ErrnoException, config: ResolvedHeadlessConfig, reject: (reason: Error) => void): void;
5
5
  export declare function buildClaudeArgs(config: ResolvedHeadlessConfig, prompt: string, hasImageAttachments: boolean, useStreamJson: boolean, mcpConfigPath: string | null): string[];
6
6
  /** Spawn the Claude CLI process and register it */
7
- export declare function spawnAndRegister(config: ResolvedHeadlessConfig, prompt: string, hasImageAttachments: boolean, useStreamJson: boolean, runningProcesses: Map<number, ChildProcess>, perfStart: number): ChildProcess;
7
+ export declare function spawnAndRegister(config: ResolvedHeadlessConfig, prompt: string, hasImageAttachments: boolean, useStreamJson: boolean, runningProcesses: Map<number, ChildProcess>, perfStart: number): Promise<ChildProcess>;
8
8
  export declare function buildCloseResult(ctx: StreamHandlerContext, stdout: string, stderr: string, code: number | null, signal: NodeJS.Signals | null, sessionCapture: {
9
9
  claudeSessionId?: string;
10
10
  }): ExecutionResult;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-invoker-process.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/claude-invoker-process.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAKvE,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AA0B1E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,cAAc,EAC5B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,GAC9B,IAAI,CAYN;AAID,wBAAgB,eAAe,CAC7B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM,EAAE,CA8CV;AAqBD,mDAAmD;AACnD,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,EACtB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAC3C,SAAS,EAAE,MAAM,GAChB,YAAY,CAyCd;AAID,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,oBAAoB,EACzB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,EAC7B,cAAc,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,eAAe,CAoBjB"}
1
+ {"version":3,"file":"claude-invoker-process.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/claude-invoker-process.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAKvE,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AA0B1E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,cAAc,EAC5B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,KAAK,IAAI,GAC9B,IAAI,CAYN;AAID,wBAAgB,eAAe,CAC7B,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,EACtB,aAAa,EAAE,MAAM,GAAG,IAAI,GAC3B,MAAM,EAAE,CAyCV;AAqBD,mDAAmD;AACnD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,sBAAsB,EAC9B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,OAAO,EAC5B,aAAa,EAAE,OAAO,EACtB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,EAC3C,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAID,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,oBAAoB,EACzB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,EAC7B,cAAc,EAAE;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3C,eAAe,CAoBjB"}
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
2
  // Licensed under the MIT License. See LICENSE file for details.
3
3
  import { spawn } from 'node:child_process';
4
- import { sanitizeEnvForSandbox } from '../../services/sandbox-utils.js';
4
+ import { randomUUID } from 'node:crypto';
5
5
  import { flushNativeTimeoutBuffers, verboseLog } from './claude-invoker-stream.js';
6
6
  import { herror } from './headless-logger.js';
7
7
  import { generateMcpConfig } from './mcp-config.js';
@@ -68,10 +68,6 @@ export function buildClaudeArgs(config, prompt, hasImageAttachments, useStreamJs
68
68
  }
69
69
  // Reduce Edit-without-Read errors by reminding the model
70
70
  args.push('--append-system-prompt', 'IMPORTANT: Always use the Read tool to read a file before using Edit or Write on it. Never edit a file you have not read in this session.');
71
- // Sandboxed sessions: restrict all file operations to the working directory
72
- if (config.sandboxed) {
73
- args.push('--append-system-prompt', `SECURITY: You are running in sandboxed mode for a shared user. You MUST NOT read, write, list, or access any files or directories outside the working directory (${config.workingDir}). This includes home directories, /etc, /tmp, /proc, and any path that does not start with ${config.workingDir}. If asked to access files outside this boundary, refuse the request and explain that access is restricted to the project directory.`);
74
- }
75
71
  if (!hasImageAttachments) {
76
72
  // Strip null bytes — Node.js spawn rejects args containing \0
77
73
  args.push(prompt.replaceAll('\0', ''));
@@ -92,16 +88,14 @@ function writeImageAttachmentsToStdin(claudeProcess, prompt, config) {
92
88
  }
93
89
  // ========== Process Spawning ==========
94
90
  /** Spawn the Claude CLI process and register it */
95
- export function spawnAndRegister(config, prompt, hasImageAttachments, useStreamJson, runningProcesses, perfStart) {
96
- const mcpConfigPath = generateMcpConfig(config.workingDir, config.verbose);
91
+ export async function spawnAndRegister(config, prompt, hasImageAttachments, useStreamJson, runningProcesses, perfStart) {
92
+ const mcpConfigPath = generateMcpConfig(config.workingDir, config.verbose, prompt, randomUUID());
97
93
  if (!mcpConfigPath && config.outputCallback) {
98
94
  config.outputCallback('\n[[MSTRO_ERROR:BOUNCER_UNAVAILABLE]] Security bouncer not available. Running with limited permissions — file edits allowed, but shell commands may be restricted.\n');
99
95
  }
100
96
  const args = buildClaudeArgs(config, prompt, hasImageAttachments, useStreamJson, mcpConfigPath);
101
97
  verboseLog(config.verbose, `[PERF] About to spawn: ${Date.now() - perfStart}ms`, `[PERF] Command: ${config.claudeCommand} ${args.join(' ')}`);
102
- const baseEnv = config.sandboxed
103
- ? sanitizeEnvForSandbox(process.env, config.workingDir, { overrideHome: false })
104
- : { ...process.env };
98
+ const baseEnv = { ...process.env };
105
99
  const spawnEnv = config.extraEnv
106
100
  ? { ...baseEnv, ...config.extraEnv }
107
101
  : baseEnv;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-invoker-process.js","sourceRoot":"","sources":["../../../../server/cli/headless/claude-invoker-process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-invoker-process.js","sourceRoot":"","sources":["../../../../server/cli/headless/claude-invoker-process.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export async function executeClaudeCommand(prompt, _movementId, _sessionNumber,
16
16
  verboseLog(config.verbose, '[PERF] executeMovement started');
17
17
  const hasImageAttachments = config.imageAttachments && config.imageAttachments.length > 0;
18
18
  const useStreamJson = hasImageAttachments || config.thinkingCallback || config.outputCallback || config.toolUseCallback;
19
- const claudeProcess = spawnAndRegister(config, prompt, !!hasImageAttachments, !!useStreamJson, runningProcesses, perfStart);
19
+ const claudeProcess = await spawnAndRegister(config, prompt, !!hasImageAttachments, !!useStreamJson, runningProcesses, perfStart);
20
20
  let stdout = '';
21
21
  let stderr = '';
22
22
  let thinkingBuffer = '';
@@ -1 +1 @@
1
- {"version":3,"file":"claude-invoker.js","sourceRoot":"","sources":["../../../../server/cli/headless/claude-invoker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-invoker.js","sourceRoot":"","sources":["../../../../server/cli/headless/claude-invoker.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,12 @@
5
5
  */
6
6
  /**
7
7
  * Generate MCP config with bouncer + user's MCP servers from ~/.claude.json.
8
- * Writes to ~/.mstro/mcp-config.json for use with --mcp-config flag.
8
+ * Writes to ~/.mstro/mcp-config-{sessionId}.json for use with --mcp-config flag.
9
+ * Per-session files prevent concurrent sessions from overwriting each other's config.
10
+ *
11
+ * @param userPrompt — The user's original prompt, passed to the bouncer so its
12
+ * AI layer can distinguish user-requested operations from prompt injection.
13
+ * @param sessionId — Unique session identifier for per-session config isolation.
9
14
  */
10
- export declare function generateMcpConfig(workingDir: string, verbose?: boolean): string | null;
15
+ export declare function generateMcpConfig(workingDir: string, verbose?: boolean, userPrompt?: string, sessionId?: string): string | null;
11
16
  //# sourceMappingURL=mcp-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA6CH;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,GAAG,MAAM,GAAG,IAAI,CAkC7F"}
1
+ {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/mcp-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAwDH;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA6CtI"}
@@ -39,22 +39,45 @@ function loadUserMcpServers(workingDir, verbose) {
39
39
  }
40
40
  return servers;
41
41
  }
42
+ /** Max length for user prompt passed to bouncer (prevents env var size issues). */
43
+ const MAX_USER_PROMPT_LENGTH = 4000;
44
+ /** Truncate prompt at a word boundary and append a marker so the bouncer knows it's incomplete. */
45
+ function truncatePrompt(prompt) {
46
+ const truncated = prompt.slice(0, MAX_USER_PROMPT_LENGTH);
47
+ const lastSpace = truncated.lastIndexOf(' ');
48
+ const clean = lastSpace > MAX_USER_PROMPT_LENGTH * 0.8 ? truncated.slice(0, lastSpace) : truncated;
49
+ return `${clean}... [truncated]`;
50
+ }
42
51
  /**
43
52
  * Generate MCP config with bouncer + user's MCP servers from ~/.claude.json.
44
- * Writes to ~/.mstro/mcp-config.json for use with --mcp-config flag.
53
+ * Writes to ~/.mstro/mcp-config-{sessionId}.json for use with --mcp-config flag.
54
+ * Per-session files prevent concurrent sessions from overwriting each other's config.
55
+ *
56
+ * @param userPrompt — The user's original prompt, passed to the bouncer so its
57
+ * AI layer can distinguish user-requested operations from prompt injection.
58
+ * @param sessionId — Unique session identifier for per-session config isolation.
45
59
  */
46
- export function generateMcpConfig(workingDir, verbose = false) {
60
+ export function generateMcpConfig(workingDir, verbose = false, userPrompt, sessionId) {
47
61
  try {
48
62
  if (!existsSync(MCP_SERVER_PATH)) {
49
63
  herror(`[${new Date().toISOString()}] MCP server not found at ${MCP_SERVER_PATH}`);
50
64
  return null;
51
65
  }
66
+ const bouncerEnv = {
67
+ BOUNCER_USE_AI: 'true',
68
+ MSTRO_ROOT: MSTRO_ROOT,
69
+ };
70
+ if (userPrompt) {
71
+ bouncerEnv.BOUNCER_USER_PROMPT = userPrompt.length > MAX_USER_PROMPT_LENGTH
72
+ ? truncatePrompt(userPrompt)
73
+ : userPrompt;
74
+ }
52
75
  const mcpServers = {
53
76
  'mstro-bouncer': {
54
77
  command: 'npx',
55
78
  args: ['tsx', MCP_SERVER_PATH],
56
79
  description: 'Mstro security bouncer for approving/denying Claude Code tool use',
57
- env: { BOUNCER_USE_AI: 'true', MSTRO_ROOT: MSTRO_ROOT }
80
+ env: bouncerEnv,
58
81
  },
59
82
  ...loadUserMcpServers(workingDir, verbose)
60
83
  };
@@ -62,7 +85,8 @@ export function generateMcpConfig(workingDir, verbose = false) {
62
85
  if (!existsSync(configDir)) {
63
86
  mkdirSync(configDir, { recursive: true });
64
87
  }
65
- const configPath = join(configDir, 'mcp-config.json');
88
+ const configFileName = sessionId ? `mcp-config-${sessionId}.json` : 'mcp-config.json';
89
+ const configPath = join(configDir, configFileName);
66
90
  writeFileSync(configPath, JSON.stringify({ mcpServers }, null, 2));
67
91
  if (verbose) {
68
92
  hlog(`[${new Date().toISOString()}] Generated MCP config at ${configPath} (${Object.keys(mcpServers).length} servers)`);
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../../server/cli/headless/mcp-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../../server/cli/headless/mcp-config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/runner.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,cAAc,EAGd,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtJ;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAO1E;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,gBAAgB,CAAwC;gBAEpD,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC;IAkC3C;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IAcnC;;OAEG;YACW,eAAe;IAkF7B;;OAEG;YACW,oBAAoB;IAalC;;OAEG;IACH,OAAO,IAAI,IAAI;IAoBf;;;OAGG;IACH,YAAY,IAAI,MAAM;CAUvB"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../../server/cli/headless/runner.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,cAAc,EAGd,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtJ;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAO1E;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,gBAAgB,CAAwC;gBAEpD,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC;IAiC3C;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IAcnC;;OAEG;YACW,eAAe;IAkF7B;;OAEG;YACW,oBAAoB;IAalC;;OAEG;IACH,OAAO,IAAI,IAAI;IAoBf;;;OAGG;IACH,YAAY,IAAI,MAAM;CAUvB"}
@@ -51,7 +51,6 @@ export class HeadlessRunner {
51
51
  enableToolWatchdog: config.enableToolWatchdog !== false,
52
52
  maxAutoRetries: config.maxAutoRetries ?? 2,
53
53
  onToolTimeout: config.onToolTimeout,
54
- sandboxed: config.sandboxed,
55
54
  extraEnv: config.extraEnv,
56
55
  };
57
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../server/cli/headless/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../../../server/cli/headless/runner.ts"],"names":[],"mappings":"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"}
@@ -111,8 +111,6 @@ export interface HeadlessConfig {
111
111
  maxAutoRetries?: number;
112
112
  /** Called when a tool times out with checkpoint data */
113
113
  onToolTimeout?: (checkpoint: ExecutionCheckpoint) => void;
114
- /** When true, spawn Claude with sanitized env (strips secrets, HOME=workingDir) */
115
- sandboxed?: boolean;
116
114
  /** Extra environment variables to merge into the spawned Claude process env */
117
115
  extraEnv?: Record<string, string>;
118
116
  /** Tools to disallow in the spawned Claude session (passed as --disallowedTools) */
@@ -200,7 +198,7 @@ export interface ExecutionResult {
200
198
  stopReason?: string;
201
199
  }
202
200
  /** Resolved config with all defaults applied */
203
- export type ResolvedHeadlessConfig = Omit<Required<HeadlessConfig>, 'outputCallback' | 'thinkingCallback' | 'toolUseCallback' | 'tokenUsageCallback' | 'continueSession' | 'claudeSessionId' | 'imageAttachments' | 'model' | 'toolTimeoutProfiles' | 'onToolTimeout' | 'sandboxed' | 'extraEnv' | 'disallowedTools'> & {
201
+ export type ResolvedHeadlessConfig = Omit<Required<HeadlessConfig>, 'outputCallback' | 'thinkingCallback' | 'toolUseCallback' | 'tokenUsageCallback' | 'continueSession' | 'claudeSessionId' | 'imageAttachments' | 'model' | 'toolTimeoutProfiles' | 'onToolTimeout' | 'extraEnv' | 'disallowedTools'> & {
204
202
  outputCallback?: (text: string) => void;
205
203
  thinkingCallback?: (text: string) => void;
206
204
  toolUseCallback?: (event: ToolUseEvent) => void;
@@ -214,7 +212,6 @@ export type ResolvedHeadlessConfig = Omit<Required<HeadlessConfig>, 'outputCallb
214
212
  model?: string;
215
213
  toolTimeoutProfiles?: Record<string, Partial<ToolTimeoutProfile>>;
216
214
  onToolTimeout?: (checkpoint: ExecutionCheckpoint) => void;
217
- sandboxed?: boolean;
218
215
  extraEnv?: Record<string, string>;
219
216
  disallowedTools?: string[];
220
217
  };