Implement real Audita polish stage

This commit is contained in:
2026-05-04 08:05:27 -05:00
parent 28c7ab3287
commit de11651528
8 changed files with 677 additions and 22 deletions

View File

@@ -66,7 +66,11 @@ func executeStages(ctx context.Context, cfg *config.Config, stages []stage.Stage
env.Seriatim = runner
}
if env.Audita == nil {
env.Audita = &audita.NoopRunner{}
runner, err := buildDefaultAuditaRunner(env.Config)
if err != nil {
return nil, fmt.Errorf("initialize audita runner: %w", err)
}
env.Audita = runner
}
if env.Analyzer == nil {
env.Analyzer = &analyzer.NoopRunner{}
@@ -217,6 +221,40 @@ func buildDefaultSeriatimRunner(cfg *config.Config) (seriatim.Runner, error) {
return runner, nil
}
func buildDefaultAuditaRunner(cfg *config.Config) (audita.Runner, error) {
if cfg == nil || cfg.Pipeline == nil {
return &audita.NoopRunner{}, nil
}
a := cfg.Pipeline.Audita
if strings.TrimSpace(a.Binary) == "" || strings.TrimSpace(a.Timeout) == "" || strings.TrimSpace(a.LLMAPIKeyEnv) == "" || len(a.Modules) == 0 || strings.TrimSpace(a.BaseURL) == "" || strings.TrimSpace(a.Model) == "" {
// Compatibility fallback for tests or internal call paths that bypass config validation/defaults.
return &audita.NoopRunner{}, nil
}
report := false
if a.Report != nil {
report = *a.Report
}
runner, err := audita.NewSubprocessRunnerFromConfigValues(
a.Binary,
a.Timeout,
a.LLMAPIKeyEnv,
append([]string(nil), a.Modules...),
a.BaseURL,
a.Model,
a.LLMConcurrency,
a.ValidationModel,
a.ValidationLLMConcurrency,
report,
)
if err != nil {
return nil, fmt.Errorf("from pipeline.audita: %w", err)
}
return runner, nil
}
func loadOrCreateManifest(ctx context.Context, store manifest.Store, path, sessionID string) (*manifest.Manifest, error) {
exists, err := fileExists(path)
if err != nil {