mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-30 06:12:03 +00:00
Merge branch 'main' into refactor-features-into-directories
This commit is contained in:
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
#added by trueheads > will remove once supercombo adds multi-os support
|
||||
launch.sh
|
||||
@@ -163,15 +163,18 @@ export function SettingsView() {
|
||||
hasOpenAIKey: boolean;
|
||||
hasGoogleKey: boolean;
|
||||
} | null>(null);
|
||||
const [editingShortcut, setEditingShortcut] = useState<
|
||||
keyof KeyboardShortcuts | null
|
||||
>(null);
|
||||
const [editingShortcut, setEditingShortcut] = useState<string | null>(null);
|
||||
const [shortcutValue, setShortcutValue] = useState("");
|
||||
const [shortcutError, setShortcutError] = useState<string | null>(null);
|
||||
const scrollContainerRef = useRef<HTMLDivElement>(null);
|
||||
|
||||
// Get authentication status from setup store
|
||||
const { claudeAuthStatus, codexAuthStatus } = useSetupStore();
|
||||
const {
|
||||
claudeAuthStatus,
|
||||
codexAuthStatus,
|
||||
setClaudeAuthStatus,
|
||||
setCodexAuthStatus,
|
||||
} = useSetupStore();
|
||||
|
||||
useEffect(() => {
|
||||
setAnthropicKey(apiKeys.anthropic);
|
||||
@@ -213,9 +216,57 @@ export function SettingsView() {
|
||||
console.error("Failed to check API key status:", error);
|
||||
}
|
||||
}
|
||||
|
||||
// Check Claude auth status (re-fetch on mount to ensure persistence)
|
||||
if (api?.setup?.getClaudeStatus) {
|
||||
try {
|
||||
const result = await api.setup.getClaudeStatus();
|
||||
if (result.success && result.auth) {
|
||||
// Cast to any because runtime API returns more properties than type definition
|
||||
const auth = result.auth as any;
|
||||
const authStatus = {
|
||||
authenticated: auth.authenticated,
|
||||
method:
|
||||
auth.method === "oauth_token"
|
||||
? "oauth"
|
||||
: auth.method?.includes("api_key")
|
||||
? "api_key"
|
||||
: "none",
|
||||
hasCredentialsFile: false,
|
||||
oauthTokenValid: auth.hasStoredOAuthToken,
|
||||
apiKeyValid: auth.hasStoredApiKey || auth.hasEnvApiKey,
|
||||
};
|
||||
setClaudeAuthStatus(authStatus as any);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Failed to check Claude auth status:", error);
|
||||
}
|
||||
}
|
||||
|
||||
// Check Codex auth status (re-fetch on mount to ensure persistence)
|
||||
if (api?.setup?.getCodexStatus) {
|
||||
try {
|
||||
const result = await api.setup.getCodexStatus();
|
||||
if (result.success && result.auth) {
|
||||
// Cast to any because runtime API returns more properties than type definition
|
||||
const auth = result.auth as any;
|
||||
setCodexAuthStatus({
|
||||
authenticated: auth.authenticated,
|
||||
method: auth.hasEnvApiKey
|
||||
? "env"
|
||||
: auth.hasStoredApiKey
|
||||
? "api_key"
|
||||
: "none",
|
||||
apiKeyValid: auth.hasStoredApiKey || auth.hasEnvApiKey,
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
console.error("Failed to check Codex auth status:", error);
|
||||
}
|
||||
}
|
||||
};
|
||||
checkCliStatus();
|
||||
}, []);
|
||||
}, [setClaudeAuthStatus, setCodexAuthStatus]);
|
||||
|
||||
// Track scroll position to highlight active nav item
|
||||
useEffect(() => {
|
||||
|
||||
Reference in New Issue
Block a user