package claude import ( "context" "net/http" "ds2api/internal/auth" "ds2api/internal/config" dsclient "ds2api/internal/deepseek/client" ) type AuthResolver interface { Determine(req *http.Request) (*auth.RequestAuth, error) Release(a *auth.RequestAuth) } type DeepSeekCaller interface { CreateSession(ctx context.Context, a *auth.RequestAuth, maxAttempts int) (string, error) GetPow(ctx context.Context, a *auth.RequestAuth, maxAttempts int) (string, error) UploadFile(ctx context.Context, a *auth.RequestAuth, req dsclient.UploadFileRequest, maxAttempts int) (*dsclient.UploadFileResult, error) CallCompletion(ctx context.Context, a *auth.RequestAuth, payload map[string]any, powResp string, maxAttempts int) (*http.Response, error) } type ConfigReader interface { ModelAliases() map[string]string CurrentInputFileEnabled() bool CurrentInputFileMinChars() int } type OpenAIChatRunner interface { ChatCompletions(w http.ResponseWriter, r *http.Request) } var _ AuthResolver = (*auth.Resolver)(nil) var _ DeepSeekCaller = (*dsclient.Client)(nil) var _ ConfigReader = (*config.Store)(nil)