mstro-app 0.5.0 → 0.5.1

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 (556) hide show
  1. package/LICENSE +129 -190
  2. package/PRIVACY.md +3 -3
  3. package/README.md +5 -1
  4. package/bin/commands/config.js +0 -1
  5. package/bin/mstro.js +0 -1
  6. package/bin/postinstall.js +0 -1
  7. package/dist/server/cli/headless/claude-invoker-process.d.ts.map +1 -1
  8. package/dist/server/cli/headless/claude-invoker-process.js +0 -1
  9. package/dist/server/cli/headless/claude-invoker-process.js.map +1 -1
  10. package/dist/server/cli/headless/claude-invoker-stall.d.ts.map +1 -1
  11. package/dist/server/cli/headless/claude-invoker-stall.js +0 -1
  12. package/dist/server/cli/headless/claude-invoker-stall.js.map +1 -1
  13. package/dist/server/cli/headless/claude-invoker-stream.d.ts.map +1 -1
  14. package/dist/server/cli/headless/claude-invoker-stream.js +0 -1
  15. package/dist/server/cli/headless/claude-invoker-stream.js.map +1 -1
  16. package/dist/server/cli/headless/claude-invoker-tools.d.ts.map +1 -1
  17. package/dist/server/cli/headless/claude-invoker-tools.js +0 -1
  18. package/dist/server/cli/headless/claude-invoker-tools.js.map +1 -1
  19. package/dist/server/cli/headless/claude-invoker.d.ts.map +1 -1
  20. package/dist/server/cli/headless/claude-invoker.js +0 -1
  21. package/dist/server/cli/headless/claude-invoker.js.map +1 -1
  22. package/dist/server/cli/headless/haiku-assessments.d.ts.map +1 -1
  23. package/dist/server/cli/headless/haiku-assessments.js +0 -1
  24. package/dist/server/cli/headless/haiku-assessments.js.map +1 -1
  25. package/dist/server/cli/headless/headless-logger.d.ts.map +1 -1
  26. package/dist/server/cli/headless/headless-logger.js +0 -1
  27. package/dist/server/cli/headless/headless-logger.js.map +1 -1
  28. package/dist/server/cli/headless/index.d.ts.map +1 -1
  29. package/dist/server/cli/headless/index.js +0 -1
  30. package/dist/server/cli/headless/index.js.map +1 -1
  31. package/dist/server/cli/headless/native-timeout-detector.d.ts.map +1 -1
  32. package/dist/server/cli/headless/native-timeout-detector.js +0 -1
  33. package/dist/server/cli/headless/native-timeout-detector.js.map +1 -1
  34. package/dist/server/cli/headless/output-utils.d.ts.map +1 -1
  35. package/dist/server/cli/headless/output-utils.js +0 -1
  36. package/dist/server/cli/headless/output-utils.js.map +1 -1
  37. package/dist/server/cli/headless/prompt-utils.d.ts.map +1 -1
  38. package/dist/server/cli/headless/prompt-utils.js +0 -1
  39. package/dist/server/cli/headless/prompt-utils.js.map +1 -1
  40. package/dist/server/cli/headless/resilient-runner.d.ts.map +1 -1
  41. package/dist/server/cli/headless/resilient-runner.js +0 -1
  42. package/dist/server/cli/headless/resilient-runner.js.map +1 -1
  43. package/dist/server/cli/headless/retry-strategies.d.ts.map +1 -1
  44. package/dist/server/cli/headless/retry-strategies.js +0 -1
  45. package/dist/server/cli/headless/retry-strategies.js.map +1 -1
  46. package/dist/server/cli/headless/runner.d.ts.map +1 -1
  47. package/dist/server/cli/headless/runner.js +0 -1
  48. package/dist/server/cli/headless/runner.js.map +1 -1
  49. package/dist/server/cli/headless/stall-assessor.d.ts.map +1 -1
  50. package/dist/server/cli/headless/stall-assessor.js +0 -1
  51. package/dist/server/cli/headless/stall-assessor.js.map +1 -1
  52. package/dist/server/cli/headless/tool-watchdog.d.ts.map +1 -1
  53. package/dist/server/cli/headless/tool-watchdog.js +0 -1
  54. package/dist/server/cli/headless/tool-watchdog.js.map +1 -1
  55. package/dist/server/cli/headless/types.d.ts.map +1 -1
  56. package/dist/server/cli/headless/types.js +0 -1
  57. package/dist/server/cli/headless/types.js.map +1 -1
  58. package/dist/server/cli/improvisation-attachments.d.ts.map +1 -1
  59. package/dist/server/cli/improvisation-attachments.js +0 -1
  60. package/dist/server/cli/improvisation-attachments.js.map +1 -1
  61. package/dist/server/cli/improvisation-history-store.d.ts.map +1 -1
  62. package/dist/server/cli/improvisation-history-store.js +0 -1
  63. package/dist/server/cli/improvisation-history-store.js.map +1 -1
  64. package/dist/server/cli/improvisation-movements.d.ts.map +1 -1
  65. package/dist/server/cli/improvisation-movements.js +0 -1
  66. package/dist/server/cli/improvisation-movements.js.map +1 -1
  67. package/dist/server/cli/improvisation-output-queue.d.ts.map +1 -1
  68. package/dist/server/cli/improvisation-output-queue.js +0 -1
  69. package/dist/server/cli/improvisation-output-queue.js.map +1 -1
  70. package/dist/server/cli/improvisation-retry.d.ts.map +1 -1
  71. package/dist/server/cli/improvisation-retry.js +0 -1
  72. package/dist/server/cli/improvisation-retry.js.map +1 -1
  73. package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
  74. package/dist/server/cli/improvisation-session-manager.js +0 -1
  75. package/dist/server/cli/improvisation-session-manager.js.map +1 -1
  76. package/dist/server/cli/improvisation-types.d.ts.map +1 -1
  77. package/dist/server/cli/improvisation-types.js +0 -1
  78. package/dist/server/cli/improvisation-types.js.map +1 -1
  79. package/dist/server/cli/retry/retry-best-result.d.ts.map +1 -1
  80. package/dist/server/cli/retry/retry-best-result.js +0 -1
  81. package/dist/server/cli/retry/retry-best-result.js.map +1 -1
  82. package/dist/server/cli/retry/retry-context-loss.d.ts.map +1 -1
  83. package/dist/server/cli/retry/retry-context-loss.js +0 -1
  84. package/dist/server/cli/retry/retry-context-loss.js.map +1 -1
  85. package/dist/server/cli/retry/retry-premature-completion.d.ts.map +1 -1
  86. package/dist/server/cli/retry/retry-premature-completion.js +1 -2
  87. package/dist/server/cli/retry/retry-premature-completion.js.map +1 -1
  88. package/dist/server/cli/retry/retry-recovery-strategies.d.ts.map +1 -1
  89. package/dist/server/cli/retry/retry-recovery-strategies.js +0 -1
  90. package/dist/server/cli/retry/retry-recovery-strategies.js.map +1 -1
  91. package/dist/server/cli/retry/retry-resume-strategy.d.ts.map +1 -1
  92. package/dist/server/cli/retry/retry-resume-strategy.js +0 -1
  93. package/dist/server/cli/retry/retry-resume-strategy.js.map +1 -1
  94. package/dist/server/cli/retry/retry-runner-factory.d.ts.map +1 -1
  95. package/dist/server/cli/retry/retry-runner-factory.js +0 -1
  96. package/dist/server/cli/retry/retry-runner-factory.js.map +1 -1
  97. package/dist/server/cli/retry/retry-tool-results.d.ts.map +1 -1
  98. package/dist/server/cli/retry/retry-tool-results.js +0 -1
  99. package/dist/server/cli/retry/retry-tool-results.js.map +1 -1
  100. package/dist/server/cli/retry/retry-types.d.ts.map +1 -1
  101. package/dist/server/cli/retry/retry-types.js +0 -1
  102. package/dist/server/cli/retry/retry-types.js.map +1 -1
  103. package/dist/server/index.js +0 -1
  104. package/dist/server/index.js.map +1 -1
  105. package/dist/server/mcp/bouncer-cli.js +0 -1
  106. package/dist/server/mcp/bouncer-cli.js.map +1 -1
  107. package/dist/server/mcp/bouncer-haiku.d.ts.map +1 -1
  108. package/dist/server/mcp/bouncer-haiku.js +0 -1
  109. package/dist/server/mcp/bouncer-haiku.js.map +1 -1
  110. package/dist/server/mcp/bouncer-integration.d.ts.map +1 -1
  111. package/dist/server/mcp/bouncer-integration.js +0 -1
  112. package/dist/server/mcp/bouncer-integration.js.map +1 -1
  113. package/dist/server/mcp/security-analysis.d.ts.map +1 -1
  114. package/dist/server/mcp/security-analysis.js +0 -1
  115. package/dist/server/mcp/security-analysis.js.map +1 -1
  116. package/dist/server/mcp/security-audit.d.ts.map +1 -1
  117. package/dist/server/mcp/security-audit.js +0 -1
  118. package/dist/server/mcp/security-audit.js.map +1 -1
  119. package/dist/server/mcp/security-patterns.d.ts.map +1 -1
  120. package/dist/server/mcp/security-patterns.js +0 -1
  121. package/dist/server/mcp/security-patterns.js.map +1 -1
  122. package/dist/server/mcp/server.js +0 -1
  123. package/dist/server/mcp/server.js.map +1 -1
  124. package/dist/server/routes/files.d.ts.map +1 -1
  125. package/dist/server/routes/files.js +0 -1
  126. package/dist/server/routes/files.js.map +1 -1
  127. package/dist/server/routes/improvise.d.ts.map +1 -1
  128. package/dist/server/routes/improvise.js +0 -1
  129. package/dist/server/routes/improvise.js.map +1 -1
  130. package/dist/server/routes/index.d.ts.map +1 -1
  131. package/dist/server/routes/index.js +0 -1
  132. package/dist/server/routes/index.js.map +1 -1
  133. package/dist/server/routes/instances.d.ts.map +1 -1
  134. package/dist/server/routes/instances.js +0 -1
  135. package/dist/server/routes/instances.js.map +1 -1
  136. package/dist/server/routes/notifications.d.ts.map +1 -1
  137. package/dist/server/routes/notifications.js +0 -1
  138. package/dist/server/routes/notifications.js.map +1 -1
  139. package/dist/server/server-setup.d.ts.map +1 -1
  140. package/dist/server/server-setup.js +0 -1
  141. package/dist/server/server-setup.js.map +1 -1
  142. package/dist/server/services/analytics.d.ts.map +1 -1
  143. package/dist/server/services/analytics.js +0 -1
  144. package/dist/server/services/analytics.js.map +1 -1
  145. package/dist/server/services/auth.d.ts.map +1 -1
  146. package/dist/server/services/auth.js +0 -1
  147. package/dist/server/services/auth.js.map +1 -1
  148. package/dist/server/services/client-id.d.ts.map +1 -1
  149. package/dist/server/services/client-id.js +0 -1
  150. package/dist/server/services/client-id.js.map +1 -1
  151. package/dist/server/services/file-explorer-ops.d.ts.map +1 -1
  152. package/dist/server/services/file-explorer-ops.js +0 -1
  153. package/dist/server/services/file-explorer-ops.js.map +1 -1
  154. package/dist/server/services/files.d.ts.map +1 -1
  155. package/dist/server/services/files.js +0 -1
  156. package/dist/server/services/files.js.map +1 -1
  157. package/dist/server/services/instances.d.ts.map +1 -1
  158. package/dist/server/services/instances.js +0 -1
  159. package/dist/server/services/instances.js.map +1 -1
  160. package/dist/server/services/pathUtils.d.ts.map +1 -1
  161. package/dist/server/services/pathUtils.js +0 -1
  162. package/dist/server/services/pathUtils.js.map +1 -1
  163. package/dist/server/services/plan/agent-loader.d.ts.map +1 -1
  164. package/dist/server/services/plan/agent-loader.js +0 -1
  165. package/dist/server/services/plan/agent-loader.js.map +1 -1
  166. package/dist/server/services/plan/board-config.d.ts.map +1 -1
  167. package/dist/server/services/plan/board-config.js +0 -1
  168. package/dist/server/services/plan/board-config.js.map +1 -1
  169. package/dist/server/services/plan/composer.d.ts.map +1 -1
  170. package/dist/server/services/plan/composer.js +0 -1
  171. package/dist/server/services/plan/composer.js.map +1 -1
  172. package/dist/server/services/plan/config-installer.d.ts.map +1 -1
  173. package/dist/server/services/plan/config-installer.js +0 -1
  174. package/dist/server/services/plan/config-installer.js.map +1 -1
  175. package/dist/server/services/plan/dependency-resolver.d.ts.map +1 -1
  176. package/dist/server/services/plan/dependency-resolver.js +0 -1
  177. package/dist/server/services/plan/dependency-resolver.js.map +1 -1
  178. package/dist/server/services/plan/executor.d.ts.map +1 -1
  179. package/dist/server/services/plan/executor.js +45 -3
  180. package/dist/server/services/plan/executor.js.map +1 -1
  181. package/dist/server/services/plan/front-matter.d.ts.map +1 -1
  182. package/dist/server/services/plan/front-matter.js +0 -1
  183. package/dist/server/services/plan/front-matter.js.map +1 -1
  184. package/dist/server/services/plan/issue-classification.d.ts.map +1 -1
  185. package/dist/server/services/plan/issue-classification.js +0 -1
  186. package/dist/server/services/plan/issue-classification.js.map +1 -1
  187. package/dist/server/services/plan/issue-loader.d.ts.map +1 -1
  188. package/dist/server/services/plan/issue-loader.js +0 -1
  189. package/dist/server/services/plan/issue-loader.js.map +1 -1
  190. package/dist/server/services/plan/issue-prompt-builder.d.ts.map +1 -1
  191. package/dist/server/services/plan/issue-prompt-builder.js +0 -1
  192. package/dist/server/services/plan/issue-prompt-builder.js.map +1 -1
  193. package/dist/server/services/plan/issue-retry.d.ts +3 -1
  194. package/dist/server/services/plan/issue-retry.d.ts.map +1 -1
  195. package/dist/server/services/plan/issue-retry.js +2 -1
  196. package/dist/server/services/plan/issue-retry.js.map +1 -1
  197. package/dist/server/services/plan/issue-writer.d.ts.map +1 -1
  198. package/dist/server/services/plan/issue-writer.js +0 -1
  199. package/dist/server/services/plan/issue-writer.js.map +1 -1
  200. package/dist/server/services/plan/output-manager.d.ts.map +1 -1
  201. package/dist/server/services/plan/output-manager.js +0 -1
  202. package/dist/server/services/plan/output-manager.js.map +1 -1
  203. package/dist/server/services/plan/parser-core.d.ts.map +1 -1
  204. package/dist/server/services/plan/parser-core.js +0 -1
  205. package/dist/server/services/plan/parser-core.js.map +1 -1
  206. package/dist/server/services/plan/parser-migration.d.ts.map +1 -1
  207. package/dist/server/services/plan/parser-migration.js +0 -1
  208. package/dist/server/services/plan/parser-migration.js.map +1 -1
  209. package/dist/server/services/plan/parser.d.ts.map +1 -1
  210. package/dist/server/services/plan/parser.js +0 -1
  211. package/dist/server/services/plan/parser.js.map +1 -1
  212. package/dist/server/services/plan/progress-log.d.ts.map +1 -1
  213. package/dist/server/services/plan/progress-log.js +0 -1
  214. package/dist/server/services/plan/progress-log.js.map +1 -1
  215. package/dist/server/services/plan/prompt-builder.d.ts.map +1 -1
  216. package/dist/server/services/plan/prompt-builder.js +0 -1
  217. package/dist/server/services/plan/prompt-builder.js.map +1 -1
  218. package/dist/server/services/plan/readiness-planner.d.ts.map +1 -1
  219. package/dist/server/services/plan/readiness-planner.js +0 -1
  220. package/dist/server/services/plan/readiness-planner.js.map +1 -1
  221. package/dist/server/services/plan/review-gate.d.ts.map +1 -1
  222. package/dist/server/services/plan/review-gate.js +0 -1
  223. package/dist/server/services/plan/review-gate.js.map +1 -1
  224. package/dist/server/services/plan/state-reconciler.d.ts.map +1 -1
  225. package/dist/server/services/plan/state-reconciler.js +0 -1
  226. package/dist/server/services/plan/state-reconciler.js.map +1 -1
  227. package/dist/server/services/plan/types.d.ts.map +1 -1
  228. package/dist/server/services/plan/types.js +0 -1
  229. package/dist/server/services/plan/types.js.map +1 -1
  230. package/dist/server/services/plan/watcher.d.ts.map +1 -1
  231. package/dist/server/services/plan/watcher.js +0 -1
  232. package/dist/server/services/plan/watcher.js.map +1 -1
  233. package/dist/server/services/platform-credentials.d.ts.map +1 -1
  234. package/dist/server/services/platform-credentials.js +0 -1
  235. package/dist/server/services/platform-credentials.js.map +1 -1
  236. package/dist/server/services/platform-token-lifecycle.d.ts +70 -0
  237. package/dist/server/services/platform-token-lifecycle.d.ts.map +1 -0
  238. package/dist/server/services/platform-token-lifecycle.js +156 -0
  239. package/dist/server/services/platform-token-lifecycle.js.map +1 -0
  240. package/dist/server/services/platform.d.ts +21 -56
  241. package/dist/server/services/platform.d.ts.map +1 -1
  242. package/dist/server/services/platform.js +98 -142
  243. package/dist/server/services/platform.js.map +1 -1
  244. package/dist/server/services/sentry.d.ts.map +1 -1
  245. package/dist/server/services/sentry.js +0 -1
  246. package/dist/server/services/sentry.js.map +1 -1
  247. package/dist/server/services/settings.d.ts.map +1 -1
  248. package/dist/server/services/settings.js +0 -1
  249. package/dist/server/services/settings.js.map +1 -1
  250. package/dist/server/services/terminal/pty-manager.d.ts.map +1 -1
  251. package/dist/server/services/terminal/pty-manager.js +0 -1
  252. package/dist/server/services/terminal/pty-manager.js.map +1 -1
  253. package/dist/server/services/terminal/pty-utils.d.ts.map +1 -1
  254. package/dist/server/services/terminal/pty-utils.js +0 -1
  255. package/dist/server/services/terminal/pty-utils.js.map +1 -1
  256. package/dist/server/services/websocket/autocomplete.d.ts.map +1 -1
  257. package/dist/server/services/websocket/autocomplete.js +0 -1
  258. package/dist/server/services/websocket/autocomplete.js.map +1 -1
  259. package/dist/server/services/websocket/file-definition-handlers.d.ts.map +1 -1
  260. package/dist/server/services/websocket/file-definition-handlers.js +0 -1
  261. package/dist/server/services/websocket/file-definition-handlers.js.map +1 -1
  262. package/dist/server/services/websocket/file-download-handler.d.ts.map +1 -1
  263. package/dist/server/services/websocket/file-download-handler.js +0 -1
  264. package/dist/server/services/websocket/file-download-handler.js.map +1 -1
  265. package/dist/server/services/websocket/file-explorer-handlers.d.ts.map +1 -1
  266. package/dist/server/services/websocket/file-explorer-handlers.js +0 -1
  267. package/dist/server/services/websocket/file-explorer-handlers.js.map +1 -1
  268. package/dist/server/services/websocket/file-search-handlers.d.ts.map +1 -1
  269. package/dist/server/services/websocket/file-search-handlers.js +0 -1
  270. package/dist/server/services/websocket/file-search-handlers.js.map +1 -1
  271. package/dist/server/services/websocket/file-upload-handler.d.ts +2 -3
  272. package/dist/server/services/websocket/file-upload-handler.d.ts.map +1 -1
  273. package/dist/server/services/websocket/file-upload-handler.js +4 -7
  274. package/dist/server/services/websocket/file-upload-handler.js.map +1 -1
  275. package/dist/server/services/websocket/file-utils.d.ts.map +1 -1
  276. package/dist/server/services/websocket/file-utils.js +0 -1
  277. package/dist/server/services/websocket/file-utils.js.map +1 -1
  278. package/dist/server/services/websocket/git-branch-handlers.d.ts.map +1 -1
  279. package/dist/server/services/websocket/git-branch-handlers.js +0 -1
  280. package/dist/server/services/websocket/git-branch-handlers.js.map +1 -1
  281. package/dist/server/services/websocket/git-diff-handlers.d.ts.map +1 -1
  282. package/dist/server/services/websocket/git-diff-handlers.js +0 -1
  283. package/dist/server/services/websocket/git-diff-handlers.js.map +1 -1
  284. package/dist/server/services/websocket/git-handlers.d.ts.map +1 -1
  285. package/dist/server/services/websocket/git-handlers.js +58 -6
  286. package/dist/server/services/websocket/git-handlers.js.map +1 -1
  287. package/dist/server/services/websocket/git-head-watcher.d.ts.map +1 -1
  288. package/dist/server/services/websocket/git-head-watcher.js +0 -1
  289. package/dist/server/services/websocket/git-head-watcher.js.map +1 -1
  290. package/dist/server/services/websocket/git-log-handlers.d.ts.map +1 -1
  291. package/dist/server/services/websocket/git-log-handlers.js +0 -1
  292. package/dist/server/services/websocket/git-log-handlers.js.map +1 -1
  293. package/dist/server/services/websocket/git-pr-handlers.d.ts.map +1 -1
  294. package/dist/server/services/websocket/git-pr-handlers.js +0 -1
  295. package/dist/server/services/websocket/git-pr-handlers.js.map +1 -1
  296. package/dist/server/services/websocket/git-tag-handlers.d.ts.map +1 -1
  297. package/dist/server/services/websocket/git-tag-handlers.js +0 -1
  298. package/dist/server/services/websocket/git-tag-handlers.js.map +1 -1
  299. package/dist/server/services/websocket/git-utils.d.ts +18 -3
  300. package/dist/server/services/websocket/git-utils.d.ts.map +1 -1
  301. package/dist/server/services/websocket/git-utils.js +58 -8
  302. package/dist/server/services/websocket/git-utils.js.map +1 -1
  303. package/dist/server/services/websocket/git-worktree-handlers.d.ts.map +1 -1
  304. package/dist/server/services/websocket/git-worktree-handlers.js +230 -14
  305. package/dist/server/services/websocket/git-worktree-handlers.js.map +1 -1
  306. package/dist/server/services/websocket/handler-context.d.ts.map +1 -1
  307. package/dist/server/services/websocket/handler-context.js +0 -1
  308. package/dist/server/services/websocket/handler-context.js.map +1 -1
  309. package/dist/server/services/websocket/handler.d.ts.map +1 -1
  310. package/dist/server/services/websocket/handler.js +3 -4
  311. package/dist/server/services/websocket/handler.js.map +1 -1
  312. package/dist/server/services/websocket/index.d.ts.map +1 -1
  313. package/dist/server/services/websocket/index.js +0 -1
  314. package/dist/server/services/websocket/index.js.map +1 -1
  315. package/dist/server/services/websocket/msg-id-tracker.d.ts.map +1 -1
  316. package/dist/server/services/websocket/msg-id-tracker.js +0 -1
  317. package/dist/server/services/websocket/msg-id-tracker.js.map +1 -1
  318. package/dist/server/services/websocket/plan-board-handlers.d.ts.map +1 -1
  319. package/dist/server/services/websocket/plan-board-handlers.js +0 -1
  320. package/dist/server/services/websocket/plan-board-handlers.js.map +1 -1
  321. package/dist/server/services/websocket/plan-execution-handlers.d.ts.map +1 -1
  322. package/dist/server/services/websocket/plan-execution-handlers.js +6 -2
  323. package/dist/server/services/websocket/plan-execution-handlers.js.map +1 -1
  324. package/dist/server/services/websocket/plan-handlers.d.ts.map +1 -1
  325. package/dist/server/services/websocket/plan-handlers.js +0 -1
  326. package/dist/server/services/websocket/plan-handlers.js.map +1 -1
  327. package/dist/server/services/websocket/plan-helpers.d.ts.map +1 -1
  328. package/dist/server/services/websocket/plan-helpers.js +0 -1
  329. package/dist/server/services/websocket/plan-helpers.js.map +1 -1
  330. package/dist/server/services/websocket/plan-issue-handlers.d.ts.map +1 -1
  331. package/dist/server/services/websocket/plan-issue-handlers.js +0 -1
  332. package/dist/server/services/websocket/plan-issue-handlers.js.map +1 -1
  333. package/dist/server/services/websocket/plan-sprint-handlers.d.ts.map +1 -1
  334. package/dist/server/services/websocket/plan-sprint-handlers.js +0 -1
  335. package/dist/server/services/websocket/plan-sprint-handlers.js.map +1 -1
  336. package/dist/server/services/websocket/quality-complexity.d.ts.map +1 -1
  337. package/dist/server/services/websocket/quality-complexity.js +0 -1
  338. package/dist/server/services/websocket/quality-complexity.js.map +1 -1
  339. package/dist/server/services/websocket/quality-grading.d.ts +46 -0
  340. package/dist/server/services/websocket/quality-grading.d.ts.map +1 -0
  341. package/dist/server/services/websocket/quality-grading.js +482 -0
  342. package/dist/server/services/websocket/quality-grading.js.map +1 -0
  343. package/dist/server/services/websocket/quality-handlers.d.ts.map +1 -1
  344. package/dist/server/services/websocket/quality-handlers.js +0 -1
  345. package/dist/server/services/websocket/quality-handlers.js.map +1 -1
  346. package/dist/server/services/websocket/quality-linting.d.ts.map +1 -1
  347. package/dist/server/services/websocket/quality-linting.js +0 -1
  348. package/dist/server/services/websocket/quality-linting.js.map +1 -1
  349. package/dist/server/services/websocket/quality-persistence.d.ts +14 -0
  350. package/dist/server/services/websocket/quality-persistence.d.ts.map +1 -1
  351. package/dist/server/services/websocket/quality-persistence.js +28 -12
  352. package/dist/server/services/websocket/quality-persistence.js.map +1 -1
  353. package/dist/server/services/websocket/quality-review-agent.d.ts.map +1 -1
  354. package/dist/server/services/websocket/quality-review-agent.js +0 -1
  355. package/dist/server/services/websocket/quality-review-agent.js.map +1 -1
  356. package/dist/server/services/websocket/quality-service.d.ts +3 -1
  357. package/dist/server/services/websocket/quality-service.d.ts.map +1 -1
  358. package/dist/server/services/websocket/quality-service.js +53 -58
  359. package/dist/server/services/websocket/quality-service.js.map +1 -1
  360. package/dist/server/services/websocket/quality-tools.d.ts +1 -1
  361. package/dist/server/services/websocket/quality-tools.d.ts.map +1 -1
  362. package/dist/server/services/websocket/quality-tools.js +6 -3
  363. package/dist/server/services/websocket/quality-tools.js.map +1 -1
  364. package/dist/server/services/websocket/quality-types.d.ts +18 -2
  365. package/dist/server/services/websocket/quality-types.d.ts.map +1 -1
  366. package/dist/server/services/websocket/quality-types.js +0 -1
  367. package/dist/server/services/websocket/quality-types.js.map +1 -1
  368. package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
  369. package/dist/server/services/websocket/session-handlers.js +0 -1
  370. package/dist/server/services/websocket/session-handlers.js.map +1 -1
  371. package/dist/server/services/websocket/session-history.d.ts.map +1 -1
  372. package/dist/server/services/websocket/session-history.js +0 -1
  373. package/dist/server/services/websocket/session-history.js.map +1 -1
  374. package/dist/server/services/websocket/session-initialization.d.ts.map +1 -1
  375. package/dist/server/services/websocket/session-initialization.js +0 -1
  376. package/dist/server/services/websocket/session-initialization.js.map +1 -1
  377. package/dist/server/services/websocket/session-registry.d.ts.map +1 -1
  378. package/dist/server/services/websocket/session-registry.js +0 -1
  379. package/dist/server/services/websocket/session-registry.js.map +1 -1
  380. package/dist/server/services/websocket/settings-handlers.d.ts.map +1 -1
  381. package/dist/server/services/websocket/settings-handlers.js +0 -1
  382. package/dist/server/services/websocket/settings-handlers.js.map +1 -1
  383. package/dist/server/services/websocket/skill-handlers.d.ts.map +1 -1
  384. package/dist/server/services/websocket/skill-handlers.js +0 -1
  385. package/dist/server/services/websocket/skill-handlers.js.map +1 -1
  386. package/dist/server/services/websocket/skill-watcher.d.ts.map +1 -1
  387. package/dist/server/services/websocket/skill-watcher.js +0 -1
  388. package/dist/server/services/websocket/skill-watcher.js.map +1 -1
  389. package/dist/server/services/websocket/tab-broadcast.d.ts.map +1 -1
  390. package/dist/server/services/websocket/tab-broadcast.js +0 -1
  391. package/dist/server/services/websocket/tab-broadcast.js.map +1 -1
  392. package/dist/server/services/websocket/tab-event-buffer.d.ts.map +1 -1
  393. package/dist/server/services/websocket/tab-event-buffer.js +0 -1
  394. package/dist/server/services/websocket/tab-event-buffer.js.map +1 -1
  395. package/dist/server/services/websocket/tab-event-replay.d.ts.map +1 -1
  396. package/dist/server/services/websocket/tab-event-replay.js +0 -1
  397. package/dist/server/services/websocket/tab-event-replay.js.map +1 -1
  398. package/dist/server/services/websocket/tab-handlers.d.ts.map +1 -1
  399. package/dist/server/services/websocket/tab-handlers.js +0 -1
  400. package/dist/server/services/websocket/tab-handlers.js.map +1 -1
  401. package/dist/server/services/websocket/terminal-handlers.d.ts.map +1 -1
  402. package/dist/server/services/websocket/terminal-handlers.js +39 -4
  403. package/dist/server/services/websocket/terminal-handlers.js.map +1 -1
  404. package/dist/server/services/websocket/types.d.ts +2 -2
  405. package/dist/server/services/websocket/types.d.ts.map +1 -1
  406. package/dist/server/services/websocket/types.js +2 -3
  407. package/dist/server/services/websocket/types.js.map +1 -1
  408. package/dist/server/utils/agent-manager.d.ts.map +1 -1
  409. package/dist/server/utils/agent-manager.js +0 -1
  410. package/dist/server/utils/agent-manager.js.map +1 -1
  411. package/dist/server/utils/paths.d.ts.map +1 -1
  412. package/dist/server/utils/paths.js +0 -1
  413. package/dist/server/utils/paths.js.map +1 -1
  414. package/dist/server/utils/port-manager.d.ts.map +1 -1
  415. package/dist/server/utils/port-manager.js +0 -1
  416. package/dist/server/utils/port-manager.js.map +1 -1
  417. package/dist/server/utils/port.d.ts.map +1 -1
  418. package/dist/server/utils/port.js +0 -1
  419. package/dist/server/utils/port.js.map +1 -1
  420. package/package.json +2 -2
  421. package/server/cli/headless/claude-invoker-process.ts +0 -1
  422. package/server/cli/headless/claude-invoker-stall.ts +0 -1
  423. package/server/cli/headless/claude-invoker-stream.ts +0 -1
  424. package/server/cli/headless/claude-invoker-tools.ts +0 -1
  425. package/server/cli/headless/claude-invoker.ts +0 -1
  426. package/server/cli/headless/haiku-assessments.ts +0 -1
  427. package/server/cli/headless/headless-logger.ts +0 -1
  428. package/server/cli/headless/index.ts +0 -1
  429. package/server/cli/headless/native-timeout-detector.ts +0 -1
  430. package/server/cli/headless/output-utils.ts +0 -1
  431. package/server/cli/headless/prompt-utils.ts +0 -1
  432. package/server/cli/headless/resilient-runner.ts +0 -1
  433. package/server/cli/headless/retry-strategies.ts +0 -1
  434. package/server/cli/headless/runner.ts +0 -1
  435. package/server/cli/headless/stall-assessor.ts +0 -1
  436. package/server/cli/headless/tool-watchdog.ts +0 -1
  437. package/server/cli/headless/types.ts +0 -1
  438. package/server/cli/improvisation-attachments.ts +0 -1
  439. package/server/cli/improvisation-history-store.ts +0 -1
  440. package/server/cli/improvisation-movements.ts +0 -1
  441. package/server/cli/improvisation-output-queue.ts +0 -1
  442. package/server/cli/improvisation-retry.ts +0 -1
  443. package/server/cli/improvisation-session-manager.ts +0 -1
  444. package/server/cli/improvisation-types.ts +0 -1
  445. package/server/cli/retry/retry-best-result.ts +0 -1
  446. package/server/cli/retry/retry-context-loss.ts +0 -1
  447. package/server/cli/retry/retry-premature-completion.ts +1 -2
  448. package/server/cli/retry/retry-recovery-strategies.ts +0 -1
  449. package/server/cli/retry/retry-resume-strategy.ts +0 -1
  450. package/server/cli/retry/retry-runner-factory.ts +0 -1
  451. package/server/cli/retry/retry-tool-results.ts +0 -1
  452. package/server/cli/retry/retry-types.ts +0 -1
  453. package/server/index.ts +0 -1
  454. package/server/mcp/bouncer-cli.ts +0 -1
  455. package/server/mcp/bouncer-haiku.ts +0 -1
  456. package/server/mcp/bouncer-integration.ts +0 -1
  457. package/server/mcp/security-analysis.ts +0 -1
  458. package/server/mcp/security-audit.ts +0 -1
  459. package/server/mcp/security-patterns.ts +0 -1
  460. package/server/mcp/server.ts +0 -1
  461. package/server/routes/files.ts +0 -1
  462. package/server/routes/improvise.ts +0 -1
  463. package/server/routes/index.ts +0 -1
  464. package/server/routes/instances.ts +0 -1
  465. package/server/routes/notifications.ts +0 -1
  466. package/server/server-setup.ts +0 -1
  467. package/server/services/analytics.ts +0 -1
  468. package/server/services/auth.ts +0 -1
  469. package/server/services/client-id.ts +0 -1
  470. package/server/services/file-explorer-ops.ts +0 -1
  471. package/server/services/files.ts +0 -1
  472. package/server/services/instances.ts +0 -1
  473. package/server/services/pathUtils.ts +0 -1
  474. package/server/services/plan/agent-loader.ts +0 -1
  475. package/server/services/plan/agents/code-review.md +13 -11
  476. package/server/services/plan/board-config.ts +0 -1
  477. package/server/services/plan/composer.ts +0 -1
  478. package/server/services/plan/config-installer.ts +0 -1
  479. package/server/services/plan/dependency-resolver.ts +0 -1
  480. package/server/services/plan/executor.ts +45 -3
  481. package/server/services/plan/front-matter.ts +0 -1
  482. package/server/services/plan/issue-classification.ts +0 -1
  483. package/server/services/plan/issue-loader.ts +0 -1
  484. package/server/services/plan/issue-prompt-builder.ts +0 -1
  485. package/server/services/plan/issue-retry.ts +5 -2
  486. package/server/services/plan/issue-writer.ts +0 -1
  487. package/server/services/plan/output-manager.ts +0 -1
  488. package/server/services/plan/parser-core.ts +0 -1
  489. package/server/services/plan/parser-migration.ts +0 -1
  490. package/server/services/plan/parser.ts +0 -1
  491. package/server/services/plan/progress-log.ts +0 -1
  492. package/server/services/plan/prompt-builder.ts +0 -1
  493. package/server/services/plan/readiness-planner.ts +0 -1
  494. package/server/services/plan/review-gate.ts +0 -1
  495. package/server/services/plan/state-reconciler.ts +0 -1
  496. package/server/services/plan/types.ts +0 -1
  497. package/server/services/plan/watcher.ts +0 -1
  498. package/server/services/platform-credentials.ts +0 -1
  499. package/server/services/platform-token-lifecycle.ts +171 -0
  500. package/server/services/platform.ts +106 -148
  501. package/server/services/sentry.ts +0 -1
  502. package/server/services/settings.ts +0 -1
  503. package/server/services/terminal/pty-manager.ts +0 -1
  504. package/server/services/terminal/pty-utils.ts +0 -1
  505. package/server/services/websocket/autocomplete.ts +0 -1
  506. package/server/services/websocket/file-definition-handlers.ts +0 -1
  507. package/server/services/websocket/file-download-handler.ts +0 -1
  508. package/server/services/websocket/file-explorer-handlers.ts +0 -1
  509. package/server/services/websocket/file-search-handlers.ts +0 -1
  510. package/server/services/websocket/file-upload-handler.ts +6 -5
  511. package/server/services/websocket/file-utils.ts +0 -1
  512. package/server/services/websocket/git-branch-handlers.ts +0 -1
  513. package/server/services/websocket/git-diff-handlers.ts +0 -1
  514. package/server/services/websocket/git-handlers.ts +66 -10
  515. package/server/services/websocket/git-head-watcher.ts +0 -1
  516. package/server/services/websocket/git-log-handlers.ts +0 -1
  517. package/server/services/websocket/git-pr-handlers.ts +0 -1
  518. package/server/services/websocket/git-tag-handlers.ts +0 -1
  519. package/server/services/websocket/git-utils.ts +69 -9
  520. package/server/services/websocket/git-worktree-handlers.ts +260 -17
  521. package/server/services/websocket/handler-context.ts +0 -1
  522. package/server/services/websocket/handler.ts +3 -4
  523. package/server/services/websocket/index.ts +0 -1
  524. package/server/services/websocket/msg-id-tracker.ts +0 -1
  525. package/server/services/websocket/plan-board-handlers.ts +0 -1
  526. package/server/services/websocket/plan-execution-handlers.ts +6 -2
  527. package/server/services/websocket/plan-handlers.ts +0 -1
  528. package/server/services/websocket/plan-helpers.ts +0 -1
  529. package/server/services/websocket/plan-issue-handlers.ts +0 -1
  530. package/server/services/websocket/plan-sprint-handlers.ts +0 -1
  531. package/server/services/websocket/quality-complexity.ts +0 -1
  532. package/server/services/websocket/quality-grading.ts +611 -0
  533. package/server/services/websocket/quality-handlers.ts +0 -1
  534. package/server/services/websocket/quality-linting.ts +0 -1
  535. package/server/services/websocket/quality-persistence.ts +30 -8
  536. package/server/services/websocket/quality-review-agent.ts +0 -1
  537. package/server/services/websocket/quality-service.ts +54 -55
  538. package/server/services/websocket/quality-tools.ts +11 -3
  539. package/server/services/websocket/quality-types.ts +21 -3
  540. package/server/services/websocket/session-handlers.ts +0 -1
  541. package/server/services/websocket/session-history.ts +0 -1
  542. package/server/services/websocket/session-initialization.ts +0 -1
  543. package/server/services/websocket/session-registry.ts +0 -1
  544. package/server/services/websocket/settings-handlers.ts +0 -1
  545. package/server/services/websocket/skill-handlers.ts +0 -1
  546. package/server/services/websocket/skill-watcher.ts +0 -1
  547. package/server/services/websocket/tab-broadcast.ts +0 -1
  548. package/server/services/websocket/tab-event-buffer.ts +0 -1
  549. package/server/services/websocket/tab-event-replay.ts +0 -1
  550. package/server/services/websocket/tab-handlers.ts +0 -1
  551. package/server/services/websocket/terminal-handlers.ts +39 -3
  552. package/server/services/websocket/types.ts +2 -3
  553. package/server/utils/agent-manager.ts +0 -1
  554. package/server/utils/paths.ts +0 -1
  555. package/server/utils/port-manager.ts +0 -1
  556. package/server/utils/port.ts +0 -1
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Context-loss detection: figures out when a run's output indicates the
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Detects when a claimed-complete run is actually unfinished (hit
@@ -80,7 +79,7 @@ function applyPrematureCompletionRetry(
80
79
  });
