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.
Files changed (271) hide show
  1. package/package/components/AIAgentLogViewer.svelte +123 -0
  2. package/package/components/AIAgentLogViewer.svelte.d.ts +13 -0
  3. package/package/components/AppConnectInner.svelte +10 -10
  4. package/package/components/AutoscalingConfigEditor.svelte +76 -2
  5. package/package/components/Dev.svelte +12 -28
  6. package/package/components/DiffEditor.svelte +6 -3
  7. package/package/components/DiffEditor.svelte.d.ts +1 -0
  8. package/package/components/DisplayResult.svelte +16 -10
  9. package/package/components/DisplayResult.svelte.d.ts +1 -0
  10. package/package/components/EditableSchemaForm.svelte +5 -2
  11. package/package/components/Editor.svelte +26 -8
  12. package/package/components/Editor.svelte.d.ts +1 -1
  13. package/package/components/EditorBar.svelte +25 -5
  14. package/package/components/EditorSettings.svelte +6 -0
  15. package/package/components/FirstStepInputs.svelte +2 -2
  16. package/package/components/FlowBuilder.svelte +18 -36
  17. package/package/components/FlowGraphViewerStep.svelte +7 -0
  18. package/package/components/FlowJobResult.svelte +15 -63
  19. package/package/components/FlowJobResult.svelte.d.ts +10 -4
  20. package/package/components/FlowLogViewer.svelte +660 -0
  21. package/package/components/FlowLogViewer.svelte.d.ts +34 -0
  22. package/package/components/FlowLogViewerWrapper.svelte +52 -0
  23. package/package/components/FlowLogViewerWrapper.svelte.d.ts +21 -0
  24. package/package/components/FlowLoopIterationPreview.svelte +3 -3
  25. package/package/components/FlowPreviewContent.svelte +4 -5
  26. package/package/components/FlowPreviewContent.svelte.d.ts +7 -7
  27. package/package/components/FlowPreviewResult.svelte +4 -5
  28. package/package/components/FlowPreviewResult.svelte.d.ts +3 -5
  29. package/package/components/FlowStatusViewer.svelte +28 -16
  30. package/package/components/FlowStatusViewer.svelte.d.ts +19 -27
  31. package/package/components/FlowStatusViewerInner.svelte +483 -296
  32. package/package/components/FlowStatusViewerInner.svelte.d.ts +27 -33
  33. package/package/components/FlowTimeline.svelte +11 -13
  34. package/package/components/FlowTimeline.svelte.d.ts +6 -5
  35. package/package/components/HighlightCode.svelte +4 -1
  36. package/package/components/IconedResourceType.svelte +9 -5
  37. package/package/components/JobLoader.svelte +61 -8
  38. package/package/components/JobLoader.svelte.d.ts +9 -1
  39. package/package/components/LogViewer.svelte +8 -2
  40. package/package/components/LogViewer.svelte.d.ts +1 -0
  41. package/package/components/LogViewerHeader.svelte +32 -0
  42. package/package/components/LogViewerHeader.svelte.d.ts +8 -0
  43. package/package/components/ModulePreviewForm.svelte +10 -6
  44. package/package/components/ModulePreviewResultViewer.svelte +16 -0
  45. package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -1
  46. package/package/components/ModuleTest.svelte +59 -16
  47. package/package/components/RelativeLineNumbers.svelte +16 -0
  48. package/package/components/RelativeLineNumbers.svelte.d.ts +18 -0
  49. package/package/components/ResourceEditor.svelte +9 -4
  50. package/package/components/ScriptBuilder.svelte +13 -11
  51. package/package/components/ScriptEditor.svelte +2 -2
  52. package/package/components/SimpleEditor.svelte +10 -4
  53. package/package/components/SimpleEditor.svelte.d.ts +1 -0
  54. package/package/components/TemplateEditor.svelte +1 -1
  55. package/package/components/UserSettings.svelte +4 -4
  56. package/package/components/apps/components/display/AppAccordionList.svelte +1 -1
  57. package/package/components/apps/components/display/AppCarouselList.svelte +10 -8
  58. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +3 -3
  59. package/package/components/apps/components/display/table/AppAggridTable.svelte +2 -2
  60. package/package/components/apps/components/helpers/HiddenComponent.svelte +0 -1
  61. package/package/components/apps/components/helpers/InputValue.svelte +6 -1
  62. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +8 -4
  63. package/package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -1
  64. package/package/components/apps/components/helpers/RunnableComponent.svelte +7 -8
  65. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
  66. package/package/components/apps/components/helpers/RunnableWrapper.svelte +12 -3
  67. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -1
  68. package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +0 -5
  69. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +1 -1
  70. package/package/components/apps/components/layout/AppContainer.svelte +1 -1
  71. package/package/components/apps/components/layout/AppDecisionTree.svelte +31 -20
  72. package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
  73. package/package/components/apps/components/layout/AppList.svelte +9 -8
  74. package/package/components/apps/components/layout/AppModal.svelte +1 -1
  75. package/package/components/apps/components/layout/AppSplitpanes.svelte +5 -2
  76. package/package/components/apps/components/layout/AppStepper.svelte +9 -5
  77. package/package/components/apps/components/layout/AppTabs.svelte +2 -2
  78. package/package/components/apps/editor/AppJobsDrawer.svelte +2 -2
  79. package/package/components/apps/editor/GridEditor.svelte +24 -19
  80. package/package/components/apps/editor/GridEditor.svelte.d.ts +4 -1
  81. package/package/components/apps/editor/GridViewer.svelte +1 -1
  82. package/package/components/apps/editor/SubGridEditor.svelte +7 -11
  83. package/package/components/apps/editor/SubGridEditor.svelte.d.ts +3 -19
  84. package/package/components/apps/editor/appUtils.js +17 -68
  85. package/package/components/apps/editor/component/ComponentInner.svelte +845 -694
  86. package/package/components/apps/editor/component/componentCallbacks.svelte.js +8 -1
  87. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +9 -46
  88. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +29 -43
  89. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
  90. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +1 -0
  91. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +2 -2
  92. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +1 -0
  93. package/package/components/apps/svelte-grid/Grid.svelte +23 -25
  94. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +21 -9
  95. package/package/components/apps/svelte-grid/MoveResize.svelte +13 -15
  96. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +17 -24
  97. package/package/components/apps/utils.d.ts +2 -0
  98. package/package/components/apps/utils.js +22 -0
  99. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  100. package/package/components/common/fileDownload/FileDownload.svelte +1 -3
  101. package/package/components/common/fileDownload/FileDownload.svelte.d.ts +4 -18
  102. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  103. package/package/components/copilot/FlowInlineScriptAIButton.svelte +58 -0
  104. package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -0
  105. package/package/components/copilot/MetadataGen.svelte +19 -1
  106. package/package/components/copilot/MetadataGen.svelte.d.ts +1 -1
  107. package/package/components/copilot/ScriptGen.svelte +23 -31
  108. package/package/components/copilot/ScriptGen.svelte.d.ts +0 -1
  109. package/package/components/copilot/autocomplete/Autocompletor.js +2 -0
  110. package/package/components/copilot/chat/AIChatDisplay.svelte +4 -4
  111. package/package/components/copilot/chat/AIChatInput.svelte +29 -6
  112. package/package/components/copilot/chat/AIChatManager.svelte.js +110 -26
  113. package/package/components/copilot/chat/AIChatMessage.svelte +3 -0
  114. package/package/components/copilot/chat/ToolContentDisplay.svelte +84 -0
  115. package/package/components/copilot/chat/ToolContentDisplay.svelte.d.ts +11 -0
  116. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +105 -0
  117. package/package/components/copilot/chat/ToolExecutionDisplay.svelte.d.ts +7 -0
  118. package/package/components/copilot/chat/api/apiTools.d.ts +7 -0
  119. package/package/components/copilot/chat/api/apiTools.js +192 -0
  120. package/package/components/copilot/chat/api/core.d.ts +7 -0
  121. package/package/components/copilot/chat/api/core.js +61 -0
  122. package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -6
  123. package/package/components/copilot/chat/flow/core.js +213 -42
  124. package/package/components/copilot/chat/flow/utils.js +3 -0
  125. package/package/components/copilot/chat/monaco-adapter.d.ts +1 -1
  126. package/package/components/copilot/chat/monaco-adapter.js +10 -4
  127. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  128. package/package/components/copilot/chat/navigator/core.js +20 -22
  129. package/package/components/copilot/chat/script/core.d.ts +11 -3
  130. package/package/components/copilot/chat/script/core.js +92 -15
  131. package/package/components/copilot/chat/shared.d.ts +30 -3
  132. package/package/components/copilot/chat/shared.js +228 -9
  133. package/package/components/copilot/lib.d.ts +1 -1
  134. package/package/components/copilot/lib.js +15 -6
  135. package/package/components/custom_ui.d.ts +2 -0
  136. package/package/components/details/DetailPageLayout.svelte +34 -33
  137. package/package/components/flow_builder.d.ts +1 -2
  138. package/package/components/flows/FlowEditor.svelte +3 -3
  139. package/package/components/flows/FlowEditor.svelte.d.ts +7 -6
  140. package/package/components/flows/common/FlowCard.svelte +2 -2
  141. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  142. package/package/components/flows/common/FlowCardHeader.svelte +13 -4
  143. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  144. package/package/components/flows/content/BranchPredicateEditor.svelte +4 -7
  145. package/package/components/flows/content/BranchPredicateEditor.svelte.d.ts +12 -11
  146. package/package/components/flows/content/FlowConstants.svelte +3 -3
  147. package/package/components/flows/content/FlowEditorPanel.svelte +3 -3
  148. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -4
  149. package/package/components/flows/content/FlowInputsQuick.svelte +2 -1
  150. package/package/components/flows/content/FlowLoop.svelte +2 -2
  151. package/package/components/flows/content/FlowModuleComponent.svelte +130 -108
  152. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  153. package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
  154. package/package/components/flows/content/FlowModuleSkip.svelte +1 -1
  155. package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
  156. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  157. package/package/components/flows/content/FlowModuleWrapper.svelte +15 -5
  158. package/package/components/flows/content/FlowModuleWrapper.svelte.d.ts +1 -0
  159. package/package/components/flows/content/FlowResult.svelte +2 -3
  160. package/package/components/flows/content/FlowResult.svelte.d.ts +2 -4
  161. package/package/components/flows/content/FlowWhileLoop.svelte +1 -1
  162. package/package/components/flows/dfs.d.ts +3 -1
  163. package/package/components/flows/dfs.js +5 -1
  164. package/package/components/flows/flowInfers.js +78 -0
  165. package/package/components/flows/flowState.d.ts +2 -3
  166. package/package/components/flows/flowState.js +2 -2
  167. package/package/components/flows/flowStateUtils.svelte.d.ts +4 -4
  168. package/package/components/flows/flowStateUtils.svelte.js +14 -13
  169. package/package/components/flows/flowStore.d.ts +3 -4
  170. package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
  171. package/package/components/flows/header/FlowYamlEditor.svelte +10 -1
  172. package/package/components/flows/map/FlowGraphPreviewButton.svelte +1 -1
  173. package/package/components/flows/map/FlowJobsMenu.svelte +7 -3
  174. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -0
  175. package/package/components/flows/map/FlowModuleSchemaItem.svelte +12 -12
  176. package/package/components/flows/map/FlowModuleSchemaMap.svelte +26 -19
  177. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +6 -4
  178. package/package/components/flows/map/InsertModuleInner.svelte +9 -1
  179. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
  180. package/package/components/flows/map/MapItem.svelte +4 -2
  181. package/package/components/flows/pickers/TopLevelNode.svelte +4 -1
  182. package/package/components/flows/propPicker/InputPickerInner.svelte +5 -4
  183. package/package/components/flows/propPicker/OutputBadge.svelte +11 -9
  184. package/package/components/flows/propPicker/OutputPickerInner.svelte +10 -1
  185. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +1 -1
  186. package/package/components/flows/testSteps.svelte.d.ts +3 -2
  187. package/package/components/flows/testSteps.svelte.js +26 -23
  188. package/package/components/flows/types.d.ts +1 -1
  189. package/package/components/flows/utils.d.ts +3 -5
  190. package/package/components/flows/utils.js +3 -4
  191. package/package/components/git_sync/GitSyncContext.svelte.js +2 -1
  192. package/package/components/graph/FlowGraphV2.svelte +44 -24
  193. package/package/components/graph/FlowGraphV2.svelte.d.ts +5 -2
  194. package/package/components/graph/graphBuilder.svelte.d.ts +49 -17
  195. package/package/components/graph/graphBuilder.svelte.js +30 -14
  196. package/package/components/graph/model.d.ts +9 -6
  197. package/package/components/graph/renderers/edges/BaseEdge.svelte +3 -3
  198. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +2 -3
  199. package/package/components/graph/renderers/nodes/AIToolNode.svelte +234 -0
  200. package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +24 -0
  201. package/package/components/graph/renderers/nodes/AssetNode.svelte +15 -10
  202. package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +18 -1
  203. package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
  204. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
  205. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  206. package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +2 -2
  207. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
  208. package/package/components/graph/renderers/nodes/ModuleNode.svelte +21 -21
  209. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +64 -0
  210. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte.d.ts +7 -0
  211. package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
  212. package/package/components/icons/RubyIcon.svelte +656 -0
  213. package/package/components/icons/RubyIcon.svelte.d.ts +7 -0
  214. package/package/components/instanceSettings.js +9 -0
  215. package/package/components/modulesTest.svelte.d.ts +6 -3
  216. package/package/components/modulesTest.svelte.js +32 -0
  217. package/package/components/preview/FlowPreviewStatus.svelte +3 -1
  218. package/package/components/raw_apps/RawAppEditor.svelte +27 -26
  219. package/package/components/raw_apps/RawAppEditor.svelte.d.ts +17 -17
  220. package/package/components/runs/{JobPreview.svelte → JobRunsPreview.svelte} +1 -4
  221. package/package/components/runs/{JobPreview.svelte.d.ts → JobRunsPreview.svelte.d.ts} +3 -3
  222. package/package/components/runs/RunRow.svelte +5 -1
  223. package/package/components/schema/AddProperty.svelte +41 -36
  224. package/package/components/schema/AddProperty.svelte.d.ts +2 -2
  225. package/package/components/schema/AddPropertyV2.svelte +41 -37
  226. package/package/components/schema/AddPropertyV2.svelte.d.ts +1 -1
  227. package/package/components/schema/FlowPropertyEditor.svelte +8 -6
  228. package/package/components/search/RunsSearch.svelte +1 -1
  229. package/package/components/settings/CreateToken.svelte +132 -12
  230. package/package/components/settings/CreateToken.svelte.d.ts +3 -20
  231. package/package/components/settings/TokenDisplay.svelte +18 -42
  232. package/package/components/settings/TokenDisplay.svelte.d.ts +0 -1
  233. package/package/components/settings/TokensTable.svelte +2 -4
  234. package/package/components/settings/TokensTable.svelte.d.ts +3 -19
  235. package/package/components/settings/WorkspaceUserSettings.svelte +428 -69
  236. package/package/components/sidebar/MenuButton.svelte +12 -10
  237. package/package/components/stepHistoryLoader.svelte.d.ts +2 -2
  238. package/package/components/stepHistoryLoader.svelte.js +7 -12
  239. package/package/components/triggers/http/OpenAPISpecGenerator.svelte +2 -2
  240. package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte +1 -1
  241. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +4 -4
  242. package/package/components/tutorials/utils.js +3 -0
  243. package/package/components/worker_group.d.ts +4 -1
  244. package/package/components/worker_group.js +3 -2
  245. package/package/editorLangUtils.d.ts +1 -1
  246. package/package/editorLangUtils.js +2 -0
  247. package/package/editorUtils.d.ts +2 -1
  248. package/package/editorUtils.js +2 -1
  249. package/package/gen/core/OpenAPI.js +1 -1
  250. package/package/gen/schemas.gen.d.ts +296 -8
  251. package/package/gen/schemas.gen.js +364 -70
  252. package/package/gen/services.gen.d.ts +118 -16
  253. package/package/gen/services.gen.js +226 -19
  254. package/package/gen/types.gen.d.ts +660 -16
  255. package/package/hubPaths.json +7 -4
  256. package/package/infer.js +10 -1
  257. package/package/monaco_workers/graphql.worker.bundle.js +144 -110
  258. package/package/script_helpers.d.ts +3 -0
  259. package/package/script_helpers.js +58 -3
  260. package/package/scripts.d.ts +1 -1
  261. package/package/scripts.js +3 -2
  262. package/package/stores.d.ts +2 -0
  263. package/package/stores.js +2 -0
  264. package/package/svelte5Utils.svelte.d.ts +16 -0
  265. package/package/svelte5Utils.svelte.js +26 -0
  266. package/package/utils.d.ts +1 -1
  267. package/package.json +20 -19
  268. package/package/components/AllFlowLogs.svelte +0 -31
  269. package/package/components/AllFlowLogs.svelte.d.ts +0 -8
  270. package/package/components/copilot/chat/navigator/apiTools.d.ts +0 -68
  271. package/package/components/copilot/chat/navigator/apiTools.js +0 -258
