/**
 * MCP Tools Export
 *
 * This module exports all MCP tool classes and provides
 * a consolidated tool list for the MCP server
 */
// Import all tool classes
import { SolverTools } from './solver.js';
import { MatrixTools } from './matrix.js';
import { EmergenceTools } from './emergence-tools.js';
import { ConsciousnessTools } from './consciousness.js';
import { SchedulerTools } from './scheduler.js';
import { PsychoSymbolicTools } from './psycho-symbolic.js';
import { WasmSublinearSolverTools } from './wasm-sublinear-solver.js';
import { temporalAttractorTools } from './temporal-attractor.js';
import { temporalAttractorHandlers } from './temporal-attractor-handlers.js';
// Export classes for direct usage
export { SolverTools } from './solver.js';
export { MatrixTools } from './matrix.js';
export { EmergenceTools } from './emergence-tools.js';
export { ConsciousnessTools } from './consciousness.js';
export { SchedulerTools } from './scheduler.js';
export { PsychoSymbolicTools } from './psycho-symbolic.js';
export { WasmSublinearSolverTools } from './wasm-sublinear-solver.js';
export { temporalAttractorHandlers } from './temporal-attractor-handlers.js';
// Create instances for getting tool definitions
const solverToolsInstance = new SolverTools();
const matrixToolsInstance = new MatrixTools();
const emergenceToolsInstance = new EmergenceTools();
const consciousnessToolsInstance = new ConsciousnessTools();
const schedulerToolsInstance = new SchedulerTools();
const psychoSymbolicToolsInstance = new PsychoSymbolicTools();
const wasmSolverToolsInstance = new WasmSublinearSolverTools();
// Export tool arrays (if classes have getTools method, otherwise empty)
export const solverTools = solverToolsInstance.getTools?.() || [];
export const matrixTools = matrixToolsInstance.getTools?.() || [];
export const emergenceTools = emergenceToolsInstance.getTools?.() || [];
export const consciousnessTools = consciousnessToolsInstance.getTools?.() || [];
export const schedulerTools = schedulerToolsInstance.getTools?.() || [];
export const psychoSymbolicTools = psychoSymbolicToolsInstance.getTools?.() || [];
// Temporal attractor tools are exported directly from the file
export { temporalAttractorTools } from './temporal-attractor.js';
// For backward compatibility - if getTools doesn't exist,
// we'll assume the tools are defined in the MCP server itself
export const allTools = [
    ...solverTools,
    ...matrixTools,
    ...emergenceTools,
    ...consciousnessTools,
    ...schedulerTools,
    ...psychoSymbolicTools,
    ...temporalAttractorTools
];
// Default export with both instances and classes
export default {
    // Instances (for calling methods)
    solver: solverToolsInstance,
    matrix: matrixToolsInstance,
    emergence: emergenceToolsInstance,
    consciousness: consciousnessToolsInstance,
    scheduler: schedulerToolsInstance,
    psychoSymbolic: psychoSymbolicToolsInstance,
    temporalAttractor: temporalAttractorHandlers,
    // Classes (for creating new instances)
    SolverTools,
    MatrixTools,
    EmergenceTools,
    ConsciousnessTools,
    SchedulerTools,
    PsychoSymbolicTools,
    // Tool arrays (may be empty if getTools doesn't exist)
    solverTools,
    matrixTools,
    emergenceTools,
    consciousnessTools,
    schedulerTools,
    psychoSymbolicTools,
    allTools
};
