mstro-app 0.1.58 → 0.3.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.
- package/PRIVACY.md +126 -0
- package/README.md +24 -23
- package/bin/commands/login.js +85 -42
- package/bin/commands/logout.js +35 -1
- package/bin/commands/status.js +1 -1
- package/bin/mstro.js +231 -131
- package/dist/server/cli/headless/claude-invoker.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker.js +550 -115
- package/dist/server/cli/headless/claude-invoker.js.map +1 -1
- package/dist/server/cli/headless/index.d.ts +2 -1
- package/dist/server/cli/headless/index.d.ts.map +1 -1
- package/dist/server/cli/headless/index.js +2 -0
- package/dist/server/cli/headless/index.js.map +1 -1
- package/dist/server/cli/headless/prompt-utils.d.ts +5 -8
- package/dist/server/cli/headless/prompt-utils.d.ts.map +1 -1
- package/dist/server/cli/headless/prompt-utils.js +40 -5
- package/dist/server/cli/headless/prompt-utils.js.map +1 -1
- package/dist/server/cli/headless/runner.d.ts +1 -1
- package/dist/server/cli/headless/runner.d.ts.map +1 -1
- package/dist/server/cli/headless/runner.js +52 -7
- package/dist/server/cli/headless/runner.js.map +1 -1
- package/dist/server/cli/headless/stall-assessor.d.ts +79 -1
- package/dist/server/cli/headless/stall-assessor.d.ts.map +1 -1
- package/dist/server/cli/headless/stall-assessor.js +355 -20
- package/dist/server/cli/headless/stall-assessor.js.map +1 -1
- package/dist/server/cli/headless/tool-watchdog.d.ts +70 -0
- package/dist/server/cli/headless/tool-watchdog.d.ts.map +1 -0
- package/dist/server/cli/headless/tool-watchdog.js +302 -0
- package/dist/server/cli/headless/tool-watchdog.js.map +1 -0
- package/dist/server/cli/headless/types.d.ts +98 -1
- package/dist/server/cli/headless/types.d.ts.map +1 -1
- package/dist/server/cli/improvisation-session-manager.d.ts +136 -2
- package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
- package/dist/server/cli/improvisation-session-manager.js +929 -132
- package/dist/server/cli/improvisation-session-manager.js.map +1 -1
- package/dist/server/index.js +5 -13
- package/dist/server/index.js.map +1 -1
- package/dist/server/mcp/bouncer-integration.d.ts.map +1 -1
- package/dist/server/mcp/bouncer-integration.js +18 -0
- package/dist/server/mcp/bouncer-integration.js.map +1 -1
- package/dist/server/mcp/security-audit.d.ts +2 -2
- package/dist/server/mcp/security-audit.d.ts.map +1 -1
- package/dist/server/mcp/security-audit.js +12 -8
- package/dist/server/mcp/security-audit.js.map +1 -1
- package/dist/server/mcp/security-patterns.d.ts.map +1 -1
- package/dist/server/mcp/security-patterns.js +9 -4
- package/dist/server/mcp/security-patterns.js.map +1 -1
- package/dist/server/routes/improvise.js +6 -6
- package/dist/server/routes/improvise.js.map +1 -1
- package/dist/server/services/analytics.d.ts +2 -0
- package/dist/server/services/analytics.d.ts.map +1 -1
- package/dist/server/services/analytics.js +26 -4
- package/dist/server/services/analytics.js.map +1 -1
- package/dist/server/services/platform.d.ts.map +1 -1
- package/dist/server/services/platform.js +17 -10
- package/dist/server/services/platform.js.map +1 -1
- package/dist/server/services/sandbox-utils.d.ts +6 -0
- package/dist/server/services/sandbox-utils.d.ts.map +1 -0
- package/dist/server/services/sandbox-utils.js +72 -0
- package/dist/server/services/sandbox-utils.js.map +1 -0
- package/dist/server/services/settings.d.ts +6 -0
- package/dist/server/services/settings.d.ts.map +1 -1
- package/dist/server/services/settings.js +21 -0
- package/dist/server/services/settings.js.map +1 -1
- package/dist/server/services/terminal/pty-manager.d.ts +5 -51
- package/dist/server/services/terminal/pty-manager.d.ts.map +1 -1
- package/dist/server/services/terminal/pty-manager.js +63 -102
- package/dist/server/services/terminal/pty-manager.js.map +1 -1
- package/dist/server/services/websocket/file-explorer-handlers.d.ts +5 -0
- package/dist/server/services/websocket/file-explorer-handlers.d.ts.map +1 -0
- package/dist/server/services/websocket/file-explorer-handlers.js +518 -0
- package/dist/server/services/websocket/file-explorer-handlers.js.map +1 -0
- package/dist/server/services/websocket/git-handlers.d.ts +36 -0
- package/dist/server/services/websocket/git-handlers.d.ts.map +1 -0
- package/dist/server/services/websocket/git-handlers.js +797 -0
- package/dist/server/services/websocket/git-handlers.js.map +1 -0
- package/dist/server/services/websocket/git-pr-handlers.d.ts +4 -0
- package/dist/server/services/websocket/git-pr-handlers.d.ts.map +1 -0
- package/dist/server/services/websocket/git-pr-handlers.js +299 -0
- package/dist/server/services/websocket/git-pr-handlers.js.map +1 -0
- package/dist/server/services/websocket/git-worktree-handlers.d.ts +4 -0
- package/dist/server/services/websocket/git-worktree-handlers.d.ts.map +1 -0
- package/dist/server/services/websocket/git-worktree-handlers.js +353 -0
- package/dist/server/services/websocket/git-worktree-handlers.js.map +1 -0
- package/dist/server/services/websocket/handler-context.d.ts +32 -0
- package/dist/server/services/websocket/handler-context.d.ts.map +1 -0
- package/dist/server/services/websocket/handler-context.js +4 -0
- package/dist/server/services/websocket/handler-context.js.map +1 -0
- package/dist/server/services/websocket/handler.d.ts +27 -338
- package/dist/server/services/websocket/handler.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.js +74 -2106
- package/dist/server/services/websocket/handler.js.map +1 -1
- package/dist/server/services/websocket/index.d.ts +1 -1
- package/dist/server/services/websocket/index.d.ts.map +1 -1
- package/dist/server/services/websocket/index.js.map +1 -1
- package/dist/server/services/websocket/session-handlers.d.ts +10 -0
- package/dist/server/services/websocket/session-handlers.d.ts.map +1 -0
- package/dist/server/services/websocket/session-handlers.js +507 -0
- package/dist/server/services/websocket/session-handlers.js.map +1 -0
- package/dist/server/services/websocket/settings-handlers.d.ts +6 -0
- package/dist/server/services/websocket/settings-handlers.d.ts.map +1 -0
- package/dist/server/services/websocket/settings-handlers.js +125 -0
- package/dist/server/services/websocket/settings-handlers.js.map +1 -0
- package/dist/server/services/websocket/tab-handlers.d.ts +10 -0
- package/dist/server/services/websocket/tab-handlers.d.ts.map +1 -0
- package/dist/server/services/websocket/tab-handlers.js +131 -0
- package/dist/server/services/websocket/tab-handlers.js.map +1 -0
- package/dist/server/services/websocket/terminal-handlers.d.ts +9 -0
- package/dist/server/services/websocket/terminal-handlers.d.ts.map +1 -0
- package/dist/server/services/websocket/terminal-handlers.js +220 -0
- package/dist/server/services/websocket/terminal-handlers.js.map +1 -0
- package/dist/server/services/websocket/types.d.ts +67 -2
- package/dist/server/services/websocket/types.d.ts.map +1 -1
- package/hooks/bouncer.sh +11 -4
- package/package.json +7 -2
- package/server/README.md +176 -159
- package/server/cli/headless/claude-invoker.ts +740 -133
- package/server/cli/headless/index.ts +7 -1
- package/server/cli/headless/output-utils.test.ts +225 -0
- package/server/cli/headless/prompt-utils.ts +37 -5
- package/server/cli/headless/runner.ts +55 -8
- package/server/cli/headless/stall-assessor.test.ts +165 -0
- package/server/cli/headless/stall-assessor.ts +478 -22
- package/server/cli/headless/tool-watchdog.test.ts +429 -0
- package/server/cli/headless/tool-watchdog.ts +398 -0
- package/server/cli/headless/types.ts +93 -1
- package/server/cli/improvisation-session-manager.ts +1133 -145
- package/server/index.ts +5 -14
- package/server/mcp/README.md +59 -67
- package/server/mcp/bouncer-integration.test.ts +161 -0
- package/server/mcp/bouncer-integration.ts +28 -0
- package/server/mcp/security-audit.ts +12 -8
- package/server/mcp/security-patterns.test.ts +258 -0
- package/server/mcp/security-patterns.ts +8 -2
- package/server/routes/improvise.ts +6 -6
- package/server/services/analytics.ts +26 -4
- package/server/services/platform.test.ts +0 -10
- package/server/services/platform.ts +16 -11
- package/server/services/sandbox-utils.ts +78 -0
- package/server/services/settings.ts +25 -0
- package/server/services/terminal/pty-manager.ts +68 -129
- package/server/services/websocket/autocomplete.test.ts +194 -0
- package/server/services/websocket/file-explorer-handlers.ts +587 -0
- package/server/services/websocket/git-handlers.ts +924 -0
- package/server/services/websocket/git-pr-handlers.ts +363 -0
- package/server/services/websocket/git-worktree-handlers.ts +403 -0
- package/server/services/websocket/handler-context.ts +44 -0
- package/server/services/websocket/handler.test.ts +1 -1
- package/server/services/websocket/handler.ts +90 -2421
- package/server/services/websocket/index.ts +1 -1
- package/server/services/websocket/session-handlers.ts +574 -0
- package/server/services/websocket/settings-handlers.ts +150 -0
- package/server/services/websocket/tab-handlers.ts +150 -0
- package/server/services/websocket/terminal-handlers.ts +277 -0
- package/server/services/websocket/types.ts +145 -4
- package/bin/release.sh +0 -110
- package/dist/server/services/terminal/tmux-manager.d.ts +0 -82
- package/dist/server/services/terminal/tmux-manager.d.ts.map +0 -1
- package/dist/server/services/terminal/tmux-manager.js +0 -352
- package/dist/server/services/terminal/tmux-manager.js.map +0 -1
- package/server/services/terminal/tmux-manager.ts +0 -426
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/types.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IACjC,KAAK,IAAI,IAAI,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAElB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EACA,SAAS,GACT,QAAQ,GACR,YAAY,GACZ,aAAa,GACb,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,KAAK,GACL,cAAc,GACd,UAAU,GACV,MAAM,GACN,SAAS,GACT,eAAe,GACf,SAAS,GACT,QAAQ,GACR,iBAAiB,GACjB,4BAA4B,GAC5B,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/types.ts"],"names":[],"mappings":"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"}
|
package/hooks/bouncer.sh
CHANGED
|
@@ -49,10 +49,17 @@ function output(decision, reason) {
|
|
|
49
49
|
console.log(JSON.stringify({ decision, reason }));
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
// Quick path for read-only operations
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
// Quick path for read-only and side-effect-free operations
|
|
53
|
+
const safeOps = ['Read', 'Glob', 'Grep', 'Search', 'List', 'WebFetch', 'WebSearch',
|
|
54
|
+
'ExitPlanMode', 'EnterPlanMode', 'TodoWrite', 'AskUserQuestion'];
|
|
55
|
+
if (safeOps.includes(toolName)) {
|
|
56
|
+
output('allow', 'Safe operation (no dangerous side effects)');
|
|
57
|
+
process.exit(0);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Quick path for malformed tool calls with empty params (no-ops)
|
|
61
|
+
if (Object.keys(toolInput).length === 0 && ['Edit', 'Write'].includes(toolName)) {
|
|
62
|
+
output('allow', 'Empty parameters - no-op');
|
|
56
63
|
process.exit(0);
|
|
57
64
|
}
|
|
58
65
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mstro-app",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"description": "Run Claude Code from any browser - streams live sessions from your machine to mstro.app",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"author": "Mstro",
|
|
@@ -31,6 +31,8 @@
|
|
|
31
31
|
"server/",
|
|
32
32
|
"hooks/",
|
|
33
33
|
"dist/",
|
|
34
|
+
"PRIVACY.md",
|
|
35
|
+
"!bin/release.sh",
|
|
34
36
|
"!**/*.backup",
|
|
35
37
|
"!**/*.bak",
|
|
36
38
|
"!**/.env",
|
|
@@ -64,6 +66,9 @@
|
|
|
64
66
|
"optionalDependencies": {
|
|
65
67
|
"node-pty": "^1.1.0"
|
|
66
68
|
},
|
|
69
|
+
"overrides": {
|
|
70
|
+
"minimatch": ">=10.2.1"
|
|
71
|
+
},
|
|
67
72
|
"devDependencies": {
|
|
68
73
|
"@biomejs/biome": "^2.3.13",
|
|
69
74
|
"@types/node": "^24.10.7",
|
package/server/README.md
CHANGED
|
@@ -1,191 +1,208 @@
|
|
|
1
|
-
# Mstro
|
|
1
|
+
# Mstro CLI Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Local HTTP and WebSocket server that runs on the user's machine. Serves as the bridge between the mstro.app web interface and Claude Code.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## Running
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
```bash
|
|
8
|
+
# From cli/ directory
|
|
9
|
+
npm run dev # Dev server with tsx (port 4101)
|
|
10
|
+
npm run start # Production server
|
|
11
|
+
npm run dev:mcp # MCP bouncer server only
|
|
12
|
+
```
|
|
8
13
|
|
|
9
|
-
|
|
14
|
+
Port 4101 by default. Auto-finds an available port if taken (increments up to +20).
|
|
10
15
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
15
|
-
- **
|
|
16
|
-
- **
|
|
16
|
+
## Stack
|
|
17
|
+
|
|
18
|
+
- **Runtime:** Node.js 18+ with tsx (TypeScript execution, no build step in dev)
|
|
19
|
+
- **Framework:** Hono + @hono/node-server
|
|
20
|
+
- **WebSocket:** ws library for platform relay and local connections
|
|
21
|
+
- **MCP:** @modelcontextprotocol/sdk for security bouncer
|
|
22
|
+
- **Search:** Fuse.js for fuzzy file matching with frecency scoring
|
|
23
|
+
- **Terminal:** node-pty (optional) for PTY sessions
|
|
24
|
+
- **Analytics:** PostHog (opt-out)
|
|
25
|
+
- **Errors:** Sentry
|
|
17
26
|
|
|
18
27
|
## Architecture
|
|
19
28
|
|
|
29
|
+
```
|
|
30
|
+
Browser (mstro.app)
|
|
31
|
+
↕ WebSocket (platform relay)
|
|
32
|
+
Platform Server (api.mstro.app)
|
|
33
|
+
↕ WebSocket (persistent connection)
|
|
34
|
+
CLI Server (this code, port 4101)
|
|
35
|
+
├── HTTP API (file listing, instance management, history)
|
|
36
|
+
├── WebSocket (/ws) — real-time messages (execute, git, terminal, files)
|
|
37
|
+
├── Platform Connection — relay to/from mstro.app
|
|
38
|
+
└── Claude Code — headless execution via CLI spawning
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Source Layout
|
|
42
|
+
|
|
20
43
|
```
|
|
21
44
|
server/
|
|
22
|
-
├── index.ts
|
|
23
|
-
├──
|
|
45
|
+
├── index.ts # Hono app entry, port detection, WebSocket setup
|
|
46
|
+
├── routes/
|
|
47
|
+
│ ├── index.ts # Route aggregator
|
|
48
|
+
│ ├── files.ts # File REST endpoints
|
|
49
|
+
│ ├── improvise.ts # Improv session history routes
|
|
50
|
+
│ ├── instances.ts # Instance management routes
|
|
51
|
+
│ └── notifications.ts # Notification generation routes
|
|
24
52
|
├── services/
|
|
25
|
-
│
|
|
26
|
-
|
|
53
|
+
│ ├── auth.ts # Local session token auth (~/.mstro/session-token)
|
|
54
|
+
│ ├── platform.ts # WebSocket connection to platform server
|
|
55
|
+
│ ├── credentials.ts # Token storage (~/.mstro/)
|
|
56
|
+
│ ├── client-id.ts # Persistent client UUID
|
|
57
|
+
│ ├── instances.ts # Instance lifecycle + registry
|
|
58
|
+
│ ├── files.ts # File system operations
|
|
59
|
+
│ ├── analytics.ts # PostHog analytics
|
|
60
|
+
│ ├── settings.ts # User settings persistence
|
|
61
|
+
│ ├── pathUtils.ts # Path validation
|
|
62
|
+
│ ├── sandbox-utils.ts # Environment sandboxing
|
|
63
|
+
│ ├── sentry.ts # Error tracking
|
|
64
|
+
│ ├── terminal/
|
|
65
|
+
│ │ └── pty-manager.ts # PTY session management
|
|
66
|
+
│ └── websocket/
|
|
67
|
+
│ ├── handler.ts # Main WebSocket message router
|
|
68
|
+
│ ├── handler-context.ts # Handler context interface
|
|
69
|
+
│ ├── session-registry.ts # Session persistence registry
|
|
70
|
+
│ ├── autocomplete.ts # File autocomplete + frecency
|
|
71
|
+
│ ├── file-utils.ts # Directory scanning, gitignore
|
|
72
|
+
│ ├── file-explorer-handlers.ts # File explorer operations
|
|
73
|
+
│ ├── git-handlers.ts # Git status/log/staging
|
|
74
|
+
│ ├── git-pr-handlers.ts # Git PR operations
|
|
75
|
+
│ ├── git-worktree-handlers.ts # Git worktree operations
|
|
76
|
+
│ ├── terminal-handlers.ts # Terminal I/O handlers
|
|
77
|
+
│ ├── session-handlers.ts # Tab/session initialization
|
|
78
|
+
│ ├── settings-handlers.ts # Settings sync
|
|
79
|
+
│ ├── tab-handlers.ts # Tab management
|
|
80
|
+
│ └── types.ts # WebSocket message types
|
|
81
|
+
├── cli/
|
|
82
|
+
│ ├── improvisation-session-manager.ts # Session orchestration + history
|
|
83
|
+
│ └── headless/
|
|
84
|
+
│ ├── runner.ts # Main orchestrator — spawns Claude CLI
|
|
85
|
+
│ ├── claude-invoker.ts # Claude CLI process spawning
|
|
86
|
+
│ ├── mcp-config.ts # MCP bouncer config generation
|
|
87
|
+
│ ├── prompt-utils.ts # Prompt enrichment
|
|
88
|
+
│ ├── output-utils.ts # Output parsing
|
|
89
|
+
│ ├── stall-assessor.ts # Stall detection/recovery
|
|
90
|
+
│ ├── tool-watchdog.ts # Tool timeout enforcement
|
|
91
|
+
│ └── types.ts # Headless runner types
|
|
92
|
+
├── mcp/
|
|
93
|
+
│ ├── server.ts # MCP server entry
|
|
94
|
+
│ ├── bouncer-integration.ts # 2-layer security (patterns + AI)
|
|
95
|
+
│ ├── security-patterns.ts # Threat pattern matching
|
|
96
|
+
│ ├── bouncer-cli.ts # CLI wrapper for hook integration
|
|
97
|
+
│ └── security-audit.ts # Audit logging
|
|
98
|
+
└── utils/
|
|
99
|
+
├── paths.ts # Path utilities
|
|
100
|
+
├── port.ts # Port detection
|
|
101
|
+
├── port-manager.ts # Port allocation
|
|
102
|
+
└── agent-manager.ts # Claude agent lifecycle
|
|
27
103
|
```
|
|
28
104
|
|
|
29
|
-
##
|
|
105
|
+
## HTTP API
|
|
30
106
|
|
|
31
|
-
###
|
|
32
|
-
```bash
|
|
33
|
-
npm run dev:server
|
|
34
|
-
```
|
|
107
|
+
### Public
|
|
35
108
|
|
|
36
|
-
|
|
109
|
+
- `GET /health` — Server status and version
|
|
110
|
+
- `GET /api/config` — Server configuration
|
|
37
111
|
|
|
38
|
-
|
|
39
|
-
PORT=8080 npm run dev:server
|
|
40
|
-
```
|
|
112
|
+
### Authenticated (session token required)
|
|
41
113
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"status": "ok",
|
|
50
|
-
"timestamp": "2025-11-14T14:45:42.425Z",
|
|
51
|
-
"version": "2.0.0",
|
|
52
|
-
"framework": "Hono"
|
|
53
|
-
}
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
- **GET** `/api/config` - Server configuration
|
|
57
|
-
```json
|
|
58
|
-
{
|
|
59
|
-
"lockWithPin": false,
|
|
60
|
-
"version": "2.0.0",
|
|
61
|
-
"framework": "Hono"
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Scores Management
|
|
66
|
-
|
|
67
|
-
- **GET** `/api/scores` - List all scores (local, global, examples)
|
|
68
|
-
```json
|
|
69
|
-
{
|
|
70
|
-
"scores": {
|
|
71
|
-
"localScores": [...],
|
|
72
|
-
"globalScores": [...],
|
|
73
|
-
"exampleScores": [...]
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
- **GET** `/api/scores/:filename` - Get a specific local score
|
|
79
|
-
- **GET** `/api/scores/examples/:filename` - Get a specific example score
|
|
80
|
-
- **GET** `/api/scores/global/:filename` - Get a specific global score
|
|
81
|
-
|
|
82
|
-
- **POST** `/api/scores` - Save a new score
|
|
83
|
-
```json
|
|
84
|
-
{
|
|
85
|
-
"metadata": {
|
|
86
|
-
"name": "My Score",
|
|
87
|
-
"version": "1.0.0",
|
|
88
|
-
"description": "Score description"
|
|
89
|
-
},
|
|
90
|
-
"config": {
|
|
91
|
-
"defaultModel": "sonnet"
|
|
92
|
-
},
|
|
93
|
-
"movements": [...],
|
|
94
|
-
"entryPoint": "step1"
|
|
95
|
-
}
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## Middleware Stack
|
|
99
|
-
|
|
100
|
-
1. **CORS** - Cross-origin resource sharing enabled for all routes
|
|
101
|
-
2. **Logger** - HTTP request logging for debugging
|
|
102
|
-
3. **Error Handling** - Centralized error handling with proper status codes
|
|
103
|
-
|
|
104
|
-
## Testing
|
|
105
|
-
|
|
106
|
-
### Manual Testing
|
|
114
|
+
- `GET /api/instances` — List running mstro instances
|
|
115
|
+
- `GET /api/instances/current` — Current instance info
|
|
116
|
+
- `POST /api/shutdown` — Graceful shutdown
|
|
117
|
+
- `GET /api/files?filter=...` — File listing with fuzzy search
|
|
118
|
+
- `GET /api/improvise/sessions` — List session history
|
|
119
|
+
- `GET /api/improvise/sessions/:id` — Get session details
|
|
120
|
+
- `POST /api/notifications/summarize` — Generate notification summary
|
|
107
121
|
|
|
108
|
-
|
|
109
|
-
# Health check
|
|
110
|
-
curl http://localhost:3001/health
|
|
122
|
+
## WebSocket API (`/ws`)
|
|
111
123
|
|
|
112
|
-
|
|
113
|
-
curl http://localhost:3001/api/scores
|
|
124
|
+
The WebSocket endpoint handles real-time communication for the web interface. Messages are JSON with a `type` field.
|
|
114
125
|
|
|
115
|
-
|
|
116
|
-
curl http://localhost:3001/api/scores/my-score.json
|
|
126
|
+
### Claude Execution
|
|
117
127
|
|
|
118
|
-
|
|
119
|
-
curl -X POST http://localhost:3001/api/scores \
|
|
120
|
-
-H "Content-Type: application/json" \
|
|
121
|
-
-d @score.json
|
|
122
|
-
```
|
|
128
|
+
`execute`, `cancel`, `new`, `approve`, `reject`, `initTab`, `resumeSession`
|
|
123
129
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
### ✅ Completed
|
|
127
|
-
- [x] Health check endpoint
|
|
128
|
-
- [x] Configuration endpoint
|
|
129
|
-
- [x] List all scores (local, global, examples)
|
|
130
|
-
- [x] Get specific score by filename and type
|
|
131
|
-
- [x] Save new scores
|
|
132
|
-
|
|
133
|
-
### 🔄 To Be Migrated
|
|
134
|
-
- [ ] Execute score endpoints
|
|
135
|
-
- [ ] WebSocket for improvise sessions
|
|
136
|
-
- [ ] Instances management
|
|
137
|
-
- [ ] Git integration endpoints
|
|
138
|
-
- [ ] Authentication/PIN management
|
|
139
|
-
- [ ] File autocomplete endpoint
|
|
140
|
-
- [ ] Score generation with AI (streaming)
|
|
141
|
-
|
|
142
|
-
## Type Safety
|
|
143
|
-
|
|
144
|
-
All routes are fully typed using TypeScript. The `OrchestraScore` type ensures consistency across the entire application:
|
|
145
|
-
|
|
146
|
-
```typescript
|
|
147
|
-
interface OrchestraScore {
|
|
148
|
-
metadata: {
|
|
149
|
-
name: string
|
|
150
|
-
version: string
|
|
151
|
-
description?: string
|
|
152
|
-
// ...
|
|
153
|
-
}
|
|
154
|
-
movements: Movement[]
|
|
155
|
-
entryPoint: string
|
|
156
|
-
}
|
|
157
|
-
```
|
|
130
|
+
### History
|
|
158
131
|
|
|
159
|
-
|
|
132
|
+
`getHistory`, `getSessions`, `getSessionsCount`, `getSessionById`, `deleteSession`, `clearHistory`, `searchHistory`
|
|
160
133
|
|
|
161
|
-
|
|
134
|
+
### File Operations
|
|
162
135
|
|
|
163
|
-
|
|
164
|
-
- **JSON parsing**: ~2x faster
|
|
165
|
-
- **Memory footprint**: ~60% smaller
|
|
166
|
-
- **Bundle size**: ~95% smaller
|
|
136
|
+
`autocomplete`, `readFile`, `recordSelection`, `listDirectory`, `writeFile`, `createFile`, `createDirectory`, `deleteFile`, `renameFile`, `searchFileContents`, `cancelSearch`, `findDefinition`, `notifyFileOpened`
|
|
167
137
|
|
|
168
|
-
|
|
138
|
+
### Terminal
|
|
169
139
|
|
|
170
|
-
|
|
171
|
-
2. **Implement streaming endpoints** for score generation
|
|
172
|
-
3. **Add authentication middleware** for PIN-based security
|
|
173
|
-
4. **Set up rate limiting** for production use
|
|
174
|
-
5. **Consider Bun runtime** for even better performance
|
|
140
|
+
`terminalInit`, `terminalReconnect`, `terminalList`, `terminalInput`, `terminalResize`, `terminalClose`
|
|
175
141
|
|
|
176
|
-
|
|
142
|
+
### Git
|
|
177
143
|
|
|
178
|
-
-
|
|
179
|
-
-
|
|
180
|
-
-
|
|
144
|
+
- Status: `gitStatus`, `gitLog`, `gitDiff`, `gitGetRemoteInfo`
|
|
145
|
+
- Staging: `gitStage`, `gitUnstage`, `gitCommit`, `gitCommitWithAI`
|
|
146
|
+
- Remote: `gitPush`, `gitPull`
|
|
147
|
+
- Branches: `gitListBranches`, `gitCheckout`, `gitCreateBranch`, `gitDeleteBranch`
|
|
148
|
+
- PRs: `gitCreatePR`, `gitGeneratePRDescription`
|
|
149
|
+
- Tags: `gitListTags`, `gitCreateTag`, `gitPushTag`
|
|
150
|
+
- Worktrees: `gitWorktreeList`, `gitWorktreeCreate`, `gitWorktreeRemove`, `gitWorktreePush`, `gitWorktreeCreatePR`, `gitWorktreeMerge`
|
|
151
|
+
- Merge: `gitMergePreview`, `gitMergeAbort`, `gitMergeComplete`
|
|
152
|
+
- Repo: `gitDiscoverRepos`, `gitSetDirectory`
|
|
181
153
|
|
|
182
|
-
|
|
154
|
+
### Tabs
|
|
183
155
|
|
|
184
|
-
|
|
185
|
-
```bash
|
|
186
|
-
npm run dev:mcp
|
|
187
|
-
# or
|
|
188
|
-
bun run server/mcp/server.ts
|
|
189
|
-
```
|
|
156
|
+
`getActiveTabs`, `createTab`, `reorderTabs`, `syncTabMeta`, `syncPromptText`, `removeTab`, `markTabViewed`
|
|
190
157
|
|
|
191
|
-
|
|
158
|
+
### Settings
|
|
159
|
+
|
|
160
|
+
`getSettings`, `updateSettings`
|
|
161
|
+
|
|
162
|
+
## Middleware
|
|
163
|
+
|
|
164
|
+
1. **CORS** — Localhost-only in production, permissive in dev
|
|
165
|
+
2. **Logger** — HTTP request logging via Hono logger
|
|
166
|
+
3. **Session Auth** — Token validation on `/api/*` routes (`x-session-token` header)
|
|
167
|
+
|
|
168
|
+
## Authentication
|
|
169
|
+
|
|
170
|
+
**Local:** Session token stored at `~/.mstro/session-token` (32 random bytes, hex-encoded). Validated via `x-session-token` header on HTTP or `?token=` query param on WebSocket.
|
|
171
|
+
|
|
172
|
+
**Platform:** Device credentials stored at `~/.mstro/credentials.json`. Token sent as first WebSocket message to platform relay (not in URL to avoid logging).
|
|
173
|
+
|
|
174
|
+
## Platform Relay
|
|
175
|
+
|
|
176
|
+
Persistent WebSocket connection to `wss://api.mstro.app/ws/client`:
|
|
177
|
+
|
|
178
|
+
- Heartbeat every 2 minutes (server TTL is 5 minutes)
|
|
179
|
+
- Token refresh every 30 days
|
|
180
|
+
- Exponential backoff reconnect (max 10 attempts, up to 30s delay)
|
|
181
|
+
- Relays messages between web clients and local WebSocket handlers
|
|
182
|
+
|
|
183
|
+
## Headless Runner
|
|
184
|
+
|
|
185
|
+
Executes Claude Code for improvise sessions:
|
|
186
|
+
|
|
187
|
+
1. Enriches prompt with accumulated context
|
|
188
|
+
2. Spawns `claude` CLI with `--print` and MCP bouncer config
|
|
189
|
+
3. Parses JSON output, estimates token usage
|
|
190
|
+
4. Supports stall detection (5min warning, 30min kill, 1hr hard cap)
|
|
191
|
+
5. Tool timeout enforcement via watchdog
|
|
192
|
+
6. Model selection (opus, sonnet, haiku)
|
|
193
|
+
|
|
194
|
+
## File Locations
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
~/.mstro/
|
|
198
|
+
├── session-token # Local auth token
|
|
199
|
+
├── credentials.json # Platform auth
|
|
200
|
+
├── client-id # Persistent UUID
|
|
201
|
+
├── config.json # Settings (telemetry)
|
|
202
|
+
├── instances.json # Running instance registry
|
|
203
|
+
├── autocomplete-frecency.json # File frecency data
|
|
204
|
+
├── mcp-config.json # Generated MCP config for Claude
|
|
205
|
+
├── history/ # Session history (one JSON per session)
|
|
206
|
+
└── logs/
|
|
207
|
+
└── bouncer-audit.jsonl # Bouncer decision log
|
|
208
|
+
```
|