mirror of
https://github.com/laoxong/nofx.git
synced 2026-06-04 01:48:22 +08:00
8e294a5eed
- Delete llm/ dead code (3 files, zero references) - Split mcp/ into sub-packages: mcp/provider/ (8 providers) and mcp/payment/ (4 payment clients) with registry pattern - Export Client internal fields and ClientHooks interface for sub-package access - Split api/server.go (3892 lines) into 8 domain-specific handler files - Split trader/auto_trader.go (2296 lines) into 5 focused files - Reorganize web/src/components/ flat files into auth/, charts/, trader/, common/, modals/, backtest/ subdirectories - Update all consumer imports to use registry-based provider creation
21 lines
683 B
Go
21 lines
683 B
Go
package mcp
|
|
|
|
// providerRegistry maps provider names to factory functions.
|
|
var providerRegistry = map[string]func(...ClientOption) AIClient{}
|
|
|
|
// RegisterProvider registers a provider factory function.
|
|
// Called by provider/payment sub-packages in their init() functions.
|
|
func RegisterProvider(name string, factory func(...ClientOption) AIClient) {
|
|
providerRegistry[name] = factory
|
|
}
|
|
|
|
// NewAIClientByProvider creates an AIClient by provider name using the registry.
|
|
// Returns nil if the provider is not registered.
|
|
func NewAIClientByProvider(name string, opts ...ClientOption) AIClient {
|
|
factory, ok := providerRegistry[name]
|
|
if !ok {
|
|
return nil
|
|
}
|
|
return factory(opts...)
|
|
}
|