mstro-app 0.4.21 → 0.4.24

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 (167) hide show
  1. package/README.md +66 -0
  2. package/dist/server/cli/headless/claude-invoker-process.js +1 -1
  3. package/dist/server/cli/headless/claude-invoker-process.js.map +1 -1
  4. package/dist/server/cli/headless/mcp-config.d.ts +1 -1
  5. package/dist/server/cli/headless/mcp-config.d.ts.map +1 -1
  6. package/dist/server/cli/headless/mcp-config.js +4 -1
  7. package/dist/server/cli/headless/mcp-config.js.map +1 -1
  8. package/dist/server/cli/headless/runner.d.ts.map +1 -1
  9. package/dist/server/cli/headless/runner.js +1 -0
  10. package/dist/server/cli/headless/runner.js.map +1 -1
  11. package/dist/server/cli/headless/types.d.ts +4 -1
  12. package/dist/server/cli/headless/types.d.ts.map +1 -1
  13. package/dist/server/index.js +9 -1
  14. package/dist/server/index.js.map +1 -1
  15. package/dist/server/mcp/bouncer-integration.d.ts.map +1 -1
  16. package/dist/server/mcp/bouncer-integration.js +9 -1
  17. package/dist/server/mcp/bouncer-integration.js.map +1 -1
  18. package/dist/server/mcp/security-analysis.d.ts +6 -0
  19. package/dist/server/mcp/security-analysis.d.ts.map +1 -1
  20. package/dist/server/mcp/security-analysis.js +16 -1
  21. package/dist/server/mcp/security-analysis.js.map +1 -1
  22. package/dist/server/mcp/security-patterns.d.ts +8 -0
  23. package/dist/server/mcp/security-patterns.d.ts.map +1 -1
  24. package/dist/server/mcp/security-patterns.js +47 -2
  25. package/dist/server/mcp/security-patterns.js.map +1 -1
  26. package/dist/server/services/deploy/ai-broker.d.ts +63 -0
  27. package/dist/server/services/deploy/ai-broker.d.ts.map +1 -0
  28. package/dist/server/services/deploy/ai-broker.js +360 -0
  29. package/dist/server/services/deploy/ai-broker.js.map +1 -0
  30. package/dist/server/services/deploy/board-execution-handler.d.ts +114 -0
  31. package/dist/server/services/deploy/board-execution-handler.d.ts.map +1 -0
  32. package/dist/server/services/deploy/board-execution-handler.js +621 -0
  33. package/dist/server/services/deploy/board-execution-handler.js.map +1 -0
  34. package/dist/server/services/deploy/credentials.d.ts +35 -0
  35. package/dist/server/services/deploy/credentials.d.ts.map +1 -0
  36. package/dist/server/services/deploy/credentials.js +177 -0
  37. package/dist/server/services/deploy/credentials.js.map +1 -0
  38. package/dist/server/services/deploy/deploy-ai-service.d.ts +107 -0
  39. package/dist/server/services/deploy/deploy-ai-service.d.ts.map +1 -0
  40. package/dist/server/services/deploy/deploy-ai-service.js +294 -0
  41. package/dist/server/services/deploy/deploy-ai-service.js.map +1 -0
  42. package/dist/server/services/deploy/headless-session-handler.d.ts +94 -0
  43. package/dist/server/services/deploy/headless-session-handler.d.ts.map +1 -0
  44. package/dist/server/services/deploy/headless-session-handler.js +274 -0
  45. package/dist/server/services/deploy/headless-session-handler.js.map +1 -0
  46. package/dist/server/services/file-explorer-ops.d.ts.map +1 -1
  47. package/dist/server/services/file-explorer-ops.js +2 -6
  48. package/dist/server/services/file-explorer-ops.js.map +1 -1
  49. package/dist/server/services/plan/agent-loader.d.ts +10 -0
  50. package/dist/server/services/plan/agent-loader.d.ts.map +1 -0
  51. package/dist/server/services/plan/agent-loader.js +65 -0
  52. package/dist/server/services/plan/agent-loader.js.map +1 -0
  53. package/dist/server/services/plan/composer.js +1 -1
  54. package/dist/server/services/plan/dependency-resolver.d.ts +1 -1
  55. package/dist/server/services/plan/dependency-resolver.js +2 -2
  56. package/dist/server/services/plan/dependency-resolver.js.map +1 -1
  57. package/dist/server/services/plan/executor.d.ts +6 -2
  58. package/dist/server/services/plan/executor.d.ts.map +1 -1
  59. package/dist/server/services/plan/executor.js +21 -6
  60. package/dist/server/services/plan/executor.js.map +1 -1
  61. package/dist/server/services/plan/front-matter.d.ts +5 -0
  62. package/dist/server/services/plan/front-matter.d.ts.map +1 -1
  63. package/dist/server/services/plan/front-matter.js +19 -0
  64. package/dist/server/services/plan/front-matter.js.map +1 -1
  65. package/dist/server/services/plan/issue-prompt-builder.d.ts +1 -1
  66. package/dist/server/services/plan/issue-prompt-builder.d.ts.map +1 -1
  67. package/dist/server/services/plan/issue-prompt-builder.js +1 -1
  68. package/dist/server/services/plan/issue-retry.d.ts +2 -0
  69. package/dist/server/services/plan/issue-retry.d.ts.map +1 -1
  70. package/dist/server/services/plan/issue-retry.js +1 -0
  71. package/dist/server/services/plan/issue-retry.js.map +1 -1
  72. package/dist/server/services/plan/output-manager.d.ts +2 -2
  73. package/dist/server/services/plan/output-manager.js +2 -2
  74. package/dist/server/services/plan/parser-core.d.ts +1 -1
  75. package/dist/server/services/plan/parser-core.js +1 -1
  76. package/dist/server/services/plan/parser-core.js.map +1 -1
  77. package/dist/server/services/plan/parser-migration.d.ts +2 -2
  78. package/dist/server/services/plan/parser-migration.d.ts.map +1 -1
  79. package/dist/server/services/plan/parser-migration.js +5 -5
  80. package/dist/server/services/plan/parser-migration.js.map +1 -1
  81. package/dist/server/services/plan/parser.d.ts.map +1 -1
  82. package/dist/server/services/plan/parser.js +4 -7
  83. package/dist/server/services/plan/parser.js.map +1 -1
  84. package/dist/server/services/plan/prompt-builder.d.ts +1 -1
  85. package/dist/server/services/plan/prompt-builder.d.ts.map +1 -1
  86. package/dist/server/services/plan/review-gate.d.ts +4 -0
  87. package/dist/server/services/plan/review-gate.d.ts.map +1 -1
  88. package/dist/server/services/plan/review-gate.js +89 -34
  89. package/dist/server/services/plan/review-gate.js.map +1 -1
  90. package/dist/server/services/plan/state-reconciler.d.ts.map +1 -1
  91. package/dist/server/services/plan/state-reconciler.js +21 -11
  92. package/dist/server/services/plan/state-reconciler.js.map +1 -1
  93. package/dist/server/services/plan/types.d.ts +2 -2
  94. package/dist/server/services/plan/types.d.ts.map +1 -1
  95. package/dist/server/services/plan/watcher.js +1 -1
  96. package/dist/server/services/sentry.d.ts.map +1 -1
  97. package/dist/server/services/sentry.js +8 -4
  98. package/dist/server/services/sentry.js.map +1 -1
  99. package/dist/server/services/websocket/deploy-handlers.d.ts +14 -0
  100. package/dist/server/services/websocket/deploy-handlers.d.ts.map +1 -0
  101. package/dist/server/services/websocket/deploy-handlers.js +409 -0
  102. package/dist/server/services/websocket/deploy-handlers.js.map +1 -0
  103. package/dist/server/services/websocket/handler.d.ts.map +1 -1
  104. package/dist/server/services/websocket/handler.js +4 -0
  105. package/dist/server/services/websocket/handler.js.map +1 -1
  106. package/dist/server/services/websocket/handlers/deploy-handlers.d.ts +11 -0
  107. package/dist/server/services/websocket/handlers/deploy-handlers.d.ts.map +1 -0
  108. package/dist/server/services/websocket/handlers/deploy-handlers.js +181 -0
  109. package/dist/server/services/websocket/handlers/deploy-handlers.js.map +1 -0
  110. package/dist/server/services/websocket/plan-board-handlers.d.ts.map +1 -1
  111. package/dist/server/services/websocket/plan-board-handlers.js +54 -1
  112. package/dist/server/services/websocket/plan-board-handlers.js.map +1 -1
  113. package/dist/server/services/websocket/plan-helpers.d.ts +1 -1
  114. package/dist/server/services/websocket/plan-helpers.d.ts.map +1 -1
  115. package/dist/server/services/websocket/plan-helpers.js +3 -4
  116. package/dist/server/services/websocket/plan-helpers.js.map +1 -1
  117. package/dist/server/services/websocket/plan-issue-handlers.d.ts.map +1 -1
  118. package/dist/server/services/websocket/plan-issue-handlers.js +5 -1
  119. package/dist/server/services/websocket/plan-issue-handlers.js.map +1 -1
  120. package/dist/server/services/websocket/plan-sprint-handlers.d.ts.map +1 -1
  121. package/dist/server/services/websocket/plan-sprint-handlers.js +3 -11
  122. package/dist/server/services/websocket/plan-sprint-handlers.js.map +1 -1
  123. package/dist/server/services/websocket/types.d.ts +264 -2
  124. package/dist/server/services/websocket/types.d.ts.map +1 -1
  125. package/package.json +1 -1
  126. package/server/cli/headless/claude-invoker-process.ts +1 -1
  127. package/server/cli/headless/mcp-config.ts +4 -1
  128. package/server/cli/headless/runner.ts +1 -0
  129. package/server/cli/headless/types.ts +4 -1
  130. package/server/index.ts +9 -1
  131. package/server/mcp/bouncer-integration.ts +9 -1
  132. package/server/mcp/security-analysis.ts +19 -0
  133. package/server/mcp/security-patterns.ts +53 -2
  134. package/server/services/deploy/ai-broker.ts +512 -0
  135. package/server/services/deploy/board-execution-handler.ts +847 -0
  136. package/server/services/deploy/credentials.ts +200 -0
  137. package/server/services/deploy/deploy-ai-service.ts +401 -0
  138. package/server/services/deploy/headless-session-handler.ts +415 -0
  139. package/server/services/file-explorer-ops.ts +2 -6
  140. package/server/services/plan/agent-loader.ts +73 -0
  141. package/server/services/plan/agents/review-code.md +28 -0
  142. package/server/services/plan/agents/review-custom.md +27 -0
  143. package/server/services/plan/agents/review-quality.md +42 -0
  144. package/server/services/plan/composer.ts +1 -1
  145. package/server/services/plan/dependency-resolver.ts +2 -2
  146. package/server/services/plan/executor.ts +21 -6
  147. package/server/services/plan/front-matter.ts +23 -0
  148. package/server/services/plan/issue-prompt-builder.ts +2 -2
  149. package/server/services/plan/issue-retry.ts +3 -0
  150. package/server/services/plan/output-manager.ts +2 -2
  151. package/server/services/plan/parser-core.ts +2 -2
  152. package/server/services/plan/parser-migration.ts +5 -5
  153. package/server/services/plan/parser.ts +4 -5
  154. package/server/services/plan/prompt-builder.ts +1 -1
  155. package/server/services/plan/review-gate.ts +104 -33
  156. package/server/services/plan/state-reconciler.ts +21 -11
  157. package/server/services/plan/types.ts +3 -3
  158. package/server/services/plan/watcher.ts +1 -1
  159. package/server/services/sentry.ts +8 -4
  160. package/server/services/websocket/deploy-handlers.ts +544 -0
  161. package/server/services/websocket/handler.ts +5 -1
  162. package/server/services/websocket/handlers/deploy-handlers.ts +231 -0
  163. package/server/services/websocket/plan-board-handlers.ts +53 -1
  164. package/server/services/websocket/plan-helpers.ts +3 -4
  165. package/server/services/websocket/plan-issue-handlers.ts +6 -1
  166. package/server/services/websocket/plan-sprint-handlers.ts +3 -9
  167. package/server/services/websocket/types.ts +333 -2
