// src/lisp/vlm/index.ts
// Virtual LISP Machine - Exports
//
// The VLM provides distributed LISP evaluation using the "traveling interpreter"
// pattern where the evaluator code travels with the message.
//
// Reference: Vision/18-VIRTUAL-LISP-MACHINE.md

// Types (individual interface files - Rich Hickey: no junk drawer)
export type { IVLMTrace } from './IVLMTrace';
export type { IJoinInfo } from './IJoinInfo';
export type { IVLMTravelingMessage } from './IVLMTravelingMessage';
export type { IAtomizedMessage } from './IAtomizedMessage';
export type { INodeInfo } from './INodeInfo';
export type { IJoinState } from './IJoinState';
export type { VLMEventType, IVLMEvent } from './IVLMEvent';

// Atomization utilities
export { PARALLELIZABLE_OPS, canAtomize, allArgsAreAtoms } from './AtomizationUtils';

// Metacircular Evaluator (the traveling brain)
export { METACIRCULAR_EVAL, getMetacircularEval } from './MetacircularEval';

// Helper functions
export { getVLMNamespace } from './VLMRouter';

// VLM Components (MatrixActor wrappers)
export { VLMRouter } from './VLMRouter';
export { VLMJoinCoordinator } from './VLMJoinCoordinator';
export { VLMAtomizer } from './VLMAtomizer';
export { VLMBootstrapNode } from './VLMBootstrapNode';
export { VLMEntryPoint } from './VLMEntryPoint';
