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.
This commit is contained in:
Drake (Moltbot Dev) 2026-01-29 15:47:58 -05:00
parent 154d4108dc
commit 7e78fb071b
5 changed files with 17 additions and 12 deletions

View File

@ -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",

View File

@ -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,

View File

@ -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<string, string>;
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). */

View File

@ -1,5 +1,4 @@
import type { MistralEmbeddingClient } from "./embeddings-mistral.js";
import { hashText } from "./internal.js";
export type MistralBatchRequest = {
custom_id: string;

View File

@ -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", () => ({