windmill-components 1.522.0 → 1.531.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 +123 -0
- package/package/components/AIAgentLogViewer.svelte.d.ts +13 -0
- package/package/components/AppConnectInner.svelte +10 -10
- package/package/components/AutoscalingConfigEditor.svelte +76 -2
- package/package/components/Dev.svelte +12 -28
- package/package/components/DiffEditor.svelte +6 -3
- package/package/components/DiffEditor.svelte.d.ts +1 -0
- package/package/components/DisplayResult.svelte +16 -10
- package/package/components/DisplayResult.svelte.d.ts +1 -0
- package/package/components/EditableSchemaForm.svelte +5 -2
- package/package/components/Editor.svelte +26 -8
- package/package/components/Editor.svelte.d.ts +1 -1
- package/package/components/EditorBar.svelte +25 -5
- package/package/components/EditorSettings.svelte +6 -0
- package/package/components/FirstStepInputs.svelte +2 -2
- package/package/components/FlowBuilder.svelte +18 -36
- package/package/components/FlowGraphViewerStep.svelte +7 -0
- package/package/components/FlowJobResult.svelte +15 -63
- package/package/components/FlowJobResult.svelte.d.ts +10 -4
- package/package/components/FlowLogViewer.svelte +660 -0
- package/package/components/FlowLogViewer.svelte.d.ts +34 -0
- package/package/components/FlowLogViewerWrapper.svelte +52 -0
- package/package/components/FlowLogViewerWrapper.svelte.d.ts +21 -0
- package/package/components/FlowLoopIterationPreview.svelte +3 -3
- package/package/components/FlowPreviewContent.svelte +4 -5
- package/package/components/FlowPreviewContent.svelte.d.ts +7 -7
- package/package/components/FlowPreviewResult.svelte +4 -5
- package/package/components/FlowPreviewResult.svelte.d.ts +3 -5
- package/package/components/FlowStatusViewer.svelte +28 -16
- package/package/components/FlowStatusViewer.svelte.d.ts +19 -27
- package/package/components/FlowStatusViewerInner.svelte +483 -296
- package/package/components/FlowStatusViewerInner.svelte.d.ts +27 -33
- package/package/components/FlowTimeline.svelte +11 -13
- package/package/components/FlowTimeline.svelte.d.ts +6 -5
- package/package/components/FlowWrapper.svelte +3 -2
- package/package/components/HighlightCode.svelte +4 -1
- package/package/components/IconedResourceType.svelte +9 -5
- package/package/components/JobLoader.svelte +61 -8
- package/package/components/JobLoader.svelte.d.ts +9 -1
- package/package/components/LogViewer.svelte +8 -2
- package/package/components/LogViewer.svelte.d.ts +1 -0
- package/package/components/LogViewerHeader.svelte +32 -0
- package/package/components/LogViewerHeader.svelte.d.ts +8 -0
- package/package/components/ModulePreviewForm.svelte +10 -6
- package/package/components/ModulePreviewResultViewer.svelte +16 -0
- package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -1
- package/package/components/ModuleTest.svelte +59 -16
- package/package/components/RelativeLineNumbers.svelte +16 -0
- package/package/components/RelativeLineNumbers.svelte.d.ts +18 -0
- package/package/components/ResourceEditor.svelte +9 -4
- package/package/components/ScriptBuilder.svelte +13 -11
- package/package/components/ScriptEditor.svelte +2 -2
- package/package/components/SimpleEditor.svelte +10 -4
- package/package/components/SimpleEditor.svelte.d.ts +1 -0
- package/package/components/TemplateEditor.svelte +1 -1
- package/package/components/UserSettings.svelte +4 -4
- package/package/components/apps/components/display/AppAccordionList.svelte +1 -1
- package/package/components/apps/components/display/AppCarouselList.svelte +10 -8
- package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +3 -3
- package/package/components/apps/components/display/table/AppAggridTable.svelte +2 -2
- package/package/components/apps/components/helpers/HiddenComponent.svelte +0 -1
- package/package/components/apps/components/helpers/InputValue.svelte +6 -1
- package/package/components/apps/components/helpers/NonRunnableComponent.svelte +8 -4
- package/package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableComponent.svelte +7 -8
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
- package/package/components/apps/components/helpers/RunnableWrapper.svelte +12 -3
- package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -1
- package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +0 -5
- package/package/components/apps/components/layout/AppConditionalWrapper.svelte +1 -1
- package/package/components/apps/components/layout/AppContainer.svelte +1 -1
- package/package/components/apps/components/layout/AppDecisionTree.svelte +31 -20
- package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
- package/package/components/apps/components/layout/AppList.svelte +9 -8
- package/package/components/apps/components/layout/AppModal.svelte +1 -1
- package/package/components/apps/components/layout/AppSplitpanes.svelte +5 -2
- package/package/components/apps/components/layout/AppStepper.svelte +9 -5
- package/package/components/apps/components/layout/AppTabs.svelte +2 -2
- package/package/components/apps/editor/AppJobsDrawer.svelte +2 -2
- package/package/components/apps/editor/GridEditor.svelte +24 -19
- package/package/components/apps/editor/GridEditor.svelte.d.ts +4 -1
- package/package/components/apps/editor/GridViewer.svelte +1 -1
- package/package/components/apps/editor/SubGridEditor.svelte +7 -11
- package/package/components/apps/editor/SubGridEditor.svelte.d.ts +3 -19
- package/package/components/apps/editor/appUtils.js +17 -68
- package/package/components/apps/editor/component/ComponentInner.svelte +845 -694
- package/package/components/apps/editor/component/componentCallbacks.svelte.js +8 -1
- package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +9 -46
- package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +29 -43
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
- package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +1 -0
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +2 -2
- package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +1 -0
- package/package/components/apps/svelte-grid/Grid.svelte +23 -25
- package/package/components/apps/svelte-grid/Grid.svelte.d.ts +21 -9
- package/package/components/apps/svelte-grid/MoveResize.svelte +13 -15
- package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +17 -24
- package/package/components/apps/utils.d.ts +2 -0
- package/package/components/apps/utils.js +22 -0
- package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
- package/package/components/common/fileDownload/FileDownload.svelte +1 -3
- package/package/components/common/fileDownload/FileDownload.svelte.d.ts +4 -18
- package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
- package/package/components/copilot/FlowInlineScriptAIButton.svelte +58 -0
- package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -0
- package/package/components/copilot/MetadataGen.svelte +19 -1
- package/package/components/copilot/MetadataGen.svelte.d.ts +1 -1
- package/package/components/copilot/ScriptGen.svelte +23 -31
- package/package/components/copilot/ScriptGen.svelte.d.ts +0 -1
- package/package/components/copilot/autocomplete/Autocompletor.js +2 -0
- package/package/components/copilot/chat/AIChatDisplay.svelte +4 -4
- package/package/components/copilot/chat/AIChatInput.svelte +29 -6
- package/package/components/copilot/chat/AIChatManager.svelte.js +110 -26
- package/package/components/copilot/chat/AIChatMessage.svelte +3 -0
- package/package/components/copilot/chat/ToolContentDisplay.svelte +84 -0
- package/package/components/copilot/chat/ToolContentDisplay.svelte.d.ts +11 -0
- package/package/components/copilot/chat/ToolExecutionDisplay.svelte +105 -0
- package/package/components/copilot/chat/ToolExecutionDisplay.svelte.d.ts +7 -0
- package/package/components/copilot/chat/api/apiTools.d.ts +7 -0
- package/package/components/copilot/chat/api/apiTools.js +192 -0
- package/package/components/copilot/chat/api/core.d.ts +7 -0
- package/package/components/copilot/chat/api/core.js +61 -0
- package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -6
- package/package/components/copilot/chat/flow/core.js +213 -42
- package/package/components/copilot/chat/flow/utils.js +3 -0
- package/package/components/copilot/chat/monaco-adapter.d.ts +1 -1
- package/package/components/copilot/chat/monaco-adapter.js +10 -4
- package/package/components/copilot/chat/navigator/core.d.ts +1 -1
- package/package/components/copilot/chat/navigator/core.js +20 -22
- package/package/components/copilot/chat/script/core.d.ts +11 -3
- package/package/components/copilot/chat/script/core.js +92 -15
- package/package/components/copilot/chat/shared.d.ts +30 -3
- package/package/components/copilot/chat/shared.js +228 -9
- package/package/components/copilot/lib.d.ts +1 -1
- package/package/components/copilot/lib.js +15 -6
- package/package/components/custom_ui.d.ts +2 -0
- package/package/components/details/DetailPageLayout.svelte +34 -33
- package/package/components/flow_builder.d.ts +1 -2
- package/package/components/flows/FlowEditor.svelte +3 -3
- package/package/components/flows/FlowEditor.svelte.d.ts +7 -6
- package/package/components/flows/common/FlowCard.svelte +2 -2
- package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
- package/package/components/flows/common/FlowCardHeader.svelte +13 -4
- package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
- package/package/components/flows/content/BranchPredicateEditor.svelte +4 -7
- package/package/components/flows/content/BranchPredicateEditor.svelte.d.ts +12 -11
- package/package/components/flows/content/FlowConstants.svelte +3 -3
- package/package/components/flows/content/FlowEditorPanel.svelte +3 -3
- package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -4
- package/package/components/flows/content/FlowInputsQuick.svelte +2 -1
- package/package/components/flows/content/FlowLoop.svelte +2 -2
- package/package/components/flows/content/FlowModuleComponent.svelte +130 -108
- package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
- package/package/components/flows/content/FlowModuleSkip.svelte +1 -1
- package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
- package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
- package/package/components/flows/content/FlowModuleWrapper.svelte +15 -5
- package/package/components/flows/content/FlowModuleWrapper.svelte.d.ts +1 -0
- package/package/components/flows/content/FlowResult.svelte +2 -3
- package/package/components/flows/content/FlowResult.svelte.d.ts +2 -4
- package/package/components/flows/content/FlowWhileLoop.svelte +1 -1
- package/package/components/flows/dfs.d.ts +3 -1
- package/package/components/flows/dfs.js +5 -1
- package/package/components/flows/flowInfers.js +78 -0
- package/package/components/flows/flowState.d.ts +2 -3
- package/package/components/flows/flowState.js +2 -2
- package/package/components/flows/flowStateUtils.svelte.d.ts +4 -4
- package/package/components/flows/flowStateUtils.svelte.js +14 -13
- package/package/components/flows/flowStore.d.ts +3 -4
- package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
- package/package/components/flows/header/FlowYamlEditor.svelte +10 -1
- package/package/components/flows/map/FlowGraphPreviewButton.svelte +1 -1
- package/package/components/flows/map/FlowJobsMenu.svelte +7 -3
- package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -0
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +12 -12
- package/package/components/flows/map/FlowModuleSchemaMap.svelte +26 -19
- package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +6 -4
- package/package/components/flows/map/InsertModuleInner.svelte +9 -1
- package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
- package/package/components/flows/map/MapItem.svelte +4 -2
- package/package/components/flows/pickers/TopLevelNode.svelte +4 -1
- package/package/components/flows/propPicker/InputPickerInner.svelte +5 -4
- package/package/components/flows/propPicker/OutputBadge.svelte +11 -9
- package/package/components/flows/propPicker/OutputPickerInner.svelte +10 -1
- package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
- package/package/components/flows/testSteps.svelte.d.ts +3 -2
- package/package/components/flows/testSteps.svelte.js +26 -23
- package/package/components/flows/types.d.ts +1 -1
- package/package/components/flows/utils.d.ts +3 -5
- package/package/components/flows/utils.js +3 -4
- package/package/components/git_sync/GitSyncContext.svelte.js +2 -1
- package/package/components/graph/FlowGraphV2.svelte +44 -24
- package/package/components/graph/FlowGraphV2.svelte.d.ts +5 -2
- package/package/components/graph/graphBuilder.svelte.d.ts +49 -17
- package/package/components/graph/graphBuilder.svelte.js +30 -14
- package/package/components/graph/model.d.ts +9 -6
- package/package/components/graph/renderers/edges/BaseEdge.svelte +3 -3
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +2 -3
- package/package/components/graph/renderers/nodes/AIToolNode.svelte +234 -0
- package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +24 -0
- package/package/components/graph/renderers/nodes/AssetNode.svelte +15 -10
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +18 -1
- package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
- package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +2 -2
- package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
- package/package/components/graph/renderers/nodes/ModuleNode.svelte +21 -21
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +64 -0
- package/package/components/graph/renderers/nodes/NewAIToolNode.svelte.d.ts +7 -0
- package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
- package/package/components/icons/RubyIcon.svelte +656 -0
- package/package/components/icons/RubyIcon.svelte.d.ts +7 -0
- package/package/components/instanceSettings.js +9 -0
- package/package/components/modulesTest.svelte.d.ts +6 -3
- package/package/components/modulesTest.svelte.js +32 -0
- package/package/components/preview/FlowPreviewStatus.svelte +3 -1
- package/package/components/raw_apps/RawAppEditor.svelte +27 -26
- package/package/components/raw_apps/RawAppEditor.svelte.d.ts +17 -17
- package/package/components/runs/{JobPreview.svelte → JobRunsPreview.svelte} +1 -4
- package/package/components/runs/{JobPreview.svelte.d.ts → JobRunsPreview.svelte.d.ts} +3 -3
- package/package/components/runs/RunRow.svelte +5 -1
- package/package/components/schema/AddProperty.svelte +41 -36
- package/package/components/schema/AddProperty.svelte.d.ts +2 -2
- package/package/components/schema/AddPropertyV2.svelte +41 -37
- package/package/components/schema/AddPropertyV2.svelte.d.ts +1 -1
- package/package/components/schema/FlowPropertyEditor.svelte +8 -6
- package/package/components/search/RunsSearch.svelte +1 -1
- package/package/components/settings/CreateToken.svelte +132 -12
- package/package/components/settings/CreateToken.svelte.d.ts +3 -20
- package/package/components/settings/TokenDisplay.svelte +18 -42
- package/package/components/settings/TokenDisplay.svelte.d.ts +0 -1
- package/package/components/settings/TokensTable.svelte +2 -4
- package/package/components/settings/TokensTable.svelte.d.ts +3 -19
- package/package/components/settings/WorkspaceUserSettings.svelte +428 -69
- package/package/components/sidebar/MenuButton.svelte +12 -10
- package/package/components/stepHistoryLoader.svelte.d.ts +2 -2
- package/package/components/stepHistoryLoader.svelte.js +7 -12
- package/package/components/triggers/http/OpenAPISpecGenerator.svelte +2 -2
- package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte +1 -1
- package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +4 -4
- package/package/components/tutorials/utils.js +3 -0
- package/package/components/worker_group.d.ts +4 -1
- package/package/components/worker_group.js +3 -2
- package/package/editorLangUtils.d.ts +1 -1
- package/package/editorLangUtils.js +2 -0
- package/package/editorUtils.d.ts +2 -1
- package/package/editorUtils.js +2 -1
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +296 -8
- package/package/gen/schemas.gen.js +364 -70
- package/package/gen/services.gen.d.ts +118 -16
- package/package/gen/services.gen.js +226 -19
- package/package/gen/types.gen.d.ts +660 -16
- package/package/hubPaths.json +7 -4
- package/package/infer.js +10 -1
- package/package/monaco_workers/graphql.worker.bundle.js +144 -110
- package/package/script_helpers.d.ts +3 -0
- package/package/script_helpers.js +58 -3
- package/package/scripts.d.ts +1 -1
- package/package/scripts.js +3 -2
- package/package/stores.d.ts +2 -0
- package/package/stores.js +2 -0
- package/package/svelte5Utils.svelte.d.ts +16 -0
- package/package/svelte5Utils.svelte.js +26 -0
- package/package/utils.d.ts +1 -1
- package/package.json +20 -19
- package/package/components/AllFlowLogs.svelte +0 -31
- package/package/components/AllFlowLogs.svelte.d.ts +0 -8
- package/package/components/copilot/chat/navigator/apiTools.d.ts +0 -68
- package/package/components/copilot/chat/navigator/apiTools.js +0 -258
|
@@ -49,7 +49,7 @@ import { refreshStateStore } from '../../../svelte5Utils.svelte';
|
|
|
49
49
|
import { getStepHistoryLoaderContext } from '../../stepHistoryLoader.svelte';
|
|
50
50
|
import AssetsDropdownButton from '../../assets/AssetsDropdownButton.svelte';
|
|
51
51
|
const { selectedId, currentEditor, previewArgs, flowStateStore, flowStore, pathStore, saveDraft, customUi, executionCount } = getContext('FlowEditorContext');
|
|
52
|
-
let { flowModule = $bindable(), failureModule = false, preprocessorModule = false, parentModule = $bindable(), previousModule, scriptKind = 'script', scriptTemplate = 'script', noEditor, enableAi, savedModule = undefined, forceTestTab = false, highlightArg = undefined } = $props();
|
|
52
|
+
let { flowModule = $bindable(), failureModule = false, preprocessorModule = false, parentModule = $bindable(), previousModule, scriptKind = 'script', scriptTemplate = 'script', noEditor, enableAi, savedModule = undefined, forceTestTab = false, highlightArg = undefined, isAgentTool = false } = $props();
|
|
53
53
|
let workspaceScriptTag = $state(undefined);
|
|
54
54
|
let workspaceScriptLang = $state(undefined);
|
|
55
55
|
let diffMode = $state(false);
|
|
@@ -63,7 +63,7 @@ let websocketAlive = $state({
|
|
|
63
63
|
ruff: false,
|
|
64
64
|
shellcheck: false
|
|
65
65
|
});
|
|
66
|
-
let selected = $state(preprocessorModule ? 'test' : 'inputs');
|
|
66
|
+
let selected = $state(preprocessorModule || isAgentTool ? 'test' : 'inputs');
|
|
67
67
|
let advancedSelected = $state('retries');
|
|
68
68
|
let advancedRuntimeSelected = $state('concurrency');
|
|
69
69
|
let s3Kind = $state('s3_client');
|
|
@@ -95,6 +95,7 @@ async function reload(flowModule) {
|
|
|
95
95
|
reloadError = undefined;
|
|
96
96
|
try {
|
|
97
97
|
const { input_transforms, schema } = await loadSchemaFromModule(flowModule);
|
|
98
|
+
console.log('reload', schema);
|
|
98
99
|
validCode = true;
|
|
99
100
|
if (inputTransformSchemaForm) {
|
|
100
101
|
inputTransformSchemaForm.setArgs(input_transforms);
|
|
@@ -102,7 +103,8 @@ async function reload(flowModule) {
|
|
|
102
103
|
else {
|
|
103
104
|
if (flowModule.value.type == 'rawscript' ||
|
|
104
105
|
flowModule.value.type == 'script' ||
|
|
105
|
-
flowModule.value.type == 'flow'
|
|
106
|
+
flowModule.value.type == 'flow' ||
|
|
107
|
+
flowModule.value.type == 'aiagent') {
|
|
106
108
|
if (!deepEqual(flowModule.value.input_transforms, input_transforms)) {
|
|
107
109
|
flowModule.value.input_transforms = input_transforms;
|
|
108
110
|
}
|
|
@@ -114,12 +116,12 @@ async function reload(flowModule) {
|
|
|
114
116
|
}
|
|
115
117
|
}
|
|
116
118
|
await tick();
|
|
117
|
-
if (!deepEqual(schema,
|
|
118
|
-
if (
|
|
119
|
-
|
|
119
|
+
if (!deepEqual(schema, flowStateStore.val[flowModule.id]?.schema)) {
|
|
120
|
+
if (!flowStateStore.val[flowModule.id]) {
|
|
121
|
+
flowStateStore.val[flowModule.id] = { schema };
|
|
120
122
|
}
|
|
121
123
|
else {
|
|
122
|
-
|
|
124
|
+
flowStateStore.val[flowModule.id].schema = schema;
|
|
123
125
|
}
|
|
124
126
|
}
|
|
125
127
|
}
|
|
@@ -138,32 +140,31 @@ let editorSettingsPanelSize = $state(100 - untrack(() => editorPanelSize));
|
|
|
138
140
|
let stepHistoryLoader = getStepHistoryLoaderContext();
|
|
139
141
|
let lastJobId = undefined;
|
|
140
142
|
function onSelectedIdChange() {
|
|
141
|
-
if (
|
|
143
|
+
if (!flowStateStore?.val?.[$selectedId]?.schema && flowModule) {
|
|
142
144
|
reload(flowModule);
|
|
143
145
|
}
|
|
144
146
|
lastJobId = undefined;
|
|
145
147
|
}
|
|
146
148
|
async function getLastJob() {
|
|
147
|
-
if (
|
|
149
|
+
if (!flowStateStore ||
|
|
148
150
|
!flowModule.id ||
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
!$flowStateStore[flowModule.id]?.previewWorkspaceId) {
|
|
151
|
+
flowStateStore.val[flowModule.id]?.previewResult === 'never tested this far' ||
|
|
152
|
+
!flowStateStore.val[flowModule.id]?.previewJobId) {
|
|
152
153
|
return;
|
|
153
154
|
}
|
|
154
|
-
if (lastJobId ==
|
|
155
|
-
lastJob?.id ==
|
|
156
|
-
|
|
155
|
+
if (lastJobId == flowStateStore.val[flowModule.id]?.previewJobId ||
|
|
156
|
+
lastJob?.id == flowStateStore.val[flowModule.id]?.previewJobId ||
|
|
157
|
+
flowStateStore.val[flowModule.id]?.previewSuccess == undefined) {
|
|
157
158
|
return;
|
|
158
159
|
}
|
|
159
|
-
lastJobId =
|
|
160
|
+
lastJobId = flowStateStore.val[flowModule.id]?.previewJobId;
|
|
160
161
|
const job = await JobService.getJob({
|
|
161
|
-
workspace: $
|
|
162
|
-
id:
|
|
162
|
+
workspace: $workspaceStore ?? '',
|
|
163
|
+
id: flowStateStore.val[flowModule.id]?.previewJobId ?? '',
|
|
163
164
|
noCode: true
|
|
164
165
|
});
|
|
165
166
|
if (job && job.type === 'CompletedJob') {
|
|
166
|
-
lastJobId =
|
|
167
|
+
lastJobId = flowStateStore.val[flowModule.id]?.previewJobId;
|
|
167
168
|
lastJob = job;
|
|
168
169
|
}
|
|
169
170
|
}
|
|
@@ -182,8 +183,8 @@ function hideDiffMode() {
|
|
|
182
183
|
}
|
|
183
184
|
let lastDeployedCode = $derived(onModulesChange(savedModule, flowModule));
|
|
184
185
|
let stepPropPicker = $derived($executionCount != undefined && failureModule
|
|
185
|
-
? getFailureStepPropPicker(
|
|
186
|
-
: getStepPropPicker(
|
|
186
|
+
? getFailureStepPropPicker(flowStateStore.val, flowStore.val, previewArgs.val)
|
|
187
|
+
: getStepPropPicker(flowStateStore.val, parentModule, previousModule, flowModule.id, flowStore.val, previewArgs.val, false));
|
|
187
188
|
$effect.pre(() => {
|
|
188
189
|
$selectedId && untrack(() => onSelectedIdChange());
|
|
189
190
|
});
|
|
@@ -191,7 +192,7 @@ $effect(() => {
|
|
|
191
192
|
if (testJob && testJob.type === 'CompletedJob') {
|
|
192
193
|
lastJob = $state.snapshot(testJob);
|
|
193
194
|
}
|
|
194
|
-
else if ($workspaceStore && $pathStore && flowModule?.id &&
|
|
195
|
+
else if ($workspaceStore && $pathStore && flowModule?.id && flowStateStore) {
|
|
195
196
|
untrack(() => getLastJob());
|
|
196
197
|
}
|
|
197
198
|
});
|
|
@@ -252,6 +253,7 @@ let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.v
|
|
|
252
253
|
}
|
|
253
254
|
}}
|
|
254
255
|
bind:summary={flowModule.summary}
|
|
256
|
+
{isAgentTool}
|
|
255
257
|
>
|
|
256
258
|
{#snippet header()}
|
|
257
259
|
<FlowModuleHeader
|
|
@@ -276,7 +278,7 @@ let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.v
|
|
|
276
278
|
on:fork={async () => {
|
|
277
279
|
const [module, state] = await fork(flowModule)
|
|
278
280
|
flowModule = module
|
|
279
|
-
|
|
281
|
+
flowStateStore.val[module.id] = state
|
|
280
282
|
}}
|
|
281
283
|
on:reload={async () => {
|
|
282
284
|
if (flowModule.value.type == 'script') {
|
|
@@ -295,14 +297,14 @@ let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.v
|
|
|
295
297
|
const [module, state] = await createScriptFromInlineScript(
|
|
296
298
|
flowModule,
|
|
297
299
|
$selectedId,
|
|
298
|
-
|
|
300
|
+
flowStateStore.val[flowModule.id].schema,
|
|
299
301
|
$pathStore
|
|
300
302
|
)
|
|
301
303
|
if (flowModule.value.type == 'rawscript') {
|
|
302
304
|
module.value.input_transforms = flowModule.value.input_transforms
|
|
303
305
|
}
|
|
304
306
|
flowModule = module
|
|
305
|
-
|
|
307
|
+
flowStateStore.val[module.id] = state
|
|
306
308
|
}}
|
|
307
309
|
/>
|
|
308
310
|
{/snippet}
|
|
@@ -335,97 +337,117 @@ let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.v
|
|
|
335
337
|
|
|
336
338
|
<div class="min-h-0 flex-grow" id="flow-editor-editor">
|
|
337
339
|
<Splitpanes horizontal>
|
|
338
|
-
|
|
339
|
-
{
|
|
340
|
-
{#if
|
|
341
|
-
{#
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
if (flowModule.
|
|
361
|
-
flowModule.value.
|
|
340
|
+
{#if flowModule.value.type !== 'aiagent'}
|
|
341
|
+
<Pane bind:size={editorPanelSize} minSize={10} class="relative">
|
|
342
|
+
{#if flowModule.value.type === 'rawscript'}
|
|
343
|
+
{#if !noEditor}
|
|
344
|
+
{#key flowModule.id}
|
|
345
|
+
<div class="absolute top-2 right-4 z-10 flex flex-row gap-2">
|
|
346
|
+
{#if assets?.length}
|
|
347
|
+
<AssetsDropdownButton {assets} />
|
|
348
|
+
{/if}
|
|
349
|
+
</div>
|
|
350
|
+
<Editor
|
|
351
|
+
loadAsync
|
|
352
|
+
folding
|
|
353
|
+
path={$pathStore + '/' + flowModule.id}
|
|
354
|
+
bind:websocketAlive
|
|
355
|
+
bind:this={editor}
|
|
356
|
+
class="h-full relative"
|
|
357
|
+
code={flowModule.value.content}
|
|
358
|
+
scriptLang={flowModule?.value?.language}
|
|
359
|
+
automaticLayout={true}
|
|
360
|
+
cmdEnterAction={async () => {
|
|
361
|
+
selected = 'test'
|
|
362
|
+
if ($selectedId == flowModule.id) {
|
|
363
|
+
if (flowModule.value.type === 'rawscript' && editor) {
|
|
364
|
+
flowModule.value.content = editor.getCode()
|
|
365
|
+
}
|
|
366
|
+
await reload(flowModule)
|
|
367
|
+
modulePreview?.runTestWithStepArgs()
|
|
362
368
|
}
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
flowModule.value.content = content
|
|
369
|
+
}}
|
|
370
|
+
on:change={async (event) => {
|
|
371
|
+
const content = event.detail
|
|
372
|
+
if (flowModule.value.type === 'rawscript') {
|
|
373
|
+
if (flowModule.value.content !== content) {
|
|
374
|
+
flowModule.value.content = content
|
|
375
|
+
}
|
|
376
|
+
await reload(flowModule)
|
|
372
377
|
}
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
}
|
|
386
|
-
{}
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
{/key}
|
|
399
|
-
{/if}
|
|
400
|
-
{:else if flowModule.value.type === 'script'}
|
|
401
|
-
{#if !noEditor && (customUi?.hubCode != false || !flowModule?.value?.path?.startsWith('hub/'))}
|
|
402
|
-
<div class="border-t">
|
|
403
|
-
{#key forceReload}
|
|
404
|
-
<FlowModuleScript
|
|
405
|
-
bind:tag={workspaceScriptTag}
|
|
406
|
-
bind:language={workspaceScriptLang}
|
|
407
|
-
showAllCode={false}
|
|
408
|
-
path={flowModule.value.path}
|
|
409
|
-
hash={flowModule.value.hash}
|
|
378
|
+
}}
|
|
379
|
+
formatAction={() => {
|
|
380
|
+
reload(flowModule)
|
|
381
|
+
saveDraft()
|
|
382
|
+
}}
|
|
383
|
+
fixedOverflowWidgets={true}
|
|
384
|
+
args={Object.entries(flowModule.value.input_transforms).reduce(
|
|
385
|
+
(acc, [key, obj]) => {
|
|
386
|
+
acc[key] = obj.type === 'static' ? obj.value : undefined
|
|
387
|
+
return acc
|
|
388
|
+
},
|
|
389
|
+
{}
|
|
390
|
+
)}
|
|
391
|
+
key={`flow-inline-${$workspaceStore}-${$pathStore}-${flowModule.id}`}
|
|
392
|
+
/>
|
|
393
|
+
<DiffEditor
|
|
394
|
+
open={false}
|
|
395
|
+
bind:this={diffEditor}
|
|
396
|
+
automaticLayout
|
|
397
|
+
fixedOverflowWidgets
|
|
398
|
+
defaultLang={scriptLangToEditorLang(flowModule.value.language)}
|
|
399
|
+
class="h-full"
|
|
400
|
+
showButtons={diffMode}
|
|
401
|
+
showHistoryButton={false}
|
|
402
|
+
on:hideDiffMode={hideDiffMode}
|
|
410
403
|
/>
|
|
411
404
|
{/key}
|
|
412
|
-
|
|
405
|
+
{/if}
|
|
406
|
+
{:else if flowModule.value.type === 'script'}
|
|
407
|
+
{#if !noEditor && (customUi?.hubCode != false || !flowModule?.value?.path?.startsWith('hub/'))}
|
|
408
|
+
<div class="border-t">
|
|
409
|
+
{#key forceReload}
|
|
410
|
+
<FlowModuleScript
|
|
411
|
+
bind:tag={workspaceScriptTag}
|
|
412
|
+
bind:language={workspaceScriptLang}
|
|
413
|
+
showAllCode={false}
|
|
414
|
+
path={flowModule.value.path}
|
|
415
|
+
hash={flowModule.value.hash}
|
|
416
|
+
/>
|
|
417
|
+
{/key}
|
|
418
|
+
</div>
|
|
419
|
+
{/if}
|
|
420
|
+
{:else if flowModule.value.type === 'flow'}
|
|
421
|
+
{#key forceReload}
|
|
422
|
+
<FlowPathViewer path={flowModule.value.path} />
|
|
423
|
+
{/key}
|
|
413
424
|
{/if}
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
425
|
+
</Pane>
|
|
426
|
+
{/if}
|
|
427
|
+
<Pane
|
|
428
|
+
bind:size={
|
|
429
|
+
() => {
|
|
430
|
+
if (flowModule.value.type === 'aiagent') {
|
|
431
|
+
return 100
|
|
432
|
+
}
|
|
433
|
+
return editorSettingsPanelSize
|
|
434
|
+
},
|
|
435
|
+
(v) => {
|
|
436
|
+
if (flowModule.value.type !== 'aiagent') {
|
|
437
|
+
editorSettingsPanelSize = v
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
minSize={20}
|
|
442
|
+
>
|
|
421
443
|
<Splitpanes>
|
|
422
444
|
<Pane minSize={36} bind:size={leftPanelSize}>
|
|
423
445
|
<Tabs bind:selected>
|
|
424
|
-
{#if !preprocessorModule}
|
|
446
|
+
{#if !preprocessorModule && !isAgentTool}
|
|
425
447
|
<Tab value="inputs">Step Input</Tab>
|
|
426
448
|
{/if}
|
|
427
449
|
<Tab value="test">Test this step</Tab>
|
|
428
|
-
{#if !preprocessorModule}
|
|
450
|
+
{#if !preprocessorModule && !isAgentTool}
|
|
429
451
|
<Tab value="advanced">Advanced</Tab>
|
|
430
452
|
{/if}
|
|
431
453
|
</Tabs>
|
|
@@ -434,7 +456,7 @@ let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.v
|
|
|
434
456
|
? 'h-[calc(100%-68px)]'
|
|
435
457
|
: 'h-[calc(100%-34px)]'}
|
|
436
458
|
>
|
|
437
|
-
{#if selected === 'inputs' && (flowModule.value.type == 'rawscript' || flowModule.value.type == 'script' || flowModule.value.type == 'flow')}
|
|
459
|
+
{#if selected === 'inputs' && (flowModule.value.type == 'rawscript' || flowModule.value.type == 'script' || flowModule.value.type == 'flow' || flowModule.value.type == 'aiagent')}
|
|
438
460
|
<div class="h-full overflow-auto bg-surface" id="flow-editor-step-input">
|
|
439
461
|
<PropPickerWrapper
|
|
440
462
|
pickableProperties={stepPropPicker.pickableProperties}
|
|
@@ -451,7 +473,7 @@ let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.v
|
|
|
451
473
|
class="px-1 xl:px-2"
|
|
452
474
|
bind:this={inputTransformSchemaForm}
|
|
453
475
|
pickableProperties={stepPropPicker.pickableProperties}
|
|
454
|
-
schema={
|
|
476
|
+
schema={flowStateStore.val[$selectedId]?.schema ?? {}}
|
|
455
477
|
previousModuleId={previousModule?.id}
|
|
456
478
|
bind:args={
|
|
457
479
|
() => {
|
|
@@ -479,7 +501,7 @@ let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.v
|
|
|
479
501
|
bind:this={modulePreview}
|
|
480
502
|
mod={flowModule}
|
|
481
503
|
{noEditor}
|
|
482
|
-
schema={
|
|
504
|
+
schema={flowStateStore.val[$selectedId]?.schema ?? {}}
|
|
483
505
|
bind:testJob
|
|
484
506
|
bind:testIsLoading
|
|
485
507
|
bind:scriptProgress
|
|
@@ -12,6 +12,7 @@ interface Props {
|
|
|
12
12
|
savedModule?: FlowModule | undefined;
|
|
13
13
|
forceTestTab?: boolean;
|
|
14
14
|
highlightArg?: string;
|
|
15
|
+
isAgentTool?: boolean;
|
|
15
16
|
}
|
|
16
17
|
declare const FlowModuleComponent: import("svelte").Component<Props, {}, "flowModule" | "parentModule">;
|
|
17
18
|
type FlowModuleComponent = ReturnType<typeof FlowModuleComponent>;
|
|
@@ -10,7 +10,7 @@ import { dfs } from '../previousResults';
|
|
|
10
10
|
const { flowStateStore, flowStore, previewArgs } = getContext('FlowEditorContext');
|
|
11
11
|
let { flowModule = $bindable() } = $props();
|
|
12
12
|
let editor = $state(undefined);
|
|
13
|
-
let stepPropPicker = $derived(getStepPropPicker(
|
|
13
|
+
let stepPropPicker = $derived(getStepPropPicker(flowStateStore.val, undefined, undefined, flowModule.id, flowStore.val, previewArgs.val, false));
|
|
14
14
|
function checkIfParentLoop(flowStoreValue) {
|
|
15
15
|
const flow = JSON.parse(JSON.stringify(flowStoreValue));
|
|
16
16
|
const parents = dfs(flowModule.id, flow, true);
|
|
@@ -27,7 +27,7 @@ let isLoop = $derived(flowModule.value.type === 'forloopflow' || flowModule.valu
|
|
|
27
27
|
let isBranchAll = $derived(flowModule.value.type === 'branchall');
|
|
28
28
|
let isStopAfterIfEnabled = $derived(Boolean(flowModule.stop_after_if));
|
|
29
29
|
let isStopAfterAllIterationsEnabled = $derived(Boolean(flowModule.stop_after_all_iters_if));
|
|
30
|
-
let result = $derived(
|
|
30
|
+
let result = $derived(flowStateStore.val[flowModule.id]?.previewResult ?? NEVER_TESTED_THIS_FAR);
|
|
31
31
|
let parentLoopId = $derived(checkIfParentLoop(flowStore.val));
|
|
32
32
|
</script>
|
|
33
33
|
|
|
@@ -8,7 +8,7 @@ import { getStepPropPicker } from '../previousResults';
|
|
|
8
8
|
const { flowStateStore, flowStore, previewArgs } = getContext('FlowEditorContext');
|
|
9
9
|
let { flowModule = $bindable(), parentModule, previousModule } = $props();
|
|
10
10
|
let editor = $state(undefined);
|
|
11
|
-
let stepPropPicker = $derived(getStepPropPicker(
|
|
11
|
+
let stepPropPicker = $derived(getStepPropPicker(flowStateStore.val, parentModule, previousModule, flowModule.id, flowStore.val, previewArgs.val, false));
|
|
12
12
|
let isSkipEnabled = $derived(Boolean(flowModule.skip_if));
|
|
13
13
|
</script>
|
|
14
14
|
|
|
@@ -14,7 +14,7 @@ schema.properties['sleep'] = {
|
|
|
14
14
|
type: 'number'
|
|
15
15
|
};
|
|
16
16
|
let editor = $state(undefined);
|
|
17
|
-
const result =
|
|
17
|
+
const result = flowStateStore.val[$selectedId]?.previewResult ?? {};
|
|
18
18
|
let isSleepEnabled = $derived(Boolean(flowModule.sleep));
|
|
19
19
|
</script>
|
|
20
20
|
|
|
@@ -15,7 +15,7 @@ import SuspendDrawer from './SuspendDrawer.svelte';
|
|
|
15
15
|
import EditableSchemaDrawer from '../../schema/EditableSchemaDrawer.svelte';
|
|
16
16
|
import AddProperty from '../../schema/AddProperty.svelte';
|
|
17
17
|
const { selectedId, flowStateStore } = getContext('FlowEditorContext');
|
|
18
|
-
const result =
|
|
18
|
+
const result = flowStateStore.val[$selectedId]?.previewResult ?? {};
|
|
19
19
|
let editor = $state(undefined);
|
|
20
20
|
let { flowModule = $bindable(), previousModuleId } = $props();
|
|
21
21
|
let schema = $state(emptySchema());
|
|
@@ -17,7 +17,7 @@ const { selectedId, flowStateStore } = getContext('FlowEditorContext');
|
|
|
17
17
|
const { triggersState, triggersCount } = getContext('TriggerContext');
|
|
18
18
|
let scriptKind = $state('script');
|
|
19
19
|
let scriptTemplate = $state('script');
|
|
20
|
-
let { flowModule = $bindable(), noEditor = false, enableAi = false, savedModule = undefined, parentModule = $bindable(), previousModule = undefined, forceTestTab, highlightArg } = $props();
|
|
20
|
+
let { flowModule = $bindable(), noEditor = false, enableAi = false, savedModule = undefined, parentModule = $bindable(), previousModule = undefined, forceTestTab, highlightArg, isAgentTool = false } = $props();
|
|
21
21
|
function initializePrimaryScheduleForTriggerScript(module) {
|
|
22
22
|
const primaryIndex = triggersState.triggers.findIndex((t) => t.isPrimary);
|
|
23
23
|
if (primaryIndex === -1) {
|
|
@@ -61,7 +61,7 @@ async function createModuleFromScript(path, summary, kind, hash) {
|
|
|
61
61
|
initializePrimaryScheduleForTriggerScript(module);
|
|
62
62
|
}
|
|
63
63
|
flowModule = module;
|
|
64
|
-
|
|
64
|
+
flowStateStore.val[module.id] = state;
|
|
65
65
|
}
|
|
66
66
|
</script>
|
|
67
67
|
|
|
@@ -100,7 +100,7 @@ async function createModuleFromScript(path, summary, kind, hash) {
|
|
|
100
100
|
const [module, state] = await pickFlow(path, summary, flowModule.id)
|
|
101
101
|
|
|
102
102
|
flowModule = module
|
|
103
|
-
|
|
103
|
+
flowStateStore.val[module.id] = state
|
|
104
104
|
}}
|
|
105
105
|
/>
|
|
106
106
|
{:else}
|
|
@@ -137,13 +137,13 @@ async function createModuleFromScript(path, summary, kind, hash) {
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
flowModule = module
|
|
140
|
-
|
|
140
|
+
flowStateStore.val[module.id] = state
|
|
141
141
|
}}
|
|
142
142
|
failureModule={$selectedId === 'failure'}
|
|
143
143
|
preprocessorModule={$selectedId === 'preprocessor'}
|
|
144
144
|
/>
|
|
145
145
|
{/if}
|
|
146
|
-
{:else if flowModule.value.type === 'rawscript' || flowModule.value.type === 'script' || flowModule.value.type === 'flow'}
|
|
146
|
+
{:else if flowModule.value.type === 'rawscript' || flowModule.value.type === 'script' || flowModule.value.type === 'flow' || flowModule.value.type === 'aiagent'}
|
|
147
147
|
<FlowModuleComponent
|
|
148
148
|
{noEditor}
|
|
149
149
|
bind:flowModule
|
|
@@ -157,6 +157,7 @@ async function createModuleFromScript(path, summary, kind, hash) {
|
|
|
157
157
|
{savedModule}
|
|
158
158
|
forceTestTab={forceTestTab?.[flowModule.id]}
|
|
159
159
|
highlightArg={highlightArg?.[flowModule.id]}
|
|
160
|
+
{isAgentTool}
|
|
160
161
|
/>
|
|
161
162
|
{/if}
|
|
162
163
|
{:else if flowModule.value.type === 'forloopflow' || flowModule.value.type == 'whileloopflow'}
|
|
@@ -244,4 +245,13 @@ async function createModuleFromScript(path, summary, kind, hash) {
|
|
|
244
245
|
{/each}
|
|
245
246
|
{/if}
|
|
246
247
|
{/each}
|
|
248
|
+
{:else if flowModule.value.type === 'aiagent'}
|
|
249
|
+
{#each flowModule.value.tools as _, index (index)}
|
|
250
|
+
<FlowModuleWrapper
|
|
251
|
+
{noEditor}
|
|
252
|
+
bind:flowModule={flowModule.value.tools[index]}
|
|
253
|
+
bind:parentModule={flowModule}
|
|
254
|
+
isAgentTool
|
|
255
|
+
/>
|
|
256
|
+
{/each}
|
|
247
257
|
{/if}
|
|
@@ -9,6 +9,7 @@ interface Props {
|
|
|
9
9
|
previousModule?: FlowModule | undefined;
|
|
10
10
|
forceTestTab?: Record<string, boolean>;
|
|
11
11
|
highlightArg?: Record<string, string | undefined>;
|
|
12
|
+
isAgentTool?: boolean;
|
|
12
13
|
}
|
|
13
14
|
declare const FlowModuleWrapper: import("svelte").Component<Props, {}, "flowModule" | "parentModule">;
|
|
14
15
|
type FlowModuleWrapper = ReturnType<typeof FlowModuleWrapper>;
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import { workspaceStore } from '../../../stores';
|
|
3
3
|
import FlowCard from '../common/FlowCard.svelte';
|
|
4
4
|
import Button from '../../common/button/Button.svelte';
|
|
5
|
-
let { job, isOwner,
|
|
5
|
+
let { job, isOwner, suspendStatus, noEditor, onOpenDetails } = $props();
|
|
6
6
|
</script>
|
|
7
7
|
|
|
8
8
|
<FlowCard {noEditor} title="Flow result">
|
|
9
|
-
{#if job && isOwner !== undefined &&
|
|
9
|
+
{#if job && isOwner !== undefined && suspendStatus}
|
|
10
10
|
<div class="px-4 py-2">
|
|
11
11
|
<FlowPreviewResult
|
|
12
12
|
{job}
|
|
@@ -14,7 +14,6 @@ let { job, isOwner, localDurationStatuses, suspendStatus, noEditor, onOpenDetail
|
|
|
14
14
|
{isOwner}
|
|
15
15
|
hideFlowResult={false}
|
|
16
16
|
hideDownloadLogs={false}
|
|
17
|
-
{localDurationStatuses}
|
|
18
17
|
innerModules={[]}
|
|
19
18
|
{suspendStatus}
|
|
20
19
|
{extra}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type { DurationStatus } from '../../graph';
|
|
2
1
|
import type { Job } from '../../../gen';
|
|
3
|
-
import type {
|
|
2
|
+
import type { StateStore } from '../../../utils';
|
|
4
3
|
interface Props {
|
|
5
4
|
job?: Job;
|
|
6
5
|
isOwner?: boolean;
|
|
7
|
-
|
|
8
|
-
suspendStatus?: Writable<Record<string, {
|
|
6
|
+
suspendStatus?: StateStore<Record<string, {
|
|
9
7
|
job: Job;
|
|
10
8
|
nb: number;
|
|
11
9
|
}>>;
|
|
@@ -21,7 +21,7 @@ let selected = $state('early-stop');
|
|
|
21
21
|
let previewOpen = $state(false);
|
|
22
22
|
let jobId = $state(undefined);
|
|
23
23
|
let job = $state(undefined);
|
|
24
|
-
let previewIterationArgs = $derived(
|
|
24
|
+
let previewIterationArgs = $derived(flowStateStore.val[mod.id]?.previewArgs ?? {});
|
|
25
25
|
</script>
|
|
26
26
|
|
|
27
27
|
<Drawer bind:open={previewOpen} alwaysOpen size="75%">
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
import type { FlowModule } from '../../gen';
|
|
2
|
-
export declare function dfs<T>(modules: FlowModule[], f: (x: FlowModule, modules: FlowModule[], branches: FlowModule[][]) => T
|
|
2
|
+
export declare function dfs<T>(modules: FlowModule[], f: (x: FlowModule, modules: FlowModule[], branches: FlowModule[][]) => T, { skipToolNodes }?: {
|
|
3
|
+
skipToolNodes?: boolean;
|
|
4
|
+
}): T[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function dfs(modules, f) {
|
|
1
|
+
export function dfs(modules, f, { skipToolNodes = false } = {}) {
|
|
2
2
|
let result = [];
|
|
3
3
|
for (const module of modules) {
|
|
4
4
|
if (module.value.type == 'forloopflow' || module.value.type == 'whileloopflow') {
|
|
@@ -19,6 +19,10 @@ export function dfs(modules, f) {
|
|
|
19
19
|
result = result.concat(dfs(branch, f));
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
+
else if (module.value.type == 'aiagent' && !skipToolNodes) {
|
|
23
|
+
result = result.concat(f(module, modules, [module.value.tools]));
|
|
24
|
+
result = result.concat(dfs(module.value.tools, f));
|
|
25
|
+
}
|
|
22
26
|
else {
|
|
23
27
|
result.push(f(module, modules, []));
|
|
24
28
|
}
|