${bold(esc(raw.trim()))}
`; + }); + + flushListsTo(0); + return html; +} diff --git a/src/lib/workflow.runner.ts b/src/lib/workflow.runner.ts index ec2b5fa..041860a 100644 --- a/src/lib/workflow.runner.ts +++ b/src/lib/workflow.runner.ts @@ -1,61 +1,68 @@ import { v4 as uuidv4 } from 'uuid'; -import { makeWorkflow } from "./workflow.helpers"; +// import { makeWorkflow } from "./workflow.helpers"; import { createPagePool } from "./page.manager"; import { runSequentialTask } from "./task.execution"; import { emit } from "./task.execution.helpers"; import { RunnerOptions } from "./workflow.schema"; +import { runBrowserAction } from "./task.browser"; export async function runWorkflow(opts: RunnerOptions) { const { + mode, originalQuery, sessionId, queries, dependencies, browserInstance, - researchFlags + researchFlags, + steps } = opts; - const pageManager = createPagePool({ browser: browserInstance }); - - /* - ** create workflow - */ - makeWorkflow({ originalQuery, sessionId, queries, dependencies }); + const pageManager = createPagePool({ browser: browserInstance }); /* ** emit */ const taskId = uuidv4(); emit('workflow_update', { taskId, action: 'CREATE_WORKFLOW', speakToUser: "Starting the task", status: 'initial' }); - /* - ** create and run a runner for each sub-query - */ - const next = async () => { - await runSequentialTask({ - originalQuery, - queries, + if (mode === "browser_action") { + /* + ** create and run a runner for the browser action + */ + console.log("steps", steps); + await runBrowserAction({ taskId, - sessionId, + originalQuery, pageManager, - dependencies, - researchFlags, - browserInstance + browserInstance, + steps }); + } else if (mode === "analysis") { + /* + ** create and run a runner for each sub-query + */ + const next = async () => { + await runSequentialTask({ + originalQuery, + queries, + taskId, + sessionId, + pageManager, + dependencies, + researchFlags, + browserInstance + }); - }; + }; - /* - ** start - */ - await next(); - - /* - ** update - */ + /* + ** start + */ + await next(); - // emit('workflow_update', { taskId, action:'COMPLETE_WORKFLOW', speakToUser: "Task completed", status: 'completed' }); + } } diff --git a/src/lib/workflow.schema.ts b/src/lib/workflow.schema.ts index 5659a44..6fb4a67 100644 --- a/src/lib/workflow.schema.ts +++ b/src/lib/workflow.schema.ts @@ -33,6 +33,7 @@ export interface Workflow { } export interface RunnerOptions { + mode: string; originalQuery: string; sessionId: string; queries: string[]; @@ -42,4 +43,5 @@ export interface RunnerOptions { }[]; browserInstance: any; researchFlags: number[]; + steps: string[]; }