81
80
 
82
81
  callbacks.queueOutput(
83
- `\n${reason} — resuming session (retry ${state.retryNumber}/${maxRetries}).\n`
82
+ `\n\n${reason} — resuming session (retry ${state.retryNumber}/${maxRetries}).\n\n`
84
83
  );
85
84
  callbacks.flushOutputQueue();
86
85
 
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Recovery strategies: context-loss (inter-movement / native-timeout),
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Picks how the next retry iteration should resume execution:
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Factory for the HeadlessRunner used in a single retry iteration.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Running buffer of tool results preserved across retries so recovery
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Shared types used across the retry modules. Defined separately so each
package/server/index.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Mstro Server (Node.js + Hono)
@@ -1,6 +1,5 @@
1
1
  #!/usr/bin/env node
2
2
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
3
- // Licensed under the MIT License. See LICENSE file for details.
4
3
 
5
4
  /**
6
5
  * Bouncer CLI — stdin/stdout wrapper for Claude Code PreToolUse hooks.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Bouncer Haiku — Haiku AI analysis subprocess for ambiguous operations.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Bouncer Integration V2 - Prompt Injection Protection
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Security Analysis — Decision logic for routing operations through the bouncer.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Security Audit Logging System
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Security Patterns - Single Source of Truth
@@ -1,6 +1,5 @@
1
1
  #!/usr/bin/env -S npx tsx
2
2
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
3
- // Licensed under the MIT License. See LICENSE file for details.
4
3
 
5
4
  /**
6
5
  * MCP Bouncer Server
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * File Routes
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Improvise History Routes
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Routes Index
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Instance Management Routes
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Notification Routes
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Server Setup Utilities — Helpers for the main server entry point.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * PostHog Analytics Service for mstro CLI
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Authentication Service
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Client ID Service
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * File Explorer Operations — CRUD for files/directories in the working directory.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * File Service — Autocomplete and file scoring for the working directory.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Instance Registry Service
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Path Utilities
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Agent Prompt Loader — loads review agent prompts from Skills and markdown files.
@@ -74,14 +74,19 @@ For each finding, use this reasoning process:
74
74
 
75
75
  ## Scoring Guidelines
76
76
 
77
- After your analysis, provide an honest overall quality score (0-100) and letter grade:
78
- - **A (90-100)**: Excellent — clean architecture, minimal issues, well-tested, follows best practices
79
- - **B (80-89)**: Good — solid code with minor issues, mostly well-structured
80
- - **C (70-79)**: Adequate — functional but has notable quality issues that should be addressed
81
- - **D (60-69)**: Below average — significant issues in architecture, testing, or code quality
82
- - **F (0-59)**: Poor — serious problems: security vulnerabilities, broken architecture, major bugs, or unmaintainable code
77
+ The overall grade is computed deterministically from your findings, not from a number you supply. Severity and category on each finding are what drive the grade — pick them carefully.
83
78
 
84
- Consider ALL findings (both CLI tool findings and your own) when determining the score. The score should reflect the overall state of the codebase honestly. A project with 50+ linting errors, formatting issues, complex functions, AND architectural problems should NOT score above 70.
79
+ Three independent dimension grades are computed:
80
+
81
+ - **Security** (category: `security`) — uses a severity-threshold rule: A = 0 findings, B = only low, C = ≥1 medium, D = ≥1 high, F = ≥1 critical.
82
+ - **Reliability** (categories: `bugs`, `logic`, `performance`) — severity-threshold rule, slightly more lenient: A = 0 findings or ≤1 low, B = ≥2 low or ≤2 medium, C = ≥3 medium or ≥1 high, D = ≥2 high, F = ≥1 critical.
83
+ - **Maintainability** (categories: `architecture`, `oop`, `maintainability`) — density-based (issues per 1000 lines), with a severity escape hatch: any high finding caps at C, any critical caps at D.
84
+
85
+ Overall grade = the worst of the three dimensions. A single critical security finding caps the entire codebase at F.
86
+
87
+ This means **severity is load-bearing**: marking something `high` when it's really `low` will swing the grade unfairly. When in doubt, downgrade. A finding without clear evidence of harm is `low`.
88
+
89
+ You may still emit `score`, `grade`, and `scoreRationale` for reference — they are persisted but ignored when computing the displayed grade. Focus your effort on accurate findings, not on guessing the overall number.
85
90
 
86
91
  ## Output
87
92
 
@@ -89,13 +94,10 @@ After your analysis, output EXACTLY one JSON code block with your findings. No o
89
94
 
90
95
  ```json
91
96
  {
92
- "score": 72,
93
- "grade": "C",
94
- "scoreRationale": "Brief explanation of why this score was given, referencing key issues",
95
97
  "findings": [
96
98
  {
97
99
  "severity": "critical|high|medium|low",
98
- "category": "architecture|oop|security|bugs|performance|logic",
100
+ "category": "architecture|oop|security|bugs|performance|logic|maintainability",
99
101
  "file": "relative/path/to/file.ts",
100
102
  "line": 42,
101
103
  "title": "Short title describing the issue",
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Board configuration helpers: read board.md + workspace.json settings
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Plan Composer — Handles natural language prompts for PPS creation/editing.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Config Installer — Manages temporary .claude/settings.json modifications
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Dependency Resolver — Validates and computes the dependency DAG.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Plan Executor — Wave-based execution with parallel headless Claude Code instances.
@@ -55,6 +54,40 @@ export type ExecutionStatus = 'idle' | 'starting' | 'executing' | 'paused' | 'st
55
54
  /** Stop after this many consecutive waves with zero completions. */
