Skip to content
mistral-upgrade-migration logo

Mistral AI Upgrade & Migration

mistral-upgrade-migration

Analyze, plan, and execute Mistral AI SDK upgrades with breaking change detection. Use when upgrading Mistral SDK versions, detecting deprecations, or migrating to new API versions. Trigger with phrases like "upgrade mistral", "mistral migration", "mistral breaking changes", "update mistral SDK",...

SKILL.md

Full skill instructions

Mistral AI Upgrade & Migration

Overview

Guide for upgrading Mistral AI SDK versions and handling breaking changes.

Prerequisites

  • Current Mistral AI SDK installed
  • Git for version control
  • Test suite available
  • Staging environment

Instructions

Step 1: Check Current Version

# Node.js SDK
npm list @mistralai/​mistralai
npm view @mistralai/​mistralai versions --json | jq '.[-5:]'

# Python SDK
pip show mistralai
pip index versions mistralai 2>/​dev/​null || pip install mistralai==

# Check for outdated
npm outdated @mistralai/​mistralai

Step 2: Review Changelog

# Check GitHub releases
open https://github.com/​mistralai/​client-js/​releases
open https://github.com/​mistralai/​client-python/​releases

# Check npm changelog
npm info @mistralai/​mistralai

Step 3: Create Upgrade Branch

# Create feature branch
git checkout -b upgrade/​mistral-sdk-vX.Y.Z

# Backup current lock file
cp package-lock.json package-lock.json.bak

# Upgrade SDK
npm install @mistralai/​mistralai@latest

# Or specific version
npm install @mistralai/​[email protected]

# Check what changed
npm diff @mistralai/​mistralai

Step 4: Handle Breaking Changes

Common Migration Patterns:

Import Changes (v0.x to v1.x)

// Before (v0.x)
import MistralClient from '@mistralai/​mistralai';
const client = new MistralClient(apiKey);

// After (v1.x)
import Mistral from '@mistralai/​mistralai';
const client = new Mistral({ apiKey });

Method Changes

// Before
const response = await client.chat(params);

// After (v1.x)
const response = await client.chat.complete(params);

Streaming Changes

// Before
const stream = await client.chatStream(params);
for await (const chunk of stream) { ... }

// After (v1.x)
const stream = await client.chat.stream(params);
for await (const event of stream) {
  const chunk = event.data;
  ...
}

Step 5: Run Tests

# Type check
npm run typecheck

# Unit tests
npm test

# Integration tests
MISTRAL_API_KEY=$MISTRAL_API_KEY_TEST npm run test:integration

# Compare outputs
npm run test -- --updateSnapshot # if using snapshots

Step 6: Create Migration Script

// scripts/​migrate-mistral.ts
import { readFileSync, writeFileSync } from 'fs';
import { glob } from 'glob';

const MIGRATIONS: Array<{ pattern: RegExp; replacement: string }> = [
  // Import statement
  {
    pattern: /​import MistralClient from '@mistralai\/​mistralai'/​g,
    replacement: "import Mistral from '@mistralai/​mistralai'",
  },
  // Client instantiation
  {
    pattern: /​new MistralClient\((\w+)\)/​g,
    replacement: 'new Mistral({ apiKey: $1 })',
  },
  // Chat method
  {
    pattern: /\.chat\(/​g,
    replacement: '.chat.complete(',
  },
  // Streaming method
  {
    pattern: /\.chatStream\(/​g,
    replacement: '.chat.stream(',
  },
];

async function migrate() {
  const files = await glob('src/​**/​*.{ts,js}');

  for (const file of files) {
    let content = readFileSync(file, 'utf-8');
    let modified = false;

    for (const { pattern, replacement } of MIGRATIONS) {
      if (pattern.test(content)) {
        content = content.replace(pattern, replacement);
        modified = true;
      }
    }

    if (modified) {
      writeFileSync(file, content);
      console.log(`Migrated: ${file}`);
    }
  }
}

migrate();

Step 7: Document Changes

## Mistral SDK Upgrade: v0.x → v1.x

### Breaking Changes Applied
1. Updated import statement
2. Changed client instantiation
3. Updated chat method calls
4. Modified streaming interface

### Files Modified
- src/​mistral/​client.ts
- src/​services/​chat.ts
- tests/​mistral.test.ts

### Testing
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Staging deployment verified
- [ ] Performance benchmarked

### Rollback
```bash
npm install @mistralai/​[email protected]
git checkout -- src/

## Output
- Updated SDK version
- Fixed breaking changes
- Passing test suite
- Documented rollback procedure

## Version Compatibility

| SDK Version | Node.js | API Version | Notable Changes |
|-------------|---------|-------------|-----------------|
| 1.x | 18+ | Latest | New client interface |
| 0.5.x | 16+ | v1 | Stable, legacy |
| 0.4.x | 16+ | v1 | Streaming improvements |

## Error Handling

| Error After Upgrade | Cause | Solution |
|---------------------|-------|----------|
| Import error | Changed exports | Update import statement |
| Type errors | Interface changes | Update types |
| Runtime error | Method signature changed | Check migration guide |
| Test failures | Response format changed | Update assertions |

## Examples

### Deprecation Handling
```typescript
// Monitor for deprecation warnings
if (process.env.NODE_ENV === 'development') {
  process.on('warning', (warning) => {
    if (warning.name === 'DeprecationWarning') {
      console.warn('[Mistral SDK]', warning.message);
    }
  });
}

Gradual Migration with Feature Flag

const USE_NEW_SDK = process.env.MISTRAL_SDK_V1 === 'true';

async function chat(messages: Message[]): Promise<string> {
  if (USE_NEW_SDK) {
    // New SDK interface
    const client = new Mistral({ apiKey: process.env.MISTRAL_API_KEY });
    const response = await client.chat.complete({ model, messages });
    return response.choices?.[0]?.message?.content ?? '';
  } else {
    // Legacy interface
    const client = new MistralClient(process.env.MISTRAL_API_KEY);
    const response = await client.chat({ model, messages });
    return response.choices?.[0]?.message?.content ?? '';
  }
}

Rollback Procedure

# Quick rollback
npm install @mistralai/​[email protected] --save-exact

# Verify rollback
npm list @mistralai/​mistralai
npm test

Resources

Next Steps

For CI integration during upgrades, see mistral-ci-integration.

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View