@@ -1,12 +1,15 @@
1
1
  import type { Job } from '../gen';
2
- type moduleTestState = {
2
+ import type { GraphModuleState } from './graph';
3
+ export type ModuleTestState = {
3
4
  loading: boolean;
4
5
  cancel?: () => Promise<void>;
5
6
  testJob?: Job;
7
+ hiddenInGraph?: boolean;
6
8
  };
7
9
  export declare class ModulesTestStates {
8
- states: Record<string, moduleTestState>;
10
+ states: Record<string, ModuleTestState>;
9
11
  runTestCb?: (moduleId: string) => void;
12
+ hideJobsInGraph(): void;
10
13
  constructor(runTestCb?: (moduleId: string) => void);
11
14
  }
12
- export {};
15
+ export declare function jobToGraphModuleState(testState: ModuleTestState): GraphModuleState | undefined;
@@ -1,8 +1,40 @@
1
1
  export class ModulesTestStates {
2
2
  states = $state({});
3
3
  runTestCb;
4
+ hideJobsInGraph() {
5
+ for (const state of Object.values(this.states)) {
6
+ state.hiddenInGraph = true;
7
+ }
8
+ }
4
9
  constructor(runTestCb) {
5
10
  this.states = {};
6
11
  this.runTestCb = runTestCb;
7
12
  }
8
13
  }
14
+ export function jobToGraphModuleState(testState) {
15
+ if (testState.hiddenInGraph) {
16
+ return undefined;
17
+ }
18
+ else if (testState.loading) {
19
+ return {
20
+ type: 'InProgress',
21
+ args: {}
22
+ };
23
+ }
24
+ else if (testState.testJob) {
25
+ return {
26
+ args: testState.testJob.args,
27
+ type: testState.testJob.type === 'QueuedJob'
28
+ ? 'InProgress'
29
+ : testState.testJob['success']
30
+ ? 'Success'
31
+ : 'Failure',
32
+ job_id: testState.testJob.id,
33
+ tag: testState.testJob.tag,
34
+ duration_ms: testState.testJob['duration_ms'],
35
+ started_at: testState.testJob.started_at
36
+ ? new Date(testState.testJob.started_at).getTime()
37
+ : undefined
38
+ };
39
+ }
40
+ }
@@ -16,7 +16,9 @@ let { job, hideJobId = false, extra } = $props();
16
16
  {#if job && !hideJobId}
17
17
  <div>
18
18
  <div class="text-primary whitespace-nowrap truncate text-sm">
19
- <span class="font-semibold mr-1">Flow:</span>
19
+ {#if ['flow', 'flowpreview', 'flownode'].includes(job.job_kind)}
20
+ <span class="font-semibold mr-1">Flow:</span>
21
+ {/if}
20
22
  <a
21
23
  rel="noreferrer"
22
24
  target="_blank"
@@ -1,4 +1,5 @@
1
- <script lang="ts">import { Pane, Splitpanes } from 'svelte-splitpanes';
1
+ <script lang="ts">import { run } from 'svelte/legacy';
2
+ import { Pane, Splitpanes } from 'svelte-splitpanes';
2
3
  import { writable } from 'svelte/store';
3
4
  import RawAppInlineScriptsPanel from './RawAppInlineScriptsPanel.svelte';
4
5
  import RawAppEditorHeader from './RawAppEditorHeader.svelte';
@@ -11,19 +12,10 @@ import { workspaceStore } from '../../stores';
11
12
  import { genWmillTs } from './utils';
12
13
  import HideButton from '../apps/editor/settingsPanel/HideButton.svelte';
13
14
  import DarkModeObserver from '../DarkModeObserver.svelte';
14
- export let initFiles;
15
- export let initRunnables;
16
- export let newApp;
17
- export let policy;
18
- export let summary = '';
19
- export let path;
20
- export let newPath = undefined;
21
- export let savedApp = undefined;
22
- export let diffDrawer = undefined;
15
+ let { initFiles, initRunnables, newApp, policy, summary = $bindable(''), path, newPath = undefined, savedApp = $bindable(undefined), diffDrawer = undefined } = $props();
23
16
  export const version = undefined;
24
17
  let runnables = writable(initRunnables);
25
- let files = initFiles;
26
- $: $runnables && files && saveFrontendDraft();
18
+ let files = $state(initFiles);
27
19
  let draftTimeout = undefined;
28
20
  function saveFrontendDraft() {
29
21
  draftTimeout && clearTimeout(draftTimeout);
@@ -39,16 +31,11 @@ function saveFrontendDraft() {
39
31
  }
40
32
  }, 500);
41
33
  }
42
- let iframe = undefined;
43
- let appPanelSize = 70;
44
- let jobs = [];
45
- let jobsById = {};
46
- let iframeLoaded = false; // @hmr:keep
47
- $: iframe && iframeLoaded && initFiles && populateFiles();
48
- $: iframe && iframeLoaded && $runnables && populateRunnables();
49
- $: iframe?.addEventListener('load', () => {
50
- iframeLoaded = true;
51
- });
34
+ let iframe = $state(undefined);
35
+ let appPanelSize = $state(70);
36
+ let jobs = $state([]);
37
+ let jobsById = $state({});
38
+ let iframeLoaded = $state(false); // @hmr:keep
52
39
  function populateFiles() {
53
40
  iframe?.contentWindow?.postMessage({
54
41
  type: 'setFiles',
@@ -61,7 +48,7 @@ function populateRunnables() {
61
48
  dts: genWmillTs($runnables)
62
49
  }, '*');
63
50
  }
64
- let selectedRunnable = undefined;
51
+ let selectedRunnable = $state(undefined);
65
52
  function listener(e) {
66
53
  if (e.data.type === 'setFiles') {
67
54
  files = e.data.files;
@@ -79,10 +66,24 @@ async function getBundle() {
79
66
  }, '*');
80
67
  });
81
68
  }
