#!/usr/bin/env node import {DummyLlmService, ManifoldRegion, WorkflowFunctionManifold, WorkflowOperator} from "./lib.js"; async function demonstrateManifold() { // Initialize services and manifold const llm = new DummyLlmService(); const manifold = new WorkflowFunctionManifold(llm); // Create operators const dataAnalysisOp = new WorkflowOperator('analysis', async (state) => { console.log('Performing data analysis...'); return { ...state, analyzed: true }; }); const dataProcessingOp = new WorkflowOperator('processing', async (state) => { console.log('Processing data...'); return { ...state, processed: true }; }); const dataTransformOp = new WorkflowOperator('transformation', async (state) => { console.log('Transforming data...'); return { ...state, transformed: true }; }); // Create regions const analysisRegion = new ManifoldRegion('analysis', [dataAnalysisOp]); const processingRegion = new ManifoldRegion('processing', [dataProcessingOp]); const transformationRegion = new ManifoldRegion('transformation', [dataTransformOp]); // Connect regions analysisRegion.connectTo(processingRegion); processingRegion.connectTo(transformationRegion); // Add regions to manifold manifold.addRegion(analysisRegion); manifold.addRegion(processingRegion); manifold.addRegion(transformationRegion); // Demonstrate workflow execution console.log('Starting workflow demonstration...'); const prompts = [ 'analyze the data', 'process the results', 'transform the output' ]; for (const prompt of prompts) { console.log(`\nExecuting prompt: "${prompt}"`); await manifold.navigate(prompt); const executed = await manifold.executeWorkflow(prompt); console.log(`Current state:`, manifold.state); console.log(`Current region: ${manifold.currentRegion.name}`); console.log(`Operation executed: ${executed}`); } } // Run the demonstration demonstrateManifold().catch(console.error); export {}