@@ -15,7 +15,7 @@ export interface WSContext {
15
15
  _ws?: unknown;
16
16
  }
17
17
  export interface WebSocketMessage {
18
- type: 'execute' | 'cancel' | 'getHistory' | 'getSessions' | 'getSessionsCount' | 'deleteSession' | 'getSessionById' | 'clearHistory' | 'searchHistory' | 'new' | 'autocomplete' | 'readFile' | 'ping' | 'initTab' | 'resumeSession' | 'approve' | 'reject' | 'recordSelection' | 'requestNotificationSummary' | 'terminalInit' | 'terminalReconnect' | 'terminalList' | 'terminalInput' | 'terminalResize' | 'terminalClose' | 'listDirectory' | 'writeFile' | 'createFile' | 'createDirectory' | 'deleteFile' | 'renameFile' | 'notifyFileOpened' | 'searchFileContents' | 'cancelSearch' | 'findDefinition' | 'gitStatus' | 'gitStage' | 'gitUnstage' | 'gitCommit' | 'gitCommitWithAI' | 'gitPush' | 'gitPull' | 'gitLog' | 'gitDiscoverRepos' | 'gitSetDirectory' | 'gitGetRemoteInfo' | 'gitCreatePR' | 'gitGeneratePRDescription' | 'gitListBranches' | 'gitCheckout' | 'gitCreateBranch' | 'gitDeleteBranch' | 'gitDiff' | 'gitShowCommit' | 'gitCommitDiff' | 'gitListTags' | 'gitCreateTag' | 'gitPushTag' | 'gitWorktreeList' | 'gitWorktreeCreate' | 'gitWorktreeCreateAndAssign' | 'gitWorktreeRemove' | 'tabWorktreeSwitch' | 'gitWorktreePush' | 'gitWorktreeCreatePR' | 'gitMergePreview' | 'gitWorktreeMerge' | 'gitMergeAbort' | 'gitMergeComplete' | 'getActiveTabs' | 'createTab' | 'reorderTabs' | 'syncTabMeta' | 'syncPromptText' | 'removeTab' | 'markTabViewed' | 'getSettings' | 'updateSettings' | 'qualityDetectTools' | 'qualityScan' | 'qualityInstallTools' | 'qualityCodeReview' | 'qualityFixIssues' | 'qualityLoadState' | 'qualitySaveDirectories' | 'fileUploadStart' | 'fileUploadChunk' | 'fileUploadComplete' | 'fileUploadCancel' | 'planInit' | 'planGetState' | 'planListIssues' | 'planGetIssue' | 'planGetSprint' | 'planGetMilestone' | 'planCreateIssue' | 'planUpdateIssue' | 'planDeleteIssue' | 'planScaffold' | 'planPrompt' | 'planExecute' | 'planExecuteEpic' | 'planPause' | 'planStop' | 'planResume' | 'planCreateBoard' | 'planUpdateBoard' | 'planArchiveBoard' | 'planGetBoard' | 'planGetBoardState' | 'planReorderBoards' | 'planSetActiveBoard' | 'planGetBoardArtifacts' | 'planCreateSprint' | 'planActivateSprint' | 'planCompleteSprint' | 'planGetSprintArtifacts';
18
+ type: 'execute' | 'cancel' | 'getHistory' | 'getSessions' | 'getSessionsCount' | 'deleteSession' | 'getSessionById' | 'clearHistory' | 'searchHistory' | 'new' | 'autocomplete' | 'readFile' | 'ping' | 'initTab' | 'resumeSession' | 'approve' | 'reject' | 'recordSelection' | 'requestNotificationSummary' | 'terminalInit' | 'terminalReconnect' | 'terminalList' | 'terminalInput' | 'terminalResize' | 'terminalClose' | 'listDirectory' | 'writeFile' | 'createFile' | 'createDirectory' | 'deleteFile' | 'renameFile' | 'notifyFileOpened' | 'searchFileContents' | 'cancelSearch' | 'findDefinition' | 'gitStatus' | 'gitStage' | 'gitUnstage' | 'gitCommit' | 'gitCommitWithAI' | 'gitPush' | 'gitPull' | 'gitLog' | 'gitDiscoverRepos' | 'gitSetDirectory' | 'gitGetRemoteInfo' | 'gitCreatePR' | 'gitGeneratePRDescription' | 'gitListBranches' | 'gitCheckout' | 'gitCreateBranch' | 'gitDeleteBranch' | 'gitDiff' | 'gitShowCommit' | 'gitCommitDiff' | 'gitListTags' | 'gitCreateTag' | 'gitPushTag' | 'gitWorktreeList' | 'gitWorktreeCreate' | 'gitWorktreeCreateAndAssign' | 'gitWorktreeRemove' | 'tabWorktreeSwitch' | 'gitWorktreePush' | 'gitWorktreeCreatePR' | 'gitMergePreview' | 'gitWorktreeMerge' | 'gitMergeAbort' | 'gitMergeComplete' | 'getActiveTabs' | 'createTab' | 'reorderTabs' | 'syncTabMeta' | 'syncPromptText' | 'removeTab' | 'markTabViewed' | 'getSettings' | 'updateSettings' | 'qualityDetectTools' | 'qualityScan' | 'qualityInstallTools' | 'qualityCodeReview' | 'qualityFixIssues' | 'qualityLoadState' | 'qualitySaveDirectories' | 'fileUploadStart' | 'fileUploadChunk' | 'fileUploadComplete' | 'fileUploadCancel' | 'planInit' | 'planGetState' | 'planListIssues' | 'planGetIssue' | 'planGetSprint' | 'planGetMilestone' | 'planCreateIssue' | 'planUpdateIssue' | 'planDeleteIssue' | 'planScaffold' | 'planPrompt' | 'planExecute' | 'planExecuteEpic' | 'planPause' | 'planStop' | 'planResume' | 'planCreateBoard' | 'planUpdateBoard' | 'planArchiveBoard' | 'planGetBoard' | 'planGetBoardState' | 'planReorderBoards' | 'planSetActiveBoard' | 'planGetBoardArtifacts' | 'planCreateSprint' | 'planActivateSprint' | 'planCompleteSprint' | 'planGetSprintArtifacts' | 'deployCreate' | 'deployStop' | 'deployResume' | 'deployDelete' | 'deployList' | 'deployGetStatus' | 'deployUpdateConfig' | 'deploySetApiKey' | 'deployValidateApiKey' | 'deployHttpRequest' | 'deployUsageReport' | 'deployAiHealthUpdate';
19
19
  tabId?: string;
20
20
  terminalId?: string;
21
21
  data?: any;
@@ -23,7 +23,7 @@ export interface WebSocketMessage {
23
23
  _permission?: 'view';
24
24
  }
25
25
  export interface WebSocketResponse {
26
- type: 'output' | 'thinking' | 'movementStart' | 'movementComplete' | 'movementError' | 'sessionUpdate' | 'history' | 'sessions' | 'sessionsCount' | 'sessionDeleted' | 'sessionData' | 'historyCleared' | 'searchResults' | 'newSession' | 'autocomplete' | 'fileContent' | 'error' | 'pong' | 'tabInitialized' | 'approvalRequired' | 'toolUse' | 'streamingTokens' | 'notificationSummary' | 'terminalOutput' | 'terminalReady' | 'terminalExit' | 'terminalError' | 'terminalList' | 'directoryListing' | 'fileWritten' | 'fileCreated' | 'directoryCreated' | 'fileDeleted' | 'fileRenamed' | 'fileOpened' | 'fileContentChanged' | 'contentSearchResults' | 'contentSearchComplete' | 'contentSearchError' | 'definitionResult' | 'fileError' | 'terminalScrollback' | 'terminalCreated' | 'terminalClosed' | 'gitStatus' | 'gitStaged' | 'gitUnstaged' | 'gitCommitted' | 'gitCommitMessage' | 'gitPushed' | 'gitPulled' | 'gitLog' | 'gitError' | 'gitReposDiscovered' | 'gitDirectorySet' | 'gitRemoteInfo' | 'gitPRCreated' | 'gitPRDescription' | 'gitBranchList' | 'gitCheckedOut' | 'gitBranchCreated' | 'gitBranchDeleted' | 'gitDiffResult' | 'gitCommitDetail' | 'gitCommitDiffResult' | 'gitTagList' | 'gitTagCreated' | 'gitTagPushed' | 'gitWorktreeListResult' | 'gitWorktreeCreated' | 'gitWorktreeCreatedAndAssigned' | 'gitWorktreeRemoved' | 'tabWorktreeSwitched' | 'gitWorktreePushed' | 'gitWorktreePRCreated' | 'gitMergePreviewResult' | 'gitWorktreeMergeResult' | 'gitMergeAborted' | 'gitMergeCompleted' | 'activeTabs' | 'tabCreated' | 'tabRemoved' | 'tabRenamed' | 'tabsReordered' | 'promptTextSync' | 'tabViewed' | 'tabStateChanged' | 'settings' | 'settingsUpdated' | 'qualityToolsDetected' | 'qualityScanProgress' | 'qualityScanResults' | 'qualityInstallProgress' | 'qualityInstallComplete' | 'qualityCodeReview' | 'qualityCodeReviewProgress' | 'qualityPostSession' | 'qualityFixProgress' | 'qualityFixComplete' | 'qualityError' | 'qualityStateLoaded' | 'fileUploadAck' | 'fileUploadReady' | 'fileUploadError' | 'planState' | 'planIssueList' | 'planIssue' | 'planSprint' | 'planMilestone' | 'planNotFound' | 'planStateUpdated' | 'planIssueUpdated' | 'planIssueCreated' | 'planIssueDeleted' | 'planScaffolded' | 'planPromptStreaming' | 'planPromptProgress' | 'planPromptResponse' | 'planExecutionStarted' | 'planExecutionProgress' | 'planExecutionOutput' | 'planExecutionMetrics' | 'planExecutionComplete' | 'planExecutionError' | 'planError' | 'planBoardCreated' | 'planBoardUpdated' | 'planBoardArchived' | 'planBoardState' | 'planBoardArtifacts' | 'planWorkspaceUpdated' | 'planSprintCreated' | 'planSprintUpdated' | 'planSprintCompleted' | 'planSprintArtifacts' | 'planReviewProgress';
26
+ type: 'output' | 'thinking' | 'movementStart' | 'movementComplete' | 'movementError' | 'sessionUpdate' | 'history' | 'sessions' | 'sessionsCount' | 'sessionDeleted' | 'sessionData' | 'historyCleared' | 'searchResults' | 'newSession' | 'autocomplete' | 'fileContent' | 'error' | 'pong' | 'tabInitialized' | 'approvalRequired' | 'toolUse' | 'streamingTokens' | 'notificationSummary' | 'terminalOutput' | 'terminalReady' | 'terminalExit' | 'terminalError' | 'terminalList' | 'directoryListing' | 'fileWritten' | 'fileCreated' | 'directoryCreated' | 'fileDeleted' | 'fileRenamed' | 'fileOpened' | 'fileContentChanged' | 'contentSearchResults' | 'contentSearchComplete' | 'contentSearchError' | 'definitionResult' | 'fileError' | 'terminalScrollback' | 'terminalCreated' | 'terminalClosed' | 'gitStatus' | 'gitStaged' | 'gitUnstaged' | 'gitCommitted' | 'gitCommitMessage' | 'gitPushed' | 'gitPulled' | 'gitLog' | 'gitError' | 'gitReposDiscovered' | 'gitDirectorySet' | 'gitRemoteInfo' | 'gitPRCreated' | 'gitPRDescription' | 'gitBranchList' | 'gitCheckedOut' | 'gitBranchCreated' | 'gitBranchDeleted' | 'gitDiffResult' | 'gitCommitDetail' | 'gitCommitDiffResult' | 'gitTagList' | 'gitTagCreated' | 'gitTagPushed' | 'gitWorktreeListResult' | 'gitWorktreeCreated' | 'gitWorktreeCreatedAndAssigned' | 'gitWorktreeRemoved' | 'tabWorktreeSwitched' | 'gitWorktreePushed' | 'gitWorktreePRCreated' | 'gitMergePreviewResult' | 'gitWorktreeMergeResult' | 'gitMergeAborted' | 'gitMergeCompleted' | 'activeTabs' | 'tabCreated' | 'tabRemoved' | 'tabRenamed' | 'tabsReordered' | 'promptTextSync' | 'tabViewed' | 'tabStateChanged' | 'settings' | 'settingsUpdated' | 'qualityToolsDetected' | 'qualityScanProgress' | 'qualityScanResults' | 'qualityInstallProgress' | 'qualityInstallComplete' | 'qualityCodeReview' | 'qualityCodeReviewProgress' | 'qualityPostSession' | 'qualityFixProgress' | 'qualityFixComplete' | 'qualityError' | 'qualityStateLoaded' | 'fileUploadAck' | 'fileUploadReady' | 'fileUploadError' | 'planState' | 'planIssueList' | 'planIssue' | 'planSprint' | 'planMilestone' | 'planNotFound' | 'planStateUpdated' | 'planIssueUpdated' | 'planIssueCreated' | 'planIssueDeleted' | 'planScaffolded' | 'planPromptStreaming' | 'planPromptProgress' | 'planPromptResponse' | 'planExecutionStarted' | 'planExecutionProgress' | 'planExecutionOutput' | 'planExecutionMetrics' | 'planExecutionComplete' | 'planExecutionError' | 'planError' | 'planBoardCreated' | 'planBoardUpdated' | 'planBoardArchived' | 'planBoardState' | 'planBoardArtifacts' | 'planWorkspaceUpdated' | 'planSprintCreated' | 'planSprintUpdated' | 'planSprintCompleted' | 'planSprintArtifacts' | 'planReviewProgress' | 'deployCreated' | 'deployStopped' | 'deployResumed' | 'deployDeleted' | 'deployListResult' | 'deployStatusResult' | 'deployConfigUpdated' | 'deployApiKeyStatus' | 'deployError' | 'deployHttpResponse' | 'deployHttpResponseChunk' | 'deployStatus' | 'deployUsageReportAck' | 'deployAiHealthAck';
27
27
  tabId?: string;
28
28
  terminalId?: string;
29
29
  data?: any;
@@ -286,4 +286,266 @@ export interface WorktreeMergeResult {
286
286
  /** List of conflicting files (if conflicts) */
287
287
  conflictFiles?: string[];
288
288
  }
289
+ /**
290
+ * Deployment status
291
+ */
292
+ export type DeploymentStatus = 'running' | 'stopped' | 'error' | 'starting' | 'stopping';
293
+ /**
294
+ * Deployment configuration
295
+ */
296
+ export interface DeployConfig {
297
+ /** Subdomain for the deployment (e.g. "my-app" -> my-app.mstro.app) */
298
+ subdomain: string;
299
+ /** Local port to expose */
300
+ port: number;
301
+ /** Whether AI features are enabled for this deployment */
302
+ aiEnabled: boolean;
303
+ /** Custom domain if configured */
304
+ customDomain?: string;
305
+ }
306
+ /**
307
+ * Deployment info returned in responses
308
+ */
309
+ export interface DeploymentInfo {
310
+ /** Unique deployment identifier */
311
+ deploymentId: string;
312
+ /** Deployment configuration */
313
+ config: DeployConfig;
314
+ /** Current deployment status */
315
+ status: DeploymentStatus;
316
+ /** Public URL of the deployment */
317
+ url: string;
318
+ /** When the deployment was created (ISO string) */
319
+ createdAt: string;
320
+ /** When the deployment was last updated (ISO string) */
321
+ updatedAt: string;
322
+ }
323
+ /**
324
+ * Message data for deployCreate request
325
+ */
326
+ export interface DeployCreateData {
327
+ /** Subdomain for the deployment */
328
+ subdomain: string;
329
+ /** Local port to expose */
330
+ port: number;
331
+ /** Whether AI features are enabled */
332
+ aiEnabled: boolean;
333
+ }
334
+ /**
335
+ * Message data for deployStop request
336
+ */
337
+ export interface DeployStopData {
338
+ /** ID of the deployment to stop */
339
+ deploymentId: string;
340
+ }
341
+ /**
342
+ * Message data for deployResume request
343
+ */
344
+ export interface DeployResumeData {
345
+ /** ID of the deployment to resume */
346
+ deploymentId: string;
347
+ }
348
+ /**
349
+ * Message data for deployDelete request
350
+ */
351
+ export interface DeployDeleteData {
352
+ /** ID of the deployment to delete */
353
+ deploymentId: string;
354
+ }
355
+ /**
356
+ * Message data for deployGetStatus request
357
+ */
358
+ export interface DeployGetStatusData {
359
+ /** ID of the deployment to get status for */
360
+ deploymentId: string;
361
+ }
362
+ /**
363
+ * Message data for deployUpdateConfig request
364
+ */
365
+ export interface DeployUpdateConfigData {
366
+ /** ID of the deployment to update */
367
+ deploymentId: string;
368
+ /** Partial config to update */
369
+ config: Partial<DeployConfig>;
370
+ }
371
+ /**
372
+ * Message data for deploySetApiKey request
373
+ * Note: API key transits via WSS but is never stored or logged by the server relay
374
+ */
375
+ export interface DeploySetApiKeyData {
376
+ /** The API key to set */
377
+ apiKey: string;
378
+ }
379
+ /**
380
+ * Response data for deployCreated
381
+ */
382
+ export interface DeployCreatedResponse {
383
+ /** The created deployment */
384
+ deployment: DeploymentInfo;
385
+ }
386
+ /**
387
+ * Response data for deployStopped
388
+ */
389
+ export interface DeployStoppedResponse {
390
+ /** ID of the stopped deployment */
391
+ deploymentId: string;
392
+ }
393
+ /**
394
+ * Response data for deployResumed
395
+ */
396
+ export interface DeployResumedResponse {
397
+ /** ID of the resumed deployment */
398
+ deploymentId: string;
399
+ }
400
+ /**
401
+ * Response data for deployDeleted
402
+ */
403
+ export interface DeployDeletedResponse {
404
+ /** ID of the deleted deployment */
405
+ deploymentId: string;
406
+ }
407
+ /**
408
+ * Response data for deployListResult
409
+ */
410
+ export interface DeployListResultResponse {
411
+ /** All deployments for this orchestra */
412
+ deployments: DeploymentInfo[];
413
+ }
414
+ /**
415
+ * Response data for deployStatusResult
416
+ */
417
+ export interface DeployStatusResultResponse {
418
+ /** The requested deployment */
419
+ deployment: DeploymentInfo;
420
+ }
421
+ /**
422
+ * Response data for deployConfigUpdated
423
+ */
424
+ export interface DeployConfigUpdatedResponse {
425
+ /** The updated deployment */
426
+ deployment: DeploymentInfo;
427
+ }
428
+ /**
429
+ * Response data for deployApiKeyStatus
430
+ * Note: Never includes the full API key — only the last four characters
431
+ */
432
+ export interface DeployApiKeyStatusResponse {
433
+ /** Validation status of the API key */
434
+ status: 'valid' | 'invalid' | 'missing' | 'rate_limited';
435
+ /** Last four characters of the API key (for display) */
436
+ lastFour?: string;
437
+ /** Where the key was detected from */
438
+ source?: 'env' | 'stored';
439
+ }
440
+ /**
441
+ * Response data for deployError
442
+ */
443
+ export interface DeployErrorResponse {
444
+ /** Error message */
445
+ error: string;
446
+ /** The deployment ID that caused the error, if applicable */
447
+ deploymentId?: string;
448
+ }
449
+ /**
450
+ * Message data for deployHttpRequest (server→cli)
451
+ * Represents an inbound HTTP request to be handled by the CLI
452
+ */
453
+ export interface DeployHttpRequestData {
454
+ /** UUID for correlating this request with its response */
455
+ requestId: string;
456
+ /** HTTP method (GET, POST, PUT, DELETE, etc.) */
457
+ method: string;
458
+ /** Request URL path with query string (e.g. "/api/hello?name=world") */
459
+ url: string;
460
+ /** HTTP request headers */
461
+ headers: Record<string, string>;
462
+ /** HTTP request body (may be undefined for GET/HEAD) */
463
+ body?: string;
464
+ /** ID of the deployment this request is for */
465
+ deploymentId: string;
466
+ /** Local port of the developer's server to proxy to */
467
+ port: number;
468
+ }
469
+ /**
470
+ * Response data for deployHttpResponse (cli→server)
471
+ * The CLI's response to a proxied HTTP request
472
+ */
473
+ export interface DeployHttpResponseData {
474
+ /** UUID matching the original deployHttpRequest */
475
+ requestId: string;
476
+ /** HTTP status code */
477
+ status: number;
478
+ /** HTTP response headers */
479
+ headers: Record<string, string>;
480
+ /** HTTP response body */
481
+ body?: string;
482
+ }
483
+ /**
484
+ * Response data for deployHttpResponseChunk (cli→server)
485
+ * A chunk of a large HTTP response streamed over multiple WebSocket messages
486
+ */
487
+ export interface DeployHttpResponseChunkData {
488
+ /** UUID matching the original deployHttpRequest */
489
+ requestId: string;
490
+ /** Zero-based index of this chunk */
491
+ chunkIndex: number;
492
+ /** Total number of chunks (known after reading the full response) */
493
+ totalChunks: number;
494
+ /** Base64-encoded chunk data */
495
+ data: string;
496
+ /** Whether this is the last chunk */
497
+ isLast: boolean;
498
+ /** HTTP status code (sent with first chunk) */
499
+ status?: number;
500
+ /** HTTP response headers (sent with first chunk) */
501
+ headers?: Record<string, string>;
502
+ }
503
+ /**
504
+ * Response data for deployStatus (cli→server)
505
+ * Status update for a deployment
506
+ */
507
+ export interface DeployStatusData {
508
+ /** ID of the deployment */
509
+ deploymentId: string;
510
+ /** Current status of the deployment */
511
+ status: DeploymentStatus;
512
+ }
513
+ /**
514
+ * Message data for deployUsageReport (cli→server)
515
+ * Sent after each AI execution. Contains metadata only — never prompts or responses.
516
+ */
517
+ export interface DeployUsageReportData {
518
+ /** ID of the deployment */
519
+ deploymentId: string;
520
+ /** End user who triggered the execution */
521
+ endUserId: string;
522
+ /** AI capability used */
523
+ capability: 'headless' | 'pm-board';
524
+ /** Total tokens consumed (input + output) */
525
+ tokensUsed: number;
526
+ /** Model used for execution */
527
+ model: string;
528
+ /** Execution duration in milliseconds */
529
+ durationMs: number;
530
+ /** Optional board ID if capability was pm-board */
531
+ boardId?: string;
532
+ }
533
+ /**
534
+ * AI health status values
535
+ */
536
+ export type DeployAiHealthStatus = 'healthy' | 'invalid_key' | 'no_credits' | 'rate_limited' | 'unknown_error';
537
+ /**
538
+ * Message data for deployAiHealthUpdate (cli→server)
539
+ * Sent when the CLI detects an API key or AI service issue.
540
+ */
541
+ export interface DeployAiHealthUpdateData {
542
+ /** ID of the deployment */
543
+ deploymentId: string;
544
+ /** Current AI health status */
545
+ status: DeployAiHealthStatus;
546
+ /** Human-readable error message */
547
+ message: string;
548
+ /** Whether AI features are currently disabled locally */
549
+ aiDisabled: boolean;
550
+ }
289
551
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../server/services/websocket/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mstro-app",
3
- "version": "0.4.21",
3
+ "version": "0.4.24",
4
4
  "description": "Run Claude Code from any browser - streams live sessions from your machine to mstro.app",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -131,7 +131,7 @@ export async function spawnAndRegister(
131
131
  runningProcesses: Map<number, ChildProcess>,
132
132
  perfStart: number,
133
133
  ): Promise<ChildProcess> {
134
- const mcpConfigPath = generateMcpConfig(config.workingDir, config.verbose, prompt, randomUUID());
134
+ const mcpConfigPath = generateMcpConfig(config.workingDir, config.verbose, prompt, randomUUID(), config.deployMode);
135
135
 
136
136
  if (!mcpConfigPath && config.outputCallback) {
137
137
  config.outputCallback(
@@ -67,7 +67,7 @@ function truncatePrompt(prompt: string): string {
67
67
  * AI layer can distinguish user-requested operations from prompt injection.
68
68
  * @param sessionId — Unique session identifier for per-session config isolation.
69
69
  */
70
- export function generateMcpConfig(workingDir: string, verbose: boolean = false, userPrompt?: string, sessionId?: string): string | null {
70
+ export function generateMcpConfig(workingDir: string, verbose: boolean = false, userPrompt?: string, sessionId?: string, deployMode?: boolean): string | null {
71
71
  try {
72
72
  if (!existsSync(MCP_SERVER_PATH)) {
73
73
  herror(`[${new Date().toISOString()}] MCP server not found at ${MCP_SERVER_PATH}`);
@@ -78,6 +78,9 @@ export function generateMcpConfig(workingDir: string, verbose: boolean = false,
78
78
  BOUNCER_USE_AI: 'true',
79
79
  MSTRO_ROOT: MSTRO_ROOT,
80
80
  };
81
+ if (deployMode) {
82
+ bouncerEnv.BOUNCER_DEPLOY_MODE = 'true';
83
+ }
81
84
  if (userPrompt) {
82
85
  bouncerEnv.BOUNCER_USER_PROMPT = userPrompt.length > MAX_USER_PROMPT_LENGTH
83
86
  ? truncatePrompt(userPrompt)
@@ -69,6 +69,7 @@ export class HeadlessRunner {
69
69
  maxAutoRetries: config.maxAutoRetries ?? 2,
70
70
  onToolTimeout: config.onToolTimeout,
71
71
  extraEnv: config.extraEnv,
72
+ deployMode: config.deployMode,
72
73
  };
73
74
  }
74
75
 
@@ -123,6 +123,8 @@ export interface HeadlessConfig {
123
123
  extraEnv?: Record<string, string>;
124
124
  /** Tools to disallow in the spawned Claude session (passed as --disallowedTools) */
125
125
  disallowedTools?: string[];
126
+ /** Enable deploy-mode patterns in the bouncer (stricter rules for end-user-driven sessions) */
127
+ deployMode?: boolean;
126
128
  }
127
129
 
128
130
  export interface SessionState {
@@ -209,7 +211,7 @@ export interface ExecutionResult {
209
211
  }
210
212
 
211
213
  /** Resolved config with all defaults applied */
212
- export type ResolvedHeadlessConfig = Omit<Required<HeadlessConfig>, 'outputCallback' | 'thinkingCallback' | 'toolUseCallback' | 'tokenUsageCallback' | 'continueSession' | 'claudeSessionId' | 'imageAttachments' | 'model' | 'toolTimeoutProfiles' | 'onToolTimeout' | 'extraEnv' | 'disallowedTools'> & {
214
+ export type ResolvedHeadlessConfig = Omit<Required<HeadlessConfig>, 'outputCallback' | 'thinkingCallback' | 'toolUseCallback' | 'tokenUsageCallback' | 'continueSession' | 'claudeSessionId' | 'imageAttachments' | 'model' | 'toolTimeoutProfiles' | 'onToolTimeout' | 'extraEnv' | 'disallowedTools' | 'deployMode'> & {
213
215
  outputCallback?: (text: string) => void;
214
216
  thinkingCallback?: (text: string) => void;
215
217
  toolUseCallback?: (event: ToolUseEvent) => void;
@@ -222,6 +224,7 @@ export type ResolvedHeadlessConfig = Omit<Required<HeadlessConfig>, 'outputCallb
222
224
  onToolTimeout?: (checkpoint: ExecutionCheckpoint) => void;
223
225
  extraEnv?: Record<string, string>;
224
226
  disallowedTools?: string[];
227
+ deployMode?: boolean;
225
228
  };
226
229
 
227
230
 
package/server/index.ts CHANGED
@@ -27,6 +27,7 @@ import {
27
27
  import { createPlatformRelayContext, ensureClaudeSettings, setTerminalTitle, wrapWebSocket } from './server-setup.js'
28
28
  import { AnalyticsEvents, initAnalytics, shutdownAnalytics, trackEvent } from './services/analytics.js'
29
29
  import { AuthService } from './services/auth.js'
30
+ import { createAiBrokerRoutes, setDeployHealthUpdateListener, setDeployUsageReportListener } from './services/deploy/ai-broker.js'
30
31
  import { FileService } from './services/files.js'
31
32
  import { InstanceRegistry, type MstroInstance } from './services/instances.js'
32
33
  import { PlatformConnection } from './services/platform.js'
@@ -81,7 +82,7 @@ app.use('*', cors({
81
82
  app.use('*', logger())
82
83
 
83
84
  const authMiddleware = async (c: Context, next: Next) => {
84
- const publicPaths = ['/health', '/api/config']
85
+ const publicPaths = ['/health', '/api/config', '/api/deploy/ai']
85
86
  if (publicPaths.some(path => c.req.path.startsWith(path))) {
86
87
  return next()
87
88
  }
@@ -104,6 +105,7 @@ app.route('/api/shutdown', createShutdownRoute(instanceRegistry))
104
105
  app.route('/api/improvise', createImproviseRoutes(WORKING_DIR))
105
106
  app.route('/api/files', createFileRoutes(fileService))
106
107
  app.route('/api/notifications', createNotificationRoutes(WORKING_DIR))
108
+ app.route('/api/deploy/ai', createAiBrokerRoutes())
107
109
 
108
110
  app.post('/api/reload-pty', async (c) => {
109
111
  const success = await reloadPty()
@@ -193,6 +195,12 @@ async function startServer() {
193
195
  wsHandler.setUsageReporter((report) => {
194
196
  platformConnection.send({ type: 'reportUsage', data: report })
195
197
  })
198
+ setDeployUsageReportListener((report) => {
199
+ platformConnection.send({ type: 'deployUsageReport', data: report })
200
+ })
201
+ setDeployHealthUpdateListener((update) => {
202
+ platformConnection.send({ type: 'deployAiHealthUpdate', data: update })
203
+ })
196
204
  },
197
205
  onDisconnected: () => {
198
206
  if (platformRelayContext) {
@@ -19,6 +19,13 @@
19
19
  * │ - Defaults to ALLOW - user is actively working with Claude │
20
20
  * └─────────────────────────────────────────────────────────────┘
21
21
  *
22
+ * SECURITY BOUNDARY: Layer 1 is a performance optimization, NOT a
23
+ * security boundary. Haiku (Layer 2) is the security boundary.
24
+ * Layer 1 patterns are public (open-source repo) and should be
25
+ * treated as a fast-path filter only. Never expand SAFE_OPERATIONS
26
+ * to include operations with side effects beyond the user's
27
+ * working directory.
28
+ *
22
29
  * Haiku AI analysis lives in bouncer-haiku.ts.
23
30
  * Pattern definitions live in security-patterns.ts.
24
31
  * Analysis logic lives in security-analysis.ts.
@@ -168,7 +175,8 @@ async function runHaikuAnalysis(
168
175
  startTime: number,
169
176
  fin: (d: BouncerDecision, layer: string, opts?: Parameters<typeof finalizeDecision>[6]) => BouncerDecision,
170
177
  ): Promise<BouncerDecision> {
171
- if (process.env.BOUNCER_USE_AI === 'false' || request.context?._skipAI === true) {
178
+ const aiDisabledByEnv = process.env.BOUNCER_USE_AI === 'false' && process.env.NODE_ENV !== 'production';
179
+ if (aiDisabledByEnv || request.context?._skipAI === true) {
172
180
  console.error('[Bouncer] AI analysis disabled');
173
181
  return fin({ decision: 'warn_allow', confidence: 60, reasoning: 'Operation requires review but AI analysis is disabled. Proceeding with caution.', threatLevel: 'medium' }, 'ai-disabled', { skipCache: true, skipAnalytics: true });
174
182
  }
@@ -10,6 +10,7 @@
10
10
 
11
11
  import {
12
12
  CRITICAL_THREATS,
13
+ DEPLOY_PATTERNS,
13
14
  matchesPattern,
14
15
  NEEDS_AI_REVIEW,
15
16
  normalizeOperation,
@@ -62,6 +63,17 @@ function isSafeExpansionUse(operation: string): boolean {
62
63
  return safePrefix.test(cmd);
63
64
  }
64
65
 
66
+ // ── Deploy Mode Detection ────────────────────────────────────
67
+
68
+ /**
69
+ * Check if the bouncer is running in deploy mode.
70
+ * Set by the MCP config when spawned for deploy (board/headless) executions.
71
+ * Deploy mode activates additional security patterns for end-user-driven sessions.
72
+ */
73
+ export function isDeployMode(): boolean {
74
+ return process.env.BOUNCER_DEPLOY_MODE === 'true';
75
+ }
76
+
65
77
  // ── Public API ────────────────────────────────────────────────
66
78
 
67
79
  /**
@@ -104,6 +116,13 @@ export function requiresAIReview(operation: string): boolean {
104
116
  return true;
105
117
  }
106
118
 
119
+ // Deploy-specific patterns: when running in deploy mode (end-user driven),
120
+ // additional operations are flagged for AI review. These take precedence
121
+ // over safe operations because deploy context has stricter requirements.
122
+ if (isDeployMode() && matchesPattern(op, DEPLOY_PATTERNS)) {
123
+ return true;
124
+ }
125
+
107
126
  if (matchesPattern(op, SAFE_OPERATIONS)) {
108
127
  // Safe bash commands must not contain chain operators, dangerous pipes,
109
128
  // or subshell/backtick expansion that could hide dangerous operations.
@@ -13,6 +13,12 @@
13
13
  * - Sensitive operations (system paths, credentials) get AI review with context
14
14
  * - The question is: "Does this operation make sense given user intent?"
15
15
  *
16
+ * SECURITY NOTE: These patterns are public (open-source repo). Pattern
17
+ * visibility is intentional and follows industry practice (OWASP CRS,
18
+ * Snort, ModSecurity all publish rules publicly). The Haiku AI layer
19
+ * in bouncer-integration.ts is the actual security boundary — these
20
+ * patterns are a performance optimization for the fast path only.
21
+ *
16
22
  * Analysis logic (requiresAIReview, classifyRisk) lives in security-analysis.ts
17
23
  * and is re-exported here for backward compatibility.
18
24
  */
@@ -34,7 +40,7 @@ export interface SecurityPattern {
34
40
  export const SENSITIVE_PATHS: SecurityPattern[] = [
35
41
  // System directories - might be legitimate (e.g., user asked to configure something)
36
42
  { pattern: /^(Write|Edit):\s*\/etc\//i, reason: 'System configuration - verify user intent' },
37
- { pattern: /^(Write|Edit):\s*\/(bin|sbin|usr\/bin|usr\/sbin)\//i, reason: 'System binaries - verify user intent' },
43
+ { pattern: /^(Write|Edit):\s*\/(bin|sbin|usr\/bin|usr\/sbin|usr\/local\/bin|usr\/local\/sbin)\//i, reason: 'System binaries - verify user intent' },
38
44
  { pattern: /^(Write|Edit):\s*\/boot\//i, reason: 'Boot directory - verify user intent' },
39
45
  { pattern: /^(Write|Edit):\s*\/root\//i, reason: 'Root home - verify user intent' },
40
46
  { pattern: /^(Write|Edit):\s*\/System\//i, reason: 'macOS system - verify user intent' },
@@ -63,7 +69,7 @@ export const SENSITIVE_PATHS: SecurityPattern[] = [
63
69
  */
64
70
  export const CRITICAL_THREATS: SecurityPattern[] = [
65
71
  {
66
- pattern: /rm\s+-rf\s+(\/|~)($|\s)/i,
72
+ pattern: /rm\s+-rf\s+(\/|~)($|\s|;|&&|\|\|)/i,
67
73
  reason: 'Deleting root (/) or home (~) directory is never a legitimate dev task'
68
74
  },
69
75
  {
@@ -239,6 +245,51 @@ export const NEEDS_AI_REVIEW: SecurityPattern[] = [
239
245
  { pattern: /\bclaude\b.*\bmcp\b.*\badd\b/i, reason: 'Adding MCP server - verify source is trusted' },
240
246
  ];
241
247
 
248
+ /**
249
+ * Deploy-specific patterns — additional restrictions for board/headless executions
250
+ * triggered by end-user prompts (untrusted input from deployed app users).
251
+ *
252
+ * These catch operations that are unusual in an automated board execution context
253
+ * and should be routed to AI review. They supplement NEEDS_AI_REVIEW above.
254
+ */
255
+ export const DEPLOY_PATTERNS: SecurityPattern[] = [
256
+ // Credential access from deploy context is suspicious
257
+ {
258
+ pattern: /\b(cat|head|tail|less|more)\b.*\.(env|pem|key|crt|p12|pfx|jks)\b/i,
259
+ reason: 'Deploy execution reading credential/certificate files — verify intent'
260
+ },
261
+
262
+ // Git push from deploy context — end-user code should not push upstream
263
+ {
264
+ pattern: /\bgit\b.*\bpush\b/i,
265
+ reason: 'Deploy execution attempting git push — verify this is intended'
266
+ },
267
+
268
+ // Network listeners — deploy executions should not open ports
269
+ {
270
+ pattern: /\b(nc|netcat|ncat|socat)\b.*(\blisten\b|\s-l\b)/i,
271
+ reason: 'Deploy execution opening network listener — potential backdoor'
272
+ },
273
+
274
+ // Process manipulation from deploy context
275
+ {
276
+ pattern: /\b(kill|killall|pkill)\b/i,
277
+ reason: 'Deploy execution attempting process termination — verify intent'
278
+ },
279
+
280
+ // SSH/SCP from deploy context
281
+ {
282
+ pattern: /\b(ssh|scp|sftp)\b.*@/i,
283
+ reason: 'Deploy execution initiating SSH/SCP connection — verify intent'
284
+ },
285
+
286
+ // Cron/systemd manipulation
287
+ {
288
+ pattern: /\b(crontab|systemctl|launchctl)\b/i,
289
+ reason: 'Deploy execution manipulating scheduled tasks — verify intent'
290
+ },
291
+ ];
292
+
242
293
  // ── Utility functions ─────────────────────────────────────────
243
294
 
244
295
  /**