brainrot-cli 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/AppNew.d.ts +11 -0
  2. package/dist/AppNew.d.ts.map +1 -0
  3. package/dist/AppNew.js +437 -0
  4. package/dist/AppNew.js.map +1 -0
  5. package/dist/AttentionOverlay.d.ts +28 -0
  6. package/dist/AttentionOverlay.d.ts.map +1 -0
  7. package/dist/AttentionOverlay.js +92 -0
  8. package/dist/AttentionOverlay.js.map +1 -0
  9. package/dist/ClaudeChat.d.ts +38 -0
  10. package/dist/ClaudeChat.d.ts.map +1 -0
  11. package/dist/ClaudeChat.js +81 -0
  12. package/dist/ClaudeChat.js.map +1 -0
  13. package/dist/FeatureInput.d.ts +20 -0
  14. package/dist/FeatureInput.d.ts.map +1 -0
  15. package/dist/FeatureInput.js +66 -0
  16. package/dist/FeatureInput.js.map +1 -0
  17. package/dist/GameSelectScreen.d.ts +24 -0
  18. package/dist/GameSelectScreen.d.ts.map +1 -0
  19. package/dist/GameSelectScreen.js +78 -0
  20. package/dist/GameSelectScreen.js.map +1 -0
  21. package/dist/GameSelectorOverlay.d.ts +21 -0
  22. package/dist/GameSelectorOverlay.d.ts.map +1 -0
  23. package/dist/GameSelectorOverlay.js +98 -0
  24. package/dist/GameSelectorOverlay.js.map +1 -0
  25. package/dist/LoopComplete.d.ts +42 -0
  26. package/dist/LoopComplete.d.ts.map +1 -0
  27. package/dist/LoopComplete.js +69 -0
  28. package/dist/LoopComplete.js.map +1 -0
  29. package/dist/ResumePrompt.d.ts +32 -0
  30. package/dist/ResumePrompt.d.ts.map +1 -0
  31. package/dist/ResumePrompt.js +65 -0
  32. package/dist/ResumePrompt.js.map +1 -0
  33. package/dist/SidePanel.d.ts +26 -0
  34. package/dist/SidePanel.d.ts.map +1 -0
  35. package/dist/SidePanel.js +90 -0
  36. package/dist/SidePanel.js.map +1 -0
  37. package/dist/StatusBarMinimal.d.ts +26 -0
  38. package/dist/StatusBarMinimal.d.ts.map +1 -0
  39. package/dist/StatusBarMinimal.js +111 -0
  40. package/dist/StatusBarMinimal.js.map +1 -0
  41. package/dist/config.d.ts +11 -0
  42. package/dist/config.d.ts.map +1 -1
  43. package/dist/config.js +12 -0
  44. package/dist/config.js.map +1 -1
  45. package/dist/index.d.ts +6 -0
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +10 -449
  48. package/dist/index.js.map +1 -1
  49. package/package.json +3 -2
package/dist/index.js CHANGED
@@ -1,453 +1,14 @@
1
1
  #!/usr/bin/env node
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { render, Box, Text, useInput, useApp } from "ink";
4
- import { useState, useCallback, useMemo, useEffect, createContext, useContext, } from "react";
5
- import { useClaudeCode } from "./use-claude-code.js";
6
- import { useRalphLoopWithClaudeOutput } from "./use-ralph-loop.js";
7
- import { Layout, useTerminalSize } from "./Layout.js";
8
- import { LoopManagementPanel } from "./LoopManagementPanel.js";
9
- import { LogViewer } from "./LogViewer.js";
10
- import { GameSelector } from "./GameSelector.js";
11
- import { SettingsMenu } from "./SettingsMenu.js";
12
- import { StatsMenu } from "./StatsMenu.js";
13
- import { useAchievementNotifications } from "./AchievementNotification.js";
14
- import { getGameList, getGameById } from "./games/index.js";
15
- import { useConfig } from "./use-config.js";
16
- import { getLayoutOptions, getClaudeCodeOptions, deepMerge, saveConfig, } from "./config.js";
17
- import { parseCLI, printHelp, printVersion, printError } from "./cli.js";
18
- import { recordSessionStart } from "./stats.js";
19
- import { useLoopState, useLoopStateExists } from "./use-loop-state.js";
20
- import { ResumeOverlay } from "./ResumeOverlay.js";
21
- import { SetupWizard, } from "./SetupWizard.js";
22
- import { PrdOverlay } from "./PrdOverlay.js";
23
- import { ThemeProvider, useThemeColors } from "./useTheme.js";
24
- import { StatusBar, GameStatusProvider, useGameStatus, LoopInfoProvider, useLoopInfo, } from "./StatusBar.js";
25
- import { HelpOverlay } from "./HelpOverlay.js";
26
- // ============================================================================
27
- // CLI OVERRIDE CONTEXT
28
- // ============================================================================
29
- /**
30
- * Context for passing CLI overrides to the app
31
- */
32
- const CLIOverridesContext = createContext({});
2
+ import { jsx as _jsx } from "react/jsx-runtime";
33
3
  /**
34
- * Hook to access CLI overrides
4
+ * BrainRot CLI Entry Point
5
+ *
6
+ * A terminal-native CLI that wraps Claude Code with built-in games
7
+ * to play while agents work.
35
8
  */
