update demo execution to include timeouts to simulate async workloads

This commit is contained in:
2024-12-25 08:23:49 -05:00
parent 8efa540229
commit e5e3e65efd
2 changed files with 10 additions and 2 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "manifold-workflow-engine",
"version": "2.0.4",
"version": "2.0.5",
"author": "seemueller-io",
"type": "module",
"description": "for building dynamic, LLM-driven workflows using a region-based execution model",

View File

@@ -10,7 +10,6 @@ import {
import { WorkflowState } from './types';
import log from './logger';
async function demonstrateNestedManifold(): Promise<void> {
log.info("Starting demonstration of nested manifold.");
@@ -19,11 +18,15 @@ async function demonstrateNestedManifold(): Promise<void> {
const validateOp = new WorkflowOperator('validation', async (state: WorkflowState) => {
log.debug("Validating state.");
// Simulate asynchronous work
await new Promise((resolve) => setTimeout(resolve, 1000));
return { ...state, validated: true };
});
const cleanOp = new WorkflowOperator('cleaning', async (state: WorkflowState) => {
log.debug("Cleaning state.");
// Simulate asynchronous work
await new Promise((resolve) => setTimeout(resolve, 1000));
return { ...state, cleaned: true };
});
@@ -40,11 +43,15 @@ async function demonstrateNestedManifold(): Promise<void> {
const analysisOp = new WorkflowOperator('analysis', async (state: WorkflowState) => {
log.debug("Analyzing state.");
// Simulate asynchronous work
await new Promise((resolve) => setTimeout(resolve, 1000));
return { ...state, analyzed: true };
});
const transformOp = new WorkflowOperator('transformation', async (state: WorkflowState) => {
log.debug("Transforming state.");
// Simulate asynchronous work
await new Promise((resolve) => setTimeout(resolve, 1000));
return { ...state, transformed: true };
});
@@ -72,6 +79,7 @@ async function demonstrateNestedManifold(): Promise<void> {
try {
log.info(`Navigating with prompt: ${text}`);
await mainManifold.navigate(text);
log.info(`Executing workflow with prompt: ${text}`);
await mainManifold.executeWorkflow(text);
} catch (error) {