(hover = true)}
+ on:mouseleave={() => (hover = false)}
on:click
>
@@ -67,7 +137,7 @@
class="center-center rounded border bg-surface border-gray-400 text-secondary px-1 py-0.5"
>
{#if retries}{retries}{/if}
-
+
Retries
@@ -79,7 +149,7 @@
transition:fade|local={{ duration: 200 }}
class="center-center rounded border bg-surface border-gray-400 text-secondary px-1 py-0.5"
>
-
+
{#if $$slots.icon}
{/if}
{label}
-
+
{#if id}
{id}
+
+ {#if deletable}
+
+ {/if}
{/if}
{#if deletable}
{#if (id && Object.values($flowInputsStore?.[id]?.flowStepWarnings || {}).length > 0) || Boolean(warningMessage)}
diff --git a/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte b/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte
index c38f25ccbc2f5..618d6c763a34b 100644
--- a/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte
+++ b/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte
@@ -30,6 +30,7 @@
import { ignoredTutorials } from '$lib/components/tutorials/ignoredTutorials'
import { tutorialInProgress } from '$lib/tutorialUtils'
import FlowGraphV2 from '$lib/components/graph/FlowGraphV2.svelte'
+ import { replaceId } from '../flowStore'
export let modules: FlowModule[] | undefined
export let sidebarSize: number | undefined = undefined
@@ -328,6 +329,35 @@
$flowStore = $flowStore
}
}}
+ on:changeId={({ detail }) => {
+ let { id, newId, deps } = detail
+ dfs($flowStore.value.modules, (mod) => {
+ if (deps[mod.id]) {
+ deps[mod.id].forEach((dep) => {
+ if (
+ mod.value.type == 'rawscript' ||
+ mod.value.type == 'script' ||
+ mod.value.type == 'flow'
+ ) {
+ mod.value.input_transforms = Object.fromEntries(
+ Object.entries(mod.value.input_transforms).map(([k, v]) => {
+ if (v.type == 'javascript') {
+ return [k, { ...v, expr: replaceId(v.expr, id, newId) }]
+ } else {
+ return [k, v]
+ }
+ })
+ )
+ }
+ })
+ }
+ if (mod.id == id) {
+ mod.id = newId
+ }
+ })
+ $flowStore = $flowStore
+ $selectedId = newId
+ }}
on:deleteBranch={async ({ detail }) => {
if (detail.module) {
await removeBranch(detail.module, detail.index)
diff --git a/frontend/src/lib/components/flows/map/InsertModuleButton.svelte b/frontend/src/lib/components/flows/map/InsertModuleButton.svelte
index e0de72a068d2e..40cce9648fd0a 100644
--- a/frontend/src/lib/components/flows/map/InsertModuleButton.svelte
+++ b/frontend/src/lib/components/flows/map/InsertModuleButton.svelte
@@ -35,13 +35,13 @@
id={`flow-editor-add-step-${index}`}
type="button"
class={twMerge(
- 'w-6 h-6 flex items-center justify-center',
- 'border border-gray-300 dark:border-gray-500',
- 'text-primary text-sm',
- 'bg-surface focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-surface-selected rounded-full '
+ 'w-5 h-5 flex items-center justify-center',
+ 'outline-[1px] outline dark:outline-gray-500 outline-gray-300',
+ 'text-secondary',
+ 'bg-surface focus:outline-none hover:bg-surface-hover rounded '
)}
>
-
+
diff --git a/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte b/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte
index 03d819b2c53c9..35dc3311612e9 100644
--- a/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte
+++ b/frontend/src/lib/components/flows/map/InsertTriggerButton.svelte
@@ -27,9 +27,9 @@
title="Add a Trigger"
slot="trigger"
type="button"
- class="text-primary bg-surface border-[1px] mx-[1px] border-gray-300 dark:border-gray-500 rotate-180 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-gray-200 font-medium rounded-full text-sm w-[25px] h-[25px] flex items-center justify-center"
+ class="text-secondary bg-surface outline-[1px] outline dark:outline-gray-500 outline-gray-300 rotate-180 focus:outline-none hover:bg-surface-hover focus:ring-4 focus:ring-gray-200 font-medium rounded text-sm w-[20px] h-[20px] flex items-center justify-center"
>
-
+
{#if !disableAi}
diff --git a/frontend/src/lib/components/flows/map/MapItem.svelte b/frontend/src/lib/components/flows/map/MapItem.svelte
index 6efca43558210..c7c78e6a84882 100644
--- a/frontend/src/lib/components/flows/map/MapItem.svelte
+++ b/frontend/src/lib/components/flows/map/MapItem.svelte
@@ -102,6 +102,7 @@
mod.value.skip_failures ? '(skip failures)' : ''
}`}
id={mod.id}
+ on:changeId
on:move={() => dispatch('move')}
on:delete={onDelete}
on:click={() => dispatch('select', mod.id)}
@@ -120,6 +121,7 @@
{:else if mod.value.type === 'branchone'}
dispatch('move')}
on:click={() => dispatch('select', mod.id)}
@@ -135,6 +137,7 @@
{:else if mod.value.type === 'branchall'}
dispatch('move')}
on:click={() => dispatch('select', mod.id)}
@@ -150,6 +153,7 @@
{:else}
dispatch('select', mod.id)}
on:delete={onDelete}
on:move={() => dispatch('move')}
diff --git a/frontend/src/lib/components/flows/map/VirtualItem.svelte b/frontend/src/lib/components/flows/map/VirtualItem.svelte
index 4ab598bf9c359..c69e743d7fd64 100644
--- a/frontend/src/lib/components/flows/map/VirtualItem.svelte
+++ b/frontend/src/lib/components/flows/map/VirtualItem.svelte
@@ -5,7 +5,7 @@
import { createEventDispatcher, getContext } from 'svelte'
import type { FlowCopilotContext } from '$lib/components/copilot/flow'
- export let label: string
+ export let label: string | undefined = undefined
export let bgColor: string = ''
export let selected: boolean
export let selectable: boolean
@@ -13,6 +13,7 @@
export let center = true
export let borderColor: string | undefined = undefined
export let hideId: boolean = false
+ export let preLabel: string | undefined = undefined
const dispatch = createEventDispatcher<{
insert: {
@@ -35,8 +36,7 @@
'w-full flex relative overflow-hidden rounded-sm',
selectable ? 'cursor-pointer' : '',
selected ? 'outline outline-offset-1 outline-2 outline-gray-600' : '',
- label === 'Input' && $copilotCurrentStepStore === 'Input' ? 'z-[901]' : '',
- 'bg-surface'
+ label === 'Input' && $copilotCurrentStepStore === 'Input' ? 'z-[901]' : ''
)}
style="width: 275px; max-height: 34px; background-color: {bgColor} !important;"
on:click={() => {
@@ -44,14 +44,15 @@
if (id) {
dispatch('select', id)
} else {
- dispatch('select', label)
+ dispatch('select', label || label || '')
}
}
}}
- id={`flow-editor-virtual-${encodeURIComponent(label)}`}
+ title={(label ? label + ' ' : '') + (label ?? '')}
+ id={`flow-editor-virtual-${encodeURIComponent(label || label || '')}`}
>
{/if}
-
+
+ {#if label}
+
{label}
+ {/if}
+ {#if preLabel}
+
+ {/if}
+
{#if id && !hideId}
{id}
diff --git a/frontend/src/lib/components/graph/FlowGraphV2.svelte b/frontend/src/lib/components/graph/FlowGraphV2.svelte
index 9ccd540c6d4c4..56b693dc11c39 100644
--- a/frontend/src/lib/components/graph/FlowGraphV2.svelte
+++ b/frontend/src/lib/components/graph/FlowGraphV2.svelte
@@ -146,6 +146,9 @@
dispatch('select', modId)
}
},
+ changeId: (detail) => {
+ dispatch('changeId', detail)
+ },
delete: (detail, label) => {
$selectedId = label
@@ -274,6 +277,7 @@
showLock={false}
showZoom={false}
showFitView={false}
+ class="!shadow-none"
>
{#if showDataflow}
void
move: (module: FlowModule, modules: FlowModule[]) => void
selectedIteration: (detail, moduleId: string) => void
+ changeId: (newId: string) => void
}
export default function graphBuilder(
@@ -354,11 +355,8 @@ export default function graphBuilder(
id: `${module.id}-branch-${branchIndex}`,
data: {
offset: currentOffset,
- label:
- defaultIfEmptyString(branch.summary, 'Branch ' + (branchIndex + 1)) +
- '\n`' +
- branch.expr +
- '`',
+ label: defaultIfEmptyString(branch.summary, 'Branch ' + (branchIndex + 1)),
+ preLabel: branch.summary ? '' : branch.expr,
id: module.id,
branchIndex: branchIndex,
modules: modules,
diff --git a/frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte b/frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte
index 34a3ab27f5180..cc0bd3bd3bc48 100644
--- a/frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte
+++ b/frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte
@@ -47,7 +47,7 @@
{#if !$copilotInfo.exists_openai_resource_path}
diff --git a/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte b/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte
index 67d3ad2ff3660..dd66cc4051ff0 100644
--- a/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte
+++ b/frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte
@@ -56,7 +56,7 @@
'/' +
(state?.iteration_total ?? '?')
: ''}
- bgColor={getStateColor(type, darkMode, '#fff')}
+ bgColor={getStateColor(type, darkMode, true)}
modules={data.modules ?? []}
moving={data.moving}
duration_ms={state?.duration_ms}
@@ -68,6 +68,9 @@
on:insert={(e) => {
data.eventHandlers.insert(e.detail)
}}
+ on:changeId={(e) => {
+ data.eventHandlers.changeId(e.detail)
+ }}
on:move={(e) => {
data.eventHandlers.move(data.module, data.modules)
}}
@@ -87,7 +90,7 @@
{#if (data.value.type === 'branchall' || data.value.type === 'branchone') && data.insertable}