gsd-pi 2.69.0 → 2.70.0-dev.55a1c68

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.
Files changed (196) hide show
  1. package/dist/resources/extensions/gsd/bootstrap/system-context.js +6 -2
  2. package/dist/resources/extensions/gsd/commands-cmux.js +30 -1
  3. package/dist/resources/extensions/gsd/workflow-mcp.js +53 -6
  4. package/dist/web/standalone/.next/BUILD_ID +1 -1
  5. package/dist/web/standalone/.next/app-path-routes-manifest.json +11 -11
  6. package/dist/web/standalone/.next/build-manifest.json +3 -3
  7. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  8. package/dist/web/standalone/.next/required-server-files.json +3 -3
  9. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  10. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  11. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  12. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  13. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  14. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  15. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  16. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  17. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  18. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  19. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  20. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  21. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  22. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  23. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  24. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  26. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  29. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  30. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  31. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  32. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  33. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  34. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  35. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  36. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  37. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  38. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  39. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  40. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  41. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  42. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  43. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  44. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  45. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  46. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  47. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  48. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  49. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  50. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  51. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  52. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  53. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  54. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  55. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  56. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  57. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  58. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  59. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  60. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  61. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  62. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  63. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  64. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  65. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  66. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  67. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  68. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  69. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  70. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  71. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  72. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  73. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  74. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  75. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  76. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  77. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  78. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  79. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  80. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  81. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  82. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  83. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  84. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  85. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  86. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  87. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  88. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  89. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  90. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  91. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  92. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  93. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  94. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  95. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  96. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  97. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
  98. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  99. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  100. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  101. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +1 -1
  102. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  103. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +2 -2
  104. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  105. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  106. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  107. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  108. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  109. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  110. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  111. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  112. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  113. package/dist/web/standalone/.next/server/app/index.html +1 -1
  114. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  115. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  116. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  117. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  118. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  119. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  120. package/dist/web/standalone/.next/server/app/page.js +2 -2
  121. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  122. package/dist/web/standalone/.next/server/app-paths-manifest.json +11 -11
  123. package/dist/web/standalone/.next/server/chunks/63.js +3 -3
  124. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  125. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  126. package/dist/web/standalone/.next/server/middleware.js +2 -2
  127. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  128. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  129. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  130. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  131. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  132. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  133. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  134. package/dist/web/standalone/.next/static/chunks/app/page-f1e30ab6bb269149.js +1 -0
  135. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  136. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  137. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  138. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  139. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  140. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  141. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  142. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  143. package/dist/web/standalone/server.js +1 -1
  144. package/package.json +1 -1
  145. package/packages/daemon/src/orchestrator.ts +9 -84
  146. package/packages/mcp-server/README.md +25 -3
  147. package/packages/mcp-server/dist/cli.d.ts +0 -1
  148. package/packages/mcp-server/dist/cli.d.ts.map +1 -1
  149. package/packages/mcp-server/dist/cli.js +4 -2
  150. package/packages/mcp-server/dist/cli.js.map +1 -1
  151. package/packages/mcp-server/dist/server.d.ts +32 -1
  152. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  153. package/packages/mcp-server/dist/server.js +118 -1
  154. package/packages/mcp-server/dist/server.js.map +1 -1
  155. package/packages/mcp-server/dist/tool-credentials.d.ts +6 -0
  156. package/packages/mcp-server/dist/tool-credentials.d.ts.map +1 -0
  157. package/packages/mcp-server/dist/tool-credentials.js +90 -0
  158. package/packages/mcp-server/dist/tool-credentials.js.map +1 -0
  159. package/packages/mcp-server/dist/workflow-tools.d.ts +1 -0
  160. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  161. package/packages/mcp-server/dist/workflow-tools.js +274 -2
  162. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  163. package/packages/mcp-server/src/cli.ts +5 -3
  164. package/packages/mcp-server/src/mcp-server.test.ts +85 -1
  165. package/packages/mcp-server/src/server.ts +188 -1
  166. package/packages/mcp-server/src/tool-credentials.test.ts +95 -0
  167. package/packages/mcp-server/src/tool-credentials.ts +97 -0
  168. package/packages/mcp-server/src/workflow-tools.test.ts +32 -25
  169. package/packages/mcp-server/src/workflow-tools.ts +365 -2
  170. package/packages/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  171. package/packages/pi-ai/dist/providers/anthropic.js +1 -23
  172. package/packages/pi-ai/dist/providers/anthropic.js.map +1 -1
  173. package/packages/pi-ai/dist/utils/oauth/index.d.ts +3 -2
  174. package/packages/pi-ai/dist/utils/oauth/index.d.ts.map +1 -1
  175. package/packages/pi-ai/dist/utils/oauth/index.js +3 -5
  176. package/packages/pi-ai/dist/utils/oauth/index.js.map +1 -1
  177. package/packages/pi-ai/src/providers/anthropic.ts +1 -31
  178. package/packages/pi-ai/src/utils/oauth/index.ts +3 -5
  179. package/packages/pi-coding-agent/package.json +1 -1
  180. package/pkg/package.json +1 -1
  181. package/src/resources/extensions/gsd/bootstrap/system-context.ts +9 -5
  182. package/src/resources/extensions/gsd/commands-cmux.ts +32 -1
  183. package/src/resources/extensions/gsd/tests/cmux.test.ts +67 -1
  184. package/src/resources/extensions/gsd/tests/mcp-project-config.test.ts +6 -2
  185. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +23 -7
  186. package/src/resources/extensions/gsd/workflow-mcp.ts +59 -5
  187. package/dist/web/standalone/.next/static/chunks/app/page-7115e62689b5fd84.js +0 -1
  188. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  189. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  190. package/packages/pi-ai/dist/utils/oauth/anthropic.d.ts +0 -17
  191. package/packages/pi-ai/dist/utils/oauth/anthropic.d.ts.map +0 -1
  192. package/packages/pi-ai/dist/utils/oauth/anthropic.js +0 -106
  193. package/packages/pi-ai/dist/utils/oauth/anthropic.js.map +0 -1
  194. package/packages/pi-ai/src/utils/oauth/anthropic.ts +0 -140
  195. /package/dist/web/standalone/.next/static/{DrWdzskk28E5Qz-Wjw1mj → 0CnmwCBOy-QNRFzdWLB7Q}/_buildManifest.js +0 -0
  196. /package/dist/web/standalone/.next/static/{DrWdzskk28E5Qz-Wjw1mj → 0CnmwCBOy-QNRFzdWLB7Q}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/utils/oauth/anthropic.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Anthropic OAuth flow (Claude Pro/Max)\n */\n\nimport { generatePKCE } from \"./pkce.js\";\nimport type { OAuthCredentials, OAuthLoginCallbacks, OAuthProviderInterface } from \"./types.js\";\n\nconst decode = (s: string) => atob(s);\nconst CLIENT_ID = decode(\"OWQxYzI1MGEtZTYxYi00NGQ5LTg4ZWQtNTk0NGQxOTYyZjVl\");\nconst AUTHORIZE_URL = \"https://claude.ai/oauth/authorize\";\nconst TOKEN_URL = \"https://platform.claude.com/v1/oauth/token\";\nconst REDIRECT_URI = \"https://platform.claude.com/oauth/code/callback\";\nconst SCOPES = \"org:create_api_key user:profile user:inference\";\n\n/**\n * Login with Anthropic OAuth (device code flow)\n *\n * @param onAuthUrl - Callback to handle the authorization URL (e.g., open browser)\n * @param onPromptCode - Callback to prompt user for the authorization code\n */\nexport async function loginAnthropic(\n\tonAuthUrl: (url: string) => void,\n\tonPromptCode: () => Promise<string>,\n): Promise<OAuthCredentials> {\n\tconst { verifier, challenge } = await generatePKCE();\n\n\t// Build authorization URL\n\tconst authParams = new URLSearchParams({\n\t\tcode: \"true\",\n\t\tclient_id: CLIENT_ID,\n\t\tresponse_type: \"code\",\n\t\tredirect_uri: REDIRECT_URI,\n\t\tscope: SCOPES,\n\t\tcode_challenge: challenge,\n\t\tcode_challenge_method: \"S256\",\n\t\tstate: verifier,\n\t});\n\n\tconst authUrl = `${AUTHORIZE_URL}?${authParams.toString()}`;\n\n\t// Notify caller with URL to open\n\tonAuthUrl(authUrl);\n\n\t// Wait for user to paste authorization code (format: code#state)\n\tconst authCode = await onPromptCode();\n\tconst splits = authCode.split(\"#\");\n\tconst code = splits[0];\n\tconst state = splits[1];\n\n\t// Exchange code for tokens\n\tconst tokenResponse = await fetch(TOKEN_URL, {\n\t\tmethod: \"POST\",\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t},\n\t\tbody: JSON.stringify({\n\t\t\tgrant_type: \"authorization_code\",\n\t\t\tclient_id: CLIENT_ID,\n\t\t\tcode: code,\n\t\t\tstate: state,\n\t\t\tredirect_uri: REDIRECT_URI,\n\t\t\tcode_verifier: verifier,\n\t\t}),\n\t\tsignal: AbortSignal.timeout(30_000),\n\t});\n\n\tif (!tokenResponse.ok) {\n\t\tconst error = await tokenResponse.text();\n\t\tthrow new Error(`Token exchange failed: ${error}`);\n\t}\n\n\tconst tokenData = (await tokenResponse.json()) as {\n\t\taccess_token: string;\n\t\trefresh_token: string;\n\t\texpires_in: number;\n\t};\n\n\t// Calculate expiry time (current time + expires_in seconds - 5 min buffer)\n\tconst expiresAt = Date.now() + tokenData.expires_in * 1000 - 5 * 60 * 1000;\n\n\t// Save credentials\n\treturn {\n\t\trefresh: tokenData.refresh_token,\n\t\taccess: tokenData.access_token,\n\t\texpires: expiresAt,\n\t};\n}\n\n/**\n * Refresh Anthropic OAuth token\n */\nexport async function refreshAnthropicToken(refreshToken: string): Promise<OAuthCredentials> {\n\tconst response = await fetch(TOKEN_URL, {\n\t\tmethod: \"POST\",\n\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\tbody: JSON.stringify({\n\t\t\tgrant_type: \"refresh_token\",\n\t\t\tclient_id: CLIENT_ID,\n\t\t\trefresh_token: refreshToken,\n\t\t}),\n\t\tsignal: AbortSignal.timeout(30_000),\n\t});\n\n\tif (!response.ok) {\n\t\tconst error = await response.text();\n\t\tthrow new Error(`Anthropic token refresh failed: ${error}`);\n\t}\n\n\tconst data = (await response.json()) as {\n\t\taccess_token: string;\n\t\trefresh_token: string;\n\t\texpires_in: number;\n\t};\n\n\treturn {\n\t\trefresh: data.refresh_token,\n\t\taccess: data.access_token,\n\t\texpires: Date.now() + data.expires_in * 1000 - 5 * 60 * 1000,\n\t};\n}\n\nexport const anthropicOAuthProvider: OAuthProviderInterface = {\n\tid: \"anthropic\",\n\tname: \"Anthropic (Claude Pro/Max)\",\n\n\tasync login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials> {\n\t\treturn loginAnthropic(\n\t\t\t(url) => callbacks.onAuth({ url }),\n\t\t\t() => callbacks.onPrompt({ message: \"Paste the authorization code:\" }),\n\t\t);\n\t},\n\n\tasync refreshToken(credentials: OAuthCredentials): Promise<OAuthCredentials> {\n\t\treturn refreshAnthropicToken(credentials.refresh);\n\t},\n\n\tgetApiKey(credentials: OAuthCredentials): string {\n\t\treturn credentials.access;\n\t},\n};\n"]}
