mstro-app 0.1.58 → 0.2.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/bin/commands/login.js +27 -14
- package/bin/commands/logout.js +35 -1
- package/bin/commands/status.js +1 -1
- package/bin/mstro.js +5 -108
- package/dist/server/cli/headless/claude-invoker.d.ts.map +1 -1
- package/dist/server/cli/headless/claude-invoker.js +432 -103
- 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 +29 -7
- package/dist/server/cli/headless/runner.js.map +1 -1
- package/dist/server/cli/headless/stall-assessor.d.ts +77 -1
- package/dist/server/cli/headless/stall-assessor.d.ts.map +1 -1
- package/dist/server/cli/headless/stall-assessor.js +336 -20
- package/dist/server/cli/headless/stall-assessor.js.map +1 -1
- package/dist/server/cli/headless/tool-watchdog.d.ts +67 -0
- package/dist/server/cli/headless/tool-watchdog.d.ts.map +1 -0
- package/dist/server/cli/headless/tool-watchdog.js +296 -0
- package/dist/server/cli/headless/tool-watchdog.js.map +1 -0
- package/dist/server/cli/headless/types.d.ts +80 -1
- package/dist/server/cli/headless/types.d.ts.map +1 -1
- package/dist/server/cli/improvisation-session-manager.d.ts +109 -2
- package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
- package/dist/server/cli/improvisation-session-manager.js +737 -132
- package/dist/server/cli/improvisation-session-manager.js.map +1 -1
- package/dist/server/index.js +5 -10
- 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 +13 -3
- 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 +4 -9
- 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 +3 -51
- package/dist/server/services/terminal/pty-manager.d.ts.map +1 -1
- package/dist/server/services/terminal/pty-manager.js +14 -100
- package/dist/server/services/terminal/pty-manager.js.map +1 -1
- package/dist/server/services/websocket/handler.d.ts +36 -15
- package/dist/server/services/websocket/handler.d.ts.map +1 -1
- package/dist/server/services/websocket/handler.js +452 -223
- package/dist/server/services/websocket/handler.js.map +1 -1
- package/dist/server/services/websocket/types.d.ts +6 -2
- package/dist/server/services/websocket/types.d.ts.map +1 -1
- package/hooks/bouncer.sh +11 -4
- package/package.json +4 -1
- package/server/cli/headless/claude-invoker.ts +602 -119
- package/server/cli/headless/index.ts +7 -1
- package/server/cli/headless/prompt-utils.ts +37 -5
- package/server/cli/headless/runner.ts +30 -8
- package/server/cli/headless/stall-assessor.ts +453 -22
- package/server/cli/headless/tool-watchdog.ts +390 -0
- package/server/cli/headless/types.ts +84 -1
- package/server/cli/improvisation-session-manager.ts +884 -143
- package/server/index.ts +5 -10
- package/server/mcp/bouncer-integration.ts +28 -0
- package/server/mcp/security-audit.ts +12 -8
- package/server/mcp/security-patterns.ts +8 -2
- package/server/routes/improvise.ts +6 -6
- package/server/services/analytics.ts +13 -3
- package/server/services/platform.test.ts +0 -10
- package/server/services/platform.ts +4 -10
- package/server/services/sandbox-utils.ts +78 -0
- package/server/services/settings.ts +25 -0
- package/server/services/terminal/pty-manager.ts +16 -127
- package/server/services/websocket/handler.ts +515 -251
- package/server/services/websocket/types.ts +10 -4
- 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
|
@@ -62,6 +62,7 @@ export declare class WebSocketImproviseHandler {
|
|
|
62
62
|
* Handle file-related messages (autocomplete, readFile, recordSelection, notifications)
|
|
63
63
|
*/
|
|
64
64
|
private handleFileMessage;
|
|
65
|
+
private handleReadFile;
|
|
65
66
|
/**
|
|
66
67
|
* Handle terminal messages
|
|
67
68
|
*/
|
|
@@ -271,6 +272,12 @@ export declare class WebSocketImproviseHandler {
|
|
|
271
272
|
* Sometimes Claude outputs reasoning before the actual message, so we need to parse it.
|
|
272
273
|
*/
|
|
273
274
|
private extractCommitMessage;
|
|
275
|
+
/**
|
|
276
|
+
* Strip injected coauthor/attribution lines from a commit message.
|
|
277
|
+
* The Claude Code CLI appends "Co-Authored-By" lines to LLM output.
|
|
278
|
+
* We detect and remove them by matching known marker strings.
|
|
279
|
+
*/
|
|
280
|
+
private stripCoauthorLines;
|
|
274
281
|
/**
|
|
275
282
|
* Handle git push request
|
|
276
283
|
*/
|
|
@@ -295,6 +302,35 @@ export declare class WebSocketImproviseHandler {
|
|
|
295
302
|
* Set the git directory for operations
|
|
296
303
|
*/
|
|
297
304
|
private handleGitSetDirectory;
|
|
305
|
+
/**
|
|
306
|
+
* Get remote info for PR creation (remote URL, provider, default branch)
|
|
307
|
+
*/
|
|
308
|
+
private handleGitGetRemoteInfo;
|
|
309
|
+
private getDefaultBranch;
|
|
310
|
+
private checkGitCliStatus;
|
|
311
|
+
private listRemoteBranches;
|
|
312
|
+
/** Check if a binary runs successfully (exit code 0) */
|
|
313
|
+
private spawnCheck;
|
|
314
|
+
/** Detect which CLI binary to use for PR creation based on remote URL */
|
|
315
|
+
private detectPRCliBin;
|
|
316
|
+
/** Send PR success and optionally persist base branch */
|
|
317
|
+
private sendPRCreated;
|
|
318
|
+
/**
|
|
319
|
+
* Create a pull/merge request using gh CLI (GitHub) or open browser URL (fallback)
|
|
320
|
+
*/
|
|
321
|
+
private handleGitCreatePR;
|
|
322
|
+
/** Attempt to create a PR/MR via CLI. Returns { created, url, error } */
|
|
323
|
+
private tryCliPRCreate;
|
|
324
|
+
/** Classify a CLI PR creation error into a user-facing message */
|
|
325
|
+
private classifyCliPRError;
|
|
326
|
+
/** Spawn a process and capture stdout/stderr */
|
|
327
|
+
private spawnWithOutput;
|
|
328
|
+
/** Build a browser URL for PR creation (fallback when no CLI) */
|
|
329
|
+
private buildBrowserPRUrl;
|
|
330
|
+
/**
|
|
331
|
+
* Generate a PR title and description using Haiku, based on the diff against the base branch.
|
|
332
|
+
*/
|
|
333
|
+
private handleGitGeneratePRDescription;
|
|
298
334
|
/**
|
|
299
335
|
* Initialize a new terminal session or reconnect to existing one
|
|
300
336
|
*/
|
|
@@ -319,7 +355,6 @@ export declare class WebSocketImproviseHandler {
|
|
|
319
355
|
* Handle terminal close
|
|
320
356
|
*/
|
|
321
357
|
private handleTerminalClose;
|
|
322
|
-
private persistentHandlers;
|
|
323
358
|
private terminalListenerCleanups;
|
|
324
359
|
private terminalSubscribers;
|
|
325
360
|
/**
|
|
@@ -330,24 +365,10 @@ export declare class WebSocketImproviseHandler {
|
|
|
330
365
|
* Remove a WS subscriber from a terminal and clean up if no subscribers remain.
|
|
331
366
|
*/
|
|
332
367
|
private removeTerminalSubscriber;
|
|
333
|
-
/**
|
|
334
|
-
* Attach persistent (tmux) terminal handlers for output/exit broadcasting.
|
|
335
|
-
*/
|
|
336
|
-
private attachPersistentHandlers;
|
|
337
368
|
/**
|
|
338
369
|
* Set up PTY event listeners that broadcast to all subscribers.
|
|
339
370
|
* Only creates listeners once per terminal (idempotent).
|
|
340
371
|
*/
|
|
341
372
|
private setupTerminalBroadcastListeners;
|
|
342
|
-
/**
|
|
343
|
-
* Initialize a persistent (tmux-backed) terminal session
|
|
344
|
-
* These sessions survive server restarts.
|
|
345
|
-
* Uses subscriber pattern for multi-client output broadcasting.
|
|
346
|
-
*/
|
|
347
|
-
private handleTerminalInitPersistent;
|
|
348
|
-
/**
|
|
349
|
-
* List all persistent terminal sessions (including those from previous server runs)
|
|
350
|
-
*/
|
|
351
|
-
private handleTerminalListPersistent;
|
|
352
373
|
}
|
|
353
374
|
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/handler.ts"],"names":[],"mappings":"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"}
|