@bernierllc/nevar-engine
v0.1.0
Published
Central orchestration engine for the Nevar rules engine suite — emit, preview, pipeline, rule CRUD
Downloads
207
Readme
@bernierllc/nevar-engine
Central orchestration engine for the Nevar rules engine suite. Provides createNevar(), emit(), preview(), pipeline orchestration, rule CRUD with validation, and registration delegation.
Installation
npm install @bernierllc/nevar-engineUsage
import { createNevar } from '@bernierllc/nevar-engine';
const engine = createNevar({
storage: myStorageAdapter,
failureMode: 'fail-fast',
});
// Register operators, triggers, actions, and context providers
engine.registerOperator('equals', {
label: 'Equals',
category: 'comparison',
evaluate: (a, b) => a === b,
schema: {},
});
engine.registerTrigger('user.created', {
payloadSchema: {},
description: 'Fired when a new user is created',
});
engine.registerAction('send-email', {
label: 'Send Email',
category: 'notification',
configSchema: {},
canDefer: false,
handler: async (config, context) => {
// send email logic
return { sent: true };
},
});
// Emit a trigger
const result = await engine.emit('user.created', { email: '[email protected]' });
// Preview without executing actions
const preview = await engine.preview('user.created', { email: '[email protected]' });
// Rule CRUD (validates before writing to storage)
const rule = await engine.createRule({ /* ... */ });
await engine.updateRule(rule.id, { name: 'Updated Rule' });
await engine.deleteRule(rule.id);API
createNevar(config: NevarConfig): Nevar
Factory function to create a new engine instance.
Registration
registerOperator(name, definition)- Register a condition operatorregisterTrigger(key, definition)- Register a trigger typeregisterAction(actionType, definition)- Register an action handlerregisterContextProvider(prefix, provider)- Register a context enrichment provider
Core
emit(triggerKey, payload, groupId?)- Emit a trigger and execute matching rulespreview(triggerKey, payload, groupId?)- Preview without executing actions
Rule CRUD
createRule(rule)- Create with validationupdateRule(id, patch)- Update with conditional re-validationdeleteRule(id)- Delete a rule
Discovery
operators.list()/operators.get(name)triggers.list()/triggers.get(key)actions.list()/actions.get(type)loops.list()/loops.inspect(id)/loops.kill(id)/loops.pause(id)/loops.resume(id)
Integration Documentation
Logger Integration
This package integrates with @bernierllc/logger for structured logging. The engine logs pipeline execution stages, rule evaluation results, action outcomes, and error chains. Use logger's context-level switching to control verbosity per trigger or rule at runtime.
NeverHub Integration
This package integrates with @bernierllc/neverhub-adapter. When NeverHub is available, the engine registers itself for discovery and monitoring, exposing operator/trigger/action registrations and pipeline health metrics. Graceful degradation is supported when NeverHub is not present -- all core engine functionality works regardless.
License
Copyright (c) 2025 Bernier LLC. All rights reserved.
