mstro-app 0.4.3 → 0.4.4

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 (306) hide show
  1. package/dist/server/cli/headless/claude-invoker-process.d.ts +11 -0
  2. package/dist/server/cli/headless/claude-invoker-process.d.ts.map +1 -0
  3. package/dist/server/cli/headless/claude-invoker-process.js +140 -0
  4. package/dist/server/cli/headless/claude-invoker-process.js.map +1 -0
  5. package/dist/server/cli/headless/claude-invoker-stall.d.ts +40 -0
  6. package/dist/server/cli/headless/claude-invoker-stall.d.ts.map +1 -0
  7. package/dist/server/cli/headless/claude-invoker-stall.js +98 -0
  8. package/dist/server/cli/headless/claude-invoker-stall.js.map +1 -0
  9. package/dist/server/cli/headless/claude-invoker-stream.d.ts +44 -0
  10. package/dist/server/cli/headless/claude-invoker-stream.d.ts.map +1 -0
  11. package/dist/server/cli/headless/claude-invoker-stream.js +276 -0
  12. package/dist/server/cli/headless/claude-invoker-stream.js.map +1 -0
  13. package/dist/server/cli/headless/claude-invoker-tools.d.ts +21 -0
  14. package/dist/server/cli/headless/claude-invoker-tools.d.ts.map +1 -0
  15. package/dist/server/cli/headless/claude-invoker-tools.js +137 -0
  16. package/dist/server/cli/headless/claude-invoker-tools.js.map +1 -0
  17. package/dist/server/cli/headless/claude-invoker.d.ts +6 -4
  18. package/dist/server/cli/headless/claude-invoker.d.ts.map +1 -1
  19. package/dist/server/cli/headless/claude-invoker.js +10 -807
  20. package/dist/server/cli/headless/claude-invoker.js.map +1 -1
  21. package/dist/server/cli/headless/haiku-assessments.d.ts +62 -0
  22. package/dist/server/cli/headless/haiku-assessments.d.ts.map +1 -0
  23. package/dist/server/cli/headless/haiku-assessments.js +281 -0
  24. package/dist/server/cli/headless/haiku-assessments.js.map +1 -0
  25. package/dist/server/cli/headless/headless-logger.d.ts +3 -2
  26. package/dist/server/cli/headless/headless-logger.d.ts.map +1 -1
  27. package/dist/server/cli/headless/headless-logger.js +28 -5
  28. package/dist/server/cli/headless/headless-logger.js.map +1 -1
  29. package/dist/server/cli/headless/native-timeout-detector.d.ts +44 -0
  30. package/dist/server/cli/headless/native-timeout-detector.d.ts.map +1 -0
  31. package/dist/server/cli/headless/native-timeout-detector.js +99 -0
  32. package/dist/server/cli/headless/native-timeout-detector.js.map +1 -0
  33. package/dist/server/cli/headless/stall-assessor.d.ts +2 -110
  34. package/dist/server/cli/headless/stall-assessor.d.ts.map +1 -1
  35. package/dist/server/cli/headless/stall-assessor.js +65 -457
  36. package/dist/server/cli/headless/stall-assessor.js.map +1 -1
  37. package/dist/server/cli/improvisation-attachments.d.ts +21 -0
  38. package/dist/server/cli/improvisation-attachments.d.ts.map +1 -0
  39. package/dist/server/cli/improvisation-attachments.js +116 -0
  40. package/dist/server/cli/improvisation-attachments.js.map +1 -0
  41. package/dist/server/cli/improvisation-retry.d.ts +52 -0
  42. package/dist/server/cli/improvisation-retry.d.ts.map +1 -0
  43. package/dist/server/cli/improvisation-retry.js +434 -0
  44. package/dist/server/cli/improvisation-retry.js.map +1 -0
  45. package/dist/server/cli/improvisation-session-manager.d.ts +10 -266
  46. package/dist/server/cli/improvisation-session-manager.d.ts.map +1 -1
  47. package/dist/server/cli/improvisation-session-manager.js +117 -1079
  48. package/dist/server/cli/improvisation-session-manager.js.map +1 -1
  49. package/dist/server/cli/improvisation-types.d.ts +86 -0
  50. package/dist/server/cli/improvisation-types.d.ts.map +1 -0
  51. package/dist/server/cli/improvisation-types.js +10 -0
  52. package/dist/server/cli/improvisation-types.js.map +1 -0
  53. package/dist/server/cli/prompt-builders.d.ts +68 -0
  54. package/dist/server/cli/prompt-builders.d.ts.map +1 -0
  55. package/dist/server/cli/prompt-builders.js +312 -0
  56. package/dist/server/cli/prompt-builders.js.map +1 -0
  57. package/dist/server/index.js +33 -212
  58. package/dist/server/index.js.map +1 -1
  59. package/dist/server/mcp/bouncer-haiku.d.ts +10 -0
  60. package/dist/server/mcp/bouncer-haiku.d.ts.map +1 -0
  61. package/dist/server/mcp/bouncer-haiku.js +152 -0
  62. package/dist/server/mcp/bouncer-haiku.js.map +1 -0
  63. package/dist/server/mcp/bouncer-integration.d.ts +3 -4
  64. package/dist/server/mcp/bouncer-integration.d.ts.map +1 -1
  65. package/dist/server/mcp/bouncer-integration.js +50 -196
  66. package/dist/server/mcp/bouncer-integration.js.map +1 -1
  67. package/dist/server/mcp/security-analysis.d.ts +38 -0
  68. package/dist/server/mcp/security-analysis.d.ts.map +1 -0
  69. package/dist/server/mcp/security-analysis.js +183 -0
  70. package/dist/server/mcp/security-analysis.js.map +1 -0
  71. package/dist/server/mcp/security-audit.d.ts +1 -1
  72. package/dist/server/mcp/security-audit.d.ts.map +1 -1
  73. package/dist/server/mcp/security-patterns.d.ts +1 -25
  74. package/dist/server/mcp/security-patterns.d.ts.map +1 -1
  75. package/dist/server/mcp/security-patterns.js +55 -260
  76. package/dist/server/mcp/security-patterns.js.map +1 -1
  77. package/dist/server/server-setup.d.ts +22 -0
  78. package/dist/server/server-setup.d.ts.map +1 -0
  79. package/dist/server/server-setup.js +101 -0
  80. package/dist/server/server-setup.js.map +1 -0
  81. package/dist/server/services/file-explorer-ops.d.ts +24 -0
  82. package/dist/server/services/file-explorer-ops.d.ts.map +1 -0
  83. package/dist/server/services/file-explorer-ops.js +211 -0
  84. package/dist/server/services/file-explorer-ops.js.map +1 -0
  85. package/dist/server/services/files.d.ts +2 -85
  86. package/dist/server/services/files.d.ts.map +1 -1
  87. package/dist/server/services/files.js +7 -427
  88. package/dist/server/services/files.js.map +1 -1
  89. package/dist/server/services/plan/composer.d.ts.map +1 -1
  90. package/dist/server/services/plan/composer.js +2 -1
  91. package/dist/server/services/plan/composer.js.map +1 -1
  92. package/dist/server/services/plan/executor.d.ts.map +1 -1
  93. package/dist/server/services/plan/executor.js +3 -1
  94. package/dist/server/services/plan/executor.js.map +1 -1
  95. package/dist/server/services/plan/parser-core.d.ts +20 -0
  96. package/dist/server/services/plan/parser-core.d.ts.map +1 -0
  97. package/dist/server/services/plan/parser-core.js +350 -0
  98. package/dist/server/services/plan/parser-core.js.map +1 -0
  99. package/dist/server/services/plan/parser-migration.d.ts +5 -0
  100. package/dist/server/services/plan/parser-migration.d.ts.map +1 -0
  101. package/dist/server/services/plan/parser-migration.js +124 -0
  102. package/dist/server/services/plan/parser-migration.js.map +1 -0
  103. package/dist/server/services/plan/parser.d.ts +0 -8
  104. package/dist/server/services/plan/parser.d.ts.map +1 -1
  105. package/dist/server/services/plan/parser.js +50 -569
  106. package/dist/server/services/plan/parser.js.map +1 -1
  107. package/dist/server/services/plan/review-gate.d.ts +2 -0
  108. package/dist/server/services/plan/review-gate.d.ts.map +1 -1
  109. package/dist/server/services/plan/review-gate.js +2 -2
  110. package/dist/server/services/plan/review-gate.js.map +1 -1
  111. package/dist/server/services/plan/types.d.ts +2 -0
  112. package/dist/server/services/plan/types.d.ts.map +1 -1
  113. package/dist/server/services/platform-credentials.d.ts +24 -0
  114. package/dist/server/services/platform-credentials.d.ts.map +1 -0
  115. package/dist/server/services/platform-credentials.js +68 -0
  116. package/dist/server/services/platform-credentials.js.map +1 -0
  117. package/dist/server/services/platform.d.ts +1 -31
  118. package/dist/server/services/platform.d.ts.map +1 -1
  119. package/dist/server/services/platform.js +10 -119
  120. package/dist/server/services/platform.js.map +1 -1
  121. package/dist/server/services/terminal/pty-manager.d.ts +7 -97
  122. package/dist/server/services/terminal/pty-manager.d.ts.map +1 -1
  123. package/dist/server/services/terminal/pty-manager.js +53 -266
  124. package/dist/server/services/terminal/pty-manager.js.map +1 -1
  125. package/dist/server/services/terminal/pty-utils.d.ts +57 -0
  126. package/dist/server/services/terminal/pty-utils.d.ts.map +1 -0
  127. package/dist/server/services/terminal/pty-utils.js +141 -0
  128. package/dist/server/services/terminal/pty-utils.js.map +1 -0
  129. package/dist/server/services/websocket/file-definition-handlers.d.ts +4 -0
  130. package/dist/server/services/websocket/file-definition-handlers.d.ts.map +1 -0
  131. package/dist/server/services/websocket/file-definition-handlers.js +153 -0
  132. package/dist/server/services/websocket/file-definition-handlers.js.map +1 -0
  133. package/dist/server/services/websocket/file-explorer-handlers.d.ts.map +1 -1
  134. package/dist/server/services/websocket/file-explorer-handlers.js +52 -391
  135. package/dist/server/services/websocket/file-explorer-handlers.js.map +1 -1
  136. package/dist/server/services/websocket/file-search-handlers.d.ts +5 -0
  137. package/dist/server/services/websocket/file-search-handlers.d.ts.map +1 -0
  138. package/dist/server/services/websocket/file-search-handlers.js +238 -0
  139. package/dist/server/services/websocket/file-search-handlers.js.map +1 -0
  140. package/dist/server/services/websocket/file-utils.js +3 -3
  141. package/dist/server/services/websocket/file-utils.js.map +1 -1
  142. package/dist/server/services/websocket/git-branch-handlers.d.ts +7 -0
  143. package/dist/server/services/websocket/git-branch-handlers.d.ts.map +1 -0
  144. package/dist/server/services/websocket/git-branch-handlers.js +110 -0
  145. package/dist/server/services/websocket/git-branch-handlers.js.map +1 -0
  146. package/dist/server/services/websocket/git-diff-handlers.d.ts +6 -0
  147. package/dist/server/services/websocket/git-diff-handlers.d.ts.map +1 -0
  148. package/dist/server/services/websocket/git-diff-handlers.js +123 -0
  149. package/dist/server/services/websocket/git-diff-handlers.js.map +1 -0
  150. package/dist/server/services/websocket/git-handlers.d.ts +2 -31
  151. package/dist/server/services/websocket/git-handlers.d.ts.map +1 -1
  152. package/dist/server/services/websocket/git-handlers.js +35 -541
  153. package/dist/server/services/websocket/git-handlers.js.map +1 -1
  154. package/dist/server/services/websocket/git-log-handlers.d.ts +6 -0
  155. package/dist/server/services/websocket/git-log-handlers.d.ts.map +1 -0
  156. package/dist/server/services/websocket/git-log-handlers.js +128 -0
  157. package/dist/server/services/websocket/git-log-handlers.js.map +1 -0
  158. package/dist/server/services/websocket/git-pr-handlers.d.ts.map +1 -1
  159. package/dist/server/services/websocket/git-pr-handlers.js +13 -53
  160. package/dist/server/services/websocket/git-pr-handlers.js.map +1 -1
  161. package/dist/server/services/websocket/git-tag-handlers.d.ts +6 -0
  162. package/dist/server/services/websocket/git-tag-handlers.d.ts.map +1 -0
  163. package/dist/server/services/websocket/git-tag-handlers.js +76 -0
  164. package/dist/server/services/websocket/git-tag-handlers.js.map +1 -0
  165. package/dist/server/services/websocket/git-utils.d.ts +43 -0
  166. package/dist/server/services/websocket/git-utils.d.ts.map +1 -0
  167. package/dist/server/services/websocket/git-utils.js +201 -0
  168. package/dist/server/services/websocket/git-utils.js.map +1 -0
  169. package/dist/server/services/websocket/handler.d.ts +2 -0
  170. package/dist/server/services/websocket/handler.d.ts.map +1 -1
  171. package/dist/server/services/websocket/handler.js +37 -126
  172. package/dist/server/services/websocket/handler.js.map +1 -1
  173. package/dist/server/services/websocket/plan-board-handlers.d.ts +11 -0
  174. package/dist/server/services/websocket/plan-board-handlers.d.ts.map +1 -0
  175. package/dist/server/services/websocket/plan-board-handlers.js +218 -0
  176. package/dist/server/services/websocket/plan-board-handlers.js.map +1 -0
  177. package/dist/server/services/websocket/plan-execution-handlers.d.ts +9 -0
  178. package/dist/server/services/websocket/plan-execution-handlers.d.ts.map +1 -0
  179. package/dist/server/services/websocket/plan-execution-handlers.js +142 -0
  180. package/dist/server/services/websocket/plan-execution-handlers.js.map +1 -0
  181. package/dist/server/services/websocket/plan-handlers.d.ts +7 -2
  182. package/dist/server/services/websocket/plan-handlers.d.ts.map +1 -1
  183. package/dist/server/services/websocket/plan-handlers.js +6 -925
  184. package/dist/server/services/websocket/plan-handlers.js.map +1 -1
  185. package/dist/server/services/websocket/plan-helpers.d.ts +19 -0
  186. package/dist/server/services/websocket/plan-helpers.d.ts.map +1 -0
  187. package/dist/server/services/websocket/plan-helpers.js +199 -0
  188. package/dist/server/services/websocket/plan-helpers.js.map +1 -0
  189. package/dist/server/services/websocket/plan-issue-handlers.d.ts +12 -0
  190. package/dist/server/services/websocket/plan-issue-handlers.d.ts.map +1 -0
  191. package/dist/server/services/websocket/plan-issue-handlers.js +162 -0
  192. package/dist/server/services/websocket/plan-issue-handlers.js.map +1 -0
  193. package/dist/server/services/websocket/plan-sprint-handlers.d.ts +7 -0
  194. package/dist/server/services/websocket/plan-sprint-handlers.d.ts.map +1 -0
  195. package/dist/server/services/websocket/plan-sprint-handlers.js +206 -0
  196. package/dist/server/services/websocket/plan-sprint-handlers.js.map +1 -0
  197. package/dist/server/services/websocket/quality-complexity.d.ts +14 -0
  198. package/dist/server/services/websocket/quality-complexity.d.ts.map +1 -0
  199. package/dist/server/services/websocket/quality-complexity.js +262 -0
  200. package/dist/server/services/websocket/quality-complexity.js.map +1 -0
  201. package/dist/server/services/websocket/quality-fix-agent.d.ts +16 -0
  202. package/dist/server/services/websocket/quality-fix-agent.d.ts.map +1 -0
  203. package/dist/server/services/websocket/quality-fix-agent.js +140 -0
  204. package/dist/server/services/websocket/quality-fix-agent.js.map +1 -0
  205. package/dist/server/services/websocket/quality-handlers.d.ts.map +1 -1
  206. package/dist/server/services/websocket/quality-handlers.js +34 -346
  207. package/dist/server/services/websocket/quality-handlers.js.map +1 -1
  208. package/dist/server/services/websocket/quality-linting.d.ts +9 -0
  209. package/dist/server/services/websocket/quality-linting.d.ts.map +1 -0
  210. package/dist/server/services/websocket/quality-linting.js +178 -0
  211. package/dist/server/services/websocket/quality-linting.js.map +1 -0
  212. package/dist/server/services/websocket/quality-review-agent.d.ts +19 -0
  213. package/dist/server/services/websocket/quality-review-agent.d.ts.map +1 -0
  214. package/dist/server/services/websocket/quality-review-agent.js +206 -0
  215. package/dist/server/services/websocket/quality-review-agent.js.map +1 -0
  216. package/dist/server/services/websocket/quality-service.d.ts +3 -51
  217. package/dist/server/services/websocket/quality-service.d.ts.map +1 -1
  218. package/dist/server/services/websocket/quality-service.js +9 -651
  219. package/dist/server/services/websocket/quality-service.js.map +1 -1
  220. package/dist/server/services/websocket/quality-tools.d.ts +23 -0
  221. package/dist/server/services/websocket/quality-tools.d.ts.map +1 -0
  222. package/dist/server/services/websocket/quality-tools.js +208 -0
  223. package/dist/server/services/websocket/quality-tools.js.map +1 -0
  224. package/dist/server/services/websocket/quality-types.d.ts +59 -0
  225. package/dist/server/services/websocket/quality-types.d.ts.map +1 -0
  226. package/dist/server/services/websocket/quality-types.js +101 -0
  227. package/dist/server/services/websocket/quality-types.js.map +1 -0
  228. package/dist/server/services/websocket/session-handlers.d.ts +3 -4
  229. package/dist/server/services/websocket/session-handlers.d.ts.map +1 -1
  230. package/dist/server/services/websocket/session-handlers.js +3 -378
  231. package/dist/server/services/websocket/session-handlers.js.map +1 -1
  232. package/dist/server/services/websocket/session-history.d.ts +4 -0
  233. package/dist/server/services/websocket/session-history.d.ts.map +1 -0
  234. package/dist/server/services/websocket/session-history.js +208 -0
  235. package/dist/server/services/websocket/session-history.js.map +1 -0
  236. package/dist/server/services/websocket/session-initialization.d.ts +5 -0
  237. package/dist/server/services/websocket/session-initialization.d.ts.map +1 -0
  238. package/dist/server/services/websocket/session-initialization.js +163 -0
  239. package/dist/server/services/websocket/session-initialization.js.map +1 -0
  240. package/dist/server/services/websocket/types.d.ts +12 -2
  241. package/dist/server/services/websocket/types.d.ts.map +1 -1
  242. package/package.json +1 -1
  243. package/server/cli/headless/claude-invoker-process.ts +204 -0
  244. package/server/cli/headless/claude-invoker-stall.ts +164 -0
  245. package/server/cli/headless/claude-invoker-stream.ts +353 -0
  246. package/server/cli/headless/claude-invoker-tools.ts +187 -0
  247. package/server/cli/headless/claude-invoker.ts +15 -1096
  248. package/server/cli/headless/haiku-assessments.ts +365 -0
  249. package/server/cli/headless/headless-logger.ts +26 -5
  250. package/server/cli/headless/native-timeout-detector.ts +117 -0
  251. package/server/cli/headless/stall-assessor.ts +65 -618
  252. package/server/cli/improvisation-attachments.ts +148 -0
  253. package/server/cli/improvisation-retry.ts +602 -0
  254. package/server/cli/improvisation-session-manager.ts +140 -1349
  255. package/server/cli/improvisation-types.ts +98 -0
  256. package/server/cli/prompt-builders.ts +370 -0
  257. package/server/index.ts +35 -246
  258. package/server/mcp/bouncer-haiku.ts +182 -0
  259. package/server/mcp/bouncer-integration.ts +87 -248
  260. package/server/mcp/security-analysis.ts +217 -0
  261. package/server/mcp/security-audit.ts +1 -1
  262. package/server/mcp/security-patterns.ts +60 -283
  263. package/server/server-setup.ts +114 -0
  264. package/server/services/file-explorer-ops.ts +293 -0
  265. package/server/services/files.ts +20 -532
  266. package/server/services/plan/composer.ts +2 -1
  267. package/server/services/plan/executor.ts +3 -1
  268. package/server/services/plan/parser-core.ts +406 -0
  269. package/server/services/plan/parser-migration.ts +128 -0
  270. package/server/services/plan/parser.ts +52 -620
  271. package/server/services/plan/review-gate.ts +4 -2
  272. package/server/services/plan/types.ts +2 -0
  273. package/server/services/platform-credentials.ts +83 -0
  274. package/server/services/platform.ts +15 -141
  275. package/server/services/terminal/pty-manager.ts +66 -313
  276. package/server/services/terminal/pty-utils.ts +176 -0
  277. package/server/services/websocket/file-definition-handlers.ts +165 -0
  278. package/server/services/websocket/file-explorer-handlers.ts +37 -452
  279. package/server/services/websocket/file-search-handlers.ts +291 -0
  280. package/server/services/websocket/file-utils.ts +3 -3
  281. package/server/services/websocket/git-branch-handlers.ts +130 -0
  282. package/server/services/websocket/git-diff-handlers.ts +140 -0
  283. package/server/services/websocket/git-handlers.ts +40 -625
  284. package/server/services/websocket/git-log-handlers.ts +149 -0
  285. package/server/services/websocket/git-pr-handlers.ts +17 -62
  286. package/server/services/websocket/git-tag-handlers.ts +91 -0
  287. package/server/services/websocket/git-utils.ts +230 -0
  288. package/server/services/websocket/handler.ts +39 -126
  289. package/server/services/websocket/plan-board-handlers.ts +277 -0
  290. package/server/services/websocket/plan-execution-handlers.ts +184 -0
  291. package/server/services/websocket/plan-handlers.ts +8 -1114
  292. package/server/services/websocket/plan-helpers.ts +215 -0
  293. package/server/services/websocket/plan-issue-handlers.ts +204 -0
  294. package/server/services/websocket/plan-sprint-handlers.ts +252 -0
  295. package/server/services/websocket/quality-complexity.ts +294 -0
  296. package/server/services/websocket/quality-fix-agent.ts +181 -0
  297. package/server/services/websocket/quality-handlers.ts +36 -404
  298. package/server/services/websocket/quality-linting.ts +187 -0
  299. package/server/services/websocket/quality-review-agent.ts +246 -0
  300. package/server/services/websocket/quality-service.ts +11 -762
  301. package/server/services/websocket/quality-tools.ts +209 -0
  302. package/server/services/websocket/quality-types.ts +169 -0
  303. package/server/services/websocket/session-handlers.ts +5 -437
  304. package/server/services/websocket/session-history.ts +222 -0
  305. package/server/services/websocket/session-initialization.ts +209 -0
  306. package/server/services/websocket/types.ts +17 -0
