mistral-upgrade-migration
SKILL.md
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
set -euo pipefail
# 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
set -euo pipefail
# 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
set -euo pipefail
# 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/mistralai@1.2.0
# 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
set -euo pipefail
# 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/mistralai@0.x.x
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
set -euo pipefail
# Quick rollback
npm install @mistralai/mistralai@0.5.0 --save-exact
# Verify rollback
npm list @mistralai/mistralai
npm test
Resources
Next Steps
For CI integration during upgrades, see mistral-ci-integration.
Weekly Installs
17
Repository
jeremylongshore…s-skillsGitHub Stars
1.6K
First Seen
Jan 27, 2026
Security Audits
Installed on
gemini-cli16
codex16
continue15
claude-code15
windsurf15
zencoder15