wiggum-cli 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/dist/ai/agents/codebase-analyst.d.ts +0 -1
  2. package/dist/ai/agents/codebase-analyst.js +0 -1
  3. package/dist/ai/agents/codebase-analyzer.d.ts +0 -1
  4. package/dist/ai/agents/codebase-analyzer.js +0 -1
  5. package/dist/ai/agents/context-enricher.d.ts +0 -1
  6. package/dist/ai/agents/context-enricher.js +0 -1
  7. package/dist/ai/agents/evaluator-optimizer.d.ts +0 -1
  8. package/dist/ai/agents/evaluator-optimizer.js +0 -1
  9. package/dist/ai/agents/index.d.ts +0 -1
  10. package/dist/ai/agents/index.js +0 -1
  11. package/dist/ai/agents/mcp-detector.d.ts +0 -1
  12. package/dist/ai/agents/mcp-detector.js +0 -1
  13. package/dist/ai/agents/orchestrator.d.ts +0 -1
  14. package/dist/ai/agents/orchestrator.js +0 -1
  15. package/dist/ai/agents/planning-orchestrator.d.ts +0 -1
  16. package/dist/ai/agents/planning-orchestrator.js +0 -1
  17. package/dist/ai/agents/stack-researcher.d.ts +0 -1
  18. package/dist/ai/agents/stack-researcher.js +0 -1
  19. package/dist/ai/agents/stack-utils.d.ts +0 -1
  20. package/dist/ai/agents/stack-utils.js +0 -1
  21. package/dist/ai/agents/synthesis-agent.d.ts +0 -1
  22. package/dist/ai/agents/synthesis-agent.js +0 -1
  23. package/dist/ai/agents/tech-researcher.d.ts +0 -1
  24. package/dist/ai/agents/tech-researcher.js +0 -1
  25. package/dist/ai/agents/types.d.ts +0 -1
  26. package/dist/ai/agents/types.js +0 -1
  27. package/dist/ai/conversation/conversation-manager.d.ts +0 -1
  28. package/dist/ai/conversation/conversation-manager.js +0 -1
  29. package/dist/ai/conversation/index.d.ts +0 -1
  30. package/dist/ai/conversation/index.js +0 -1
  31. package/dist/ai/conversation/interview-tools.d.ts +0 -1
  32. package/dist/ai/conversation/interview-tools.js +0 -1
  33. package/dist/ai/conversation/spec-generator.d.ts +0 -1
  34. package/dist/ai/conversation/spec-generator.js +0 -1
  35. package/dist/ai/conversation/url-fetcher.d.ts +0 -1
  36. package/dist/ai/conversation/url-fetcher.js +0 -1
  37. package/dist/ai/enhancer.d.ts +0 -1
  38. package/dist/ai/enhancer.js +0 -1
  39. package/dist/ai/index.d.ts +0 -1
  40. package/dist/ai/index.js +0 -1
  41. package/dist/ai/prompts.d.ts +0 -1
  42. package/dist/ai/prompts.js +0 -1
  43. package/dist/ai/providers.d.ts +0 -1
  44. package/dist/ai/providers.js +0 -1
  45. package/dist/ai/tools/context7.d.ts +0 -1
  46. package/dist/ai/tools/context7.js +0 -1
  47. package/dist/ai/tools/index.d.ts +0 -1
  48. package/dist/ai/tools/index.js +0 -1
  49. package/dist/ai/tools/tavily.d.ts +0 -1
  50. package/dist/ai/tools/tavily.js +0 -1
  51. package/dist/ai/tools.d.ts +0 -1
  52. package/dist/ai/tools.js +0 -1
  53. package/dist/commands/config.d.ts +0 -1
  54. package/dist/commands/config.js +0 -1
  55. package/dist/commands/init.d.ts +0 -1
  56. package/dist/commands/init.js +0 -1
  57. package/dist/commands/monitor.d.ts +0 -1
  58. package/dist/commands/monitor.js +0 -1
  59. package/dist/commands/new.d.ts +0 -1
  60. package/dist/commands/new.js +0 -1
  61. package/dist/commands/run.d.ts +0 -1
  62. package/dist/commands/run.js +0 -1
  63. package/dist/context/convert.d.ts +0 -1
  64. package/dist/context/convert.js +0 -1
  65. package/dist/context/index.d.ts +0 -1
  66. package/dist/context/index.js +0 -1
  67. package/dist/context/storage.d.ts +0 -1
  68. package/dist/context/storage.js +0 -1
  69. package/dist/context/types.d.ts +0 -1
  70. package/dist/context/types.js +0 -1
  71. package/dist/generator/config.d.ts +0 -1
  72. package/dist/generator/config.js +0 -1
  73. package/dist/generator/index.d.ts +0 -1
  74. package/dist/generator/index.js +0 -1
  75. package/dist/generator/templates.d.ts +0 -1
  76. package/dist/generator/templates.js +0 -1
  77. package/dist/generator/writer.d.ts +0 -1
  78. package/dist/generator/writer.js +0 -1
  79. package/dist/index.d.ts +0 -1
  80. package/dist/index.js +7 -7
  81. package/dist/repl/command-parser.d.ts +0 -1
  82. package/dist/repl/command-parser.js +0 -1
  83. package/dist/repl/index.d.ts +0 -1
  84. package/dist/repl/index.js +0 -1
  85. package/dist/repl/session-state.d.ts +0 -1
  86. package/dist/repl/session-state.js +0 -1
  87. package/dist/scanner/detectors/core/framework.d.ts +0 -1
  88. package/dist/scanner/detectors/core/framework.js +0 -1
  89. package/dist/scanner/detectors/core/packageManager.d.ts +0 -1
  90. package/dist/scanner/detectors/core/packageManager.js +0 -1
  91. package/dist/scanner/detectors/core/styling.d.ts +0 -1
  92. package/dist/scanner/detectors/core/styling.js +0 -1
  93. package/dist/scanner/detectors/core/testing.d.ts +0 -1
  94. package/dist/scanner/detectors/core/testing.js +0 -1
  95. package/dist/scanner/detectors/data/api.d.ts +0 -1
  96. package/dist/scanner/detectors/data/api.js +0 -1
  97. package/dist/scanner/detectors/data/database.d.ts +0 -1
  98. package/dist/scanner/detectors/data/database.js +0 -1
  99. package/dist/scanner/detectors/data/orm.d.ts +0 -1
  100. package/dist/scanner/detectors/data/orm.js +0 -1
  101. package/dist/scanner/detectors/frontend/formHandling.d.ts +0 -1
  102. package/dist/scanner/detectors/frontend/formHandling.js +0 -1
  103. package/dist/scanner/detectors/frontend/stateManagement.d.ts +0 -1
  104. package/dist/scanner/detectors/frontend/stateManagement.js +0 -1
  105. package/dist/scanner/detectors/frontend/uiComponents.d.ts +0 -1
  106. package/dist/scanner/detectors/frontend/uiComponents.js +0 -1
  107. package/dist/scanner/detectors/infra/deployment.d.ts +0 -1
  108. package/dist/scanner/detectors/infra/deployment.js +0 -1
  109. package/dist/scanner/detectors/infra/monorepo.d.ts +0 -1
  110. package/dist/scanner/detectors/infra/monorepo.js +0 -1
  111. package/dist/scanner/detectors/mcp/mcpProject.d.ts +0 -1
  112. package/dist/scanner/detectors/mcp/mcpProject.js +0 -1
  113. package/dist/scanner/detectors/mcp/mcpServers.d.ts +0 -1
  114. package/dist/scanner/detectors/mcp/mcpServers.js +0 -1
  115. package/dist/scanner/detectors/services/analytics.d.ts +0 -1
  116. package/dist/scanner/detectors/services/analytics.js +0 -1
  117. package/dist/scanner/detectors/services/auth.d.ts +0 -1
  118. package/dist/scanner/detectors/services/auth.js +0 -1
  119. package/dist/scanner/detectors/services/email.d.ts +0 -1
  120. package/dist/scanner/detectors/services/email.js +0 -1
  121. package/dist/scanner/detectors/services/payments.d.ts +0 -1
  122. package/dist/scanner/detectors/services/payments.js +0 -1
  123. package/dist/scanner/detectors/utils.d.ts +0 -1
  124. package/dist/scanner/detectors/utils.js +0 -1
  125. package/dist/scanner/index.d.ts +0 -1
  126. package/dist/scanner/index.js +0 -1
  127. package/dist/scanner/registry.d.ts +0 -1
  128. package/dist/scanner/registry.js +0 -1
  129. package/dist/scanner/types.d.ts +0 -1
  130. package/dist/scanner/types.js +0 -1
  131. package/dist/tui/app.d.ts +12 -23
  132. package/dist/tui/app.js +130 -315
  133. package/dist/tui/components/ActionOutput.d.ts +0 -1
  134. package/dist/tui/components/ActionOutput.js +0 -1
  135. package/dist/tui/components/AppShell.d.ts +47 -0
  136. package/dist/tui/components/AppShell.js +19 -0
  137. package/dist/tui/components/ChatInput.d.ts +0 -1
  138. package/dist/tui/components/ChatInput.js +0 -1
  139. package/dist/tui/components/CommandDropdown.d.ts +0 -1
  140. package/dist/tui/components/CommandDropdown.js +0 -1
  141. package/dist/tui/components/Confirm.d.ts +0 -1
  142. package/dist/tui/components/Confirm.js +0 -1
  143. package/dist/tui/components/ErrorCard.d.ts +0 -1
  144. package/dist/tui/components/ErrorCard.js +0 -1
  145. package/dist/tui/components/FooterStatusBar.d.ts +0 -1
  146. package/dist/tui/components/FooterStatusBar.js +2 -4
  147. package/dist/tui/components/HeaderContent.d.ts +28 -0
  148. package/dist/tui/components/HeaderContent.js +16 -0
  149. package/dist/tui/components/MessageList.d.ts +9 -8
  150. package/dist/tui/components/MessageList.js +23 -18
  151. package/dist/tui/components/MultiSelect.d.ts +0 -1
  152. package/dist/tui/components/MultiSelect.js +0 -1
  153. package/dist/tui/components/PasswordInput.d.ts +0 -1
  154. package/dist/tui/components/PasswordInput.js +0 -1
  155. package/dist/tui/components/PhaseHeader.d.ts +0 -1
  156. package/dist/tui/components/PhaseHeader.js +0 -1
  157. package/dist/tui/components/RunCompletionSummary.d.ts +22 -0
  158. package/dist/tui/components/RunCompletionSummary.js +23 -0
  159. package/dist/tui/components/Select.d.ts +0 -1
  160. package/dist/tui/components/Select.js +0 -1
  161. package/dist/tui/components/SpecCompletionSummary.d.ts +47 -0
  162. package/dist/tui/components/SpecCompletionSummary.js +124 -0
  163. package/dist/tui/components/StatusLine.d.ts +0 -1
  164. package/dist/tui/components/StatusLine.js +0 -1
  165. package/dist/tui/components/StreamingText.d.ts +0 -1
  166. package/dist/tui/components/StreamingText.js +0 -1
  167. package/dist/tui/components/TipsBar.d.ts +24 -0
  168. package/dist/tui/components/TipsBar.js +23 -0
  169. package/dist/tui/components/ToolCallCard.d.ts +0 -1
  170. package/dist/tui/components/ToolCallCard.js +0 -1
  171. package/dist/tui/components/WiggumBanner.d.ts +0 -1
  172. package/dist/tui/components/WiggumBanner.js +8 -4
  173. package/dist/tui/components/WorkingIndicator.d.ts +0 -1
  174. package/dist/tui/components/WorkingIndicator.js +0 -1
  175. package/dist/tui/components/index.d.ts +0 -1
  176. package/dist/tui/components/index.js +0 -1
  177. package/dist/tui/hooks/index.d.ts +0 -1
  178. package/dist/tui/hooks/index.js +0 -1
  179. package/dist/tui/hooks/useBackgroundRuns.d.ts +52 -0
  180. package/dist/tui/hooks/useBackgroundRuns.js +121 -0
  181. package/dist/tui/hooks/useCommandHistory.d.ts +0 -1
  182. package/dist/tui/hooks/useCommandHistory.js +0 -1
  183. package/dist/tui/hooks/useInit.d.ts +0 -1
  184. package/dist/tui/hooks/useInit.js +0 -1
  185. package/dist/tui/hooks/useSpecGenerator.d.ts +0 -1
  186. package/dist/tui/hooks/useSpecGenerator.js +0 -1
  187. package/dist/tui/hooks/useSync.d.ts +0 -1
  188. package/dist/tui/hooks/useSync.js +0 -1
  189. package/dist/tui/index.d.ts +0 -1
  190. package/dist/tui/index.js +0 -1
  191. package/dist/tui/orchestration/index.d.ts +0 -1
  192. package/dist/tui/orchestration/index.js +0 -1
  193. package/dist/tui/orchestration/interview-orchestrator.d.ts +0 -1
  194. package/dist/tui/orchestration/interview-orchestrator.js +1 -2
  195. package/dist/tui/screens/InitScreen.d.ts +13 -9
  196. package/dist/tui/screens/InitScreen.js +86 -88
  197. package/dist/tui/screens/InterviewScreen.d.ts +11 -9
  198. package/dist/tui/screens/InterviewScreen.js +145 -100
  199. package/dist/tui/screens/MainShell.d.ts +13 -13
  200. package/dist/tui/screens/MainShell.js +65 -70
  201. package/dist/tui/screens/RunScreen.d.ts +17 -2
  202. package/dist/tui/screens/RunScreen.js +235 -81
  203. package/dist/tui/screens/index.d.ts +0 -3
  204. package/dist/tui/screens/index.js +0 -2
  205. package/dist/tui/theme.d.ts +0 -1
  206. package/dist/tui/theme.js +0 -1
  207. package/dist/tui/types/interview.d.ts +0 -1
  208. package/dist/tui/types/interview.js +0 -1
  209. package/dist/tui/utils/input-utils.d.ts +0 -1
  210. package/dist/tui/utils/input-utils.js +0 -1
  211. package/dist/tui/utils/loop-status.d.ts +22 -4
  212. package/dist/tui/utils/loop-status.js +65 -16
  213. package/dist/utils/colors.d.ts +0 -1
  214. package/dist/utils/colors.js +0 -1
  215. package/dist/utils/config.d.ts +0 -1
  216. package/dist/utils/config.js +0 -1
  217. package/dist/utils/env.d.ts +0 -1
  218. package/dist/utils/env.js +0 -1
  219. package/dist/utils/header.d.ts +0 -1
  220. package/dist/utils/header.js +0 -1
  221. package/dist/utils/json-repair.d.ts +0 -1
  222. package/dist/utils/json-repair.js +0 -1
  223. package/dist/utils/logger.d.ts +0 -1
  224. package/dist/utils/logger.js +0 -1
  225. package/dist/utils/spinner.d.ts +0 -1
  226. package/dist/utils/spinner.js +0 -1
  227. package/dist/utils/tracing.d.ts +0 -1
  228. package/dist/utils/tracing.js +0 -1
  229. package/dist/utils/tui.d.ts +0 -1
  230. package/dist/utils/tui.js +0 -1
  231. package/dist/utils/update-check.d.ts +0 -1
  232. package/dist/utils/update-check.js +0 -1
  233. package/package.json +6 -4
  234. package/CONTRIBUTING.md +0 -162
  235. package/dist/__test-utils__/fixtures.d.ts +0 -17
  236. package/dist/__test-utils__/fixtures.d.ts.map +0 -1
  237. package/dist/__test-utils__/fixtures.js +0 -32
  238. package/dist/__test-utils__/fixtures.js.map +0 -1
  239. package/dist/__test-utils__/ink-helpers.d.ts +0 -43
  240. package/dist/__test-utils__/ink-helpers.d.ts.map +0 -1
  241. package/dist/__test-utils__/ink-helpers.js +0 -62
  242. package/dist/__test-utils__/ink-helpers.js.map +0 -1
  243. package/dist/__test-utils__/mock-ai.d.ts +0 -99
  244. package/dist/__test-utils__/mock-ai.d.ts.map +0 -1
  245. package/dist/__test-utils__/mock-ai.js +0 -75
  246. package/dist/__test-utils__/mock-ai.js.map +0 -1
  247. package/dist/__test-utils__/mock-tracing.d.ts +0 -18
  248. package/dist/__test-utils__/mock-tracing.d.ts.map +0 -1
  249. package/dist/__test-utils__/mock-tracing.js +0 -24
  250. package/dist/__test-utils__/mock-tracing.js.map +0 -1
  251. package/dist/__test-utils__/setup.d.ts +0 -8
  252. package/dist/__test-utils__/setup.d.ts.map +0 -1
  253. package/dist/__test-utils__/setup.js +0 -21
  254. package/dist/__test-utils__/setup.js.map +0 -1
  255. package/dist/ai/agents/codebase-analyst.d.ts.map +0 -1
  256. package/dist/ai/agents/codebase-analyst.js.map +0 -1
  257. package/dist/ai/agents/codebase-analyzer.d.ts.map +0 -1
  258. package/dist/ai/agents/codebase-analyzer.js.map +0 -1
  259. package/dist/ai/agents/context-enricher.d.ts.map +0 -1
  260. package/dist/ai/agents/context-enricher.js.map +0 -1
  261. package/dist/ai/agents/evaluator-optimizer.d.ts.map +0 -1
  262. package/dist/ai/agents/evaluator-optimizer.js.map +0 -1
  263. package/dist/ai/agents/index.d.ts.map +0 -1
  264. package/dist/ai/agents/index.js.map +0 -1
  265. package/dist/ai/agents/mcp-detector.d.ts.map +0 -1
  266. package/dist/ai/agents/mcp-detector.js.map +0 -1
  267. package/dist/ai/agents/orchestrator.d.ts.map +0 -1
  268. package/dist/ai/agents/orchestrator.js.map +0 -1
  269. package/dist/ai/agents/planning-orchestrator.d.ts.map +0 -1
  270. package/dist/ai/agents/planning-orchestrator.js.map +0 -1
  271. package/dist/ai/agents/stack-researcher.d.ts.map +0 -1
  272. package/dist/ai/agents/stack-researcher.js.map +0 -1
  273. package/dist/ai/agents/stack-utils.d.ts.map +0 -1
  274. package/dist/ai/agents/stack-utils.js.map +0 -1
  275. package/dist/ai/agents/synthesis-agent.d.ts.map +0 -1
  276. package/dist/ai/agents/synthesis-agent.js.map +0 -1
  277. package/dist/ai/agents/tech-researcher.d.ts.map +0 -1
  278. package/dist/ai/agents/tech-researcher.js.map +0 -1
  279. package/dist/ai/agents/types.d.ts.map +0 -1
  280. package/dist/ai/agents/types.js.map +0 -1
  281. package/dist/ai/conversation/conversation-manager.d.ts.map +0 -1
  282. package/dist/ai/conversation/conversation-manager.js.map +0 -1
  283. package/dist/ai/conversation/index.d.ts.map +0 -1
  284. package/dist/ai/conversation/index.js.map +0 -1
  285. package/dist/ai/conversation/interview-tools.d.ts.map +0 -1
  286. package/dist/ai/conversation/interview-tools.js.map +0 -1
  287. package/dist/ai/conversation/spec-generator.d.ts.map +0 -1
  288. package/dist/ai/conversation/spec-generator.js.map +0 -1
  289. package/dist/ai/conversation/url-fetcher.d.ts.map +0 -1
  290. package/dist/ai/conversation/url-fetcher.js.map +0 -1
  291. package/dist/ai/enhancer.d.ts.map +0 -1
  292. package/dist/ai/enhancer.js.map +0 -1
  293. package/dist/ai/index.d.ts.map +0 -1
  294. package/dist/ai/index.js.map +0 -1
  295. package/dist/ai/prompts.d.ts.map +0 -1
  296. package/dist/ai/prompts.js.map +0 -1
  297. package/dist/ai/providers.d.ts.map +0 -1
  298. package/dist/ai/providers.js.map +0 -1
  299. package/dist/ai/tools/context7.d.ts.map +0 -1
  300. package/dist/ai/tools/context7.js.map +0 -1
  301. package/dist/ai/tools/index.d.ts.map +0 -1
  302. package/dist/ai/tools/index.js.map +0 -1
  303. package/dist/ai/tools/tavily.d.ts.map +0 -1
  304. package/dist/ai/tools/tavily.js.map +0 -1
  305. package/dist/ai/tools.d.ts.map +0 -1
  306. package/dist/ai/tools.js.map +0 -1
  307. package/dist/commands/config.d.ts.map +0 -1
  308. package/dist/commands/config.js.map +0 -1
  309. package/dist/commands/init.d.ts.map +0 -1
  310. package/dist/commands/init.js.map +0 -1
  311. package/dist/commands/monitor.d.ts.map +0 -1
  312. package/dist/commands/monitor.js.map +0 -1
  313. package/dist/commands/new.d.ts.map +0 -1
  314. package/dist/commands/new.js.map +0 -1
  315. package/dist/commands/run.d.ts.map +0 -1
  316. package/dist/commands/run.js.map +0 -1
  317. package/dist/context/convert.d.ts.map +0 -1
  318. package/dist/context/convert.js.map +0 -1
  319. package/dist/context/index.d.ts.map +0 -1
  320. package/dist/context/index.js.map +0 -1
  321. package/dist/context/storage.d.ts.map +0 -1
  322. package/dist/context/storage.js.map +0 -1
  323. package/dist/context/types.d.ts.map +0 -1
  324. package/dist/context/types.js.map +0 -1
  325. package/dist/generator/config.d.ts.map +0 -1
  326. package/dist/generator/config.js.map +0 -1
  327. package/dist/generator/index.d.ts.map +0 -1
  328. package/dist/generator/index.js.map +0 -1
  329. package/dist/generator/templates.d.ts.map +0 -1
  330. package/dist/generator/templates.js.map +0 -1
  331. package/dist/generator/writer.d.ts.map +0 -1
  332. package/dist/generator/writer.js.map +0 -1
  333. package/dist/index.d.ts.map +0 -1
  334. package/dist/index.js.map +0 -1
  335. package/dist/repl/command-parser.d.ts.map +0 -1
  336. package/dist/repl/command-parser.js.map +0 -1
  337. package/dist/repl/index.d.ts.map +0 -1
  338. package/dist/repl/index.js.map +0 -1
  339. package/dist/repl/session-state.d.ts.map +0 -1
  340. package/dist/repl/session-state.js.map +0 -1
  341. package/dist/scanner/detectors/core/framework.d.ts.map +0 -1
  342. package/dist/scanner/detectors/core/framework.js.map +0 -1
  343. package/dist/scanner/detectors/core/packageManager.d.ts.map +0 -1
  344. package/dist/scanner/detectors/core/packageManager.js.map +0 -1
  345. package/dist/scanner/detectors/core/styling.d.ts.map +0 -1
  346. package/dist/scanner/detectors/core/styling.js.map +0 -1
  347. package/dist/scanner/detectors/core/testing.d.ts.map +0 -1
  348. package/dist/scanner/detectors/core/testing.js.map +0 -1
  349. package/dist/scanner/detectors/data/api.d.ts.map +0 -1
  350. package/dist/scanner/detectors/data/api.js.map +0 -1
  351. package/dist/scanner/detectors/data/database.d.ts.map +0 -1
  352. package/dist/scanner/detectors/data/database.js.map +0 -1
  353. package/dist/scanner/detectors/data/orm.d.ts.map +0 -1
  354. package/dist/scanner/detectors/data/orm.js.map +0 -1
  355. package/dist/scanner/detectors/frontend/formHandling.d.ts.map +0 -1
  356. package/dist/scanner/detectors/frontend/formHandling.js.map +0 -1
  357. package/dist/scanner/detectors/frontend/stateManagement.d.ts.map +0 -1
  358. package/dist/scanner/detectors/frontend/stateManagement.js.map +0 -1
  359. package/dist/scanner/detectors/frontend/uiComponents.d.ts.map +0 -1
  360. package/dist/scanner/detectors/frontend/uiComponents.js.map +0 -1
  361. package/dist/scanner/detectors/infra/deployment.d.ts.map +0 -1
  362. package/dist/scanner/detectors/infra/deployment.js.map +0 -1
  363. package/dist/scanner/detectors/infra/monorepo.d.ts.map +0 -1
  364. package/dist/scanner/detectors/infra/monorepo.js.map +0 -1
  365. package/dist/scanner/detectors/mcp/mcpProject.d.ts.map +0 -1
  366. package/dist/scanner/detectors/mcp/mcpProject.js.map +0 -1
  367. package/dist/scanner/detectors/mcp/mcpServers.d.ts.map +0 -1
  368. package/dist/scanner/detectors/mcp/mcpServers.js.map +0 -1
  369. package/dist/scanner/detectors/services/analytics.d.ts.map +0 -1
  370. package/dist/scanner/detectors/services/analytics.js.map +0 -1
  371. package/dist/scanner/detectors/services/auth.d.ts.map +0 -1
  372. package/dist/scanner/detectors/services/auth.js.map +0 -1
  373. package/dist/scanner/detectors/services/email.d.ts.map +0 -1
  374. package/dist/scanner/detectors/services/email.js.map +0 -1
  375. package/dist/scanner/detectors/services/payments.d.ts.map +0 -1
  376. package/dist/scanner/detectors/services/payments.js.map +0 -1
  377. package/dist/scanner/detectors/utils.d.ts.map +0 -1
  378. package/dist/scanner/detectors/utils.js.map +0 -1
  379. package/dist/scanner/index.d.ts.map +0 -1
  380. package/dist/scanner/index.js.map +0 -1
  381. package/dist/scanner/registry.d.ts.map +0 -1
  382. package/dist/scanner/registry.js.map +0 -1
  383. package/dist/scanner/types.d.ts.map +0 -1
  384. package/dist/scanner/types.js.map +0 -1
  385. package/dist/tui/app.d.ts.map +0 -1
  386. package/dist/tui/app.js.map +0 -1
  387. package/dist/tui/components/ActionOutput.d.ts.map +0 -1
  388. package/dist/tui/components/ActionOutput.js.map +0 -1
  389. package/dist/tui/components/ChatInput.d.ts.map +0 -1
  390. package/dist/tui/components/ChatInput.js.map +0 -1
  391. package/dist/tui/components/ChatInput.test.d.ts +0 -2
  392. package/dist/tui/components/ChatInput.test.d.ts.map +0 -1
  393. package/dist/tui/components/ChatInput.test.js +0 -75
  394. package/dist/tui/components/ChatInput.test.js.map +0 -1
  395. package/dist/tui/components/CommandDropdown.d.ts.map +0 -1
  396. package/dist/tui/components/CommandDropdown.js.map +0 -1
  397. package/dist/tui/components/Confirm.d.ts.map +0 -1
  398. package/dist/tui/components/Confirm.js.map +0 -1
  399. package/dist/tui/components/ErrorCard.d.ts.map +0 -1
  400. package/dist/tui/components/ErrorCard.js.map +0 -1
  401. package/dist/tui/components/FooterStatusBar.d.ts.map +0 -1
  402. package/dist/tui/components/FooterStatusBar.js.map +0 -1
  403. package/dist/tui/components/MessageList.d.ts.map +0 -1
  404. package/dist/tui/components/MessageList.js.map +0 -1
  405. package/dist/tui/components/MultiSelect.d.ts.map +0 -1
  406. package/dist/tui/components/MultiSelect.js.map +0 -1
  407. package/dist/tui/components/PasswordInput.d.ts.map +0 -1
  408. package/dist/tui/components/PasswordInput.js.map +0 -1
  409. package/dist/tui/components/PhaseHeader.d.ts.map +0 -1
  410. package/dist/tui/components/PhaseHeader.js.map +0 -1
  411. package/dist/tui/components/Select.d.ts.map +0 -1
  412. package/dist/tui/components/Select.js.map +0 -1
  413. package/dist/tui/components/StatusLine.d.ts.map +0 -1
  414. package/dist/tui/components/StatusLine.js.map +0 -1
  415. package/dist/tui/components/StreamingText.d.ts.map +0 -1
  416. package/dist/tui/components/StreamingText.js.map +0 -1
  417. package/dist/tui/components/ToolCallCard.d.ts.map +0 -1
  418. package/dist/tui/components/ToolCallCard.js.map +0 -1
  419. package/dist/tui/components/WiggumBanner.d.ts.map +0 -1
  420. package/dist/tui/components/WiggumBanner.js.map +0 -1
  421. package/dist/tui/components/WorkingIndicator.d.ts.map +0 -1
  422. package/dist/tui/components/WorkingIndicator.js.map +0 -1
  423. package/dist/tui/components/WorkingIndicator.test.d.ts +0 -2
  424. package/dist/tui/components/WorkingIndicator.test.d.ts.map +0 -1
  425. package/dist/tui/components/WorkingIndicator.test.js +0 -26
  426. package/dist/tui/components/WorkingIndicator.test.js.map +0 -1
  427. package/dist/tui/components/index.d.ts.map +0 -1
  428. package/dist/tui/components/index.js.map +0 -1
  429. package/dist/tui/demo.d.ts +0 -8
  430. package/dist/tui/demo.d.ts.map +0 -1
  431. package/dist/tui/demo.js +0 -69
  432. package/dist/tui/demo.js.map +0 -1
  433. package/dist/tui/hooks/index.d.ts.map +0 -1
  434. package/dist/tui/hooks/index.js.map +0 -1
  435. package/dist/tui/hooks/useCommandHistory.d.ts.map +0 -1
  436. package/dist/tui/hooks/useCommandHistory.js.map +0 -1
  437. package/dist/tui/hooks/useInit.d.ts.map +0 -1
  438. package/dist/tui/hooks/useInit.js.map +0 -1
  439. package/dist/tui/hooks/useSpecGenerator.d.ts.map +0 -1
  440. package/dist/tui/hooks/useSpecGenerator.js.map +0 -1
  441. package/dist/tui/hooks/useSync.d.ts.map +0 -1
  442. package/dist/tui/hooks/useSync.js.map +0 -1
  443. package/dist/tui/index.d.ts.map +0 -1
  444. package/dist/tui/index.js.map +0 -1
  445. package/dist/tui/orchestration/index.d.ts.map +0 -1
  446. package/dist/tui/orchestration/index.js.map +0 -1
  447. package/dist/tui/orchestration/interview-orchestrator.d.ts.map +0 -1
  448. package/dist/tui/orchestration/interview-orchestrator.js.map +0 -1
  449. package/dist/tui/screens/InitScreen.d.ts.map +0 -1
  450. package/dist/tui/screens/InitScreen.js.map +0 -1
  451. package/dist/tui/screens/InterviewScreen.d.ts.map +0 -1
  452. package/dist/tui/screens/InterviewScreen.integration.test.d.ts +0 -7
  453. package/dist/tui/screens/InterviewScreen.integration.test.d.ts.map +0 -1
  454. package/dist/tui/screens/InterviewScreen.integration.test.js +0 -149
  455. package/dist/tui/screens/InterviewScreen.integration.test.js.map +0 -1
  456. package/dist/tui/screens/InterviewScreen.js.map +0 -1
  457. package/dist/tui/screens/MainShell.d.ts.map +0 -1
  458. package/dist/tui/screens/MainShell.js.map +0 -1
  459. package/dist/tui/screens/MainShell.test.d.ts +0 -2
  460. package/dist/tui/screens/MainShell.test.d.ts.map +0 -1
  461. package/dist/tui/screens/MainShell.test.js +0 -103
  462. package/dist/tui/screens/MainShell.test.js.map +0 -1
  463. package/dist/tui/screens/RunScreen.d.ts.map +0 -1
  464. package/dist/tui/screens/RunScreen.js.map +0 -1
  465. package/dist/tui/screens/WelcomeScreen.d.ts +0 -45
  466. package/dist/tui/screens/WelcomeScreen.d.ts.map +0 -1
  467. package/dist/tui/screens/WelcomeScreen.js +0 -55
  468. package/dist/tui/screens/WelcomeScreen.js.map +0 -1
  469. package/dist/tui/screens/WelcomeScreen.test.d.ts +0 -2
  470. package/dist/tui/screens/WelcomeScreen.test.d.ts.map +0 -1
  471. package/dist/tui/screens/WelcomeScreen.test.js +0 -51
  472. package/dist/tui/screens/WelcomeScreen.test.js.map +0 -1
  473. package/dist/tui/screens/index.d.ts.map +0 -1
  474. package/dist/tui/screens/index.js.map +0 -1
  475. package/dist/tui/theme.d.ts.map +0 -1
  476. package/dist/tui/theme.js.map +0 -1
  477. package/dist/tui/types/interview.d.ts.map +0 -1
  478. package/dist/tui/types/interview.js.map +0 -1
  479. package/dist/tui/utils/input-utils.d.ts.map +0 -1
  480. package/dist/tui/utils/input-utils.js.map +0 -1
  481. package/dist/tui/utils/loop-status.d.ts.map +0 -1
  482. package/dist/tui/utils/loop-status.js.map +0 -1
  483. package/dist/utils/colors.d.ts.map +0 -1
  484. package/dist/utils/colors.js.map +0 -1
  485. package/dist/utils/config.d.ts.map +0 -1
  486. package/dist/utils/config.js.map +0 -1
  487. package/dist/utils/env.d.ts.map +0 -1
  488. package/dist/utils/env.js.map +0 -1
  489. package/dist/utils/header.d.ts.map +0 -1
  490. package/dist/utils/header.js.map +0 -1
  491. package/dist/utils/json-repair.d.ts.map +0 -1
  492. package/dist/utils/json-repair.js.map +0 -1
  493. package/dist/utils/logger.d.ts.map +0 -1
  494. package/dist/utils/logger.js.map +0 -1
  495. package/dist/utils/spinner.d.ts.map +0 -1
  496. package/dist/utils/spinner.js.map +0 -1
  497. package/dist/utils/tracing.d.ts.map +0 -1
  498. package/dist/utils/tracing.js.map +0 -1
  499. package/dist/utils/tui.d.ts.map +0 -1
  500. package/dist/utils/tui.js.map +0 -1
  501. package/dist/utils/update-check.d.ts.map +0 -1
  502. package/dist/utils/update-check.js.map +0 -1
