@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.
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +26 -5
- package/dist/cli.js.map +1 -1
- package/dist/components/App.d.ts +6 -1
- package/dist/components/App.d.ts.map +1 -1
- package/dist/components/App.js +7 -3
- package/dist/components/App.js.map +1 -1
- package/dist/components/EnhancedTextInput.d.ts +8 -8
- package/dist/components/EnhancedTextInput.d.ts.map +1 -1
- package/dist/components/EnhancedTextInput.js +2 -36
- package/dist/components/EnhancedTextInput.js.map +1 -1
- package/dist/components/EnhancedTextInput.test.js +2 -10
- package/dist/components/EnhancedTextInput.test.js.map +1 -1
- package/dist/components/EventDisplay.d.ts +1 -1
- package/dist/components/EventDisplay.d.ts.map +1 -1
- package/dist/components/EventDisplay.js +3 -94
- package/dist/components/EventDisplay.js.map +1 -1
- package/dist/components/EventDisplay.replay.test.js +34 -68
- package/dist/components/EventDisplay.replay.test.js.map +1 -1
- package/dist/components/EventDisplay.test.js +30 -0
- package/dist/components/EventDisplay.test.js.map +1 -1
- package/dist/components/FullScreenLayout.d.ts +5 -4
- package/dist/components/FullScreenLayout.d.ts.map +1 -1
- package/dist/components/FullScreenLayout.js +2 -12
- package/dist/components/FullScreenLayout.js.map +1 -1
- package/dist/components/Header.d.ts +2 -1
- package/dist/components/Header.d.ts.map +1 -1
- package/dist/components/Header.js +8 -1
- package/dist/components/Header.js.map +1 -1
- package/dist/components/InitRalph.d.ts +6 -1
- package/dist/components/InitRalph.d.ts.map +1 -1
- package/dist/components/InitRalph.js +71 -89
- package/dist/components/InitRalph.js.map +1 -1
- package/dist/components/IterationRunner.d.ts +6 -13
- package/dist/components/IterationRunner.d.ts.map +1 -1
- package/dist/components/IterationRunner.js +84 -168
- package/dist/components/IterationRunner.js.map +1 -1
- package/dist/components/IterationRunner.test.d.ts +44 -0
- package/dist/components/IterationRunner.test.d.ts.map +1 -1
- package/dist/components/IterationRunner.test.js +66 -126
- package/dist/components/IterationRunner.test.js.map +1 -1
- package/dist/components/IterationRunner.types.d.ts +30 -0
- package/dist/components/IterationRunner.types.d.ts.map +1 -0
- package/dist/components/IterationRunner.types.js +2 -0
- package/dist/components/IterationRunner.types.js.map +1 -0
- package/dist/components/JsonOutput.d.ts +5 -6
- package/dist/components/JsonOutput.d.ts.map +1 -1
- package/dist/components/JsonOutput.js +57 -34
- package/dist/components/JsonOutput.js.map +1 -1
- package/dist/components/JsonOutput.test.d.ts +2 -0
- package/dist/components/JsonOutput.test.d.ts.map +1 -0
- package/dist/components/JsonOutput.test.js +39 -0
- package/dist/components/JsonOutput.test.js.map +1 -0
- package/dist/components/ReplayLog.d.ts +1 -1
- package/dist/components/ReplayLog.d.ts.map +1 -1
- package/dist/components/ReplayLog.js +9 -2
- package/dist/components/ReplayLog.js.map +1 -1
- package/dist/components/StreamingText.d.ts +4 -0
- package/dist/components/StreamingText.d.ts.map +1 -1
- package/dist/components/StreamingText.js +4 -3
- package/dist/components/StreamingText.js.map +1 -1
- package/dist/components/StreamingText.test.js +39 -0
- package/dist/components/StreamingText.test.js.map +1 -1
- package/dist/components/ToolUse.d.ts +8 -0
- package/dist/components/ToolUse.d.ts.map +1 -1
- package/dist/components/ToolUse.js +1 -0
- package/dist/components/ToolUse.js.map +1 -1
- package/dist/components/blocksToLines.d.ts +6 -0
- package/dist/components/blocksToLines.d.ts.map +1 -0
- package/dist/components/blocksToLines.js +15 -0
- package/dist/components/blocksToLines.js.map +1 -0
- package/dist/components/eventToBlocks.d.ts +7 -1
- package/dist/components/eventToBlocks.d.ts.map +1 -1
- package/dist/components/eventToBlocks.js +7 -1
- package/dist/components/eventToBlocks.js.map +1 -1
- package/dist/components/findNextWordBoundary.d.ts +10 -0
- package/dist/components/findNextWordBoundary.d.ts.map +1 -0
- package/dist/components/findNextWordBoundary.js +23 -0
- package/dist/components/findNextWordBoundary.js.map +1 -0
- package/dist/components/findPreviousWordBoundary.d.ts +10 -0
- package/dist/components/findPreviousWordBoundary.d.ts.map +1 -0
- package/dist/components/findPreviousWordBoundary.js +23 -0
- package/dist/components/findPreviousWordBoundary.js.map +1 -0
- package/dist/components/processEvents.d.ts +11 -0
- package/dist/components/processEvents.d.ts.map +1 -0
- package/dist/components/processEvents.js +87 -0
- package/dist/components/processEvents.js.map +1 -0
- package/dist/components/renderStaticItem.d.ts +7 -0
- package/dist/components/renderStaticItem.d.ts.map +1 -0
- package/dist/components/renderStaticItem.js +23 -0
- package/dist/components/renderStaticItem.js.map +1 -0
- package/dist/components/replay.d.ts +5 -0
- package/dist/components/replay.d.ts.map +1 -0
- package/dist/components/replay.js +49 -0
- package/dist/components/replay.js.map +1 -0
- package/dist/components/test-helpers/ControlledInput.d.ts +14 -0
- package/dist/components/test-helpers/ControlledInput.d.ts.map +1 -0
- package/dist/components/test-helpers/ControlledInput.js +15 -0
- package/dist/components/test-helpers/ControlledInput.js.map +1 -0
- package/dist/components/useContentHeight.d.ts +9 -0
- package/dist/components/useContentHeight.d.ts.map +1 -0
- package/dist/components/useContentHeight.js +16 -0
- package/dist/components/useContentHeight.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/MessageQueue.d.ts +18 -5
- package/dist/lib/MessageQueue.d.ts.map +1 -1
- package/dist/lib/MessageQueue.js +21 -14
- package/dist/lib/MessageQueue.js.map +1 -1
- package/dist/lib/StdinCommandHandler.d.ts +26 -20
- package/dist/lib/StdinCommandHandler.js +78 -85
- package/dist/lib/StdinCommandHandler.test.d.ts +2 -2
- package/dist/lib/StdinCommandHandler.test.js +92 -92
- package/dist/lib/WorktreeManager.d.ts +114 -0
- package/dist/lib/WorktreeManager.d.ts.map +1 -0
- package/dist/lib/WorktreeManager.js +350 -0
- package/dist/lib/WorktreeManager.js.map +1 -0
- package/dist/lib/WorktreeManager.test.d.ts +2 -0
- package/dist/lib/WorktreeManager.test.d.ts.map +1 -0
- package/dist/lib/WorktreeManager.test.js +261 -0
- package/dist/lib/WorktreeManager.test.js.map +1 -0
- package/dist/lib/addTodo.d.ts +5 -5
- package/dist/lib/addTodo.d.ts.map +1 -1
- package/dist/lib/addTodo.js +6 -20
- package/dist/lib/addTodo.js.map +1 -1
- package/dist/lib/beadsClient.d.ts +6 -12
- package/dist/lib/beadsClient.d.ts.map +1 -1
- package/dist/lib/beadsClient.js +3 -2
- package/dist/lib/beadsClient.js.map +1 -1
- package/dist/lib/captureBeadsSnapshot.d.ts +4 -0
- package/dist/lib/captureBeadsSnapshot.d.ts.map +1 -0
- package/dist/lib/captureBeadsSnapshot.js +24 -0
- package/dist/lib/captureBeadsSnapshot.js.map +1 -0
- package/dist/lib/captureStartupSnapshot.d.ts +10 -0
- package/dist/lib/captureStartupSnapshot.d.ts.map +1 -0
- package/dist/lib/captureStartupSnapshot.js +29 -0
- package/dist/lib/captureStartupSnapshot.js.map +1 -0
- package/dist/lib/captureTodoSnapshot.d.ts +4 -0
- package/dist/lib/captureTodoSnapshot.d.ts.map +1 -0
- package/dist/lib/captureTodoSnapshot.js +24 -0
- package/dist/lib/captureTodoSnapshot.js.map +1 -0
- package/dist/lib/copyTemplates.d.ts +22 -0
- package/dist/lib/copyTemplates.d.ts.map +1 -0
- package/dist/lib/copyTemplates.js +32 -0
- package/dist/lib/copyTemplates.js.map +1 -0
- package/dist/lib/createStdinCommandHandler.d.ts +28 -0
- package/dist/lib/createStdinCommandHandler.d.ts.map +1 -0
- package/dist/lib/createStdinCommandHandler.js +67 -0
- package/dist/lib/createStdinCommandHandler.js.map +1 -0
- package/dist/lib/createUserMessage.d.ts +6 -0
- package/dist/lib/createUserMessage.d.ts.map +1 -0
- package/dist/lib/createUserMessage.js +13 -0
- package/dist/lib/createUserMessage.js.map +1 -0
- package/dist/lib/debug.d.ts +17 -16
- package/dist/lib/debug.d.ts.map +1 -1
- package/dist/lib/debug.js +25 -15
- package/dist/lib/debug.js.map +1 -1
- package/dist/lib/findMaxLogNumber.d.ts +6 -0
- package/dist/lib/findMaxLogNumber.d.ts.map +1 -0
- package/dist/lib/findMaxLogNumber.js +26 -0
- package/dist/lib/findMaxLogNumber.js.map +1 -0
- package/dist/lib/findMaxLogNumber.test.d.ts +2 -0
- package/dist/lib/findMaxLogNumber.test.d.ts.map +1 -0
- package/dist/lib/findMaxLogNumber.test.js +39 -0
- package/dist/lib/findMaxLogNumber.test.js.map +1 -0
- package/dist/lib/formatContentBlock.d.ts +4 -8
- package/dist/lib/formatContentBlock.d.ts.map +1 -1
- package/dist/lib/formatContentBlock.js +7 -58
- package/dist/lib/formatContentBlock.js.map +1 -1
- package/dist/lib/formatIterationHeader.d.ts +5 -0
- package/dist/lib/formatIterationHeader.d.ts.map +1 -0
- package/dist/lib/formatIterationHeader.js +8 -0
- package/dist/lib/formatIterationHeader.js.map +1 -0
- package/dist/lib/formatText.d.ts +5 -0
- package/dist/lib/formatText.d.ts.map +1 -0
- package/dist/lib/formatText.js +33 -0
- package/dist/lib/formatText.js.map +1 -0
- package/dist/lib/formatToolUse.d.ts +7 -0
- package/dist/lib/formatToolUse.d.ts.map +1 -0
- package/dist/lib/formatToolUse.js +14 -0
- package/dist/lib/formatToolUse.js.map +1 -0
- package/dist/lib/formatUserMessage.d.ts +5 -0
- package/dist/lib/formatUserMessage.d.ts.map +1 -0
- package/dist/lib/formatUserMessage.js +8 -0
- package/dist/lib/formatUserMessage.js.map +1 -0
- package/dist/lib/getBaseCwd.d.ts +6 -0
- package/dist/lib/getBaseCwd.d.ts.map +1 -0
- package/dist/lib/getBaseCwd.js +6 -0
- package/dist/lib/getBaseCwd.js.map +1 -0
- package/dist/lib/getBeadsProgress.d.ts +8 -0
- package/dist/lib/getBeadsProgress.d.ts.map +1 -0
- package/dist/lib/getBeadsProgress.js +35 -0
- package/dist/lib/getBeadsProgress.js.map +1 -0
- package/dist/lib/getClaudeVersion.d.ts +4 -0
- package/dist/lib/getClaudeVersion.d.ts.map +1 -1
- package/dist/lib/getClaudeVersion.js +4 -0
- package/dist/lib/getClaudeVersion.js.map +1 -1
- package/dist/lib/getDefaultIterations.d.ts +6 -0
- package/dist/lib/getDefaultIterations.d.ts.map +1 -0
- package/dist/lib/getDefaultIterations.js +14 -0
- package/dist/lib/getDefaultIterations.js.map +1 -0
- package/dist/lib/getDefaultIterations.test.d.ts +2 -0
- package/dist/lib/getDefaultIterations.test.d.ts.map +1 -0
- package/dist/lib/getDefaultIterations.test.js +39 -0
- package/dist/lib/getDefaultIterations.test.js.map +1 -0
- package/dist/lib/getLatestLogFile.d.ts +6 -0
- package/dist/lib/getLatestLogFile.d.ts.map +1 -0
- package/dist/lib/getLatestLogFile.js +15 -0
- package/dist/lib/getLatestLogFile.js.map +1 -0
- package/dist/lib/getNextLogFile.d.ts +0 -5
- package/dist/lib/getNextLogFile.d.ts.map +1 -1
- package/dist/lib/getNextLogFile.js +2 -36
- package/dist/lib/getNextLogFile.js.map +1 -1
- package/dist/lib/getNextLogFile.test.js +2 -1
- package/dist/lib/getNextLogFile.test.js.map +1 -1
- package/dist/lib/getOpenIssueCount.d.ts +0 -5
- package/dist/lib/getOpenIssueCount.d.ts.map +1 -1
- package/dist/lib/getOpenIssueCount.js +0 -12
- package/dist/lib/getOpenIssueCount.js.map +1 -1
- package/dist/lib/getOpenIssueCount.test.js +1 -35
- package/dist/lib/getOpenIssueCount.test.js.map +1 -1
- package/dist/lib/getProgress.d.ts +6 -26
- package/dist/lib/getProgress.d.ts.map +1 -1
- package/dist/lib/getProgress.js +8 -109
- package/dist/lib/getProgress.js.map +1 -1
- package/dist/lib/getProgress.test.js +2 -1
- package/dist/lib/getProgress.test.js.map +1 -1
- package/dist/lib/getPromptContent.d.ts +8 -0
- package/dist/lib/getPromptContent.d.ts.map +1 -0
- package/dist/lib/getPromptContent.js +31 -0
- package/dist/lib/getPromptContent.js.map +1 -0
- package/dist/lib/getTerminalSize.d.ts +8 -0
- package/dist/lib/getTerminalSize.d.ts.map +1 -0
- package/dist/lib/getTerminalSize.js +10 -0
- package/dist/lib/getTerminalSize.js.map +1 -0
- package/dist/lib/getTodoProgress.d.ts +4 -0
- package/dist/lib/getTodoProgress.d.ts.map +1 -0
- package/dist/lib/getTodoProgress.js +22 -0
- package/dist/lib/getTodoProgress.js.map +1 -0
- package/dist/lib/insertTodo.d.ts +7 -0
- package/dist/lib/insertTodo.d.ts.map +1 -0
- package/dist/lib/insertTodo.js +22 -0
- package/dist/lib/insertTodo.js.map +1 -0
- package/dist/lib/outputEvent.d.ts +5 -0
- package/dist/lib/outputEvent.d.ts.map +1 -0
- package/dist/lib/outputEvent.js +7 -0
- package/dist/lib/outputEvent.js.map +1 -0
- package/dist/lib/parseStdinCommand.d.ts +25 -0
- package/dist/lib/parseStdinCommand.d.ts.map +1 -0
- package/dist/lib/parseStdinCommand.js +43 -0
- package/dist/lib/parseStdinCommand.js.map +1 -0
- package/dist/lib/parseStdinCommand.test.d.ts +2 -0
- package/dist/lib/parseStdinCommand.test.d.ts.map +1 -0
- package/dist/lib/parseStdinCommand.test.js +93 -0
- package/dist/lib/parseStdinCommand.test.js.map +1 -0
- package/dist/lib/parseTaskLifecycle.d.ts +18 -0
- package/dist/lib/parseTaskLifecycle.d.ts.map +1 -0
- package/dist/lib/parseTaskLifecycle.js +30 -0
- package/dist/lib/parseTaskLifecycle.js.map +1 -0
- package/dist/lib/parseTaskLifecycle.test.d.ts +2 -0
- package/dist/lib/parseTaskLifecycle.test.d.ts.map +1 -0
- package/dist/lib/parseTaskLifecycle.test.js +122 -0
- package/dist/lib/parseTaskLifecycle.test.js.map +1 -0
- package/dist/lib/parseWorktreeFromBranch.d.ts +13 -0
- package/dist/lib/parseWorktreeFromBranch.d.ts.map +1 -0
- package/dist/lib/parseWorktreeFromBranch.js +19 -0
- package/dist/lib/parseWorktreeFromBranch.js.map +1 -0
- package/dist/lib/processEvents.d.ts +12 -0
- package/dist/lib/processEvents.d.ts.map +1 -0
- package/dist/lib/processEvents.js +113 -0
- package/dist/lib/processEvents.js.map +1 -0
- package/dist/lib/rel.d.ts +7 -1
- package/dist/lib/rel.d.ts.map +1 -1
- package/dist/lib/rel.js +13 -4
- package/dist/lib/rel.js.map +1 -1
- package/dist/lib/rel.test.js +16 -1
- package/dist/lib/rel.test.js.map +1 -1
- package/dist/lib/sdkMessageToEvent.d.ts +6 -0
- package/dist/lib/sdkMessageToEvent.d.ts.map +1 -0
- package/dist/lib/sdkMessageToEvent.js +12 -0
- package/dist/lib/sdkMessageToEvent.js.map +1 -0
- package/dist/lib/shortenTempPaths.d.ts +7 -1
- package/dist/lib/shortenTempPaths.d.ts.map +1 -1
- package/dist/lib/shortenTempPaths.js +7 -2
- package/dist/lib/shortenTempPaths.js.map +1 -1
- package/dist/lib/types.d.ts +19 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +2 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/useTerminalSize.d.ts +3 -2
- package/dist/lib/useTerminalSize.d.ts.map +1 -1
- package/dist/lib/useTerminalSize.js +4 -6
- package/dist/lib/useTerminalSize.js.map +1 -1
- package/package.json +4 -3
- package/templates/core-prompt.md +77 -0
- package/templates/skills/manage-tasks/SKILL.md +113 -0
- package/templates/workflow.md +46 -0
- package/templates/prompt-beads.md +0 -44
- package/templates/prompt-todos.md +0 -17
- package/templates/todo.md +0 -9
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;AAWnC,eAAO,MAAM,OAAO,
|
|
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,SA4DjB,CAAA"}
|
package/dist/cli.js
CHANGED
|
@@ -4,9 +4,9 @@ import React from "react";
|
|
|
4
4
|
import { App } from "./components/App.js";
|
|
5
5
|
import { InitRalph } from "./components/InitRalph.js";
|
|
6
6
|
import { getClaudeVersion } from "./lib/getClaudeVersion.js";
|
|
7
|
-
import { getDefaultIterations } from "./lib/
|
|
7
|
+
import { getDefaultIterations } from "./lib/getDefaultIterations.js";
|
|
8
8
|
import { addTodo } from "./lib/addTodo.js";
|
|
9
|
-
import { getLatestLogFile } from "./lib/
|
|
9
|
+
import { getLatestLogFile } from "./lib/getLatestLogFile.js";
|
|
10
10
|
import packageJson from "../package.json" with { type: "json" };
|
|
11
11
|
export const program = new Command()
|
|
12
12
|
.name("ralph")
|
|
@@ -16,8 +16,12 @@ export const program = new Command()
|
|
|
16
16
|
.option("--replay [file]", "replay events from log file")
|
|
17
17
|
.option("--watch", "watch for new beads issues after completion")
|
|
18
18
|
.option("--json", "output events as newline-delimited JSON to stdout")
|
|
19
|
-
.
|
|
20
|
-
|
|
19
|
+
.option("--agent <name>", "agent to use (e.g., claude, codex)", "claude")
|
|
20
|
+
.action((
|
|
21
|
+
/** The number of iterations to run, or undefined to use default */
|
|
22
|
+
iterationsArg,
|
|
23
|
+
/** Command options including replay, watch, json, and agent */
|
|
24
|
+
options) => {
|
|
21
25
|
const iterations = iterationsArg ?? getDefaultIterations();
|
|
22
26
|
const replayFile = options.replay !== undefined ?
|
|
23
27
|
typeof options.replay === "string" ?
|
|
@@ -28,6 +32,13 @@ export const program = new Command()
|
|
|
28
32
|
const ralphVersion = packageJson.version;
|
|
29
33
|
const watch = options.watch === true;
|
|
30
34
|
const json = options.json === true;
|
|
35
|
+
const agent = options.agent;
|
|
36
|
+
// Validate agent selection
|
|
37
|
+
const validAgents = ["claude", "codex"];
|
|
38
|
+
if (!validAgents.includes(agent)) {
|
|
39
|
+
console.error(`Error: Invalid agent "${agent}". Available agents: ${validAgents.join(", ")}`);
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
31
42
|
// Clear the screen on startup (skip in JSON mode)
|
|
32
43
|
if (!json) {
|
|
33
44
|
process.stdout.write("\x1B[2J\x1B[H");
|
|
@@ -39,18 +50,28 @@ export const program = new Command()
|
|
|
39
50
|
ralphVersion,
|
|
40
51
|
watch,
|
|
41
52
|
json,
|
|
53
|
+
agent,
|
|
42
54
|
}));
|
|
43
55
|
});
|
|
44
56
|
program
|
|
45
57
|
.command("init")
|
|
46
58
|
.description("initialize .ralph directory with templates")
|
|
59
|
+
/**
|
|
60
|
+
* Initialize the .ralph directory with templates
|
|
61
|
+
*/
|
|
47
62
|
.action(() => {
|
|
48
63
|
render(React.createElement(InitRalph));
|
|
49
64
|
});
|
|
50
65
|
program
|
|
51
66
|
.command("todo [description...]")
|
|
52
67
|
.description("add a todo item and commit it (safe to use while ralph is running)")
|
|
53
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Add a todo item and commit it. If description is provided as arguments,
|
|
70
|
+
* use that; otherwise prompt interactively.
|
|
71
|
+
*/
|
|
72
|
+
.action(async (
|
|
73
|
+
/** The description parts from command arguments */
|
|
74
|
+
descriptionParts) => {
|
|
54
75
|
let description = descriptionParts.join(" ").trim();
|
|
55
76
|
if (!description) {
|
|
56
77
|
// Prompt for description interactively
|
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,MAAM,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
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,5 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Root application component that routes to the appropriate mode based on props.
|
|
4
|
+
* Supports replay mode, JSON output mode, and normal iteration mode.
|
|
5
|
+
*/
|
|
6
|
+
export declare const App: ({ iterations, replayFile, claudeVersion, ralphVersion, watch, json, agent, }: Props) => React.JSX.Element;
|
|
3
7
|
type Props = {
|
|
4
8
|
iterations: number;
|
|
5
9
|
replayFile?: string;
|
|
@@ -7,6 +11,7 @@ type Props = {
|
|
|
7
11
|
ralphVersion: string;
|
|
8
12
|
watch?: boolean;
|
|
9
13
|
json?: boolean;
|
|
14
|
+
agent: string;
|
|
10
15
|
};
|
|
11
16
|
export {};
|
|
12
17
|
//# 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;AAKzB,eAAO,MAAM,GAAG,GAAI,
|
|
1
|
+
{"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/components/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB;;;GAGG;AACH,eAAO,MAAM,GAAG,GAAI,8EAQjB,KAAK,sBAkBP,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;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
|
package/dist/components/App.js
CHANGED
|
@@ -2,13 +2,17 @@ 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
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Root application component that routes to the appropriate mode based on props.
|
|
7
|
+
* Supports replay mode, JSON output mode, and normal iteration mode.
|
|
8
|
+
*/
|
|
9
|
+
export const App = ({ iterations, replayFile, claudeVersion, ralphVersion, watch, json, agent, }) => {
|
|
6
10
|
if (replayFile) {
|
|
7
11
|
return React.createElement(ReplayLog, { filePath: replayFile });
|
|
8
12
|
}
|
|
9
13
|
if (json) {
|
|
10
|
-
return React.createElement(JsonOutput, { totalIterations: iterations });
|
|
14
|
+
return React.createElement(JsonOutput, { totalIterations: iterations, agent: agent });
|
|
11
15
|
}
|
|
12
|
-
return (React.createElement(IterationRunner, { totalIterations: iterations, claudeVersion: claudeVersion, ralphVersion: ralphVersion, watch: watch }));
|
|
16
|
+
return (React.createElement(IterationRunner, { totalIterations: iterations, claudeVersion: claudeVersion, ralphVersion: ralphVersion, watch: watch, agent: agent }));
|
|
13
17
|
};
|
|
14
18
|
//# 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;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,
|
|
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;;;GAGG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,EAClB,UAAU,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,KAAK,EACL,IAAI,EACJ,KAAK,GACC,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,EAAE,KAAK,EAAE,KAAK,GAAI,CAAA;IAClE,CAAC;IAED,OAAO,CACL,oBAAC,eAAe,IACd,eAAe,EAAE,UAAU,EAC3B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,GACZ,CACH,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
type Props = {
|
|
3
|
-
value: string;
|
|
4
|
-
placeholder?: string;
|
|
5
|
-
focus?: boolean;
|
|
6
|
-
showCursor?: boolean;
|
|
7
|
-
onChange: (value: string) => void;
|
|
8
|
-
onSubmit?: (value: string) => void;
|
|
9
|
-
};
|
|
10
2
|
/**
|
|
11
3
|
* Enhanced text input component with standard text editing shortcuts:
|
|
12
4
|
* - Option+Left/Right: Move cursor by word
|
|
@@ -18,5 +10,13 @@ type Props = {
|
|
|
18
10
|
* - Ctrl+W: Delete previous word
|
|
19
11
|
*/
|
|
20
12
|
export declare const EnhancedTextInput: ({ value: originalValue, placeholder, focus, showCursor, onChange, onSubmit, }: Props) => React.JSX.Element;
|
|
13
|
+
type Props = {
|
|
14
|
+
value: string;
|
|
15
|
+
placeholder?: string;
|
|
16
|
+
focus?: boolean;
|
|
17
|
+
showCursor?: boolean;
|
|
18
|
+
onChange: (value: string) => void;
|
|
19
|
+
onSubmit?: (value: string) => void;
|
|
20
|
+
};
|
|
21
21
|
export {};
|
|
22
22
|
//# sourceMappingURL=EnhancedTextInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnhancedTextInput.d.ts","sourceRoot":"","sources":["../../src/components/EnhancedTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"EnhancedTextInput.d.ts","sourceRoot":"","sources":["../../src/components/EnhancedTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAMlD;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,GAAI,+EAO/B,KAAK,sBAsIP,CAAA;AAED,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACnC,CAAA"}
|
|
@@ -1,42 +1,8 @@
|
|
|
1
1
|
import React, { useState, useEffect } from "react";
|
|
2
2
|
import { Text, useInput } from "ink";
|
|
3
3
|
import chalk from "chalk";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* A word is a sequence of non-whitespace characters.
|
|
7
|
-
*/
|
|
8
|
-
const findPreviousWordBoundary = (text, cursorOffset) => {
|
|
9
|
-
if (cursorOffset <= 0)
|
|
10
|
-
return 0;
|
|
11
|
-
let pos = cursorOffset;
|
|
12
|
-
// Skip any whitespace immediately before cursor
|
|
13
|
-
while (pos > 0 && /\s/.test(text[pos - 1])) {
|
|
14
|
-
pos--;
|
|
15
|
-
}
|
|
16
|
-
// Skip the word (non-whitespace) characters
|
|
17
|
-
while (pos > 0 && !/\s/.test(text[pos - 1])) {
|
|
18
|
-
pos--;
|
|
19
|
-
}
|
|
20
|
-
return pos;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Find the end of the next word from cursor position.
|
|
24
|
-
* A word is a sequence of non-whitespace characters.
|
|
25
|
-
*/
|
|
26
|
-
const findNextWordBoundary = (text, cursorOffset) => {
|
|
27
|
-
if (cursorOffset >= text.length)
|
|
28
|
-
return text.length;
|
|
29
|
-
let pos = cursorOffset;
|
|
30
|
-
// Skip any whitespace immediately after cursor
|
|
31
|
-
while (pos < text.length && /\s/.test(text[pos])) {
|
|
32
|
-
pos++;
|
|
33
|
-
}
|
|
34
|
-
// Skip the word (non-whitespace) characters
|
|
35
|
-
while (pos < text.length && !/\s/.test(text[pos])) {
|
|
36
|
-
pos++;
|
|
37
|
-
}
|
|
38
|
-
return pos;
|
|
39
|
-
};
|
|
4
|
+
import { findPreviousWordBoundary } from "./findPreviousWordBoundary.js";
|
|
5
|
+
import { findNextWordBoundary } from "./findNextWordBoundary.js";
|
|
40
6
|
/**
|
|
41
7
|
* Enhanced text input component with standard text editing shortcuts:
|
|
42
8
|
* - Option+Left/Right: Move cursor by word
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnhancedTextInput.js","sourceRoot":"","sources":["../../src/components/EnhancedTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"EnhancedTextInput.js","sourceRoot":"","sources":["../../src/components/EnhancedTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACpC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAA;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,EAChC,KAAK,EAAE,aAAa,EACpB,WAAW,GAAG,EAAE,EAChB,KAAK,GAAG,IAAI,EACZ,UAAU,GAAG,IAAI,EACjB,QAAQ,EACR,QAAQ,GACF,EAAE,EAAE;IACV,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAEtE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QACD,kEAAkE;QAClE,IAAI,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;YACxC,eAAe,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QACvC,CAAC;IACH,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAA;IAEpD,+BAA+B;IAC/B,IAAI,aAAa,GAAG,aAAa,CAAA;IACjC,IAAI,mBAAmB,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAE3E,IAAI,UAAU,IAAI,KAAK,EAAE,CAAC;QACxB,mBAAmB;YACjB,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACtB,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAEtB,aAAa,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAElE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAE,CAAA;YAC9B,aAAa,IAAI,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAClE,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,YAAY,KAAK,aAAa,CAAC,MAAM,EAAE,CAAC;YACtE,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,QAAQ,CACN,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACb,2CAA2C;QAC3C,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;YAC3E,OAAM;QACR,CAAC;QAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAA;YACzB,OAAM;QACR,CAAC;QAED,IAAI,gBAAgB,GAAG,YAAY,CAAA;QACnC,IAAI,SAAS,GAAG,aAAa,CAAA;QAE7B,qDAAqD;QACrD,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YAC9B,gBAAgB,GAAG,wBAAwB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;QAC1E,CAAC;QACD,kDAAkD;aAC7C,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACpC,gBAAgB,GAAG,oBAAoB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;QACtE,CAAC;QACD,oCAAoC;aAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,gBAAgB,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,8BAA8B;aACzB,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAA;QACzC,CAAC;QACD,0CAA0C;aACrC,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;YAChD,wBAAwB;QAC1B,CAAC;QACD,gDAAgD;aAC3C,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAC7C,gBAAgB,GAAG,CAAC,CAAA;QACtB,CAAC;QACD,mDAAmD;aAC9C,IAAI,GAAG,CAAC,IAAI,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,wBAAwB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;YACvE,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YACjF,gBAAgB,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,8CAA8C;aACzC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,wBAAwB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;YACvE,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YACjF,gBAAgB,GAAG,SAAS,CAAA;QAC9B,CAAC;QACD,qBAAqB;aAChB,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;YACvB,IAAI,UAAU,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACnC,gBAAgB,GAAG,YAAY,GAAG,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QACD,sBAAsB;aACjB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACxB,IAAI,UAAU,IAAI,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;gBACtD,gBAAgB,GAAG,YAAY,GAAG,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QACD,YAAY;aACP,IAAI,GAAG,CAAC,SAAS,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;gBACxF,gBAAgB,GAAG,YAAY,GAAG,CAAC,CAAA;YACrC,CAAC;QACH,CAAC;QACD,0BAA0B;aACrB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACzC,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAC5F,gBAAgB,GAAG,YAAY,GAAG,KAAK,CAAC,MAAM,CAAA;QAChD,CAAC;QAED,8BAA8B;QAC9B,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;QAE5E,eAAe,CAAC,gBAAgB,CAAC,CAAA;QAEjC,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;YAChC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACrB,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,KAAK,EAAE,CACpB,CAAA;IAED,OAAO,CACL,oBAAC,IAAI,QACF,WAAW,CAAC,CAAC;QACZ,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACxB,aAAa;YACf,CAAC,CAAC,mBAAmB;QACvB,CAAC,CAAC,aAAa,CACV,CACR,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,16 +1,8 @@
|
|
|
1
1
|
import { describe, it, expect, vi } from "vitest";
|
|
2
|
-
import React
|
|
2
|
+
import React from "react";
|
|
3
3
|
import { render } from "ink-testing-library";
|
|
4
4
|
import { EnhancedTextInput } from "./EnhancedTextInput.js";
|
|
5
|
-
|
|
6
|
-
const ControlledInput = ({ initialValue, onValueChange, onSubmit, }) => {
|
|
7
|
-
const [value, setValue] = useState(initialValue);
|
|
8
|
-
const handleChange = (newValue) => {
|
|
9
|
-
setValue(newValue);
|
|
10
|
-
onValueChange?.(newValue);
|
|
11
|
-
};
|
|
12
|
-
return React.createElement(EnhancedTextInput, { value: value, onChange: handleChange, onSubmit: onSubmit });
|
|
13
|
-
};
|
|
5
|
+
import { ControlledInput } from "./test-helpers/ControlledInput.js";
|
|
14
6
|
describe("EnhancedTextInput", () => {
|
|
15
7
|
describe("rendering", () => {
|
|
16
8
|
it("renders with initial value", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnhancedTextInput.test.js","sourceRoot":"","sources":["../../src/components/EnhancedTextInput.test.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"EnhancedTextInput.test.js","sourceRoot":"","sources":["../../src/components/EnhancedTextInput.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
export declare const EventDisplay: ({ events, iteration, completedIterations, height }: Props) => React.JSX.Element;
|
|
2
3
|
type IterationEvents = {
|
|
3
4
|
iteration: number;
|
|
4
5
|
events: Array<Record<string, unknown>>;
|
|
5
6
|
};
|
|
6
|
-
export declare const EventDisplay: ({ events, iteration, completedIterations, height }: Props) => React.JSX.Element;
|
|
7
7
|
type Props = {
|
|
8
8
|
events: Array<Record<string, unknown>>;
|
|
9
9
|
iteration: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventDisplay.d.ts","sourceRoot":"","sources":["../../src/components/EventDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"EventDisplay.d.ts","sourceRoot":"","sources":["../../src/components/EventDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAA;AAMnE,eAAO,MAAM,YAAY,GAAI,oDAAoD,KAAK,sBAgGrF,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CACvC,CAAA;AAED,KAAK,KAAK,GAAG;IACX,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,mBAAmB,EAAE,eAAe,EAAE,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA"}
|
|
@@ -1,99 +1,8 @@
|
|
|
1
1
|
import React, { useMemo, useState, useEffect, useRef } from "react";
|
|
2
2
|
import { Box, Text, useInput } from "ink";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
// With includePartialMessages: true, we receive multiple snapshots of the same message
|
|
7
|
-
// as it builds up. Each snapshot may contain different parts of the message content,
|
|
8
|
-
// so we need to merge them and deduplicate.
|
|
9
|
-
const processEvents = (events) => {
|
|
10
|
-
// Filter to only show complete assistant messages, not streaming events
|
|
11
|
-
// streaming events are incomplete and cause duplicate/disappearing content
|
|
12
|
-
const assistantEvents = events.filter(event => event.type === "assistant");
|
|
13
|
-
// Collect all content blocks from all snapshots of the same message
|
|
14
|
-
const messageMap = new Map();
|
|
15
|
-
for (const event of assistantEvents) {
|
|
16
|
-
const message = event.message;
|
|
17
|
-
const messageId = message?.id;
|
|
18
|
-
const content = message?.content;
|
|
19
|
-
if (messageId && content) {
|
|
20
|
-
if (!messageMap.has(messageId)) {
|
|
21
|
-
messageMap.set(messageId, []);
|
|
22
|
-
}
|
|
23
|
-
messageMap.get(messageId).push(...content);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
// Create merged events with deduplicated content
|
|
27
|
-
const mergedEvents = Array.from(messageMap.entries()).map(([messageId, allContent]) => {
|
|
28
|
-
// Deduplicate content blocks by their ID (for tool_use) or text (for text blocks)
|
|
29
|
-
const seenBlocks = new Set();
|
|
30
|
-
const uniqueContent = [];
|
|
31
|
-
for (const block of allContent) {
|
|
32
|
-
const blockType = block.type;
|
|
33
|
-
let blockKey;
|
|
34
|
-
if (blockType === "tool_use") {
|
|
35
|
-
// Tool use blocks are unique by their ID
|
|
36
|
-
blockKey = `tool:${block.id}`;
|
|
37
|
-
}
|
|
38
|
-
else if (blockType === "text") {
|
|
39
|
-
// For text blocks, check if this is a prefix of or prefixed by existing text
|
|
40
|
-
// This handles incremental text updates where each snapshot has more content
|
|
41
|
-
const text = block.text;
|
|
42
|
-
let isDuplicate = false;
|
|
43
|
-
for (const seenKey of seenBlocks) {
|
|
44
|
-
if (seenKey.startsWith("text:")) {
|
|
45
|
-
const seenText = seenKey.substring(5);
|
|
46
|
-
// If existing text starts with this text, or this text starts with existing,
|
|
47
|
-
// keep only the longer one
|
|
48
|
-
if (seenText.startsWith(text)) {
|
|
49
|
-
// Existing is longer, this is a duplicate
|
|
50
|
-
isDuplicate = true;
|
|
51
|
-
break;
|
|
52
|
-
}
|
|
53
|
-
else if (text.startsWith(seenText)) {
|
|
54
|
-
// This is longer, remove the old one and add this
|
|
55
|
-
seenBlocks.delete(seenKey);
|
|
56
|
-
// Also remove from uniqueContent
|
|
57
|
-
const idx = uniqueContent.findIndex(b => b.type === "text" && b.text === seenText);
|
|
58
|
-
if (idx >= 0)
|
|
59
|
-
uniqueContent.splice(idx, 1);
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
if (isDuplicate)
|
|
65
|
-
continue;
|
|
66
|
-
blockKey = `text:${text}`;
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
blockKey = JSON.stringify(block);
|
|
70
|
-
}
|
|
71
|
-
if (!seenBlocks.has(blockKey)) {
|
|
72
|
-
seenBlocks.add(blockKey);
|
|
73
|
-
uniqueContent.push(block);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return {
|
|
77
|
-
type: "assistant",
|
|
78
|
-
message: {
|
|
79
|
-
id: messageId,
|
|
80
|
-
content: uniqueContent,
|
|
81
|
-
},
|
|
82
|
-
};
|
|
83
|
-
});
|
|
84
|
-
return mergedEvents.flatMap(event => eventToBlocks(event));
|
|
85
|
-
};
|
|
86
|
-
// Convert content blocks to lines of formatted text
|
|
87
|
-
const blocksToLines = (blocks) => {
|
|
88
|
-
const lines = [];
|
|
89
|
-
for (const block of blocks) {
|
|
90
|
-
const blockLines = formatContentBlock(block);
|
|
91
|
-
lines.push(...blockLines);
|
|
92
|
-
// Add blank line after each block
|
|
93
|
-
lines.push("");
|
|
94
|
-
}
|
|
95
|
-
return lines;
|
|
96
|
-
};
|
|
3
|
+
import { formatIterationHeader } from "../lib/formatIterationHeader.js";
|
|
4
|
+
import { processEvents } from "./processEvents.js";
|
|
5
|
+
import { blocksToLines } from "./blocksToLines.js";
|
|
97
6
|
export const EventDisplay = ({ events, iteration, completedIterations, height }) => {
|
|
98
7
|
// Scroll offset from bottom (0 = at bottom, positive = scrolled up)
|
|
99
8
|
const [scrollOffset, setScrollOffset] = useState(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventDisplay.js","sourceRoot":"","sources":["../../src/components/EventDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAA;AACzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"EventDisplay.js","sourceRoot":"","sources":["../../src/components/EventDisplay.tsx"],"names":[],"mappings":"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"}
|