windmill-components 1.532.0 → 1.542.4

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 (371) hide show
  1. package/package/components/AIProviderPicker.svelte +181 -0
  2. package/package/components/AIProviderPicker.svelte.d.ts +15 -0
  3. package/package/components/ArgInfo.svelte +2 -2
  4. package/package/components/ArgInput.svelte +60 -27
  5. package/package/components/ArgInput.svelte.d.ts +3 -3
  6. package/package/components/AssignableTagsInner.svelte +89 -3
  7. package/package/components/Auth0Setting.svelte +8 -3
  8. package/package/components/ConcurrentJobsChart.svelte +36 -48
  9. package/package/components/ConcurrentJobsChart.svelte.d.ts +8 -20
  10. package/package/components/CustomPopover.svelte.d.ts +1 -1
  11. package/package/components/Dev.svelte +5 -4
  12. package/package/components/DiffDrawer.svelte +2 -2
  13. package/package/components/DiffEditor.svelte +34 -37
  14. package/package/components/DiffEditor.svelte.d.ts +23 -39
  15. package/package/components/DropdownSelect.svelte +26 -0
  16. package/package/components/DropdownSelect.svelte.d.ts +11 -0
  17. package/package/components/DropdownV2Inner.svelte +1 -1
  18. package/package/components/{DynSelect.svelte → DynamicInput.svelte} +47 -15
  19. package/package/components/DynamicInput.svelte.d.ts +11 -0
  20. package/package/components/EditableSchemaForm.svelte +155 -140
  21. package/package/components/EditableSchemaForm.svelte.d.ts +6 -7
  22. package/package/components/Editor.svelte +101 -87
  23. package/package/components/Editor.svelte.d.ts +7 -1
  24. package/package/components/EditorBar.svelte +2 -5
  25. package/package/components/FlowBuilder.svelte +10 -7
  26. package/package/components/FlowLogRow.svelte +64 -0
  27. package/package/components/FlowLogRow.svelte.d.ts +15 -0
  28. package/package/components/FlowLogViewer.svelte +406 -373
  29. package/package/components/FlowLogViewer.svelte.d.ts +5 -1
  30. package/package/components/FlowLogViewerWrapper.svelte +44 -1
  31. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  32. package/package/components/FlowPreviewContent.svelte +3 -3
  33. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  34. package/package/components/FlowStatusViewer.svelte +28 -0
  35. package/package/components/FlowStatusViewerInner.svelte +106 -23
  36. package/package/components/FlowStatusViewerInner.svelte.d.ts +7 -0
  37. package/package/components/FolderPicker.svelte +1 -1
  38. package/package/components/InputTransformForm.svelte +20 -10
  39. package/package/components/JobArgs.svelte +1 -1
  40. package/package/components/JobLoader.svelte.d.ts +1 -1
  41. package/package/components/JobStatus.svelte +2 -0
  42. package/package/components/LogSnippetViewer.svelte +3 -3
  43. package/package/components/LogSnippetViewer.svelte.d.ts +1 -1
  44. package/package/components/LogViewer.svelte +87 -71
  45. package/package/components/LogViewer.svelte.d.ts +1 -0
  46. package/package/components/ModulePreview.svelte +2 -1
  47. package/package/components/ModulePreview.svelte.d.ts +1 -0
  48. package/package/components/ModulePreviewForm.svelte +72 -65
  49. package/package/components/ModulePreviewResultViewer.svelte +13 -18
  50. package/package/components/ModuleTest.svelte +6 -5
  51. package/package/components/ModuleTest.svelte.d.ts +1 -0
  52. package/package/components/OktaSetting.svelte +8 -3
  53. package/package/components/Path.svelte +7 -1
  54. package/package/components/Path.svelte.d.ts +1 -1
  55. package/package/components/Portal.svelte +11 -7
  56. package/package/components/Portal.svelte.d.ts +19 -39
  57. package/package/components/PrefixedInput.svelte +120 -0
  58. package/package/components/PrefixedInput.svelte.d.ts +8 -0
  59. package/package/components/QueuePosition.svelte +81 -0
  60. package/package/components/QueuePosition.svelte.d.ts +8 -0
  61. package/package/components/ResourceNarrowing.svelte +13 -0
  62. package/package/components/ResourceNarrowing.svelte.d.ts +6 -0
  63. package/package/components/ResourceTypePicker.svelte +49 -74
  64. package/package/components/RunChart.svelte +74 -89
  65. package/package/components/RunChart.svelte.d.ts +10 -22
  66. package/package/components/RunForm.svelte +2 -2
  67. package/package/components/RunForm.svelte.d.ts +1 -1
  68. package/package/components/RunFormAdvancedPopup.svelte +13 -1
  69. package/package/components/S3FilePicker.svelte +1 -1
  70. package/package/components/SchemaForm.svelte +1 -2
  71. package/package/components/SchemaForm.svelte.d.ts +2 -2
  72. package/package/components/ScriptBuilder.svelte +3 -2
  73. package/package/components/ScriptEditor.svelte +25 -10
  74. package/package/components/ScriptEditor.svelte.d.ts +2 -1
  75. package/package/components/ServiceLogsInner.svelte +1 -1
  76. package/package/components/ShareModal.svelte.d.ts +1 -1
  77. package/package/components/SimpleEditor.svelte +4 -68
  78. package/package/components/StringTypeNarrowing.svelte +5 -10
  79. package/package/components/TemplateEditor.svelte +2 -16
  80. package/package/components/TimeAgo.svelte +1 -1
  81. package/package/components/TimeAgo.svelte.d.ts +1 -0
  82. package/package/components/Toggle.svelte +2 -1
  83. package/package/components/Toggle.svelte.d.ts +2 -1
  84. package/package/components/WorkerRepl.svelte +1 -1
  85. package/package/components/apps/components/display/AppNavbarItem.svelte +2 -1
  86. package/package/components/apps/components/display/table/AppAggridTable.svelte +44 -48
  87. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +101 -19
  88. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +5 -2
  89. package/package/components/apps/components/display/table/utils.js +36 -5
  90. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +10 -5
  91. package/package/components/apps/components/layout/AppModal.svelte +2 -2
  92. package/package/components/apps/editor/AppEditor.svelte +4 -3
  93. package/package/components/apps/editor/AppEditorHeader.svelte +0 -1
  94. package/package/components/apps/editor/GridViewer.svelte.d.ts +11 -4
  95. package/package/components/apps/editor/SettingsPanel.svelte +2 -2
  96. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -2
  97. package/package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
  98. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +1 -1
  99. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  100. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +0 -1
  102. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  103. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +29 -4
  104. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +3 -1
  105. package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +3 -1
  106. package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -1
  107. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +1 -1
  108. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +55 -53
  109. package/package/components/apps/editor/settingsPanel/TableActions.svelte +3 -1
  110. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +13 -5
  111. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +30 -11
  112. package/package/components/assets/JobAssetsViewer.svelte +28 -24
  113. package/package/components/auditLogs/AuditLogsTable.svelte +2 -6
  114. package/package/components/chartjs-wrappers/Chart.svelte.d.ts +14 -7
  115. package/package/components/common/OnChange.svelte.d.ts +11 -4
  116. package/package/components/common/badge/Badge.svelte +9 -2
  117. package/package/components/common/badge/Badge.svelte.d.ts +2 -1
  118. package/package/components/common/button/model.d.ts +1 -1
  119. package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -1
  120. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +5 -4
  121. package/package/components/common/drawer/Disposable.svelte +45 -26
  122. package/package/components/common/drawer/Disposable.svelte.d.ts +12 -44
  123. package/package/components/common/drawer/Drawer.svelte +17 -14
  124. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  125. package/package/components/common/menu/MenuItem.svelte.d.ts +2 -2
  126. package/package/components/common/modal/Modal.svelte.d.ts +1 -1
  127. package/package/components/common/tabs/TabContent.svelte +2 -7
  128. package/package/components/common/tabs/TabContent.svelte.d.ts +5 -27
  129. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +9 -3
  130. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  131. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +8 -4
  132. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  133. package/package/components/copilot/MetadataGen.svelte +14 -3
  134. package/package/components/copilot/chat/AIChatInput.svelte +0 -1
  135. package/package/components/copilot/chat/AIChatManager.svelte.js +26 -104
  136. package/package/components/copilot/chat/AssistantMessage.svelte +0 -4
  137. package/package/components/copilot/chat/AvailableContextList.svelte +192 -66
  138. package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +2 -2
  139. package/package/components/copilot/chat/ContextElementBadge.svelte +3 -3
  140. package/package/components/copilot/chat/ContextManager.svelte.js +36 -13
  141. package/package/components/copilot/chat/ContextTextarea.svelte +21 -48
  142. package/package/components/copilot/chat/ToolContentDisplay.svelte +10 -1
  143. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +3 -3
  144. package/package/components/copilot/chat/anthropic.d.ts +15 -0
  145. package/package/components/copilot/chat/anthropic.js +208 -0
  146. package/package/components/copilot/chat/api/apiTools.d.ts +2 -2
  147. package/package/components/copilot/chat/api/apiTools.js +10 -7
  148. package/package/components/copilot/chat/api/core.d.ts +1 -1
  149. package/package/components/copilot/chat/api/core.js +7 -2
  150. package/package/components/copilot/chat/ask/core.d.ts +1 -1
  151. package/package/components/copilot/chat/ask/core.js +7 -2
  152. package/package/components/copilot/chat/context.d.ts +7 -2
  153. package/package/components/copilot/chat/flow/FlowAIChat.svelte +110 -8
  154. package/package/components/copilot/chat/flow/core.d.ts +12 -1
  155. package/package/components/copilot/chat/flow/core.js +133 -5
  156. package/package/components/copilot/chat/flow/uiIntents.d.ts +8 -0
  157. package/package/components/copilot/chat/flow/uiIntents.js +5 -0
  158. package/package/components/copilot/chat/flow/useUiIntent.d.ts +5 -0
  159. package/package/components/copilot/chat/flow/useUiIntent.js +12 -0
  160. package/package/components/copilot/chat/monaco-adapter.d.ts +23 -4
  161. package/package/components/copilot/chat/monaco-adapter.js +55 -16
  162. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  163. package/package/components/copilot/chat/navigator/core.js +7 -2
  164. package/package/components/copilot/chat/script/CodeDisplay.svelte +10 -111
  165. package/package/components/copilot/chat/script/core.d.ts +5 -4
  166. package/package/components/copilot/chat/script/core.js +134 -21
  167. package/package/components/copilot/chat/shared.d.ts +10 -9
  168. package/package/components/copilot/chat/shared.js +24 -12
  169. package/package/components/copilot/lib.d.ts +29 -8
  170. package/package/components/copilot/lib.js +211 -31
  171. package/package/components/copilot/shared.d.ts +1 -1
  172. package/package/components/copilot/shared.js +16 -10
  173. package/package/components/flows/FlowEditor.svelte +4 -2
  174. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  175. package/package/components/flows/FlowModuleIcon.svelte +8 -8
  176. package/package/components/flows/common/FlowCardHeader.svelte +4 -1
  177. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +6 -0
  178. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +6 -0
  179. package/package/components/flows/content/FlowEditorPanel.svelte +2 -1
  180. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  181. package/package/components/flows/content/FlowInput.svelte +36 -39
  182. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
  183. package/package/components/flows/content/FlowLoop.svelte +7 -0
  184. package/package/components/flows/content/FlowModuleComponent.svelte +42 -46
  185. package/package/components/flows/content/FlowModuleEarlyStop.svelte +47 -17
  186. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  187. package/package/components/flows/content/FlowModuleSleep.svelte +4 -1
  188. package/package/components/flows/content/FlowModuleSuspend.svelte +15 -18
  189. package/package/components/flows/content/FlowModuleTimeout.svelte +50 -10
  190. package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +1 -0
  191. package/package/components/flows/content/FlowRetries.svelte +108 -3
  192. package/package/components/flows/content/FlowRetries.svelte.d.ts +3 -2
  193. package/package/components/flows/content/FlowWhileLoop.svelte +6 -0
  194. package/package/components/flows/content/ScriptEditorDrawer.svelte +9 -11
  195. package/package/components/flows/dfs.d.ts +1 -1
  196. package/package/components/flows/dfs.js +6 -6
  197. package/package/components/flows/flowInfers.js +15 -42
  198. package/package/components/flows/flowStateUtils.svelte.js +1 -2
  199. package/package/components/flows/flowStore.d.ts +45 -1
  200. package/package/components/flows/flowStore.js +1 -1
  201. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  202. package/package/components/flows/map/FlowModuleSchemaItem.svelte +73 -80
  203. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -1
  204. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -1
  205. package/package/components/flows/map/InsertModuleButton.svelte +1 -0
  206. package/package/components/flows/map/InsertModuleInner.svelte +12 -15
  207. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +10 -9
  208. package/package/components/flows/map/MapItem.svelte +8 -4
  209. package/package/components/flows/map/VirtualItem.svelte +1 -1
  210. package/package/components/flows/pickers/TopLevelNode.svelte +1 -1
  211. package/package/components/flows/propPicker/InputPickerInner.svelte +5 -5
  212. package/package/components/flows/propPicker/OutputPickerInner.svelte +143 -118
  213. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +7 -16
  214. package/package/components/flows/{testSteps.svelte.d.ts → stepsInputArgs.svelte.d.ts} +2 -1
  215. package/package/components/flows/{testSteps.svelte.js → stepsInputArgs.svelte.js} +15 -3
  216. package/package/components/flows/types.d.ts +16 -3
  217. package/package/components/flows/utils.js +3 -0
  218. package/package/components/git_sync/DetectionFlow.svelte +15 -17
  219. package/package/components/git_sync/GitSyncContext.svelte.js +1 -1
  220. package/package/components/git_sync/GitSyncRepositoryCard.svelte +0 -1
  221. package/package/components/graph/FlowGraphV2.svelte +1 -1
  222. package/package/components/graph/graphBuilder.svelte.d.ts +5 -1
  223. package/package/components/graph/renderers/edges/BaseEdge.svelte +9 -1
  224. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +4 -1
  225. package/package/components/graph/renderers/nodes/AIToolNode.svelte +4 -4
  226. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +2 -3
  227. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +2 -3
  228. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +71 -54
  229. package/package/components/graph/renderers/triggers/TriggerButton.svelte.d.ts +1 -1
  230. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +3 -1
  231. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +34 -24
  232. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte.d.ts +1 -2
  233. package/package/components/home/ItemsList.svelte +17 -13
  234. package/package/components/home/TreeView.svelte +21 -27
  235. package/package/components/home/TreeView.svelte.d.ts +2 -29
  236. package/package/components/home/TreeViewRoot.svelte +11 -23
  237. package/package/components/home/TreeViewRoot.svelte.d.ts +15 -13
  238. package/package/components/icons/GitIcon.svelte +10 -2
  239. package/package/components/icons/GitIcon.svelte.d.ts +1 -0
  240. package/package/components/meltComponents/MeltButton.svelte.d.ts +1 -1
  241. package/package/components/meltComponents/Popover.svelte +23 -3
  242. package/package/components/meltComponents/Popover.svelte.d.ts +2 -1
  243. package/package/components/monacoLanguagesOptions.d.ts +3 -0
  244. package/package/components/monacoLanguagesOptions.js +109 -0
  245. package/package/components/propertyPicker/ObjectViewer.svelte +18 -5
  246. package/package/components/propertyPicker/PropPicker.svelte +1 -1
  247. package/package/components/propertyPicker/utils.js +14 -7
  248. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +1 -1
  249. package/package/components/runs/JobRunsPreview.svelte +212 -177
  250. package/package/components/runs/JobsLoader.svelte +2 -2
  251. package/package/components/runs/JobsLoader.svelte.d.ts +1 -1
  252. package/package/components/runs/NoWorkerWithTagWarning.svelte +18 -5
  253. package/package/components/runs/RunBadges.svelte +100 -0
  254. package/package/components/runs/RunBadges.svelte.d.ts +12 -0
  255. package/package/components/runs/RunLabels.svelte +86 -0
  256. package/package/components/runs/RunLabels.svelte.d.ts +10 -0
  257. package/package/components/runs/RunOption.svelte +20 -0
  258. package/package/components/runs/RunOption.svelte.d.ts +10 -0
  259. package/package/components/runs/RunRow.svelte +239 -151
  260. package/package/components/runs/RunRow.svelte.d.ts +12 -9
  261. package/package/components/runs/RunsBatchActionsDropdown.svelte +13 -17
  262. package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +5 -18
  263. package/package/components/runs/RunsFilter.svelte +369 -243
  264. package/package/components/runs/RunsFilter.svelte.d.ts +2 -0
  265. package/package/components/runs/RunsQueue.svelte +96 -25
  266. package/package/components/runs/RunsQueue.svelte.d.ts +7 -21
  267. package/package/components/runs/RunsTable.svelte +62 -71
  268. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  269. package/package/components/runs/runs-grid.css +95 -0
  270. package/package/components/schema/AddPropertyV2.svelte +2 -7
  271. package/package/components/schema/AddPropertyV2.svelte.d.ts +3 -20
  272. package/package/components/schema/EditableSchemaDrawer.svelte +121 -127
  273. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +2 -1
  274. package/package/components/schema/EditableSchemaSdkWrapper.svelte +16 -3
  275. package/package/components/schema/EditableSchemaSdkWrapper.svelte.d.ts +4 -1
  276. package/package/components/schema/EditableSchemaWrapper.svelte +3 -10
  277. package/package/components/schema/FlowPropertyEditor.svelte +195 -236
  278. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  279. package/package/components/schema/PropertyEditor.svelte +33 -35
  280. package/package/components/schema/SchemaFormDND.svelte +11 -10
  281. package/package/components/schema/SchemaFormDND.svelte.d.ts +4 -3
  282. package/package/components/schema/editable_schema_wrapper.d.ts +0 -3
  283. package/package/components/search/GlobalSearchModal.svelte +8 -1
  284. package/package/components/select/DraggableTags.svelte.d.ts +17 -7
  285. package/package/components/select/MultiSelect.svelte.d.ts +21 -11
  286. package/package/components/select/Select.svelte +2 -1
  287. package/package/components/select/Select.svelte.d.ts +25 -13
  288. package/package/components/select/SelectDropdown.svelte.d.ts +14 -7
  289. package/package/components/settings/PremiumInfo.svelte +7 -2
  290. package/package/components/settings/TokenDisplay.svelte +1 -1
  291. package/package/components/sidebar/OperatorMenu.svelte +5 -0
  292. package/package/components/sidebar/SidebarContent.svelte +48 -2
  293. package/package/components/sidebar/WorkspaceMenu.svelte +116 -17
  294. package/package/components/toast.js +6 -3
  295. package/package/components/triggers/AddTriggersButton.svelte +7 -6
  296. package/package/components/triggers/CaptureWrapper.svelte +21 -16
  297. package/package/components/triggers/CaptureWrapper.svelte.d.ts +1 -1
  298. package/package/components/triggers/TriggerLabel.svelte +8 -0
  299. package/package/components/triggers/TriggerTokens.svelte +1 -1
  300. package/package/components/triggers/TriggersEditor.svelte +9 -5
  301. package/package/components/triggers/TriggersTable.svelte +2 -2
  302. package/package/components/triggers/TriggersWrapper.svelte +17 -5
  303. package/package/components/triggers/TriggersWrapper.svelte.d.ts +3 -19
  304. package/package/components/{details/EmailTriggerCaptures.svelte → triggers/email/DefaultEmailCapture.svelte} +5 -5
  305. package/package/components/{details/EmailTriggerCaptures.svelte.d.ts → triggers/email/DefaultEmailCapture.svelte.d.ts} +4 -4
  306. package/package/components/{details/EmailTriggerConfigSection.svelte → triggers/email/DefaultEmailConfigSection.svelte} +24 -14
  307. package/package/components/triggers/email/DefaultEmailConfigSection.svelte.d.ts +13 -0
  308. package/package/components/triggers/email/DefaultEmailPanel.svelte +71 -0
  309. package/package/components/triggers/email/DefaultEmailPanel.svelte.d.ts +11 -0
  310. package/package/components/triggers/email/EmailCapture.svelte +39 -0
  311. package/package/components/triggers/email/EmailCapture.svelte.d.ts +43 -0
  312. package/package/components/triggers/email/EmailTriggerEditor.svelte +20 -0
  313. package/package/components/triggers/email/EmailTriggerEditor.svelte.d.ts +11 -0
  314. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte +133 -0
  315. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte.d.ts +14 -0
  316. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +335 -0
  317. package/package/components/triggers/email/EmailTriggerEditorInner.svelte.d.ts +22 -0
  318. package/package/components/triggers/email/EmailTriggerPanel.svelte +61 -0
  319. package/package/components/triggers/email/EmailTriggerPanel.svelte.d.ts +14 -0
  320. package/package/components/triggers/email/utils.d.ts +4 -0
  321. package/package/components/triggers/email/utils.js +52 -0
  322. package/package/components/triggers/http/RouteEditorConfigSection.svelte +1 -1
  323. package/package/components/triggers/http/RouteEditorInner.svelte +1 -1
  324. package/package/components/triggers/http/utils.js +1 -1
  325. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +23 -20
  326. package/package/components/triggers/nats/NatsTriggersConfigSection.svelte +15 -27
  327. package/package/components/triggers/nats/NatsTriggersConfigSection.svelte.d.ts +7 -5
  328. package/package/components/triggers/triggers.svelte.d.ts +1 -0
  329. package/package/components/triggers/triggers.svelte.js +24 -2
  330. package/package/components/triggers/utils.js +19 -5
  331. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +16 -16
  332. package/package/components/triggers.d.ts +1 -1
  333. package/package/components/triggers.js +2 -0
  334. package/package/components/wizards/AgGridWizard.svelte +85 -80
  335. package/package/components/workspaceSettings/AISettings.svelte +74 -22
  336. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  337. package/package/components/workspaceSettings/CreateWorkspace.svelte +395 -0
  338. package/package/components/workspaceSettings/CreateWorkspace.svelte.d.ts +6 -0
  339. package/package/components/workspaceSettings/DucklakeSettings.svelte +3 -1
  340. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +1 -1
  341. package/package/components/workspaceSettings/StorageSettings.svelte +69 -48
  342. package/package/gen/core/OpenAPI.js +1 -1
  343. package/package/gen/schemas.gen.d.ts +142 -3
  344. package/package/gen/schemas.gen.js +144 -3
  345. package/package/gen/services.gen.d.ts +129 -1
  346. package/package/gen/services.gen.js +267 -1
  347. package/package/gen/types.gen.d.ts +434 -8
  348. package/package/hubPaths.json +6 -2
  349. package/package/infer.js +1 -1
  350. package/package/keyboardChain.d.ts +5 -0
  351. package/package/keyboardChain.js +40 -0
  352. package/package/script_helpers.d.ts +2 -2
  353. package/package/script_helpers.js +2 -0
  354. package/package/services/JobManager.js +2 -2
  355. package/package/stores.d.ts +4 -1
  356. package/package/stores.js +16 -6
  357. package/package/utils/workspaceHierarchy.d.ts +27 -0
  358. package/package/utils/workspaceHierarchy.js +101 -0
  359. package/package/utils.d.ts +6 -3
  360. package/package/utils.js +30 -15
  361. package/package/workspace_settings.js +2 -3
  362. package/package.json +10 -12
  363. package/package/components/DynSelect.svelte.d.ts +0 -11
  364. package/package/components/ModulePreviewResultViewer.svelte.d.ts +0 -28
  365. package/package/components/ObjectTypeNarrowing.svelte +0 -18
  366. package/package/components/ObjectTypeNarrowing.svelte.d.ts +0 -22
  367. package/package/components/details/DetailPageTriggerPanel.svelte +0 -121
  368. package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +0 -20
  369. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +0 -12
  370. package/package/components/details/EmailTriggerPanel.svelte +0 -76
  371. package/package/components/details/EmailTriggerPanel.svelte.d.ts +0 -26
