Install & Compatibility
Where this runs
No compatibility data collected yet for this library.
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
applyAiResilience
✓ import { applyAiResilience } from 'ai-resilience'
✗ const { applyAiResilience } = require('ai-resilience')
ESM-only package; CommonJS require will fail.
requestWithSemanticRetry
✓ import { requestWithSemanticRetry } from 'ai-resilience'
✗ import { requestWithSemanticRetry } from 'ai-resilience/requestWithSemanticRetry'
Not a subpath export; all symbols from top-level package entry.
ConsoleRetryLogger
✓ import { ConsoleRetryLogger } from 'ai-resilience'
Default export is not available; all are named exports.
RedisRetryCoordinator
✓ import { RedisRetryCoordinator } from 'ai-resilience'
✗ import RedisRetryCoordinator from 'ai-resilience'
Named export only, not default.
Demonstrates applyAiResilience for HTTP retries and requestWithSemanticRetry for AI response validation with Zod schema.
import axios from 'axios';
import { applyAiResilience, ConsoleRetryLogger, requestWithSemanticRetry } from 'ai-resilience';
import { z } from 'zod';
const client = axios.create({ baseURL: 'https://api.example.com' });
// Apply smart retries
applyAiResilience(client, {
retries: 3,
strategy: 'exponential',
baseDelayMs: 150,
maxDelayMs: 10_000,
jitter: 'full',
logger: new ConsoleRetryLogger('info'),
hooks: {
onRetry: ({ attempt, nextDelayMs }) => {
console.log(`Retry ${attempt} in ${nextDelayMs}ms`);
},
},
});
// Simple GET with retry
const response = await client.get('/health');
console.log(response.data);
// Semantic retry for AI responses
const result = await requestWithSemanticRetry(client, {
request: {
method: 'post',
url: '/generate',
data: { prompt: 'Return JSON with title and tags.' },
},
schema: z.object({ title: z.string(), tags: z.array(z.string()) }),
repairJson: true,
requireJson: true,
hooks: {
onSemanticRetry: ({ issue, attempt }) => {
console.log(`Semantic retry ${attempt}: ${issue.kind}`);
},
},
});
console.log(result.data);
Debug
Known issues
breakingPackage is ESM-only. Using require('ai-resilience') will throw a runtime error. Use import syntax or dynamic import().fixChange require() to import statements and ensure your project uses ESM or a compatible module bundler.
affects: >=0.0.1
breakingAll exports are named exports. There is no default export. Importing with default import (e.g., import aiResilience from 'ai-resilience') yields undefined.fixUse named imports: import { applyAiResilience, requestWithSemanticRetry, ... } from 'ai-resilience'. affects: >=0.0.1
gotchaapplyAiResilience modifies the Axios instance in-place and may conflict with other interceptors. Order matters: apply after other interceptors or ensure compatibility.fixApply ai-resilience last, after setting up other interceptors. Test for interceptor conflicts.
affects: >=0.0.1
gotchaRedisRetryCoordinator requires ioredis as a peer dependency. Not installing ioredis will cause runtime error when using distributed coordination.fixInstall ioredis: npm install ioredis
affects: >=0.0.1
deprecatedNo deprecation notices yet as package is pre-1.0.
Errors
Common errors & fixes
ERR_REQUIRE_ESM
Using require() on an ESM-only package.
fixChange to import syntax: import { applyAiResilience } from 'ai-resilience' TypeError: (intermediate value).applyAiResilience is not a function
Default import instead of named import.
fixUse named import: import { applyAiResilience } from 'ai-resilience' Error: Cannot find module 'ioredis'
Missing peer dependency for RedisRetryCoordinator.
fixInstall ioredis: npm install ioredis
error TS2307: Cannot find module 'ai-resilience' or its corresponding type declarations.
Missing TypeScript type declarations or incorrect moduleResolution.
fixEnsure tsconfig.json has moduleResolution: 'node' or 'bundler' and includes node_modules types.
Audit
Dependencies
axiosrequiredpeer dependency for HTTP client
axios-retryrequiredpeer dependency for underlying retry logic