@@ -4,17 +4,19 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  *
5
5
  * The main interactive shell for Wiggum CLI, replacing the readline REPL.
6
6
  * Handles slash commands and provides navigation to other screens.
7
+ * Wrapped in AppShell for consistent layout.
7
8
  */
8
9
  import { useState, useCallback, useEffect, useMemo } from 'react';
9
10
  import { Box, Text, useInput, useApp } from 'ink';
10
11
  import { MessageList } from '../components/MessageList.js';
11
12
  import { ChatInput } from '../components/ChatInput.js';
12
- import { WorkingIndicator } from '../components/WorkingIndicator.js';
13
13
  import { ActionOutput } from '../components/ActionOutput.js';
14
- import { FooterStatusBar } from '../components/FooterStatusBar.js';
15
- import { colors, theme } from '../theme.js';
14
+ import { AppShell } from '../components/AppShell.js';
15
+ import { colors, theme, phase } from '../theme.js';
16
16
  import { loadContext, getContextAge } from '../../context/index.js';
17
+ import { logger } from '../../utils/logger.js';
17
18
  import { parseInput, resolveCommandAlias, formatHelpText, } from '../../repl/command-parser.js';
19
+ import { readLoopStatus } from '../utils/loop-status.js';
18
20
  import { useSync } from '../hooks/useSync.js';
