| name | exa-upgrade-migration |
| description | Upgrade exa-js SDK versions and handle breaking changes safely.
Use when upgrading the Exa SDK, detecting deprecations,
or migrating between exa-js versions.
Trigger with phrases like "upgrade exa", "exa update",
"exa breaking changes", "update exa-js", "exa new version".
|
| allowed-tools | Read, Write, Edit, Bash(npm:*), Bash(git:*) |
| version | 1.11.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| tags | ["saas","exa","api","migration","upgrade"] |
| compatibility | Designed for Claude Code, also compatible with Codex and OpenClaw |
Exa Upgrade & Migration
Current State
!npm list exa-js 2>/dev/null | grep exa-js || echo 'exa-js not installed'
!npm view exa-js version 2>/dev/null || echo 'cannot check latest'
Overview
Guide for upgrading the exa-js SDK. The SDK import is import Exa from "exa-js" and the client is instantiated with new Exa(apiKey). This skill covers checking for updates, handling breaking changes, and validating after upgrade.
Instructions
Step 1: Check Current vs Latest Version
set -euo pipefail
echo "Current version:"
npm list exa-js 2>/dev/null || echo "Not installed"
echo ""
echo "Latest available:"
npm view exa-js version
echo ""
echo "Changelog:"
npm view exa-js repository.url
Step 2: Create Upgrade Branch
set -euo pipefail
git checkout -b upgrade/exa-js-latest
npm install exa-js@latest
npm test
Step 3: Verify API Compatibility
import Exa from "exa-js";
async function verifyUpgrade() {
const exa = new Exa(process.env.EXA_API_KEY);
const checks = [];
try {
const r = await exa.search(, { : });
checks.({ : , : , : r.. });
} (: ) {
checks.({ : , : , : err. });
}
{
r = exa.(, {
: ,
: { : },
: { : },
});
checks.({
: ,
: ,
: !!r.[]?.,
: !!r.[]?.,
});
} (: ) {
checks.({ : , : , : err. });
}
{
r = exa.(, { : });
checks.({ : , : , : r.. });
} (: ) {
checks.({ : , : , : err. });
}
{
r = exa.([], { : });
checks.({ : , : , : !!r.[]?. });
} (: ) {
checks.({ : , : , : err. });
}
.(checks);
allPassed = checks.( c. === );
.();
allPassed;
}