windmill-components 1.522.0 → 1.531.0
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/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
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import FlowStatusViewerInner from './FlowStatusViewerInner.svelte';
|
|
2
|
-
import { type Job, type FlowModuleValue } from '../gen';
|
|
3
|
-
import { type DurationStatus, type GraphModuleState } from './graph';
|
|
4
|
-
import { type Writable } from 'svelte/store';
|
|
2
|
+
import { type Job, type FlowModuleValue, type CompletedJob } from '../gen';
|
|
3
|
+
import { type DurationStatus, type GlobalIterationBounds, type GraphModuleState } from './graph';
|
|
5
4
|
interface Props {
|
|
6
5
|
jobId: string;
|
|
7
6
|
initialJob?: Job | undefined;
|
|
@@ -14,29 +13,32 @@ interface Props {
|
|
|
14
13
|
branchall?: boolean;
|
|
15
14
|
} | undefined;
|
|
16
15
|
innerModule?: FlowModuleValue | undefined;
|
|
17
|
-
globalRefreshes?: Record<string, (clear: any, root: any) => Promise<void>>;
|
|
18
16
|
render?: boolean;
|
|
19
17
|
isOwner?: boolean;
|
|
20
18
|
selectedNode?: string | undefined;
|
|
21
|
-
globalModuleStates:
|
|
22
|
-
globalDurationStatuses
|
|
23
|
-
|
|
19
|
+
globalModuleStates: Record<string, GraphModuleState>[];
|
|
20
|
+
globalDurationStatuses?: Record<string, DurationStatus>[];
|
|
21
|
+
globalIterationBounds: Record<string, GlobalIterationBounds>;
|
|
22
|
+
isSelectedBranch?: boolean;
|
|
24
23
|
isSubflow?: boolean;
|
|
25
24
|
reducedPolling?: boolean;
|
|
26
25
|
wideResults?: boolean;
|
|
27
26
|
hideFlowResult?: boolean;
|
|
27
|
+
topModuleStates?: Record<string, GraphModuleState>;
|
|
28
28
|
workspace?: string | undefined;
|
|
29
29
|
prefix?: string | undefined;
|
|
30
|
-
subflowParentsGlobalModuleStates?:
|
|
31
|
-
subflowParentsDurationStatuses?:
|
|
30
|
+
subflowParentsGlobalModuleStates?: Record<string, GraphModuleState>[];
|
|
31
|
+
subflowParentsDurationStatuses?: Record<string, DurationStatus>[];
|
|
32
32
|
isForloopSelected?: boolean;
|
|
33
|
-
|
|
33
|
+
updateRecursiveRefreshFn?: (jobId: string, updateFn: (clear: any, root: any) => Promise<void>) => void;
|
|
34
|
+
refreshGlobal: (moduleId: string, clear: boolean, root: string) => Promise<void>;
|
|
35
|
+
updateGlobalRefresh: (moduleId: string, updateFn: (clear: any, root: any) => Promise<void>) => void;
|
|
34
36
|
job?: (Job & {
|
|
35
37
|
result_stream?: string;
|
|
36
38
|
}) | undefined;
|
|
37
39
|
rightColumnSelect?: 'timeline' | 'node_status' | 'node_definition' | 'user_states';
|
|
38
|
-
localModuleStates?:
|
|
39
|
-
localDurationStatuses?:
|
|
40
|
+
localModuleStates?: Record<string, GraphModuleState>;
|
|
41
|
+
localDurationStatuses?: Record<string, DurationStatus>;
|
|
40
42
|
onResultStreamUpdate?: ({ jobId, result_stream }: {
|
|
41
43
|
jobId: string;
|
|
42
44
|
result_stream?: string;
|
|
@@ -44,26 +46,18 @@ interface Props {
|
|
|
44
46
|
customUi?: {
|
|
45
47
|
tagLabel?: string | undefined;
|
|
46
48
|
};
|
|
49
|
+
graphTabOpen: boolean;
|
|
50
|
+
isNodeSelected: boolean;
|
|
51
|
+
loadExtraLogs?: (logs: string) => void;
|
|
52
|
+
onStart?: () => void;
|
|
53
|
+
onJobsLoaded?: ({ job, force }: {
|
|
54
|
+
job: Job;
|
|
55
|
+
force: boolean;
|
|
56
|
+
}) => void;
|
|
57
|
+
onDone?: ({ job }: {
|
|
58
|
+
job: CompletedJob;
|
|
59
|
+
}) => void;
|
|
47
60
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
$$bindings?: Bindings;
|
|
51
|
-
} & Exports;
|
|
52
|
-
(internal: unknown, props: Props & {
|
|
53
|
-
$$events?: Events;
|
|
54
|
-
$$slots?: Slots;
|
|
55
|
-
}): Exports & {
|
|
56
|
-
$set?: any;
|
|
57
|
-
$on?: any;
|
|
58
|
-
};
|
|
59
|
-
z_$$bindings?: Bindings;
|
|
60
|
-
}
|
|
61
|
-
declare const FlowStatusViewerInner: $$__sveltets_2_IsomorphicComponent<Props, {
|
|
62
|
-
jobsLoaded: CustomEvent<any>;
|
|
63
|
-
done: CustomEvent<any>;
|
|
64
|
-
start: CustomEvent<any>;
|
|
65
|
-
} & {
|
|
66
|
-
[evt: string]: CustomEvent<any>;
|
|
67
|
-
}, {}, {}, "job" | "globalRefreshes" | "selectedNode" | "parentRecursiveRefresh" | "rightColumnSelect">;
|
|
68
|
-
type FlowStatusViewerInner = InstanceType<typeof FlowStatusViewerInner>;
|
|
61
|
+
declare const FlowStatusViewerInner: import("svelte").Component<Props, {}, "job" | "localModuleStates" | "selectedNode" | "rightColumnSelect" | "localDurationStatuses">;
|
|
62
|
+
type FlowStatusViewerInner = ReturnType<typeof FlowStatusViewerInner>;
|
|
69
63
|
export default FlowStatusViewerInner;
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
<script lang="ts">import { debounce, displayDate, msToSec } from '../utils';
|
|
1
|
+
<script lang="ts">import { debounce, displayDate, msToSec, readFieldsRecursively } from '../utils';
|
|
2
2
|
import { onDestroy, untrack } from 'svelte';
|
|
3
3
|
import { getDbClockNow } from '../forLater';
|
|
4
4
|
import { Loader2 } from 'lucide-svelte';
|
|
5
5
|
import TimelineBar from './TimelineBar.svelte';
|
|
6
6
|
import WaitTimeWarning from './common/waitTimeWarning/WaitTimeWarning.svelte';
|
|
7
|
-
let { selfWaitTime = undefined, aggregateWaitTime = undefined, flowModules, durationStatuses, flowDone = false } = $props();
|
|
7
|
+
let { selfWaitTime = undefined, aggregateWaitTime = undefined, flowModules, durationStatuses, flowDone = false, decreaseIterationFrom, buildSubflowKey, globalIterationBounds } = $props();
|
|
8
8
|
let min = $state(undefined);
|
|
9
9
|
let max = $state(undefined);
|
|
10
10
|
let total = $state(undefined);
|
|
11
11
|
let items = $state(undefined);
|
|
12
|
-
let { debounced, clearDebounce } = debounce(() => computeItems(
|
|
12
|
+
let { debounced, clearDebounce } = debounce(() => computeItems(durationStatuses), 30);
|
|
13
13
|
$effect(() => {
|
|
14
|
-
|
|
14
|
+
readFieldsRecursively(durationStatuses);
|
|
15
|
+
flowDone != undefined && durationStatuses && untrack(() => debounced());
|
|
15
16
|
});
|
|
16
17
|
export function reset() {
|
|
17
18
|
min = undefined;
|
|
18
19
|
max = undefined;
|
|
19
|
-
items = computeItems(
|
|
20
|
+
items = computeItems(durationStatuses);
|
|
20
21
|
}
|
|
21
22
|
function computeItems(durationStatuses) {
|
|
22
23
|
let nmin = undefined;
|
|
@@ -126,20 +127,17 @@ onDestroy(() => {
|
|
|
126
127
|
</div>
|
|
127
128
|
{/if}
|
|
128
129
|
{#each Object.values(flowModules) as k (k)}
|
|
130
|
+
{@const iterationFrom = globalIterationBounds[buildSubflowKey(k)]?.iteration_from ?? 0}
|
|
129
131
|
<div class="overflow-auto max-h-60 shadow-inner dark:shadow-gray-700 relative">
|
|
130
|
-
{#if
|
|
132
|
+
{#if iterationFrom > 0}
|
|
131
133
|
<div class="w-full flex flex-row-reverse sticky top-0">
|
|
132
134
|
<button
|
|
133
135
|
class="!text-secondary underline mr-2 text-2xs text-right whitespace-nowrap"
|
|
134
136
|
onclick={() => {
|
|
135
|
-
|
|
136
|
-
if (r.iteration_from) {
|
|
137
|
-
r.iteration_from -= 20
|
|
138
|
-
$durationStatuses = $durationStatuses
|
|
139
|
-
}
|
|
137
|
+
decreaseIterationFrom?.(k, 20)
|
|
140
138
|
}}
|
|
141
|
-
>Viewing iterations {
|
|
142
|
-
|
|
139
|
+
>Viewing iterations {iterationFrom} to {globalIterationBounds[buildSubflowKey(k)]
|
|
140
|
+
?.iteration_total}. Load more
|
|
143
141
|
</button>
|
|
144
142
|
</div>
|
|
145
143
|
{/if}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { GlobalIterationBounds } from './graph';
|
|
2
2
|
interface Props {
|
|
3
3
|
selfWaitTime?: number | undefined;
|
|
4
4
|
aggregateWaitTime?: number | undefined;
|
|
5
5
|
flowModules: string[];
|
|
6
|
-
durationStatuses:
|
|
6
|
+
durationStatuses: Record<string, {
|
|
7
7
|
byJob: Record<string, {
|
|
8
8
|
created_at?: number;
|
|
9
9
|
started_at?: number;
|
|
10
10
|
duration_ms?: number;
|
|
11
11
|
}>;
|
|
12
|
-
|
|
13
|
-
iteration_total?: number;
|
|
14
|
-
}>>;
|
|
12
|
+
}>;
|
|
15
13
|
flowDone?: boolean;
|
|
14
|
+
decreaseIterationFrom?: (key: string, amount: number) => void;
|
|
15
|
+
buildSubflowKey: (key: string) => string;
|
|
16
|
+
globalIterationBounds: Record<string, GlobalIterationBounds>;
|
|
16
17
|
}
|
|
17
18
|
declare const FlowTimeline: import("svelte").Component<Props, {
|
|
18
19
|
reset: () => void;
|
|
@@ -12,6 +12,7 @@ import rust from 'svelte-highlight/languages/rust';
|
|
|
12
12
|
import csharp from 'svelte-highlight/languages/csharp';
|
|
13
13
|
import yaml from 'svelte-highlight/languages/yaml';
|
|
14
14
|
import java from 'svelte-highlight/languages/java';
|
|
15
|
+
import ruby from 'svelte-highlight/languages/ruby';
|
|
15
16
|
import { Button } from './common';
|
|
16
17
|
import { copyToClipboard } from '../utils';
|
|
17
18
|
import { ClipboardCopy } from 'lucide-svelte';
|
|
@@ -66,7 +67,9 @@ function getLang(lang) {
|
|
|
66
67
|
return yaml;
|
|
67
68
|
case 'java':
|
|
68
69
|
return java;
|
|
69
|
-
|
|
70
|
+
case 'ruby':
|
|
71
|
+
return ruby;
|
|
72
|
+
// for related places search: ADD_NEW_LANG
|
|
70
73
|
default:
|
|
71
74
|
return typescript;
|
|
72
75
|
}
|
|
@@ -26,20 +26,24 @@
|
|
|
26
26
|
} = $props()
|
|
27
27
|
|
|
28
28
|
let iconComponent = $derived(
|
|
29
|
-
name
|
|
30
|
-
?
|
|
31
|
-
|
|
29
|
+
name
|
|
30
|
+
? name === 'teams'
|
|
31
|
+
? APP_TO_ICON_COMPONENT.ms_teams_webhook
|
|
32
|
+
: APP_TO_ICON_COMPONENT[name] || APP_TO_ICON_COMPONENT[name.split('_')[0]]
|
|
33
|
+
: undefined
|
|
32
34
|
)
|
|
35
|
+
|
|
36
|
+
let widthInPixels = $derived(parseInt(width))
|
|
33
37
|
</script>
|
|
34
38
|
|
|
35
|
-
<div class="truncate flex flex-row gap-2 {center ? 'justify-center
|
|
39
|
+
<div class="truncate flex flex-row gap-2 items-center {center ? 'justify-center ' : ''} -pl-2">
|
|
36
40
|
{#if !silent && !after}
|
|
37
41
|
{name}
|
|
38
42
|
{/if}
|
|
39
43
|
{#if iconComponent}
|
|
40
44
|
{@const SvelteComponent = iconComponent}
|
|
41
45
|
<span class={isSelected ? 'text-secondary' : 'text-secondary grayscale'}>
|
|
42
|
-
<SvelteComponent {height} {width} />
|
|
46
|
+
<SvelteComponent {height} {width} size={widthInPixels} />
|
|
43
47
|
</span>
|
|
44
48
|
{:else if formatExtension}
|
|
45
49
|
<span class={isSelected ? 'text-secondary' : 'text-secondary grayscale'}>
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
<script module lang="ts">import pLimit from 'p-limit';
|
|
2
|
+
const plimit = pLimit(5);
|
|
3
|
+
</script>
|
|
4
|
+
|
|
1
5
|
<script lang="ts">import { JobService } from '../gen';
|
|
2
6
|
import { workspaceStore } from '../stores';
|
|
3
7
|
import { onDestroy, tick, untrack } from 'svelte';
|
|
4
8
|
import { sendUserToast } from '../toast';
|
|
5
9
|
import { isScriptPreview } from '../utils';
|
|
6
|
-
let { isLoading = $bindable(false), job = $bindable(undefined), noCode = false, allowConcurentRequests = false, workspaceOverride = undefined, notfound = $bindable(false), jobUpdateLastFetch = $bindable(undefined), toastError = false, onlyResult = false, scriptProgress = $bindable(undefined), noLogs = false, children } = $props();
|
|
10
|
+
let { isLoading = $bindable(false), job = $bindable(undefined), noCode = false, allowConcurentRequests = false, workspaceOverride = undefined, notfound = $bindable(false), jobUpdateLastFetch = $bindable(undefined), toastError = false, onlyResult = false, loadPlaceholderJobOnStart = undefined, scriptProgress = $bindable(undefined), noLogs = false, children } = $props();
|
|
7
11
|
/// Last time asked for job progress
|
|
8
12
|
let lastTimeCheckedProgress = undefined;
|
|
9
13
|
/// Will try to poll progress every 5s and if once progress returned was not undefined, will be ignored
|
|
@@ -23,6 +27,8 @@ let ITERATIONS_BEFORE_SUPER_SLOW_REFRESH = 100;
|
|
|
23
27
|
let lastStartedAt = Date.now();
|
|
24
28
|
let currentId = $state(undefined);
|
|
25
29
|
let noPingTimeout = undefined;
|
|
30
|
+
let lastNoLogs = $state(noLogs);
|
|
31
|
+
let lastCompletedJobId = $state(undefined);
|
|
26
32
|
$effect(() => {
|
|
27
33
|
let newIsLoading = currentId !== undefined;
|
|
28
34
|
untrack(() => {
|
|
@@ -31,6 +37,29 @@ $effect(() => {
|
|
|
31
37
|
}
|
|
32
38
|
});
|
|
33
39
|
});
|
|
40
|
+
const noLogsChangeRestartEvent = 'SSE restart after no logs change';
|
|
41
|
+
$effect(() => {
|
|
42
|
+
if (noLogs != lastNoLogs) {
|
|
43
|
+
lastNoLogs = noLogs;
|
|
44
|
+
if (!noLogs) {
|
|
45
|
+
currentEventSource?.onerror?.(new Event(noLogsChangeRestartEvent));
|
|
46
|
+
const lastJobId = lastCompletedJobId;
|
|
47
|
+
if (lastJobId && (job || lastCallbacks?.loadExtraLogs)) {
|
|
48
|
+
plimit(() => JobService.getCompletedJobLogsTail({
|
|
49
|
+
workspace: $workspaceStore,
|
|
50
|
+
id: lastJobId
|
|
51
|
+
})).then((res) => {
|
|
52
|
+
if (res && job) {
|
|
53
|
+
job.logs = res;
|
|
54
|
+
}
|
|
55
|
+
if (res && lastCallbacks?.loadExtraLogs) {
|
|
56
|
+
lastCallbacks.loadExtraLogs({ id: lastJobId, logs: res });
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
});
|
|
34
63
|
function clearCurrentId() {
|
|
35
64
|
if (currentId) {
|
|
36
65
|
if (allowConcurentRequests) {
|
|
@@ -44,6 +73,7 @@ function clearCurrentId() {
|
|
|
44
73
|
export async function abstractRun(fn, callbacks) {
|
|
45
74
|
try {
|
|
46
75
|
isLoading = true;
|
|
76
|
+
lastCompletedJobId = undefined;
|
|
47
77
|
clearCurrentJob();
|
|
48
78
|
lastCallbacks = callbacks;
|
|
49
79
|
noPingTimeout = undefined;
|
|
@@ -101,6 +131,16 @@ export async function runFlowByPath(path, args, callbacks) {
|
|
|
101
131
|
skipPreprocessor: true
|
|
102
132
|
}), callbacks);
|
|
103
133
|
}
|
|
134
|
+
export async function runFlowPreview(args, flow, callbacks) {
|
|
135
|
+
return abstractRun(() => JobService.runFlowPreview({
|
|
136
|
+
workspace: $workspaceStore,
|
|
137
|
+
requestBody: {
|
|
138
|
+
args,
|
|
139
|
+
value: flow.value,
|
|
140
|
+
tag: flow.tag
|
|
141
|
+
}
|
|
142
|
+
}), callbacks);
|
|
143
|
+
}
|
|
104
144
|
function refreshLogOffset() {
|
|
105
145
|
if (logOffset == 0) {
|
|
106
146
|
logOffset = job?.logs?.length ? job.logs?.length + 1 : 0;
|
|
@@ -145,7 +185,6 @@ export async function cancelJob() {
|
|
|
145
185
|
const id = currentId;
|
|
146
186
|
if (id) {
|
|
147
187
|
lastCallbacks?.cancel?.({ id });
|
|
148
|
-
lastCallbacks = undefined;
|
|
149
188
|
clearCurrentId();
|
|
150
189
|
// Clean up SSE connection
|
|
151
190
|
currentEventSource?.close();
|
|
@@ -166,7 +205,6 @@ export async function clearCurrentJob() {
|
|
|
166
205
|
if (currentId && !allowConcurentRequests) {
|
|
167
206
|
job = undefined;
|
|
168
207
|
lastCallbacks?.cancel?.({ id: currentId });
|
|
169
|
-
lastCallbacks = undefined;
|
|
170
208
|
await cancelJob();
|
|
171
209
|
}
|
|
172
210
|
}
|
|
@@ -184,11 +222,17 @@ export async function watchJob(testId, callbacks) {
|
|
|
184
222
|
syncIteration = 0;
|
|
185
223
|
errorIteration = 0;
|
|
186
224
|
currentId = testId;
|
|
187
|
-
|
|
225
|
+
if (loadPlaceholderJobOnStart) {
|
|
226
|
+
job = structuredClone(loadPlaceholderJobOnStart);
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
job = undefined;
|
|
230
|
+
}
|
|
188
231
|
startedWatchingJob = Date.now();
|
|
189
232
|
// Clean up any existing SSE connection
|
|
190
233
|
currentEventSource?.close();
|
|
191
234
|
currentEventSource = undefined;
|
|
235
|
+
lastCallbacks = callbacks;
|
|
192
236
|
// Try SSE first, fall back to polling if needed
|
|
193
237
|
if (supportsSSE()) {
|
|
194
238
|
await loadTestJobWithSSE(testId, 0, callbacks);
|
|
@@ -364,6 +408,7 @@ async function onJobCompleted(id, job, callbacks) {
|
|
|
364
408
|
}
|
|
365
409
|
callbacks?.change?.(job);
|
|
366
410
|
clearCurrentId();
|
|
411
|
+
lastCompletedJobId = id;
|
|
367
412
|
}
|
|
368
413
|
}
|
|
369
414
|
function setNoPingTimeout(id, attempt, callbacks) {
|
|
@@ -389,13 +434,14 @@ async function loadTestJobWithSSE(id, attempt, callbacks) {
|
|
|
389
434
|
if (isCurrentJob(id)) {
|
|
390
435
|
try {
|
|
391
436
|
// First load the job to get initial state
|
|
392
|
-
if (!job && !onlyResult) {
|
|
437
|
+
if ((!job || job.id == '') && !onlyResult) {
|
|
393
438
|
job = await JobService.getJob({
|
|
394
439
|
workspace: workspace,
|
|
395
440
|
id,
|
|
396
441
|
noLogs: noLogs,
|
|
397
442
|
noCode
|
|
398
443
|
});
|
|
444
|
+
callbacks?.change?.(job);
|
|
399
445
|
}
|
|
400
446
|
if (!onlyResult) {
|
|
401
447
|
callbacks?.resultStreamUpdate?.({
|
|
@@ -524,9 +570,16 @@ async function loadTestJobWithSSE(id, attempt, callbacks) {
|
|
|
524
570
|
console.warn('SSE error:', error);
|
|
525
571
|
currentEventSource?.close();
|
|
526
572
|
currentEventSource = undefined;
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
573
|
+
let delay = 1000;
|
|
574
|
+
let isNoLogsChange = error.type == noLogsChangeRestartEvent;
|
|
575
|
+
if (isNoLogsChange) {
|
|
576
|
+
delay = 0;
|
|
577
|
+
}
|
|
578
|
+
if (attempt < 3 || isNoLogsChange) {
|
|
579
|
+
if (!isNoLogsChange) {
|
|
580
|
+
console.log(`SSE error (1), retrying ... attempt: ${attempt + 1}/3`);
|
|
581
|
+
}
|
|
582
|
+
setTimeout(() => loadTestJobWithSSE(id, attempt + 1, callbacks), delay);
|
|
530
583
|
}
|
|
531
584
|
else {
|
|
532
585
|
// Fall back to polling on error
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Job } from '../gen';
|
|
1
|
+
import { type Job, type OpenFlow } from '../gen';
|
|
2
2
|
import type { SupportedLanguage } from '../common';
|
|
3
3
|
export type Callbacks = {
|
|
4
4
|
done?: (x: Job & {
|
|
@@ -26,6 +26,10 @@ export type Callbacks = {
|
|
|
26
26
|
id: string;
|
|
27
27
|
result_stream?: string;
|
|
28
28
|
}) => void;
|
|
29
|
+
loadExtraLogs?: ({ id, logs }: {
|
|
30
|
+
id: string;
|
|
31
|
+
logs: string;
|
|
32
|
+
}) => void;
|
|
29
33
|
};
|
|
30
34
|
interface Props {
|
|
31
35
|
isLoading?: boolean;
|
|
@@ -40,6 +44,7 @@ interface Props {
|
|
|
40
44
|
jobUpdateLastFetch?: Date | undefined;
|
|
41
45
|
toastError?: boolean;
|
|
42
46
|
onlyResult?: boolean;
|
|
47
|
+
loadPlaceholderJobOnStart?: Job;
|
|
43
48
|
scriptProgress?: number | undefined;
|
|
44
49
|
children?: import('svelte').Snippet<[any]>;
|
|
45
50
|
}
|
|
@@ -48,6 +53,9 @@ declare const JobLoader: import("svelte").Component<Props, {
|
|
|
48
53
|
runScriptByPath: (path: string, args: Record<string, any>, callbacks?: Callbacks) => Promise<string>;
|
|
49
54
|
runScriptByHash: (hash: string, args: Record<string, any>, callbacks?: Callbacks) => Promise<string>;
|
|
50
55
|
runFlowByPath: (path: string, args: Record<string, any>, callbacks?: Callbacks) => Promise<string>;
|
|
56
|
+
runFlowPreview: (args: Record<string, any>, flow: OpenFlow & {
|
|
57
|
+
tag?: string;
|
|
58
|
+
}, callbacks?: Callbacks) => Promise<string>;
|
|
51
59
|
getLogs: () => Promise<void>;
|
|
52
60
|
runPreview: (path: string | undefined, code: string, lang: SupportedLanguage | undefined, args: Record<string, any>, tag: string | undefined, lock?: string, hash?: string, callbacks?: Callbacks) => Promise<string>;
|
|
53
61
|
cancelJob: () => Promise<void>;
|
|
@@ -15,7 +15,8 @@ import AnsiUp from 'ansi_up';
|
|
|
15
15
|
import NoWorkerWithTagWarning from './runs/NoWorkerWithTagWarning.svelte';
|
|
16
16
|
import { JobService } from '../gen';
|
|
17
17
|
import Tooltip from './Tooltip.svelte';
|
|
18
|
-
|
|
18
|
+
import { twMerge } from 'tailwind-merge';
|
|
19
|
+
let { content, isLoading, duration = undefined, mem = undefined, wrapperClass = '', jobId = undefined, tag, small = false, drawerOpen = $bindable(false), noMaxH = false, noAutoScroll = false, download = true, customEmptyMessage = 'No logs are available yet', tagLabel = undefined, noPadding = false } = $props();
|
|
19
20
|
// @ts-ignore
|
|
20
21
|
const ansi_up = $state(new AnsiUp());
|
|
21
22
|
ansi_up.use_classes = true;
|
|
@@ -213,7 +214,12 @@ let html = $derived(ansi_up.ansi_to_html(downloadStartUrl && prefixIndex != unde
|
|
|
213
214
|
: 'top-2'} left-36">mem peak: {(mem / 1024).toPrecision(4)}MB</span
|
|
214
215
|
>
|
|
215
216
|
{/if}
|
|
216
|
-
<pre
|
|
217
|
+
<pre
|
|
218
|
+
class={twMerge(
|
|
219
|
+
'whitespace-pre break-words w-full',
|
|
220
|
+
small ? '!text-2xs' : '!text-xs',
|
|
221
|
+
noPadding ? '' : 'p-2'
|
|
222
|
+
)}
|
|
217
223
|
>{#if content}{@const len =
|
|
218
224
|
(content?.length ?? 0) +
|
|
219
225
|
(loadedFromObjectStore?.length ?? 0)}{#if downloadStartUrl}<button onclick={getStoreLogs}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
<script lang="ts">import { FoldVertical, UnfoldVertical } from 'lucide-svelte';
|
|
2
|
+
let { showResultsInputs = $bindable(), toggleExpandAll, allExpanded } = $props();
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div class="flex justify-end gap-4 items-center p-2 bg-surface-secondary border-b">
|
|
6
|
+
<div class="flex items-center gap-2 whitespace-nowrap">
|
|
7
|
+
<label
|
|
8
|
+
for="showResultsInputs"
|
|
9
|
+
class="text-xs text-tertiary hover:text-primary transition-colors">Show inputs/results</label
|
|
10
|
+
>
|
|
11
|
+
<div class="flex-shrink-0">
|
|
12
|
+
<input
|
|
13
|
+
type="checkbox"
|
|
14
|
+
name="showResultsInputs"
|
|
15
|
+
id="showResultsInputs"
|
|
16
|
+
bind:checked={showResultsInputs}
|
|
17
|
+
class="w-3 h-4 accent-primary -my-1"
|
|
18
|
+
/>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
<button
|
|
22
|
+
onclick={toggleExpandAll}
|
|
23
|
+
class="text-xs text-tertiary hover:text-primary transition-colors flex items-center gap-2 min-w-24 justify-end"
|
|
24
|
+
>
|
|
25
|
+
{allExpanded ? 'Collapse All' : 'Expand All'}
|
|
26
|
+
{#if allExpanded}
|
|
27
|
+
<FoldVertical size={16} />
|
|
28
|
+
{:else}
|
|
29
|
+
<UnfoldVertical size={16} />
|
|
30
|
+
{/if}
|
|
31
|
+
</button>
|
|
32
|
+
</div>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
showResultsInputs: boolean | undefined;
|
|
3
|
+
toggleExpandAll: () => void;
|
|
4
|
+
allExpanded: boolean | undefined;
|
|
5
|
+
}
|
|
6
|
+
declare const LogViewerHeader: import("svelte").Component<Props, {}, "showResultsInputs">;
|
|
7
|
+
type LogViewerHeader = ReturnType<typeof LogViewerHeader>;
|
|
8
|
+
export default LogViewerHeader;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang="ts">import { allTrue } from '../utils';
|
|
1
|
+
<script lang="ts">import { allTrue, sendUserToast } from '../utils';
|
|
2
2
|
import { RefreshCw } from 'lucide-svelte';
|
|
3
3
|
import ArgInput from './ArgInput.svelte';
|
|
4
4
|
import { Button } from './common';
|
|
@@ -53,10 +53,11 @@ async function loadResourceTypes() {
|
|
|
53
53
|
resourceTypes = await getResourceTypes();
|
|
54
54
|
}
|
|
55
55
|
loadResourceTypes();
|
|
56
|
-
let args = $state({});
|
|
57
56
|
onMount(() => {
|
|
58
|
-
testSteps
|
|
59
|
-
|
|
57
|
+
if (!testSteps) {
|
|
58
|
+
sendUserToast('testSteps module not initialized. Preview will not work.', true);
|
|
59
|
+
}
|
|
60
|
+
testSteps?.updateStepArgs(mod.id, flowStateStore.val, flowStore?.val, previewArgs?.val);
|
|
60
61
|
});
|
|
61
62
|
</script>
|
|
62
63
|
|
|
@@ -71,14 +72,17 @@ onMount(() => {
|
|
|
71
72
|
)}
|
|
72
73
|
data-arg={argName}
|
|
73
74
|
>
|
|
74
|
-
{#if
|
|
75
|
+
{#if schema?.properties?.[argName]}
|
|
75
76
|
<ArgInput
|
|
76
77
|
{resourceTypes}
|
|
77
78
|
minW={false}
|
|
78
79
|
autofocus={autofocus && !focusArg && i == 0}
|
|
79
80
|
label={argName}
|
|
80
81
|
description={schema.properties[argName].description}
|
|
81
|
-
bind:value={
|
|
82
|
+
bind:value={
|
|
83
|
+
() => testSteps?.getStepInputArgs(mod.id, argName),
|
|
84
|
+
(v) => testSteps?.setStepInputArgs(mod.id, argName, v)
|
|
85
|
+
}
|
|
82
86
|
type={schema.properties[argName].type}
|
|
83
87
|
oneOf={schema.properties[argName].oneOf}
|
|
84
88
|
required={schema?.required?.includes(argName)}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
<script lang="ts">import LogViewer from './LogViewer.svelte';
|
|
2
2
|
import JobProgressBar from './jobs/JobProgressBar.svelte';
|
|
3
3
|
import ScriptFix from './copilot/ScriptFix.svelte';
|
|
4
|
+
import {} from '../gen';
|
|
4
5
|
import OutputPickerInner from './flows/propPicker/OutputPickerInner.svelte';
|
|
5
6
|
import { Pane, Splitpanes } from 'svelte-splitpanes';
|
|
6
7
|
import { getContext } from 'svelte';
|
|
7
8
|
import { getStringError } from './copilot/chat/utils';
|
|
9
|
+
import AiAgentLogViewer from './AIAgentLogViewer.svelte';
|
|
8
10
|
let { lang, editor, diffEditor, loopStatus = undefined, lastJob = undefined, scriptProgress = $bindable(undefined), testJob = undefined, mod, testIsLoading = false, disableMock = false, disableHistory = false, onUpdateMock, loadingJob = false, tagLabel = undefined } = $props();
|
|
9
11
|
const { testSteps } = getContext('FlowEditorContext');
|
|
10
12
|
let selectedJob = $state(undefined);
|
|
11
13
|
let preview = $state(undefined);
|
|
12
14
|
let jobProgressReset = $state(() => { });
|
|
15
|
+
$effect(() => {
|
|
16
|
+
if (preview != undefined && testJob) {
|
|
17
|
+
preview = undefined;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
13
20
|
let forceJson = $state(false);
|
|
14
21
|
const logJob = $derived(testJob ?? selectedJob);
|
|
15
22
|
</script>
|
|
@@ -60,6 +67,15 @@ const logJob = $derived(testJob ?? selectedJob);
|
|
|
60
67
|
customEmptyMessage="Using pinned data"
|
|
61
68
|
{tagLabel}
|
|
62
69
|
/>
|
|
70
|
+
{:else if mod.value.type === 'aiagent' && logJob?.type === 'CompletedJob'}
|
|
71
|
+
<AiAgentLogViewer
|
|
72
|
+
tools={mod.value.tools}
|
|
73
|
+
agentJob={{
|
|
74
|
+
...logJob,
|
|
75
|
+
type: 'CompletedJob'
|
|
76
|
+
}}
|
|
77
|
+
workspaceId={logJob.workspace_id}
|
|
78
|
+
/>
|
|
63
79
|
{:else}
|
|
64
80
|
<LogViewer
|
|
65
81
|
small
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type DiffEditor from './DiffEditor.svelte';
|
|
2
2
|
import type Editor from './Editor.svelte';
|
|
3
|
-
import type
|
|
3
|
+
import { type Script, type Job, type FlowModule } from '../gen';
|
|
4
4
|
interface Props {
|
|
5
5
|
lang: Script['language'];
|
|
6
6
|
editor: Editor | undefined;
|