36
- function useCLIOverrides() {
37
- return useContext(CLIOverridesContext);
38
- }
39
- /** Game area with mode switching between menu, logs, settings, stats, and active game */
40
- function GameArea({ logs, hasFocus, dimensions, loopAttention, onLoopAlertDismiss, config, onConfigChange, onConfigSave, onAchievementUnlock: _onAchievementUnlock, onGameStateChange, gamesEnabled, hasActiveLoop, onStartNewLoop, onViewCurrentLoop, }) {
41
- const [mode, setMode] = useState("menu");
42
- const [selectedGameId, setSelectedGameId] = useState(null);
43
- const colors = useThemeColors();
44
- const { setGameState, clearGameState } = useGameStatus();
45
- const games = useMemo(() => getGameList(), []);
46
- const handleSelectGame = useCallback((gameId) => {
47
- setSelectedGameId(gameId);
48
- setMode("game");
49
- // Set game name in status bar
50
- const gameInfo = getGameById(gameId);
51
- if (gameInfo) {
52
- setGameState({ gameId, gameName: gameInfo.info.name });
53
- }
54
- }, [setGameState]);
55
- const handleExitGame = useCallback(() => {
56
- setSelectedGameId(null);
57
- setMode("menu");
58
- // Clear game state from status bar
59
- clearGameState();
60
- }, [clearGameState]);
61
- const handleCloseSettings = useCallback(() => {
62
- setMode("menu");
63
- }, []);
64
- const handleOpenStats = useCallback(() => {
65
- setMode("stats");
66
- }, []);
67
- const handleCloseStats = useCallback(() => {
68
- setMode("menu");
69
- }, []);
70
- // Handle mode switching with keyboard
71
- useInput((input, key) => {
72
- if (!hasFocus)
73
- return;
74
- // Ctrl+, to open settings (from menu only)
75
- if (key.ctrl && input === "," && mode === "menu") {
76
- setMode("settings");
77
- return;
78
- }
79
- // 'L' to switch to logs view
80
- if ((input === "l" || input === "L") &&
81
- mode !== "game" &&
82
- mode !== "settings" &&
83
- mode !== "stats") {
84
- setMode(mode === "logs" ? "menu" : "logs");
85
- return;
86
- }
87
- // 'Q' or Escape to go back to menu from logs
88
- if ((input === "q" || input === "Q") && mode === "logs") {
89
- setMode("menu");
90
- return;
91
- }
92
- }, {
93
- isActive: hasFocus && mode !== "game" && mode !== "settings" && mode !== "stats",
94
- });
95
- // Render based on current mode
96
- if (mode === "logs") {
97
- return (_jsxs(Box, { flexDirection: "column", height: "100%", children: [_jsxs(Box, { paddingX: 1, marginBottom: 1, children: [_jsx(Text, { bold: true, color: colors.primary, children: "Live Logs" }), _jsx(Text, { dimColor: true, children: " | L: Back to Games | Q: Menu" })] }), _jsx(LogViewer, { logs: logs, hasFocus: hasFocus, initialViewMode: "condensed" })] }));
98
- }
99
- if (mode === "settings") {
100
- return (_jsx(SettingsMenu, { config: config, hasFocus: hasFocus, onConfigChange: onConfigChange, onSave: onConfigSave, onClose: handleCloseSettings }));
101
- }
102
- if (mode === "stats") {
103
- return _jsx(StatsMenu, { hasFocus: hasFocus, onClose: handleCloseStats });
104
- }
105
- if (mode === "game" && selectedGameId) {
106
- const gameEntry = getGameById(selectedGameId);
107
- if (gameEntry) {
108
- const GameComponent = gameEntry.component;
109
- return (_jsx(GameComponent, { hasFocus: hasFocus, dimensions: dimensions, onExit: handleExitGame, loopAttention: loopAttention, onLoopAlertDismiss: onLoopAlertDismiss, onGameStateChange: onGameStateChange }));
110
- }
111
- }
112
- // Default: show game selector menu
113
- return (_jsxs(Box, { flexDirection: "column", height: "100%", children: [_jsx(GameSelector, { games: games, hasFocus: hasFocus, dimensions: dimensions, onSelectGame: handleSelectGame, onOpenStats: handleOpenStats, gamesEnabled: gamesEnabled, hasActiveLoop: hasActiveLoop, onStartNewLoop: onStartNewLoop, onViewCurrentLoop: onViewCurrentLoop }), _jsx(Box, { paddingX: 1, children: _jsx(Text, { dimColor: true, children: "L: View Logs | Ctrl+,: Settings | N: Loop" }) })] }));
114
- }
115
- /** Header component */
116
- function Header() {
117
- const colors = useThemeColors();
118
- return (_jsxs(Box, { borderStyle: "round", borderColor: colors.primary, paddingX: 2, children: [_jsx(Text, { bold: true, color: colors.primary, children: "BRAINROT CLI" }), _jsx(Text, { children: " - " }), _jsx(Text, { children: "Play games while Claude Code works" })] }));
119
- }
120
- /** Status bar footer - needs to be inside GameStatusProvider */
121
- function StatusBarFooter({ loopStatus, needsAttention, hotkeyContext, }) {
122
- return (_jsx(StatusBar, { loopStatus: loopStatus, needsAttention: needsAttention, condensed: true, hotkeyContext: hotkeyContext }));
123
- }
124
- function AppContent() {
125
- const { exit } = useApp();
126
- const { config: fileConfig } = useConfig();
127
- const cliOverrides = useCLIOverrides();
128
- const { addAchievements, NotificationComponent, hasNotifications } = useAchievementNotifications();
129
- // Local config state for live preview (before saving)
130
- const [localConfigOverrides, setLocalConfigOverrides] = useState({});
131
- // Record session start on mount
132
- useEffect(() => {
133
- void recordSessionStart();
134
- }, []);
135
- // Merge: file config -> local overrides -> CLI overrides (CLI takes precedence)
136
- const config = useMemo(() => deepMerge(deepMerge(fileConfig, localConfigOverrides), cliOverrides), [fileConfig, localConfigOverrides, cliOverrides]);
137
- // Handle config changes from settings menu (immediate preview)
138
- const handleConfigChange = useCallback((updates) => {
139
- setLocalConfigOverrides((prev) => deepMerge(prev, updates));
140
- }, []);
141
- // Handle saving config to disk
142
- const handleConfigSave = useCallback(async () => {
143
- // Merge current file config with local overrides and save
144
- const configToSave = deepMerge(fileConfig, localConfigOverrides);
145
- await saveConfig(configToSave);
146
- // Clear local overrides since they're now persisted
147
- setLocalConfigOverrides({});
148
- }, [fileConfig, localConfigOverrides]);
149
- // Get config-derived options
150
- const layoutOptions = useMemo(() => getLayoutOptions(config), [config]);
151
- const claudeCodeOptions = useMemo(() => getClaudeCodeOptions(config), [config]);
152
- const { status, output, spawn, stop } = useClaudeCode(claudeCodeOptions);
153
- const [focusedPane, setFocusedPane] = useState(0);
154
- const [loopAlertDismissed, setLoopAlertDismissed] = useState(false);
155
- const [showHelpOverlay, setShowHelpOverlay] = useState(false);
156
- const [showSetupWizard, setShowSetupWizard] = useState(false);
157
- const [skipOnboarding, setSkipOnboarding] = useState(false);
158
- const [showResumeOverlay, setShowResumeOverlay] = useState(false);
159
- const [resumeOverlayDismissed, setResumeOverlayDismissed] = useState(false);
160
- const [showPrdOverlay, setShowPrdOverlay] = useState(false);
161
- const terminalSize = useTerminalSize();
162
- // Check if this is a first-time user (no existing loop state)
163
- const { exists: loopStateExists, isChecking: isCheckingLoopState } = useLoopStateExists();
164
- // Use loop state persistence - loads on startup and auto-saves changes
165
- const loopState = useLoopState();
166
- // Show setup wizard for first-time users
167
- // Show resume overlay for returning users with existing loop state
168
- useEffect(() => {
169
- // Only trigger after we've checked loop state existence
170
- if (!isCheckingLoopState && !resumeOverlayDismissed) {
171
- if (loopStateExists === false && !showSetupWizard) {
172
- // First-time user: show setup wizard (starts with onboarding)
173
- setSkipOnboarding(false);
174
- setShowSetupWizard(true);
175
- }
176
- else if (loopStateExists === true && loopState.hasLoop) {
177
- // Returning user with previous loop: show resume overlay
178
- setShowResumeOverlay(true);
179
- }
180
- }
181
- }, [
182
- isCheckingLoopState,
183
- loopStateExists,
184
- resumeOverlayDismissed,
185
- loopState.hasLoop,
186
- showSetupWizard,
187
- ]);
188
- // Handle setup wizard completion - start loop with collected data
189
- const handleSetupWizardComplete = useCallback((result) => {
190
- setShowSetupWizard(false);
191
- const { featureDescription, interviewResult, generatedPrd } = result;
192
- // Store the generated PRD and tasks in loop state
193
- loopState.setPrdAndTasks({
194
- name: featureDescription,
195
- description: generatedPrd.overview,
196
- content: generatedPrd.fullContent,
197
- raw: {
198
- interview: interviewResult,
199
- generated: generatedPrd,
200
- },
201
- }, generatedPrd.taskBreakdown);
202
- }, [loopState]);
203
- // Handle setup wizard cancellation
204
- const handleSetupWizardCancel = useCallback(() => {
205
- setShowSetupWizard(false);
206
- }, []);
207
- // Handle resume overlay action selection
208
- const handleResumeAction = useCallback((action) => {
209
- setShowResumeOverlay(false);
210
- setResumeOverlayDismissed(true);
211
- switch (action) {
212
- case "resume":
213
- // Resume the previous loop - just dismiss the overlay
214
- // The loop state is already loaded
215
- break;
216
- case "new":
217
- // Start a new loop - clear the existing state and show setup wizard
218
- loopState.clear();
219
- setSkipOnboarding(true); // Skip onboarding for returning users
220
- setShowSetupWizard(true);
221
- break;
222
- case "history":
223
- // View history - for now, dismiss and let user navigate to stats
224
- // In a more complete implementation, this could open a history view
225
- break;
226
- }
227
- }, [loopState]);
228
- // Use Ralph loop parsing for the output
229
- const ralphLoop = useRalphLoopWithClaudeOutput(output);
230
- // Sync Ralph loop status to persistent state when it changes
231
- useEffect(() => {
232
- if (ralphLoop.state.status !== loopState.state.loopStatus) {
233
- loopState.setLoopStatus(ralphLoop.state.status);
234
- }
235
- }, [ralphLoop.state.status, loopState]);
236
- // Use loop info context to update status bar
237
- const { setLoopInfo } = useLoopInfo();
238
- // Sync loop state to loop info context for status bar display
239
- useEffect(() => {
240
- const { tasks, progress, startedAt } = loopState.state;
241
- // Find the current task (in_progress status)
242
- const currentTask = tasks.find((t) => t.status === "in_progress") ?? null;
243
- setLoopInfo({
244
- currentTask,
245
- progress: progress.totalTasks > 0 ? progress : null,
246
- startedAt: tasks.length > 0 ? startedAt : null,
247
- });
248
- }, [loopState.state, setLoopInfo]);
249
- // Calculate game area dimensions (accounting for layout chrome)
250
- const gameDimensions = useMemo(() => {
251
- // Account for header (3), footer (2), help (1), borders, and split pane divider
252
- const availableHeight = Math.max(terminalSize.height - 8, 10);
253
- const availableWidth = Math.max(Math.floor(terminalSize.width * 0.5) - 4, 20);
254
- return { width: availableWidth, height: availableHeight };
255
- }, [terminalSize.width, terminalSize.height]);
256
- // Create loop attention object for games
257
- const loopAttention = useMemo(() => ({
258
- needsAttention: ralphLoop.needsAttention && !loopAlertDismissed,
259
- reason: ralphLoop.state.userAttention.reason,
260
- type: ralphLoop.state.userAttention.type,
261
- prompt: ralphLoop.state.userAttention.prompt,
262
- }), [
263
- ralphLoop.needsAttention,
264
- ralphLoop.state.userAttention,
265
- loopAlertDismissed,
266
- ]);
267
- // Reset dismiss state when attention changes
268
- const handleLoopAlertDismiss = useCallback(() => {
269
- setLoopAlertDismissed(true);
270
- }, []);
271
- // Toggle help overlay
272
- const handleToggleHelp = useCallback(() => {
273
- setShowHelpOverlay((prev) => !prev);
274
- }, []);
275
- // Close help overlay
276
- const handleCloseHelp = useCallback(() => {
277
- setShowHelpOverlay(false);
278
- }, []);
279
- // Toggle PRD overlay
280
- const handleTogglePrdOverlay = useCallback(() => {
281
- setShowPrdOverlay((prev) => !prev);
282
- }, []);
283
- // Close PRD overlay
284
- const handleClosePrdOverlay = useCallback(() => {
285
- setShowPrdOverlay(false);
286
- }, []);
287
- // Handle PRD overlay action
288
- const handlePrdOverlayAction = useCallback((action) => {
289
- setShowPrdOverlay(false);
290
- switch (action) {
291
- case "resume":
292
- // Resume the loop - just close the overlay
293
- break;
294
- case "new_loop":
295
- // Clear existing loop and start setup wizard
296
- loopState.clear();
297
- setSkipOnboarding(true); // Skip onboarding for users starting new loops
298
- setShowSetupWizard(true);
299
- break;
300
- case "full_prd":
301
- // For now, just close - could open a detailed PRD view in the future
302
- break;
303
- }
304
- }, [loopState]);
305
- // Reset dismiss state when a new attention request comes in
306
- useEffect(() => {
307
- if (ralphLoop.needsAttention) {
308
- setLoopAlertDismissed(false);
309
- }
310
- }, [
311
- ralphLoop.needsAttention,
312
- ralphLoop.state.userAttention.reason,
313
- ralphLoop.state.userAttention.prompt,
314
- ]);
315
- useInput((input, key) => {
316
- // Ctrl+C always works to exit
317
- if (key.ctrl && input === "c") {
318
- void stop().then(() => exit());
319
- return;
320
- }
321
- // When setup wizard or resume overlay is shown, only handle Ctrl+C (above)
322
- // These components handle their own keyboard input
323
- if (showSetupWizard || showResumeOverlay) {
324
- return;
325
- }
326
- // Help overlay toggle with ? key (works globally)
327
- if (input === "?") {
328
- handleToggleHelp();
329
- return;
330
- }
331
- // PRD overlay toggle with P key (works globally when no other modal is open)
332
- if ((input === "p" || input === "P") && !showHelpOverlay) {
333
- handleTogglePrdOverlay();
334
- return;
335
- }
336
- // When help overlay is shown, only handle escape and ? to close
337
- if (showHelpOverlay) {
338
- if (key.escape) {
339
- handleCloseHelp();
340
- }
341
- return;
342
- }
343
- // When PRD overlay is shown, only handle escape and P to close
344
- if (showPrdOverlay) {
345
- if (key.escape) {
346
- handleClosePrdOverlay();
347
- }
348
- return;
349
- }
350
- if (key.ctrl && input === "s") {
351
- // Toggle start/stop with Ctrl+S
352
- if (status === "idle" || status === "stopped" || status === "crashed") {
353
- spawn();
354
- }
355
- else if (status === "running") {
356
- void stop();
357
- }
358
- return;
359
- }
360
- // Track focus changes via Tab key
361
- if (key.tab) {
362
- setFocusedPane((current) => (current === 0 ? 1 : 0));
363
- return;
364
- }
365
- });
366
- // Handler for game state updates from games
367
- const { setGameState } = useGameStatus();
368
- const handleGameStateChange = useCallback((update) => {
369
- setGameState(update);
370
- }, [setGameState]);
371
- // Handler for starting a new loop from game selector menu
372
- const handleStartNewLoop = useCallback(() => {
373
- // Clear any existing loop state and start setup wizard
374
- loopState.clear();
375
- setSkipOnboarding(true); // Skip onboarding for users starting new loops
376
- setShowSetupWizard(true);
377
- }, [loopState]);
378
- // Handler for viewing current loop from game selector menu
379
- const handleViewCurrentLoop = useCallback(() => {
380
- // Show the PRD overlay to view current loop details
381
- setShowPrdOverlay(true);
382
- }, []);
383
- // Determine effective loop status for status bar
384
- const effectiveLoopStatus = useMemo(() => {
385
- // If process is running, use ralph loop status, otherwise use process status
386
- if (status === "running") {
387
- return ralphLoop.state.status;
388
- }
389
- return status;
390
- }, [status, ralphLoop.state.status]);
391
- // Determine if games are enabled (only after explicit loop start)
392
- // Games are disabled during: setup wizard, resume overlay
393
- // Games are enabled only after explicit loop start (user completes setup wizard)
394
- const gamesEnabled = useMemo(() => {
395
- // Games are disabled during any setup flow
396
- if (showSetupWizard || showResumeOverlay) {
397
- return false;
398
- }
399
- // Games are enabled only when there's an active loop with tasks
400
- // (set by handleSetupWizardComplete or by resuming an existing loop)
401
- return loopState.hasLoop && loopState.state.tasks.length > 0;
402
- }, [showSetupWizard, showResumeOverlay, loopState.hasLoop, loopState.state.tasks.length]);
403
- // Determine current hotkey context for status bar
404
- const currentHotkeyContext = useMemo(() => {
405
- // Setup wizard (interview/onboarding flows) take highest priority
406
- if (showSetupWizard) {
407
- return "interview";
408
- }
409
- // Overlays/modals
410
- if (showHelpOverlay || showPrdOverlay || showResumeOverlay) {
411
- return "overlay";
412
- }
413
- // Loop is active and running
414
- if (status === "running") {
415
- return "loop";
416
- }
417
- // Default state - game context is auto-detected by StatusBar based on gameState
418
- return "default";
419
- }, [showSetupWizard, showHelpOverlay, showPrdOverlay, showResumeOverlay, status]);
420
- return (_jsxs(ThemeProvider, { config: config, children: [showSetupWizard && (_jsx(Box, { position: "absolute", width: terminalSize.width, height: terminalSize.height, flexDirection: "column", alignItems: "center", justifyContent: "center", children: _jsx(SetupWizard, { isVisible: showSetupWizard, skipOnboarding: skipOnboarding, onComplete: handleSetupWizardComplete, onCancel: handleSetupWizardCancel, hasFocus: showSetupWizard, dimensions: {
421
- width: terminalSize.width,
422
- height: terminalSize.height,
423
- } }) })), showResumeOverlay && !showSetupWizard && (_jsx(Box, { position: "absolute", width: terminalSize.width, height: terminalSize.height, flexDirection: "column", alignItems: "center", justifyContent: "center", children: _jsx(ResumeOverlay, { isVisible: showResumeOverlay, loopState: loopState.state, onAction: handleResumeAction, hasFocus: showResumeOverlay, dimensions: {
424
- width: terminalSize.width,
425
- height: terminalSize.height,
426
- } }) })), showPrdOverlay && !showSetupWizard && !showResumeOverlay && (_jsx(Box, { position: "absolute", width: terminalSize.width, height: terminalSize.height, flexDirection: "column", alignItems: "center", justifyContent: "center", children: _jsx(PrdOverlay, { isVisible: showPrdOverlay, loopState: loopState.state, onAction: handlePrdOverlayAction, onClose: handleClosePrdOverlay, hasFocus: showPrdOverlay, dimensions: {
427
- width: terminalSize.width,
428
- height: terminalSize.height,
429
- } }) })), showHelpOverlay &&
430
- !showSetupWizard &&
431
- !showResumeOverlay &&
432
- !showPrdOverlay && (_jsx(Box, { position: "absolute", marginTop: 1, marginLeft: 2, children: _jsx(HelpOverlay, { hasFocus: showHelpOverlay, onClose: handleCloseHelp }) })), hasNotifications &&
433
- !showSetupWizard &&
434
- !showResumeOverlay &&
435
- !showPrdOverlay && (_jsx(Box, { position: "absolute", marginTop: 3, marginLeft: 5, children: NotificationComponent })), _jsx(Layout, { gameArea: _jsx(GameArea, { logs: output, hasFocus: focusedPane === 0 &&
436
- !showHelpOverlay &&
437
- !showSetupWizard &&
438
- !showResumeOverlay &&
439
- !showPrdOverlay, dimensions: gameDimensions, loopAttention: loopAttention, onLoopAlertDismiss: handleLoopAlertDismiss, config: config, onConfigChange: handleConfigChange, onConfigSave: handleConfigSave, onAchievementUnlock: addAchievements, onGameStateChange: handleGameStateChange, gamesEnabled: gamesEnabled, hasActiveLoop: loopState.hasLoop && loopState.state.tasks.length > 0, onStartNewLoop: handleStartNewLoop, onViewCurrentLoop: handleViewCurrentLoop }), managementArea: _jsx(LoopManagementPanel, { loopState: ralphLoop.state, needsAttention: ralphLoop.needsAttention, statusMessage: ralphLoop.statusMessage, progressString: ralphLoop.progressString, processStatus: status, onStart: spawn, onStop: () => void stop() }), gameTitle: "Games", managementTitle: "Loop Management", header: _jsx(Header, {}), footer: _jsx(StatusBarFooter, { loopStatus: effectiveLoopStatus, needsAttention: ralphLoop.needsAttention, hotkeyContext: currentHotkeyContext }), layoutOptions: layoutOptions, handleInput: !showHelpOverlay &&
440
- !showSetupWizard &&
441
- !showResumeOverlay &&
442
- !showPrdOverlay })] }));
443
- }
444
- /** App wrapper that provides GameStatusProvider and LoopInfoProvider context */
445
- function App() {
446
- return (_jsx(GameStatusProvider, { children: _jsx(LoopInfoProvider, { children: _jsx(AppContent, {}) }) }));
447
- }
448
- // ============================================================================
449
- // CLI PARSING AND STARTUP
450
- // ============================================================================
9
+ import { render } from "ink";
10
+ import { parseCLI, printHelp, printVersion, printError } from "./cli.js";
11
+ import { AppNew } from "./AppNew.js";
451
12
  /**
452
13
  * Main entry point - parses CLI args and renders the app
453
14
  */
