windmill-components 1.504.6 → 1.510.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/ata/index.js +1 -1
- package/package/components/AppConnectInner.svelte +161 -29
- package/package/components/ArgInput.svelte +33 -103
- package/package/components/AuthSettings.svelte +45 -1
- package/package/components/Dev.svelte +31 -24
- package/package/components/DisplayResult.svelte +53 -26
- package/package/components/DisplayResult.svelte.d.ts +1 -1
- package/package/components/DynSelect.svelte +3 -3
- package/package/components/Editor.svelte +7 -4
- package/package/components/EditorBar.svelte +2 -2
- package/package/components/ErrorOrRecoveryHandler.svelte +73 -67
- package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +8 -24
- package/package/components/FlowBuilder.svelte +11 -2
- package/package/components/FlowJobResult.svelte +12 -17
- package/package/components/FlowJobResult.svelte.d.ts +5 -18
- package/package/components/FlowPreviewContent.svelte +13 -10
- package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
- package/package/components/FlowPreviewResult.svelte +14 -6
- package/package/components/FlowStatusViewer.svelte +11 -24
- package/package/components/FlowStatusViewer.svelte.d.ts +19 -18
- package/package/components/FlowStatusViewerInner.svelte +110 -131
- package/package/components/FlowStatusViewerInner.svelte.d.ts +20 -18
- package/package/components/GitDiffPreview.svelte +55 -0
- package/package/components/GitDiffPreview.svelte.d.ts +13 -0
- package/package/components/HistoricInputs.svelte +2 -2
- package/package/components/InitGitRepoPopover.svelte +410 -0
- package/package/components/InitGitRepoPopover.svelte.d.ts +13 -0
- package/package/components/InstanceSetting.svelte +21 -9
- package/package/components/InstanceSettings.svelte +16 -3
- package/package/components/JobLoader.svelte +567 -0
- package/package/components/JobLoader.svelte.d.ts +53 -0
- package/package/components/JobLogs.svelte +6 -4
- package/package/components/JobLogs.svelte.d.ts +5 -18
- package/package/components/LightweightResourcePicker.svelte +18 -39
- package/package/components/LightweightResourcePicker.svelte.d.ts +6 -22
- package/package/components/LogViewer.svelte +35 -41
- package/package/components/LogViewer.svelte.d.ts +6 -20
- package/package/components/ModulePreviewResultViewer.svelte +3 -1
- package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -0
- package/package/components/ModuleTest.svelte +16 -11
- package/package/components/PullGitRepoPopover.svelte +355 -0
- package/package/components/PullGitRepoPopover.svelte.d.ts +18 -0
- package/package/components/S3FilePicker.svelte +5 -3
- package/package/components/SavedInputs.svelte +2 -2
- package/package/components/ScriptBuilder.svelte +4 -3
- package/package/components/ScriptEditor.svelte +34 -31
- package/package/components/ScriptEditor.svelte.d.ts +3 -3
- package/package/components/ServiceLogsInner.svelte +2 -1
- package/package/components/ServiceLogsInner.svelte.d.ts +1 -0
- package/package/components/UserSettings.svelte +1 -1
- package/package/components/WorkerTagSelect.svelte +32 -3
- package/package/components/apps/components/buttons/AppButton.svelte +7 -1
- package/package/components/apps/components/buttons/AppButton.svelte.d.ts +1 -0
- package/package/components/apps/components/display/AppCustomComponent.svelte +1 -1
- package/package/components/apps/components/display/AppDisplayComponentByJobId.svelte +16 -11
- package/package/components/apps/components/display/AppJobIdLogComponent.svelte +13 -10
- package/package/components/apps/components/display/AppMenu.svelte +5 -0
- package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +3 -3
- package/package/components/apps/components/display/dbtable/DeleteRow.svelte +3 -3
- package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +3 -3
- package/package/components/apps/components/display/dbtable/UpdateCell.svelte +3 -3
- package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +3 -3
- package/package/components/apps/components/helpers/RunnableComponent.svelte +65 -54
- package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +5 -5
- package/package/components/apps/components/inputs/AppUserResource.svelte +26 -8
- package/package/components/apps/editor/AppEditorHeader.svelte +11 -5
- package/package/components/apps/editor/AppJobsDrawer.svelte +5 -5
- package/package/components/apps/editor/RunnableJobPanel.svelte +4 -4
- package/package/components/apps/editor/component/components.d.ts +12 -0
- package/package/components/apps/editor/component/components.js +19 -7
- package/package/components/assets/AssetButtons.svelte +38 -0
- package/package/components/assets/AssetButtons.svelte.d.ts +15 -0
- package/package/components/assets/AssetsDropdownButton.svelte +60 -72
- package/package/components/assets/AssetsDropdownButton.svelte.d.ts +3 -4
- package/package/components/assets/AssetsUsageDrawer.svelte +10 -10
- package/package/components/assets/JobAssetsViewer.svelte +79 -0
- package/package/components/assets/JobAssetsViewer.svelte.d.ts +7 -0
- package/package/components/assets/README_DEV.md +0 -0
- package/package/components/assets/lib.d.ts +9 -1
- package/package/components/assets/lib.js +48 -7
- package/package/components/common/fileUpload/FileUpload.svelte +126 -84
- package/package/components/common/fileUpload/FileUpload.svelte.d.ts +13 -3
- package/package/components/common/fileUpload/S3ArgInput.svelte +111 -0
- package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +21 -0
- package/package/components/common/table/ScriptRow.svelte +3 -1
- package/package/components/copilot/autocomplete/Autocompletor.js +23 -5
- package/package/components/copilot/chat/AIChatDisplay.svelte +8 -0
- package/package/components/copilot/chat/AIChatManager.svelte.js +13 -8
- package/package/components/copilot/chat/flow/ModuleAcceptReject.svelte +5 -5
- package/package/components/copilot/chat/flow/core.d.ts +1 -1
- package/package/components/copilot/chat/flow/core.js +2 -38
- package/package/components/copilot/chat/navigator/apiTools.d.ts +8 -0
- package/package/components/copilot/chat/navigator/apiTools.js +95 -15
- package/package/components/copilot/chat/navigator/core.d.ts +1 -1
- package/package/components/copilot/chat/navigator/core.js +2 -1
- package/package/components/copilot/chat/script/core.d.ts +11 -2
- package/package/components/copilot/chat/script/core.js +135 -1
- package/package/components/copilot/chat/shared.d.ts +10 -0
- package/package/components/copilot/chat/shared.js +56 -0
- package/package/components/copilot/lib.d.ts +1 -0
- package/package/components/copilot/lib.js +27 -9
- package/package/components/custom_ui.d.ts +1 -0
- package/package/components/flows/FlowAssetsHandler.svelte +133 -0
- package/package/components/flows/FlowAssetsHandler.svelte.d.ts +14 -0
- package/package/components/flows/content/FlowModuleComponent.svelte +16 -18
- package/package/components/flows/flowStore.d.ts +1 -1
- package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -0
- package/package/components/flows/propPicker/OutputPicker.svelte +9 -4
- package/package/components/flows/scheduleUtils.js +1 -1
- package/package/components/flows/types.d.ts +2 -1
- package/package/components/graph/FlowGraphV2.svelte +8 -104
- package/package/components/graph/FlowGraphV2.svelte.d.ts +0 -2
- package/package/components/graph/graphBuilder.svelte.d.ts +6 -3
- package/package/components/graph/graphBuilder.svelte.js +35 -9
- package/package/components/graph/renderers/edges/BaseEdge.svelte +2 -5
- package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +1 -0
- package/package/components/graph/renderers/nodes/AssetNode.svelte +23 -20
- package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +5 -10
- package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +1 -1
- package/package/components/graph/util.js +1 -1
- package/package/components/home/ItemsList.svelte +2 -0
- package/package/components/icons/AssetGenericIcon.svelte +0 -3
- package/package/components/jobs/JobPreview.svelte +10 -6
- package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +13 -12
- package/package/components/runs/BatchReRunOptionsPane.svelte +5 -1
- package/package/components/runs/JobPreview.svelte +26 -16
- package/package/components/runs/{JobLoader.svelte.d.ts → JobsLoader.svelte.d.ts} +3 -3
- package/package/components/runs/NoWorkerWithTagWarning.svelte +2 -2
- package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -0
- package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
- package/package/components/scriptEditor/LogPanel.svelte +3 -2
- package/package/components/script_builder.d.ts +2 -2
- package/package/components/settings/CreateToken.svelte +76 -41
- package/package/components/settings/CreateToken.svelte.d.ts +1 -1
- package/package/components/settings/ScopeSelector.svelte +613 -0
- package/package/components/settings/ScopeSelector.svelte.d.ts +8 -0
- package/package/components/settings/TokenDisplay.svelte +103 -0
- package/package/components/settings/TokenDisplay.svelte.d.ts +10 -0
- package/package/components/settings/TokensTable.svelte +70 -349
- package/package/components/sidebar/CriticalAlertModal.svelte +3 -0
- package/package/components/triggers/DeleteTriggerButton.svelte +1 -1
- package/package/components/triggers/TriggerEditorToolbar.svelte +3 -3
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte +55 -0
- package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +13 -0
- package/package/components/triggers/TriggersEditor.svelte +45 -3
- package/package/components/triggers/TriggersWrapper.svelte +2 -2
- package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +43 -2
- package/package/components/triggers/gcp/utils.js +9 -1
- package/package/components/triggers/http/OpenAPISpecGenerator.svelte +1 -0
- package/package/components/triggers/http/RouteEditorInner.svelte +208 -164
- package/package/components/triggers/http/RouteEditorInner.svelte.d.ts +6 -2
- package/package/components/triggers/http/utils.js +9 -3
- package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +43 -2
- package/package/components/triggers/kafka/utils.js +9 -1
- package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte +4 -132
- package/package/components/triggers/mqtt/MqttEditorConfigSection.svelte.d.ts +2 -5
- package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +178 -9
- package/package/components/triggers/mqtt/utils.js +9 -1
- package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +43 -2
- package/package/components/triggers/nats/utils.js +9 -1
- package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +41 -2
- package/package/components/triggers/postgres/utils.js +9 -1
- package/package/components/triggers/schedules/ScheduleEditorInner.svelte +34 -88
- package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +43 -2
- package/package/components/triggers/sqs/utils.js +9 -1
- package/package/components/triggers/utils.js +12 -0
- package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +43 -2
- package/package/components/triggers/websocket/utils.js +11 -1
- package/package/components/workspaceSettings/AISettings.svelte +0 -2
- package/package/components/workspaceSettings/FilterList.svelte +56 -0
- package/package/components/workspaceSettings/FilterList.svelte.d.ts +8 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +785 -0
- package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +18 -0
- package/package/gen/core/OpenAPI.js +1 -1
- package/package/gen/schemas.gen.d.ts +305 -23
- package/package/gen/schemas.gen.js +305 -23
- package/package/gen/services.gen.d.ts +33 -1
- package/package/gen/services.gen.js +66 -2
- package/package/gen/types.gen.d.ts +216 -11
- package/package/history.svelte.js +0 -2
- package/package/hub.d.ts +1 -0
- package/package/hubPaths.json +5 -2
- package/package/infer.js +16 -10
- package/package/svelte5Utils.svelte.d.ts +1 -0
- package/package/svelte5Utils.svelte.js +25 -18
- package/package/toast.js +10 -0
- package/package/utils.d.ts +3 -2
- package/package/utils.js +20 -5
- package/package.json +11 -11
- package/package/components/ResultJobLoader.svelte +0 -219
- package/package/components/ResultJobLoader.svelte.d.ts +0 -52
- package/package/components/TestJobLoader.svelte +0 -274
- package/package/components/TestJobLoader.svelte.d.ts +0 -43
- package/package/components/icons/AssetVarIcon.svelte +0 -31
- package/package/components/icons/AssetVarIcon.svelte.d.ts +0 -9
- /package/package/components/runs/{JobLoader.svelte → JobsLoader.svelte} +0 -0
|
@@ -66,6 +66,20 @@ function getModelMaxTokens(model) {
|
|
|
66
66
|
}
|
|
67
67
|
return 8192;
|
|
68
68
|
}
|
|
69
|
+
export function getModelContextWindow(model) {
|
|
70
|
+
if (model.startsWith('gpt-4.1') || model.startsWith('gemini')) {
|
|
71
|
+
return 1000000;
|
|
72
|
+
}
|
|
73
|
+
else if (model.startsWith('gpt-4o') || model.startsWith('llama-3.3')) {
|
|
74
|
+
return 128000;
|
|
75
|
+
}
|
|
76
|
+
else if (model.startsWith('claude') || model.startsWith('o4-mini') || model.startsWith('o3')) {
|
|
77
|
+
return 200000;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
return 128000;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
69
83
|
function getModelSpecificConfig(modelProvider, tools) {
|
|
70
84
|
if ((modelProvider.provider === 'openai' || modelProvider.provider === 'azure_openai') &&
|
|
71
85
|
modelProvider.model.startsWith('o')) {
|
|
@@ -373,6 +387,7 @@ const mistralFimResponseSchema = z.object({
|
|
|
373
387
|
}))
|
|
374
388
|
});
|
|
375
389
|
export const FIM_MAX_TOKENS = 256;
|
|
390
|
+
const FIM_MAX_LINES = 8;
|
|
376
391
|
export async function getFimCompletion(prompt, suffix, providerModel, abortController) {
|
|
377
392
|
const fetchOptions = {
|
|
378
393
|
signal: abortController.signal,
|
|
@@ -396,16 +411,19 @@ export async function getFimCompletion(prompt, suffix, providerModel, abortContr
|
|
|
396
411
|
const body = await response.json();
|
|
397
412
|
const parsedBody = mistralFimResponseSchema.parse(body);
|
|
398
413
|
const choice = parsedBody.choices[0];
|
|
399
|
-
if (choice) {
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
414
|
+
if (choice && choice.message.content !== undefined) {
|
|
415
|
+
let lines = choice.message.content.split('\n');
|
|
416
|
+
// If finish_reason is 'length', remove the last line
|
|
417
|
+
if (choice.finish_reason === 'length') {
|
|
418
|
+
if (lines.length > 1) {
|
|
419
|
+
lines = lines.slice(0, -1);
|
|
420
|
+
}
|
|
421
|
+
else {
|
|
422
|
+
lines = [];
|
|
423
|
+
}
|
|
408
424
|
}
|
|
425
|
+
lines = lines.slice(0, FIM_MAX_LINES);
|
|
426
|
+
return lines.join('\n');
|
|
409
427
|
}
|
|
410
428
|
else {
|
|
411
429
|
return undefined;
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
<script lang="ts" module>export function initFlowGraphAssetsCtx({ getModules }) {
|
|
2
|
+
let s = $state({
|
|
3
|
+
val: {
|
|
4
|
+
selectedAsset: undefined,
|
|
5
|
+
dbManagerDrawer: undefined,
|
|
6
|
+
s3FilePicker: undefined,
|
|
7
|
+
resourceEditorDrawer: undefined,
|
|
8
|
+
resourceMetadataCache: {},
|
|
9
|
+
additionalAssetsMap: {},
|
|
10
|
+
computeAssetsCount: (asset) => {
|
|
11
|
+
return getAllModules(getModules())
|
|
12
|
+
.flatMap((m) => getFlowModuleAssets(m, s.val.additionalAssetsMap) ?? [])
|
|
13
|
+
.filter((a) => assetEq(asset, a)).length;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
return s;
|
|
18
|
+
}
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<script lang="ts">import { inferAssets } from '../../infer';
|
|
22
|
+
import { assetEq, getFlowModuleAssets } from '../assets/lib';
|
|
23
|
+
import OnChange from '../common/OnChange.svelte';
|
|
24
|
+
import { getAllModules } from './flowExplorer';
|
|
25
|
+
import { getContext, untrack } from 'svelte';
|
|
26
|
+
import { AssetService, ResourceService } from '../../gen';
|
|
27
|
+
import { deepEqual } from 'fast-equals';
|
|
28
|
+
import { workspaceStore } from '../../stores';
|
|
29
|
+
import S3FilePicker from '../S3FilePicker.svelte';
|
|
30
|
+
import DbManagerDrawer from '../DBManagerDrawer.svelte';
|
|
31
|
+
import ResourceEditorDrawer from '../ResourceEditorDrawer.svelte';
|
|
32
|
+
let { modules, enableParser = false, enableDbExplore = false, enablePathScriptAndFlowAssets = false } = $props();
|
|
33
|
+
const flowGraphAssetsCtx = getContext('FlowGraphAssetContext');
|
|
34
|
+
let allModules = $derived(getAllModules(modules));
|
|
35
|
+
// Fetch resource metadata for the ExploreAssetButton
|
|
36
|
+
const resMetadataCache = $derived(flowGraphAssetsCtx?.val.resourceMetadataCache);
|
|
37
|
+
$effect(() => {
|
|
38
|
+
if (!resMetadataCache || !enableDbExplore)
|
|
39
|
+
return;
|
|
40
|
+
const assets = allModules.flatMap((m) => getFlowModuleAssets(m, flowGraphAssetsCtx?.val.additionalAssetsMap) ?? []) ?? [];
|
|
41
|
+
for (const asset of assets) {
|
|
42
|
+
if (asset.kind !== 'resource' || asset.path in resMetadataCache)
|
|
43
|
+
continue;
|
|
44
|
+
resMetadataCache[asset.path] = undefined; // avoid fetching multiple times because of async
|
|
45
|
+
ResourceService.getResource({ path: asset.path, workspace: $workspaceStore })
|
|
46
|
+
.then((r) => (resMetadataCache[asset.path] = { resource_type: r.resource_type }))
|
|
47
|
+
.catch((err) => {
|
|
48
|
+
console.error("Couldn't fetch resource", asset.path, err);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
// Fetch transitive assets (path scripts and flows)
|
|
53
|
+
$effect(() => {
|
|
54
|
+
if (!$workspaceStore || !flowGraphAssetsCtx || !enablePathScriptAndFlowAssets)
|
|
55
|
+
return;
|
|
56
|
+
let usages = [];
|
|
57
|
+
let modIds = [];
|
|
58
|
+
for (const mod of allModules) {
|
|
59
|
+
if (mod.id in flowGraphAssetsCtx.val.additionalAssetsMap)
|
|
60
|
+
continue;
|
|
61
|
+
flowGraphAssetsCtx.val.additionalAssetsMap[mod.id] = []; // avoid fetching multiple times because of async
|
|
62
|
+
if (mod.value.type === 'flow' || mod.value.type === 'script') {
|
|
63
|
+
usages.push({ path: mod.value.path, kind: mod.value.type });
|
|
64
|
+
modIds.push(mod.id);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (usages.length) {
|
|
68
|
+
AssetService.listAssetsByUsage({
|
|
69
|
+
workspace: $workspaceStore,
|
|
70
|
+
requestBody: { usages }
|
|
71
|
+
}).then((result) => {
|
|
72
|
+
result.forEach((assets, idx) => {
|
|
73
|
+
flowGraphAssetsCtx.val.additionalAssetsMap[modIds[idx]] = assets;
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
// Prune all additionalAssetsMap entries from deleted modules
|
|
79
|
+
$effect(() => {
|
|
80
|
+
if (!flowGraphAssetsCtx)
|
|
81
|
+
return;
|
|
82
|
+
const modulesSet = new Set(allModules.map((m) => m.id));
|
|
83
|
+
for (const key of Object.keys(flowGraphAssetsCtx.val.additionalAssetsMap)) {
|
|
84
|
+
if (!modulesSet.has(key)) {
|
|
85
|
+
delete flowGraphAssetsCtx.val.additionalAssetsMap[key];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
async function parseAndUpdateRawScriptModule(v) {
|
|
90
|
+
try {
|
|
91
|
+
let parsedAssets = await inferAssets(v.language, v.content);
|
|
92
|
+
for (const asset of parsedAssets) {
|
|
93
|
+
const old = v.assets?.find((a) => assetEq(a, asset));
|
|
94
|
+
if (old?.alt_access_type)
|
|
95
|
+
asset.alt_access_type = old.alt_access_type;
|
|
96
|
+
}
|
|
97
|
+
if (!deepEqual(v.assets, parsedAssets))
|
|
98
|
+
v.assets = parsedAssets;
|
|
99
|
+
}
|
|
100
|
+
catch (e) { }
|
|
101
|
+
}
|
|
102
|
+
// Check for raw script modules whose assets were not parsed. Useful for flows created
|
|
103
|
+
// before the assets feature was introduced.
|
|
104
|
+
$effect(() => {
|
|
105
|
+
if (!enableParser)
|
|
106
|
+
return;
|
|
107
|
+
untrack(() => {
|
|
108
|
+
setTimeout(() => {
|
|
109
|
+
for (const mod of allModules) {
|
|
110
|
+
if (mod.value.type === 'rawscript' && mod.value.assets === undefined) {
|
|
111
|
+
console.log('RawScript module', mod.id, 'without assets field, parsing');
|
|
112
|
+
parseAndUpdateRawScriptModule(mod.value);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}, 500); // ensure modules are loaded
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
</script>
|
|
119
|
+
|
|
120
|
+
{#if enableParser}
|
|
121
|
+
{#each allModules as mod (mod.id)}
|
|
122
|
+
{#if mod.value.type === 'rawscript'}
|
|
123
|
+
{@const v = mod.value}
|
|
124
|
+
<OnChange key={v.content} onChange={() => parseAndUpdateRawScriptModule(v)} />
|
|
125
|
+
{/if}
|
|
126
|
+
{/each}
|
|
127
|
+
{/if}
|
|
128
|
+
|
|
129
|
+
{#if flowGraphAssetsCtx}
|
|
130
|
+
<S3FilePicker bind:this={flowGraphAssetsCtx.val.s3FilePicker} readOnlyMode />
|
|
131
|
+
<DbManagerDrawer bind:this={flowGraphAssetsCtx.val.dbManagerDrawer} />
|
|
132
|
+
<ResourceEditorDrawer bind:this={flowGraphAssetsCtx.val.resourceEditorDrawer} />
|
|
133
|
+
{/if}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare function initFlowGraphAssetsCtx({ getModules }: {
|
|
2
|
+
getModules: () => FlowModule[];
|
|
3
|
+
}): FlowGraphAssetContext;
|
|
4
|
+
import type { FlowGraphAssetContext } from './types';
|
|
5
|
+
import { type FlowModule } from '../../gen';
|
|
6
|
+
type $$ComponentProps = {
|
|
7
|
+
modules: FlowModule[];
|
|
8
|
+
enableParser?: boolean;
|
|
9
|
+
enableDbExplore?: boolean;
|
|
10
|
+
enablePathScriptAndFlowAssets?: boolean;
|
|
11
|
+
};
|
|
12
|
+
declare const FlowAssetsHandler: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
13
|
+
type FlowAssetsHandler = ReturnType<typeof FlowAssetsHandler>;
|
|
14
|
+
export default FlowAssetsHandler;
|
|
@@ -45,10 +45,9 @@ import { JobService } from '../../../gen';
|
|
|
45
45
|
import { workspaceStore } from '../../../stores';
|
|
46
46
|
import { checkIfParentLoop } from '../utils';
|
|
47
47
|
import ModulePreviewResultViewer from '../../ModulePreviewResultViewer.svelte';
|
|
48
|
-
import { refreshStateStore
|
|
48
|
+
import { refreshStateStore } from '../../../svelte5Utils.svelte';
|
|
49
49
|
import { getStepHistoryLoaderContext } from '../../stepHistoryLoader.svelte';
|
|
50
50
|
import AssetsDropdownButton from '../../assets/AssetsDropdownButton.svelte';
|
|
51
|
-
import { inferAssets } from '../../../infer';
|
|
52
51
|
const { selectedId, currentEditor, previewArgs, flowStateStore, flowStore, pathStore, saveDraft, customUi, executionCount } = getContext('FlowEditorContext');
|
|
53
52
|
let { flowModule = $bindable(), failureModule = false, preprocessorModule = false, parentModule = $bindable(), previousModule, scriptKind = 'script', scriptTemplate = 'script', noEditor, enableAi, savedModule = undefined, forceTestTab = false, highlightArg = undefined } = $props();
|
|
54
53
|
let workspaceScriptTag = $state(undefined);
|
|
@@ -74,6 +73,7 @@ let lastJob = $state(undefined);
|
|
|
74
73
|
let testJob = $state(undefined);
|
|
75
74
|
let testIsLoading = $state(false);
|
|
76
75
|
let scriptProgress = $state(undefined);
|
|
76
|
+
let assets = $derived((flowModule.value.type === 'rawscript' && flowModule.value.assets) || []);
|
|
77
77
|
function onModulesChange(savedModule, flowModule) {
|
|
78
78
|
// console.log('onModulesChange', savedModule, flowModule)
|
|
79
79
|
return savedModule?.value?.type === 'rawscript' &&
|
|
@@ -136,10 +136,12 @@ let forceReload = $state(0);
|
|
|
136
136
|
let editorPanelSize = $state(noEditor ? 0 : flowModule.value.type == 'script' ? 30 : 50);
|
|
137
137
|
let editorSettingsPanelSize = $state(100 - untrack(() => editorPanelSize));
|
|
138
138
|
let stepHistoryLoader = getStepHistoryLoaderContext();
|
|
139
|
+
let lastJobId = undefined;
|
|
139
140
|
function onSelectedIdChange() {
|
|
140
141
|
if (!$flowStateStore?.[$selectedId]?.schema && flowModule) {
|
|
141
142
|
reload(flowModule);
|
|
142
143
|
}
|
|
144
|
+
lastJobId = undefined;
|
|
143
145
|
}
|
|
144
146
|
async function getLastJob() {
|
|
145
147
|
if (!$flowStateStore ||
|
|
@@ -149,11 +151,19 @@ async function getLastJob() {
|
|
|
149
151
|
!$flowStateStore[flowModule.id]?.previewWorkspaceId) {
|
|
150
152
|
return;
|
|
151
153
|
}
|
|
154
|
+
if (lastJobId == $flowStateStore[flowModule.id]?.previewJobId ||
|
|
155
|
+
lastJob?.id == $flowStateStore[flowModule.id]?.previewJobId ||
|
|
156
|
+
$flowStateStore[flowModule.id]?.previewSuccess == undefined) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
lastJobId = $flowStateStore[flowModule.id]?.previewJobId;
|
|
152
160
|
const job = await JobService.getJob({
|
|
153
161
|
workspace: $flowStateStore[flowModule.id]?.previewWorkspaceId ?? '',
|
|
154
|
-
id: $flowStateStore[flowModule.id]?.previewJobId ?? ''
|
|
162
|
+
id: $flowStateStore[flowModule.id]?.previewJobId ?? '',
|
|
163
|
+
noCode: true
|
|
155
164
|
});
|
|
156
|
-
if (job) {
|
|
165
|
+
if (job && job.type === 'CompletedJob') {
|
|
166
|
+
lastJobId = $flowStateStore[flowModule.id]?.previewJobId;
|
|
157
167
|
lastJob = job;
|
|
158
168
|
}
|
|
159
169
|
}
|
|
@@ -222,15 +232,6 @@ $effect(() => {
|
|
|
222
232
|
}, 100);
|
|
223
233
|
}
|
|
224
234
|
});
|
|
225
|
-
let assets = usePromise(async () => flowModule.value.type === 'rawscript'
|
|
226
|
-
? await inferAssets(flowModule.value.language, flowModule.value.content)
|
|
227
|
-
: undefined, { clearValueOnRefresh: false, loadInit: false });
|
|
228
|
-
$effect(() => {
|
|
229
|
-
if (flowModule.value.type !== 'rawscript')
|
|
230
|
-
return;
|
|
231
|
-
[flowModule.value.content, flowModule.value.language];
|
|
232
|
-
untrack(() => assets.refresh());
|
|
233
|
-
});
|
|
234
235
|
let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.value.language : undefined);
|
|
235
236
|
</script>
|
|
236
237
|
|
|
@@ -339,11 +340,8 @@ let rawScriptLang = $derived(flowModule.value.type == 'rawscript' ? flowModule.v
|
|
|
339
340
|
{#if !noEditor}
|
|
340
341
|
{#key flowModule.id}
|
|
341
342
|
<div class="absolute top-2 right-4 z-10 flex flex-row gap-2">
|
|
342
|
-
{#if assets
|
|
343
|
-
<AssetsDropdownButton
|
|
344
|
-
assets={assets.value}
|
|
345
|
-
bind:fallbackAccessTypes={flowModule.value.asset_fallback_access_types}
|
|
346
|
-
/>
|
|
343
|
+
{#if assets?.length}
|
|
344
|
+
<AssetsDropdownButton {assets} />
|
|
347
345
|
{/if}
|
|
348
346
|
</div>
|
|
349
347
|
<Editor
|
|
@@ -14,7 +14,7 @@ export declare function getFirstStepSchema(flowState: FlowState, flow: OpenFlow)
|
|
|
14
14
|
value: {
|
|
15
15
|
language?: "deno" | "bun" | "python3" | "go" | "bash" | "powershell" | "postgresql" | "mysql" | "bigquery" | "snowflake" | "mssql" | "oracledb" | "graphql" | "nativets" | "php" | undefined;
|
|
16
16
|
path?: string | undefined;
|
|
17
|
-
type: "rawscript" | "script" | "flow" | "forloopflow" | "
|
|
17
|
+
type: "rawscript" | "script" | "flow" | "forloopflow" | "whileloopflow" | "branchone" | "branchall" | "identity";
|
|
18
18
|
};
|
|
19
19
|
};
|
|
20
20
|
connectFirstNode: () => void;
|
|
@@ -358,6 +358,7 @@ outline-[1px] outline dark:outline-gray-500 outline-gray-300 bg-surface duration
|
|
|
358
358
|
onclick={stopPropagation(
|
|
359
359
|
preventDefault((event) => dispatch('delete', { id, type: modType }))
|
|
360
360
|
)}
|
|
361
|
+
onpointerdown={stopPropagation(preventDefault(() => {}))}
|
|
361
362
|
>
|
|
362
363
|
<X class="mx-[3px]" size={12} strokeWidth={2} />
|
|
363
364
|
</button>
|
|
@@ -46,13 +46,15 @@ function updatePositioning(historyOpen, zoom) {
|
|
|
46
46
|
placement: 'bottom',
|
|
47
47
|
gutter: 0,
|
|
48
48
|
offset: { mainAxis: 3, crossAxis: 69 * zoom },
|
|
49
|
-
overflowPadding: historyOpen ? 250 : 8
|
|
49
|
+
overflowPadding: historyOpen ? 250 : 8,
|
|
50
|
+
flip: false
|
|
50
51
|
});
|
|
51
52
|
popover?.updatePositioning({
|
|
52
53
|
placement: 'bottom',
|
|
53
54
|
gutter: 0,
|
|
54
55
|
offset: { mainAxis: 3, crossAxis: showInput ? -69 * zoom : 0 },
|
|
55
|
-
overflowPadding: historyOpen ? 250 : 8
|
|
56
|
+
overflowPadding: historyOpen ? 250 : 8,
|
|
57
|
+
flip: false
|
|
56
58
|
});
|
|
57
59
|
}
|
|
58
60
|
$effect(() => {
|
|
@@ -104,7 +106,8 @@ onMount(() => {
|
|
|
104
106
|
placement: 'bottom',
|
|
105
107
|
gutter: 0,
|
|
106
108
|
offset: { mainAxis: 3, crossAxis: 69 },
|
|
107
|
-
overflowPadding: historyOpen ? 250 : 8
|
|
109
|
+
overflowPadding: historyOpen ? 250 : 8,
|
|
110
|
+
flip: false
|
|
108
111
|
}}
|
|
109
112
|
usePointerDownOutside
|
|
110
113
|
closeOnOutsideClick={false}
|
|
@@ -139,12 +142,14 @@ onMount(() => {
|
|
|
139
142
|
{/snippet}
|
|
140
143
|
</Popover>
|
|
141
144
|
{/if}
|
|
145
|
+
|
|
142
146
|
<Popover
|
|
143
147
|
floatingConfig={{
|
|
144
148
|
placement: 'bottom',
|
|
145
149
|
gutter: 0,
|
|
146
150
|
offset: { mainAxis: 3, crossAxis: showInput ? -69 : 0 },
|
|
147
|
-
overflowPadding: historyOpen ? 250 : 8
|
|
151
|
+
overflowPadding: historyOpen ? 250 : 8,
|
|
152
|
+
flip: false
|
|
148
153
|
}}
|
|
149
154
|
usePointerDownOutside
|
|
150
155
|
closeOnOutsideClick={false}
|
|
@@ -135,7 +135,7 @@ export async function saveScheduleFromCfg(scheduleCfg, edit, workspace) {
|
|
|
135
135
|
on_success: scheduleCfg.on_success,
|
|
136
136
|
on_success_extra_args: scheduleCfg.on_success_extra_args,
|
|
137
137
|
ws_error_handler_muted: scheduleCfg.ws_error_handler_muted,
|
|
138
|
-
retry: scheduleCfg.retry,
|
|
138
|
+
retry: !scheduleCfg.is_flow ? scheduleCfg.retry : undefined,
|
|
139
139
|
summary: scheduleCfg.summary,
|
|
140
140
|
description: scheduleCfg.description,
|
|
141
141
|
no_flow_overlap: scheduleCfg.no_flow_overlap,
|
|
@@ -70,11 +70,12 @@ export type FlowEditorContext = {
|
|
|
70
70
|
};
|
|
71
71
|
export type FlowGraphAssetContext = StateStore<{
|
|
72
72
|
selectedAsset: Asset | undefined;
|
|
73
|
-
assetsMap: Record<string, AssetWithAccessType[]>;
|
|
74
73
|
s3FilePicker: S3FilePicker | undefined;
|
|
75
74
|
dbManagerDrawer: DbManagerDrawer | undefined;
|
|
76
75
|
resourceEditorDrawer: ResourceEditorDrawer | undefined;
|
|
77
76
|
resourceMetadataCache: Record<string, {
|
|
78
77
|
resource_type?: string;
|
|
79
78
|
} | undefined>;
|
|
79
|
+
additionalAssetsMap: Record<string, AssetWithAccessType[]>;
|
|
80
|
+
computeAssetsCount: (asset: Asset) => number;
|
|
80
81
|
}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang="ts">import {
|
|
1
|
+
<script lang="ts">import { FlowService } from '../../gen';
|
|
2
2
|
import { NODE } from '.';
|
|
3
3
|
import { getContext, onDestroy, setContext, tick, untrack } from 'svelte';
|
|
4
4
|
import { get, writable } from 'svelte/store';
|
|
@@ -32,20 +32,13 @@ import SubflowBound from './renderers/nodes/SubflowBound.svelte';
|
|
|
32
32
|
import { deepEqual } from 'fast-equals';
|
|
33
33
|
import ViewportResizer from './ViewportResizer.svelte';
|
|
34
34
|
import AssetNode, { computeAssetNodes } from './renderers/nodes/AssetNode.svelte';
|
|
35
|
-
import { getAllModules } from '../flows/flowExplorer';
|
|
36
|
-
import { inferAssets } from '../../infer';
|
|
37
|
-
import OnChange from '../common/OnChange.svelte';
|
|
38
|
-
import S3FilePicker from '../S3FilePicker.svelte';
|
|
39
|
-
import DbManagerDrawer from '../DBManagerDrawer.svelte';
|
|
40
|
-
import ResourceEditorDrawer from '../ResourceEditorDrawer.svelte';
|
|
41
|
-
import { assetEq } from '../assets/lib';
|
|
42
35
|
import AssetsOverflowedNode from './renderers/nodes/AssetsOverflowedNode.svelte';
|
|
43
36
|
let useDataflow = writable(false);
|
|
44
37
|
const triggerContext = getContext('TriggerContext');
|
|
45
38
|
let fullWidth = 0;
|
|
46
39
|
let width = $state(0);
|
|
47
40
|
let simplifiableFlow = $state(undefined);
|
|
48
|
-
let { onInsert = undefined, onDelete = undefined, onMove = undefined, onDeleteBranch = undefined, onNewBranch = undefined, onSelect = undefined, onChangeId = undefined, onUpdateMock = undefined, onSelectedIteration = undefined, success = undefined, modules = [], failureModule = undefined, preprocessorModule = undefined, minHeight = 0, maxHeight = undefined, notSelectable = false, flowModuleStates = undefined, selectedId = writable(undefined), path = undefined, newFlow = false, insertable = false, earlyStop = false, cache = false, scroll = false, moving = undefined, download = false, fullSize = false, disableAi = false, triggerNode = false, workspace = $workspaceStore ?? 'NO_WORKSPACE', editMode = false, allowSimplifiedPoll = true, expandedSubflows = $bindable({}),
|
|
41
|
+
let { onInsert = undefined, onDelete = undefined, onMove = undefined, onDeleteBranch = undefined, onNewBranch = undefined, onSelect = undefined, onChangeId = undefined, onUpdateMock = undefined, onSelectedIteration = undefined, success = undefined, modules = [], failureModule = undefined, preprocessorModule = undefined, minHeight = 0, maxHeight = undefined, notSelectable = false, flowModuleStates = undefined, selectedId = writable(undefined), path = undefined, newFlow = false, insertable = false, earlyStop = false, cache = false, scroll = false, moving = undefined, download = false, fullSize = false, disableAi = false, triggerNode = false, workspace = $workspaceStore ?? 'NO_WORKSPACE', editMode = false, allowSimplifiedPoll = true, expandedSubflows = $bindable({}), onTestUpTo = undefined, onEditInput = undefined, isOwner = false, onTestFlow = undefined, isRunning = false, onCancelTestFlow = undefined, onOpenPreview = undefined, onHideJobStatus = undefined, individualStepTests = false, flowJob = undefined, showJobStatus = false, suspendStatus = writable({}), flowHasChanged = false } = $props();
|
|
49
42
|
setContext('FlowGraphContext', { selectedId, useDataflow });
|
|
50
43
|
if (triggerContext && allowSimplifiedPoll) {
|
|
51
44
|
if (isSimplifiable(modules)) {
|
|
@@ -55,66 +48,6 @@ if (triggerContext && allowSimplifiedPoll) {
|
|
|
55
48
|
computeSimplifiableFlow(modules ?? [], value ?? false);
|
|
56
49
|
});
|
|
57
50
|
}
|
|
58
|
-
const flowGraphAssetsCtx = $state({
|
|
59
|
-
val: {
|
|
60
|
-
assetsMap: inputAssets ? { Input: inputAssets } : {},
|
|
61
|
-
selectedAsset: undefined,
|
|
62
|
-
dbManagerDrawer: undefined,
|
|
63
|
-
s3FilePicker: undefined,
|
|
64
|
-
resourceEditorDrawer: undefined,
|
|
65
|
-
resourceMetadataCache: {}
|
|
66
|
-
}
|
|
67
|
-
});
|
|
68
|
-
setContext('FlowGraphAssetContext', flowGraphAssetsCtx);
|
|
69
|
-
const assetsMap = $derived(flowGraphAssetsCtx.val.assetsMap);
|
|
70
|
-
$effect(() => {
|
|
71
|
-
if (inputAssets)
|
|
72
|
-
flowGraphAssetsCtx.val.assetsMap.Input = inputAssets;
|
|
73
|
-
});
|
|
74
|
-
// Fetch resource metadata for the ExploreAssetButton
|
|
75
|
-
const resMetadataCache = $derived(flowGraphAssetsCtx.val.resourceMetadataCache);
|
|
76
|
-
$effect(() => {
|
|
77
|
-
for (const asset of Object.values(assetsMap ?? []).flatMap((x) => x)) {
|
|
78
|
-
if (asset.kind !== 'resource' || asset.path in resMetadataCache)
|
|
79
|
-
continue;
|
|
80
|
-
resMetadataCache[asset.path] = undefined; // avoid fetching multiple times because of async
|
|
81
|
-
ResourceService.getResource({ path: asset.path, workspace: $workspaceStore }).then((r) => (resMetadataCache[asset.path] = { resource_type: r.resource_type }));
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
// Fetch transitive assets (path scripts and flows)
|
|
85
|
-
$effect(() => {
|
|
86
|
-
if (!$workspaceStore)
|
|
87
|
-
return;
|
|
88
|
-
let usages = [];
|
|
89
|
-
let modIds = [];
|
|
90
|
-
for (const mod of getAllModules(modules)) {
|
|
91
|
-
if (mod.id in assetsMap)
|
|
92
|
-
continue;
|
|
93
|
-
assetsMap[mod.id] = []; // avoid fetching multiple times because of async
|
|
94
|
-
if (mod.value.type === 'flow' || mod.value.type === 'script') {
|
|
95
|
-
usages.push({ path: mod.value.path, kind: mod.value.type });
|
|
96
|
-
modIds.push(mod.id);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
if (usages.length) {
|
|
100
|
-
AssetService.listAssetsByUsage({
|
|
101
|
-
workspace: $workspaceStore,
|
|
102
|
-
requestBody: { usages }
|
|
103
|
-
}).then((result) => {
|
|
104
|
-
result.forEach((assets, idx) => {
|
|
105
|
-
assetsMap[modIds[idx]] = assets;
|
|
106
|
-
});
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
// Prune assetsMap to only contain assets that are actually used
|
|
111
|
-
$effect(() => {
|
|
112
|
-
const allModules = new Set(getAllModules(modules).map((mod) => mod.id));
|
|
113
|
-
for (const modId in assetsMap) {
|
|
114
|
-
if (modId !== 'Input' && !allModules.has(modId))
|
|
115
|
-
delete assetsMap[modId];
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
51
|
function computeSimplifiableFlow(modules, simplifiedFlow) {
|
|
119
52
|
const isSimplif = isSimplifiable(modules);
|
|
120
53
|
simplifiableFlow = isSimplif ? { simplifiedFlow } : undefined;
|
|
@@ -289,11 +222,7 @@ async function updateStores() {
|
|
|
289
222
|
}
|
|
290
223
|
let newGraph = graph;
|
|
291
224
|
newGraph.nodes.sort((a, b) => b.id.localeCompare(a.id));
|
|
292
|
-
[nodes, edges] = computeAssetNodes(layoutNodes(newGraph.nodes), newGraph.edges
|
|
293
|
-
moving,
|
|
294
|
-
eventHandlers: eventHandler,
|
|
295
|
-
disableAi
|
|
296
|
-
});
|
|
225
|
+
[nodes, edges] = computeAssetNodes(layoutNodes(newGraph.nodes), newGraph.edges);
|
|
297
226
|
await tick();
|
|
298
227
|
height = Math.max(...nodes.map((n) => n.position.y + NODE.height + 100), minHeight);
|
|
299
228
|
}
|
|
@@ -326,11 +255,13 @@ const proOptions = { hideAttribution: true };
|
|
|
326
255
|
// centerViewport(width)
|
|
327
256
|
// })
|
|
328
257
|
let yamlEditorDrawer = $state(undefined);
|
|
258
|
+
const flowGraphAssetsCtx = getContext('FlowGraphAssetContext');
|
|
329
259
|
$effect(() => {
|
|
330
260
|
allowSimplifiedPoll && modules && untrack(() => onModulesChange(modules ?? []));
|
|
331
261
|
});
|
|
332
262
|
$effect(() => {
|
|
333
|
-
|
|
263
|
+
readFieldsRecursively(modules);
|
|
264
|
+
untrack(() => onModulesChange2(modules));
|
|
334
265
|
});
|
|
335
266
|
let graph = $derived.by(() => {
|
|
336
267
|
moduleCounter;
|
|
@@ -350,13 +281,13 @@ let graph = $derived.by(() => {
|
|
|
350
281
|
flowJob,
|
|
351
282
|
showJobStatus,
|
|
352
283
|
suspendStatus,
|
|
353
|
-
flowHasChanged
|
|
284
|
+
flowHasChanged,
|
|
285
|
+
additionalAssetsMap: flowGraphAssetsCtx?.val.additionalAssetsMap
|
|
354
286
|
}, failureModule, preprocessorModule, eventHandler, success, $useDataflow, $selectedId, moving, simplifiableFlow, triggerNode ? path : undefined, expandedSubflows);
|
|
355
287
|
});
|
|
356
288
|
$effect(() => {
|
|
357
289
|
;
|
|
358
290
|
[graph, allowSimplifiedPoll];
|
|
359
|
-
readFieldsRecursively(assetsMap);
|
|
360
291
|
untrack(() => updateStores());
|
|
361
292
|
});
|
|
362
293
|
let showDataflow = $derived($selectedId != undefined &&
|
|
@@ -481,33 +412,6 @@ export function isNodeVisible(nodeId) {
|
|
|
481
412
|
{/if}
|
|
482
413
|
</div>
|
|
483
414
|
|
|
484
|
-
{#each getAllModules(modules) as mod (mod.id)}
|
|
485
|
-
{#if mod.value.type === 'rawscript'}
|
|
486
|
-
{@const v = mod.value}
|
|
487
|
-
<OnChange
|
|
488
|
-
key={[v.content, v.asset_fallback_access_types]}
|
|
489
|
-
runFirstEffect
|
|
490
|
-
onChange={() =>
|
|
491
|
-
inferAssets(v.language, v.content)
|
|
492
|
-
.then((assets) => {
|
|
493
|
-
for (const override of v.asset_fallback_access_types ?? []) {
|
|
494
|
-
assets = assets.map((asset) => {
|
|
495
|
-
if (assetEq(asset, override) && !asset.access_type)
|
|
496
|
-
return { ...asset, access_type: override.access_type }
|
|
497
|
-
return asset
|
|
498
|
-
})
|
|
499
|
-
}
|
|
500
|
-
if (assetsMap && !deepEqual(assetsMap[mod.id], assets)) assetsMap[mod.id] = assets
|
|
501
|
-
})
|
|
502
|
-
.catch((e) => {})}
|
|
503
|
-
/>
|
|
504
|
-
{/if}
|
|
505
|
-
{/each}
|
|
506
|
-
|
|
507
|
-
<S3FilePicker bind:this={flowGraphAssetsCtx.val.s3FilePicker} readOnlyMode />
|
|
508
|
-
<DbManagerDrawer bind:this={flowGraphAssetsCtx.val.dbManagerDrawer} />
|
|
509
|
-
<ResourceEditorDrawer bind:this={flowGraphAssetsCtx.val.resourceEditorDrawer} />
|
|
510
|
-
|
|
511
415
|
<style>
|
|
512
416
|
:global(.svelte-flow__handle) {
|
|
513
417
|
opacity: 0;
|
|
@@ -3,7 +3,6 @@ import { type GraphModuleState } from '.';
|
|
|
3
3
|
import { type Writable } from 'svelte/store';
|
|
4
4
|
import '@xyflow/svelte/dist/base.css';
|
|
5
5
|
import { type InlineScript, type InsertKind, type onSelectedIteration } from './graphBuilder.svelte';
|
|
6
|
-
import { type AssetWithAccessType } from '../assets/lib';
|
|
7
6
|
interface Props {
|
|
8
7
|
success?: boolean | undefined;
|
|
9
8
|
modules?: FlowModule[] | undefined;
|
|
@@ -29,7 +28,6 @@ interface Props {
|
|
|
29
28
|
editMode?: boolean;
|
|
30
29
|
allowSimplifiedPoll?: boolean;
|
|
31
30
|
expandedSubflows?: Record<string, FlowModule[]>;
|
|
32
|
-
inputAssets?: AssetWithAccessType[];
|
|
33
31
|
isOwner?: boolean;
|
|
34
32
|
isRunning?: boolean;
|
|
35
33
|
individualStepTests?: boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { FlowModule, Job, RawScript, Script } from '../../gen';
|
|
2
2
|
import { type Edge } from '@xyflow/svelte';
|
|
3
3
|
import type { GraphModuleState } from './model';
|
|
4
|
-
import type
|
|
4
|
+
import { type AssetWithAltAccessType } from '../assets/lib';
|
|
5
5
|
import type { Writable } from 'svelte/store';
|
|
6
6
|
export type InsertKind = 'script' | 'forloop' | 'whileloop' | 'branchone' | 'branchall' | 'flow' | 'trigger' | 'approval' | 'end';
|
|
7
7
|
export type InlineScript = {
|
|
@@ -88,6 +88,7 @@ export type InputN = {
|
|
|
88
88
|
flowJob: Job | undefined;
|
|
89
89
|
showJobStatus: boolean;
|
|
90
90
|
flowHasChanged: boolean;
|
|
91
|
+
assets?: AssetWithAltAccessType[] | undefined;
|
|
91
92
|
};
|
|
92
93
|
};
|
|
93
94
|
export type ModuleN = {
|
|
@@ -104,6 +105,7 @@ export type ModuleN = {
|
|
|
104
105
|
editMode: boolean;
|
|
105
106
|
flowJob: Job | undefined;
|
|
106
107
|
isOwner: boolean;
|
|
108
|
+
assets: AssetWithAltAccessType[] | undefined;
|
|
107
109
|
};
|
|
108
110
|
};
|
|
109
111
|
export type BranchAllStartN = {
|
|
@@ -236,13 +238,13 @@ export type TriggerN = {
|
|
|
236
238
|
export type AssetN = {
|
|
237
239
|
type: 'asset';
|
|
238
240
|
data: {
|
|
239
|
-
asset:
|
|
241
|
+
asset: AssetWithAltAccessType;
|
|
240
242
|
};
|
|
241
243
|
};
|
|
242
244
|
export type AssetsOverflowedN = {
|
|
243
245
|
type: 'assetsOverflowed';
|
|
244
246
|
data: {
|
|
245
|
-
overflowedAssets:
|
|
247
|
+
overflowedAssets: AssetWithAltAccessType[];
|
|
246
248
|
};
|
|
247
249
|
};
|
|
248
250
|
export declare function graphBuilder(modules: FlowModule[] | undefined, extra: {
|
|
@@ -265,6 +267,7 @@ export declare function graphBuilder(modules: FlowModule[] | undefined, extra: {
|
|
|
265
267
|
nb: number;
|
|
266
268
|
}>>;
|
|
267
269
|
flowHasChanged: boolean;
|
|
270
|
+
additionalAssetsMap?: Record<string, AssetWithAltAccessType[]>;
|
|
268
271
|
}, failureModule: FlowModule | undefined, preprocessorModule: FlowModule | undefined, eventHandlers: GraphEventHandlers, success: boolean | undefined, useDataflow: boolean | undefined, selectedId: string | undefined, moving: string | undefined, simplifiableFlow: SimplifiableFlow | undefined, flowPathForTriggerNode: string | undefined, expandedSubflows: Record<string, FlowModule[]>): {
|
|
269
272
|
nodes: NodeLayout[];
|
|
270
273
|
edges: Edge[];
|