diff --git a/frontend/src/lib/components/apps/components/display/table/AppAggridTable.svelte b/frontend/src/lib/components/apps/components/display/table/AppAggridTable.svelte
index 5352eaf357..623feeb0aa 100644
--- a/frontend/src/lib/components/apps/components/display/table/AppAggridTable.svelte
+++ b/frontend/src/lib/components/apps/components/display/table/AppAggridTable.svelte
@@ -38,7 +38,7 @@
: [{ error: 'input was not an array' }]
if (api && loaded) {
let selected = api.getSelectedNodes()
- if (selected.length > 0) {
+ if (selected && selected.length > 0) {
let data = { ...selected[0].data }
delete data['__index']
outputs?.selectedRow?.set(data)
diff --git a/frontend/src/lib/components/flows/content/FlowInputs.svelte b/frontend/src/lib/components/flows/content/FlowInputs.svelte
index fa1a3b044c..05df2a0584 100644
--- a/frontend/src/lib/components/flows/content/FlowInputs.svelte
+++ b/frontend/src/lib/components/flows/content/FlowInputs.svelte
@@ -16,6 +16,7 @@
export let failureModule: boolean
export let shouldDisableTriggerScripts: boolean = false
+ export let noEditor: boolean
export let summary: string | undefined = undefined
const dispatch = createEventDispatcher()
@@ -77,41 +78,59 @@
reuse. You can always save an inline script to your workspace later.
+
+ {#if noEditor}
+
Pick a summary first, it will be used to create a separate file whose name will be derived
+ from the summary
+
+
+ {/if}
{
dispatch('new', {
language: RawScript.language.DENO,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
{
dispatch('new', {
language: RawScript.language.PYTHON3,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
{#if kind != 'approval'}
{
dispatch('new', {
language: RawScript.language.GO,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
@@ -119,88 +138,103 @@
{#if kind == 'script'}
{
dispatch('new', {
language: RawScript.language.BASH,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
{
dispatch('new', {
language: RawScript.language.NATIVETS,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
{#if !failureModule}
{
dispatch('new', {
language: RawScript.language.POSTGRESQL,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
{
dispatch('new', {
language: RawScript.language.MYSQL,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
{
dispatch('new', {
language: RawScript.language.BIGQUERY,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
{
dispatch('new', {
language: RawScript.language.SNOWFLAKE,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
{
dispatch('new', {
language: RawScript.language.GRAPHQL,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
{
@@ -219,18 +253,25 @@
)
return
}
- dispatch('new', { language: RawScript.language.BASH, kind, subkind: 'docker' })
+ dispatch('new', {
+ language: RawScript.language.BASH,
+ kind,
+ subkind: 'docker',
+ summary
+ })
}}
/>
{
dispatch('new', {
language: RawScript.language.POWERSHELL,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
@@ -245,13 +286,15 @@
{/if}
{
dispatch('new', {
language: RawScript.language.BUN,
kind,
- subkind: 'flow'
+ subkind: 'flow',
+ summary
})
}}
/>
diff --git a/frontend/src/lib/components/flows/content/FlowModuleWrapper.svelte b/frontend/src/lib/components/flows/content/FlowModuleWrapper.svelte
index 4c62067b5a..a87e201fc6 100644
--- a/frontend/src/lib/components/flows/content/FlowModuleWrapper.svelte
+++ b/frontend/src/lib/components/flows/content/FlowModuleWrapper.svelte
@@ -62,6 +62,7 @@
/>
{:else}
{
- const { language, kind, subkind } = detail
+ const { language, kind, subkind, summary } = detail
const [module, state] = await createInlineScriptModule(
language,
kind,
subkind,
- flowModule.id
+ flowModule.id,
+ summary
)
scriptKind = kind
scriptTemplate = subkind
diff --git a/frontend/src/lib/components/flows/flowStateUtils.ts b/frontend/src/lib/components/flows/flowStateUtils.ts
index 80c1a9fcdf..67ed19c255 100644
--- a/frontend/src/lib/components/flows/flowStateUtils.ts
+++ b/frontend/src/lib/components/flows/flowStateUtils.ts
@@ -69,12 +69,14 @@ export async function createInlineScriptModule(
language: RawScript.language,
kind: Script.kind,
subkind: 'pgsql' | 'flow',
- id: string
+ id: string,
+ summary?: string
): Promise<[FlowModule, FlowModuleState]> {
const code = initialCode(language, kind, subkind)
const flowModule: FlowModule = {
id,
+ summary,
value: { type: 'rawscript', content: code, language, input_transforms: {} }
}
diff --git a/frontend/src/lib/components/flows/header/FlowPreviewButtons.svelte b/frontend/src/lib/components/flows/header/FlowPreviewButtons.svelte
index 44ac05ee63..eb4be3c5c3 100644
--- a/frontend/src/lib/components/flows/header/FlowPreviewButtons.svelte
+++ b/frontend/src/lib/components/flows/header/FlowPreviewButtons.svelte
@@ -28,6 +28,7 @@
'settings-worker-group',
'settings-cache',
'settings-concurrency',
+ 'settings-early-stop',
'inputs',
'schedules',
'failure',
diff --git a/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte b/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte
index 892ea5b499..c749346c0f 100644
--- a/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte
+++ b/frontend/src/lib/components/flows/map/FlowModuleSchemaMap.svelte
@@ -30,7 +30,7 @@
export let modules: FlowModule[] | undefined
export let sidebarSize: number | undefined = undefined
- export let disableHeader = false
+ export let disableStaticInputs = false
export let disableTutorials = false
export let disableAi = false
export let smallErrorHandler = false
@@ -189,19 +189,19 @@
- {#if !disableHeader}
-
- {#if $copilotCurrentStepStore !== undefined}
-
- {/if}
-
+
+ {#if $copilotCurrentStepStore !== undefined}
+
+ {/if}
+
+ {#if !disableStaticInputs}
-
- {/if}
+ {/if}
+
{},
initialPath: ''
})
+
type LastEdit = {
content: string
path: string
@@ -173,6 +174,16 @@
editor.setCode(JSON.stringify(flow, null, 4))
}
}
+
+ function updateFromCode(code: string) {
+ try {
+ if (!deepEqual(JSON.parse(code), $flowStore)) {
+ $flowStore = JSON.parse(code)
+ }
+ } catch (e) {
+ console.error('issue parsing new change:', code, e)
+ }
+ }
@@ -186,14 +197,7 @@
code={initialCode}
lang="json"
on:change={(e) => {
- const code = e.detail.code
- try {
- if (!deepEqual(JSON.parse(code), $flowStore)) {
- $flowStore = JSON.parse(code)
- }
- } catch (e) {
- console.error('issue parsing new change:', code, e)
- }
+ updateFromCode(e.detail.code)
}}
/>
@@ -208,6 +212,7 @@
disableAi
disableTutorials
smallErrorHandler={true}
+ disableStaticInputs
/>
{:else}
Missing flow modules