MCPcopy Create free account
hub / github.com/anus-dev/ANUS / App

Function App

packages/cli/src/ui/App.tsx:130–1224  ·  view source on GitHub ↗
({ config, settings, startupWarnings = [], version }: AppProps)

Source from the content-addressed store, hash-verified

128};
129
130const App = ({ config, settings, startupWarnings = [], version }: AppProps) => {
131 const isFocused = useFocus();
132 useBracketedPaste();
133 const [updateInfo, setUpdateInfo] = useState<UpdateObject | null>(null);
134 const { stdout } = useStdout();
135 const nightly = version.includes('nightly');
136 const { history, addItem, clearItems, loadHistory } = useHistory();
137
138 const [idePromptAnswered, setIdePromptAnswered] = useState(false);
139 const currentIDE = config.getIdeClient().getCurrentIde();
140 useEffect(() => {
141 registerCleanup(() => config.getIdeClient().disconnect());
142 }, [config]);
143 const shouldShowIdePrompt =
144 currentIDE &&
145 !config.getIdeMode() &&
146 !settings.merged.hasSeenIdeIntegrationNudge &&
147 !idePromptAnswered;
148
149 useEffect(() => {
150 const cleanup = setUpdateHandler(addItem, setUpdateInfo);
151 return cleanup;
152 }, [addItem]);
153
154 const {
155 consoleMessages,
156 handleNewMessage,
157 clearConsoleMessages: clearConsoleMessagesState,
158 } = useConsoleMessages();
159
160 useEffect(() => {
161 const consolePatcher = new ConsolePatcher({
162 onNewMessage: handleNewMessage,
163 debugMode: config.getDebugMode(),
164 });
165 consolePatcher.patch();
166 registerCleanup(consolePatcher.cleanup);
167 }, [handleNewMessage, config]);
168
169 const { stats: sessionStats } = useSessionStats();
170 const [staticNeedsRefresh, setStaticNeedsRefresh] = useState(false);
171 const [staticKey, setStaticKey] = useState(0);
172 const refreshStatic = useCallback(() => {
173 stdout.write(ansiEscapes.clearTerminal);
174 setStaticKey((prev) => prev + 1);
175 }, [setStaticKey, stdout]);
176
177 const [anusMdFileCount, setAnusMdFileCount] = useState<number>(0);
178 const [debugMessage, setDebugMessage] = useState<string>('');
179 const [themeError, setThemeError] = useState<string | null>(null);
180 const [authError, setAuthError] = useState<string | null>(null);
181 const [editorError, setEditorError] = useState<string | null>(null);
182 const [footerHeight, setFooterHeight] = useState<number>(0);
183 const [corgiMode, setCorgiMode] = useState(false);
184 const [isTrustedFolderState, setIsTrustedFolder] = useState(
185 config.isTrustedFolder(),
186 );
187 const [currentModel, setCurrentModel] = useState(config.getModel());

Callers

nothing calls this directly

Calls 15

patchMethod · 0.95
registerCleanupFunction · 0.90
useFocusFunction · 0.85
useBracketedPasteFunction · 0.85
useHistoryFunction · 0.85
setUpdateHandlerFunction · 0.85
useConsoleMessagesFunction · 0.85
useSessionStatsFunction · 0.85
useThemeCommandFunction · 0.85
useSettingsCommandFunction · 0.85
useFolderTrustFunction · 0.85
useAuthCommandFunction · 0.85

Tested by

no test coverage detected