From 7e78fb071b1664ae988692f55bb360a42eba4af3 Mon Sep 17 00:00:00 2001 From: "Drake (Moltbot Dev)" Date: Thu, 29 Jan 2026 15:47:58 -0500 Subject: [PATCH] fix: add Mistral embedding provider to type definitions - Add "mistral" to provider and fallback types in ResolvedMemorySearchConfig - Add "mistral" to MemorySearchConfig provider and fallback types - Update includeRemote logic to include Mistral provider - Add Mistral to model default selection logic - Remove unused imports (hashText, DEFAULT_MISTRAL_EMBEDDING_MODEL) - Update pnpm to 10.28.2 This fixes TypeScript compilation errors from the recent Mistral embeddings feature addition where the type definitions weren't updated to include the new provider option. --- package.json | 2 +- src/agents/memory-search.ts | 19 +++++++++++++------ src/config/types.tools.ts | 6 +++--- src/memory/batch-mistral.ts | 1 - src/memory/embeddings.test.ts | 1 - 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 77211d865..d6a4d019a 100644 --- a/package.json +++ b/package.json @@ -152,7 +152,7 @@ "engines": { "node": ">=22.12.0" }, - "packageManager": "pnpm@10.23.0", + "packageManager": "pnpm@10.28.2", "dependencies": { "@agentclientprotocol/sdk": "0.13.1", "@aws-sdk/client-bedrock": "^3.975.0", diff --git a/src/agents/memory-search.ts b/src/agents/memory-search.ts index 3d3f3c324..3bb17b924 100644 --- a/src/agents/memory-search.ts +++ b/src/agents/memory-search.ts @@ -5,12 +5,13 @@ import type { OpenClawConfig, MemorySearchConfig } from "../config/config.js"; import { resolveStateDir } from "../config/paths.js"; import { clampInt, clampNumber, resolveUserPath } from "../utils.js"; import { resolveAgentConfig } from "./agent-scope.js"; +import { DEFAULT_MISTRAL_EMBEDDING_MODEL } from "../memory/embeddings-mistral.js"; export type ResolvedMemorySearchConfig = { enabled: boolean; sources: Array<"memory" | "sessions">; extraPaths: string[]; - provider: "openai" | "local" | "gemini" | "auto"; + provider: "openai" | "local" | "gemini" | "mistral" | "auto"; remote?: { baseUrl?: string; apiKey?: string; @@ -26,7 +27,7 @@ export type ResolvedMemorySearchConfig = { experimental: { sessionMemory: boolean; }; - fallback: "openai" | "gemini" | "local" | "none"; + fallback: "openai" | "gemini" | "mistral" | "local" | "none"; model: string; local: { modelPath?: string; @@ -129,7 +130,11 @@ function mergeConfig( defaultRemote?.headers, ); const includeRemote = - hasRemoteConfig || provider === "openai" || provider === "gemini" || provider === "auto"; + hasRemoteConfig || + provider === "openai" || + provider === "gemini" || + provider === "mistral" || + provider === "auto"; const batch = { enabled: overrideRemote?.batch?.enabled ?? defaultRemote?.batch?.enabled ?? true, wait: overrideRemote?.batch?.wait ?? defaultRemote?.batch?.wait ?? true, @@ -154,9 +159,11 @@ function mergeConfig( const modelDefault = provider === "gemini" ? DEFAULT_GEMINI_MODEL - : provider === "openai" - ? DEFAULT_OPENAI_MODEL - : undefined; + : provider === "mistral" + ? DEFAULT_MISTRAL_EMBEDDING_MODEL + : provider === "openai" + ? DEFAULT_OPENAI_MODEL + : undefined; const model = overrides?.model ?? defaults?.model ?? modelDefault ?? ""; const local = { modelPath: overrides?.local?.modelPath ?? defaults?.local?.modelPath, diff --git a/src/config/types.tools.ts b/src/config/types.tools.ts index db32cb59d..debf38de6 100644 --- a/src/config/types.tools.ts +++ b/src/config/types.tools.ts @@ -234,13 +234,13 @@ export type MemorySearchConfig = { sessionMemory?: boolean; }; /** Embedding provider mode. */ - provider?: "openai" | "gemini" | "local"; + provider?: "openai" | "gemini" | "mistral" | "local"; remote?: { baseUrl?: string; apiKey?: string; headers?: Record; batch?: { - /** Enable batch API for embedding indexing (OpenAI/Gemini; default: true). */ + /** Enable batch API for embedding indexing (OpenAI/Gemini/Mistral; default: true). */ enabled?: boolean; /** Wait for batch completion (default: true). */ wait?: boolean; @@ -253,7 +253,7 @@ export type MemorySearchConfig = { }; }; /** Fallback behavior when embeddings fail. */ - fallback?: "openai" | "gemini" | "local" | "none"; + fallback?: "openai" | "gemini" | "mistral" | "local" | "none"; /** Embedding model id (remote) or alias (local). */ model?: string; /** Local embedding settings (node-llama-cpp). */ diff --git a/src/memory/batch-mistral.ts b/src/memory/batch-mistral.ts index 911f84386..8ba7b562e 100644 --- a/src/memory/batch-mistral.ts +++ b/src/memory/batch-mistral.ts @@ -1,5 +1,4 @@ import type { MistralEmbeddingClient } from "./embeddings-mistral.js"; -import { hashText } from "./internal.js"; export type MistralBatchRequest = { custom_id: string; diff --git a/src/memory/embeddings.test.ts b/src/memory/embeddings.test.ts index 570edd23c..8d6c5924a 100644 --- a/src/memory/embeddings.test.ts +++ b/src/memory/embeddings.test.ts @@ -1,6 +1,5 @@ import { afterEach, describe, expect, it, vi } from "vitest"; -import { DEFAULT_MISTRAL_EMBEDDING_MODEL } from "./embeddings-mistral.js"; import { DEFAULT_GEMINI_EMBEDDING_MODEL } from "./embeddings-gemini.js"; vi.mock("../agents/model-auth.js", () => ({