windmill-components 1.555.0 → 1.558.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package/components/AIAgentLogViewer.svelte.d.ts +3 -3
- package/package/components/AIProviderPicker.svelte.d.ts +3 -3
- package/package/components/ArgInput.svelte +2 -0
- package/package/components/DBManager.svelte.d.ts +3 -3
- package/package/components/DBManagerDrawer.svelte.d.ts +3 -3
- package/package/components/DBSchemaExplorer.svelte.d.ts +3 -3
- package/package/components/DBTable.svelte.d.ts +3 -3
- package/package/components/DBTableEditor.svelte +9 -12
- package/package/components/DBTableEditor.svelte.d.ts +3 -3
- package/package/components/DateTimeInput.svelte +19 -13
- package/package/components/DateTimeInput.svelte.d.ts +5 -0
- package/package/components/DucklakePicker.svelte +32 -0
- package/package/components/DucklakePicker.svelte.d.ts +13 -0
- package/package/components/Editor.svelte +1 -1
- package/package/components/EditorBar.svelte +14 -1
- package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
- package/package/components/FlowGraphViewerStep.svelte +1 -1
- package/package/components/FlowPreviewContent.svelte +1 -1
- package/package/components/HighlightCode.svelte +21 -10
- package/package/components/HighlightCode.svelte.d.ts +12 -22
- package/package/components/InputTransformForm.svelte +9 -41
- package/package/components/InstanceSetting.svelte +1 -6
- package/package/components/ResourceEditor.svelte +1 -1
- package/package/components/ResourcePicker.svelte +0 -5
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +50 -34
- package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte +7 -5
- package/package/components/apps/components/display/dbtable/DbExplorerCount.svelte.d.ts +2 -2
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte +2 -2
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte.d.ts +3 -2
- package/package/components/apps/components/display/dbtable/InsertRow.svelte +13 -7
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +6 -3
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte.d.ts +2 -1
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte +2 -2
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte.d.ts +3 -2
- package/package/components/apps/components/display/dbtable/queries/count.d.ts +2 -1
- package/package/components/apps/components/display/dbtable/queries/count.js +28 -18
- package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +1 -1
- package/package/components/apps/components/display/dbtable/queries/createTable.js +1 -1
- package/package/components/apps/components/display/dbtable/queries/delete.d.ts +2 -1
- package/package/components/apps/components/display/dbtable/queries/delete.js +19 -10
- package/package/components/apps/components/display/dbtable/queries/insert.d.ts +2 -1
- package/package/components/apps/components/display/dbtable/queries/insert.js +16 -10
- package/package/components/apps/components/display/dbtable/queries/select.d.ts +2 -1
- package/package/components/apps/components/display/dbtable/queries/select.js +20 -16
- package/package/components/apps/components/display/dbtable/queries/update.d.ts +2 -1
- package/package/components/apps/components/display/dbtable/queries/update.js +19 -10
- package/package/components/apps/components/display/dbtable/utils.d.ts +1 -1
- package/package/components/apps/components/display/dbtable/utils.js +12 -3
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +9 -1
- package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +2 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte +2 -1
- package/package/components/apps/components/display/table/AppAggridInfiniteTableEe.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridTable.svelte +9 -1
- package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
- package/package/components/apps/components/display/table/AppAggridTableEe.svelte +2 -1
- package/package/components/apps/components/display/table/AppAggridTableEe.svelte.d.ts +1 -0
- package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -1
- package/package/components/apps/components/inputs/AppDateInput.svelte +1 -0
- package/package/components/apps/editor/AppEditor.svelte +6 -1
- package/package/components/apps/editor/AppEditorHeader.svelte +12 -8
- package/package/components/apps/editor/AppJobsDrawer.svelte +5 -5
- package/package/components/apps/editor/component/ComponentInner.svelte +4 -0
- package/package/components/apps/editor/component/components.d.ts +16 -0
- package/package/components/apps/editor/component/components.js +17 -1
- package/package/components/apps/editor/settingsPanel/AGChartRichEditor.svelte.d.ts +3 -3
- package/package/components/apps/editor/settingsPanel/CSSMigrationModal.svelte.d.ts +3 -3
- package/package/components/apps/editor/settingsPanel/ChartJSRichEditor.svelte.d.ts +3 -3
- package/package/components/apps/editor/settingsPanel/ComponentInputTypeEditor.svelte +23 -23
- package/package/components/apps/editor/settingsPanel/EventHandlers.svelte +7 -2
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +1 -0
- package/package/components/apps/editor/settingsPanel/InputsSpecsEditor.svelte +2 -1
- package/package/components/apps/editor/settingsPanel/inputEditor/DBTableSelect.svelte.d.ts +3 -3
- package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +10 -0
- package/package/components/apps/inputType.d.ts +2 -2
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/button/ConnectionButton.svelte +12 -14
- package/package/components/common/button/ConnectionButton.svelte.d.ts +5 -18
- package/package/components/copilot/AIFormAssistant.svelte.d.ts +3 -3
- package/package/components/copilot/AIFormSettings.svelte.d.ts +3 -3
- package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -3
- package/package/components/copilot/StepInputsGen.svelte +1 -1
- package/package/components/copilot/TestAIKey.svelte.d.ts +3 -3
- package/package/components/copilot/chat/AIChat.svelte.d.ts +3 -3
- package/package/components/copilot/chat/AIChatDisplay.svelte.d.ts +3 -3
- package/package/components/copilot/chat/AIChatInlineWidget.svelte.d.ts +3 -3
- package/package/components/copilot/chat/AIChatInput.svelte.d.ts +3 -3
- package/package/components/copilot/chat/AIChatMessage.svelte.d.ts +3 -3
- package/package/components/copilot/chat/ContextElementBadge.svelte +2 -2
- package/package/components/copilot/chat/flow/AIChangesWarningModal.svelte.d.ts +3 -3
- package/package/components/copilot/chat/flow/FlowAIButton.svelte.d.ts +3 -3
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -1
- package/package/components/copilot/chat/flow/FlowAIChat.svelte.d.ts +3 -3
- package/package/components/copilot/chat/script/CodeDisplay.svelte +30 -9
- package/package/components/copilot/chat/script/core.d.ts +2 -1
- package/package/components/copilot/chat/script/core.js +6 -1
- package/package/components/details/DetailPageLayout.svelte +11 -3
- package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
- package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
- package/package/components/flows/content/FlowInput.svelte +1 -1
- package/package/components/flows/content/FlowInputsQuick.svelte +1 -1
- package/package/components/flows/content/FlowLoop.svelte +143 -10
- package/package/components/flows/conversations/FlowChatInterface.svelte +110 -0
- package/package/components/flows/{FlowChatInterface.svelte.d.ts → conversations/FlowChatInterface.svelte.d.ts} +1 -1
- package/package/components/flows/conversations/FlowChatManager.svelte.d.ts +52 -0
- package/package/components/flows/conversations/FlowChatManager.svelte.js +422 -0
- package/package/components/flows/conversations/FlowChatMessage.svelte +68 -0
- package/package/components/flows/{FlowChatMessage.svelte.d.ts → conversations/FlowChatMessage.svelte.d.ts} +2 -4
- package/package/components/flows/{FlowConversationsSidebar.svelte → conversations/FlowConversationsSidebar.svelte} +6 -6
- package/package/components/flows/flowInfers.js +1 -1
- package/package/components/flows/scheduleUtils.js +2 -1
- package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +3 -3
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte.d.ts +3 -3
- package/package/components/icons/CACertificate.svelte.d.ts +3 -3
- package/package/components/icons/MSSqlServerIcon.svelte.d.ts +3 -3
- package/package/components/icons/MSTeamsIcon.svelte.d.ts +3 -3
- package/package/components/icons/OracleDBIcon.svelte.d.ts +3 -3
- package/package/components/icons/PHPIcon.svelte.d.ts +3 -3
- package/package/components/icons/QRCodeIcon.svelte.d.ts +3 -3
- package/package/components/instanceSettings.js +11 -2
- package/package/components/runs/JobsLoader.svelte +3 -3
- package/package/components/runs/RunRow.svelte +1 -1
- package/package/components/schema/SchemaFormDND.svelte.d.ts +3 -3
- package/package/components/settings/AIUserSettings.svelte.d.ts +3 -3
- package/package/components/sidebar/SidebarContent.svelte +2 -2
- package/package/components/text_input/TextInput.svelte.d.ts +1 -1
- package/package/components/triggers/http/OpenAPISpecGenerator.svelte.d.ts +3 -3
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +42 -1
- package/package/components/vscode.js +16 -12
- package/package/components/wizards/ChartJSWizard.svelte.d.ts +3 -3
- package/package/components/wizards/DBExplorerWizard.svelte.d.ts +3 -3
- package/package/components/wizards/LoggedWizardResult.svelte +95 -0
- package/package/components/wizards/LoggedWizardResult.svelte.d.ts +17 -0
- package/package/components/workspaceSettings/AISettings.svelte.d.ts +3 -3
- package/package/components/workspaceSettings/DucklakeSettings.svelte +223 -89
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +73 -5
- package/package/gen/schemas.gen.js +73 -5
- package/package/gen/services.gen.d.ts +8 -8
- package/package/gen/services.gen.js +14 -12
- package/package/gen/types.gen.d.ts +69 -18
- package/package/svelte5Utils.svelte.d.ts +1 -0
- package/package/svelte5Utils.svelte.js +6 -0
- package/package/utils.js +2 -5
- package/package.json +13 -15
- package/package/components/flows/FlowChatInterface.svelte +0 -404
- package/package/components/flows/FlowChatMessage.svelte +0 -41
- package/package/components/meltComponents/Menubar.svelte.d.ts +0 -503
- /package/package/components/flows/{FlowConversationsSidebar.svelte.d.ts → conversations/FlowConversationsSidebar.svelte.d.ts} +0 -0
|
@@ -39,6 +39,29 @@ const iconOnlyThreshold = 300;
|
|
|
39
39
|
{#if componentInput.fieldType !== 'any'}
|
|
40
40
|
<div class="w-full">
|
|
41
41
|
<div class="flex gap-2 justify-end" bind:clientWidth>
|
|
42
|
+
<div class="flex">
|
|
43
|
+
<ConnectionButton
|
|
44
|
+
closeConnection={() => {
|
|
45
|
+
$connectingInput = {
|
|
46
|
+
opened: false,
|
|
47
|
+
hoveredComponent: undefined,
|
|
48
|
+
input: undefined,
|
|
49
|
+
onConnect: () => {}
|
|
50
|
+
}
|
|
51
|
+
dispatch('select', true)
|
|
52
|
+
}}
|
|
53
|
+
openConnection={() => {
|
|
54
|
+
$connectingInput = {
|
|
55
|
+
opened: true,
|
|
56
|
+
input: undefined,
|
|
57
|
+
hoveredComponent: undefined,
|
|
58
|
+
onConnect: applyConnection
|
|
59
|
+
}
|
|
60
|
+
}}
|
|
61
|
+
isOpen={!!$connectingInput.opened}
|
|
62
|
+
/>
|
|
63
|
+
</div>
|
|
64
|
+
|
|
42
65
|
<ToggleButtonGroup
|
|
43
66
|
on:selected={() => {
|
|
44
67
|
onchange?.()
|
|
@@ -104,29 +127,6 @@ const iconOnlyThreshold = 300;
|
|
|
104
127
|
/>
|
|
105
128
|
{/snippet}
|
|
106
129
|
</ToggleButtonGroup>
|
|
107
|
-
|
|
108
|
-
<div class="flex">
|
|
109
|
-
<ConnectionButton
|
|
110
|
-
closeConnection={() => {
|
|
111
|
-
$connectingInput = {
|
|
112
|
-
opened: false,
|
|
113
|
-
hoveredComponent: undefined,
|
|
114
|
-
input: undefined,
|
|
115
|
-
onConnect: () => {}
|
|
116
|
-
}
|
|
117
|
-
dispatch('select', true)
|
|
118
|
-
}}
|
|
119
|
-
openConnection={() => {
|
|
120
|
-
$connectingInput = {
|
|
121
|
-
opened: true,
|
|
122
|
-
input: undefined,
|
|
123
|
-
hoveredComponent: undefined,
|
|
124
|
-
onConnect: applyConnection
|
|
125
|
-
}
|
|
126
|
-
}}
|
|
127
|
-
isOpen={!!$connectingInput.opened}
|
|
128
|
-
/>
|
|
129
|
-
</div>
|
|
130
130
|
</div>
|
|
131
131
|
</div>
|
|
132
132
|
{/if}
|
|
@@ -25,7 +25,12 @@ const componentsWithEventHandler = [
|
|
|
25
25
|
'textinputcomponent',
|
|
26
26
|
'textareainputcomponent',
|
|
27
27
|
'passwordinputcomponent',
|
|
28
|
-
'emailinputcomponent'
|
|
28
|
+
'emailinputcomponent',
|
|
29
|
+
'aggridcomponent',
|
|
30
|
+
'aggridcomponentee',
|
|
31
|
+
'aggridinfinitecomponent',
|
|
32
|
+
'aggridinfinitecomponentee',
|
|
33
|
+
'dbexplorercomponent'
|
|
29
34
|
];
|
|
30
35
|
</script>
|
|
31
36
|
|
|
@@ -76,7 +81,7 @@ const componentsWithEventHandler = [
|
|
|
76
81
|
bind:value={item.data.onToggle}
|
|
77
82
|
/>
|
|
78
83
|
{/if}
|
|
79
|
-
{#if item.data.type === 'dateinputcomponent' || item.data.type === 'datetimeinputcomponent' || item.data.type === 'timeinputcomponent' || item.data.type === 'numberinputcomponent' || item.data.type === 'textinputcomponent' || item.data.type === 'textareainputcomponent' || item.data.type === 'passwordinputcomponent' || item.data.type === 'emailinputcomponent'}
|
|
84
|
+
{#if item.data.type === 'dateinputcomponent' || item.data.type === 'datetimeinputcomponent' || item.data.type === 'timeinputcomponent' || item.data.type === 'numberinputcomponent' || item.data.type === 'textinputcomponent' || item.data.type === 'textareainputcomponent' || item.data.type === 'passwordinputcomponent' || item.data.type === 'emailinputcomponent' || item.data.type === 'aggridcomponent' || item.data.type === 'aggridcomponentee' || item.data.type === 'aggridinfinitecomponent' || item.data.type === 'aggridinfinitecomponentee' || item.data.type === 'dbexplorercomponent'}
|
|
80
85
|
<EventHandlerItem
|
|
81
86
|
title="on change"
|
|
82
87
|
tooltip="When a human change the value of the input"
|
|
@@ -109,6 +109,7 @@ function openConnection() {
|
|
|
109
109
|
<div class={classNames('flex gap-x-2 gap-y-1 justify-end items-center')}>
|
|
110
110
|
{#if componentInput?.type && allowTypeChange !== false}
|
|
111
111
|
<ConnectionButton
|
|
112
|
+
small
|
|
112
113
|
{closeConnection}
|
|
113
114
|
{openConnection}
|
|
114
115
|
isOpen={!!$connectingInput.opened}
|
|
@@ -4,6 +4,6 @@ interface Props {
|
|
|
4
4
|
selectOptions?: StaticOptions['selectOptions'] | undefined;
|
|
5
5
|
id: string | undefined;
|
|
6
6
|
}
|
|
7
|
-
declare const
|
|
8
|
-
type
|
|
9
|
-
export default
|
|
7
|
+
declare const DBTableSelect: import("svelte").Component<Props, {}, "componentInput">;
|
|
8
|
+
type DBTableSelect = ReturnType<typeof DBTableSelect>;
|
|
9
|
+
export default DBTableSelect;
|
|
@@ -24,6 +24,7 @@ import AppPicker from '../../../../wizards/AppPicker.svelte';
|
|
|
24
24
|
import JsonEditor from '../../../../JsonEditor.svelte';
|
|
25
25
|
import S3FilePicker from '../../../../S3FilePicker.svelte';
|
|
26
26
|
import FileUpload from '../../../../common/fileUpload/FileUpload.svelte';
|
|
27
|
+
import DucklakePicker from '../../../../DucklakePicker.svelte';
|
|
27
28
|
let { componentInput = $bindable(), fieldType = undefined, subFieldType = undefined, selectOptions = undefined, placeholder = undefined, format = undefined, id } = $props();
|
|
28
29
|
const appContext = getContext('AppViewerContext');
|
|
29
30
|
$effect(() => {
|
|
@@ -119,6 +120,15 @@ let s3FilePicker = $state(undefined);
|
|
|
119
120
|
}
|
|
120
121
|
resourceType="s3"
|
|
121
122
|
/>
|
|
123
|
+
{:else if fieldType === 'ducklake'}
|
|
124
|
+
<DucklakePicker
|
|
125
|
+
class="w-full"
|
|
126
|
+
bind:value={
|
|
127
|
+
() => componentInput?.value?.split('ducklake://')?.[1],
|
|
128
|
+
(v) => componentInput && (componentInput.value = v ? `ducklake://${v}` : undefined)
|
|
129
|
+
}
|
|
130
|
+
showSchemaExplorer
|
|
131
|
+
/>
|
|
122
132
|
{:else if fieldType === 'labeledresource'}
|
|
123
133
|
{#if componentInput?.value && typeof componentInput?.value == 'object' && 'label' in componentInput?.value && (componentInput.value?.['value'] == undefined || typeof componentInput.value?.['value'] == 'string')}
|
|
124
134
|
<div class="flex flex-col gap-1 w-full">
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ReadFileAs } from '../common/fileInput/model';
|
|
2
2
|
import type { DecisionTreeNode, TypedComponent } from './editor/component';
|
|
3
3
|
import type { InlineScript } from './types';
|
|
4
|
-
export type InputType = 'integer' | 'text' | 'textarea' | 'template' | 'number' | 'boolean' | 'select' | 'icon-select' | 'color' | 'date' | 'time' | 'datetime' | 'object' | 'array' | 'any' | 'labeledresource' | 'labeledselect' | 'tab-select' | 'schema' | 'ag-grid' | 'table-column' | 'plotly' | 'chartjs' | 'DecisionTreeNode' | 'ag-chart' | 'resource' | 'db-explorer' | 'db-table' | 's3' | 'number-tuple' | 'postgres' | 'mysql' | 'ms_sql_server' | 'snowflake' | 'snowflake_oauth' | 'bigquery' | 'oracledb' | 'app-path';
|
|
4
|
+
export type InputType = 'integer' | 'text' | 'textarea' | 'template' | 'number' | 'boolean' | 'select' | 'icon-select' | 'color' | 'date' | 'time' | 'datetime' | 'object' | 'array' | 'any' | 'labeledresource' | 'labeledselect' | 'tab-select' | 'schema' | 'ag-grid' | 'table-column' | 'plotly' | 'chartjs' | 'DecisionTreeNode' | 'ag-chart' | 'resource' | 'db-explorer' | 'db-table' | 's3' | 'number-tuple' | 'postgres' | 'mysql' | 'ms_sql_server' | 'snowflake' | 'snowflake_oauth' | 'bigquery' | 'oracledb' | 'ducklake' | 'app-path';
|
|
5
5
|
export type InputConnection = {
|
|
6
6
|
componentType?: TypedComponent['type'];
|
|
7
7
|
componentId: string;
|
|
@@ -129,7 +129,7 @@ export type StaticOptions = {
|
|
|
129
129
|
label: string;
|
|
130
130
|
}[];
|
|
131
131
|
};
|
|
132
|
-
export type AppInput = AppInputSpec<'text', string> | AppInputSpec<'textarea', string> | AppInputSpec<'template', string> | AppInputSpec<'number', number> | AppInputSpec<'boolean', boolean> | AppInputSpec<'date', string> | AppInputSpec<'time', string> | AppInputSpec<'datetime', string> | AppInputSpec<'any', any> | AppInputSpec<'object', Record<string | number, any>> | AppInputSpec<'object', string> | (AppInputSpec<'select', string, 'db-table'> & StaticOptions) | AppInputSpec<'icon-select', string> | AppInputSpec<'color', string> | AppInputSpec<'array', string[], 'text'> | AppInputSpec<'array', string[], 'textarea'> | AppInputSpec<'array', number[], 'number'> | AppInputSpec<'array', boolean[], 'boolean'> | AppInputSpec<'array', string[], 'date'> | AppInputSpec<'array', string[], 'time'> | AppInputSpec<'array', string[], 'datetime'> | AppInputSpec<'array', object[], 'object'> | (AppInputSpec<'array', string[], 'select'> & StaticOptions) | AppInputSpec<'array', object[], 'labeledresource'> | AppInputSpec<'array', (object | string)[], 'labeledselect'> | AppInputSpec<'labeledselect', object> | AppInputSpec<'labeledresource', object> | AppInputSpec<'array', object[], 'tab-select'> | AppInputSpec<'schema', object> | AppInputSpec<'array', object[], 'ag-grid'> | AppInputSpec<'array', object[], 'db-explorer'> | AppInputSpec<'array', object[], 'table-column'> | AppInputSpec<'array', object[], 'plotly'> | AppInputSpec<'array', object[], 'chartjs'> | AppInputSpec<'array', DecisionTreeNode, 'DecisionTreeNode'> | AppInputSpec<'array', object[], 'ag-chart'> | AppInputSpec<'resource', string> | AppInputSpec<'resource', string, 's3'> | AppInputSpec<'resource', string, 'postgres'> | AppInputSpec<'resource', string, 'mysql'> | AppInputSpec<'resource', string, 'ms_sql_server'> | AppInputSpec<'resource', string, 'snowflake'> | AppInputSpec<'resource', string, 'snowflake_oauth'> | AppInputSpec<'resource', string, 'bigquery'> | AppInputSpec<'resource', string, 'oracledb'> | AppInputSpec<'array', object[], 'number-tuple'> | AppInputSpec<'app-path', string>;
|
|
132
|
+
export type AppInput = AppInputSpec<'text', string> | AppInputSpec<'textarea', string> | AppInputSpec<'template', string> | AppInputSpec<'number', number> | AppInputSpec<'boolean', boolean> | AppInputSpec<'date', string> | AppInputSpec<'time', string> | AppInputSpec<'datetime', string> | AppInputSpec<'any', any> | AppInputSpec<'object', Record<string | number, any>> | AppInputSpec<'object', string> | (AppInputSpec<'select', string, 'db-table'> & StaticOptions) | AppInputSpec<'icon-select', string> | AppInputSpec<'color', string> | AppInputSpec<'array', string[], 'text'> | AppInputSpec<'array', string[], 'textarea'> | AppInputSpec<'array', number[], 'number'> | AppInputSpec<'array', boolean[], 'boolean'> | AppInputSpec<'array', string[], 'date'> | AppInputSpec<'array', string[], 'time'> | AppInputSpec<'array', string[], 'datetime'> | AppInputSpec<'array', object[], 'object'> | (AppInputSpec<'array', string[], 'select'> & StaticOptions) | AppInputSpec<'array', object[], 'labeledresource'> | AppInputSpec<'array', (object | string)[], 'labeledselect'> | AppInputSpec<'labeledselect', object> | AppInputSpec<'labeledresource', object> | AppInputSpec<'array', object[], 'tab-select'> | AppInputSpec<'schema', object> | AppInputSpec<'array', object[], 'ag-grid'> | AppInputSpec<'array', object[], 'db-explorer'> | AppInputSpec<'array', object[], 'table-column'> | AppInputSpec<'array', object[], 'plotly'> | AppInputSpec<'array', object[], 'chartjs'> | AppInputSpec<'array', DecisionTreeNode, 'DecisionTreeNode'> | AppInputSpec<'array', object[], 'ag-chart'> | AppInputSpec<'resource', string> | AppInputSpec<'resource', string, 's3'> | AppInputSpec<'resource', string, 'postgres'> | AppInputSpec<'resource', string, 'mysql'> | AppInputSpec<'resource', string, 'ms_sql_server'> | AppInputSpec<'resource', string, 'snowflake'> | AppInputSpec<'resource', string, 'snowflake_oauth'> | AppInputSpec<'resource', string, 'bigquery'> | AppInputSpec<'resource', string, 'oracledb'> | AppInputSpec<'ducklake', string, 'ducklake'> | AppInputSpec<'array', object[], 'number-tuple'> | AppInputSpec<'app-path', string>;
|
|
133
133
|
export type RowAppInput = Extract<AppInput, {
|
|
134
134
|
type: 'row';
|
|
135
135
|
}>;
|
|
@@ -13,6 +13,6 @@ interface Props {
|
|
|
13
13
|
actionKind?: ActionKind | 'all';
|
|
14
14
|
scope?: undefined | 'all_workspaces' | 'instance';
|
|
15
15
|
}
|
|
16
|
-
declare const AuditLogsFilters: import("svelte").Component<Props, {}, "resource" | "username" | "operation" | "
|
|
16
|
+
declare const AuditLogsFilters: import("svelte").Component<Props, {}, "resource" | "username" | "operation" | "logs" | "before" | "after" | "perPage" | "hasMore" | "pageIndex" | "actionKind" | "scope">;
|
|
17
17
|
type AuditLogsFilters = ReturnType<typeof AuditLogsFilters>;
|
|
18
18
|
export default AuditLogsFilters;
|
|
@@ -4,12 +4,8 @@ import AnimatedButton from './AnimatedButton.svelte';
|
|
|
4
4
|
import Button from './Button.svelte';
|
|
5
5
|
import { getContext } from 'svelte';
|
|
6
6
|
import { twMerge } from 'tailwind-merge';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
export let closeConnection;
|
|
10
|
-
export let btnWrapperClasses = '';
|
|
11
|
-
export let id = undefined;
|
|
12
|
-
let selected = false;
|
|
7
|
+
let { isOpen = false, openConnection, closeConnection, btnWrapperClasses = '', id = undefined, small } = $props();
|
|
8
|
+
let selected = $state(false);
|
|
13
9
|
const { panzoomActive } = getContext('AppViewerContext');
|
|
14
10
|
async function getConnectionButtonElements() {
|
|
15
11
|
return Array.from(document.querySelectorAll('[data-connection-button], [data-connection-button] *'));
|
|
@@ -38,24 +34,26 @@ function handleKeyDown(e) {
|
|
|
38
34
|
handleConnect();
|
|
39
35
|
}
|
|
40
36
|
}
|
|
41
|
-
function handlePointerDownOutside(
|
|
37
|
+
function handlePointerDownOutside() {
|
|
42
38
|
if (!$panzoomActive) {
|
|
43
39
|
deactivateConnection();
|
|
44
40
|
}
|
|
45
41
|
}
|
|
46
|
-
|
|
42
|
+
$effect(() => {
|
|
43
|
+
!isOpen && (selected = false);
|
|
44
|
+
});
|
|
47
45
|
</script>
|
|
48
46
|
|
|
49
|
-
<!-- svelte-ignore
|
|
47
|
+
<!-- svelte-ignore a11y_no_static_element_interactions -->
|
|
50
48
|
<div
|
|
51
49
|
use:pointerDownOutside={{
|
|
52
50
|
capture: true,
|
|
53
51
|
stopPropagation: isOpen,
|
|
54
52
|
exclude: getConnectionButtonElements,
|
|
55
|
-
customEventName: 'pointerdown_connecting'
|
|
53
|
+
customEventName: 'pointerdown_connecting',
|
|
54
|
+
onClickOutside: () => handlePointerDownOutside()
|
|
56
55
|
}}
|
|
57
|
-
|
|
58
|
-
on:pointerdown_outside={handlePointerDownOutside}
|
|
56
|
+
onkeydown={handleKeyDown}
|
|
59
57
|
data-connection-button
|
|
60
58
|
>
|
|
61
59
|
<AnimatedButton
|
|
@@ -65,14 +63,14 @@ $: !isOpen && (selected = false);
|
|
|
65
63
|
marginWidth="2px"
|
|
66
64
|
>
|
|
67
65
|
<Button
|
|
68
|
-
size=
|
|
66
|
+
size={small ? 'xs' : 'md'}
|
|
69
67
|
variant="border"
|
|
70
68
|
color="light"
|
|
71
69
|
title="Connect"
|
|
72
70
|
on:click={() => handleConnect(true)}
|
|
73
71
|
{id}
|
|
74
72
|
wrapperClasses={twMerge(btnWrapperClasses, selected ? 'opacity-100' : '')}
|
|
75
|
-
btnClasses=
|
|
73
|
+
btnClasses={small ? 'p-0' : ''}
|
|
76
74
|
>
|
|
77
75
|
<Plug size={14} />
|
|
78
76
|
</Button>
|
|
@@ -1,24 +1,11 @@
|
|
|
1
|
-
interface
|
|
2
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
-
$$bindings?: Bindings;
|
|
4
|
-
} & Exports;
|
|
5
|
-
(internal: unknown, props: Props & {
|
|
6
|
-
$$events?: Events;
|
|
7
|
-
$$slots?: Slots;
|
|
8
|
-
}): Exports & {
|
|
9
|
-
$set?: any;
|
|
10
|
-
$on?: any;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
13
|
-
}
|
|
14
|
-
declare const ConnectionButton: $$__sveltets_2_IsomorphicComponent<{
|
|
1
|
+
interface Props {
|
|
15
2
|
isOpen?: boolean;
|
|
16
3
|
openConnection: () => void;
|
|
17
4
|
closeConnection: () => void;
|
|
18
5
|
btnWrapperClasses?: string;
|
|
19
6
|
id?: string | undefined;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
type ConnectionButton =
|
|
7
|
+
small?: boolean;
|
|
8
|
+
}
|
|
9
|
+
declare const ConnectionButton: import("svelte").Component<Props, {}, "">;
|
|
10
|
+
type ConnectionButton = ReturnType<typeof ConnectionButton>;
|
|
24
11
|
export default ConnectionButton;
|
|
@@ -3,6 +3,6 @@ interface Props {
|
|
|
3
3
|
instructions: string;
|
|
4
4
|
runnableType: 'script' | 'flow';
|
|
5
5
|
}
|
|
6
|
-
declare const
|
|
7
|
-
type
|
|
8
|
-
export default
|
|
6
|
+
declare const AIFormAssistant: import("svelte").Component<Props, {}, "">;
|
|
7
|
+
type AIFormAssistant = ReturnType<typeof AIFormAssistant>;
|
|
8
|
+
export default AIFormAssistant;
|
|
@@ -2,6 +2,6 @@ interface Props {
|
|
|
2
2
|
prompt?: string | undefined;
|
|
3
3
|
type?: 'flow' | 'script';
|
|
4
4
|
}
|
|
5
|
-
declare const
|
|
6
|
-
type
|
|
7
|
-
export default
|
|
5
|
+
declare const AIFormSettings: import("svelte").Component<Props, {}, "prompt">;
|
|
6
|
+
type AIFormSettings = ReturnType<typeof AIFormSettings>;
|
|
7
|
+
export default AIFormSettings;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface Props {
|
|
2
2
|
moduleId?: string;
|
|
3
3
|
}
|
|
4
|
-
declare const
|
|
5
|
-
type
|
|
6
|
-
export default
|
|
4
|
+
declare const FlowInlineScriptAIButton: import("svelte").Component<Props, {}, "">;
|
|
5
|
+
type FlowInlineScriptAIButton = ReturnType<typeof FlowInlineScriptAIButton>;
|
|
6
|
+
export default FlowInlineScriptAIButton;
|
|
@@ -196,7 +196,7 @@ let openInputsModal = $state(false);
|
|
|
196
196
|
<Button
|
|
197
197
|
size="xs"
|
|
198
198
|
color="light"
|
|
199
|
-
btnClasses=
|
|
199
|
+
btnClasses={stepInputGenButtonClasses(false)}
|
|
200
200
|
nonCaptureEvent
|
|
201
201
|
startIcon={{
|
|
202
202
|
icon: Wand2
|
|
@@ -12,7 +12,7 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
|
|
|
12
12
|
};
|
|
13
13
|
z_$$bindings?: Bindings;
|
|
14
14
|
}
|
|
15
|
-
declare const
|
|
15
|
+
declare const TestAIKey: $$__sveltets_2_IsomorphicComponent<{
|
|
16
16
|
disabled?: boolean;
|
|
17
17
|
apiKey?: string | undefined;
|
|
18
18
|
resourcePath?: string | undefined;
|
|
@@ -21,5 +21,5 @@ declare const TestAiKey: $$__sveltets_2_IsomorphicComponent<{
|
|
|
21
21
|
}, {
|
|
22
22
|
[evt: string]: CustomEvent<any>;
|
|
23
23
|
}, {}, {}, string>;
|
|
24
|
-
type
|
|
25
|
-
export default
|
|
24
|
+
type TestAIKey = InstanceType<typeof TestAIKey>;
|
|
25
|
+
export default TestAIKey;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ScriptLang } from '../../../gen';
|
|
2
2
|
import { AIMode } from './AIChatManager.svelte';
|
|
3
|
-
declare const
|
|
3
|
+
declare const AIChat: import("svelte").Component<Record<string, never>, {
|
|
4
4
|
generateStep: (moduleId: string, lang: ScriptLang, instructions: string) => Promise<void>;
|
|
5
5
|
sendRequest: (options?: {
|
|
6
6
|
removeDiff?: boolean;
|
|
@@ -11,5 +11,5 @@ declare const AiChat: import("svelte").Component<Record<string, never>, {
|
|
|
11
11
|
isPreprocessor?: boolean;
|
|
12
12
|
}) => Promise<void>;
|
|
13
13
|
}, "">;
|
|
14
|
-
type
|
|
15
|
-
export default
|
|
14
|
+
type AIChat = ReturnType<typeof AIChat>;
|
|
15
|
+
export default AIChat;
|
|
@@ -25,8 +25,8 @@ type $$ComponentProps = {
|
|
|
25
25
|
disabledMessage?: string;
|
|
26
26
|
suggestions?: string[];
|
|
27
27
|
};
|
|
28
|
-
declare const
|
|
28
|
+
declare const AIChatDisplay: import("svelte").Component<$$ComponentProps, {
|
|
29
29
|
focusInput: () => void;
|
|
30
30
|
}, "selectedContext">;
|
|
31
|
-
type
|
|
32
|
-
export default
|
|
31
|
+
type AIChatDisplay = ReturnType<typeof AIChatDisplay>;
|
|
32
|
+
export default AIChatDisplay;
|
|
@@ -8,8 +8,8 @@ interface Props {
|
|
|
8
8
|
show: boolean;
|
|
9
9
|
editorHandler: AIChatEditorHandler;
|
|
10
10
|
}
|
|
11
|
-
declare const
|
|
11
|
+
declare const AIChatInlineWidget: import("svelte").Component<Props, {
|
|
12
12
|
focusInput: () => void;
|
|
13
13
|
}, "show">;
|
|
14
|
-
type
|
|
15
|
-
export default
|
|
14
|
+
type AIChatInlineWidget = ReturnType<typeof AIChatInlineWidget>;
|
|
15
|
+
export default AIChatInlineWidget;
|
|
@@ -16,8 +16,8 @@ interface Props {
|
|
|
16
16
|
bottomRightSnippet?: Snippet;
|
|
17
17
|
onKeyDown?: (e: KeyboardEvent) => void;
|
|
18
18
|
}
|
|
19
|
-
declare const
|
|
19
|
+
declare const AIChatInput: import("svelte").Component<Props, {
|
|
20
20
|
focusInput: () => void;
|
|
21
21
|
}, "selectedContext">;
|
|
22
|
-
type
|
|
23
|
-
export default
|
|
22
|
+
type AIChatInput = ReturnType<typeof AIChatInput>;
|
|
23
|
+
export default AIChatInput;
|
|
@@ -7,6 +7,6 @@ interface Props {
|
|
|
7
7
|
messageIndex: number;
|
|
8
8
|
editingMessageIndex: number | null;
|
|
9
9
|
}
|
|
10
|
-
declare const
|
|
11
|
-
type
|
|
12
|
-
export default
|
|
10
|
+
declare const AIChatMessage: import("svelte").Component<Props, {}, "selectedContext" | "editingMessageIndex">;
|
|
11
|
+
type AIChatMessage = ReturnType<typeof AIChatMessage>;
|
|
12
|
+
export default AIChatMessage;
|
|
@@ -70,7 +70,7 @@ const isDeletable = $derived(deletable && contextElement.deletable !== false);
|
|
|
70
70
|
<HighlightCode
|
|
71
71
|
language={contextElement.lang}
|
|
72
72
|
code={contextElement.content}
|
|
73
|
-
|
|
73
|
+
className="w-full p-2 "
|
|
74
74
|
/>
|
|
75
75
|
</div>
|
|
76
76
|
{:else if contextElement.type === 'flow_module'}
|
|
@@ -79,7 +79,7 @@ const isDeletable = $derived(deletable && contextElement.deletable !== false);
|
|
|
79
79
|
<HighlightCode
|
|
80
80
|
language={contextElement.value.language}
|
|
81
81
|
code={contextElement.value.content}
|
|
82
|
-
|
|
82
|
+
className="w-full p-2 "
|
|
83
83
|
/>
|
|
84
84
|
</div>
|
|
85
85
|
{:else}
|
|
@@ -2,6 +2,6 @@ type $$ComponentProps = {
|
|
|
2
2
|
open: boolean;
|
|
3
3
|
onConfirm: () => void;
|
|
4
4
|
};
|
|
5
|
-
declare const
|
|
6
|
-
type
|
|
7
|
-
export default
|
|
5
|
+
declare const AIChangesWarningModal: import("svelte").Component<$$ComponentProps, {}, "open">;
|
|
6
|
+
type AIChangesWarningModal = ReturnType<typeof AIChangesWarningModal>;
|
|
7
|
+
export default AIChangesWarningModal;
|
|
@@ -3,6 +3,6 @@ type $$ComponentProps = {
|
|
|
3
3
|
opened?: boolean;
|
|
4
4
|
class?: string;
|
|
5
5
|
};
|
|
6
|
-
declare const
|
|
7
|
-
type
|
|
8
|
-
export default
|
|
6
|
+
declare const FlowAIButton: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
7
|
+
type FlowAIButton = ReturnType<typeof FlowAIButton>;
|
|
8
|
+
export default FlowAIButton;
|
|
@@ -465,7 +465,10 @@ const flowHelpers = {
|
|
|
465
465
|
else if (module.value.parallel || opts.parallel === true) {
|
|
466
466
|
// Only set parallelism if parallel is enabled
|
|
467
467
|
const n = Math.max(1, Math.floor(Math.abs(opts.parallelism)));
|
|
468
|
-
module.value.parallelism =
|
|
468
|
+
module.value.parallelism = {
|
|
469
|
+
type: 'static',
|
|
470
|
+
value: n
|
|
471
|
+
};
|
|
469
472
|
}
|
|
470
473
|
}
|
|
471
474
|
refreshStateStore(flowStore);
|
|
@@ -2,6 +2,6 @@ import FlowModuleSchemaMap from '../../../flows/map/FlowModuleSchemaMap.svelte';
|
|
|
2
2
|
type $$ComponentProps = {
|
|
3
3
|
flowModuleSchemaMap: FlowModuleSchemaMap | undefined;
|
|
4
4
|
};
|
|
5
|
-
declare const
|
|
6
|
-
type
|
|
7
|
-
export default
|
|
5
|
+
declare const FlowAIChat: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type FlowAIChat = ReturnType<typeof FlowAIChat>;
|
|
7
|
+
export default FlowAIChat;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
<script lang="ts">import { getAstNode } from 'svelte-exmarkdown';
|
|
2
2
|
import HighlightCode from '../../../HighlightCode.svelte';
|
|
3
3
|
import { csharp, go, graphql, javascript, php, python, rust, shell, sql, typescript, yaml } from 'svelte-highlight/languages';
|
|
4
|
+
import { aiChatManager, AIMode } from '../AIChatManager.svelte';
|
|
5
|
+
import { Check, Play } from 'lucide-svelte';
|
|
4
6
|
const astNode = getAstNode();
|
|
5
7
|
function getSmartLang(lang) {
|
|
6
8
|
switch (lang) {
|
|
@@ -59,15 +61,34 @@ const SMART_LANG_TO_HIGHLIGHT_LANG = {
|
|
|
59
61
|
};
|
|
60
62
|
let code = $derived(astNode.current.children?.[0]?.children?.[0]?.value);
|
|
61
63
|
let language = $derived(astNode.current.children?.[0]?.properties?.class?.split('-')[1]);
|
|
64
|
+
// Check if the apply button should be shown
|
|
65
|
+
let showApplyButton = $derived.by(() => {
|
|
66
|
+
if (aiChatManager.mode !== AIMode.SCRIPT ||
|
|
67
|
+
!aiChatManager.scriptEditorApplyCode ||
|
|
68
|
+
code === aiChatManager.scriptEditorOptions?.code) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
});
|
|
73
|
+
function handleApplyCode() {
|
|
74
|
+
if (code && aiChatManager.scriptEditorApplyCode) {
|
|
75
|
+
aiChatManager.scriptEditorApplyCode(code, { mode: 'apply' });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
62
78
|
</script>
|
|
63
79
|
|
|
64
|
-
<div
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
80
|
+
<div class="flex flex-col gap-0.5 rounded-lg relative not-prose">
|
|
81
|
+
<div
|
|
82
|
+
class="relative w-full border border-gray-300 dark:border-gray-600 rounded-lg overflow-hidden"
|
|
83
|
+
>
|
|
84
|
+
<HighlightCode
|
|
85
|
+
className="p-1"
|
|
86
|
+
code={code ?? ''}
|
|
87
|
+
highlightLanguage={SMART_LANG_TO_HIGHLIGHT_LANG[getSmartLang(language as string)]}
|
|
88
|
+
language={undefined}
|
|
89
|
+
onApplyCode={handleApplyCode}
|
|
90
|
+
{showApplyButton}
|
|
91
|
+
applyButtonIcon={aiChatManager.pendingNewCode ? Check : Play}
|
|
92
|
+
/>
|
|
93
|
+
</div>
|
|
73
94
|
</div>
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import type { AIProviderModel, ResourceType, ScriptLang } from '../../../../gen/types.gen';
|
|
1
|
+
import type { AIProvider, AIProviderModel, ResourceType, ScriptLang } from '../../../../gen/types.gen';
|
|
2
2
|
import type { ChatCompletionSystemMessageParam, ChatCompletionUserMessageParam } from 'openai/resources/index.mjs';
|
|
3
3
|
import type { ContextElement } from '../context';
|
|
4
4
|
import { type Tool } from '../shared';
|
|
5
5
|
import type { ReviewChangesOpts } from '../monaco-adapter';
|
|
6
|
+
export declare const DIFF_BASED_EDIT_PROVIDERS: AIProvider[];
|
|
6
7
|
export declare function formatResourceTypes(allResourceTypes: ResourceType[], lang: 'python3' | 'php' | 'bun' | 'deno' | 'nativets' | 'bunnative'): string;
|
|
7
8
|
export declare const SUPPORTED_CHAT_SCRIPT_LANGUAGES: string[];
|
|
8
9
|
export declare function getLangContext(lang: ScriptLang | 'bunnative' | 'jsx' | 'tsx' | 'json', { allowResourcesFetch, isPreprocessor }?: {
|
|
@@ -16,7 +16,12 @@ const DOCS_CONTEXT_PERCENTAGE = 1;
|
|
|
16
16
|
// percentage of the context window for types of npm packages
|
|
17
17
|
const TYPES_CONTEXT_PERCENTAGE = 1;
|
|
18
18
|
// good providers for diff-based edit
|
|
19
|
-
const DIFF_BASED_EDIT_PROVIDERS = [
|
|
19
|
+
export const DIFF_BASED_EDIT_PROVIDERS = [
|
|
20
|
+
'openai',
|
|
21
|
+
'anthropic',
|
|
22
|
+
'googleai',
|
|
23
|
+
'azure_openai'
|
|
24
|
+
];
|
|
20
25
|
export function formatResourceTypes(allResourceTypes, lang) {
|
|
21
26
|
const resourceTypes = allResourceTypes.filter((rt) => isObject(rt.schema) && 'properties' in rt.schema && isObject(rt.schema.properties));
|
|
22
27
|
if (lang === 'python3') {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
<script lang="ts">import { Tabs, Tab, TabContent } from '../common';
|
|
2
2
|
import { Pane, Splitpanes } from 'svelte-splitpanes';
|
|
3
3
|
import DetailPageDetailPanel from './DetailPageDetailPanel.svelte';
|
|
4
|
-
|
|
4
|
+
import FlowViewerInner from '../FlowViewerInner.svelte';
|
|
5
|
+
let { isOperator = false, flow_json = undefined, selected = $bindable(), forceSmallScreen = false, isChatMode = false, header, form, scriptRender: script, save_inputs, flow_step, triggers } = $props();
|
|
5
6
|
let mobileTab = $state('form');
|
|
6
7
|
let clientWidth = $state(window.innerWidth);
|
|
7
8
|
const script_render = $derived(script);
|
|
@@ -44,8 +45,10 @@ const useDesktopLayout = $derived(clientWidth >= 768 && !forceSmallScreen);
|
|
|
44
45
|
{@render header?.()}
|
|
45
46
|
<div class="grow min-h-0 w-full flex flex-col">
|
|
46
47
|
<Tabs bind:selected={mobileTab} wrapperClass="flex-none">
|
|
47
|
-
<Tab value="form">Run form</Tab>
|
|
48
|
-
|
|
48
|
+
<Tab value="form">{isChatMode ? 'Chat' : 'Run form'}</Tab>
|
|
49
|
+
{#if !isChatMode}
|
|
50
|
+
<Tab value="saved_inputs">Inputs</Tab>
|
|
51
|
+
{/if}
|
|
49
52
|
{#if !isOperator}
|
|
50
53
|
<Tab value="triggers">Triggers</Tab>
|
|
51
54
|
{/if}
|
|
@@ -67,6 +70,11 @@ const useDesktopLayout = $derived(clientWidth >= 768 && !forceSmallScreen);
|
|
|
67
70
|
<TabContent value="triggers" class="flex flex-col flex-1 h-full mt-[-2px]">
|
|
68
71
|
{@render triggers?.()}
|
|
69
72
|
</TabContent>
|
|
73
|
+
{#if flow_json}
|
|
74
|
+
<TabContent value="raw" class="flex flex-col flex-1 h-full overflow-auto p-2">
|
|
75
|
+
<FlowViewerInner flow={flow_json} />
|
|
76
|
+
</TabContent>
|
|
77
|
+
{/if}
|
|
70
78
|
<TabContent value="script" class="flex flex-col flex-1 h-full">
|
|
71
79
|
{@render script?.()}
|
|
72
80
|
</TabContent>
|
|
@@ -20,15 +20,15 @@ $: opened = false;
|
|
|
20
20
|
|
|
21
21
|
{#if opened}
|
|
22
22
|
<div
|
|
23
|
-
class="bg-surface-secondary border-l-4 text-sm text-secondary p-4 mt-2"
|
|
23
|
+
class="bg-surface-secondary border-x border-r-0 border-l-4 text-sm text-secondary p-4 mt-2"
|
|
24
24
|
role="alert"
|
|
25
25
|
id="dynamic-input-help-box"
|
|
26
26
|
>
|
|
27
27
|
Single JavaScript expression. The following functions and objects are available:
|
|
28
|
-
<ul class="ml-4">
|
|
28
|
+
<ul class="ml-4 list-disc">
|
|
29
29
|
<li
|
|
30
|
-
><b>{'results.<id>'}</b>: the result of step at id 'id' (use
|
|
31
|
-
|
|
30
|
+
><b>{'results.<id>'}</b>: the result of step at id 'id' (use optional chaining if id may not
|
|
31
|
+
exist because branch was not chosen, for example: <code>{'results.<id>?.[0]'}</code>)</li
|
|
32
32
|
>
|
|
33
33
|
<li><b>flow_input</b>: the object containing the flow input arguments</li>
|
|
34
34
|
<li><b>previous_result</b>: the result of previous step</li>
|
|
@@ -22,7 +22,7 @@ import CaptureTable from '../../triggers/CaptureTable.svelte';
|
|
|
22
22
|
import { isObjectTooBig, readFieldsRecursively } from '../../../utils';
|
|
23
23
|
import { refreshStateStore } from '../../../svelte5Utils.svelte';
|
|
24
24
|
import { deepEqual } from 'fast-equals';
|
|
25
|
-
import FlowChatInterface from '../FlowChatInterface.svelte';
|
|
25
|
+
import FlowChatInterface from '../conversations/FlowChatInterface.svelte';
|
|
26
26
|
import Toggle from '../../Toggle.svelte';
|
|
27
27
|
import { AI_AGENT_SCHEMA } from '../flowInfers';
|
|
28
28
|
import { nextId } from '../flowModuleNextId';
|