@herbcaudill/ralph 0.6.5 → 0.8.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.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +21 -7
- package/dist/cli.js.map +1 -1
- package/dist/components/App.d.ts +2 -1
- package/dist/components/App.d.ts.map +1 -1
- package/dist/components/App.js +5 -1
- package/dist/components/App.js.map +1 -1
- package/dist/components/EventDisplay.replay.test.js +32 -32
- package/dist/components/InitRalph.js +5 -5
- package/dist/components/InitRalph.js.map +1 -1
- package/dist/components/IterationRunner.d.ts +1 -1
- package/dist/components/IterationRunner.d.ts.map +1 -1
- package/dist/components/IterationRunner.js +212 -56
- package/dist/components/IterationRunner.js.map +1 -1
- package/dist/components/IterationRunner.test.js +2 -2
- package/dist/components/IterationRunner.test.js.map +1 -1
- package/dist/components/JsonOutput.d.ts +14 -0
- package/dist/components/JsonOutput.d.ts.map +1 -0
- package/dist/components/JsonOutput.js +246 -0
- package/dist/components/JsonOutput.js.map +1 -0
- package/dist/components/ProgressBar.d.ts +7 -5
- package/dist/components/ProgressBar.d.ts.map +1 -1
- package/dist/components/ProgressBar.js +7 -5
- package/dist/components/ProgressBar.js.map +1 -1
- package/dist/components/ProgressBar.test.js +24 -11
- package/dist/components/ProgressBar.test.js.map +1 -1
- package/dist/lib/MessageQueue.d.ts +2 -0
- package/dist/lib/MessageQueue.d.ts.map +1 -1
- package/dist/lib/MessageQueue.js +35 -2
- package/dist/lib/MessageQueue.js.map +1 -1
- package/dist/lib/MessageQueue.test.js +146 -0
- package/dist/lib/MessageQueue.test.js.map +1 -1
- package/dist/lib/StdinCommandHandler.d.ts +42 -0
- package/dist/lib/StdinCommandHandler.d.ts.map +1 -0
- package/dist/lib/StdinCommandHandler.js +102 -0
- package/dist/lib/StdinCommandHandler.js.map +1 -0
- package/dist/lib/StdinCommandHandler.test.d.ts +2 -0
- package/dist/lib/StdinCommandHandler.test.d.ts.map +1 -0
- package/dist/lib/StdinCommandHandler.test.js +93 -0
- package/dist/lib/StdinCommandHandler.test.js.map +1 -0
- package/dist/lib/debug.d.ts +18 -0
- package/dist/lib/debug.d.ts.map +1 -0
- package/dist/lib/debug.js +44 -0
- package/dist/lib/debug.js.map +1 -0
- package/dist/lib/formatContentBlock.js +1 -1
- package/dist/lib/formatContentBlock.js.map +1 -1
- package/dist/lib/getNextLogFile.d.ts +12 -0
- package/dist/lib/getNextLogFile.d.ts.map +1 -0
- package/dist/lib/getNextLogFile.js +52 -0
- package/dist/lib/getNextLogFile.js.map +1 -0
- package/dist/lib/getNextLogFile.test.d.ts +2 -0
- package/dist/lib/getNextLogFile.test.d.ts.map +1 -0
- package/dist/lib/getNextLogFile.test.js +65 -0
- package/dist/lib/getNextLogFile.test.js.map +1 -0
- package/dist/lib/getOpenIssueCount.d.ts +11 -0
- package/dist/lib/getOpenIssueCount.d.ts.map +1 -0
- package/dist/lib/getOpenIssueCount.js +31 -0
- package/dist/lib/getOpenIssueCount.js.map +1 -0
- package/dist/lib/getOpenIssueCount.test.d.ts +2 -0
- package/dist/lib/getOpenIssueCount.test.d.ts.map +1 -0
- package/dist/lib/getOpenIssueCount.test.js +65 -0
- package/dist/lib/getOpenIssueCount.test.js.map +1 -0
- package/dist/lib/getProgress.d.ts +22 -6
- package/dist/lib/getProgress.d.ts.map +1 -1
- package/dist/lib/getProgress.js +69 -23
- package/dist/lib/getProgress.js.map +1 -1
- package/dist/lib/getProgress.test.js +68 -34
- package/dist/lib/getProgress.test.js.map +1 -1
- package/package.json +2 -2
- package/templates/prompt-beads.md +6 -6
- package/README.md +0 -270
- package/dist/lib/cleanupAllWorktrees.d.ts +0 -5
- package/dist/lib/cleanupAllWorktrees.d.ts.map +0 -1
- package/dist/lib/cleanupAllWorktrees.js +0 -23
- package/dist/lib/cleanupAllWorktrees.js.map +0 -1
- package/dist/lib/cleanupWorktree.d.ts +0 -6
- package/dist/lib/cleanupWorktree.d.ts.map +0 -1
- package/dist/lib/cleanupWorktree.js +0 -33
- package/dist/lib/cleanupWorktree.js.map +0 -1
- package/dist/lib/copyRalphFilesFromWorktree.d.ts +0 -5
- package/dist/lib/copyRalphFilesFromWorktree.d.ts.map +0 -1
- package/dist/lib/copyRalphFilesFromWorktree.js +0 -19
- package/dist/lib/copyRalphFilesFromWorktree.js.map +0 -1
- package/dist/lib/copyRalphFilesToWorktree.d.ts +0 -5
- package/dist/lib/copyRalphFilesToWorktree.d.ts.map +0 -1
- package/dist/lib/copyRalphFilesToWorktree.js +0 -21
- package/dist/lib/copyRalphFilesToWorktree.js.map +0 -1
- package/dist/lib/createWorktree.d.ts +0 -6
- package/dist/lib/createWorktree.d.ts.map +0 -1
- package/dist/lib/createWorktree.js +0 -33
- package/dist/lib/createWorktree.js.map +0 -1
- package/dist/lib/getGitRoot.d.ts +0 -5
- package/dist/lib/getGitRoot.d.ts.map +0 -1
- package/dist/lib/getGitRoot.js +0 -18
- package/dist/lib/getGitRoot.js.map +0 -1
- package/dist/lib/installDependencies.d.ts +0 -5
- package/dist/lib/installDependencies.d.ts.map +0 -1
- package/dist/lib/installDependencies.js +0 -23
- package/dist/lib/installDependencies.js.map +0 -1
- package/dist/lib/installDependencies.test.d.ts +0 -2
- package/dist/lib/installDependencies.test.d.ts.map +0 -1
- package/dist/lib/installDependencies.test.js +0 -37
- package/dist/lib/installDependencies.test.js.map +0 -1
- package/dist/lib/mergeWorktreeToMain.d.ts +0 -6
- package/dist/lib/mergeWorktreeToMain.d.ts.map +0 -1
- package/dist/lib/mergeWorktreeToMain.js +0 -54
- package/dist/lib/mergeWorktreeToMain.js.map +0 -1
- package/dist/lib/outputState.d.ts +0 -5
- package/dist/lib/outputState.d.ts.map +0 -1
- package/dist/lib/outputState.js +0 -6
- package/dist/lib/outputState.js.map +0 -1
- package/dist/lib/popStash.d.ts +0 -5
- package/dist/lib/popStash.d.ts.map +0 -1
- package/dist/lib/popStash.js +0 -17
- package/dist/lib/popStash.js.map +0 -1
- package/dist/lib/processEvent.d.ts +0 -2
- package/dist/lib/processEvent.d.ts.map +0 -1
- package/dist/lib/processEvent.js +0 -100
- package/dist/lib/processEvent.js.map +0 -1
- package/dist/lib/replayLog.d.ts +0 -2
- package/dist/lib/replayLog.d.ts.map +0 -1
- package/dist/lib/replayLog.js +0 -35
- package/dist/lib/replayLog.js.map +0 -1
- package/dist/lib/resolveConflicts.d.ts +0 -6
- package/dist/lib/resolveConflicts.d.ts.map +0 -1
- package/dist/lib/resolveConflicts.js +0 -76
- package/dist/lib/resolveConflicts.js.map +0 -1
- package/dist/lib/runIteration.d.ts +0 -2
- package/dist/lib/runIteration.d.ts.map +0 -1
- package/dist/lib/runIteration.js +0 -91
- package/dist/lib/runIteration.js.map +0 -1
- package/dist/lib/showToolUse.d.ts +0 -2
- package/dist/lib/showToolUse.d.ts.map +0 -1
- package/dist/lib/showToolUse.js +0 -17
- package/dist/lib/showToolUse.js.map +0 -1
- package/dist/lib/signalHandler.d.ts +0 -3
- package/dist/lib/signalHandler.d.ts.map +0 -1
- package/dist/lib/signalHandler.js +0 -23
- package/dist/lib/signalHandler.js.map +0 -1
- package/dist/lib/stashChanges.d.ts +0 -6
- package/dist/lib/stashChanges.d.ts.map +0 -1
- package/dist/lib/stashChanges.js +0 -27
- package/dist/lib/stashChanges.js.map +0 -1
- package/dist/lib/textFormatting.d.ts +0 -4
- package/dist/lib/textFormatting.d.ts.map +0 -1
- package/dist/lib/textFormatting.js +0 -94
- package/dist/lib/textFormatting.js.map +0 -1
- package/dist/lib/types.d.ts +0 -13
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js +0 -15
- package/dist/lib/types.js.map +0 -1
- package/dist/lib/worktree.d.ts +0 -43
- package/dist/lib/worktree.d.ts.map +0 -1
- package/dist/lib/worktree.js +0 -210
- package/dist/lib/worktree.js.map +0 -1
- package/dist/ui/EventProcessor.d.ts +0 -11
- package/dist/ui/EventProcessor.d.ts.map +0 -1
- package/dist/ui/EventProcessor.js +0 -95
- package/dist/ui/EventProcessor.js.map +0 -1
- package/dist/ui/IterationApp.d.ts +0 -10
- package/dist/ui/IterationApp.d.ts.map +0 -1
- package/dist/ui/IterationApp.js +0 -21
- package/dist/ui/IterationApp.js.map +0 -1
- package/dist/ui/IterationUI.d.ts +0 -13
- package/dist/ui/IterationUI.d.ts.map +0 -1
- package/dist/ui/IterationUI.js +0 -19
- package/dist/ui/IterationUI.js.map +0 -1
- package/dist/ui/TextDisplay.d.ts +0 -7
- package/dist/ui/TextDisplay.d.ts.map +0 -1
- package/dist/ui/TextDisplay.js +0 -41
- package/dist/ui/TextDisplay.js.map +0 -1
- package/dist/ui/ToolUseDisplay.d.ts +0 -10
- package/dist/ui/ToolUseDisplay.d.ts.map +0 -1
- package/dist/ui/ToolUseDisplay.js +0 -10
- package/dist/ui/ToolUseDisplay.js.map +0 -1
- /package/templates/{prompt.md → prompt-todos.md} +0 -0
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAWnC,eAAO,MAAM,OAAO,SA0ChB,CAAA"}
|
package/dist/cli.js
CHANGED
|
@@ -1,31 +1,45 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
import { join } from "path";
|
|
3
2
|
import { render } from "ink";
|
|
4
3
|
import React from "react";
|
|
5
4
|
import { App } from "./components/App.js";
|
|
6
5
|
import { InitRalph } from "./components/InitRalph.js";
|
|
7
6
|
import { getClaudeVersion } from "./lib/getClaudeVersion.js";
|
|
7
|
+
import { getDefaultIterations } from "./lib/getOpenIssueCount.js";
|
|
8
8
|
import { addTodo } from "./lib/addTodo.js";
|
|
9
|
+
import { getLatestLogFile } from "./lib/getNextLogFile.js";
|
|
9
10
|
import packageJson from "../package.json" with { type: "json" };
|
|
10
11
|
export const program = new Command()
|
|
11
12
|
.name("ralph")
|
|
12
13
|
.description("Autonomous AI iteration engine for Claude CLI")
|
|
13
14
|
.version(packageJson.version)
|
|
14
|
-
.argument("[iterations]", "number of iterations
|
|
15
|
+
.argument("[iterations]", "number of iterations (default: 120% of open issues, min 10, max 100)", val => parseInt(val, 10))
|
|
15
16
|
.option("--replay [file]", "replay events from log file")
|
|
16
17
|
.option("--watch", "watch for new beads issues after completion")
|
|
17
|
-
.
|
|
18
|
+
.option("--json", "output events as newline-delimited JSON to stdout")
|
|
19
|
+
.action((iterationsArg, options) => {
|
|
20
|
+
// Use dynamic default if no iterations specified
|
|
21
|
+
const iterations = iterationsArg ?? getDefaultIterations();
|
|
18
22
|
const replayFile = options.replay !== undefined ?
|
|
19
23
|
typeof options.replay === "string" ?
|
|
20
24
|
options.replay
|
|
21
|
-
:
|
|
25
|
+
: getLatestLogFile()
|
|
22
26
|
: undefined;
|
|
23
27
|
const claudeVersion = getClaudeVersion();
|
|
24
28
|
const ralphVersion = packageJson.version;
|
|
25
29
|
const watch = options.watch === true;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
30
|
+
const json = options.json === true;
|
|
31
|
+
// Clear the screen on startup (skip in JSON mode)
|
|
32
|
+
if (!json) {
|
|
33
|
+
process.stdout.write("\x1B[2J\x1B[H");
|
|
34
|
+
}
|
|
35
|
+
render(React.createElement(App, {
|
|
36
|
+
iterations,
|
|
37
|
+
replayFile,
|
|
38
|
+
claudeVersion,
|
|
39
|
+
ralphVersion,
|
|
40
|
+
watch,
|
|
41
|
+
json,
|
|
42
|
+
}));
|
|
29
43
|
});
|
|
30
44
|
program
|
|
31
45
|
.command("init")
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/components/App.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const App: ({ iterations, replayFile, claudeVersion, ralphVersion, watch }: Props) => React.JSX.Element;
|
|
2
|
+
export declare const App: ({ iterations, replayFile, claudeVersion, ralphVersion, watch, json, }: Props) => React.JSX.Element;
|
|
3
3
|
type Props = {
|
|
4
4
|
iterations: number;
|
|
5
5
|
replayFile?: string;
|
|
6
6
|
claudeVersion: string;
|
|
7
7
|
ralphVersion: string;
|
|
8
8
|
watch?: boolean;
|
|
9
|
+
json?: boolean;
|
|
9
10
|
};
|
|
10
11
|
export {};
|
|
11
12
|
//# sourceMappingURL=App.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,eAAO,MAAM,GAAG,GAAI,uEAOjB,KAAK,sBAiBP,CAAA;AAED,KAAK,KAAK,GAAG;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;CACf,CAAA"}
|
package/dist/components/App.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { IterationRunner } from "./IterationRunner.js";
|
|
3
3
|
import { ReplayLog } from "./ReplayLog.js";
|
|
4
|
-
|
|
4
|
+
import { JsonOutput } from "./JsonOutput.js";
|
|
5
|
+
export const App = ({ iterations, replayFile, claudeVersion, ralphVersion, watch, json, }) => {
|
|
5
6
|
if (replayFile) {
|
|
6
7
|
return React.createElement(ReplayLog, { filePath: replayFile });
|
|
7
8
|
}
|
|
9
|
+
if (json) {
|
|
10
|
+
return React.createElement(JsonOutput, { totalIterations: iterations });
|
|
11
|
+
}
|
|
8
12
|
return (React.createElement(IterationRunner, { totalIterations: iterations, claudeVersion: claudeVersion, ralphVersion: ralphVersion, watch: watch }));
|
|
9
13
|
};
|
|
10
14
|
//# sourceMappingURL=App.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAClB,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,KAAK,EACL,IAAI,GACE,EAAE,EAAE;IACV,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,oBAAC,SAAS,IAAC,QAAQ,EAAE,UAAU,GAAI,CAAA;IAC5C,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,oBAAC,UAAU,IAAC,eAAe,EAAE,UAAU,GAAI,CAAA;IACpD,CAAC;IAED,OAAO,CACL,oBAAC,eAAe,IACd,eAAe,EAAE,UAAU,EAC3B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,GACZ,CACH,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -85,24 +85,24 @@ describe("EventDisplay replay tests", () => {
|
|
|
85
85
|
Good! The build is successful and all tests pass. Now let me check the todo list to find the
|
|
86
86
|
highest-priority task.
|
|
87
87
|
|
|
88
|
-
Read
|
|
88
|
+
Read ../.ralph/todo.md
|
|
89
89
|
|
|
90
90
|
Looking at the todo list, I'll prioritize the "Inline code blocks are being put in separate
|
|
91
91
|
paragraphs" issue. This is a functional bug affecting the display quality, whereas the others are
|
|
92
92
|
enhancements. Let me investigate this issue first.
|
|
93
93
|
|
|
94
|
-
Read src/components/StreamingText.tsx
|
|
94
|
+
Read ../src/components/StreamingText.tsx
|
|
95
95
|
|
|
96
96
|
Let me check the tests to understand the expected behavior and see if there's a failing test case:
|
|
97
97
|
|
|
98
|
-
Read src/components/StreamingText.test.tsx
|
|
98
|
+
Read ../src/components/StreamingText.test.tsx
|
|
99
99
|
|
|
100
100
|
I need to understand where StreamingText is being used and what the actual problem is. Let me check
|
|
101
101
|
where it's called from and look at some example output:
|
|
102
102
|
|
|
103
103
|
Grep StreamingText
|
|
104
104
|
|
|
105
|
-
Read src/components/EventDisplay.tsx
|
|
105
|
+
Read ../src/components/EventDisplay.tsx
|
|
106
106
|
|
|
107
107
|
I see the issue now! In EventDisplay.tsx:70, there's a <Box flexDirection="column" gap={1}> which
|
|
108
108
|
wraps each StreamingText component. Each StreamingText (which represents text blocks) is being
|
|
@@ -114,7 +114,7 @@ describe("EventDisplay replay tests", () => {
|
|
|
114
114
|
|
|
115
115
|
Let me look at how the events are being split into blocks:
|
|
116
116
|
|
|
117
|
-
Read src/components/eventToBlocks.ts
|
|
117
|
+
Read ../src/components/eventToBlocks.ts
|
|
118
118
|
|
|
119
119
|
Now I understand the issue. Claude's message content can have multiple text blocks (e.g., "Here's
|
|
120
120
|
the code: ", then a tool_use block, then " and that's it"). Each text block becomes a separate
|
|
@@ -124,11 +124,11 @@ describe("EventDisplay replay tests", () => {
|
|
|
124
124
|
The fix should be to merge consecutive text blocks together. Let me write a test first to
|
|
125
125
|
demonstrate the problem:
|
|
126
126
|
|
|
127
|
-
Read src/components/EventDisplay.test.tsx
|
|
127
|
+
Read ../src/components/EventDisplay.test.tsx
|
|
128
128
|
|
|
129
129
|
Now let me add a test that demonstrates the inline code block problem and then fix it:
|
|
130
130
|
|
|
131
|
-
Edit src/components/EventDisplay.test.tsx
|
|
131
|
+
Edit ../src/components/EventDisplay.test.tsx
|
|
132
132
|
|
|
133
133
|
Now let me run the test to confirm it fails (demonstrating the problem):
|
|
134
134
|
|
|
@@ -137,11 +137,11 @@ describe("EventDisplay replay tests", () => {
|
|
|
137
137
|
Perfect! The test fails as expected, confirming the bug. Now I need to fix it by modifying
|
|
138
138
|
eventToBlocks to merge consecutive text blocks:
|
|
139
139
|
|
|
140
|
-
Edit src/components/eventToBlocks.ts
|
|
140
|
+
Edit ../src/components/eventToBlocks.ts
|
|
141
141
|
|
|
142
142
|
Now I need to also flush the text buffer at the end of the loop:
|
|
143
143
|
|
|
144
|
-
Edit src/components/eventToBlocks.ts
|
|
144
|
+
Edit ../src/components/eventToBlocks.ts
|
|
145
145
|
|
|
146
146
|
Now let me run the tests again to verify the fix works:
|
|
147
147
|
|
|
@@ -150,20 +150,20 @@ describe("EventDisplay replay tests", () => {
|
|
|
150
150
|
The test still fails. This suggests the problem might also be in EventDisplay, not just
|
|
151
151
|
eventToBlocks. Let me debug by adding a simpler test to see what's happening in eventToBlocks:
|
|
152
152
|
|
|
153
|
-
Read src/components/eventToBlocks.test.ts
|
|
153
|
+
Read ../src/components/eventToBlocks.test.ts
|
|
154
154
|
|
|
155
155
|
I see! The existing test "extracts multiple text blocks" expects them NOT to be merged. I need to
|
|
156
156
|
update this test and add a new one specifically for consecutive text blocks:
|
|
157
157
|
|
|
158
|
-
Edit src/components/eventToBlocks.test.ts
|
|
158
|
+
Edit ../src/components/eventToBlocks.test.ts
|
|
159
159
|
|
|
160
160
|
Now let me add a test for text blocks separated by tool calls:
|
|
161
161
|
|
|
162
|
-
Read src/components/eventToBlocks.test.ts
|
|
162
|
+
Read ../src/components/eventToBlocks.test.ts
|
|
163
163
|
|
|
164
164
|
Let me add a test that specifically checks text blocks separated by tool calls:
|
|
165
165
|
|
|
166
|
-
Edit src/components/eventToBlocks.test.ts
|
|
166
|
+
Edit ../src/components/eventToBlocks.test.ts
|
|
167
167
|
|
|
168
168
|
Now let me run all tests to verify my changes to eventToBlocks work:
|
|
169
169
|
|
|
@@ -171,12 +171,12 @@ describe("EventDisplay replay tests", () => {
|
|
|
171
171
|
|
|
172
172
|
I need to look at this failing test:
|
|
173
173
|
|
|
174
|
-
Read src/components/eventToBlocks.test.ts
|
|
174
|
+
Read ../src/components/eventToBlocks.test.ts
|
|
175
175
|
|
|
176
176
|
This test expects 3 separate IDs for 3 text blocks, but my code now merges them into 1. I need to
|
|
177
177
|
update this test to reflect the new behavior:
|
|
178
178
|
|
|
179
|
-
Edit src/components/eventToBlocks.test.ts
|
|
179
|
+
Edit ../src/components/eventToBlocks.test.ts
|
|
180
180
|
|
|
181
181
|
Now let me run the eventToBlocks tests again:
|
|
182
182
|
|
|
@@ -190,7 +190,7 @@ describe("EventDisplay replay tests", () => {
|
|
|
190
190
|
rendered. The issue must be in how EventDisplay merges the events. Let me look more carefully at the
|
|
191
191
|
EventDisplay logic:
|
|
192
192
|
|
|
193
|
-
Read src/components/EventDisplay.tsx
|
|
193
|
+
Read ../src/components/EventDisplay.tsx
|
|
194
194
|
|
|
195
195
|
I see! The EventDisplay is doing its own deduplication, but it's NOT merging consecutive text
|
|
196
196
|
blocks. The text blocks in the test data remain separate even after eventToBlocks merges them,
|
|
@@ -235,13 +235,13 @@ describe("EventDisplay replay tests", () => {
|
|
|
235
235
|
|
|
236
236
|
That should work! Let me check if there's an issue with my implementation. Let me re-read the code:
|
|
237
237
|
|
|
238
|
-
Read src/components/eventToBlocks.ts
|
|
238
|
+
Read ../src/components/eventToBlocks.ts
|
|
239
239
|
|
|
240
240
|
The code looks correct. Let me check if the EventDisplay is receiving the correct merged content. I
|
|
241
241
|
think the issue might be in how EventDisplay deduplicates and merges content before calling
|
|
242
242
|
eventToBlocks. Let me look at that logic again:
|
|
243
243
|
|
|
244
|
-
Read src/components/EventDisplay.tsx
|
|
244
|
+
Read ../src/components/EventDisplay.tsx
|
|
245
245
|
|
|
246
246
|
Ah! I see the problem now. In the test, we're providing a single event with one message containing 3
|
|
247
247
|
text blocks. EventDisplay keeps the text blocks separate in uniqueContent (lines 36-54), so they
|
|
@@ -269,7 +269,7 @@ describe("EventDisplay replay tests", () => {
|
|
|
269
269
|
|
|
270
270
|
Let me print what lastFrame() actually returns by modifying the test temporarily:
|
|
271
271
|
|
|
272
|
-
Edit src/components/EventDisplay.test.tsx
|
|
272
|
+
Edit ../src/components/EventDisplay.test.tsx
|
|
273
273
|
|
|
274
274
|
$ pnpm test EventDisplay.test.tsx 2>&1 | grep -A 20 "merges consecutive"
|
|
275
275
|
|
|
@@ -280,7 +280,7 @@ describe("EventDisplay replay tests", () => {
|
|
|
280
280
|
This means the EventDisplay deduplication logic is keeping them separate, OR there's a bug in my
|
|
281
281
|
eventToBlocks implementation. Let me add logging to eventToBlocks to see:
|
|
282
282
|
|
|
283
|
-
Edit src/components/eventToBlocks.ts
|
|
283
|
+
Edit ../src/components/eventToBlocks.ts
|
|
284
284
|
|
|
285
285
|
$ pnpm test EventDisplay.test.tsx 2>&1 | grep -A 30 "eventToBlocks content"
|
|
286
286
|
|
|
@@ -296,9 +296,9 @@ describe("EventDisplay replay tests", () => {
|
|
|
296
296
|
But the output still shows them on 3 separate lines. This means my merging logic isn't working. Let
|
|
297
297
|
me add more logging to see what's happening in the loop:
|
|
298
298
|
|
|
299
|
-
Edit src/components/eventToBlocks.ts
|
|
299
|
+
Edit ../src/components/eventToBlocks.ts
|
|
300
300
|
|
|
301
|
-
Edit src/components/eventToBlocks.ts
|
|
301
|
+
Edit ../src/components/eventToBlocks.ts
|
|
302
302
|
|
|
303
303
|
$ pnpm test EventDisplay.test.tsx 2>&1 | grep -A 50 "merges consecutive text blocks to prevent
|
|
304
304
|
unwanted gaps"
|
|
@@ -341,7 +341,7 @@ describe("EventDisplay replay tests", () => {
|
|
|
341
341
|
Let me check if the problem is in how StreamingText uses fragments. When you return a fragment with
|
|
342
342
|
multiple <Text> components in Ink, they might be rendered on separate lines. Let me check:
|
|
343
343
|
|
|
344
|
-
Read src/components/StreamingText.tsx
|
|
344
|
+
Read ../src/components/StreamingText.tsx
|
|
345
345
|
|
|
346
346
|
The issue is that StreamingText returns a fragment with multiple <Text> components. In Ink, these
|
|
347
347
|
might be rendered as separate blocks. The fix is to wrap them in a single <Text> component or use
|
|
@@ -350,17 +350,17 @@ describe("EventDisplay replay tests", () => {
|
|
|
350
350
|
Let me look at how Ink handles multiple Text components. Actually, the fix is simple - wrap all the
|
|
351
351
|
text parts in a single Box or Text component with inline rendering:
|
|
352
352
|
|
|
353
|
-
Edit src/components/StreamingText.tsx
|
|
353
|
+
Edit ../src/components/StreamingText.tsx
|
|
354
354
|
|
|
355
|
-
Edit src/components/StreamingText.tsx
|
|
355
|
+
Edit ../src/components/StreamingText.tsx
|
|
356
356
|
|
|
357
357
|
Now let me remove the console.log statements and test:
|
|
358
358
|
|
|
359
|
-
Edit src/components/eventToBlocks.ts
|
|
359
|
+
Edit ../src/components/eventToBlocks.ts
|
|
360
360
|
|
|
361
|
-
Edit src/components/eventToBlocks.ts
|
|
361
|
+
Edit ../src/components/eventToBlocks.ts
|
|
362
362
|
|
|
363
|
-
Edit src/components/EventDisplay.test.tsx
|
|
363
|
+
Edit ../src/components/EventDisplay.test.tsx
|
|
364
364
|
|
|
365
365
|
Now let me run all tests:
|
|
366
366
|
|
|
@@ -372,13 +372,13 @@ describe("EventDisplay replay tests", () => {
|
|
|
372
372
|
|
|
373
373
|
Excellent! Now let me update the todo list and progress file, then commit:
|
|
374
374
|
|
|
375
|
-
Read
|
|
375
|
+
Read ../.ralph/todo.md
|
|
376
376
|
|
|
377
|
-
Edit
|
|
377
|
+
Edit ../.ralph/todo.md
|
|
378
378
|
|
|
379
|
-
Read
|
|
379
|
+
Read ../.ralph/progress.md
|
|
380
380
|
|
|
381
|
-
Edit
|
|
381
|
+
Edit ../.ralph/progress.md
|
|
382
382
|
|
|
383
383
|
Now let me format the code with Prettier:
|
|
384
384
|
|
|
@@ -31,7 +31,7 @@ export const InitRalph = () => {
|
|
|
31
31
|
const templates = taskMode === "beads" ?
|
|
32
32
|
[{ src: "prompt-beads.md", dest: "prompt.md" }]
|
|
33
33
|
: [
|
|
34
|
-
{ src: "prompt.md", dest: "prompt.md" },
|
|
34
|
+
{ src: "prompt-todos.md", dest: "prompt.md" },
|
|
35
35
|
{ src: "todo.md", dest: "todo.md" },
|
|
36
36
|
];
|
|
37
37
|
setStatus("creating");
|
|
@@ -53,20 +53,20 @@ export const InitRalph = () => {
|
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
// Add events
|
|
56
|
+
// Add events log pattern to .gitignore
|
|
57
57
|
const gitignorePath = join(process.cwd(), ".gitignore");
|
|
58
|
-
const eventsLogEntry = ".ralph/events
|
|
58
|
+
const eventsLogEntry = ".ralph/events-*.jsonl";
|
|
59
59
|
if (existsSync(gitignorePath)) {
|
|
60
60
|
const content = readFileSync(gitignorePath, "utf-8");
|
|
61
61
|
if (!content.includes(eventsLogEntry)) {
|
|
62
62
|
const newline = content.endsWith("\n") ? "" : "\n";
|
|
63
63
|
appendFileSync(gitignorePath, `${newline}${eventsLogEntry}\n`);
|
|
64
|
-
created.push("(added .ralph/events
|
|
64
|
+
created.push("(added .ralph/events-*.jsonl to .gitignore)");
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
else {
|
|
68
68
|
writeFileSync(gitignorePath, `${eventsLogEntry}\n`);
|
|
69
|
-
created.push("(created .gitignore with .ralph/events
|
|
69
|
+
created.push("(created .gitignore with .ralph/events-*.jsonl)");
|
|
70
70
|
}
|
|
71
71
|
setCreatedFiles(created);
|
|
72
72
|
setErrors(failed);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InitRalph.js","sourceRoot":"","sources":["../../src/components/InitRalph.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,WAAW,MAAM,kBAAkB,CAAA;AAC1C,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EACL,UAAU,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,aAAa,GACd,MAAM,IAAI,CAAA;AACX,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAIzD,MAAM,CAAC,MAAM,SAAS,GAAG,GAAG,EAAE;IAC5B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAClC,UAAU,CACX,CAAA;IACD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAkB,IAAI,CAAC,CAAA;IAC/D,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAA;IAC9D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAA;IAElD,iCAAiC;IACjC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;QAE9C,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACpE,SAAS,CAAC,QAAQ,CAAC,CAAA;QACrB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,WAAW,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,gDAAgD;IAChD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,QAAQ;YAAE,OAAM;QAErB,MAAM,UAAU,GAAG,KAAK,IAAI,EAAE;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAA;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;YAE7D,sCAAsC;YACtC,MAAM,SAAS,GACb,QAAQ,KAAK,OAAO,CAAC,CAAC;gBACpB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;gBACjD,CAAC,CAAC;oBACE,EAAE,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"InitRalph.js","sourceRoot":"","sources":["../../src/components/InitRalph.tsx"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import React from "react";
|
|
|
3
3
|
* Get the prompt content, falling back to templates if .ralph/prompt.md doesn't exist.
|
|
4
4
|
* Uses the appropriate template based on the project setup:
|
|
5
5
|
* - If .beads directory exists OR no .ralph/todo.md: use prompt-beads.md
|
|
6
|
-
* - If .ralph/todo.md exists: use prompt.md (todo-based workflow)
|
|
6
|
+
* - If .ralph/todo.md exists: use prompt-todos.md (todo-based workflow)
|
|
7
7
|
*/
|
|
8
8
|
export declare const getPromptContent: () => string;
|
|
9
9
|
export declare const IterationRunner: ({ totalIterations, claudeVersion, ralphVersion, watch }: Props) => React.JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IterationRunner.d.ts","sourceRoot":"","sources":["../../src/components/IterationRunner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"IterationRunner.d.ts","sourceRoot":"","sources":["../../src/components/IterationRunner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAA;AAsC1D;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,QAAO,MAiBnC,CAAA;AA0ID,eAAO,MAAM,eAAe,GAAI,yDAAyD,KAAK,sBAgjB7F,CAAA;AAED,KAAK,KAAK,GAAG;IACX,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,CAAA"}
|