| package shared |
|
|
| import ( |
| "context" |
| "net/http" |
|
|
| "ds2api/internal/account" |
| "ds2api/internal/auth" |
| "ds2api/internal/config" |
| dsclient "ds2api/internal/deepseek/client" |
| ) |
|
|
| type ConfigStore interface { |
| Snapshot() config.Config |
| Keys() []string |
| Accounts() []config.Account |
| FindAccount(identifier string) (config.Account, bool) |
| UpdateAccountToken(identifier, token string) error |
| UpdateAccountTestStatus(identifier, status string) error |
| AccountTestStatus(identifier string) (string, bool) |
| Update(mutator func(*config.Config) error) error |
| ExportJSONAndBase64() (string, string, error) |
| IsEnvBacked() bool |
| IsEnvWritebackEnabled() bool |
| HasEnvConfigSource() bool |
| ConfigPath() string |
| SetVercelSync(hash string, ts int64) error |
| AdminPasswordHash() string |
| AdminJWTExpireHours() int |
| AdminJWTValidAfterUnix() int64 |
| RuntimeAccountMaxInflight() int |
| RuntimeAccountMaxQueue(defaultSize int) int |
| RuntimeGlobalMaxInflight(defaultSize int) int |
| RuntimeTokenRefreshIntervalHours() int |
| AutoDeleteMode() string |
| CurrentInputFileEnabled() bool |
| CurrentInputFileMinChars() int |
| ThinkingInjectionEnabled() bool |
| ThinkingInjectionPrompt() string |
| AutoDeleteSessions() bool |
| } |
|
|
| type PoolController interface { |
| Reset() |
| Status() map[string]any |
| ApplyRuntimeLimits(maxInflightPerAccount, maxQueueSize, globalMaxInflight int) |
| } |
|
|
| type OpenAIChatCaller interface { |
| ChatCompletions(w http.ResponseWriter, r *http.Request) |
| } |
|
|
| type DeepSeekCaller interface { |
| Login(ctx context.Context, acc config.Account) (string, error) |
| CreateSession(ctx context.Context, a *auth.RequestAuth, maxAttempts int) (string, error) |
| GetPow(ctx context.Context, a *auth.RequestAuth, maxAttempts int) (string, error) |
| CallCompletion(ctx context.Context, a *auth.RequestAuth, payload map[string]any, powResp string, maxAttempts int) (*http.Response, error) |
| GetSessionCountForToken(ctx context.Context, token string) (*dsclient.SessionStats, error) |
| DeleteAllSessionsForToken(ctx context.Context, token string) error |
| } |
|
|
| var _ ConfigStore = (*config.Store)(nil) |
| var _ PoolController = (*account.Pool)(nil) |
| var _ DeepSeekCaller = (*dsclient.Client)(nil) |
|
|