import { Enclave, createWorkerPoolAdapter } from '@enclave-vm/core';
// Create enclave with full configuration
const enclave = new Enclave({
// Security
securityLevel: 'STRICT',
// Limits
timeout: 30000,
maxToolCalls: 50,
maxIterations: 10000,
memoryLimit: 64 * 1024 * 1024,
// Custom globals
globals: {
config: { debug: true },
},
// Tool handling
toolHandler: async (name, args) => {
console.log(`Tool: ${name}`, args);
return { success: true };
},
// AI Scoring
scoringGate: {
scorer: 'rule-based',
blockThreshold: 70,
warnThreshold: 40,
onScore: (result) => {
console.log('Score:', result.score);
},
},
// Worker pool isolation
adapter: createWorkerPoolAdapter({
poolSize: 4,
}),
});
// Execute code
const result = await enclave.run(`
console.log('Hello from Enclave');
const data = await callTool('fetch', { url: '/api/data' });
return data;
`);
console.log(result);
// Clean up
enclave.dispose();