@@ -5,62 +5,8 @@
5
5
  * For complex multi-part prompts with parallel/sequential movements, use Compose tab instead.
6
6
  */
7
7
  import { EventEmitter } from 'node:events';
8
- export interface ImprovisationOptions {
9
- workingDir: string;
10
- sessionId: string;
11
- tokenBudgetThreshold: number;
12
- maxSessions: number;
13
- verbose: boolean;
14
- noColor: boolean;
15
- /** Claude model for main execution (e.g., 'opus', 'sonnet'). 'default' = no --model flag. */
16
- model?: string;
17
- }
18
- export interface FileAttachment {
19
- fileName: string;
20
- filePath: string;
21
- content: string;
22
- isImage: boolean;
23
- mimeType?: string;
24
- }
25
- export interface ToolUseRecord {
26
- toolName: string;
27
- toolId: string;
28
- toolInput: Record<string, unknown>;
29
- result?: string;
30
- isError?: boolean;
31
- duration?: number;
32
- }
33
- export interface MovementRecord {
34
- id: string;
35
- sequenceNumber: number;
36
- userPrompt: string;
37
- timestamp: string;
38
- tokensUsed: number;
39
- summary: string;
40
- filesModified: string[];
41
- assistantResponse?: string;
42
- thinkingOutput?: string;
43
- toolUseHistory?: ToolUseRecord[];
44
- errorOutput?: string;
45
- durationMs?: number;
46
- retryLog?: RetryLogEntry[];
47
- }
48
- export interface SessionHistory {
49
- sessionId: string;
50
- startedAt: string;
51
- lastActivityAt: string;
52
- totalTokens: number;
53
- movements: MovementRecord[];
54
- claudeSessionId?: string;
55
- }
56
- /** Entry in the retry log for debugging recovery paths */
57
- interface RetryLogEntry {
58
- retryNumber: number;
59
- path: string;
60
- reason: string;
61
- timestamp: number;
62
- durationMs?: number;
63
- }
8
+ import type { FileAttachment, ImprovisationOptions, MovementRecord, SessionHistory } from './improvisation-types.js';
9
+ export type { FileAttachment, ImprovisationOptions, MovementRecord, SessionHistory, ToolUseRecord } from './improvisation-types.js';
64
10
  export declare class ImprovisationSessionManager extends EventEmitter {
65
11
  private sessionId;
66
12
  private improviseDir;
@@ -75,230 +21,44 @@ export declare class ImprovisationSessionManager extends EventEmitter {
75
21
  private claudeSessionId;
76
22
  private isResumedSession;
77
23
  accumulatedKnowledge: string;
78
- /** Whether a prompt is currently executing */
79
24
  private _isExecuting;
80
- /** Timestamp when current execution started (for accurate elapsed time across reconnects) */
81
25
  private _executionStartTimestamp;
82
- /** Buffered events during current execution, for replay on reconnect */
83
26
  private executionEventLog;
84
- /** Set by cancel() to signal the retry loop to exit */
85
27
  private _cancelled;
86
- /** True when cancel() has already emitted movementComplete (prevents double-emit) */
87
28
  private _cancelCompleteEmitted;
88
- /** Current execution's user prompt (for cancel to build movement record) */
89
29
  private _currentUserPrompt;
90
- /** Current execution's sequence number (for cancel to build movement record) */
91
30
  private _currentSequenceNumber;
92
- /**
93
- * Resume from a historical session.
94
- * Creates a new session manager that continues the conversation from a previous session.
95
- * The first prompt will include context from the historical session.
96
- */
97
31
  static resumeFromHistory(workingDir: string, historicalSessionId: string, overrides?: Partial<ImprovisationOptions>): ImprovisationSessionManager;
98
32
  constructor(options?: Partial<ImprovisationOptions>);
99
- /**
100
- * Start background queue processor that flushes output immediately
101
- */
102
33
  private startQueueProcessor;
103
- /**
104
- * Queue output for immediate processing
105
- */
106
34
  private queueOutput;
107
- /**
108
- * Flush all queued output immediately
109
- */
110
35
  private flushOutputQueue;
111
- /**
112
- * Build prompt with text file attachments prepended and disk path references
113
- * Format: each text file is shown as @path followed by content in code block
114
- */
115
- private buildPromptWithAttachments;
116
- /**
117
- * Write attachments to disk at .mstro/tmp/attachments/{sessionId}/
118
- * Returns array of absolute file paths for each persisted attachment.
119
- */
120
- private persistAttachments;
121
- /**
122
- * Clean up persisted attachments for this session
123
- */
124
- private cleanupAttachments;
125
- /**
126
- * Execute a user prompt directly (Improvise mode - no score decomposition)
127
- * Uses persistent Claude sessions via --resume <sessionId> for conversation continuity
128
- * Each tab maintains its own claudeSessionId for proper isolation
129
- * Supports file attachments: text files prepended to prompt, images via stream-json multimodal
130
- */
131
36
  executePrompt(userPrompt: string, attachments?: FileAttachment[], options?: {
132
37
  sandboxed?: boolean;
133
38
  workingDir?: string;
134
39
  }): Promise<MovementRecord>;
135
- private handleCancelledExecution;
40
+ private buildRetryCallbacks;
41
+ private buildRetrySessionState;
42
+ private syncSessionStateBack;
136
43
  private runRetryLoop;
137
- /** MIME types that the Claude API can accept as image content blocks */
138
- private static readonly SUPPORTED_IMAGE_MIMES;
139
- /** Hydrate pre-uploaded images from disk and downgrade unsupported formats */
140
- private hydrateAndFilterAttachments;
141
- /** Prepare prompt with attachments and limit image count */
142
- private preparePromptAndAttachments;
143
- /** Determine whether to use --resume and which session ID */
144
- private determineResumeStrategy;
145
- /** Create HeadlessRunner for one retry iteration */
146
- private createExecutionRunner;
147
- /** Save checkpoint and reset per-iteration state before each retry loop pass. */
148
- private resetIterationState;
149
- /** Update best result tracking */
150
- private updateBestResult;
151
- /** Detect resume context loss (Path 1): session expired on --resume */
152
- private detectResumeContextLoss;
153
- /** Detect native timeout context loss (Path 2): tool timeouts caused confusion */
154
- private detectNativeTimeoutContextLoss;
155
- /** Flush post-timeout output if context wasn't lost */
156
- private flushPostTimeoutOutput;
157
- /** Check if context loss recovery should trigger a retry. Returns true if loop should continue. */
158
- private shouldRetryContextLoss;
159
- /** Accumulate completed tool results from a run into the retry state.
160
- * Caps at MAX_ACCUMULATED_RESULTS to prevent recovery prompts from exceeding context limits.
161
- * When the cap is reached, older results are evicted (FIFO) to make room for newer ones. */
162
- private static readonly MAX_ACCUMULATED_RESULTS;
163
- private accumulateToolResults;
164
- /** Handle inter-movement context loss recovery (resume session expired) */
165
- private applyInterMovementRecovery;
166
- /** Handle native-timeout context loss recovery (tool timeouts caused confusion) */
167
- private applyNativeTimeoutRecovery;
168
- /** Handle tool timeout checkpoint. Returns true if loop should continue. */
169
- private applyToolTimeoutRetry;
170
- /**
171
- * Detect and retry after a signal crash (e.g., SIGTERM exit code 143).
172
- * When the Claude process is killed externally (OOM, system signal, internal timeout
173
- * that bypasses our watchdog), no existing recovery path catches it because contextLost
174
- * is never set and no checkpoint is created. This adds a dedicated recovery path.
175
- */
176
- private shouldRetrySignalCrash;
177
- /** Build a recovery prompt after signal crash */
178
- private buildSignalCrashRecoveryPrompt;
179
- /**
180
- * Detect premature completion: Claude exited normally (exit code 0, end_turn) but the
181
- * response indicates more work was planned. This happens when the model "context-fatigues"
182
- * during long multi-step tasks and produces end_turn after completing a subset of the work.
183
- *
184
- * Two paths:
185
- * - max_tokens: always retry (model was forcibly stopped mid-generation)
186
- * - end_turn: Haiku assessment determines if the response looks incomplete
187
- */
188
- private shouldRetryPrematureCompletion;
189
- /** Guard checks for premature completion — must pass all to proceed with assessment */
190
- private isPrematureCompletionCandidate;
191
- /** Use Haiku to assess whether an end_turn response is genuinely complete */
192
- private assessEndTurnCompletion;
193
- /** Apply the retry: emit events, update state, set continuation prompt */
194
- private applyPrematureCompletionRetry;
195
- /** Select the best result across retries using Haiku assessment */
196
- private selectBestResult;
197
- /** Fallback best result selection using numeric scoring */
198
- private fallbackBestResult;
199
- /** Replace a result's claudeSessionId with a newer one */
200
- private mergeResultSessionId;
201
- /** Capture Claude session ID and surface execution failures */
44
+ /** Run a single iteration: spawn runner, execute, detect context loss */
45
+ private executeRetryIteration;
46
+ /** Evaluate all retry strategies. Returns true if the loop should continue. */
47
+ private evaluateRetryStrategies;
48
+ private handleCancelledExecution;
202
49
  private captureSessionAndSurfaceErrors;
203
- /** Build a MovementRecord from execution result */
204
50
  private buildMovementRecord;
205
- /** Handle file conflicts from execution result */
206
51
  private handleConflicts;
207
- /** Persist movement to history */
208
52
  private persistMovement;
209
- /** Emit movement completion events and analytics */
210
53
  private emitMovementComplete;
211
- /**
212
- * Build historical context for resuming a session.
213
- * This creates a summary of the previous conversation that will be injected
214
- * into the first prompt of a resumed session.
215
- */
216
- private buildHistoricalContext;
217
- /**
218
- * Build a retry prompt from a tool timeout checkpoint.
219
- * Injects completed tool results and instructs Claude to skip the failed resource.
220
- */
221
- private buildRetryPrompt;
222
- /**
223
- * Build a short retry prompt for --resume sessions.
224
- * The session already has full conversation context, so we only need to
225
- * explain what timed out and instruct Claude to continue.
226
- */
227
- private buildResumeRetryPrompt;
228
- /**
229
- * Build a recovery prompt for --resume after context loss.
230
- * Since we're resuming the same session, Claude has full conversation history
231
- * (including all preserved tool results). We just need to redirect it back to the task.
232
- */
233
- private buildContextRecoveryPrompt;
234
- /**
235
- * Build a recovery prompt for a fresh session (no --resume) after repeated context loss.
236
- * Injects all accumulated tool results from previous attempts so Claude can continue
237
- * the task without re-fetching data it already gathered.
238
- */
239
- private buildFreshRecoveryPrompt;
240
- /**
241
- * Extract tool results from the last N movements in history.
242
- * Used for inter-movement recovery to provide context from prior work
243
- * when a resume session is corrupted/expired.
244
- */
245
- private extractHistoricalToolResults;
246
- /**
247
- * Build a recovery prompt for inter-movement context loss.
248
- * The Claude session expired between movements (not due to native timeouts).
249
- * Includes prior conversation summary + preserved tool results + anti-timeout guidance.
250
- */
251
- private buildInterMovementRecoveryPrompt;
252
- /** Summarize a tool input for display in retry prompts */
253
- private summarizeToolInput;
254
- /** Format a list of timed-out tools for retry prompts */
255
- private formatTimedOutTools;
256
- /** Format completed checkpoint tools for retry prompts */
257
- private formatCompletedTools;
258
- /** Format in-progress tools for retry prompts */
259
- private formatInProgressTools;
260
- /** Format tool results from ToolUseRecord[] for recovery prompts */
261
- private formatToolResults;
262
- /** Format conversation history for recovery prompts */
263
- private formatConversationHistory;
264
- /**
265
- * Load history from disk
266
- */
267
54
  private loadHistory;
268
- /**
269
- * Save history to disk
270
- */
271
55
  private saveHistory;
272
- /**
273
- * Get session history
274
- */
275
56
  getHistory(): SessionHistory;
276
- /**
277
- * Cancel current execution — immediately emits movementComplete so the web
278
- * gets instant feedback, then cleans up the process tree in the background.
279
- */
280
57
  cancel(): void;
281
- /**
282
- * Cleanup queue processor on shutdown
283
- */
284
58
  destroy(): void;
285
- /**
286
- * Clear session history and reset to fresh Claude session
287
- * This resets the isFirstPrompt flag and claudeSessionId so the next prompt starts a new session
288
- */
289
59
  clearHistory(): void;
290
- /**
291
- * Request user approval for a plan
292
- * Returns a promise that resolves when the user approves/rejects
293
- */
294
60
  requestApproval(plan: unknown): Promise<boolean>;
295
- /**
296
- * Respond to approval request
297
- */
298
61
  respondToApproval(approved: boolean): void;
299
- /**
300
- * Get session metadata
301
- */
302
62
  getSessionInfo(): {
303
63
  sessionId: string;
304
64
  startTime: string;
@@ -307,29 +67,13 @@ export declare class ImprovisationSessionManager extends EventEmitter {
307
67
  tokenBudgetThreshold: number;
308
68
  movementCount: number;
309
69
  };
310
- /**
311
- * Whether a prompt is currently executing
312
- */
313
70
  get isExecuting(): boolean;
314
- /**
315
- * Timestamp when current execution started (undefined when not executing)
316
- */
317
71
  get executionStartTimestamp(): number | undefined;
318
- /**
319
- * Get buffered execution events for replay on reconnect.
320
- * Only meaningful while isExecuting is true.
321
- */
322
72
  getExecutionEventLog(): Array<{
323
73
  type: string;
324
74
  data: unknown;
325
75
  timestamp: number;
326
76
  }>;
327
- /**
328
- * Start a new session with fresh context
329
- * Creates a completely new session manager with isFirstPrompt=true and no claudeSessionId,
330
- * ensuring the next prompt starts a fresh Claude conversation (proper tab isolation)
331
- */
332
77
  startNewSession(overrides?: Partial<ImprovisationOptions>): ImprovisationSessionManager;
333
78
  }
334
- export {};
335
79
  //# sourceMappingURL=improvisation-session-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"improvisation-session-manager.d.ts","sourceRoot":"","sources":["../../../server/cli/improvisation-session-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"improvisation-session-manager.d.ts","sourceRoot":"","sources":["../../../server/cli/improvisation-session-manager.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAe3C,OAAO,KAAK,EAAE,cAAc,EAAqB,oBAAoB,EAAE,cAAc,EAAkB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAIxJ,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEpI,qBAAa,2BAA4B,SAAQ,YAAY;IAC3D,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,aAAa,CAA6D;IAClF,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,eAAe,CAAC,CAGtB;IACF,OAAO,CAAC,WAAW,CAAkD;IACrE,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,oBAAoB,EAAE,MAAM,CAAM;IAElC,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,wBAAwB,CAAqB;IACrD,OAAO,CAAC,iBAAiB,CAAiE;IAC1F,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,sBAAsB,CAAkB;IAChD,OAAO,CAAC,kBAAkB,CAAc;IACxC,OAAO,CAAC,sBAAsB,CAAa;IAE3C,MAAM,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,2BAA2B;gBA+BrI,OAAO,GAAE,OAAO,CAAC,oBAAoB,CAAM;IA2BvD,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;IASlB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,cAAc,EAAE,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,cAAc,CAAC;IA4FxJ,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,sBAAsB;IAW9B,OAAO,CAAC,oBAAoB;YAMd,YAAY;IAwB1B,yEAAyE;YAC3D,qBAAqB;IAgCnC,+EAA+E;YACjE,uBAAuB;IAqBrC,OAAO,CAAC,wBAAwB;IA4ChC,OAAO,CAAC,8BAA8B;IAWtC,OAAO,CAAC,mBAAmB;IA2B3B,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,WAAW;IAKnB,UAAU,IAAI,cAAc;IAM5B,MAAM,IAAI,IAAI;IAqCd,OAAO,IAAI,IAAI;IAQf,YAAY,IAAI,IAAI;IAWd,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAOtD,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAO1C,cAAc;;;;;;;;IAWd,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,IAAI,uBAAuB,IAAI,MAAM,GAAG,SAAS,CAEhD;IAED,oBAAoB,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAIjF,eAAe,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,2BAA2B;CAQxF"}