feat: default OAuth config for claude.com, merge UI polish rendering
This commit is contained in:
@@ -28,7 +28,7 @@ use runtime::{
|
||||
parse_oauth_callback_request_target, save_oauth_credentials, ApiClient, ApiRequest,
|
||||
AssistantEvent, CompactionConfig, ConfigLoader, ConfigSource, ContentBlock,
|
||||
ConversationMessage, ConversationRuntime, MessageRole, OAuthAuthorizationRequest,
|
||||
OAuthTokenExchangeRequest, PermissionMode, PermissionPolicy, ProjectContext, RuntimeError,
|
||||
OAuthConfig, OAuthTokenExchangeRequest, PermissionMode, PermissionPolicy, ProjectContext, RuntimeError,
|
||||
Session, TokenUsage, ToolError, ToolExecutor, UsageTracker,
|
||||
};
|
||||
use serde_json::json;
|
||||
@@ -428,15 +428,26 @@ fn print_bootstrap_plan() {
|
||||
}
|
||||
}
|
||||
|
||||
fn default_oauth_config() -> OAuthConfig {
|
||||
OAuthConfig {
|
||||
client_id: String::from("9d1c250a-e61b-44d9-88ed-5944d1962f5e"),
|
||||
authorize_url: String::from("https://platform.claude.com/oauth/authorize"),
|
||||
token_url: String::from("https://platform.claude.com/v1/oauth/token"),
|
||||
callback_port: None,
|
||||
manual_redirect_url: None,
|
||||
scopes: vec![
|
||||
String::from("user:profile"),
|
||||
String::from("user:inference"),
|
||||
String::from("user:sessions:claude_code"),
|
||||
],
|
||||
}
|
||||
}
|
||||
|
||||
fn run_login() -> Result<(), Box<dyn std::error::Error>> {
|
||||
let cwd = env::current_dir()?;
|
||||
let config = ConfigLoader::default_for(&cwd).load()?;
|
||||
let oauth = config.oauth().ok_or_else(|| {
|
||||
io::Error::new(
|
||||
io::ErrorKind::NotFound,
|
||||
"OAuth config is missing. Add settings.oauth.clientId/authorizeUrl/tokenUrl first.",
|
||||
)
|
||||
})?;
|
||||
let default_oauth = default_oauth_config();
|
||||
let oauth = config.oauth().unwrap_or(&default_oauth);
|
||||
let callback_port = oauth.callback_port.unwrap_or(DEFAULT_OAUTH_CALLBACK_PORT);
|
||||
let redirect_uri = runtime::loopback_redirect_uri(callback_port);
|
||||
let pkce = generate_pkce_pair()?;
|
||||
|
||||
Reference in New Issue
Block a user