mirror of
https://github.com/cexll/myclaude.git
synced 2026-02-06 02:34:09 +08:00
- Move all source files to internal/{app,backend,config,executor,logger,parser,utils}
- Integrate third-party libraries: zerolog, goccy/go-json, gopsutil, cobra/viper
- Add comprehensive unit tests for utils package (94.3% coverage)
- Add performance benchmarks for string operations
- Fix error display: cleanup warnings no longer pollute Recent Errors
- Add GitHub Actions CI workflow
- Add Makefile for build automation
- Add README documentation
Generated with SWE-Agent.ai
Co-Authored-By: SWE-Agent.ai <noreply@swe-agent.ai>
34 lines
853 B
Go
34 lines
853 B
Go
package backend
|
|
|
|
import config "codeagent-wrapper/internal/config"
|
|
|
|
// Backend defines the contract for invoking different AI CLI backends.
|
|
// Each backend is responsible for supplying the executable command and
|
|
// building the argument list based on the wrapper config.
|
|
type Backend interface {
|
|
Name() string
|
|
BuildArgs(cfg *config.Config, targetArg string) []string
|
|
Command() string
|
|
Env(baseURL, apiKey string) map[string]string
|
|
}
|
|
|
|
var (
|
|
logWarnFn = func(string) {}
|
|
logErrorFn = func(string) {}
|
|
)
|
|
|
|
// SetLogFuncs configures optional logging hooks used by some backends.
|
|
// Callers can safely pass nil to disable the hook.
|
|
func SetLogFuncs(warnFn, errorFn func(string)) {
|
|
if warnFn != nil {
|
|
logWarnFn = warnFn
|
|
} else {
|
|
logWarnFn = func(string) {}
|
|
}
|
|
if errorFn != nil {
|
|
logErrorFn = errorFn
|
|
} else {
|
|
logErrorFn = func(string) {}
|
|
}
|
|
}
|