56
55
  const MAX_CONSECUTIVE_EMPTY_WAVES = 3;
57
56
 
57
+ /**
58
+ * Render a tool-call event as a short single-line label for the verbose
59
+ * Output stream — `Read · package.json`, `Bash · npm test`, etc. The web UI
60
+ * splits the label on the first ` · ` to render the tool name as a badge.
61
+ */
62
+ function formatToolCallLine(toolName: string, input: Record<string, unknown> | undefined): string {
63
+ const arg = pickPrimaryArg(toolName, input);
64
+ return arg ? `${toolName} · ${arg}` : toolName;
65
+ }
66
+
67
+ function pickPrimaryArg(toolName: string, input: Record<string, unknown> | undefined): string {
68
+ if (!input) return '';
69
+ // Map common Claude Code tools to their most informative single argument.
70
+ const candidates: Record<string, string[]> = {
71
+ Read: ['file_path'],
72
+ Write: ['file_path'],
73
+ Edit: ['file_path'],
74
+ Glob: ['pattern'],
75
+ Grep: ['pattern'],
76
+ Bash: ['command'],
77
+ WebFetch: ['url'],
78
+ WebSearch: ['query'],
79
+ Task: ['description'],
80
+ };
81
+ const keys = candidates[toolName] ?? ['command', 'file_path', 'path', 'pattern', 'url', 'query'];
82
+ for (const key of keys) {
83
+ const value = input[key];
84
+ if (typeof value === 'string' && value.length > 0) {
85
+ return value.length > 120 ? `${value.slice(0, 117)}...` : value;
86
+ }
87
+ }
88
+ return '';
89
+ }
90
+
58
91
  /** Per-issue stall timeouts (ms) — shorter than Agent Teams wave timeouts */
