From c4e1430bf28dbf2662c31cf4bb31be0db8572bf1 Mon Sep 17 00:00:00 2001 From: Ettore Di Giacinto Date: Sat, 14 Feb 2026 21:44:17 +0100 Subject: [PATCH] chore: bump cogito Adapt to new API and drop call to Ask() Signed-off-by: Ettore Di Giacinto --- .github/gallery-agent/agent.go | 2 +- core/http/endpoints/localai/mcp.go | 16 -------- .../http/endpoints/openresponses/responses.go | 38 ------------------- core/services/agent_jobs.go | 13 +------ go.mod | 2 +- go.sum | 2 + 6 files changed, 5 insertions(+), 68 deletions(-) diff --git a/.github/gallery-agent/agent.go b/.github/gallery-agent/agent.go index 7a40f717b..096496cfe 100644 --- a/.github/gallery-agent/agent.go +++ b/.github/gallery-agent/agent.go @@ -146,7 +146,7 @@ func getRealReadme(ctx context.Context, repository string) (string, error) { return "", err } - content := newFragment.LastMessage().Content + content := result.LastMessage().Content return cleanTextContent(content), nil } diff --git a/core/http/endpoints/localai/mcp.go b/core/http/endpoints/localai/mcp.go index 721f97a69..9962ab533 100644 --- a/core/http/endpoints/localai/mcp.go +++ b/core/http/endpoints/localai/mcp.go @@ -162,11 +162,6 @@ func MCPEndpoint(cl *config.ModelConfigLoader, ml *model.ModelLoader, evaluator return err } - f, err = defaultLLM.Ask(ctxWithCancellation, f) - if err != nil { - return err - } - resp := &schema.OpenAIResponse{ ID: id, Created: created, @@ -252,17 +247,6 @@ func MCPEndpoint(cl *config.ModelConfigLoader, ml *model.ModelLoader, evaluator return } - // Get final response - f, err = defaultLLM.Ask(ctxWithCancellation, f) - if err != nil { - events <- MCPErrorEvent{ - Type: "error", - Message: fmt.Sprintf("Failed to get response: %v", err), - } - ended <- err - return - } - // Stream final assistant response content := f.LastMessage().Content events <- MCPAssistantEvent{ diff --git a/core/http/endpoints/openresponses/responses.go b/core/http/endpoints/openresponses/responses.go index aa2702dcf..ef178df03 100644 --- a/core/http/endpoints/openresponses/responses.go +++ b/core/http/endpoints/openresponses/responses.go @@ -1004,12 +1004,6 @@ func handleBackgroundMCPNonStream(ctx context.Context, store *ResponseStore, res default: } - // Get final response - f, err = defaultLLM.Ask(ctx, f) - if err != nil { - return nil, fmt.Errorf("failed to get response: %w", err) - } - // Convert fragment to Open Responses format fPtr := &f outputItems := convertCogitoFragmentToORItems(fPtr) @@ -1186,21 +1180,6 @@ func handleBackgroundMCPStream(ctx context.Context, store *ResponseStore, respon default: } - // Get final response - f, err = defaultLLM.Ask(ctx, f) - if err != nil { - select { - case <-ctx.Done(): - ended <- ctx.Err() - case events <- map[string]interface{}{ - "type": "error", - "message": fmt.Sprintf("Failed to get response: %v", err), - }: - ended <- err - } - return - } - // Stream final assistant message content := f.LastMessage().Content messageID := fmt.Sprintf("msg_%s", uuid.New().String()) @@ -2580,12 +2559,6 @@ func handleMCPNonStream(c echo.Context, responseID string, createdAt int64, inpu return sendOpenResponsesError(c, 500, "model_error", fmt.Sprintf("failed to execute tools: %v", err), "") } - // Get final response - f, err = defaultLLM.Ask(ctx, f) - if err != nil { - return sendOpenResponsesError(c, 500, "model_error", fmt.Sprintf("failed to get response: %v", err), "") - } - // Convert fragment to Open Responses format fPtr := &f outputItems := convertCogitoFragmentToORItems(fPtr) @@ -2730,17 +2703,6 @@ func handleMCPStream(c echo.Context, responseID string, createdAt int64, input * return } - // Get final response - f, err = defaultLLM.Ask(ctx, f) - if err != nil { - events <- map[string]interface{}{ - "type": "error", - "message": fmt.Sprintf("Failed to get response: %v", err), - } - ended <- err - return - } - // Stream final assistant message content := f.LastMessage().Content messageID := fmt.Sprintf("msg_%s", uuid.New().String()) diff --git a/core/services/agent_jobs.go b/core/services/agent_jobs.go index 2d36fcf65..64907c8c7 100644 --- a/core/services/agent_jobs.go +++ b/core/services/agent_jobs.go @@ -27,8 +27,8 @@ import ( "github.com/mudler/LocalAI/pkg/model" "github.com/mudler/LocalAI/pkg/xsync" "github.com/mudler/cogito" - "github.com/robfig/cron/v3" "github.com/mudler/xlog" + "github.com/robfig/cron/v3" ) // AgentJobService manages agent tasks and job execution @@ -894,17 +894,6 @@ func (s *AgentJobService) executeJobInternal(job schema.Job, task schema.Task, c return fmt.Errorf("failed to execute tools: %w", err) } - // Get final response - f, err = defaultLLM.Ask(ctx, f) - if err != nil { - job.Status = schema.JobStatusFailed - job.Error = fmt.Sprintf("failed to get response: %v", err) - completedAt := time.Now() - job.CompletedAt = &completedAt - s.jobs.Set(job.ID, job) - return fmt.Errorf("failed to get response: %w", err) - } - // Extract traces from fragment.Status after execution // This provides complete information about tool calls and results // We use Status data to supplement/replace callback data for completeness diff --git a/go.mod b/go.mod index 23fe2f5f8..b8158af19 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/mholt/archiver/v3 v3.5.1 github.com/microcosm-cc/bluemonday v1.0.27 github.com/modelcontextprotocol/go-sdk v1.2.0 - github.com/mudler/cogito v0.8.1 + github.com/mudler/cogito v0.8.2-0.20260214201734-da0d4ceb2b44 github.com/mudler/edgevpn v0.31.1 github.com/mudler/go-processmanager v0.1.0 github.com/mudler/memory v0.0.0-20251216220809-d1256471a6c2 diff --git a/go.sum b/go.sum index dc0e393ae..43471df06 100644 --- a/go.sum +++ b/go.sum @@ -511,6 +511,8 @@ github.com/mr-tron/base58 v1.2.0 h1:T/HDJBh4ZCPbU39/+c3rRvE0uKBQlU27+QI8LJ4t64o= github.com/mr-tron/base58 v1.2.0/go.mod h1:BinMc/sQntlIE1frQmRFPUoPA1Zkr8VRgBdjWI2mNwc= github.com/mudler/cogito v0.8.1 h1:66qPJkAMrq/Vo8AC/PvXWuVxYPhi7X2DQuJIilL8+3I= github.com/mudler/cogito v0.8.1/go.mod h1:6sfja3lcu2nWRzEc0wwqGNu/eCG3EWgij+8s7xyUeQ4= +github.com/mudler/cogito v0.8.2-0.20260214201734-da0d4ceb2b44 h1:joGszpItINnZdoL/0p2077Wz2xnxMGRSRgYN5mS7I4c= +github.com/mudler/cogito v0.8.2-0.20260214201734-da0d4ceb2b44/go.mod h1:6sfja3lcu2nWRzEc0wwqGNu/eCG3EWgij+8s7xyUeQ4= github.com/mudler/edgevpn v0.31.1 h1:7qegiDWd0kAg6ljhNHxqvp8hbo/6BbzSdbb7/2WZfiY= github.com/mudler/edgevpn v0.31.1/go.mod h1:ftV5B0nKFzm4R8vR80UYnCb2nf7lxCRgAALxUEEgCf8= github.com/mudler/go-piper v0.0.0-20241023091659-2494246fd9fc h1:RxwneJl1VgvikiX28EkpdAyL4yQVnJMrbquKospjHyA=