@herbcaudill/ralph 0.8.3 → 1.0.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 (302) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +26 -5
  3. package/dist/cli.js.map +1 -1
  4. package/dist/components/App.d.ts +6 -1
  5. package/dist/components/App.d.ts.map +1 -1
  6. package/dist/components/App.js +7 -3
  7. package/dist/components/App.js.map +1 -1
  8. package/dist/components/EnhancedTextInput.d.ts +8 -8
  9. package/dist/components/EnhancedTextInput.d.ts.map +1 -1
  10. package/dist/components/EnhancedTextInput.js +2 -36
  11. package/dist/components/EnhancedTextInput.js.map +1 -1
  12. package/dist/components/EnhancedTextInput.test.js +2 -10
  13. package/dist/components/EnhancedTextInput.test.js.map +1 -1
  14. package/dist/components/EventDisplay.d.ts +1 -1
  15. package/dist/components/EventDisplay.d.ts.map +1 -1
  16. package/dist/components/EventDisplay.js +3 -94
  17. package/dist/components/EventDisplay.js.map +1 -1
  18. package/dist/components/EventDisplay.replay.test.js +34 -68
  19. package/dist/components/EventDisplay.replay.test.js.map +1 -1
  20. package/dist/components/EventDisplay.test.js +30 -0
  21. package/dist/components/EventDisplay.test.js.map +1 -1
  22. package/dist/components/FullScreenLayout.d.ts +5 -4
  23. package/dist/components/FullScreenLayout.d.ts.map +1 -1
  24. package/dist/components/FullScreenLayout.js +2 -12
  25. package/dist/components/FullScreenLayout.js.map +1 -1
  26. package/dist/components/Header.d.ts +2 -1
  27. package/dist/components/Header.d.ts.map +1 -1
  28. package/dist/components/Header.js +8 -1
  29. package/dist/components/Header.js.map +1 -1
  30. package/dist/components/InitRalph.d.ts +6 -1
  31. package/dist/components/InitRalph.d.ts.map +1 -1
  32. package/dist/components/InitRalph.js +71 -89
  33. package/dist/components/InitRalph.js.map +1 -1
  34. package/dist/components/IterationRunner.d.ts +6 -13
  35. package/dist/components/IterationRunner.d.ts.map +1 -1
  36. package/dist/components/IterationRunner.js +84 -168
  37. package/dist/components/IterationRunner.js.map +1 -1
  38. package/dist/components/IterationRunner.test.d.ts +44 -0
  39. package/dist/components/IterationRunner.test.d.ts.map +1 -1
  40. package/dist/components/IterationRunner.test.js +66 -126
  41. package/dist/components/IterationRunner.test.js.map +1 -1
  42. package/dist/components/IterationRunner.types.d.ts +30 -0
  43. package/dist/components/IterationRunner.types.d.ts.map +1 -0
  44. package/dist/components/IterationRunner.types.js +2 -0
  45. package/dist/components/IterationRunner.types.js.map +1 -0
  46. package/dist/components/JsonOutput.d.ts +5 -6
  47. package/dist/components/JsonOutput.d.ts.map +1 -1
  48. package/dist/components/JsonOutput.js +57 -34
  49. package/dist/components/JsonOutput.js.map +1 -1
  50. package/dist/components/JsonOutput.test.d.ts +2 -0
  51. package/dist/components/JsonOutput.test.d.ts.map +1 -0
  52. package/dist/components/JsonOutput.test.js +39 -0
  53. package/dist/components/JsonOutput.test.js.map +1 -0
  54. package/dist/components/ReplayLog.d.ts +1 -1
  55. package/dist/components/ReplayLog.d.ts.map +1 -1
  56. package/dist/components/ReplayLog.js +9 -2
  57. package/dist/components/ReplayLog.js.map +1 -1
  58. package/dist/components/StreamingText.d.ts +4 -0
  59. package/dist/components/StreamingText.d.ts.map +1 -1
  60. package/dist/components/StreamingText.js +4 -3
  61. package/dist/components/StreamingText.js.map +1 -1
  62. package/dist/components/StreamingText.test.js +39 -0
  63. package/dist/components/StreamingText.test.js.map +1 -1
  64. package/dist/components/ToolUse.d.ts +8 -0
  65. package/dist/components/ToolUse.d.ts.map +1 -1
  66. package/dist/components/ToolUse.js +1 -0
  67. package/dist/components/ToolUse.js.map +1 -1
  68. package/dist/components/blocksToLines.d.ts +6 -0
  69. package/dist/components/blocksToLines.d.ts.map +1 -0
  70. package/dist/components/blocksToLines.js +15 -0
  71. package/dist/components/blocksToLines.js.map +1 -0
  72. package/dist/components/eventToBlocks.d.ts +7 -1
  73. package/dist/components/eventToBlocks.d.ts.map +1 -1
  74. package/dist/components/eventToBlocks.js +7 -1
  75. package/dist/components/eventToBlocks.js.map +1 -1
  76. package/dist/components/findNextWordBoundary.d.ts +10 -0
  77. package/dist/components/findNextWordBoundary.d.ts.map +1 -0
  78. package/dist/components/findNextWordBoundary.js +23 -0
  79. package/dist/components/findNextWordBoundary.js.map +1 -0
  80. package/dist/components/findPreviousWordBoundary.d.ts +10 -0
  81. package/dist/components/findPreviousWordBoundary.d.ts.map +1 -0
  82. package/dist/components/findPreviousWordBoundary.js +23 -0
  83. package/dist/components/findPreviousWordBoundary.js.map +1 -0
  84. package/dist/components/processEvents.d.ts +11 -0
  85. package/dist/components/processEvents.d.ts.map +1 -0
  86. package/dist/components/processEvents.js +87 -0
  87. package/dist/components/processEvents.js.map +1 -0
  88. package/dist/components/renderStaticItem.d.ts +7 -0
  89. package/dist/components/renderStaticItem.d.ts.map +1 -0
  90. package/dist/components/renderStaticItem.js +23 -0
  91. package/dist/components/renderStaticItem.js.map +1 -0
  92. package/dist/components/replay.d.ts +5 -0
  93. package/dist/components/replay.d.ts.map +1 -0
  94. package/dist/components/replay.js +49 -0
  95. package/dist/components/replay.js.map +1 -0
  96. package/dist/components/test-helpers/ControlledInput.d.ts +14 -0
  97. package/dist/components/test-helpers/ControlledInput.d.ts.map +1 -0
  98. package/dist/components/test-helpers/ControlledInput.js +15 -0
  99. package/dist/components/test-helpers/ControlledInput.js.map +1 -0
  100. package/dist/components/useContentHeight.d.ts +9 -0
  101. package/dist/components/useContentHeight.d.ts.map +1 -0
  102. package/dist/components/useContentHeight.js +16 -0
  103. package/dist/components/useContentHeight.js.map +1 -0
  104. package/dist/index.d.ts +1 -0
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +2 -1
  107. package/dist/index.js.map +1 -1
  108. package/dist/lib/MessageQueue.d.ts +18 -5
  109. package/dist/lib/MessageQueue.d.ts.map +1 -1
  110. package/dist/lib/MessageQueue.js +21 -14
  111. package/dist/lib/MessageQueue.js.map +1 -1
  112. package/dist/lib/StdinCommandHandler.d.ts +26 -20
  113. package/dist/lib/StdinCommandHandler.js +78 -85
  114. package/dist/lib/StdinCommandHandler.test.d.ts +2 -2
  115. package/dist/lib/StdinCommandHandler.test.js +92 -92
  116. package/dist/lib/WorktreeManager.d.ts +114 -0
  117. package/dist/lib/WorktreeManager.d.ts.map +1 -0
  118. package/dist/lib/WorktreeManager.js +350 -0
  119. package/dist/lib/WorktreeManager.js.map +1 -0
  120. package/dist/lib/WorktreeManager.test.d.ts +2 -0
  121. package/dist/lib/WorktreeManager.test.d.ts.map +1 -0
  122. package/dist/lib/WorktreeManager.test.js +261 -0
  123. package/dist/lib/WorktreeManager.test.js.map +1 -0
  124. package/dist/lib/addTodo.d.ts +5 -5
  125. package/dist/lib/addTodo.d.ts.map +1 -1
  126. package/dist/lib/addTodo.js +6 -20
  127. package/dist/lib/addTodo.js.map +1 -1
  128. package/dist/lib/beadsClient.d.ts +6 -12
  129. package/dist/lib/beadsClient.d.ts.map +1 -1
  130. package/dist/lib/beadsClient.js +3 -2
  131. package/dist/lib/beadsClient.js.map +1 -1
  132. package/dist/lib/captureBeadsSnapshot.d.ts +4 -0
  133. package/dist/lib/captureBeadsSnapshot.d.ts.map +1 -0
  134. package/dist/lib/captureBeadsSnapshot.js +24 -0
  135. package/dist/lib/captureBeadsSnapshot.js.map +1 -0
  136. package/dist/lib/captureStartupSnapshot.d.ts +10 -0
  137. package/dist/lib/captureStartupSnapshot.d.ts.map +1 -0
  138. package/dist/lib/captureStartupSnapshot.js +29 -0
  139. package/dist/lib/captureStartupSnapshot.js.map +1 -0
  140. package/dist/lib/captureTodoSnapshot.d.ts +4 -0
  141. package/dist/lib/captureTodoSnapshot.d.ts.map +1 -0
  142. package/dist/lib/captureTodoSnapshot.js +24 -0
  143. package/dist/lib/captureTodoSnapshot.js.map +1 -0
  144. package/dist/lib/copyTemplates.d.ts +22 -0
  145. package/dist/lib/copyTemplates.d.ts.map +1 -0
  146. package/dist/lib/copyTemplates.js +32 -0
  147. package/dist/lib/copyTemplates.js.map +1 -0
  148. package/dist/lib/createStdinCommandHandler.d.ts +28 -0
  149. package/dist/lib/createStdinCommandHandler.d.ts.map +1 -0
  150. package/dist/lib/createStdinCommandHandler.js +67 -0
  151. package/dist/lib/createStdinCommandHandler.js.map +1 -0
  152. package/dist/lib/createUserMessage.d.ts +6 -0
  153. package/dist/lib/createUserMessage.d.ts.map +1 -0
  154. package/dist/lib/createUserMessage.js +13 -0
  155. package/dist/lib/createUserMessage.js.map +1 -0
  156. package/dist/lib/debug.d.ts +17 -16
  157. package/dist/lib/debug.d.ts.map +1 -1
  158. package/dist/lib/debug.js +25 -15
  159. package/dist/lib/debug.js.map +1 -1
  160. package/dist/lib/findMaxLogNumber.d.ts +6 -0
  161. package/dist/lib/findMaxLogNumber.d.ts.map +1 -0
  162. package/dist/lib/findMaxLogNumber.js +26 -0
  163. package/dist/lib/findMaxLogNumber.js.map +1 -0
  164. package/dist/lib/findMaxLogNumber.test.d.ts +2 -0
  165. package/dist/lib/findMaxLogNumber.test.d.ts.map +1 -0
  166. package/dist/lib/findMaxLogNumber.test.js +39 -0
  167. package/dist/lib/findMaxLogNumber.test.js.map +1 -0
  168. package/dist/lib/formatContentBlock.d.ts +4 -8
  169. package/dist/lib/formatContentBlock.d.ts.map +1 -1
  170. package/dist/lib/formatContentBlock.js +7 -58
  171. package/dist/lib/formatContentBlock.js.map +1 -1
  172. package/dist/lib/formatIterationHeader.d.ts +5 -0
  173. package/dist/lib/formatIterationHeader.d.ts.map +1 -0
  174. package/dist/lib/formatIterationHeader.js +8 -0
  175. package/dist/lib/formatIterationHeader.js.map +1 -0
  176. package/dist/lib/formatText.d.ts +5 -0
  177. package/dist/lib/formatText.d.ts.map +1 -0
  178. package/dist/lib/formatText.js +33 -0
  179. package/dist/lib/formatText.js.map +1 -0
  180. package/dist/lib/formatToolUse.d.ts +7 -0
  181. package/dist/lib/formatToolUse.d.ts.map +1 -0
  182. package/dist/lib/formatToolUse.js +14 -0
  183. package/dist/lib/formatToolUse.js.map +1 -0
  184. package/dist/lib/formatUserMessage.d.ts +5 -0
  185. package/dist/lib/formatUserMessage.d.ts.map +1 -0
  186. package/dist/lib/formatUserMessage.js +8 -0
  187. package/dist/lib/formatUserMessage.js.map +1 -0
  188. package/dist/lib/getBaseCwd.d.ts +6 -0
  189. package/dist/lib/getBaseCwd.d.ts.map +1 -0
  190. package/dist/lib/getBaseCwd.js +6 -0
  191. package/dist/lib/getBaseCwd.js.map +1 -0
  192. package/dist/lib/getBeadsProgress.d.ts +8 -0
  193. package/dist/lib/getBeadsProgress.d.ts.map +1 -0
  194. package/dist/lib/getBeadsProgress.js +35 -0
  195. package/dist/lib/getBeadsProgress.js.map +1 -0
  196. package/dist/lib/getClaudeVersion.d.ts +4 -0
  197. package/dist/lib/getClaudeVersion.d.ts.map +1 -1
  198. package/dist/lib/getClaudeVersion.js +4 -0
  199. package/dist/lib/getClaudeVersion.js.map +1 -1
  200. package/dist/lib/getDefaultIterations.d.ts +6 -0
  201. package/dist/lib/getDefaultIterations.d.ts.map +1 -0
  202. package/dist/lib/getDefaultIterations.js +14 -0
  203. package/dist/lib/getDefaultIterations.js.map +1 -0
  204. package/dist/lib/getDefaultIterations.test.d.ts +2 -0
  205. package/dist/lib/getDefaultIterations.test.d.ts.map +1 -0
  206. package/dist/lib/getDefaultIterations.test.js +39 -0
  207. package/dist/lib/getDefaultIterations.test.js.map +1 -0
  208. package/dist/lib/getLatestLogFile.d.ts +6 -0
  209. package/dist/lib/getLatestLogFile.d.ts.map +1 -0
  210. package/dist/lib/getLatestLogFile.js +15 -0
  211. package/dist/lib/getLatestLogFile.js.map +1 -0
  212. package/dist/lib/getNextLogFile.d.ts +0 -5
  213. package/dist/lib/getNextLogFile.d.ts.map +1 -1
  214. package/dist/lib/getNextLogFile.js +2 -36
  215. package/dist/lib/getNextLogFile.js.map +1 -1
  216. package/dist/lib/getNextLogFile.test.js +2 -1
  217. package/dist/lib/getNextLogFile.test.js.map +1 -1
  218. package/dist/lib/getOpenIssueCount.d.ts +0 -5
  219. package/dist/lib/getOpenIssueCount.d.ts.map +1 -1
  220. package/dist/lib/getOpenIssueCount.js +0 -12
  221. package/dist/lib/getOpenIssueCount.js.map +1 -1
  222. package/dist/lib/getOpenIssueCount.test.js +1 -35
  223. package/dist/lib/getOpenIssueCount.test.js.map +1 -1
  224. package/dist/lib/getProgress.d.ts +6 -26
  225. package/dist/lib/getProgress.d.ts.map +1 -1
  226. package/dist/lib/getProgress.js +8 -109
  227. package/dist/lib/getProgress.js.map +1 -1
  228. package/dist/lib/getProgress.test.js +2 -1
  229. package/dist/lib/getProgress.test.js.map +1 -1
  230. package/dist/lib/getPromptContent.d.ts +8 -0
  231. package/dist/lib/getPromptContent.d.ts.map +1 -0
  232. package/dist/lib/getPromptContent.js +31 -0
  233. package/dist/lib/getPromptContent.js.map +1 -0
  234. package/dist/lib/getTerminalSize.d.ts +8 -0
  235. package/dist/lib/getTerminalSize.d.ts.map +1 -0
  236. package/dist/lib/getTerminalSize.js +10 -0
  237. package/dist/lib/getTerminalSize.js.map +1 -0
  238. package/dist/lib/getTodoProgress.d.ts +4 -0
  239. package/dist/lib/getTodoProgress.d.ts.map +1 -0
  240. package/dist/lib/getTodoProgress.js +22 -0
  241. package/dist/lib/getTodoProgress.js.map +1 -0
  242. package/dist/lib/insertTodo.d.ts +7 -0
  243. package/dist/lib/insertTodo.d.ts.map +1 -0
  244. package/dist/lib/insertTodo.js +22 -0
  245. package/dist/lib/insertTodo.js.map +1 -0
  246. package/dist/lib/outputEvent.d.ts +5 -0
  247. package/dist/lib/outputEvent.d.ts.map +1 -0
  248. package/dist/lib/outputEvent.js +7 -0
  249. package/dist/lib/outputEvent.js.map +1 -0
  250. package/dist/lib/parseStdinCommand.d.ts +25 -0
  251. package/dist/lib/parseStdinCommand.d.ts.map +1 -0
  252. package/dist/lib/parseStdinCommand.js +43 -0
  253. package/dist/lib/parseStdinCommand.js.map +1 -0
  254. package/dist/lib/parseStdinCommand.test.d.ts +2 -0
  255. package/dist/lib/parseStdinCommand.test.d.ts.map +1 -0
  256. package/dist/lib/parseStdinCommand.test.js +93 -0
  257. package/dist/lib/parseStdinCommand.test.js.map +1 -0
  258. package/dist/lib/parseTaskLifecycle.d.ts +18 -0
  259. package/dist/lib/parseTaskLifecycle.d.ts.map +1 -0
  260. package/dist/lib/parseTaskLifecycle.js +30 -0
  261. package/dist/lib/parseTaskLifecycle.js.map +1 -0
  262. package/dist/lib/parseTaskLifecycle.test.d.ts +2 -0
  263. package/dist/lib/parseTaskLifecycle.test.d.ts.map +1 -0
  264. package/dist/lib/parseTaskLifecycle.test.js +122 -0
  265. package/dist/lib/parseTaskLifecycle.test.js.map +1 -0
  266. package/dist/lib/parseWorktreeFromBranch.d.ts +13 -0
  267. package/dist/lib/parseWorktreeFromBranch.d.ts.map +1 -0
  268. package/dist/lib/parseWorktreeFromBranch.js +19 -0
  269. package/dist/lib/parseWorktreeFromBranch.js.map +1 -0
  270. package/dist/lib/processEvents.d.ts +12 -0
  271. package/dist/lib/processEvents.d.ts.map +1 -0
  272. package/dist/lib/processEvents.js +113 -0
  273. package/dist/lib/processEvents.js.map +1 -0
  274. package/dist/lib/rel.d.ts +7 -1
  275. package/dist/lib/rel.d.ts.map +1 -1
  276. package/dist/lib/rel.js +13 -4
  277. package/dist/lib/rel.js.map +1 -1
  278. package/dist/lib/rel.test.js +16 -1
  279. package/dist/lib/rel.test.js.map +1 -1
  280. package/dist/lib/sdkMessageToEvent.d.ts +6 -0
  281. package/dist/lib/sdkMessageToEvent.d.ts.map +1 -0
  282. package/dist/lib/sdkMessageToEvent.js +12 -0
  283. package/dist/lib/sdkMessageToEvent.js.map +1 -0
  284. package/dist/lib/shortenTempPaths.d.ts +7 -1
  285. package/dist/lib/shortenTempPaths.d.ts.map +1 -1
  286. package/dist/lib/shortenTempPaths.js +7 -2
  287. package/dist/lib/shortenTempPaths.js.map +1 -1
  288. package/dist/lib/types.d.ts +19 -0
  289. package/dist/lib/types.d.ts.map +1 -0
  290. package/dist/lib/types.js +2 -0
  291. package/dist/lib/types.js.map +1 -0
  292. package/dist/lib/useTerminalSize.d.ts +3 -2
  293. package/dist/lib/useTerminalSize.d.ts.map +1 -1
  294. package/dist/lib/useTerminalSize.js +4 -6
  295. package/dist/lib/useTerminalSize.js.map +1 -1
  296. package/package.json +4 -3
  297. package/templates/core-prompt.md +77 -0
  298. package/templates/skills/manage-tasks/SKILL.md +113 -0
  299. package/templates/workflow.md +46 -0
  300. package/templates/prompt-beads.md +0 -44
  301. package/templates/prompt-todos.md +0 -17
  302. package/templates/todo.md +0 -9
