internal/analyst: Decider через opencode (A1–A4)
All checks were successful
build-test / build (push) Successful in 1m15s
All checks were successful
build-test / build (push) Successful in 1m15s
- Analyst struct: строит Go-template промпт из history+draft - opencode.Runner.Run (agent=analyst) → ExtractVerdict → ExtractJSON - Валидация phase/полей → core.Decision - A1 DecodeFail, A2 RunError, A3 Validation, A4 NotReady - MockRunner в тестах (11 тестов, зелёные) - core.runDecide оборачивает ошибки аналитика в D1 ErrDecideFailed - allow ready→collecting (фикс для правки готового черновика)
This commit is contained in:
@@ -2,6 +2,7 @@ package core
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/kamelion/ratatoskr-go/internal/storage"
|
||||
@@ -301,7 +302,7 @@ func (c *Core) runDecide(ctx context.Context, task *storage.Task, force bool) (R
|
||||
|
||||
decision, err := c.Decide.Decide(ctx, msgs, *task, force)
|
||||
if err != nil {
|
||||
return Result{}, err
|
||||
return Result{}, fmt.Errorf("%w: %v", ErrDecideFailed, err)
|
||||
}
|
||||
|
||||
switch decision.Phase {
|
||||
|
||||
Reference in New Issue
Block a user