@@ -6,6 +6,11 @@ import { defaultTemplateConfig } from "@effect-template/lib/core/template-defaul
66import { parseGithubRepoUrl , parseGitlabRepoUrl } from "@effect-template/lib/core/repo"
77import { CommandFailedError } from "@effect-template/lib/shell/errors"
88import { authCodexLogin as runCodexLogin } from "@effect-template/lib/usecases/auth-codex"
9+ import {
10+ claudeAuthRoot ,
11+ resolveClaudeAccountPath ,
12+ resolveClaudeAuthMethod
13+ } from "@effect-template/lib/usecases/auth-claude"
914import { authGrokLogout as runGrokLogout } from "@effect-template/lib/usecases/auth-grok-logout"
1015import { authGitLogin as runGitLogin , authGitLogout as runGitLogout , listGitConnections } from "@effect-template/lib/usecases/auth-git"
1116import { authGitlabLogin as runGitlabLogin , authGitlabLogout as runGitlabLogout , listGitlabTokens } from "@effect-template/lib/usecases/auth-gitlab"
@@ -37,6 +42,7 @@ import type {
3742 CodexAuthLoginRequest ,
3843 CodexAuthLogoutRequest ,
3944 CodexAuthStatus ,
45+ ClaudeAuthStatus ,
4046 GrokAuthLogoutRequest ,
4147 GrokAuthStatus ,
4248 GitAuthLoginRequest ,
@@ -65,6 +71,7 @@ export const gitlabAuthRequiredMessage = [
6571] . join ( "\n" )
6672export const githubAuthEnvGlobalPath = defaultTemplateConfig . envGlobalPath
6773export const codexAuthPath = defaultTemplateConfig . codexAuthPath
74+ export const claudeAuthPath = claudeAuthRoot
6875export const grokAuthPath = defaultTemplateConfig . grokAuthPath
6976
7077const githubTokenKey = "GITHUB_TOKEN"
@@ -503,6 +510,20 @@ const codexAuthStatus = (
503510 account
504511} )
505512
513+ const claudeAuthStatus = (
514+ label : string ,
515+ authPath : string ,
516+ method : ClaudeAuthStatus [ "method" ]
517+ ) : ClaudeAuthStatus => ( {
518+ label,
519+ message : method === "none"
520+ ? `Claude not connected (${ label } ).`
521+ : `Claude connected (${ label } , ${ method } ).` ,
522+ connected : method !== "none" ,
523+ authPath,
524+ method
525+ } )
526+
506527const grokAuthStatus = (
507528 label : string ,
508529 authPath : string ,
@@ -517,6 +538,18 @@ const grokAuthStatus = (
517538 method
518539} )
519540
541+ export const readClaudeAuthStatus = (
542+ label ?: string | null | undefined
543+ ) : Effect . Effect < ClaudeAuthStatus , PlatformError , FileSystem . FileSystem | Path . Path > =>
544+ Effect . gen ( function * ( _ ) {
545+ const fs = yield * _ ( FileSystem . FileSystem )
546+ const path = yield * _ ( Path . Path )
547+ const rootPath = resolvePathFromCwd ( path , process . cwd ( ) , claudeAuthPath )
548+ const { accountLabel, accountPath } = resolveClaudeAccountPath ( path , rootPath , label ?? null )
549+ const method = yield * _ ( resolveClaudeAuthMethod ( fs , path , accountPath ) )
550+ return claudeAuthStatus ( accountLabel , accountPath , method )
551+ } )
552+
520553export const readGrokAuthStatus = (
521554 label ?: string | null | undefined
522555) : Effect . Effect < GrokAuthStatus , PlatformError , FileSystem . FileSystem | Path . Path > =>
0 commit comments