59
92
  const ISSUE_STALL_WARNING_MS = 900_000; // 15 min
60
93
  const ISSUE_STALL_KILL_MS = 1_800_000; // 30 min
@@ -344,6 +377,7 @@ export class PlanExecutor extends EventEmitter {
344
377
  });
345
378
 
346
379
  const boardLogDir = boardDir ? join(boardDir, 'logs') : undefined;
380
+ const emitOutput = (text: string) => this.emit('output', { issueId: issue.id, text });
347
381
  const result = await runWithFileLogger(`pm-issue-${issue.id}`, () => runIssueWithRetry({
348
382
  workingDir: effectiveDir,
349
383
  prompt,
@@ -351,8 +385,16 @@ export class PlanExecutor extends EventEmitter {
351
385
  stallKillMs: ISSUE_STALL_KILL_MS,
352
386
  stallHardCapMs: ISSUE_STALL_HARD_CAP_MS,
353
387
  stallMaxExtensions: ISSUE_STALL_MAX_EXTENSIONS,
354
- outputCallback: (text: string) => {
355
- this.emit('output', { issueId: issue.id, text });
388
+ outputCallback: emitOutput,
389
+ // Thinking deltas: marker-prefix so the web UI can classify them as a
390
+ // separate verbose-only block type without needing a new message field.
391
+ thinkingCallback: (text: string) => emitOutput(`[[MSTRO_THINKING]]${text}`),
392
+ // Tool calls: emit a single line per completed tool with a short arg
393
+ // summary. The 'tool_complete' event fires after input has fully
394
+ // streamed in, so we can render the tool with its real arguments.
395
+ toolUseCallback: (event) => {
396
+ if (event.type !== 'tool_complete' || !event.toolName) return;
397
+ emitOutput(`[[MSTRO_TOOL]]${formatToolCallLine(event.toolName, event.completeInput)}`);
356
398
  },
357
399
  extraEnv: this.extraEnv,
358
400
  abortSignal,
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Front Matter Utilities — Read/write YAML front matter fields.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  import type { Issue } from './types.js';
5
4
 
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Issue loader: wraps parser.ts to load either board-scoped or
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Issue Prompt Builder — Constructs a prompt for a single headless Claude Code instance.
@@ -1,8 +1,7 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  import { ResilientRunner } from '../../cli/headless/resilient-runner.js';
5
- import type { SessionResult } from '../../cli/headless/types.js';
4
+ import type { SessionResult, ToolUseEvent } from '../../cli/headless/types.js';
6
5
 
7
6
  export interface IssueRunnerConfig {
8
7
  workingDir: string;
@@ -12,6 +11,8 @@ export interface IssueRunnerConfig {
12
11
  stallHardCapMs: number;
13
12
  stallMaxExtensions: number;
14
13
  outputCallback?: (text: string) => void;
14
+ thinkingCallback?: (text: string) => void;
15
+ toolUseCallback?: (event: ToolUseEvent) => void;
15
16
  extraEnv?: Record<string, string>;
16
17
  abortSignal?: AbortSignal;
17
18
  }
@@ -27,6 +28,8 @@ export async function runIssueWithRetry(config: IssueRunnerConfig): Promise<Sess
27
28
  stallHardCapMs: config.stallHardCapMs,
28
29
  stallMaxExtensions: config.stallMaxExtensions,
29
30
  outputCallback: config.outputCallback,
31
+ thinkingCallback: config.thinkingCallback,
32
+ toolUseCallback: config.toolUseCallback,
30
33
  verbose: true,
31
34
  extraEnv: config.extraEnv,
32
35
  abortSignal: config.abortSignal,
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Issue file mutations: front-matter status updates, activity note appends,
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Output Manager — Resolves output paths, lists existing docs, and publishes outputs.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * YAML front-matter parsing and entity parsers for PPS (.mstro/pm/) files.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Legacy → Board-centric migration for .mstro/pm/ directories.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * PPS Parser — Public API for reading .mstro/pm/ directories.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Progress log writer: ensures output directories exist and appends
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Prompt Builder — Constructs the Agent Teams coordinator prompt.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Pure helpers for wave readiness: human-readable completion reasons
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Review Gate — AI-powered quality gate for completed issues.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * State Reconciler — Recomputes STATE.md from individual issue files.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Plan Types — Project Plan Spec (PPS) data structures
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Plan Watcher — Watches .mstro/pm/ directory for changes and broadcasts updates.
@@ -1,5 +1,4 @@
1
1
  // Copyright (c) 2025-present Mstro, Inc. All rights reserved.
2
- // Licensed under the MIT License. See LICENSE file for details.
3
2
 
4
3
  /**
5
4
  * Platform Credentials — Token management for device authentication.