diff --git a/app/components/pipeline/GeneratePipeline.tsx b/app/components/pipeline/GeneratePipeline.tsx index 91f3821..3ffedb7 100644 --- a/app/components/pipeline/GeneratePipeline.tsx +++ b/app/components/pipeline/GeneratePipeline.tsx @@ -24,7 +24,7 @@ const tabClass = clsx( ); export default function GeneratePipeline() { - const litlytics = useLitlytics(); + const { litlytics, pipeline, setPipeline, pipelineStatus } = useLitlytics(); const [selectedTab, setSelectedTab] = useState(0); const [isOpen, setIsOpen] = useState(false); const [loading, setLoading] = useState(false); @@ -36,8 +36,8 @@ export default function GeneratePipeline() { setError(undefined); // generate plan from LLM - await litlytics.generatePipeline(); - + const newPipeline = await litlytics.generatePipeline(); + setPipeline(newPipeline); setLoading(false); setSelectedTab(1); } catch (err) { @@ -49,9 +49,9 @@ export default function GeneratePipeline() { const closeDialog = () => { if ( loading || - litlytics.pipelineStatus.status === 'refine' || - litlytics.pipelineStatus.status === 'step' || - litlytics.pipelineStatus.status === 'sourcing' + pipelineStatus.status === 'refine' || + pipelineStatus.status === 'step' || + pipelineStatus.status === 'sourcing' ) { return; } @@ -65,8 +65,8 @@ export default function GeneratePipeline() { outline onClick={() => setIsOpen(true)} disabled={ - litlytics.pipelineStatus.status === 'sourcing' || - litlytics.pipelineStatus.status === 'step' + pipelineStatus.status === 'sourcing' || + pipelineStatus.status === 'step' } className="border-sky-500 dark:border-sky-500" > @@ -83,7 +83,7 @@ export default function GeneratePipeline() { Plan - {Boolean(litlytics.pipeline.pipelinePlan?.length) && ( + {Boolean(pipeline.pipelinePlan?.length) && ( Refine plan )} @@ -96,9 +96,10 @@ export default function GeneratePipeline() { rows={5} name="task" placeholder="Task description" - value={litlytics.pipeline.pipelineDescription} + value={pipeline.pipelineDescription ?? ''} onChange={(e) => { - litlytics.setPipeline({ + setPipeline({ + ...pipeline, pipelineDescription: e.target.value, }); }} diff --git a/app/components/pipeline/PipelineBuilder.tsx b/app/components/pipeline/PipelineBuilder.tsx index 5632499..a3a4a7c 100644 --- a/app/components/pipeline/PipelineBuilder.tsx +++ b/app/components/pipeline/PipelineBuilder.tsx @@ -5,12 +5,12 @@ import { SourceNode } from './nodes/source/SourceNode'; import { StepNode } from './nodes/StepNode'; export function PipelineBuilder() { - const litlytics = useLitlytics(); + const { pipeline } = useLitlytics(); return ( - {litlytics.pipeline.steps + {pipeline.steps .sort((a, b) => (a.connectsTo.includes(b.id) ? -1 : 1)) .map((step) => ( diff --git a/app/components/pipeline/RefinePipeline.tsx b/app/components/pipeline/RefinePipeline.tsx index 3748ebf..1280dce 100644 --- a/app/components/pipeline/RefinePipeline.tsx +++ b/app/components/pipeline/RefinePipeline.tsx @@ -6,7 +6,13 @@ import { Spinner } from '~/components/Spinner'; import { useLitlytics } from '~/store/WithLitLytics'; export function RefinePipeline({ hide }: { hide: () => void }) { - const litlytics = useLitlytics(); + const { + litlytics, + pipeline, + setPipeline, + pipelineStatus, + setPipelineStatus, + } = useLitlytics(); const [error, setError] = useState(); const [refine, setRefine] = useState(``); const [progress, setProgress] = useState(''); @@ -18,40 +24,46 @@ export function RefinePipeline({ hide }: { hide: () => void }) { try { // generate plan from LLM - litlytics.setPipelineStatus({ status: 'refine' }); - await litlytics.refinePipeline({ + setPipelineStatus({ status: 'refine' }); + const newPipeline = await litlytics.refinePipeline({ refineRequest: refine, }); - litlytics.setPipelineStatus({ status: 'init' }); + setPipeline(newPipeline); + setPipelineStatus({ status: 'init' }); setRefine(''); } catch (err) { setError(err as Error); - litlytics.setPipelineStatus({ status: 'error' }); + setPipelineStatus({ status: 'error' }); } }; const doCreate = async () => { try { + setPipelineStatus({ status: 'sourcing' }); // generate plan from LLM - await litlytics.pipelineFromText(({ step, totalSteps }) => { - if (step > totalSteps) { - setProgress(''); - return; - } + const newPipeline = await litlytics.pipelineFromText( + ({ step, totalSteps }) => { + if (step > totalSteps) { + setProgress(''); + return; + } - setProgress(`Generating steps: ${step} / ${totalSteps}`); - }); + setProgress(`Generating steps: ${step} / ${totalSteps}`); + } + ); + setPipeline(newPipeline); + setPipelineStatus({ status: 'done' }); hide(); } catch (err) { setError(err as Error); - litlytics.setPipelineStatus({ status: 'error' }); + setPipelineStatus({ status: 'error' }); } }; const inProgress = - litlytics.pipelineStatus.status === 'refine' || - litlytics.pipelineStatus.status === 'sourcing' || - litlytics.pipelineStatus.status === 'step'; + pipelineStatus.status === 'refine' || + pipelineStatus.status === 'sourcing' || + pipelineStatus.status === 'step'; return (
@@ -59,7 +71,7 @@ export function RefinePipeline({ hide }: { hide: () => void }) {

Suggested pipeline:

- {`${litlytics.pipeline.pipelinePlan}`} + {`${pipeline.pipelinePlan}`}