19
21
  import path from 'node:path';
20
22
  /**
@@ -28,24 +30,24 @@ function generateId() {
28
30
  *
29
31
  * The main interactive shell that handles slash commands and navigation.
30
32
  * Replaces the readline-based REPL with an Ink-powered TUI.
31
- *
32
- * @example
33
- * ```tsx
34
- * <MainShell
35
- * sessionState={state}
36
- * onNavigate={(target, props) => setScreen(target, props)}
37
- * />
38
- * ```
39
33
  */
40
- export function MainShell({ sessionState, onNavigate, }) {
34
+ export function MainShell({ header, sessionState, onNavigate, backgroundRuns, initialMessage, initialFiles, }) {
41
35
  const { exit } = useApp();
42
- const [messages, setMessages] = useState([]);
36
+ const [messages, setMessages] = useState(() => {
37
+ const initial = [];
38
+ if (initialMessage) {
39
+ initial.push({ id: generateId(), role: 'system', content: initialMessage });
40
+ }
41
+ if (initialFiles && initialFiles.length > 0) {
42
+ for (const file of initialFiles) {
43
+ initial.push({ id: generateId(), role: 'system', content: ` ${file}` });
44
+ }
45
+ }
46
+ return initial;
47
+ });
43
48
  const [contextAge, setContextAge] = useState(null);
44
49
  // Sync hook
45
50
  const { status: syncStatus, error: syncError, sync } = useSync();
46
- /**
47
- * Add a system message to the conversation
48
- */
49
51
  const addSystemMessage = useCallback((content) => {
50
52
  const message = {
51
53
  id: generateId(),
@@ -74,9 +76,10 @@ export function MainShell({ sessionState, onNavigate, }) {
74
76
  setContextAge(null);
75
77
  }
76
78
  }
77
- catch {
79
+ catch (err) {
80
+ logger.error(`Failed to load context: ${err instanceof Error ? err.message : String(err)}`);
78
81
  if (!cancelled) {
79
- setContextAge(null);
82
+ setContextAge('load error');
80
83
  }
81
84
  }
82
85
  };
@@ -86,22 +89,12 @@ export function MainShell({ sessionState, onNavigate, }) {
86
89
  };
87
90
  }, [sessionState.projectRoot, sessionState.initialized, syncStatus]);
88
91
  const projectLabel = useMemo(() => path.basename(sessionState.projectRoot), [sessionState.projectRoot]);
89
- /**
90
- * Handle /help command
91
- */
92
92
  const handleHelp = useCallback(() => {
93
93
  addSystemMessage(formatHelpText());
94
94
  }, [addSystemMessage]);
95
- /**
96
- * Handle /init command
97
- */
98
95
  const handleInit = useCallback(() => {
99
- // Navigate to init screen
100
96
  onNavigate('init');
101
97
  }, [onNavigate]);
102
- /**
103
- * Handle /new command
104
- */
105
98
  const handleNew = useCallback((args) => {
106
99
  if (args.length === 0) {
107
100
  addSystemMessage('Feature name required. Usage: /new <feature-name>');
@@ -114,9 +107,6 @@ export function MainShell({ sessionState, onNavigate, }) {
114
107
  const featureName = args[0];
115
108
  onNavigate('interview', { featureName });
116
109
  }, [sessionState.initialized, onNavigate, addSystemMessage]);
117
- /**
118
- * Handle /run command
119
- */
120
110
  const handleRun = useCallback((args) => {
121
111
  if (args.length === 0) {
122
112
  addSystemMessage('Feature name required. Usage: /run <feature-name>');
@@ -129,22 +119,38 @@ export function MainShell({ sessionState, onNavigate, }) {
129
119
  const featureName = args[0];
130
120
  onNavigate('run', { featureName });
131
121
  }, [sessionState.initialized, addSystemMessage, onNavigate]);
132
- /**
133
- * Handle /monitor command
134
- */
135
122
  const handleMonitor = useCallback((args) => {
136
123
  if (args.length === 0) {
137
124
  addSystemMessage('Feature name required. Usage: /monitor <feature-name>');
138
125
  return;
139
126
  }
140
- // TODO: Implement monitor screen navigation
141
- addSystemMessage(`Monitor command for "${args[0]}" - not yet implemented in TUI mode.`);
142
- }, [addSystemMessage]);
143
- /**
144
- * Handle /config command
145
- */
127
+ const featureName = args[0];
128
+ if (!/^[a-zA-Z0-9_-]+$/.test(featureName)) {
129
+ addSystemMessage('Feature name must contain only letters, numbers, hyphens, and underscores.');
130
+ return;
131
+ }
132
+ // Check if it's a tracked background run
133
+ const bgRun = backgroundRuns?.find((r) => r.featureName === featureName);
134
+ if (bgRun) {
135
+ onNavigate('run', { featureName, monitorOnly: true });
136
+ return;
137
+ }
138
+ // Check if the process is running even if not tracked
139
+ try {
140
+ const status = readLoopStatus(featureName);
141
+ if (status.running) {
142
+ onNavigate('run', { featureName, monitorOnly: true });
143
+ return;
144
+ }
145
+ }
146
+ catch (err) {
147
+ const reason = err instanceof Error ? err.message : String(err);
148
+ addSystemMessage(`Could not check loop status for "${featureName}": ${reason}`);
149
+ return;
150
+ }
151
+ addSystemMessage(`No running loop found for "${featureName}".`);
152
+ }, [addSystemMessage, backgroundRuns, onNavigate]);
146
153
  const handleConfig = useCallback((args) => {
147
- // TODO: Implement config screen or inline config
148
154
  if (args.length === 0) {
149
155
  addSystemMessage('Config management - not yet implemented in TUI mode. Use CLI: wiggum config');
150
156
  }
@@ -152,19 +158,12 @@ export function MainShell({ sessionState, onNavigate, }) {
152
158
  addSystemMessage(`Config: ${args.join(' ')} - not yet implemented in TUI mode.`);
153
159
  }
154
160
  }, [addSystemMessage]);
155
- /**
156
- * Handle /exit command
157
- */
158
161
  const handleExit = useCallback(() => {
159
162
  addSystemMessage('Goodbye!');
160
- // Small delay to show message before exit
161
163
  setTimeout(() => {
162
164
  exit();
163
165
  }, 100);
164
166
  }, [addSystemMessage, exit]);
165
- /**
166
- * Handle /sync command
167
- */
168
167
  const handleSync = useCallback(() => {
169
168
  if (!sessionState.initialized) {
170
169
  addSystemMessage('Project not initialized. Run /init first.');
@@ -180,9 +179,6 @@ export function MainShell({ sessionState, onNavigate, }) {
180
179
  }
181
180
  sync(sessionState.projectRoot, sessionState.provider, sessionState.model);
182
181
  }, [sessionState, syncStatus, addSystemMessage, sync]);
183
- /**
184
- * Execute a slash command
185
- */
186
182
  const executeCommand = useCallback((commandName, args) => {
187
183
  switch (commandName) {
188
184
  case 'help':
@@ -213,21 +209,13 @@ export function MainShell({ sessionState, onNavigate, }) {
213
209
  addSystemMessage(`Unknown command: ${commandName}`);
214
210
  }
215
211
  }, [handleHelp, handleInit, handleSync, handleNew, handleRun, handleMonitor, handleConfig, handleExit, addSystemMessage]);
216
- /**
217
- * Handle natural language input
218
- */
219
212
  const handleNaturalLanguage = useCallback((_text) => {
220
- // For now, just show a tip (text parameter reserved for future AI chat)
221
213
  addSystemMessage('Tip: Use /help to see available commands, or /new <feature> to create a spec.');
222
214
  }, [addSystemMessage]);
223
- /**
224
- * Handle user input submission
225
- */
226
215
  const handleSubmit = useCallback((value) => {
227
216
  const parsed = parseInput(value);
228
217
  switch (parsed.type) {
229
218
  case 'empty':
230
- // Ignore empty input
231
219
  break;
232
220
  case 'slash-command': {
233
221
  const { command } = parsed;
@@ -253,21 +241,28 @@ export function MainShell({ sessionState, onNavigate, }) {
253
241
  addSystemMessage('Use /exit to quit');
254
242
  }
255
243
  });
256
- return (_jsxs(Box, { flexDirection: "column", padding: 1, children: [messages.length > 0 && (_jsx(Box, { marginY: 1, flexDirection: "column", children: _jsx(MessageList, { messages: messages }) })), syncStatus !== 'idle' && (_jsxs(Box, { marginY: 1, flexDirection: "column", gap: 1, children: [syncStatus === 'running' && (_jsx(WorkingIndicator, { state: {
257
- isWorking: true,
258
- status: 'Syncing project context…',
259
- } })), _jsx(ActionOutput, { actionName: "Sync", description: "Project context", status: syncStatus === 'running'
244
+ // Build tips text
245
+ const tips = sessionState.initialized
246
+ ? 'Tip: /new <feature> to create spec, /help for commands'
247
+ : 'Tip: /init to set up, /help for commands';
248
+ const inputElement = (_jsx(ChatInput, { onSubmit: handleSubmit, disabled: false, placeholder: "Enter command or type /help...", onCommand: (cmd) => handleSubmit(`/${cmd}`) }));
249
+ return (_jsxs(AppShell, { header: header, tips: tips, isWorking: syncStatus === 'running', workingStatus: syncStatus === 'running' ? 'Syncing project context\u2026' : undefined, input: inputElement, footerStatus: {
250
+ action: projectLabel || 'Main Shell',
251
+ phase: sessionState.provider ? `${sessionState.provider}/${sessionState.model}` : 'No provider',
252
+ path: sessionState.initialized
253
+ ? contextAge === 'load error'
254
+ ? 'Context: unavailable \u2014 /sync to refresh'
255
+ : contextAge
256
+ ? `Context: cached ${contextAge}`
257
+ : 'Context: none \u2014 /sync'
258
+ : 'Not initialized \u2014 /init',
259
+ }, children: [messages.length > 0 && (_jsx(Box, { flexDirection: "column", children: _jsx(MessageList, { messages: messages }) })), syncStatus !== 'idle' && (_jsxs(Box, { flexDirection: "column", gap: 1, children: [_jsx(ActionOutput, { actionName: "Sync", description: "Project context", status: syncStatus === 'running'
260
260
  ? 'running'
261
261
  : syncStatus === 'success'
262
262
  ? 'success'
263
263
  : 'error', output: syncStatus === 'running'
264
- ? 'Scanning + AI analysis'
264
+ ? 'Scanning + AI analysis\u2026'
265
265
  : syncStatus === 'success'
266
266
  ? 'Updated .ralph/.context.json'
267
- : undefined, error: syncStatus === 'error' ? (syncError?.message || 'Unknown error') : undefined, previewLines: 2 }), syncStatus === 'success' && (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: colors.green, children: [theme.chars.bullet, " "] }), _jsx(Text, { children: "Done. Project context updated." })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { bold: true, children: "What's next:" }), _jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Text, { color: colors.green, children: "\u203A" }), _jsxs(Text, { color: colors.blue, children: ["/new ", '<feature>'] }), _jsx(Text, { dimColor: true, children: "Create a feature specification" })] })] })] }))] })), _jsx(Box, { marginTop: 1, children: _jsx(ChatInput, { onSubmit: handleSubmit, disabled: false, placeholder: "Enter command or type /help...", onCommand: (cmd) => handleSubmit(`/${cmd}`) }) }), _jsx(FooterStatusBar, { action: projectLabel || 'Main Shell', phase: sessionState.provider ? `${sessionState.provider}/${sessionState.model}` : 'No provider', path: sessionState.initialized
268
- ? contextAge
269
- ? `Context: cached ${contextAge}`
270
- : 'Context: none — /sync'
271
- : 'Not initialized — /init' })] }));
267
+ : undefined, error: syncStatus === 'error' ? (syncError?.message || 'Unknown error') : undefined, previewLines: 2 }), syncStatus === 'success' && (_jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsxs(Box, { flexDirection: "row", children: [_jsxs(Text, { color: colors.green, children: [phase.complete, " "] }), _jsx(Text, { children: "Done. Project context updated." })] }), _jsxs(Box, { marginTop: 1, flexDirection: "column", children: [_jsx(Text, { bold: true, children: "What's next:" }), _jsxs(Box, { flexDirection: "row", gap: 1, children: [_jsx(Text, { color: colors.green, children: theme.chars.prompt }), _jsxs(Text, { color: colors.blue, children: ["/new ", '<feature>'] }), _jsx(Text, { dimColor: true, children: "Create a feature specification" })] })] })] }))] }))] }));
272
268
  }