@@ -469,8 +30,8 @@ function main() {
469
30
  printVersion();
470
31
  process.exit(0);
471
32
  }
472
- // Render the app with CLI overrides
473
- render(_jsx(CLIOverridesContext.Provider, { value: args.overrides, children: _jsx(App, {}) }));
33
+ // Render the app
34
+ render(_jsx(AppNew, {}));
474
35
  }
475
36
  // Run main
476
37
  main();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;AACA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;GAEG;AACH,SAAS,IAAI;IACX,sBAAsB;IACtB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAEnC,wBAAwB;IACxB,IAAI,KAAK,EAAE,CAAC;QACV,UAAU,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wBAAwB;IACxB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,iBAAiB;IACjB,MAAM,CAAC,KAAC,MAAM,KAAG,CAAC,CAAC;AACrB,CAAC;AAED,WAAW;AACX,IAAI,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "brainrot-cli",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "A terminal-native CLI that wraps Claude Code with built-in games to play while agents work",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -54,5 +54,6 @@
54
54
  "typescript": "^5.9.3",
55
55
  "typescript-eslint": "^8.53.0",
56
56
  "vitest": "^4.0.17"
57
- }
57
+ },
58
+ "packageManager": "pnpm@10.27.0+sha512.72d699da16b1179c14ba9e64dc71c9a40988cbdc65c264cb0e489db7de917f20dcf4d64d8723625f2969ba52d4b7e2a1170682d9ac2a5dcaeaab732b7e16f04a"
58
59
  }