
Product
Introducing Manifest Alerts
Socket now detects supply chain risks in project manifests, starting with missing lockfiles that can make dependency installs non-reproducible.
@isl-lang/healer
Advanced tools
ISL Self-Healing Pipeline - Safe, idempotent code patching with proof bundles
Self-healing pipeline for ISL specifications - fixes violations without weakening intents
ISL Healer is a self-healing pipeline that:
The healer NEVER:
@ts-ignore, eslint-disable, isl-ignore)The healer CAN:
pnpm add @isl-lang/healer
import { healUntilShip } from '@isl-lang/healer';
// Your ISL AST (from translator)
const ast = await translate("Build a login endpoint with rate limiting and audit");
// Initial generated code
const code = new Map([
['app/api/login/route.ts', `
export async function POST(request: Request) {
const body = await request.json();
console.log('Login:', body); // PII violation!
// Missing rate limit
// Missing audit
return Response.json({ success: true });
}
`],
]);
// Heal until SHIP
const result = await healUntilShip(ast, code, {
maxIterations: 8,
verbose: true,
});
if (result.ok) {
console.log('✓ SHIP - All intents satisfied');
console.log('Iterations:', result.iterations);
console.log('Proof bundle:', result.proof.bundleId);
}
import { ISLHealerV2, createHealer } from '@isl-lang/healer';
const healer = createHealer(ast, '/path/to/project', initialCode, {
maxIterations: 8,
stopOnRepeat: 2,
verbose: true,
onIteration: (snapshot) => {
console.log(`Iteration ${snapshot.iteration}: ${snapshot.gateResult.score}/100`);
},
});
const result = await healer.heal();
import { FixRecipe, createHealer } from '@isl-lang/healer';
const customRecipe: FixRecipe = {
ruleId: 'custom/my-rule',
name: 'My Custom Fix',
description: 'Fixes my custom rule',
priority: 10,
match: { textPattern: /someBadPattern/ },
locate: { type: 'text_search', search: /someBadPattern/ },
createPatches: (violation, ctx) => [{
type: 'replace',
file: violation.file,
content: 'goodPattern',
description: 'Replace bad pattern with good pattern',
}],
validations: [
{ type: 'not_contains', value: 'someBadPattern', errorMessage: 'Bad pattern still present' },
],
rerunChecks: ['gate'],
};
const healer = createHealer(ast, projectRoot, code, {
customRecipes: [customRecipe],
});
import { GateIngester } from '@isl-lang/healer';
const ingester = new GateIngester();
// From JSON
const gateResult = ingester.parse({
verdict: 'NO_SHIP',
score: 65,
violations: [...],
fingerprint: '...',
});
// From SARIF
const sarifResult = ingester.parse({
version: '2.1.0',
runs: [{
tool: { driver: { name: 'isl-gate' } },
results: [...],
}],
});
| Reason | ok | Description |
|---|---|---|
ship | ✅ | All violations resolved, gate passes |
unknown_rule | ❌ | Violation with no registered fix |
stuck | ❌ | Same fingerprint repeated N times |
max_iterations | ❌ | Reached iteration limit |
weakening_detected | ❌ | Patch would weaken intent |
The healer produces a ProofBundleV2 with:
interface ProofBundleV2 {
version: '2.0.0';
bundleId: string; // Deterministic hash
source: { domain, hash }; // ISL spec info
healing: {
performed: boolean;
iterations: number;
reason: HealReason;
history: IterationSnapshot[];
};
evidence: ClauseEvidence[];
gate: { verdict, score };
verdict: 'PROVEN' | 'HEALED' | 'VIOLATED' | 'UNPROVEN';
chain: ProofChainEntry[];
signature?: { algorithm, value };
}
Built-in adapters for:
import { getFrameworkAdapter, detectFramework } from '@isl-lang/healer/adapters';
// Auto-detect
const adapter = await getFrameworkAdapter('/path/to/project');
// Override
const adapter = await getFrameworkAdapter('/path/to/project', 'express');
| Rule ID | Description |
|---|---|
intent/rate-limit-required | Add rate limiting middleware |
intent/audit-required | Add audit logging |
intent/no-pii-logging | Remove console.log |
intent/input-validation | Add Zod validation |
intent/idempotency-required | Add idempotency handling |
intent/server-side-amount | Server-side amount calculation |
quality/no-stubbed-handlers | Replace TODO stubs |
See ARCHITECTURE.md for:
healUntilShip(ast, code, options) - Convenience functioncreateHealer(ast, root, code, options) - Create healer instancegetFrameworkAdapter(root, override?) - Get framework adapterdetectFramework(root) - Detect project frameworkISLHealerV2 - Main healer classGateIngester - JSON/SARIF parserFixRecipeRegistryImpl - Recipe registryWeakeningGuard - Patch validatorProofBundleV2Builder - Proof builderMIT
FAQs
ISL Self-Healing Pipeline - Safe, idempotent code patching with proof bundles
We found that @isl-lang/healer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now detects supply chain risks in project manifests, starting with missing lockfiles that can make dependency installs non-reproducible.

Research
/Security News
The trojanized extensions use TinyGo-compiled WebAssembly and Solana transaction memos to resolve command-and-control infrastructure.

Security News
Anthropic says the directive cited national security concerns over a narrow jailbreak, but offered no specific technical details.