devel/crush: OpenBSD patches
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
--- /dev/null
|
||||
Index: internal/oauth/claude/oauth.go
|
||||
--- internal/oauth/claude/oauth.go.orig
|
||||
+++ internal/oauth/claude/oauth.go
|
||||
@@ -0,0 +1,126 @@
|
||||
@@ -0,0 +1,131 @@
|
||||
+package claude
|
||||
+
|
||||
+import (
|
||||
@@ -17,19 +18,24 @@
|
||||
+ "github.com/charmbracelet/crush/internal/oauth"
|
||||
+)
|
||||
+
|
||||
+const clientId = "9d1c250a-e61b-44d9-88ed-5944d1962f5e"
|
||||
+const (
|
||||
+ clientId = "9d1c250a-e61b-44d9-88ed-5944d1962f5e"
|
||||
+ tokenURL = "https://platform.claude.com/v1/oauth/token"
|
||||
+ redirectURI = "https://platform.claude.com/oauth/code/callback"
|
||||
+)
|
||||
+
|
||||
+// AuthorizeURL returns the Claude Code Max OAuth2 authorization URL.
|
||||
+func AuthorizeURL(verifier, challenge string) (string, error) {
|
||||
+ u, err := url.Parse("https://claude.ai/oauth/authorize")
|
||||
+ u, err := url.Parse("https://platform.claude.com/oauth/authorize")
|
||||
+ if err != nil {
|
||||
+ return "", err
|
||||
+ }
|
||||
+ q := u.Query()
|
||||
+ q.Set("response_type", "code")
|
||||
+ q.Set("code", "true")
|
||||
+ q.Set("client_id", clientId)
|
||||
+ q.Set("redirect_uri", "https://console.anthropic.com/oauth/code/callback")
|
||||
+ q.Set("scope", "org:create_api_key user:profile user:inference")
|
||||
+ q.Set("response_type", "code")
|
||||
+ q.Set("redirect_uri", redirectURI)
|
||||
+ q.Set("scope", "org:create_api_key user:profile user:inference user:sessions:claude_code user:mcp_servers user:file_upload")
|
||||
+ q.Set("code_challenge", challenge)
|
||||
+ q.Set("code_challenge_method", "S256")
|
||||
+ q.Set("state", verifier)
|
||||
@@ -52,11 +58,11 @@
|
||||
+ "state": state,
|
||||
+ "grant_type": "authorization_code",
|
||||
+ "client_id": clientId,
|
||||
+ "redirect_uri": "https://console.anthropic.com/oauth/code/callback",
|
||||
+ "redirect_uri": redirectURI,
|
||||
+ "code_verifier": verifier,
|
||||
+ }
|
||||
+
|
||||
+ resp, err := request(ctx, "POST", "https://console.anthropic.com/v1/oauth/token", reqBody)
|
||||
+ resp, err := request(ctx, "POST", tokenURL, reqBody)
|
||||
+ if err != nil {
|
||||
+ return nil, err
|
||||
+ }
|
||||
@@ -87,7 +93,7 @@
|
||||
+ "client_id": clientId,
|
||||
+ }
|
||||
+
|
||||
+ resp, err := request(ctx, "POST", "https://console.anthropic.com/v1/oauth/token", reqBody)
|
||||
+ resp, err := request(ctx, "POST", tokenURL, reqBody)
|
||||
+ if err != nil {
|
||||
+ return nil, err
|
||||
+ }
|
||||
@@ -122,7 +128,7 @@
|
||||
+ }
|
||||
+
|
||||
+ req.Header.Set("Content-Type", "application/json")
|
||||
+ req.Header.Set("User-Agent", "anthropic")
|
||||
+ req.Header.Set("User-Agent", "claude-code/2.1.112")
|
||||
+
|
||||
+ client := &http.Client{Timeout: 30 * time.Second}
|
||||
+ return client.Do(req)
|
||||
|
||||
Reference in New Issue
Block a user