@@ -15,7 +15,7 @@ import WorkflowTimeline from '../WorkflowTimeline.svelte';
15
15
  import Popover from '../Popover.svelte';
16
16
  import { isFlowPreview, isScriptPreview, truncateRev } from '../../utils';
17
17
  import { createEventDispatcher, setContext, untrack } from 'svelte';
18
- import { ListFilter } from 'lucide-svelte';
18
+ import { ListFilter, LoaderCircle } from 'lucide-svelte';
19
19
  import FlowAssetsHandler, { initFlowGraphAssetsCtx } from '../flows/FlowAssetsHandler.svelte';
20
20
  import JobAssetsViewer from '../assets/JobAssetsViewer.svelte';
21
21
  let { id, blankLink = false, workspace } = $props();
@@ -55,199 +55,234 @@ $effect(() => {
55
55
  job?.id && lastJobId !== job.id && untrack(() => job && getConcurrencyKey(job));
56
56
  });
57
57
  let jobLoader = $state(undefined);
58
+ // Set all tabs content to the same height to prevent layout jumps
59
+ let tabsHeight = $state({
60
+ codeHeight: 0,
61
+ logsHeight: 0,
62
+ assetsHeight: 0,
63
+ resultHeight: 0
64
+ });
65
+ let minTabHeight = $derived(Math.max(tabsHeight.codeHeight, tabsHeight.logsHeight, tabsHeight.assetsHeight, tabsHeight.resultHeight));
66
+ let jobIsLoading = $state(false);
58
67
  </script>