@@ -1,39 +1,5 @@
1
- import React from "react";
2
- import { render } from "ink-testing-library";
3
- import { describe, it, expect, vi } from "vitest";
4
- import { readFileSync } from "fs";
5
- import { join } from "path";
6
- import { EventDisplay } from "./EventDisplay.js";
7
- /**
8
- * Helper function to replay an event log file and return the rendered output
9
- */
10
- async function replay(logFile) {
11
- // Read the event log
12
- const logPath = join(process.cwd(), "test/event-logs", logFile);
13
- const logContent = readFileSync(logPath, "utf-8");
14
- // Parse JSON events (multi-line JSON objects separated by blank lines)
15
- const events = [];
16
- const jsonObjects = logContent.split("\n\n");
17
- for (const jsonStr of jsonObjects) {
18
- if (!jsonStr.trim())
19
- continue;
20
- try {
21
- const event = JSON.parse(jsonStr);
22
- events.push(event);
23
- }
24
- catch {
25
- // Skip invalid JSON
26
- }
27
- }
28
- // Render with all events
29
- const { lastFrame } = render(React.createElement(EventDisplay, { events: events, iteration: 1, completedIterations: [] }));
30
- // Wait for rendering
31
- await vi.waitFor(() => {
32
- const output = lastFrame() ?? "";
33
- expect(output.length).toBeGreaterThan(0);
34
- }, { timeout: 1000 });
35
- return lastFrame() ?? "";
36
- }
1
+ import { describe, it, expect } from "vitest";
2
+ import { replay } from "./replay.js";
37
3
  describe("EventDisplay replay tests", () => {
38
4
  it("replays 1.txt", async () => {
39
5
  expect(await replay("1.txt")).toMatchInlineSnapshot(`
@@ -85,24 +51,24 @@ describe("EventDisplay replay tests", () => {
85
51
  Good! The build is successful and all tests pass. Now let me check the todo list to find the
86
52
  highest-priority task.
87
53
 
88
- Read ../.ralph/todo.md
54
+ Read .ralph/todo.md
89
55
 
90
56
  Looking at the todo list, I'll prioritize the "Inline code blocks are being put in separate
91
57
  paragraphs" issue. This is a functional bug affecting the display quality, whereas the others are
92
58
  enhancements. Let me investigate this issue first.
93
59
 
94
- Read ../src/components/StreamingText.tsx
60
+ Read src/components/StreamingText.tsx
95
61
 
96
62
  Let me check the tests to understand the expected behavior and see if there's a failing test case:
97
63
 
98
- Read ../src/components/StreamingText.test.tsx
64
+ Read src/components/StreamingText.test.tsx
99
65
 
100
66
  I need to understand where StreamingText is being used and what the actual problem is. Let me check
101
67
  where it's called from and look at some example output:
102
68
 
103
69
  Grep StreamingText
104
70
 
105
- Read ../src/components/EventDisplay.tsx
71
+ Read src/components/EventDisplay.tsx
106
72
 
107
73
  I see the issue now! In EventDisplay.tsx:70, there's a <Box flexDirection="column" gap={1}> which
108
74
  wraps each StreamingText component. Each StreamingText (which represents text blocks) is being
@@ -114,7 +80,7 @@ describe("EventDisplay replay tests", () => {
114
80
 
115
81
  Let me look at how the events are being split into blocks:
116
82
 
117
- Read ../src/components/eventToBlocks.ts
83
+ Read src/components/eventToBlocks.ts
118
84
 
119
85
  Now I understand the issue. Claude's message content can have multiple text blocks (e.g., "Here's
120
86
  the code: ", then a tool_use block, then " and that's it"). Each text block becomes a separate
@@ -124,11 +90,11 @@ describe("EventDisplay replay tests", () => {
124
90
  The fix should be to merge consecutive text blocks together. Let me write a test first to
125
91
  demonstrate the problem:
126
92
 
127
- Read ../src/components/EventDisplay.test.tsx
93
+ Read src/components/EventDisplay.test.tsx
128
94
 
129
95
  Now let me add a test that demonstrates the inline code block problem and then fix it:
130
96
 
131
- Edit ../src/components/EventDisplay.test.tsx
97
+ Edit src/components/EventDisplay.test.tsx
132
98
 
133
99
  Now let me run the test to confirm it fails (demonstrating the problem):
134
100
 
@@ -137,11 +103,11 @@ describe("EventDisplay replay tests", () => {
137
103
  Perfect! The test fails as expected, confirming the bug. Now I need to fix it by modifying
138
104
  eventToBlocks to merge consecutive text blocks:
139
105
 
140
- Edit ../src/components/eventToBlocks.ts
106
+ Edit src/components/eventToBlocks.ts
141
107
 
142
108
  Now I need to also flush the text buffer at the end of the loop:
143
109
 
144
- Edit ../src/components/eventToBlocks.ts
110
+ Edit src/components/eventToBlocks.ts
145
111
 
146
112
  Now let me run the tests again to verify the fix works:
147
113
 
@@ -150,20 +116,20 @@ describe("EventDisplay replay tests", () => {
150
116
  The test still fails. This suggests the problem might also be in EventDisplay, not just
151
117
  eventToBlocks. Let me debug by adding a simpler test to see what's happening in eventToBlocks:
152
118
 
153
- Read ../src/components/eventToBlocks.test.ts
119
+ Read src/components/eventToBlocks.test.ts
154
120
 
155
121
  I see! The existing test "extracts multiple text blocks" expects them NOT to be merged. I need to
156
122
  update this test and add a new one specifically for consecutive text blocks:
157
123
 
158
- Edit ../src/components/eventToBlocks.test.ts
124
+ Edit src/components/eventToBlocks.test.ts
159
125
 
160
126
  Now let me add a test for text blocks separated by tool calls:
161
127
 
162
- Read ../src/components/eventToBlocks.test.ts
128
+ Read src/components/eventToBlocks.test.ts
163
129
 
164
130
  Let me add a test that specifically checks text blocks separated by tool calls:
165
131
 
166
- Edit ../src/components/eventToBlocks.test.ts
132
+ Edit src/components/eventToBlocks.test.ts
167
133
 
168
134
  Now let me run all tests to verify my changes to eventToBlocks work:
169
135
 
@@ -171,12 +137,12 @@ describe("EventDisplay replay tests", () => {
171
137
 
172
138
  I need to look at this failing test:
173
139
 
174
- Read ../src/components/eventToBlocks.test.ts
140
+ Read src/components/eventToBlocks.test.ts
175
141
 
176
142
  This test expects 3 separate IDs for 3 text blocks, but my code now merges them into 1. I need to
177
143
  update this test to reflect the new behavior:
178
144
 
179
- Edit ../src/components/eventToBlocks.test.ts
145
+ Edit src/components/eventToBlocks.test.ts
180
146
 
181
147
  Now let me run the eventToBlocks tests again:
182
148
 
@@ -190,7 +156,7 @@ describe("EventDisplay replay tests", () => {
190
156
  rendered. The issue must be in how EventDisplay merges the events. Let me look more carefully at the
191
157
  EventDisplay logic:
192
158
 
193
- Read ../src/components/EventDisplay.tsx
159
+ Read src/components/EventDisplay.tsx
194
160
 
195
161
  I see! The EventDisplay is doing its own deduplication, but it's NOT merging consecutive text
196
162
  blocks. The text blocks in the test data remain separate even after eventToBlocks merges them,
@@ -235,13 +201,13 @@ describe("EventDisplay replay tests", () => {
235
201
 
236
202
  That should work! Let me check if there's an issue with my implementation. Let me re-read the code:
237
203
 
238
- Read ../src/components/eventToBlocks.ts
204
+ Read src/components/eventToBlocks.ts
239
205
 
240
206
  The code looks correct. Let me check if the EventDisplay is receiving the correct merged content. I
241
207
  think the issue might be in how EventDisplay deduplicates and merges content before calling
242
208
  eventToBlocks. Let me look at that logic again:
243
209
 
244
- Read ../src/components/EventDisplay.tsx
210
+ Read src/components/EventDisplay.tsx
245
211
 
246
212
  Ah! I see the problem now. In the test, we're providing a single event with one message containing 3
247
213
  text blocks. EventDisplay keeps the text blocks separate in uniqueContent (lines 36-54), so they
@@ -269,7 +235,7 @@ describe("EventDisplay replay tests", () => {
269
235
 
270
236
  Let me print what lastFrame() actually returns by modifying the test temporarily:
271
237
 
272
- Edit ../src/components/EventDisplay.test.tsx
238
+ Edit src/components/EventDisplay.test.tsx
273
239
 
274
240
  $ pnpm test EventDisplay.test.tsx 2>&1 | grep -A 20 "merges consecutive"
275
241
 
@@ -280,7 +246,7 @@ describe("EventDisplay replay tests", () => {
280
246
  This means the EventDisplay deduplication logic is keeping them separate, OR there's a bug in my
281
247
  eventToBlocks implementation. Let me add logging to eventToBlocks to see:
282
248
 
283
- Edit ../src/components/eventToBlocks.ts
249
+ Edit src/components/eventToBlocks.ts
284
250
 
285
251
  $ pnpm test EventDisplay.test.tsx 2>&1 | grep -A 30 "eventToBlocks content"
286
252
 
@@ -296,9 +262,9 @@ describe("EventDisplay replay tests", () => {
296
262
  But the output still shows them on 3 separate lines. This means my merging logic isn't working. Let
297
263
  me add more logging to see what's happening in the loop:
298
264
 
299
- Edit ../src/components/eventToBlocks.ts
265
+ Edit src/components/eventToBlocks.ts
300
266
 
301
- Edit ../src/components/eventToBlocks.ts
267
+ Edit src/components/eventToBlocks.ts
302
268
 
303
269
  $ pnpm test EventDisplay.test.tsx 2>&1 | grep -A 50 "merges consecutive text blocks to prevent
304
270
  unwanted gaps"
@@ -341,7 +307,7 @@ describe("EventDisplay replay tests", () => {
341
307
  Let me check if the problem is in how StreamingText uses fragments. When you return a fragment with
342
308
  multiple <Text> components in Ink, they might be rendered on separate lines. Let me check:
343
309
 
344
- Read ../src/components/StreamingText.tsx
310
+ Read src/components/StreamingText.tsx
345
311
 
346
312
  The issue is that StreamingText returns a fragment with multiple <Text> components. In Ink, these
347
313
  might be rendered as separate blocks. The fix is to wrap them in a single <Text> component or use
@@ -350,17 +316,17 @@ describe("EventDisplay replay tests", () => {
350
316
  Let me look at how Ink handles multiple Text components. Actually, the fix is simple - wrap all the
351
317
  text parts in a single Box or Text component with inline rendering:
352
318
 
353
- Edit ../src/components/StreamingText.tsx
319
+ Edit src/components/StreamingText.tsx
354
320
 
355
- Edit ../src/components/StreamingText.tsx
321
+ Edit src/components/StreamingText.tsx
356
322
 
357
323
  Now let me remove the console.log statements and test:
358
324
 
359
- Edit ../src/components/eventToBlocks.ts
325
+ Edit src/components/eventToBlocks.ts
360
326
 
361
- Edit ../src/components/eventToBlocks.ts
327
+ Edit src/components/eventToBlocks.ts
362
328
 
363
- Edit ../src/components/EventDisplay.test.tsx
329
+ Edit src/components/EventDisplay.test.tsx
364
330
 
365
331
  Now let me run all tests:
366
332
 
@@ -372,13 +338,13 @@ describe("EventDisplay replay tests", () => {
372
338
 
373
339
  Excellent! Now let me update the todo list and progress file, then commit:
374
340
 
375
- Read ../.ralph/todo.md
341
+ Read .ralph/todo.md
376
342
 
377
- Edit ../.ralph/todo.md
343
+ Edit .ralph/todo.md
378
344
 
379
- Read ../.ralph/progress.md
345
+ Read .ralph/progress.md
380
346
 
381
- Edit ../.ralph/progress.md
347
+ Edit .ralph/progress.md
382
348
 
383
349
  Now let me format the code with Prettier:
384
350
 
@@ -1 +1 @@
1
- {"version":3,"file":"EventDisplay.replay.test.js","sourceRoot":"","sources":["../../src/components/EventDisplay.replay.test.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD;;GAEG;AACH,KAAK,UAAU,MAAM,CAAC,OAAe;IACnC,qBAAqB;IACrB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAA;IAC/D,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;IAEjD,uEAAuE;IACvE,MAAM,MAAM,GAAmC,EAAE,CAAA;IACjD,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC5C,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,SAAQ;QAC7B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACjC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,YAAY,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,GAAI,CACxE,CAAA;IAED,qBAAqB;IACrB,MAAM,EAAE,CAAC,OAAO,CACd,GAAG,EAAE;QACH,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;QAChC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IAC1C,CAAC,EACD,EAAE,OAAO,EAAE,IAAI,EAAE,CAClB,CAAA;IAED,OAAO,SAAS,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC;AAED,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgCnD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgVnD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"EventDisplay.replay.test.js","sourceRoot":"","sources":["../../src/components/EventDisplay.replay.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgCnD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE;QAC7B,MAAM,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgVnD,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -2,7 +2,13 @@ import React from "react";
2
2
  import { render } from "ink-testing-library";
3
3
  import { describe, it, expect, vi } from "vitest";
4
4
  import { EventDisplay } from "./EventDisplay.js";
5
+ /**
6
+ * Test suite for EventDisplay component
7
+ */
5
8
  describe("EventDisplay", () => {
9
+ /**
10
+ * Verify that stream_event types are filtered out and only assistant messages are displayed
11
+ */
6
12
  it("filters out stream_event types and only shows assistant messages", async () => {
7
13
  const events = [
8
14
  {
@@ -28,6 +34,9 @@ describe("EventDisplay", () => {
28
34
  expect(output).not.toContain("Streaming...");
29
35
  });
30
36
  });
37
+ /**
38
+ * Verify that events with the same message ID are deduplicated, keeping only the latest version
39
+ */
31
40
  it("deduplicates events with the same message ID", async () => {
32
41
  const events = [
33
42
  {
@@ -58,6 +67,9 @@ describe("EventDisplay", () => {
58
67
  // Should not duplicate the first text
59
68
  expect(output.match(/First version/g)?.length).toBe(1);
60
69
  });
70
+ /**
71
+ * Verify that multiple different messages are all displayed correctly
72
+ */
61
73
  it("handles multiple different messages", async () => {
62
74
  const events = [
63
75
  {
@@ -82,6 +94,9 @@ describe("EventDisplay", () => {
82
94
  expect(output).toContain("Message 2");
83
95
  });
84
96
  });
97
+ /**
98
+ * Verify that tool use events are displayed correctly with tool names and file paths
99
+ */
85
100
  it("handles tool use events", async () => {
86
101
  const events = [
87
102
  {
@@ -105,6 +120,9 @@ describe("EventDisplay", () => {
105
120
  expect(output).toContain("file.ts");
106
121
  });
107
122
  });
123
+ /**
124
+ * Verify that the display updates correctly when new events are added to the event list
125
+ */
108
126
  it("updates display when new events arrive", async () => {
109
127
  const events1 = [
110
128
  {
@@ -136,6 +154,9 @@ describe("EventDisplay", () => {
136
154
  expect(output).toContain("New message");
137
155
  });
138
156
  });
157
+ /**
158
+ * Verify that partial message updates during streaming don't create duplicate React keys
159
+ */
139
160
  it("handles partial message updates without duplicating keys", async () => {
140
161
  // Simulate streaming where the same message gets updated multiple times
141
162
  const events = [
@@ -191,6 +212,9 @@ describe("EventDisplay", () => {
191
212
  expect(output.match(/Edit/g)?.length).toBe(1);
192
213
  });
193
214
  });
215
+ /**
216
+ * Verify that consecutive text blocks are merged to prevent unwanted gaps in the output
217
+ */
194
218
  it("merges consecutive text blocks to prevent unwanted gaps", async () => {
195
219
  // When Claude outputs text in multiple blocks (e.g., before and after inline code),
196
220
  // we should merge them into one StreamingText component to avoid gaps
@@ -223,6 +247,9 @@ describe("EventDisplay", () => {
223
247
  .filter(l => !l.includes("─") && !l.includes("│") && !l.includes("╭") && !l.includes("╰"));
224
248
  expect(contentLines.length).toBe(1);
225
249
  });
250
+ /**
251
+ * Verify that completed iteration rounds are displayed before the current round
252
+ */
226
253
  it("displays completed rounds before current round", async () => {
227
254
  const completedIterations = [
228
255
  {
@@ -278,6 +305,9 @@ describe("EventDisplay", () => {
278
305
  expect(iter1Pos).toBeLessThan(iter2Pos);
279
306
  expect(iter2Pos).toBeLessThan(iter3Pos);
280
307
  });
308
+ /**
309
+ * Verify that round headers are shown correctly when transitioning from one round to the next
310
+ */
281
311
  it("shows new round header when transitioning between rounds", async () => {
282
312
  // Start with round 1
283
313
  const iter1Events = [
@@ -1 +1 @@
1
- {"version":3,"file":"EventDisplay.test.js","sourceRoot":"","sources":["../../src/components/EventDisplay.test.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,cAAc;gBACpB,KAAK,EAAE;oBACL,IAAI,EAAE,qBAAqB;oBAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE;iBACpD;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;iBACtD;aACF;SACF,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,YAAY,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,GAAI,CACxE,CAAA;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;YAChC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;YAC5C,mCAAmC;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;iBACnD;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;wBACvC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;qBAC1C;iBACF;aACF;SACF,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,YAAY,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,GAAI,CACxE,CAAA;QAED,iCAAiC;QACjC,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;YAChC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QAEF,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;QAChC,sCAAsC;QACtC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;QACnD,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;iBAC/C;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;iBAC/C;aACF;SACF,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,YAAY,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,GAAI,CACxE,CAAA;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;YAChC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YACrC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,EAAE,SAAS,EAAE,wBAAwB,EAAE;yBAC/C;qBACF;iBACF;aACF;SACF,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,YAAY,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,GAAI,CACxE,CAAA;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;YAChC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAChC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QACrC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,OAAO,GAAG;YACd;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;iBAC7C;aACF;SACF,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CACpC,oBAAC,YAAY,IAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,GAAI,CACzE,CAAA;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG;YACd,GAAG,OAAO;YACV;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;iBACjD;aACF;SACF,CAAA;QAED,QAAQ,CAAC,oBAAC,YAAY,IAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,GAAI,CAAC,CAAA;QAElF,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;YAChC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,wEAAwE;QACxE,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;iBACjD;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;wBACrC;4BACE,IAAI,EAAE,UAAU;4BAChB,EAAE,EAAE,aAAa;4BACjB,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;yBACtC;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;wBACrC;4BACE,IAAI,EAAE,UAAU;4BAChB,EAAE,EAAE,aAAa;4BACjB,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;yBACtC;wBACD;4BACE,IAAI,EAAE,UAAU;4BAChB,EAAE,EAAE,aAAa;4BACjB,IAAI,EAAE,MAAM;4BACZ,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE;yBACtC;qBACF;iBACF;aACF;SACF,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,YAAY,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,GAAI,CACxE,CAAA;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;YAChC,4CAA4C;YAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAC7C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,oFAAoF;QACpF,sEAAsE;QACtE,MAAM,MAAM,GAAG;YACb;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,SAAS;oBACb,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE;wBAClC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE;wBACzC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE;qBAC9C;iBACF;aACF;SACF,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,YAAY,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,GAAI,CACxE,CAAA;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;YAChC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;QAC/C,CAAC,CAAC,CAAA;QAEF,4DAA4D;QAC5D,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;QAChC,wEAAwE;QACxE,MAAM,YAAY,GAAG,MAAM;aACxB,KAAK,CAAC,IAAI,CAAC;aACX,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5F,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC9D,MAAM,mBAAmB,GAAG;YAC1B;gBACE,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE;4BACP,EAAE,EAAE,WAAW;4BACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;yBACtD;qBACF;iBACF;aACF;YACD;gBACE,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,WAAW;wBACjB,OAAO,EAAE;4BACP,EAAE,EAAE,WAAW;4BACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;yBACvD;qBACF;iBACF;aACF;SACF,CAAA;QAED,MAAM,aAAa,GAAG;YACpB;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,WAAW;oBACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;iBACtD;aACF;SACF,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAC1B,oBAAC,YAAY,IACX,MAAM,EAAE,aAAa,EACrB,SAAS,EAAE,CAAC,EACZ,mBAAmB,EAAE,mBAAmB,GACxC,CACH,CAAA;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;YAChC,2BAA2B;YAC3B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAA;YAC7C,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;QAC9C,CAAC,CAAC,CAAA;QAEF,mDAAmD;QACnD,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC1C,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QACvC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,qBAAqB;QACrB,MAAM,WAAW,GAAG;YAClB;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,WAAW;oBACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;iBACjD;aACF;SACF,CAAA;QAED,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,MAAM,CACpC,oBAAC,YAAY,IAAC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAE,mBAAmB,EAAE,EAAE,GAAI,CAC7E,CAAA;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;YAChC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;QAEF,+DAA+D;QAC/D,MAAM,WAAW,GAAG;YAClB;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE;oBACP,EAAE,EAAE,WAAW;oBACf,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;iBAClD;aACF;SACF,CAAA;QAED,QAAQ,CACN,oBAAC,YAAY,IACX,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,CAAC,EACZ,mBAAmB,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,GAC5D,CACH,CAAA;QAED,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,CAAA;YAChC,0BAA0B;YAC1B,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAA;YACvC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAA;YACnC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"EventDisplay.test.js","sourceRoot":"","sources":["../../src/components/EventDisplay.test.tsx"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import React, { ReactNode } from "react";
2
- /**
3
- * Calculate the available content height based on terminal size
4
- */
5
- export declare const useContentHeight: (hasFooter?: boolean) => number;
2
+ /** Full-screen layout component with header, content area, and optional footer */
6
3
  export declare const FullScreenLayout: ({ title, children, footer, version }: Props) => React.JSX.Element;
7
4
  type Props = {
5
+ /** Title text displayed in the header */
8
6
  title: string;
7
+ /** Content to render in the main area */
9
8
  children: ReactNode;
9
+ /** Optional footer content */
10
10
  footer?: ReactNode;
11
+ /** Optional version string displayed in the footer */
11
12
  version?: string;
12
13
  };
13
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"FullScreenLayout.d.ts","sourceRoot":"","sources":["../../src/components/FullScreenLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAWxC;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,YAAW,OAAc,KAAG,MAI5D,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,sCAAsC,KAAK,sBA4D3E,CAAA;AAED,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,SAAS,CAAA;IACnB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA"}
1
+ {"version":3,"file":"FullScreenLayout.d.ts","sourceRoot":"","sources":["../../src/components/FullScreenLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAOxC,mFAAmF;AACnF,eAAO,MAAM,gBAAgB,GAAI,sCAAsC,KAAK,sBA4D3E,CAAA;AAED,KAAK,KAAK,GAAG;IACX,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,yCAAyC;IACzC,QAAQ,EAAE,SAAS,CAAA;IACnB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA"}
@@ -3,18 +3,8 @@ import { Box, Text } from "ink";
3
3
  import BigText from "ink-big-text";
4
4
  import Gradient from "ink-gradient";
5
5
  import { useTerminalSize } from "../lib/useTerminalSize.js";
6
- // Constants for layout calculations
7
- const HEADER_HEIGHT = 5; // BigText "tiny" font (4 rows) + separator
8
- const FOOTER_HEIGHT = 2; // Separator + content
9
- const BORDER_HEIGHT = 2; // Top and bottom borders
10
- /**
11
- * Calculate the available content height based on terminal size
12
- */
13
- export const useContentHeight = (hasFooter = true) => {
14
- const { rows } = useTerminalSize();
15
- const footerHeight = hasFooter ? FOOTER_HEIGHT : 0;
16
- return Math.max(1, rows - HEADER_HEIGHT - footerHeight - BORDER_HEIGHT);
17
- };
6
+ import { useContentHeight, HEADER_HEIGHT, FOOTER_HEIGHT } from "./useContentHeight.js";
7
+ /** Full-screen layout component with header, content area, and optional footer */
18
8
  export const FullScreenLayout = ({ title, children, footer, version }) => {
19
9
  const { columns, rows } = useTerminalSize();
20
10
  const contentHeight = useContentHeight(!!footer);
@@ -1 +1 @@
1
- {"version":3,"file":"FullScreenLayout.js","sourceRoot":"","sources":["../../src/components/FullScreenLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,QAAQ,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAE3D,oCAAoC;AACpC,MAAM,aAAa,GAAG,CAAC,CAAA,CAAC,2CAA2C;AACnE,MAAM,aAAa,GAAG,CAAC,CAAA,CAAC,sBAAsB;AAC9C,MAAM,aAAa,GAAG,CAAC,CAAA,CAAC,yBAAyB;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,YAAqB,IAAI,EAAU,EAAE;IACpE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,CAAA;IAClC,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA;IAClD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC,CAAA;AACzE,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAS,EAAE,EAAE;IAC9E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,CAAA;IAC3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAEhD,OAAO,CACL,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,IAAI,EACZ,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,MAAM;QAGlB,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,QAAQ,EACvB,MAAM,EAAE,aAAa,EACrB,WAAW,EAAC,QAAQ,EACpB,SAAS,EAAE,KAAK,EAChB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,WAAW,EAAC,MAAM;YAElB,oBAAC,QAAQ,IAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;gBACtC,oBAAC,OAAO,IAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,GAAG,CAC3B,CACP;QAGN,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,MAAM,EAAE,aAAa,EACrB,SAAS,EAAC,QAAQ,IAEjB,QAAQ,CACL;QAGL,MAAM,IAAI,CACT,oBAAC,GAAG,IACF,QAAQ,EAAE,CAAC,EACX,MAAM,EAAE,aAAa,EACrB,WAAW,EAAC,QAAQ,EACpB,SAAS,QACT,YAAY,EAAE,KAAK,EACnB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,WAAW,EAAC,MAAM,EAClB,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,eAAe;YAE9B,oBAAC,GAAG,QAAE,MAAM,CAAO;YAClB,OAAO,IAAI,oBAAC,IAAI,IAAC,QAAQ,UAAE,OAAO,CAAQ,CACvC,CACP,CACG,CACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"FullScreenLayout.js","sourceRoot":"","sources":["../../src/components/FullScreenLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoB,MAAM,OAAO,CAAA;AACxC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,QAAQ,MAAM,cAAc,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAEtF,mFAAmF;AACnF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAS,EAAE,EAAE;IAC9E,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,CAAA;IAC3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAEhD,OAAO,CACL,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,IAAI,EACZ,WAAW,EAAC,OAAO,EACnB,WAAW,EAAC,MAAM;QAGlB,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,QAAQ,EACvB,MAAM,EAAE,aAAa,EACrB,WAAW,EAAC,QAAQ,EACpB,SAAS,EAAE,KAAK,EAChB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,WAAW,EAAC,MAAM;YAElB,oBAAC,QAAQ,IAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;gBACtC,oBAAC,OAAO,IAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAC,MAAM,GAAG,CAC3B,CACP;QAGN,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,MAAM,EAAE,aAAa,EACrB,SAAS,EAAC,QAAQ,IAEjB,QAAQ,CACL;QAGL,MAAM,IAAI,CACT,oBAAC,GAAG,IACF,QAAQ,EAAE,CAAC,EACX,MAAM,EAAE,aAAa,EACrB,WAAW,EAAC,QAAQ,EACpB,SAAS,QACT,YAAY,EAAE,KAAK,EACnB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,WAAW,EAAC,MAAM,EAClB,UAAU,EAAC,QAAQ,EACnB,cAAc,EAAC,eAAe;YAE9B,oBAAC,GAAG,QAAE,MAAM,CAAO;YAClB,OAAO,IAAI,oBAAC,IAAI,IAAC,QAAQ,UAAE,OAAO,CAAQ,CACvC,CACP,CACG,CACP,CAAA;AACH,CAAC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import React from "react";
2
- export declare const Header: ({ claudeVersion, ralphVersion, width }: Props) => React.JSX.Element;
2
+ /** Display the Ralph header with version information and branding. */
3
+ export declare const Header: ({ claudeVersion, ralphVersion, width, }: Props) => React.JSX.Element;
3
4
  type Props = {
4
5
  claudeVersion: string;
5
6
  ralphVersion: string;
@@ -1 +1 @@
1
- {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,eAAO,MAAM,MAAM,GAAI,wCAAwC,KAAK,sBAkBnE,CAAA;AAED,KAAK,KAAK,GAAG;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA"}
1
+ {"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,uEAAuE;AACvE,eAAO,MAAM,MAAM,GAAI,yCAOpB,KAAK,sBAkBP,CAAA;AAED,KAAK,KAAK,GAAG;IACX,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA"}
@@ -2,7 +2,14 @@ import React from "react";
2
2
  import { Box, Text } from "ink";
3
3
  import BigText from "ink-big-text";
4
4
  import Gradient from "ink-gradient";
5
- export const Header = ({ claudeVersion, ralphVersion, width }) => {
5
+ /** Display the Ralph header with version information and branding. */
6
+ export const Header = ({
7
+ /** The Claude CLI version */
8
+ claudeVersion,
9
+ /** The Ralph version */
10
+ ralphVersion,
11
+ /** Optional box width */
12
+ width, }) => {
6
13
  return (React.createElement(Box, { flexDirection: "column", marginBottom: 1, borderStyle: "single", alignItems: "center", width: width, paddingX: 2 },
7
14
  React.createElement(Gradient, { colors: ["#30A6E4", "#EBC635"] },
8
15
  React.createElement(BigText, { text: "Ralph", font: "tiny" })),
@@ -1 +1 @@
1
- {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,QAAQ,MAAM,cAAc,CAAA;AAEnC,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,KAAK,EAAS,EAAE,EAAE;IACtE,OAAO,CACL,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,YAAY,EAAE,CAAC,EACf,WAAW,EAAC,QAAQ,EACpB,UAAU,EAAC,QAAQ,EACnB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC;QAEX,oBAAC,QAAQ,IAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;YACtC,oBAAC,OAAO,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,GAAG,CAC3B;QACX,oBAAC,IAAI,IAAC,QAAQ;;YACS,YAAY;;YAAkB,aAAa,CAC3D,CACH,CACP,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/components/Header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,OAAO,MAAM,cAAc,CAAA;AAClC,OAAO,QAAQ,MAAM,cAAc,CAAA;AAEnC,uEAAuE;AACvE,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC;AACrB,6BAA6B;AAC7B,aAAa;AACb,wBAAwB;AACxB,YAAY;AACZ,yBAAyB;AACzB,KAAK,GACC,EAAE,EAAE;IACV,OAAO,CACL,oBAAC,GAAG,IACF,aAAa,EAAC,QAAQ,EACtB,YAAY,EAAE,CAAC,EACf,WAAW,EAAC,QAAQ,EACpB,UAAU,EAAC,QAAQ,EACnB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC;QAEX,oBAAC,QAAQ,IAAC,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;YACtC,oBAAC,OAAO,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,GAAG,CAC3B;QACX,oBAAC,IAAI,IAAC,QAAQ;;YACS,YAAY;;YAAkB,aAAa,CAC3D,CACH,CACP,CAAA;AACH,CAAC,CAAA"}
@@ -1,3 +1,8 @@
1
1
  import React from "react";
2
- export declare const InitRalph: () => React.JSX.Element;
2
+ /**
3
+ * Initializes Ralph by copying workflow templates and agent configurations to the project.
4
+ * Creates .ralph/workflow.md, .claude/skills/, and .claude/agents/ directories with default files.
5
+ * Also adds .ralph/events-*.jsonl to .gitignore.
6
+ */
7
+ export declare function InitRalph(): React.JSX.Element;
3
8
  //# sourceMappingURL=InitRalph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InitRalph.d.ts","sourceRoot":"","sources":["../../src/components/InitRalph.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAgBlD,eAAO,MAAM,SAAS,yBAoLrB,CAAA"}
1
+ {"version":3,"file":"InitRalph.d.ts","sourceRoot":"","sources":["../../src/components/InitRalph.tsx"],"names":[],"mappings":"AACA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAMlD;;;;GAIG;AACH,wBAAgB,SAAS,sBAmJxB"}