26 lines
1.0 KiB
Go
26 lines
1.0 KiB
Go
// Package app — composition root: конфигурация, DI, жизненный цикл процесса.
|
|
package app
|
|
|
|
// Config — конфигурация конвейера (env или config-файл).
|
|
type Config struct {
|
|
GiteaURL string
|
|
GiteaToken string
|
|
IssueRepo string
|
|
// TODO: Telegram, LiteLLM, SQLite (opencode.db), gateway, webhook secret.
|
|
}
|
|
|
|
// App — собранный конвейер (все зависимости).
|
|
type App struct {
|
|
Config Config
|
|
// TODO: *dialog.Controller, *gitea.Client, *opencode.Runner, ...
|
|
}
|
|
|
|
// New читает конфиг и собирает приложение. Стартовая заглушка.
|
|
func New(configPath string) (*App, error) {
|
|
var c Config
|
|
_ = configPath // TODO: загрузка из env/config
|
|
// TODO: слой failures/classes ошибок по конвенции проекта.
|
|
// Использовать в рантайме (например, лимиты диалога):
|
|
c.IssueRepo = "kamelion/ratatoskr-go" // placeholder
|
|
return &App{Config: c}, nil
|
|
} |