@@ -1,140 +0,0 @@
1
- /**
2
- * Anthropic OAuth flow (Claude Pro/Max)
3
- */
4
-
5
- import { generatePKCE } from "./pkce.js";
6
- import type { OAuthCredentials, OAuthLoginCallbacks, OAuthProviderInterface } from "./types.js";
7
-
8
- const decode = (s: string) => atob(s);
9
- const CLIENT_ID = decode("OWQxYzI1MGEtZTYxYi00NGQ5LTg4ZWQtNTk0NGQxOTYyZjVl");
10
- const AUTHORIZE_URL = "https://claude.ai/oauth/authorize";
11
- const TOKEN_URL = "https://platform.claude.com/v1/oauth/token";
12
- const REDIRECT_URI = "https://platform.claude.com/oauth/code/callback";
13
- const SCOPES = "org:create_api_key user:profile user:inference";
14
-
15
- /**
16
- * Login with Anthropic OAuth (device code flow)
17
- *
18
- * @param onAuthUrl - Callback to handle the authorization URL (e.g., open browser)
19
- * @param onPromptCode - Callback to prompt user for the authorization code
20
- */
21
- export async function loginAnthropic(
22
- onAuthUrl: (url: string) => void,
23
- onPromptCode: () => Promise<string>,
24
- ): Promise<OAuthCredentials> {
25
- const { verifier, challenge } = await generatePKCE();
26
-
27
- // Build authorization URL
28
- const authParams = new URLSearchParams({
29
- code: "true",
30
- client_id: CLIENT_ID,
31
- response_type: "code",
32
- redirect_uri: REDIRECT_URI,
33
- scope: SCOPES,
34
- code_challenge: challenge,
35
- code_challenge_method: "S256",
36
- state: verifier,
37
- });
38
-
39
- const authUrl = `${AUTHORIZE_URL}?${authParams.toString()}`;
40
-
41
- // Notify caller with URL to open
42
- onAuthUrl(authUrl);
43
-
44
- // Wait for user to paste authorization code (format: code#state)
45
- const authCode = await onPromptCode();
46
- const splits = authCode.split("#");
47
- const code = splits[0];
48
- const state = splits[1];
49
-
50
- // Exchange code for tokens
51
- const tokenResponse = await fetch(TOKEN_URL, {
52
- method: "POST",
53
- headers: {
54
- "Content-Type": "application/json",
55
- },
56
- body: JSON.stringify({
57
- grant_type: "authorization_code",
58
- client_id: CLIENT_ID,
59
- code: code,
60
- state: state,
61
- redirect_uri: REDIRECT_URI,
62
- code_verifier: verifier,
63
- }),
64
- signal: AbortSignal.timeout(30_000),
65
- });
66
-
67
- if (!tokenResponse.ok) {
68
- const error = await tokenResponse.text();
69
- throw new Error(`Token exchange failed: ${error}`);
70
- }
71
-
72
- const tokenData = (await tokenResponse.json()) as {
73
- access_token: string;
74
- refresh_token: string;
75
- expires_in: number;
76
- };
77
-
78
- // Calculate expiry time (current time + expires_in seconds - 5 min buffer)
79
- const expiresAt = Date.now() + tokenData.expires_in * 1000 - 5 * 60 * 1000;
80
-
81
- // Save credentials
82
- return {
83
- refresh: tokenData.refresh_token,
84
- access: tokenData.access_token,
85
- expires: expiresAt,
86
- };
87
- }
88
-
89
- /**
90
- * Refresh Anthropic OAuth token
91
- */
92
- export async function refreshAnthropicToken(refreshToken: string): Promise<OAuthCredentials> {
93
- const response = await fetch(TOKEN_URL, {
94
- method: "POST",
95
- headers: { "Content-Type": "application/json" },
96
- body: JSON.stringify({
97
- grant_type: "refresh_token",
98
- client_id: CLIENT_ID,
99
- refresh_token: refreshToken,
100
- }),
101
- signal: AbortSignal.timeout(30_000),
102
- });
103
-
104
- if (!response.ok) {
105
- const error = await response.text();
106
- throw new Error(`Anthropic token refresh failed: ${error}`);
107
- }
108
-
109
- const data = (await response.json()) as {
110
- access_token: string;
111
- refresh_token: string;
112
- expires_in: number;
113
- };
114
-
115
- return {
116
- refresh: data.refresh_token,
117
- access: data.access_token,
118
- expires: Date.now() + data.expires_in * 1000 - 5 * 60 * 1000,
119
- };
120
- }
121
-
122
- export const anthropicOAuthProvider: OAuthProviderInterface = {
123
- id: "anthropic",
124
- name: "Anthropic (Claude Pro/Max)",
125
-
126
- async login(callbacks: OAuthLoginCallbacks): Promise<OAuthCredentials> {
127
- return loginAnthropic(
128
- (url) => callbacks.onAuth({ url }),
129
- () => callbacks.onPrompt({ message: "Paste the authorization code:" }),
130
- );
131
- },
132
-
133
- async refreshToken(credentials: OAuthCredentials): Promise<OAuthCredentials> {
134
- return refreshAnthropicToken(credentials.refresh);
135
- },
136
-
137
- getApiKey(credentials: OAuthCredentials): string {
138
- return credentials.access;
139
- },
140
- };