patchwork-os 1.2.0-beta.2.canary.593 → 1.2.0-beta.2.canary.594

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.
@@ -20,6 +20,22 @@
20
20
  * CLAUDE_CODE_OAUTH_TOKEN=<token> so the subprocess driver works.
21
21
  */
22
22
  import type { IncomingMessage, ServerResponse } from "node:http";
23
+ /**
24
+ * Turn whatever the user pasted into `{ code, state }`.
25
+ *
26
+ * Anthropic's callback page renders the value as `<code>#<state>`, and users
27
+ * variously paste that verbatim, paste just the code, or paste the entire
28
+ * callback URL out of the address bar. All three must work.
29
+ *
30
+ * `state` matters: /v1/oauth/token rejects a body without it as
31
+ * `invalid_request_error / "Invalid request format"` — verified against the
32
+ * live endpoint 2026-08-12. Sending only `code` failed for every user, which
33
+ * is why the flow never worked regardless of what was pasted.
34
+ */
35
+ export declare function parsePastedAuthCode(raw: string): {
36
+ code: string;
37
+ state?: string;
38
+ };
23
39
  export declare function handleClaudeAuthStart(_req: IncomingMessage, res: ServerResponse): Promise<void>;
24
40
  export declare function handleClaudeAuthComplete(req: IncomingMessage, res: ServerResponse): Promise<void>;
25
41
  export declare function handleClaudeAuthCancel(req: IncomingMessage, res: ServerResponse): Promise<void>;
@@ -23,7 +23,13 @@ import { createHash, randomBytes } from "node:crypto";
23
23
  // ---------------------------------------------------------------------------
24
24
  // Constants (extracted from the claude binary via strings analysis)
25
25
  // ---------------------------------------------------------------------------
26
- const CLAUDE_OAUTH_CLIENT_ID = "https://claude.ai/oauth/claude-code-client-metadata";
26
+ // Claude Code's public OAuth client id. It must be a UUID: claude.ai's
27
+ // /oauth/authorize rejects a non-UUID client_id ("Input should be a valid
28
+ // UUID") and renders an "OAuth Request Failed" page, so the client-metadata
29
+ // URL that used to live here made the flow unreachable before the user could
30
+ // even approve. Public by design — an OAuth public client id is an
31
+ // identifier, not a secret; PKCE is what protects the exchange.
32
+ const CLAUDE_OAUTH_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
27
33
  const CLAUDE_OAUTH_AUTH_URL = "https://claude.com/cai/oauth/authorize";
28
34
  const CLAUDE_OAUTH_TOKEN_URL = "https://api.anthropic.com/v1/oauth/token";
29
35
  const CLAUDE_OAUTH_REDIRECT_URI = "https://platform.claude.com/oauth/code/callback";
@@ -56,6 +62,45 @@ function deriveCodeChallenge(verifier) {
56
62
  return createHash("sha256").update(verifier).digest("base64url");
57
63
  }
58
64
  // ---------------------------------------------------------------------------
65
+ // Pasted-value normalisation
66
+ // ---------------------------------------------------------------------------
67
+ /**
68
+ * Turn whatever the user pasted into `{ code, state }`.
69
+ *
70
+ * Anthropic's callback page renders the value as `<code>#<state>`, and users
71
+ * variously paste that verbatim, paste just the code, or paste the entire
72
+ * callback URL out of the address bar. All three must work.
73
+ *
74
+ * `state` matters: /v1/oauth/token rejects a body without it as
75
+ * `invalid_request_error / "Invalid request format"` — verified against the
76
+ * live endpoint 2026-08-12. Sending only `code` failed for every user, which
77
+ * is why the flow never worked regardless of what was pasted.
78
+ */
79
+ export function parsePastedAuthCode(raw) {
80
+ const trimmed = raw.trim();
81
+ // Full callback URL — pull code/state out of the query string.
82
+ if (/^https?:\/\//i.test(trimmed)) {
83
+ try {
84
+ const url = new URL(trimmed);
85
+ const code = url.searchParams.get("code")?.trim();
86
+ const state = url.searchParams.get("state")?.trim();
87
+ if (code)
88
+ return { code, state: state || undefined };
89
+ }
90
+ catch {
91
+ // Not a parseable URL — fall through to the `#` handling below.
92
+ }
93
+ }
94
+ // `<code>#<state>` — the shape the callback page displays.
95
+ const hash = trimmed.indexOf("#");
96
+ if (hash !== -1) {
97
+ const code = trimmed.slice(0, hash).trim();
98
+ const state = trimmed.slice(hash + 1).trim();
99
+ return { code, state: state || undefined };
100
+ }
101
+ return { code: trimmed };
102
+ }
103
+ // ---------------------------------------------------------------------------
59
104
  // Body reader (reuse the same pattern as the bridge's other POST handlers)
60
105
  // ---------------------------------------------------------------------------
61
106
  async function readBody(req) {
@@ -157,6 +202,19 @@ export async function handleClaudeAuthComplete(req, res) {
157
202
  // Audit 2026-06-08 HIGH (auth-1): bound the fetch with an AbortController so a
158
203
  // slow/hung Anthropic endpoint can't keep the HTTP connection + session open
159
204
  // indefinitely. Map an abort to a 504 (distinct from a 502 network error).
205
+ // The pasted value may be `<code>#<state>`, a bare code, or the whole
206
+ // callback URL. Fall back to the session id for `state` — that is what we
207
+ // put in the authorize URL, so it round-trips correctly when the user pasted
208
+ // only the code half.
209
+ const { code: authCode, state: pastedState } = parsePastedAuthCode(code);
210
+ if (!authCode) {
211
+ jsonReply(res, 400, {
212
+ error: "missing_fields",
213
+ detail: "sessionId and code required",
214
+ });
215
+ return;
216
+ }
217
+ const authState = pastedState ?? session.sessionId;
160
218
  let tokenRes;
161
219
  const controller = new AbortController();
162
220
  const timeout = setTimeout(() => controller.abort(), TOKEN_EXCHANGE_TIMEOUT_MS);
@@ -167,7 +225,8 @@ export async function handleClaudeAuthComplete(req, res) {
167
225
  body: new URLSearchParams({
168
226
  grant_type: "authorization_code",
169
227
  client_id: CLAUDE_OAUTH_CLIENT_ID,
170
- code: code.trim(),
228
+ code: authCode,
229
+ state: authState,
171
230
  redirect_uri: CLAUDE_OAUTH_REDIRECT_URI,
172
231
  code_verifier: session.codeVerifier,
173
232
  }).toString(),
@@ -1 +1 @@
1
- {"version":3,"file":"claudeAuthHttp.js","sourceRoot":"","sources":["../src/claudeAuthHttp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claudeAuthHttp.js","sourceRoot":"","sources":["../src/claudeAuthHttp.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "patchwork-os",
3
- "version": "1.2.0-beta.2.canary.593",
3
+ "version": "1.2.0-beta.2.canary.594",
4
4
  "description": "Your personal AI runtime, local-first. Patchwork OS gives any AI model a consistent set of tools, YAML recipes, a delegation policy with approval queue, and a durable trace memory — all on your machine, all under your policy.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",