brainrot-cli 0.1.0 → 0.1.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/AchievementNotification.d.ts.map +1 -1
- package/dist/AchievementNotification.js.map +1 -1
- package/dist/DynamicInterviewFlow.d.ts +66 -0
- package/dist/DynamicInterviewFlow.d.ts.map +1 -0
- package/dist/DynamicInterviewFlow.js +352 -0
- package/dist/DynamicInterviewFlow.js.map +1 -0
- package/dist/FeaturePromptScreen.d.ts +24 -0
- package/dist/FeaturePromptScreen.d.ts.map +1 -0
- package/dist/FeaturePromptScreen.js +117 -0
- package/dist/FeaturePromptScreen.js.map +1 -0
- package/dist/GameSelector.d.ts +9 -1
- package/dist/GameSelector.d.ts.map +1 -1
- package/dist/GameSelector.js +116 -19
- package/dist/GameSelector.js.map +1 -1
- package/dist/HelpOverlay.d.ts.map +1 -1
- package/dist/HelpOverlay.js +5 -2
- package/dist/HelpOverlay.js.map +1 -1
- package/dist/InterviewQuestion.d.ts +36 -0
- package/dist/InterviewQuestion.d.ts.map +1 -0
- package/dist/InterviewQuestion.js +148 -0
- package/dist/InterviewQuestion.js.map +1 -0
- package/dist/Layout.d.ts +1 -1
- package/dist/Layout.d.ts.map +1 -1
- package/dist/Layout.js +4 -4
- package/dist/Layout.js.map +1 -1
- package/dist/LogViewer.d.ts.map +1 -1
- package/dist/LogViewer.js +2 -2
- package/dist/LogViewer.js.map +1 -1
- package/dist/LoopAlertOverlay.d.ts +1 -1
- package/dist/LoopAlertOverlay.d.ts.map +1 -1
- package/dist/LoopAlertOverlay.js +1 -1
- package/dist/LoopAlertOverlay.js.map +1 -1
- package/dist/LoopManagementPanel.d.ts.map +1 -1
- package/dist/LoopManagementPanel.js.map +1 -1
- package/dist/OnboardingTutorial.d.ts +23 -0
- package/dist/OnboardingTutorial.d.ts.map +1 -0
- package/dist/OnboardingTutorial.js +165 -0
- package/dist/OnboardingTutorial.js.map +1 -0
- package/dist/PrdGenerationScreen.d.ts +43 -0
- package/dist/PrdGenerationScreen.d.ts.map +1 -0
- package/dist/PrdGenerationScreen.js +411 -0
- package/dist/PrdGenerationScreen.js.map +1 -0
- package/dist/PrdOverlay.d.ts +29 -0
- package/dist/PrdOverlay.d.ts.map +1 -0
- package/dist/PrdOverlay.js +174 -0
- package/dist/PrdOverlay.js.map +1 -0
- package/dist/PreStartReviewScreen.d.ts +29 -0
- package/dist/PreStartReviewScreen.d.ts.map +1 -0
- package/dist/PreStartReviewScreen.js +161 -0
- package/dist/PreStartReviewScreen.js.map +1 -0
- package/dist/ResumeOverlay.d.ts +26 -0
- package/dist/ResumeOverlay.d.ts.map +1 -0
- package/dist/ResumeOverlay.js +163 -0
- package/dist/ResumeOverlay.js.map +1 -0
- package/dist/SettingsMenu.d.ts.map +1 -1
- package/dist/SettingsMenu.js +14 -7
- package/dist/SettingsMenu.js.map +1 -1
- package/dist/SetupWizard.d.ts +41 -0
- package/dist/SetupWizard.d.ts.map +1 -0
- package/dist/SetupWizard.js +167 -0
- package/dist/SetupWizard.js.map +1 -0
- package/dist/SplitPane.d.ts.map +1 -1
- package/dist/SplitPane.js +6 -2
- package/dist/SplitPane.js.map +1 -1
- package/dist/StatsMenu.d.ts.map +1 -1
- package/dist/StatsMenu.js +24 -6
- package/dist/StatsMenu.js.map +1 -1
- package/dist/StatusBar.d.ts +45 -2
- package/dist/StatusBar.d.ts.map +1 -1
- package/dist/StatusBar.js +193 -23
- package/dist/StatusBar.js.map +1 -1
- package/dist/TaskBreakdownScreen.d.ts +27 -0
- package/dist/TaskBreakdownScreen.d.ts.map +1 -0
- package/dist/TaskBreakdownScreen.js +96 -0
- package/dist/TaskBreakdownScreen.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +3 -1
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/games/MinesweeperGame.d.ts +1 -1
- package/dist/games/MinesweeperGame.d.ts.map +1 -1
- package/dist/games/MinesweeperGame.js +30 -10
- package/dist/games/MinesweeperGame.js.map +1 -1
- package/dist/games/PongGame.d.ts +1 -1
- package/dist/games/PongGame.d.ts.map +1 -1
- package/dist/games/PongGame.js +7 -2
- package/dist/games/PongGame.js.map +1 -1
- package/dist/games/SnakeGame.d.ts +1 -1
- package/dist/games/SnakeGame.d.ts.map +1 -1
- package/dist/games/SnakeGame.js +12 -4
- package/dist/games/SnakeGame.js.map +1 -1
- package/dist/games/TetrisGame.d.ts +1 -1
- package/dist/games/TetrisGame.d.ts.map +1 -1
- package/dist/games/TetrisGame.js +22 -5
- package/dist/games/TetrisGame.js.map +1 -1
- package/dist/high-scores.d.ts.map +1 -1
- package/dist/high-scores.js.map +1 -1
- package/dist/index.js +228 -15
- package/dist/index.js.map +1 -1
- package/dist/loop-state.d.ts +137 -0
- package/dist/loop-state.d.ts.map +1 -0
- package/dist/loop-state.js +228 -0
- package/dist/loop-state.js.map +1 -0
- package/dist/ralph-loop-parser.d.ts.map +1 -1
- package/dist/ralph-loop-parser.js +4 -2
- package/dist/ralph-loop-parser.js.map +1 -1
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js.map +1 -1
- package/dist/styled-components.d.ts +1 -1
- package/dist/styled-components.d.ts.map +1 -1
- package/dist/styled-components.js +5 -3
- package/dist/styled-components.js.map +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +15 -2
- package/dist/theme.js.map +1 -1
- package/dist/themes.d.ts.map +1 -1
- package/dist/themes.js.map +1 -1
- package/dist/use-claude-code.d.ts.map +1 -1
- package/dist/use-claude-code.js +7 -1
- package/dist/use-claude-code.js.map +1 -1
- package/dist/use-config.d.ts.map +1 -1
- package/dist/use-config.js.map +1 -1
- package/dist/use-loop-state.d.ts +55 -0
- package/dist/use-loop-state.d.ts.map +1 -0
- package/dist/use-loop-state.js +208 -0
- package/dist/use-loop-state.js.map +1 -0
- package/dist/use-stats.d.ts.map +1 -1
- package/dist/use-stats.js.map +1 -1
- package/dist/useTheme.d.ts.map +1 -1
- package/dist/useTheme.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/ralph-loop-parser.test.d.ts +0 -2
- package/dist/__tests__/ralph-loop-parser.test.d.ts.map +0 -1
- package/dist/__tests__/ralph-loop-parser.test.js +0 -143
- package/dist/__tests__/ralph-loop-parser.test.js.map +0 -1
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from "vitest";
|
|
2
|
-
import { createInitialState, parseOutput, parseOutputLines, needsUserAttention, getStatusMessage, getProgressString, } from "../ralph-loop-parser.js";
|
|
3
|
-
describe("ralph-loop-parser", () => {
|
|
4
|
-
describe("createInitialState", () => {
|
|
5
|
-
it("should create a state with idle status", () => {
|
|
6
|
-
const state = createInitialState();
|
|
7
|
-
expect(state.status).toBe("idle");
|
|
8
|
-
});
|
|
9
|
-
it("should create a state with no user attention needed", () => {
|
|
10
|
-
const state = createInitialState();
|
|
11
|
-
expect(state.userAttention.needed).toBe(false);
|
|
12
|
-
});
|
|
13
|
-
it("should create a state with zero progress", () => {
|
|
14
|
-
const state = createInitialState();
|
|
15
|
-
expect(state.progress.currentStep).toBe(0);
|
|
16
|
-
expect(state.progress.totalSteps).toBeNull();
|
|
17
|
-
});
|
|
18
|
-
});
|
|
19
|
-
describe("parseOutput", () => {
|
|
20
|
-
it("should detect loop started status", () => {
|
|
21
|
-
const state = createInitialState();
|
|
22
|
-
const newState = parseOutput("ralph loop started", state);
|
|
23
|
-
expect(newState.status).toBe("running");
|
|
24
|
-
});
|
|
25
|
-
it("should detect loop completed status", () => {
|
|
26
|
-
const state = createInitialState();
|
|
27
|
-
const newState = parseOutput("loop completed successfully", state);
|
|
28
|
-
expect(newState.status).toBe("completed");
|
|
29
|
-
});
|
|
30
|
-
it("should detect loop errored status", () => {
|
|
31
|
-
const state = createInitialState();
|
|
32
|
-
const newState = parseOutput("loop error: something went wrong", state);
|
|
33
|
-
expect(newState.status).toBe("errored");
|
|
34
|
-
});
|
|
35
|
-
it("should detect waiting for input status", () => {
|
|
36
|
-
const state = createInitialState();
|
|
37
|
-
const newState = parseOutput("waiting for user input", state);
|
|
38
|
-
expect(newState.status).toBe("waiting_for_input");
|
|
39
|
-
});
|
|
40
|
-
it("should parse step progress", () => {
|
|
41
|
-
const state = createInitialState();
|
|
42
|
-
const newState = parseOutput("Step 3 of 10", state);
|
|
43
|
-
expect(newState.progress.currentStep).toBe(3);
|
|
44
|
-
expect(newState.progress.totalSteps).toBe(10);
|
|
45
|
-
expect(newState.progress.percentage).toBe(30);
|
|
46
|
-
});
|
|
47
|
-
it("should parse todo progress", () => {
|
|
48
|
-
const state = createInitialState();
|
|
49
|
-
const newState = parseOutput("Todos: 5/20", state);
|
|
50
|
-
expect(newState.progress.currentStep).toBe(5);
|
|
51
|
-
expect(newState.progress.totalSteps).toBe(20);
|
|
52
|
-
expect(newState.progress.percentage).toBe(25);
|
|
53
|
-
});
|
|
54
|
-
it("should detect tool usage", () => {
|
|
55
|
-
const state = createInitialState();
|
|
56
|
-
const newState = parseOutput("using tool: ReadFile", state);
|
|
57
|
-
expect(newState.agentActivity.isActive).toBe(true);
|
|
58
|
-
expect(newState.agentActivity.toolName).toBe("ReadFile");
|
|
59
|
-
});
|
|
60
|
-
it("should detect error messages requiring attention", () => {
|
|
61
|
-
const state = createInitialState();
|
|
62
|
-
const newState = parseOutput("Error: file not found", state);
|
|
63
|
-
expect(newState.userAttention.needed).toBe(true);
|
|
64
|
-
expect(newState.userAttention.type).toBe("error");
|
|
65
|
-
});
|
|
66
|
-
it("should handle empty output gracefully", () => {
|
|
67
|
-
const state = createInitialState();
|
|
68
|
-
const newState = parseOutput("", state);
|
|
69
|
-
expect(newState).toEqual(state);
|
|
70
|
-
});
|
|
71
|
-
it("should strip ANSI escape sequences", () => {
|
|
72
|
-
const state = createInitialState();
|
|
73
|
-
const newState = parseOutput("\x1b[32mloop started\x1b[0m", state);
|
|
74
|
-
expect(newState.status).toBe("running");
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
describe("parseOutputLines", () => {
|
|
78
|
-
it("should accumulate state across multiple lines", () => {
|
|
79
|
-
const lines = ["ralph loop started", "Step 2 of 5", "using tool: Write"];
|
|
80
|
-
const state = parseOutputLines(lines);
|
|
81
|
-
expect(state.status).toBe("running");
|
|
82
|
-
expect(state.progress.currentStep).toBe(2);
|
|
83
|
-
expect(state.agentActivity.toolName).toBe("Write");
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
describe("needsUserAttention", () => {
|
|
87
|
-
it("should return true when userAttention.needed is true", () => {
|
|
88
|
-
const state = createInitialState();
|
|
89
|
-
state.userAttention.needed = true;
|
|
90
|
-
expect(needsUserAttention(state)).toBe(true);
|
|
91
|
-
});
|
|
92
|
-
it("should return true when status is waiting_for_input", () => {
|
|
93
|
-
const state = createInitialState();
|
|
94
|
-
state.status = "waiting_for_input";
|
|
95
|
-
expect(needsUserAttention(state)).toBe(true);
|
|
96
|
-
});
|
|
97
|
-
it("should return true when status is errored", () => {
|
|
98
|
-
const state = createInitialState();
|
|
99
|
-
state.status = "errored";
|
|
100
|
-
expect(needsUserAttention(state)).toBe(true);
|
|
101
|
-
});
|
|
102
|
-
it("should return false for normal running state", () => {
|
|
103
|
-
const state = createInitialState();
|
|
104
|
-
state.status = "running";
|
|
105
|
-
expect(needsUserAttention(state)).toBe(false);
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
describe("getStatusMessage", () => {
|
|
109
|
-
it("should return 'Ready to start' for idle status", () => {
|
|
110
|
-
const state = createInitialState();
|
|
111
|
-
expect(getStatusMessage(state)).toBe("Ready to start");
|
|
112
|
-
});
|
|
113
|
-
it("should return 'Completed' for completed status", () => {
|
|
114
|
-
const state = createInitialState();
|
|
115
|
-
state.status = "completed";
|
|
116
|
-
expect(getStatusMessage(state)).toBe("Completed");
|
|
117
|
-
});
|
|
118
|
-
it("should return current action when running with activity", () => {
|
|
119
|
-
const state = createInitialState();
|
|
120
|
-
state.status = "running";
|
|
121
|
-
state.agentActivity.currentAction = "Reading files";
|
|
122
|
-
expect(getStatusMessage(state)).toBe("Reading files");
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
describe("getProgressString", () => {
|
|
126
|
-
it("should return step progress format", () => {
|
|
127
|
-
const state = createInitialState();
|
|
128
|
-
state.progress.currentStep = 3;
|
|
129
|
-
state.progress.totalSteps = 10;
|
|
130
|
-
expect(getProgressString(state)).toBe("3/10");
|
|
131
|
-
});
|
|
132
|
-
it("should return percentage format when no total steps", () => {
|
|
133
|
-
const state = createInitialState();
|
|
134
|
-
state.progress.percentage = 75;
|
|
135
|
-
expect(getProgressString(state)).toBe("75%");
|
|
136
|
-
});
|
|
137
|
-
it("should return null when no progress info", () => {
|
|
138
|
-
const state = createInitialState();
|
|
139
|
-
expect(getProgressString(state)).toBeNull();
|
|
140
|
-
});
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
//# sourceMappingURL=ralph-loop-parser.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ralph-loop-parser.test.js","sourceRoot":"","sources":["../../src/__tests__/ralph-loop-parser.test.ts"],"names":[],"mappings":"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"}
|