Files
ratatoskr-go/internal/app/app.go
Hermes 53cf901707
All checks were successful
build-test / build (push) Successful in 47s
ratatoskr-go: стартовый каркас (Go-бинарь, CI, structure)
2026-08-14 08:53:57 +05:00

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
}