From e9f70175710c6f54ca0fb68fc63538bde8f271c4 Mon Sep 17 00:00:00 2001 From: Hermes Date: Mon, 17 Aug 2026 11:36:49 +0500 Subject: [PATCH] =?UTF-8?q?debug:=20=D0=BB=D0=BE=D0=B3=D0=B8=D1=80=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D1=82=D1=8C=20=D1=85=D0=B2=D0=BE=D1=81=D1=82=20?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D0=B4=D0=B8=D0=BA=D1=82=D0=B0=20=D0=B0=D0=BD?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D1=82=D0=B8=D0=BA=D0=B0=20=D0=B8=20=D0=B8?= =?UTF-8?q?=D0=B7=D0=B2=D0=BB=D0=B5=D1=87=D1=91=D0=BD=D0=BD=D1=8B=D0=B9=20?= =?UTF-8?q?JSON=20(=D0=B4=D0=B8=D0=B0=D0=B3=D0=BD=D0=BE=D1=81=D1=82=D0=B8?= =?UTF-8?q?=D0=BA=D0=B0=20A3=20phase=3D"")?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/analyst/analyst.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/analyst/analyst.go b/internal/analyst/analyst.go index e019aaa..417c6f8 100644 --- a/internal/analyst/analyst.go +++ b/internal/analyst/analyst.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "log" "strings" "github.com/kamelion/ratatoskr-go/internal/core" @@ -11,6 +12,16 @@ import ( "github.com/kamelion/ratatoskr-go/internal/storage" ) +func truncate(s string, n int) string { + if len(s) <= n { + return s + } + if n <= 0 { + return "" + } + return s[len(s)-n:] +} + // OpenCodeRunner — интерфейс для запуска opencode (замена для тестов). type OpenCodeRunner interface { Run(ctx context.Context, prompt, cwd, agent, sessionID string) (*opencode.Result, error) @@ -80,7 +91,12 @@ func (a *Analyst) Decide(ctx context.Context, history []core.Message, draft stor // 4. парсим вердикт verdict := opencode.ExtractVerdict(res.Stdout) + log.Printf("analyst: verdict tail: %s", truncate(verdict, 2000)) obj, ok := opencode.ExtractJSON(verdict) + if ok { + b, _ := json.Marshal(obj) + log.Printf("analyst: extracted json: %s", truncate(string(b), 1000)) + } if !ok { return core.Decision{}, fmt.Errorf("%w: нет JSON в выводе аналитика", ErrDecodeFail) }