82
- let darkMode = undefined;
69
+ let darkMode = $state(false);
70
+ run(() => {
71
+ $runnables && files && saveFrontendDraft();
72
+ });
73
+ run(() => {
74
+ iframe?.addEventListener('load', () => {
75
+ iframeLoaded = true;
76
+ });
77
+ });
78
+ run(() => {
79
+ iframe && iframeLoaded && initFiles && populateFiles();
80
+ });
81
+ run(() => {
82
+ iframe && iframeLoaded && $runnables && populateRunnables();
83
+ });
83
84
  </script>
84
85
 
85
- <svelte:window on:message={listener} />
86
+ <svelte:window onmessage={listener} />
86
87
  <DarkModeObserver bind:darkMode />
87
88
 
88
89
  <RawAppBackgroundRunner
@@ -127,7 +128,7 @@ let darkMode = undefined;
127
128
  ></iframe>
128
129
  </Pane>
129
130
  <Pane>
130
- <!-- svelte-ignore a11y-no-static-element-interactions -->
131
+ <!-- svelte-ignore a11y_no_static_element_interactions -->
131
132
  <div class="flex h-full w-full">
132
133
  <RawAppInlineScriptsPanel
133
134
  on:hidePanel={() => {
@@ -1,20 +1,7 @@
1
1
  import type { HiddenRunnable } from '../apps/types';
2
2
  import { type Policy } from '../../gen';
3
3
  import DiffDrawer from '../DiffDrawer.svelte';
4
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
5
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
6
- $$bindings?: Bindings;
7
- } & Exports;
8
- (internal: unknown, props: Props & {
9
- $$events?: Events;
10
- $$slots?: Slots;
11
- }): Exports & {
12
- $set?: any;
13
- $on?: any;
14
- };
15
- z_$$bindings?: Bindings;
16
- }
17
- declare const RawAppEditor: $$__sveltets_2_IsomorphicComponent<{
4
+ interface Props {
18
5
  initFiles: Record<string, string>;
19
6
  initRunnables: Record<string, HiddenRunnable>;
20
7
  newApp: boolean;
@@ -32,14 +19,27 @@ declare const RawAppEditor: $$__sveltets_2_IsomorphicComponent<{
32
19
  custom_path?: string;
33
20
  } | undefined;
34
21
  diffDrawer?: DiffDrawer | undefined;
35
- version?: number | undefined;
36
- }, {
22
+ }
23
+ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
24
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
25
+ $$bindings?: Bindings;
26
+ } & Exports;
27
+ (internal: unknown, props: Props & {
28
+ $$events?: Events;
29
+ $$slots?: Slots;
30
+ }): Exports & {
31
+ $set?: any;
32
+ $on?: any;
33
+ };
34
+ z_$$bindings?: Bindings;
35
+ }
36
+ declare const RawAppEditor: $$__sveltets_2_IsomorphicComponent<Props, {
37
37
  restore: CustomEvent<any>;
38
38
  savedNewAppPath: CustomEvent<any>;
39
39
  } & {
40
40
  [evt: string]: CustomEvent<any>;
41
41
  }, {}, {
42
42
  version: number | undefined;
43
- }, string>;
43
+ }, "summary" | "savedApp">;
44
44
  type RawAppEditor = InstanceType<typeof RawAppEditor>;