59
68
 
60
- <JobLoader workspaceOverride={workspace} bind:job={currentJob} bind:this={jobLoader} />
61
-
62
- <div class="p-4 flex flex-col gap-2 items-start h-full">
63
- {#if job}
64
- <div class="flex gap-2 flex-wrap">
65
- {#if job?.['priority']}
66
- <Badge color="red">
67
- priority: {job?.['priority']}
68
- </Badge>
69
- {/if}
70
- {#if job && 'duration_ms' in job && job.duration_ms != undefined}
71
- <DurationMs
72
- duration_ms={job.duration_ms}
73
- self_wait_time_ms={job?.self_wait_time_ms}
74
- aggregate_wait_time_ms={job?.aggregate_wait_time_ms}
75
- />
76
- {/if}
77
- {#if job?.['mem_peak']}
78
- <Badge large>
79
- Mem: {job?.['mem_peak'] ? `${(job['mem_peak'] / 1024).toPrecision(4)}MB` : 'N/A'}
80
- </Badge>
81
- {/if}
82
- {#if workspace && $workspaceStore != workspace}
83
- <Badge large>
84
- Workspace: {workspace}
85
- </Badge>
86
- {/if}
87
- {#if job.tag}
88
- <Badge large>
89
- Tag: {job.tag}
90
- </Badge>
91
- {/if}
92
- {#if job?.['labels'] && Array.isArray(job?.['labels']) && job?.['labels'].length > 0}
93
- {#each job?.['labels'] as label}
94
- <Badge baseClass="text-2xs">Label: {label}</Badge>
95
- {/each}
96
- {/if}
97
- {#if concurrencyKey}
98
- <Popover notClickable>
99
- {#snippet text()}
100
- This job has concurrency limits enabled with the key:
101
- <Button
102
- class="inline-text"
103
- size="xs2"
104
- color="light"
105
- on:click={() => {
106
- dispatch('filterByConcurrencyKey', concurrencyKey)
107
- }}
108
- >
109
- {concurrencyKey}
110
- <ListFilter class="inline-block" size={10} />
111
- </Button>
112
- {/snippet}
113
- <Badge large>Concurrency: {truncateRev(concurrencyKey, 20)}</Badge>
114
- </Popover>
115
- {/if}
116
- {#if job?.worker}
117
- <Popover notClickable>
118
- {#snippet text()}
119
- This job was run on worker:
120
- <Button
121
- class="inline-text"
122
- size="xs2"
123
- color="light"
124
- on:click={() => {
125
- dispatch('filterByWorker', job?.worker)
126
- }}
127
- >
128
- {job?.worker}
129
- <ListFilter class="inline-block" size={10} />
130
- </Button>
131
- {/snippet}
132
- <Badge large>Worker: {truncateRev(job.worker, 20)}</Badge>
133
- </Popover>
134
- {/if}
135
- </div>
136
- <a
137
- href="{base}/run/{job?.id}?workspace={job?.workspace_id}"
138
- class="flex flex-row gap-1 items-center"
139
- target={blankLink ? '_blank' : undefined}
140
- >
141
- <span class="font-semibold text-sm leading-6">ID:</span>
142
- <span class="text-sm">{job?.id ?? ''}</span>
143
- </a>
144
-
145
- <span class="font-semibold text-xs leading-6">Arguments</span>
146
-
147
- <div class="w-full">
148
- <JobArgs
149
- id={job?.id}
150
- workspace={job?.workspace_id ?? $workspaceStore ?? 'no_w'}
151
- args={job?.args}
152
- />
153
- </div>
154
-
155
- {#if job?.type === 'CompletedJob'}
156
- <span class="font-semibold text-xs leading-6">Results</span>
157
- {/if}
69
+ <JobLoader
70
+ workspaceOverride={workspace}
71
+ bind:job={currentJob}
72
+ bind:isLoading={jobIsLoading}
73
+ bind:this={jobLoader}
74
+ />
158
75
 
159
- {#if job && 'scheduled_for' in job && !job.running && job.scheduled_for && forLater(job.scheduled_for)}
160
- <div class="text-sm font-semibold text-tertiary mb-1">
161
- <div>Job is scheduled for</div>
162
- <div>{new Date(job?.['scheduled_for']).toLocaleString()}</div>
76
+ <div class="h-full overflow-y-auto">
77
+ <div class="flex flex-col gap-2 items-start p-4 pb-8 min-h-full">
78
+ {#if job}
79
+ <div class="flex gap-2 flex-wrap">
80
+ {#if job?.['priority']}
81
+ <Badge color="red">
82
+ priority: {job?.['priority']}
83
+ </Badge>
84
+ {/if}
85
+ {#if job && 'duration_ms' in job && job.duration_ms != undefined}
86
+ <DurationMs
87
+ duration_ms={job.duration_ms}
88
+ self_wait_time_ms={job?.self_wait_time_ms}
89
+ aggregate_wait_time_ms={job?.aggregate_wait_time_ms}
90
+ />
91
+ {/if}
92
+ {#if job?.['mem_peak']}
93
+ <Badge large>
94
+ Mem: {job?.['mem_peak'] ? `${(job['mem_peak'] / 1024).toPrecision(4)}MB` : 'N/A'}
95
+ </Badge>
96
+ {/if}
97
+ {#if workspace && $workspaceStore != workspace}
98
+ <Badge large>
99
+ Workspace: {workspace}
100
+ </Badge>
101
+ {/if}
102
+ {#if job.tag}
103
+ <Badge large>
104
+ Tag: {job.tag}
105
+ </Badge>
106
+ {/if}
107
+ {#if job?.['labels'] && Array.isArray(job?.['labels']) && job?.['labels'].length > 0}
108
+ {#each job?.['labels'] as label}
109
+ <Badge baseClass="text-2xs">Label: {label}</Badge>
110
+ {/each}
111
+ {/if}
112
+ {#if concurrencyKey}
113
+ <Popover notClickable>
114
+ {#snippet text()}
115
+ This job has concurrency limits enabled with the key:
116
+ <Button
117
+ class="inline-text"
118
+ size="xs2"
119
+ color="light"
120
+ on:click={() => {
121
+ dispatch('filterByConcurrencyKey', concurrencyKey)
122
+ }}
123
+ >
124
+ {concurrencyKey}
125
+ <ListFilter class="inline-block" size={10} />
126
+ </Button>
127
+ {/snippet}
128
+ <Badge large>Concurrency: {truncateRev(concurrencyKey, 20)}</Badge>
129
+ </Popover>
130
+ {/if}
131
+ {#if job?.worker}
132
+ <Popover notClickable>
133
+ {#snippet text()}
134
+ This job was run on worker:
135
+ <Button
136
+ class="inline-text"
137
+ size="xs2"
138
+ color="light"
139
+ on:click={() => {
140
+ dispatch('filterByWorker', job?.worker)
141
+ }}
142
+ >
143
+ {job?.worker}
144
+ <ListFilter class="inline-block" size={10} />
145
+ </Button>
146
+ {/snippet}
147
+ <Badge large>Worker: {truncateRev(job.worker, 20)}</Badge>
148
+ </Popover>
149
+ {/if}
163
150
  </div>
164
- {/if}
151
+ <a
152
+ href="{base}/run/{job?.id}?workspace={job?.workspace_id}"
153
+ class="flex flex-row gap-1 items-center"
154
+ target={blankLink ? '_blank' : undefined}
155
+ >
156
+ <span class="font-semibold text-sm leading-6">ID:</span>
157
+ <span class="text-sm">{job?.id ?? ''}</span>
158
+ </a>
165
159
 
166
- <div class=" w-full rounded-md min-h-full">
167
- {#if job?.workflow_as_code_status}
168
- <WorkflowTimeline
169
- flow_status={asWorkflowStatus(job.workflow_as_code_status)}
170
- flowDone={job.type == 'CompletedJob'}
160
+ <div class="w-full">
161
+ <JobArgs
162
+ id={job?.id}
163
+ workspace={job?.workspace_id ?? $workspaceStore ?? 'no_w'}
164
+ args={job?.args}
171
165
  />
166
+ </div>
167
+
168
+ {#if job && 'scheduled_for' in job && !job.running && job.scheduled_for && forLater(job.scheduled_for)}
169
+ <div class="text-sm font-semibold text-tertiary mb-1">
170
+ <div>Job is scheduled for</div>
171
+ <div>{new Date(job?.['scheduled_for']).toLocaleString()}</div>
172
+ </div>
172
173
  {/if}
173
174
 
174
- {#if job?.type === 'CompletedJob'}
175
- <Tabs bind:selected={viewTab}>
176
- <Tab size="xs" value="result">Result</Tab>
177
- <Tab size="xs" value="logs">Logs</Tab>
178
- <Tab size="xs" value="assets">Assets</Tab>
179
- {#if isScriptPreview(job?.job_kind)}
180
- <Tab size="xs" value="code">Code</Tab>
181
- {/if}
182
- </Tabs>
175
+ <div class="w-full rounded-md min-h-full">
176
+ {#if job?.workflow_as_code_status}
177
+ <WorkflowTimeline
178
+ flow_status={asWorkflowStatus(job.workflow_as_code_status)}
179
+ flowDone={job.type == 'CompletedJob'}
180
+ />
181
+ {/if}
183
182
 
184
- <Skeleton loading={!job} layout={[[5]]} />
185
- {#if job}
186
- {#if viewTab == 'result' && (job?.job_kind == 'flow' || isFlowPreview(job?.job_kind))}
187
- <div class="flex flex-col gap-2">
188
- <div class="w-full mt-10 mb-20">
189
- <FlowStatusViewer jobId={job.id} workspaceId={job.workspace_id} />
190
- </div>
183
+ {#if job?.type === 'CompletedJob'}
184
+ {#if job?.job_kind == 'flow' || isFlowPreview(job?.job_kind)}
185
+ <div class="w-full mt-8 mb-20">
186
+ <FlowStatusViewer jobId={job.id} workspaceId={job.workspace_id} wideResults
187
+ ></FlowStatusViewer>
191
188
  </div>
192
- {:else if viewTab == 'assets'}
193
- <JobAssetsViewer {job} />
194
189
  {:else}
195
- <div class="flex flex-col border rounded-md p-2 mt-2 h-full overflow-auto">
196
- {#if viewTab == 'logs'}
197
- <div class="w-full">
198
- <LogViewer
199
- jobId={job.id}
200
- duration={job?.['duration_ms']}
201
- mem={job?.['mem_peak']}
202
- isLoading={job?.['running'] == false}
203
- content={job?.logs}
204
- tag={job?.tag}
205
- />
206
- </div>
207
- {:else if viewTab == 'code'}
208
- {#if job && 'raw_code' in job && job.raw_code}
209
- <div class="text-xs">
210
- <HighlightCode lines language={job.language} code={job.raw_code} />
190
+ <Tabs bind:selected={viewTab}>
191
+ <Tab size="xs" value="result">Results</Tab>
192
+ <Tab size="xs" value="logs">Logs</Tab>
193
+ <Tab size="xs" value="assets">Assets</Tab>
194
+ {#if isScriptPreview(job?.job_kind)}
195
+ <Tab size="xs" value="code">Code</Tab>
196
+ {/if}
197
+ </Tabs>
198
+
199
+ <Skeleton loading={!job} layout={[[5]]} />
200
+ {#if job}
201
+ <div class="flex flex-col border rounded-md p-2 mt-2 overflow-auto">
202
+ {#if viewTab == 'logs'}
203
+ <div
204
+ class="w-full"
205
+ bind:clientHeight={tabsHeight.logsHeight}
206
+ style="min-height: {minTabHeight}px"
207
+ >
208
+ <LogViewer
209
+ jobId={job.id}
210
+ duration={job?.['duration_ms']}
211
+ mem={job?.['mem_peak']}
212
+ isLoading={job?.['running'] == false}
213
+ content={job?.logs}
214
+ tag={job?.tag}
215
+ />
216
+ </div>
217
+ {:else if viewTab == 'assets'}
218
+ <div
219
+ class="w-full h-full"
220
+ bind:clientHeight={tabsHeight.assetsHeight}
221
+ style="min-height: {minTabHeight}px"
222
+ >
223
+ <JobAssetsViewer {job} />
224
+ </div>
225
+ {:else if viewTab == 'code'}
226
+ <div
227
+ class="text-xs"
228
+ bind:clientHeight={tabsHeight.codeHeight}
229
+ style="min-height: {minTabHeight}px"
230
+ >
231
+ {#if job && 'raw_code' in job && job.raw_code}
232
+ <div class="text-xs">
233
+ <HighlightCode lines language={job.language} code={job.raw_code} />
234
+ </div>
235
+ {:else if job}
236
+ <span class="text-sm">No code available</span>
237
+ {:else}
238
+ <Skeleton layout={[[5]]} />
239
+ {/if}
240
+ </div>
241
+ {:else if job !== undefined && (job.result_stream || (job.type == 'CompletedJob' && job.result !== undefined))}
242
+ <div
243
+ class="w-full"
244
+ bind:clientHeight={tabsHeight.resultHeight}
245
+ style="min-height: {minTabHeight}px"
246
+ >
247
+ <DisplayResult
248
+ workspaceId={job?.workspace_id}
249
+ jobId={job?.id}
250
+ {result}
251
+ disableExpand
252
+ language={job?.language}
253
+ />
211
254
  </div>
212
255
  {:else if job}
213
- No code is available
214
- {:else}
215
- <Skeleton layout={[[5]]} />
256
+ No output is available yet
216
257
  {/if}
217
- {:else if job !== undefined && (job.result_stream || (job.type == 'CompletedJob' && job.result !== undefined))}
218
- <DisplayResult
219
- workspaceId={job?.workspace_id}
220
- jobId={job?.id}
221
- {result}
222
- disableExpand
223
- language={job?.language}
224
- />
225
- {:else if job}
226
- No output is available yet
227
- {/if}
258
+ </div>
259
+ {/if}
260
+ {/if}
261
+ {:else if job && `running` in job ? job.running : false}
262
+ {#if job?.job_kind == 'flow' || isFlowPreview(job?.job_kind)}
263
+ <div class="flex flex-col gap-2 w-full">
264
+ <FlowProgressBar {job} class="py-4" />
265
+ <FlowStatusViewer jobId={job.id} workspaceId={job.workspace_id} />
228
266
  </div>
267
+ {:else}
268
+ <div class="text-sm font-semibold text-tertiary mb-1"> Job is still running </div>
269
+ <LogViewer
270
+ jobId={job?.id}
271
+ duration={job?.['duration_ms']}
272
+ mem={job?.['mem_peak']}
273
+ content={job?.logs}
274
+ isLoading={job?.['running'] == false}
275
+ tag={job?.tag}
276
+ />
229
277
  {/if}
230
278
  {/if}
231
- {:else if job && `running` in job ? job.running : false}
232
- {#if job?.job_kind == 'flow' || isFlowPreview(job?.job_kind)}
233
- <div class="flex flex-col gap-2 w-full">
234
- <FlowProgressBar {job} class="py-4" />
235
- <FlowStatusViewer jobId={job.id} workspaceId={job.workspace_id} />
236
- </div>
237
- {:else}
238
- <div class="text-sm font-semibold text-tertiary mb-1"> Job is still running </div>
239
- <LogViewer
240
- jobId={job?.id}
241
- duration={job?.['duration_ms']}
242
- mem={job?.['mem_peak']}
243
- content={job?.logs}
244
- isLoading={job?.['running'] == false}
245
- tag={job?.tag}
246
- />
247
- {/if}
248
- {/if}
249
- </div>
250
- {/if}
279
+ </div>
280
+ {:else if jobIsLoading}
281
+ <div class="mx-auto my-auto">
282
+ <LoaderCircle size={20} class="animate-spin" />
283
+ </div>
284
+ {/if}
285
+ </div>
251
286
  </div>
252
287
  <FlowAssetsHandler
253
288
  modules={job?.raw_flow?.modules ?? []}
@@ -103,7 +103,7 @@ async function fetchJobs(startedBefore, startedAfter, startedAfterCompletedJobs,
103
103
  : undefined,
104
104
  allWorkspaces: allWorkspaces ? true : undefined,
105
105
  perPage,
106
- allowWildcards
106
+ allowWildcards: allowWildcards ? true : undefined
107
107
  });
108
108
  }
109
109
  catch (e) {
@@ -276,7 +276,7 @@ async function syncer() {
276
276
  if (isQueuedJob) {
277
277
  if (cursor > 0) {
278
278
  let inc = invCursor == 0 && jobs[invCursor].type == 'CompletedJob' ? 0 : 1;
279
- const date = new Date(jobs[invCursor + inc]?.started_at ?? jobs[invCursor + inc]?.created_at);
279
+ const date = new Date(jobs[invCursor + inc]?.created_at);
280
280
  date.setMilliseconds(date.getMilliseconds() + 1);
281
281
  ts = date.toISOString();
282
282
  }
@@ -43,6 +43,6 @@ interface Props {
43
43
  declare const JobsLoader: import("svelte").Component<Props, {
44
44
  loadExtraJobs: () => Promise<boolean>;
45
45
  loadJobs: (nMinTs: string | undefined, nMaxTs: string | undefined, reset: boolean, shouldGetCount?: boolean) => Promise<void>;
46
- }, "jobs" | "loading" | "minTs" | "maxTs" | "jobKinds" | "queue_count" | "suspended_count" | "completedJobs" | "externalJobs" | "extendedJobs">;
46
+ }, "jobs" | "loading" | "extendedJobs" | "minTs" | "maxTs" | "jobKinds" | "queue_count" | "suspended_count" | "completedJobs" | "externalJobs">;
47
47
  type JobsLoader = ReturnType<typeof JobsLoader>;
48
48
  export default JobsLoader;
@@ -1,15 +1,25 @@
1
1
  <script lang="ts">import { WorkerService } from '../../gen';
2
2
  import { AlertTriangle } from 'lucide-svelte';
3
3
  import Popover from '../Popover.svelte';
4
- import { onDestroy } from 'svelte';
4
+ import { onDestroy, untrack } from 'svelte';
5
5
  let { tag, tagLabel = undefined } = $props();
6
6
  let noWorkerWithTag = $state(false);
7
7
  let timeout = undefined;
8
8
  let visible = true;
9
+ let customTag = $derived.by(() => {
10
+ if (tag.includes('$workspace') || tag.includes('$args'))
11
+ return;
12
+ if (tag.includes('(')) {
13
+ return tag.split('(')[0];
14
+ }
15
+ return tag;
16
+ });
9
17
  async function lookForTag() {
10
18
  try {
11
- const existsWorkerWithTag = await WorkerService.existsWorkersWithTags({ tags: tag });
12
- noWorkerWithTag = !existsWorkerWithTag[tag];
19
+ if (!customTag)
20
+ return;
21
+ const existsWorkerWithTag = await WorkerService.existsWorkersWithTags({ tags: customTag });
22
+ noWorkerWithTag = !existsWorkerWithTag[customTag];
13
23
  if (noWorkerWithTag) {
14
24
  timeout = setTimeout(() => {
15
25
  if (visible) {
@@ -22,7 +32,10 @@ async function lookForTag() {
22
32
  console.error(err);
23
33
  }
24
34
  }
25
- lookForTag();
35
+ $effect(() => {
36
+ customTag;
37
+ untrack(() => lookForTag());
38
+ });
26
39
  onDestroy(() => {
27
40
  visible = false;
28
41
  if (timeout) {
@@ -35,7 +48,7 @@ onDestroy(() => {
35
48
  <Popover notClickable placement="top">
36
49
  <AlertTriangle size={16} class="text-yellow-500" />
37
50
  {#snippet text()}
38
- No worker with {tagLabel ?? 'tag'} <b>{tag}</b> is currently running.
51
+ No worker with {tagLabel ?? 'tag'} <b>{customTag}</b> is currently running.
39
52
  {/snippet}
40
53
  </Popover>
41
54
  {/if}
@@ -0,0 +1,100 @@
1
+ <script lang="ts">import Tooltip from '../meltComponents/Tooltip.svelte';
2
+ import PreprocessedArgsDisplay from './PreprocessedArgsDisplay.svelte';
3
+ import { truncateHash } from '../../utils';
4
+ import { base } from '$app/paths';
5
+ import { truncateRev } from '../../utils';
6
+ import WorkerHostname from '../WorkerHostname.svelte';
7
+ import { workspaceStore } from '../../stores';
8
+ import Badge from '../common/badge/Badge.svelte';
9
+ let { job, displayPersistentScriptDefinition, openPersistentScriptDrawer, concurrencyKey, showScriptHash = true, verySmall = false } = $props();
10
+ </script>
11
+
12
+ {#if job.script_hash && showScriptHash && job.job_kind !== 'aiagent'}
13
+ {#if job.job_kind == 'script'}
14
+ <a href="{base}/scripts/get/{job.script_hash}?workspace={$workspaceStore}"
15
+ ><Badge color="gray" {verySmall}>{truncateHash(job.script_hash)}</Badge></a
16
+ >
17
+ {:else}
18
+ <div>
19
+ <Badge color="gray" {verySmall}>{truncateHash(job.script_hash)}</Badge>
20
+ </div>
21
+ {/if}
22
+ {/if}
23
+ {#if job && 'job_kind' in job}
24
+ <div>
25
+ <Badge color="blue" {verySmall}>{job.job_kind}</Badge>
26
+ </div>
27
+ {/if}
28
+ {#if job && job.flow_status && job.job_kind === 'script'}
29
+ <PreprocessedArgsDisplay preprocessed={job.preprocessed} />
30
+ {/if}
31
+ {#if displayPersistentScriptDefinition}
32
+ <button onclick={() => openPersistentScriptDrawer?.()}>
33
+ <Badge color="red">persistent</Badge>
34
+ </button>
35
+ {/if}
36
+ {#if job && 'priority' in job}
37
+ <div>
38
+ <Badge color="blue" {verySmall}>priority: {job.priority}</Badge>
39
+ </div>
40
+ {/if}
41
+ {#if job.tag}
42
+ <!-- for related places search: ADD_NEW_LANG -->
43
+ <div>
44
+ <Badge color="indigo" {verySmall}>Tag: {job.tag}</Badge>
45
+ </div>
46
+ {/if}
47
+ {#if !job.visible_to_owner}
48
+ <div>
49
+ <Badge color="red" {verySmall}>
50
+ only visible to you
51
+ <Tooltip>
52
+ {#snippet text()}
53
+ The option to hide this run from the owner of this script or flow was activated
54
+ {/snippet}
55
+ </Tooltip>
56
+ </Badge>
57
+ </div>
58
+ {/if}
59
+ {#if job?.['labels'] && Array.isArray(job?.['labels']) && job?.['labels'].length > 0}
60
+ {#each job?.['labels'] as label}
61
+ <div>
62
+ <Badge {verySmall}>Label: {label}</Badge>
63
+ </div>
64
+ {/each}
65
+ {/if}
66
+ {#if concurrencyKey}
67
+ <div>
68
+ <Tooltip notClickable>
69
+ {#snippet text()}
70
+ This job has concurrency limits enabled with the key
71
+ <a
72
+ href={`${base}/runs/?job_kinds=all&graph=ConcurrencyChart&concurrency_key=${concurrencyKey}`}
73
+ >
74
+ {concurrencyKey}
75
+ </a>
76
+ {/snippet}
77
+ <a
78
+ href={`${base}/runs/?job_kinds=all&graph=ConcurrencyChart&concurrency_key=${concurrencyKey}`}
79
+ >
80
+ <Badge {verySmall}>Concurrency: {truncateRev(concurrencyKey, 20)}</Badge></a
81
+ >
82
+ </Tooltip>
83
+ </div>
84
+ {/if}
85
+ {#if job?.worker}
86
+ <div>
87
+ <Tooltip notClickable>
88
+ {#snippet text()}
89
+ worker:
90
+ <a href={`${base}/runs/?job_kinds=all&worker=${job?.worker}`}>
91
+ {job?.worker}
92
+ </a><br />
93
+ <WorkerHostname worker={job?.worker!} minTs={job?.['created_at']} />
94
+ {/snippet}
95
+ <a href={`${base}/runs/?job_kinds=all&worker=${job?.worker}`}>
96
+ <Badge {verySmall}>Worker: {truncateRev(job?.worker, 20)}</Badge></a
97
+ >
98
+ </Tooltip>
99
+ </div>
100
+ {/if}
@@ -0,0 +1,12 @@
1
+ import type { Job } from '../../gen';
2
+ interface Props {
3
+ job: Job;
4
+ displayPersistentScriptDefinition?: boolean;
5
+ openPersistentScriptDrawer?: () => void;
6
+ concurrencyKey?: string;
7
+ showScriptHash?: boolean;
8
+ verySmall?: boolean;
9
+ }
10
+ declare const RunBadges: import("svelte").Component<Props, {}, "">;
11
+ type RunBadges = ReturnType<typeof RunBadges>;
12
+ export default RunBadges;