273
- //# sourceMappingURL=MainShell.js.map
@@ -2,6 +2,14 @@
2
2
  * RunScreen - TUI screen for running feature loop
3
3
  *
4
4
  * Spawns feature-loop.sh and polls status files for progress.
5
+ * Wrapped in AppShell for consistent layout.
6
+ *
7
+ * Supports two modes:
8
+ * - Foreground: spawns the process and monitors it
9
+ * - Monitor-only: polls status files without spawning (for /monitor)
10
+ *
11
+ * Esc backgrounds the run in foreground mode; in monitor mode, Esc returns to shell.
12
+ * On completion, shows RunCompletionSummary inline.
5
13
  */
6
14
  import React from 'react';
7
15
  import type { SessionState } from '../../repl/session-state.js';
@@ -14,16 +22,23 @@ export interface RunSummary {
14
22
  tokensInput: number;
15
23
  tokensOutput: number;
16
24
  exitCode: number;
25
+ /** True when the exit code was inferred (e.g. monitor mode heuristic) rather than observed directly */
26
+ exitCodeInferred?: boolean;
17
27
  branch?: string;
18
28
  logPath?: string;
19
29
  errorTail?: string;
20
30
  }
21
31
  export interface RunScreenProps {
32
+ /** Pre-built header element from App */
33
+ header: React.ReactNode;
22
34
  featureName: string;
23
35
  projectRoot: string;
24
36
  sessionState: SessionState;
37
+ /** Monitor-only mode: don't spawn, just poll status */
38
+ monitorOnly?: boolean;
25
39
  onComplete: (summary: RunSummary) => void;
40
+ /** Called when user presses Esc to background the run */
41
+ onBackground?: (featureName: string) => void;
26
42
  onCancel: () => void;
27
43
  }
28
- export declare function RunScreen({ featureName, projectRoot, sessionState, onComplete, onCancel, }: RunScreenProps): React.ReactElement;
29
- //# sourceMappingURL=RunScreen.d.ts.map
44
+ export declare function RunScreen({ header, featureName, projectRoot, sessionState, monitorOnly, onComplete, onBackground, onCancel, }: RunScreenProps): React.ReactElement;