45
45
  export default RawAppEditor;
@@ -51,16 +51,13 @@ $effect(() => {
51
51
  }
52
52
  }));
53
53
  });
54
- $effect(() => {
55
- job?.logs == undefined && job && viewTab == 'logs' && untrack(() => jobLoader?.getLogs());
56
- });
57
54
  $effect(() => {
58
55
  job?.id && lastJobId !== job.id && untrack(() => job && getConcurrencyKey(job));
59
56
  });
60
57
  let jobLoader = $state(undefined);
61
58
  </script>
62
59
 
63
- <JobLoader noLogs workspaceOverride={workspace} bind:job={currentJob} bind:this={jobLoader} />
60
+ <JobLoader workspaceOverride={workspace} bind:job={currentJob} bind:this={jobLoader} />
64
61
 
65
62
  <div class="p-4 flex flex-col gap-2 items-start h-full">
66
63
  {#if job}
@@ -16,11 +16,11 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
16
16
  };
17
17
  z_$$bindings?: Bindings;
18
18
  }
19
- declare const JobPreview: $$__sveltets_2_IsomorphicComponent<Props, {
19
+ declare const JobRunsPreview: $$__sveltets_2_IsomorphicComponent<Props, {
20
20
  filterByConcurrencyKey: CustomEvent<any>;
21
21
  filterByWorker: CustomEvent<any>;
22
22
  } & {
23
23
  [evt: string]: CustomEvent<any>;
24
24
  }, {}, {}, "">;
25
- type JobPreview = InstanceType<typeof JobPreview>;
26
- export default JobPreview;
25
+ type JobRunsPreview = InstanceType<typeof JobRunsPreview>;
26
+ export default JobRunsPreview;
@@ -107,7 +107,11 @@ $: isExternal = job && job.id === '-';
107
107
  {:else if `scheduled_for` in job && job.scheduled_for && forLater(job.scheduled_for)}
108
108
  Scheduled for {displayDate(job.scheduled_for)}
109
109
  {:else if job.canceled}
110
- Cancelling job... (created <TimeAgo agoOnlyIfRecent date={job.created_at || ''} />)
110
+ {#if job.type == 'CompletedJob'}
111
+ Cancelled <TimeAgo agoOnlyIfRecent date={job.created_at || ''} />
112
+ {:else}
113
+ Cancelling job... (created <TimeAgo agoOnlyIfRecent date={job.created_at || ''} />)
114
+ {/if}
111
115
  {:else if `scheduled_for` in job && job.scheduled_for && forLater(job.scheduled_for)}
112
116
  Waiting for executor (scheduled for <TimeAgo
113
117
  agoOnlyIfRecent
@@ -20,26 +20,26 @@ let argError = '';
20
20
  let editing = false;
21
21
  let oldArgName; // when editing argument and changing name
22
22
  let jsonEditor;
23
- reorder();
24
- function reorder() {
25
- if (schema.order && Array.isArray(schema.order)) {
23
+ reorder(schema);
24
+ function reorder(s) {
25
+ if (s.order && Array.isArray(s.order)) {
26
26
  const n = {};
27
- schema.order.forEach((x) => {
28
- if (schema.properties && schema.properties[x] != undefined) {
29
- n[x] = schema.properties[x];
27
+ s.order.forEach((x) => {
28
+ if (s.properties && s.properties[x] != undefined) {
29
+ n[x] = s.properties[x];
30
30
  }
31
31
  });
32
- Object.keys(schema.properties ?? {})
33
- .filter((x) => !schema.order?.includes(x))
32
+ Object.keys(s.properties ?? {})
33
+ .filter((x) => !s.order?.includes(x))
34
34
  .forEach((x) => {
35
- n[x] = schema.properties[x];
35
+ n[x] = s.properties[x];
36
36
  });
37
37
  schema.properties = n;
38
38
  }
39
39
  }
40
- function syncOrders() {
41
- if (schema) {
42
- schema.order = Object.keys(schema.properties ?? {});
40
+ function syncOrders(s) {
41
+ if (s) {
42
+ s.order = Object.keys(s.properties ?? {});
43
43
  }
44
44
  }
45
45
  function handleAddOrEditArgument(modalProperty) {
@@ -54,51 +54,55 @@ function handleAddOrEditArgument(modalProperty) {
54
54
  argError = 'There is already an argument with this name';
55
55
  }
56
56
  else {
57
- if (!schema.properties) {
58
- schema.properties = {};
57
+ let newSchema = { ...schema };
58
+ if (!newSchema.properties) {
59
+ newSchema.properties = {};
59
60
  }
60
- if (!schema.required) {
61
- schema.required = [];
61
+ if (!newSchema.required) {
62
+ newSchema.required = [];
62
63
  }
63
- if (!schema.order || !Array.isArray(schema.order)) {
64
- syncOrders();
64
+ if (!newSchema.order || !Array.isArray(newSchema.order)) {
65
+ syncOrders(newSchema);
65
66
  }
66
- schema.properties[modalProperty.name] = modalToSchema(modalProperty);
67
+ newSchema.properties = {
68
+ ...newSchema.properties,
69
+ [modalProperty.name]: modalToSchema(modalProperty)
70
+ };
67
71
  if (modalProperty.required) {
68
- if (!schema.required.includes(modalProperty.name)) {
69
- schema.required.push(modalProperty.name);
72
+ if (!newSchema.required.includes(modalProperty.name)) {
73
+ newSchema.required.push(modalProperty.name);
70
74
  }
71
75
  }
72
- else if (schema.required.includes(modalProperty.name)) {
73
- const index = schema.required.indexOf(modalProperty.name, 0);
76
+ else if (newSchema.required.includes(modalProperty.name)) {
77
+ const index = newSchema.required.indexOf(modalProperty.name, 0);
74
78
  if (index > -1) {
75
- schema.required.splice(index, 1);
79
+ newSchema.required.splice(index, 1);
76
80
  }
77
81
  }
78
82
  if (editing && oldArgName && oldArgName !== modalProperty.name) {
79
- let oldPosition = schema.order.indexOf(oldArgName);
80
- schema.order[oldPosition] = modalProperty.name;
81
- reorder();
82
- handleDeleteArgument([oldArgName]);
83
+ let oldPosition = newSchema.order.indexOf(oldArgName);
84
+ newSchema.order[oldPosition] = modalProperty.name;
85
+ reorder(newSchema);
86
+ handleDeleteArgument([oldArgName], newSchema);
83
87
  }
84
- if (!schema.order?.includes(modalProperty.name)) {
85
- schema.order.push(modalProperty.name);
88
+ if (!newSchema.order?.includes(modalProperty.name)) {
89
+ newSchema.order.push(modalProperty.name);
86
90
  }
87
91
  modalProperty = Object.assign({}, DEFAULT_PROPERTY);
88
92
  editing = false;
89
93
  oldArgName = undefined;
94
+ schema = newSchema;
95
+ schemaString = JSON.stringify(schema, null, '\t');
96
+ jsonEditor?.setCode(schemaString);
90
97
  }
91
- schema = schema;
92
- schemaString = JSON.stringify(schema, null, '\t');
93
- jsonEditor?.setCode(schemaString);
94
98
  if (argError !== '') {
95
99
  sendUserToast(argError, true);
96
100
  }
97
101
  dispatch('change', schema);
98
102
  }
99
- export function handleDeleteArgument(argPath) {
103
+ export function handleDeleteArgument(argPath, nschema) {
100
104
  try {
101
- let modifiedObject = schema;
105
+ let modifiedObject = { ...(nschema ?? schema) };
102
106
  let modifiedProperties = modifiedObject.properties;
103
107
  let argName = argPath.pop();
104
108
  argPath.forEach((property) => {
@@ -118,7 +122,7 @@ export function handleDeleteArgument(argPath) {
118
122
  if (modifiedObject.order) {
119
123
  modifiedObject.order = modifiedObject.order.filter((arg) => arg !== argName);
120
124
  }
121
- schema = schema;
125
+ schema = modifiedObject;
122
126
  schemaString = JSON.stringify(schema, null, '\t');
123
127
  dispatch('change', schema);
124
128
  }
@@ -144,6 +148,7 @@ export function handleDeleteArgument(argPath) {
144
148
  })
145
149
  } catch (err) {
146
150
  sendUserToast(`Could not add argument: ${err}`, true)
151
+ console.log('Could not add argument', err)
147
152
  }
148
153
  }}
149
154
  />
@@ -15,14 +15,14 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
15
15
  declare const AddProperty: $$__sveltets_2_IsomorphicComponent<{
16
16
  schema?: Schema | any;
17
17
  DEFAULT_PROPERTY?: ModalSchemaProperty;
18
- handleDeleteArgument?: (argPath: string[]) => void;
18
+ handleDeleteArgument?: (argPath: string[], nschema?: Schema) => void;
19
19
  }, {
20
20
  change: CustomEvent<any>;
21
21
  } & {
22
22
  [evt: string]: CustomEvent<any>;
23
23
  }, {}, {
24
24
  DEFAULT_PROPERTY: ModalSchemaProperty;
25
- handleDeleteArgument: (argPath: string[]) => void;
25
+ handleDeleteArgument: (argPath: string[], nschema?: Schema) => void;
26
26
  }, string>;
27
27
  type AddProperty = InstanceType<typeof AddProperty>;
28
28
  export default AddProperty;
@@ -17,26 +17,26 @@ if (!schema) {
17
17
  let argError = '';
18
18
  let editing = false;
19
19
  let oldArgName; // when editing argument and changing name
20
- reorder();
21
- function reorder() {
22
- if (schema.order && Array.isArray(schema.order)) {
20
+ reorder(schema);
21
+ function reorder(s) {
22
+ if (s.order && Array.isArray(s.order)) {
23
23
  const n = {};
24
- schema.order.forEach((x) => {
25
- if (schema.properties && schema.properties[x] != undefined) {
26
- n[x] = schema.properties[x];
24
+ s.order.forEach((x) => {
25
+ if (s.properties && s.properties[x] != undefined) {
26
+ n[x] = s.properties[x];
27
27
  }
28
28
  });
29
- Object.keys(schema.properties ?? {})
30
- .filter((x) => !schema.order?.includes(x))
29
+ Object.keys(s.properties ?? {})
30
+ .filter((x) => !s.order?.includes(x))
31
31
  .forEach((x) => {
32
- n[x] = schema.properties[x];
32
+ n[x] = s.properties[x];
33
33
  });
34
- schema.properties = n;
34
+ s.properties = n;
35
35
  }
36
36
  }
37
- function syncOrders() {
38
- if (schema) {
39
- schema.order = Object.keys(schema.properties ?? {});
37
+ function syncOrders(s) {
38
+ if (s) {
39
+ s.order = Object.keys(s.properties ?? {});
40
40
  }
41
41
  }
42
42
  export function handleAddOrEditArgument(modalProperty) {
@@ -51,49 +51,53 @@ export function handleAddOrEditArgument(modalProperty) {
51
51
  argError = 'There is already an argument with this name';
52
52
  }
53
53
  else {
54
- if (!schema.properties) {
55
- schema.properties = {};
54
+ let newSchema = { ...schema };
55
+ if (!newSchema.properties) {
56
+ newSchema.properties = {};
56
57
  }
57
- if (!schema.required) {
58
- schema.required = [];
58
+ if (!newSchema.required) {
59
+ newSchema.required = [];
59
60
  }
60
- if (!schema.order || !Array.isArray(schema.order)) {
61
- syncOrders();
61
+ if (!newSchema.order || !Array.isArray(newSchema.order)) {
62
+ syncOrders(newSchema);
62
63
  }
63
- schema.properties[modalProperty.name] = modalToSchema(modalProperty);
64
+ newSchema.properties = {
65
+ ...newSchema.properties,
66
+ [modalProperty.name]: modalToSchema(modalProperty)
67
+ };
64
68
  if (modalProperty.required) {
65
- if (!schema.required.includes(modalProperty.name)) {
66
- schema.required.push(modalProperty.name);
69
+ if (!newSchema.required.includes(modalProperty.name)) {
70
+ newSchema.required.push(modalProperty.name);
67
71
  }
68
72
  }
69
- else if (schema.required.includes(modalProperty.name)) {
70
- const index = schema.required.indexOf(modalProperty.name, 0);
73
+ else if (newSchema.required.includes(modalProperty.name)) {
74
+ const index = newSchema.required.indexOf(modalProperty.name, 0);
71
75
  if (index > -1) {
72
- schema.required.splice(index, 1);
76
+ newSchema.required.splice(index, 1);
73
77
  }
74
78
  }
75
79
  if (editing && oldArgName && oldArgName !== modalProperty.name) {
76
- let oldPosition = schema.order.indexOf(oldArgName);
77
- schema.order[oldPosition] = modalProperty.name;
78
- reorder();
79
- handleDeleteArgument([oldArgName]);
80
+ let oldPosition = newSchema.order.indexOf(oldArgName);
81
+ newSchema.order[oldPosition] = modalProperty.name;
82
+ reorder(newSchema);
83
+ handleDeleteArgument([oldArgName], newSchema);
80
84
  }
81
- if (!schema.order?.includes(modalProperty.name)) {
82
- schema.order.push(modalProperty.name);
85
+ if (!newSchema.order?.includes(modalProperty.name)) {
86
+ newSchema.order.push(modalProperty.name);
83
87
  }
84
88
  modalProperty = Object.assign({}, DEFAULT_PROPERTY);
85
89
  editing = false;
86
90
  oldArgName = undefined;
91
+ schema = $state.snapshot(newSchema);
92
+ dispatch('change', schema);
87
93
  }
88
- schema = $state.snapshot(schema);
89
94
  if (argError !== '') {
90
95
  sendUserToast(argError, true);
91
96
  }
92
- dispatch('change', schema);
93
97
  }
94
- export function handleDeleteArgument(argPath) {
98
+ export function handleDeleteArgument(argPath, nschema) {
95
99
  try {
96
- let modifiedObject = schema;
100
+ let modifiedObject = { ...(nschema ?? schema) };
97
101
  let modifiedProperties = modifiedObject.properties;
98
102
  let argName = argPath.pop();
99
103
  argPath.forEach((property) => {
@@ -118,8 +122,8 @@ export function handleDeleteArgument(argPath) {
118
122
  else {
119
123
  throw Error('Argument not found!');
120
124
  }
121
- syncOrders();
122
- schema = $state.snapshot(schema);
125
+ syncOrders(modifiedObject);
126
+ schema = $state.snapshot(modifiedObject);
123
127
  dispatch('change', schema);
124
128
  }
125
129
  catch (err) {
@@ -25,7 +25,7 @@ declare const AddPropertyV2: $$__sveltets_2_IsomorphicComponent<Props, {
25
25
  }, {}, {
26
26
  DEFAULT_PROPERTY: ModalSchemaProperty;
27
27
  handleAddOrEditArgument: (modalProperty: ModalSchemaProperty) => void;
28
- handleDeleteArgument: (argPath: string[]) => void;
28
+ handleDeleteArgument: (argPath: string[], nschema?: Schema) => void;
29
29
  }, "schema">;
30
30
  type AddPropertyV2 = InstanceType<typeof AddPropertyV2>;
31
31
  export default AddPropertyV2;
@@ -183,13 +183,16 @@ let isDynSelect = $derived(format?.startsWith('dynselect-') ?? false);
183
183
  bind:schema={
184
184
  () => {
185
185
  if (oneOf?.[idx]) {
186
+ let properties = Object.fromEntries(
187
+ Object.entries(oneOf[idx].properties ?? {}).filter(
188
+ ([k]) => k !== 'label' && k !== 'kind'
189
+ )
190
+ )
186
191
  return {
187
192
  ...oneOf[idx],
188
- properties: Object.fromEntries(
189
- Object.entries(oneOf[idx].properties ?? {}).filter(
190
- ([k]) => k !== 'label' && k !== 'kind'
191
- )
192
- )
193
+ properties: properties,
194
+ order: Object.keys(properties),
195
+ required: oneOf[idx].required ?? []
193
196
  }
194
197
  }
195
198
  },
@@ -198,7 +201,6 @@ let isDynSelect = $derived(format?.startsWith('dynselect-') ?? false);
198
201
  const tagKey = oneOf?.find((o) => Object.keys(o.properties ?? {}).includes('kind'))
199
202
  ? 'kind'
200
203
  : 'label'
201
-
202
204
  oneOf[idx] = {
203
205
  ...(v ?? {}),
204
206
  type: 'object',
@@ -8,7 +8,7 @@ import { Alert } from '../common';
8
8
  import QuickMenuItem from './QuickMenuItem.svelte';
9
9
  import { goto } from '$app/navigation';
10
10
  import { displayDateOnly } from '../../utils';
11
- import JobPreview from '../runs/JobPreview.svelte';
11
+ import JobPreview from '../runs/JobRunsPreview.svelte';
12
12
  let debounceTimeout = undefined;
13
13
  const debouncePeriod = 1000;
14
14
  let loadingCompletedRuns = $state(false);