windmill-components 1.542.5 → 1.555.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 (399) hide show
  1. package/package/aiStore.d.ts +13 -0
  2. package/package/aiStore.js +70 -0
  3. package/package/common.d.ts +6 -2
  4. package/package/components/AIAgentLogViewer.svelte +1 -1
  5. package/package/components/AIProviderPicker.svelte +25 -8
  6. package/package/components/ArgEnum.svelte +17 -7
  7. package/package/components/ArgEnum.svelte.d.ts +1 -0
  8. package/package/components/ArgInput.svelte +257 -188
  9. package/package/components/ArgInput.svelte.d.ts +4 -1
  10. package/package/components/ArrayTypeNarrowing.svelte +38 -32
  11. package/package/components/AutoscalingEvents.svelte +21 -5
  12. package/package/components/AutoscalingEvents.svelte.d.ts +4 -18
  13. package/package/components/ChannelSelector.svelte +92 -18
  14. package/package/components/ChannelSelector.svelte.d.ts +2 -0
  15. package/package/components/ConnectionSection.svelte +12 -1
  16. package/package/components/DateTimeInput.svelte +8 -6
  17. package/package/components/DeployButton.svelte +1 -1
  18. package/package/components/Dev.svelte +24 -9
  19. package/package/components/Dev.svelte.d.ts +23 -1
  20. package/package/components/DisplayResult.svelte +36 -23
  21. package/package/components/DropdownV2.svelte +8 -2
  22. package/package/components/DropdownV2.svelte.d.ts +1 -0
  23. package/package/components/DynamicInput.svelte +10 -10
  24. package/package/components/EditableSchemaForm.svelte +28 -13
  25. package/package/components/Editor.svelte +2 -1
  26. package/package/components/EditorSettings.svelte +5 -5
  27. package/package/components/EditorSettings.svelte.d.ts +4 -18
  28. package/package/components/ErrorOrRecoveryHandler.svelte +14 -20
  29. package/package/components/FakeMonacoPlaceHolder.svelte +4 -2
  30. package/package/components/FakeMonacoPlaceHolder.svelte.d.ts +1 -0
  31. package/package/components/FieldHeader.svelte +5 -7
  32. package/package/components/FirstStepInputs.svelte +1 -1
  33. package/package/components/FlowHistoryJobPicker.svelte +3 -0
  34. package/package/components/FlowHistoryJobPicker.svelte.d.ts +1 -0
  35. package/package/components/FlowJobResult.svelte +5 -5
  36. package/package/components/FlowLogRow.svelte +2 -2
  37. package/package/components/FlowLogViewer.svelte +228 -57
  38. package/package/components/FlowLogViewer.svelte.d.ts +16 -5
  39. package/package/components/FlowLogViewerWrapper.svelte +56 -3
  40. package/package/components/FlowLogViewerWrapper.svelte.d.ts +4 -3
  41. package/package/components/FlowLoopIterationPreview.svelte +4 -4
  42. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  43. package/package/components/FlowMetadata.svelte +3 -4
  44. package/package/components/FlowMetadata.svelte.d.ts +4 -18
  45. package/package/components/FlowPlugConnect.svelte +8 -2
  46. package/package/components/FlowPlugConnect.svelte.d.ts +1 -0
  47. package/package/components/FlowPreviewContent.svelte +121 -94
  48. package/package/components/FlowPreviewContent.svelte.d.ts +3 -3
  49. package/package/components/FlowStatusViewer.svelte +63 -59
  50. package/package/components/FlowStatusViewer.svelte.d.ts +2 -2
  51. package/package/components/FlowStatusViewerInner.svelte +186 -94
  52. package/package/components/FlowStatusViewerInner.svelte.d.ts +10 -3
  53. package/package/components/FlowTimeline.svelte +110 -131
  54. package/package/components/FlowTimeline.svelte.d.ts +13 -4
  55. package/package/components/FlowTimelineBar.svelte +227 -0
  56. package/package/components/FlowTimelineBar.svelte.d.ts +24 -0
  57. package/package/components/FolderEditor.svelte +6 -7
  58. package/package/components/GroupEditor.svelte +148 -141
  59. package/package/components/GroupEditor.svelte.d.ts +5 -4
  60. package/package/components/InputTransformForm.svelte +193 -71
  61. package/package/components/InputTransformForm.svelte.d.ts +3 -0
  62. package/package/components/InputTransformSchemaForm.svelte +10 -5
  63. package/package/components/InputTransformSchemaForm.svelte.d.ts +2 -0
  64. package/package/components/InstanceSetting.svelte +34 -51
  65. package/package/components/InstanceSettings.svelte +12 -21
  66. package/package/components/JobArgs.svelte +15 -16
  67. package/package/components/JobArgs.svelte.d.ts +4 -18
  68. package/package/components/JobLoader.svelte +23 -42
  69. package/package/components/JobLoader.svelte.d.ts +2 -0
  70. package/package/components/JobStatus.svelte +1 -1
  71. package/package/components/JobStatus.svelte.d.ts +4 -18
  72. package/package/components/JsonEditor.svelte +18 -9
  73. package/package/components/JsonEditor.svelte.d.ts +1 -1
  74. package/package/components/JsonInputs.svelte +1 -1
  75. package/package/components/ModulePreviewForm.svelte +23 -19
  76. package/package/components/ModulePreviewResultViewer.svelte +1 -7
  77. package/package/components/NextcloudSetting.svelte +6 -1
  78. package/package/components/NumberTypeNarrowing.svelte +32 -16
  79. package/package/components/ObjectStoreConfigSettings.svelte +27 -19
  80. package/package/components/Password.svelte +7 -11
  81. package/package/components/Password.svelte.d.ts +5 -20
  82. package/package/components/PasswordArgInput.svelte +35 -15
  83. package/package/components/PasswordArgInput.svelte.d.ts +4 -18
  84. package/package/components/Path.svelte +2 -8
  85. package/package/components/Path.svelte.d.ts +1 -1
  86. package/package/components/QueuePosition.svelte +6 -2
  87. package/package/components/ResourceEditor.svelte +3 -10
  88. package/package/components/ResourcePicker.svelte +85 -72
  89. package/package/components/ResourcePicker.svelte.d.ts +2 -0
  90. package/package/components/RunChart.svelte +1 -1
  91. package/package/components/RunForm.svelte +16 -21
  92. package/package/components/S3ArrayHelperButton.svelte +18 -0
  93. package/package/components/S3ArrayHelperButton.svelte.d.ts +9 -0
  94. package/package/components/S3FilePicker.svelte +1 -1
  95. package/package/components/SchemaForm.svelte +18 -10
  96. package/package/components/SchemaForm.svelte.d.ts +7 -1
  97. package/package/components/SchemaFormWithArgPicker.svelte +1 -1
  98. package/package/components/ScriptBuilder.svelte +2 -2
  99. package/package/components/ScriptEditor.svelte +9 -9
  100. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  101. package/package/components/ShareModal.svelte +4 -4
  102. package/package/components/SimpleEditor.svelte +6 -2
  103. package/package/components/SimpleEditor.svelte.d.ts +3 -0
  104. package/package/components/StringTypeNarrowing.svelte +44 -25
  105. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  106. package/package/components/SuperadminSettingsInner.svelte +3 -3
  107. package/package/components/TeamSelector.svelte +83 -37
  108. package/package/components/TeamSelector.svelte.d.ts +0 -1
  109. package/package/components/TemplateEditor.svelte +18 -9
  110. package/package/components/Toast.svelte +2 -7
  111. package/package/components/Toast.svelte.d.ts +4 -18
  112. package/package/components/Toggle.svelte +17 -7
  113. package/package/components/ToggleHubWorkspaceQuick.svelte +3 -3
  114. package/package/components/WorkerGroup.svelte +2 -14
  115. package/package/components/apps/components/buttons/AppButton.svelte +66 -38
  116. package/package/components/apps/components/display/dbtable/InsertRow.svelte +32 -2
  117. package/package/components/apps/components/display/dbtable/queries/insert.js +2 -1
  118. package/package/components/apps/components/display/dbtable/utils.d.ts +8 -8
  119. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +13 -4
  120. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +2 -2
  121. package/package/components/apps/components/display/table/utils.js +14 -4
  122. package/package/components/apps/components/helpers/RefreshButton.svelte +5 -1
  123. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -5
  124. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -0
  125. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +2 -1
  126. package/package/components/apps/components/layout/AppTabs.svelte +116 -71
  127. package/package/components/apps/components/layout/AppTabs.svelte.d.ts +1 -0
  128. package/package/components/apps/editor/AppEditorHeader.svelte +33 -271
  129. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +233 -0
  130. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +18 -0
  131. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +47 -0
  132. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +8 -0
  133. package/package/components/apps/editor/GridEditor.svelte +7 -2
  134. package/package/components/apps/editor/appDeploy.svelte.d.ts +1 -0
  135. package/package/components/apps/editor/appDeploy.svelte.js +6 -0
  136. package/package/components/apps/editor/appUtils.d.ts +1 -0
  137. package/package/components/apps/editor/appUtils.js +30 -1
  138. package/package/components/apps/editor/component/ComponentInner.svelte +1 -0
  139. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -1
  140. package/package/components/apps/editor/component/components.d.ts +19 -4
  141. package/package/components/apps/editor/component/components.js +23 -3
  142. package/package/components/apps/editor/contextPanel/ComponentOutputViewer.svelte +1 -1
  143. package/package/components/apps/editor/inlineScriptsPanel/EmptyInlineScript.svelte +6 -4
  144. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  145. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  146. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  147. package/package/components/apps/editor/settingsPanel/ComponentPanel.svelte +2 -0
  148. package/package/components/apps/editor/settingsPanel/GridTab.svelte +19 -1
  149. package/package/components/apps/editor/settingsPanel/GridTab.svelte.d.ts +3 -1
  150. package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte +52 -0
  151. package/package/components/apps/editor/settingsPanel/GridTabHidden.svelte.d.ts +9 -0
  152. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +58 -8
  153. package/package/components/auditLogs/AuditLogsFilters.svelte +7 -1
  154. package/package/components/auditLogs/AuditLogsTable.svelte +17 -7
  155. package/package/components/auditLogs/AuditLogsTable.svelte.d.ts +1 -0
  156. package/package/components/common/CloseButton.svelte +2 -2
  157. package/package/components/common/CloseButton.svelte.d.ts +1 -0
  158. package/package/components/common/ResizeTransitionWrapper.svelte +39 -0
  159. package/package/components/common/ResizeTransitionWrapper.svelte.d.ts +12 -0
  160. package/package/components/common/badge/CountBadge.svelte +29 -0
  161. package/package/components/common/badge/CountBadge.svelte.d.ts +8 -0
  162. package/package/components/common/button/Button.svelte +1 -0
  163. package/package/components/common/button/ConnectionButton.svelte +6 -1
  164. package/package/components/common/button/ConnectionButton.svelte.d.ts +2 -0
  165. package/package/components/common/button/RefreshButton.svelte +8 -4
  166. package/package/components/common/button/RefreshButton.svelte.d.ts +3 -0
  167. package/package/components/common/calendarPicker/CalendarPicker.svelte +1 -1
  168. package/package/components/common/fileInput/FileInput.svelte +7 -6
  169. package/package/components/common/fileUpload/S3ArgInput.svelte +11 -9
  170. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +1 -0
  171. package/package/components/common/layout/List.svelte +3 -7
  172. package/package/components/common/layout/List.svelte.d.ts +7 -29
  173. package/package/components/common/popup/PopupV2.svelte +14 -25
  174. package/package/components/common/popup/PopupV2.svelte.d.ts +4 -2
  175. package/package/components/common/table/ScriptRow.svelte +22 -2
  176. package/package/components/common/toggleButton-v2/ToggleButton.svelte +17 -26
  177. package/package/components/common/toggleButton-v2/ToggleButton.svelte.d.ts +16 -30
  178. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
  179. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +3 -3
  180. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  181. package/package/components/copilot/CodeCompletionStatus.svelte +2 -1
  182. package/package/components/copilot/CronGen.svelte +1 -1
  183. package/package/components/copilot/FlowCopilotInputsModal.svelte +26 -23
  184. package/package/components/copilot/FlowInlineScriptAIButton.svelte +2 -2
  185. package/package/components/copilot/IteratorGen.svelte +30 -25
  186. package/package/components/copilot/IteratorGen.svelte.d.ts +8 -7
  187. package/package/components/copilot/MetadataGen.svelte +4 -3
  188. package/package/components/copilot/PredicateGen.svelte +15 -12
  189. package/package/components/copilot/PredicateGen.svelte.d.ts +5 -4
  190. package/package/components/copilot/RegexGen.svelte +1 -1
  191. package/package/components/copilot/ScriptFix.svelte +1 -1
  192. package/package/components/copilot/ScriptGen.svelte +2 -1
  193. package/package/components/copilot/StepGenQuick.svelte +15 -16
  194. package/package/components/copilot/StepGenQuick.svelte.d.ts +14 -13
  195. package/package/components/copilot/StepInputGen.svelte +50 -36
  196. package/package/components/copilot/StepInputGen.svelte.d.ts +13 -10
  197. package/package/components/copilot/StepInputsGen.svelte +18 -19
  198. package/package/components/copilot/StepInputsGen.svelte.d.ts +4 -18
  199. package/package/components/copilot/autocomplete/Autocompletor.js +1 -1
  200. package/package/components/copilot/autocomplete/request.js +1 -1
  201. package/package/components/copilot/chat/AIChat.svelte +2 -1
  202. package/package/components/copilot/chat/AIChatManager.svelte.js +5 -3
  203. package/package/components/copilot/chat/AiChatLayout.svelte +2 -1
  204. package/package/components/copilot/chat/ProviderModelSelector.svelte +11 -10
  205. package/package/components/copilot/chat/ProviderModelSelector.svelte.d.ts +2 -17
  206. package/package/components/copilot/chat/flow/FlowAIButton.svelte +1 -1
  207. package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -2
  208. package/package/components/copilot/chat/script/core.d.ts +4 -4
  209. package/package/components/copilot/chat/script/core.js +95 -35
  210. package/package/components/copilot/chat/shared.js +2 -1
  211. package/package/components/copilot/lib.d.ts +1 -0
  212. package/package/components/copilot/lib.js +7 -3
  213. package/package/components/custom_ui.d.ts +1 -0
  214. package/package/components/details/DetailPageLayout.svelte +3 -2
  215. package/package/components/details/DetailPageLayout.svelte.d.ts +1 -0
  216. package/package/components/flows/CreateActionsFlow.svelte +1 -1
  217. package/package/components/flows/FlowChatInterface.svelte +404 -0
  218. package/package/components/flows/FlowChatInterface.svelte.d.ts +19 -0
  219. package/package/components/flows/FlowChatMessage.svelte +41 -0
  220. package/package/components/flows/FlowChatMessage.svelte.d.ts +9 -0
  221. package/package/components/flows/FlowConversationsSidebar.svelte +213 -0
  222. package/package/components/flows/FlowConversationsSidebar.svelte.d.ts +15 -0
  223. package/package/components/flows/FlowEditor.svelte.d.ts +1 -1
  224. package/package/components/flows/FlowModuleIcon.svelte +10 -10
  225. package/package/components/flows/FlowProgressBar.svelte +16 -16
  226. package/package/components/flows/FlowProgressBar.svelte.d.ts +7 -22
  227. package/package/components/flows/common/FlowCard.svelte +10 -2
  228. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  229. package/package/components/flows/common/FlowCardHeader.svelte +2 -1
  230. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  231. package/package/components/flows/content/DynamicInputHelpBox.svelte +4 -4
  232. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -1
  233. package/package/components/flows/content/FlowInput.svelte +381 -259
  234. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -1
  235. package/package/components/flows/content/FlowInputsQuick.svelte +56 -34
  236. package/package/components/flows/content/FlowInputsQuick.svelte.d.ts +3 -2
  237. package/package/components/flows/content/FlowModuleComponent.svelte +29 -11
  238. package/package/components/flows/flowInfers.d.ts +60 -0
  239. package/package/components/flows/flowInfers.js +72 -40
  240. package/package/components/flows/{flowStore.d.ts → flowStore.svelte.d.ts} +5 -1
  241. package/package/components/flows/header/FlowPreviewButtons.svelte +1 -1
  242. package/package/components/flows/map/FlowErrorHandlerItem.svelte +4 -2
  243. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
  244. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  245. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -1
  246. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  247. package/package/components/flows/map/FlowModuleSchemaMap.svelte +5 -2
  248. package/package/components/flows/map/FlowStickyNode.svelte +2 -2
  249. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
  250. package/package/components/flows/map/InsertModuleButton.svelte +8 -15
  251. package/package/components/flows/map/InsertModuleButton.svelte.d.ts +4 -4
  252. package/package/components/flows/map/InsertModuleInner.svelte +19 -20
  253. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +2 -2
  254. package/package/components/flows/map/MapItem.svelte +1 -1
  255. package/package/components/flows/map/VirtualItem.svelte +1 -2
  256. package/package/components/flows/pickers/PickHubScriptQuick.svelte +43 -52
  257. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +2 -1
  258. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte +41 -26
  259. package/package/components/flows/pickers/WorkspaceScriptPickerQuick.svelte.d.ts +1 -0
  260. package/package/components/flows/propPicker/OutputPicker.svelte +2 -0
  261. package/package/components/flows/propPicker/PropPickerWrapper.svelte +1 -15
  262. package/package/components/git_sync/DetectionFlow.svelte +33 -44
  263. package/package/components/git_sync/DetectionFlow.svelte.d.ts +1 -0
  264. package/package/components/git_sync/GitSyncContext.svelte.d.ts +22 -0
  265. package/package/components/git_sync/GitSyncContext.svelte.js +145 -5
  266. package/package/components/git_sync/GitSyncModeDisplay.svelte +14 -0
  267. package/package/components/git_sync/GitSyncModeDisplay.svelte.d.ts +9 -0
  268. package/package/components/git_sync/GitSyncRepositoryCard.svelte +365 -253
  269. package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +10 -1
  270. package/package/components/git_sync/GitSyncSection.svelte +134 -14
  271. package/package/components/git_sync/PullWorkspaceModal.svelte +24 -32
  272. package/package/components/git_sync/PushWorkspaceModal.svelte +24 -32
  273. package/package/components/graph/FlowGraphV2.svelte +2 -1
  274. package/package/components/graph/FlowGraphV2.svelte.d.ts +1 -0
  275. package/package/components/graph/graphBuilder.svelte.d.ts +2 -0
  276. package/package/components/graph/graphBuilder.svelte.js +1 -0
  277. package/package/components/graph/model.d.ts +5 -5
  278. package/package/components/graph/renderers/edges/BaseEdge.svelte +1 -0
  279. package/package/components/graph/renderers/edges/EmptyEdge.svelte +3 -10
  280. package/package/components/graph/renderers/edges/EmptyEdge.svelte.d.ts +4 -18
  281. package/package/components/graph/renderers/nodes/AIToolNode.svelte +2 -2
  282. package/package/components/graph/renderers/nodes/InputNode.svelte +13 -2
  283. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +5 -10
  284. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +2 -27
  285. package/package/components/home/ItemsList.svelte +1 -1
  286. package/package/components/instanceSettings.js +17 -0
  287. package/package/components/jobs/JobProgressBar.svelte +27 -21
  288. package/package/components/jobs/JobProgressBar.svelte.d.ts +9 -24
  289. package/package/components/meltComponents/MenuSingleItem.svelte +3 -8
  290. package/package/components/meltComponents/MenuSingleItem.svelte.d.ts +0 -3
  291. package/package/components/meltComponents/Popover.svelte +3 -2
  292. package/package/components/meltComponents/Popover.svelte.d.ts +1 -0
  293. package/package/components/meltComponents/Tooltip.svelte +1 -1
  294. package/package/components/progressBar/ProgressBar.svelte +39 -53
  295. package/package/components/progressBar/ProgressBar.svelte.d.ts +11 -26
  296. package/package/components/raw_apps/FileEditorIcon.svelte +1 -1
  297. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +4 -18
  298. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +2 -8
  299. package/package/components/raw_apps/RawAppBackgroundRunner.svelte.d.ts +4 -18
  300. package/package/components/raw_apps/RawAppEditor.svelte +6 -7
  301. package/package/components/raw_apps/RawAppEditorHeader.svelte +48 -301
  302. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +18 -19
  303. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +10 -16
  304. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +13 -13
  305. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +8 -11
  306. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -2
  307. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +0 -1
  308. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +7 -13
  309. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +8 -8
  310. package/package/components/raw_apps/RawAppPreview.svelte +3 -7
  311. package/package/components/raw_apps/RawAppPreview.svelte.d.ts +5 -19
  312. package/package/components/raw_apps/utils.d.ts +1 -1
  313. package/package/components/raw_apps/utils.js +3 -3
  314. package/package/components/runs/JobsLoader.svelte +1 -1
  315. package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
  316. package/package/components/runs/NoWorkerWithTagWarning.svelte.d.ts +1 -1
  317. package/package/components/runs/RunOption.svelte +2 -2
  318. package/package/components/runs/RunsFilter.svelte +15 -12
  319. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  320. package/package/components/schema/AddPropertyV2.svelte +7 -4
  321. package/package/components/schema/EditableSchemaDrawer.svelte +19 -18
  322. package/package/components/schema/FlowPropertyEditor.svelte +9 -2
  323. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  324. package/package/components/schema/PropertyEditor.svelte +22 -26
  325. package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
  326. package/package/components/schema/SchemaFormDND.svelte +3 -2
  327. package/package/components/schema/SchemaFormDND.svelte.d.ts +1 -0
  328. package/package/components/select/DraggableTags.svelte +2 -2
  329. package/package/components/select/MultiSelect.svelte +15 -9
  330. package/package/components/select/MultiSelect.svelte.d.ts +1 -0
  331. package/package/components/select/Select.svelte +12 -5
  332. package/package/components/select/Select.svelte.d.ts +11 -0
  333. package/package/components/select/SelectDropdown.svelte +98 -46
  334. package/package/components/select/SelectDropdown.svelte.d.ts +10 -0
  335. package/package/components/select/utils.svelte.js +2 -0
  336. package/package/components/settings/CreateToken.svelte +76 -49
  337. package/package/components/settings/WorkspaceUserSettings.svelte +111 -17
  338. package/package/components/sidebar/CriticalAlertTable.svelte +2 -1
  339. package/package/components/sidebar/Linkify.svelte +14 -0
  340. package/package/components/sidebar/Linkify.svelte.d.ts +5 -0
  341. package/package/components/sidebar/MenuLink.svelte +2 -1
  342. package/package/components/sidebar/MenuLink.svelte.d.ts +1 -0
  343. package/package/components/sidebar/SidebarContent.svelte +27 -27
  344. package/package/components/sidebar/WorkspaceMenu.svelte +8 -3
  345. package/package/components/table/Cell.svelte +7 -14
  346. package/package/components/table/Cell.svelte.d.ts +13 -35
  347. package/package/components/table/tableUtils.js +1 -1
  348. package/package/components/text_input/TextInput.svelte +30 -0
  349. package/package/components/text_input/TextInput.svelte.d.ts +17 -0
  350. package/package/components/triggers/AddTriggersButton.svelte +1 -0
  351. package/package/components/triggers/TriggersEditor.svelte +11 -1
  352. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
  353. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
  354. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +28 -5
  355. package/package/components/triggers/gcp/utils.js +1 -0
  356. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +1 -0
  357. package/package/components/triggers/triggers.svelte.d.ts +1 -1
  358. package/package/components/triggers/triggers.svelte.js +8 -4
  359. package/package/components/triggers/webhook/WebhooksConfigSection.svelte +143 -63
  360. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -0
  361. package/package/components/triggers/websocket/utils.js +1 -0
  362. package/package/components/tutorials/FlowBuilderTutorialErrorHandler.svelte +2 -2
  363. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +3 -0
  364. package/package/components/tutorials/FlowBuilderTutorialSimpleFlow.svelte +49 -17
  365. package/package/components/tutorials/Tutorial.svelte +9 -0
  366. package/package/components/tutorials/Tutorial.svelte.d.ts +1 -0
  367. package/package/components/tutorials/app/AppTutorial.svelte +41 -57
  368. package/package/components/tutorials/app/BackgroundRunnablesTutorial.svelte +3 -5
  369. package/package/components/tutorials/app/ConnectionTutorial.svelte +2 -2
  370. package/package/components/tutorials/utils.js +2 -154
  371. package/package/components/vscode.js +16 -8
  372. package/package/components/workspaceSettings/AISettings.svelte +12 -5
  373. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  374. package/package/components/workspaceSettings/CreateWorkspace.svelte +2 -2
  375. package/package/components/workspaceSettings/DucklakeSettings.svelte +64 -7
  376. package/package/components/workspaceSettings/ModelTokenLimits.svelte +165 -0
  377. package/package/components/workspaceSettings/ModelTokenLimits.svelte.d.ts +8 -0
  378. package/package/components/workspaceSettings/StorageSettings.svelte +147 -77
  379. package/package/editorUtils.d.ts +1 -1
  380. package/package/gen/core/OpenAPI.js +1 -1
  381. package/package/gen/schemas.gen.d.ts +223 -17
  382. package/package/gen/schemas.gen.js +226 -17
  383. package/package/gen/services.gen.d.ts +221 -27
  384. package/package/gen/services.gen.js +440 -48
  385. package/package/gen/types.gen.d.ts +1067 -218
  386. package/package/hubPaths.json +2 -1
  387. package/package/script_helpers.js +5 -5
  388. package/package/services/JobManager.js +14 -9
  389. package/package/stores.d.ts +4 -12
  390. package/package/stores.js +5 -65
  391. package/package/timelineCompute.svelte.d.ts +21 -0
  392. package/package/timelineCompute.svelte.js +113 -0
  393. package/package/toast.js +2 -1
  394. package/package/utils.d.ts +16 -8
  395. package/package/utils.js +65 -12
  396. package/package/workspace_settings.d.ts +13 -8
  397. package/package/workspace_settings.js +46 -11
  398. package/package.json +4 -4
  399. /package/package/components/flows/{flowStore.js → flowStore.svelte.js} +0 -0
@@ -29,6 +29,7 @@ interface Props {
29
29
  [name: string]: SchemaProperty;
30
30
  };
31
31
  } | undefined;
32
+ lightHeaderFont?: boolean;
32
33
  displayHeader?: boolean;
33
34
  properties?: {
34
35
  [name: string]: SchemaProperty;
@@ -79,6 +80,8 @@ interface Props {
79
80
  } | undefined) | undefined;
80
81
  workspace?: string | undefined;
81
82
  actions?: import('svelte').Snippet;
83
+ innerBottomSnippet?: import('svelte').Snippet;
84
+ fieldHeaderActions?: import('svelte').Snippet;
82
85
  }
83
86
  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> {
84
87
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -105,6 +108,6 @@ declare const ArgInput: $$__sveltets_2_IsomorphicComponent<Props, {
105
108
  [evt: string]: CustomEvent<any>;
106
109
  }, {}, {
107
110
  focus: () => void;
108
- }, "value" | "description" | "title" | "properties" | "defaultValue" | "placeholder" | "pattern" | "valid" | "oneOf" | "format" | "order" | "editor" | "enum_" | "itemsType" | "pickForField">;
111
+ }, "value" | "description" | "title" | "pattern" | "properties" | "placeholder" | "valid" | "oneOf" | "format" | "defaultValue" | "order" | "editor" | "enum_" | "itemsType" | "pickForField">;
109
112
  type ArgInput = InstanceType<typeof ArgInput>;
110
113
  export default ArgInput;
@@ -8,6 +8,7 @@ import Alert from './common/alert/Alert.svelte';
8
8
  import EditableSchemaDrawer from './schema/EditableSchemaDrawer.svelte';
9
9
  import Toggle from './Toggle.svelte';
10
10
  import { tick } from 'svelte';
11
+ import Select from './select/Select.svelte';
11
12
  let { canEditResourceType = false, originalType = undefined, itemsType = $bindable() } = $props();
12
13
  let selected = $state(itemsType?.type != 'string'
13
14
  ? itemsType?.type == 'object' && itemsType?.resourceType == 's3object'
@@ -22,39 +23,44 @@ let selected = $state(itemsType?.type != 'string'
22
23
 
23
24
  {#if canEditResourceType || originalType == 'string[]' || originalType == 'object[]'}
24
25
  <Label label="Items type">
25
- <select
26
- bind:value={selected}
27
- onchange={() => {
28
- if (selected == 'enum') {
29
- itemsType = { type: 'string', enum: [] }
30
- } else if (selected == 'string') {
31
- itemsType = { type: 'string' }
32
- } else if (selected == 'number') {
33
- itemsType = { type: 'number' }
34
- } else if (selected == 'object') {
35
- itemsType = { ...itemsType, type: 'object' }
36
- } else if (selected == 'bytes') {
37
- itemsType = { type: 'string', contentEncoding: 'base64' }
38
- } else if (selected == 'resource') {
39
- itemsType = { type: 'resource', resourceType: itemsType?.resourceType }
40
- } else if (selected == 's3object') {
41
- itemsType = { type: 'object', resourceType: 's3object' }
42
- } else {
43
- itemsType = undefined
26
+ <Select
27
+ bind:value={
28
+ () => selected,
29
+ (v) => {
30
+ selected = v
31
+ if (selected == 'enum') {
32
+ itemsType = { type: 'string', enum: [] }
33
+ } else if (selected == 'string') {
34
+ itemsType = { type: 'string' }
35
+ } else if (selected == 'number') {
36
+ itemsType = { type: 'number' }
37
+ } else if (selected == 'object') {
38
+ itemsType = { ...itemsType, type: 'object' }
39
+ } else if (selected == 'bytes') {
40
+ itemsType = { type: 'string', contentEncoding: 'base64' }
41
+ } else if (selected == 'resource') {
42
+ itemsType = { type: 'resource', resourceType: itemsType?.resourceType }
43
+ } else if (selected == 's3object') {
44
+ itemsType = { type: 'object', resourceType: 's3object' }
45
+ } else {
46
+ itemsType = undefined
47
+ }
44
48
  }
45
- }}
46
- id="array-type-narrowing"
47
- >
48
- <option value="string"> Items are strings</option>
49
- <option value="enum">Items are strings from an enum</option>
50
- {#if originalType != 'string[]'}
51
- <option value="s3object">Items are S3 objects</option>
52
- <option value="object"> Items are objects (JSON)</option>
53
- <option value="resource"> Items are resources</option>
54
- <option value="number">Items are numbers</option>
55
- <option value="bytes">Items are bytes</option>
56
- {/if}
57
- </select>
49
+ }
50
+ items={[
51
+ { value: 'string', label: "Items are strings or objects with a 'label/value' field" },
52
+ { value: 'enum', label: 'Items are strings from an enum' },
53
+ ...(originalType != 'string[]'
54
+ ? [
55
+ { value: 's3object', label: 'Items are S3 objects' },
56
+ { value: 'object', label: 'Items are objects (JSON)' },
57
+ { value: 'resource', label: 'Items are resources' },
58
+ { value: 'number', label: 'Items are numbers' },
59
+ { value: 'bytes', label: 'Items are bytes' }
60
+ ]
61
+ : [])
62
+ ] as { value: string; label: string }[]}
63
+ />
58
64
  </Label>
59
65
  {:else if itemsType?.resourceType}
60
66
  <Label label="Resource type">
@@ -4,14 +4,18 @@ import { Button, Skeleton } from './common';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import TimeAgo from './TimeAgo.svelte';
6
6
  import { enterpriseLicense } from '../stores';
7
- export let worker_group;
8
- let loading = true;
9
- let events = undefined;
10
- $: worker_group && loadEvents();
7
+ import { untrack } from 'svelte';
8
+ let { worker_group } = $props();
9
+ let loading = $state(true);
10
+ let events = $state(undefined);
11
+ let limit = $state(5);
11
12
  async function loadEvents() {
12
13
  loading = true;
13
14
  try {
14
- events = await ConfigService.listAutoscalingEvents({ workerGroup: worker_group });
15
+ events = await ConfigService.listAutoscalingEvents({
16
+ workerGroup: worker_group,
17
+ perPage: limit
18
+ });
15
19
  }
16
20
  catch (e) {
17
21
  events = [];
@@ -21,6 +25,10 @@ async function loadEvents() {
21
25
  loading = false;
22
26
  }
23
27
  }
28
+ $effect(() => {
29
+ limit;
30
+ worker_group && untrack(() => loadEvents());
31
+ });
24
32
  </script>
25
33
 
26
34
  <div>
@@ -66,5 +74,13 @@ async function loadEvents() {
66
74
  {/each}
67
75
  </div>
68
76
  {/if}
77
+ <div class="mt-4 flex">
78
+ <Button color="light" size="xs2" on:click={() => (limit = limit + 25)}>Show more</Button>
79
+ </div>
80
+ {#if limit > 50}
81
+ <div class="mt-4 flex text-xs text-tertiary">
82
+ Note that autoscaling events are only stored for the last 30 days.
83
+ </div>
84
+ {/if}
69
85
  {/if}
70
86
  </div>
@@ -1,20 +1,6 @@
1
- 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> {
2
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
3
- $$bindings?: Bindings;
4
- } & Exports;
5
- (internal: unknown, props: Props & {
6
- $$events?: Events;
7
- $$slots?: Slots;
8
- }): Exports & {
9
- $set?: any;
10
- $on?: any;
11
- };
12
- z_$$bindings?: Bindings;
13
- }
14
- declare const AutoscalingEvents: $$__sveltets_2_IsomorphicComponent<{
1
+ interface Props {
15
2
  worker_group: string;
16
- }, {
17
- [evt: string]: CustomEvent<any>;
18
- }, {}, {}, string>;
19
- type AutoscalingEvents = InstanceType<typeof AutoscalingEvents>;
3
+ }
4
+ declare const AutoscalingEvents: import("svelte").Component<Props, {}, "">;
5
+ type AutoscalingEvents = ReturnType<typeof AutoscalingEvents>;
20
6
  export default AutoscalingEvents;
@@ -1,28 +1,102 @@
1
1
  <script lang="ts">import Select from './select/Select.svelte';
2
- let { disabled = false, placeholder = 'Select channel', selectedChannel = $bindable(undefined), containerClass = 'w-64', minWidth = '160px', channels = [] } = $props();
2
+ import { WorkspaceService } from '../gen';
3
+ import { workspaceStore } from '../stores';
4
+ import { debounce } from '../utils';
5
+ let { disabled = false, placeholder = 'Select channel', selectedChannel = $bindable(undefined), containerClass = 'w-64', minWidth = '160px', channels = undefined, teamId, onError } = $props();
6
+ let isFetching = $state(false);
7
+ let searchResults = $state([]);
8
+ // Only enable search mode if no channels are provided AND teamId is provided
9
+ const searchMode = !channels && !!teamId;
10
+ // Determine which channels to show: provided channels or search results
11
+ // In search mode, include the selected channel if it exists
12
+ let displayChannels = $derived(() => {
13
+ const baseChannels = channels || searchResults;
14
+ if (searchMode && selectedChannel && !baseChannels.find(c => c.channel_id === selectedChannel?.channel_id)) {
15
+ return [selectedChannel, ...baseChannels];
16
+ }
17
+ return baseChannels;
18
+ });
19
+ // Create separate filter text for search mode
20
+ let searchFilterText = $state('');
21
+ // Debounced search function
22
+ const debouncedSearch = debounce(async (query) => {
23
+ await searchChannels(query);
24
+ }, 500);
25
+ // Watch for search filter text changes (only in search mode)
26
+ $effect(() => {
27
+ if (searchMode) {
28
+ if (searchFilterText.length >= 1) {
29
+ debouncedSearch.debounced(searchFilterText);
30
+ }
31
+ else if (searchFilterText.length === 0) {
32
+ searchResults = [];
33
+ }
34
+ }
35
+ });
36
+ async function searchChannels(query) {
37
+ if (!query || !teamId)
38
+ return;
39
+ isFetching = true;
40
+ try {
41
+ const response = await WorkspaceService.listAvailableTeamsChannels({
42
+ workspace: $workspaceStore,
43
+ teamId: teamId,
44
+ search: query
45
+ });
46
+ searchResults = response || [];
47
+ isFetching = false;
48
+ return searchResults;
49
+ }
50
+ catch (error) {
51
+ isFetching = false;
52
+ onError?.(error);
53
+ console.error('Error searching channels:', error);
54
+ searchResults = [];
55
+ return [];
56
+ }
57
+ }
3
58
  </script>
4
59
 
5
60
  <div class={containerClass}>
6
61
  <div class="flex items-center gap-2">
7
62
  <div class="flex-grow" style="min-width: {minWidth};">
8
- <Select
9
- containerStyle={'min-width: ' + minWidth}
10
- items={channels.map((channel) => ({
11
- label: channel.channel_name ?? 'Unknown Channel',
12
- value: channel.channel_id ?? ''
13
- }))}
14
- {placeholder}
15
- bind:value={
16
- () => selectedChannel?.channel_id,
17
- (value) => (selectedChannel = channels.find((channel) => channel.channel_id === value))
18
- }
19
- clearable
20
- disabled={disabled || channels.length === 0}
21
- />
63
+ {#if searchMode}
64
+ <Select
65
+ containerStyle={'min-width: ' + minWidth}
66
+ items={searchFilterText.length >= 1 || (searchFilterText.length === 0 && selectedChannel) ? displayChannels().filter(channel => channel.channel_id && channel.channel_name).map((channel) => ({
67
+ label: channel.channel_name ?? 'Unknown Channel',
68
+ value: channel.channel_id ?? ''
69
+ })) : []}
70
+ placeholder={isFetching ? "Searching..." : (teamId ? "Search channels..." : "Select a team first")}
71
+ clearable
72
+ disabled={disabled || isFetching || !teamId}
73
+ bind:filterText={searchFilterText}
74
+ bind:value={
75
+ () => selectedChannel?.channel_id,
76
+ (value) => {
77
+ selectedChannel = value ? displayChannels().find((channel) => channel.channel_id === value) : undefined
78
+ }
79
+ }
80
+ />
81
+ {:else}
82
+ <Select
83
+ containerStyle={'min-width: ' + minWidth}
84
+ items={displayChannels().filter(channel => channel.channel_id && channel.channel_name).map((channel) => ({
85
+ label: channel.channel_name ?? 'Unknown Channel',
86
+ value: channel.channel_id ?? ''
87
+ }))}
88
+ {placeholder}
89
+ clearable
90
+ disabled={disabled || displayChannels().length === 0}
91
+ bind:value={
92
+ () => selectedChannel?.channel_id,
93
+ (value) => {
94
+ selectedChannel = value ? displayChannels().find((channel) => channel.channel_id === value) : undefined
95
+ }
96
+ }
97
+ />
98
+ {/if}
22
99
  </div>
23
100
  </div>
24
101
 
25
- {#if channels.length === 0 && !disabled}
26
- <div class="text-xs text-tertiary mt-1">No channels available</div>
27
- {/if}
28
102
  </div>
@@ -9,6 +9,8 @@ interface Props {
9
9
  containerClass?: string;
10
10
  minWidth?: string;
11
11
  channels?: ChannelItem[];
12
+ teamId?: string;
13
+ onError?: (error: Error) => void;
12
14
  }
13
15
  declare const ChannelSelector: import("svelte").Component<Props, {}, "selectedChannel">;
14
16
  type ChannelSelector = ReturnType<typeof ChannelSelector>;
@@ -37,7 +37,18 @@ async function connectTeams() {
37
37
  onLoadSettings();
38
38
  }
39
39
  catch (error) {
40
- sendUserToast('Failed to connect to Teams', true);
40
+ // Extract the actual error message from the API response
41
+ let errorMessage = 'Failed to connect to Teams';
42
+ if (typeof error?.body === 'string') {
43
+ errorMessage = error.body;
44
+ }
45
+ else if (error?.body?.message) {
46
+ errorMessage = error.body.message;
47
+ }
48
+ else if (error?.message && error.message !== 'Bad Request') {
49
+ errorMessage = error.message;
50
+ }
51
+ sendUserToast(errorMessage, true);
41
52
  console.error('Error connecting to Teams:', error);
42
53
  }
43
54
  }
@@ -5,6 +5,7 @@ import { Button } from './common';
5
5
  import { Clock, X } from 'lucide-svelte';
6
6
  import { twMerge } from 'tailwind-merge';
7
7
  import { createDispatcherIfMounted } from '../createDispatcherIfMounted';
8
+ import { inputBaseClass, inputBorderClass } from './text_input/TextInput.svelte';
8
9
  let { value = $bindable(undefined), clearable = false, autofocus = false, useDropdown = false, minDate = undefined, maxDate = undefined, disabled = undefined, inputClass = undefined } = $props();
9
10
  let date = $state(undefined);
10
11
  let time = $state(undefined);
@@ -36,7 +37,7 @@ function parseDateAndTime(date, time) {
36
37
  let newDate = new Date(`${date}T${time}`);
37
38
  if (newDate.toString() === 'Invalid Date')
38
39
  return;
39
- if (newDate.getFullYear() < 2000)
40
+ if (newDate.getFullYear() < 1900)
40
41
  return;
41
42
  value = newDate.toISOString();
42
43
  dispatchIfMounted('change', value);
@@ -75,20 +76,21 @@ let randomId = 'datetarget-' + Math.random().toString(36).substring(7);
75
76
  bind:value={date}
76
77
  {autofocus}
77
78
  {disabled}
78
- class={twMerge('h-8 text-sm !w-3/4 ', inputClass)}
79
+ class={twMerge(inputBaseClass, inputBorderClass(), 'text-sm !w-3/4 ', inputClass)}
79
80
  min={minDate}
80
81
  max={maxDate}
81
82
  />
82
83
  <input
83
84
  type="time"
84
85
  bind:value={time}
85
- class={twMerge('h-8 text-sm !w-1/4 min-w-[100px] ', inputClass)}
86
+ class={twMerge(inputBaseClass, inputBorderClass(), 'text-sm !w-1/4 min-w-[100px] ', inputClass)}
86
87
  {disabled}
87
88
  />
88
89
  <Button
89
- variant="border"
90
+ variant="contained"
90
91
  color="light"
91
- wrapperClasses="h-8"
92
+ wrapperClasses="h-full"
93
+ btnClasses="bg-surface-secondary"
92
94
  startIcon={{
93
95
  icon: Clock
94
96
  }}
@@ -133,7 +135,7 @@ let randomId = 'datetarget-' + Math.random().toString(36).substring(7);
133
135
  <Button
134
136
  variant="border"
135
137
  color="light"
136
- wrapperClasses="h-8"
138
+ wrapperClasses="h-full"
137
139
  {disabled}
138
140
  on:click={() => {
139
141
  value = undefined
@@ -53,7 +53,7 @@ let dropdownOpen = $state(false);
53
53
  bind:this={msgInput}
54
54
  />
55
55
  <Button
56
- size="xs"
56
+ size="sm"
57
57
  on:click={async () => dispatch('save', deploymentMsg)}
58
58
  endIcon={{ icon: CornerDownLeft }}
59
59
  loading={loadingSave}
@@ -5,7 +5,7 @@ import { WindmillIcon } from './icons';
5
5
  import LogPanel from './scriptEditor/LogPanel.svelte';
6
6
  import { JobService, OpenAPI, WorkspaceService } from '../gen';
7
7
  import { inferArgs } from '../infer';
8
- import { setCopilotInfo, userStore, workspaceStore } from '../stores';
8
+ import { userStore, workspaceStore } from '../stores';
9
9
  import { emptySchema, readFieldsRecursively, sendUserToast } from '../utils';
10
10
  import { Pane, Splitpanes } from 'svelte-splitpanes';
11
11
  import { onDestroy, onMount, setContext, untrack } from 'svelte';
@@ -29,6 +29,8 @@ import { workspaceAIClients } from './copilot/lib';
29
29
  import { Triggers } from './triggers/triggers.svelte';
30
30
  import { StepsInputArgs } from './flows/stepsInputArgs.svelte';
31
31
  import { ModulesTestStates } from './modulesTest.svelte';
32
+ import { setCopilotInfo } from '../aiStore';
33
+ let { initial = undefined } = $props();
32
34
  let flowCopilotContext = {
33
35
  shouldUpdatePropertyType: writable({}),
34
36
  exprsToSet: writable({}),
@@ -81,10 +83,13 @@ const flowPreviewContent = $derived(flowPreviewButtons?.getFlowPreviewContent())
81
83
  const job = $derived(flowPreviewContent?.getJob());
82
84
  let showJobStatus = $state(false);
83
85
  let currentScript = $state(undefined);
86
+ let mode = $state('script');
87
+ let lastPath = undefined;
84
88
  let schema = $state(emptySchema());
85
89
  const href = window.location.href;
86
90
  const indexQ = href.indexOf('?');
87
91
  const searchParams = indexQ > -1 ? new URLSearchParams(href.substring(indexQ)) : undefined;
92
+ let relativePaths = $state([]);
88
93
  if (searchParams?.has('local')) {
89
94
  connectWs();
90
95
  }
@@ -93,6 +98,15 @@ let lockChanges = false;
93
98
  let timeout = undefined;
94
99
  let loadingCodebaseButton = $state(false);
95
100
  let lastCommandId = '';
101
+ if (initial) {
102
+ if (initial.type == 'script') {
103
+ replaceScript(initial.script);
104
+ }
105
+ else if (initial.type == 'flow') {
106
+ replaceFlow(initial.flow);
107
+ }
108
+ modeInitialized = true;
109
+ }
96
110
  const el = (event) => {
97
111
  // sendUserToast(`Received message from parent ${event.data.type}`, true)
98
112
  if (event.data.type == 'runTest') {
@@ -104,7 +118,7 @@ const el = (event) => {
104
118
  }
105
119
  else if (event.data.type == 'testBundle') {
106
120
  if (event.data.id == lastCommandId) {
107
- testBundle(event.data.file, event.data.isTar);
121
+ testBundle(event.data.file, event.data.isTar, event.data.format);
108
122
  }
109
123
  else {
110
124
  sendUserToast(`Bundle received ${lastCommandId} was obsolete, ignoring`, true);
@@ -166,7 +180,7 @@ onMount(() => {
166
180
  });
167
181
  window.parent?.postMessage({ type: 'refresh' }, '*');
168
182
  });
169
- async function testBundle(file, isTar) {
183
+ async function testBundle(file, isTar, format) {
170
184
  jobLoader?.abstractRun(async () => {
171
185
  try {
172
186
  const form = new FormData();
@@ -176,7 +190,8 @@ async function testBundle(file, isTar) {
176
190
  path: currentScript?.path,
177
191
  args,
178
192
  language: currentScript?.language,
179
- tag: currentScript?.tag
193
+ tag: currentScript?.tag,
194
+ format
180
195
  }));
181
196
  // sendUserToast(JSON.stringify(file))
182
197
  if (isTar) {
@@ -312,8 +327,6 @@ async function onKeyDown(event) {
312
327
  document.execCommand('paste');
313
328
  }
314
329
  }
315
- let relativePaths = $state([]);
316
- let lastPath = undefined;
317
330
  async function replaceScript(lastEdit) {
318
331
  mode = 'script';
319
332
  currentScript = lastEdit;
@@ -338,7 +351,6 @@ async function replaceScript(lastEdit) {
338
351
  validCode = false;
339
352
  }
340
353
  }
341
- let mode = $state('script');
342
354
  const flowStore = $state({
343
355
  val: {
344
356
  summary: '',
@@ -461,6 +473,9 @@ let token = $derived($page.url.searchParams.get('wm_token') ?? undefined);
461
473
  let workspace = $derived($page.url.searchParams.get('workspace') ?? undefined);
462
474
  let themeDarkRaw = $derived($page.url.searchParams.get('activeColorTheme'));
463
475
  let themeDark = $derived(themeDarkRaw == '2' || themeDarkRaw == '4');
476
+ $effect.pre(() => {
477
+ setContext('AuthToken', { token });
478
+ });
464
479
  $effect.pre(() => {
465
480
  if (token) {
466
481
  OpenAPI.WITH_CREDENTIALS = true;
@@ -536,7 +551,7 @@ const flowHasChanged = $derived(flowPreviewContent?.flowHasChanged());
536
551
 
537
552
  <main class="h-screen w-full">
538
553
  {#if mode == 'script'}
539
- <div class="flex flex-col min-h-full overflow-auto">
554
+ <div class="flex flex-col min-h-full min-h-screen overflow-auto">
540
555
  <div class="absolute top-0 left-2">
541
556
  <DarkModeToggle bind:darkMode bind:this={darkModeToggle} forcedDarkMode={false} />
542
557
  </div>
@@ -628,7 +643,7 @@ const flowHasChanged = $derived(flowPreviewContent?.flowHasChanged());
628
643
  </Button>
629
644
  {/if}
630
645
  </div>
631
- <Splitpanes horizontal class="h-full">
646
+ <Splitpanes horizontal style="height: 1000px;">
632
647
  <Pane size={33}>
633
648
  <div class="px-2">
634
649
  <div class="break-words relative font-sans">
@@ -1,3 +1,25 @@
1
- declare const Dev: import("svelte").Component<Record<string, never>, {}, "">;
1
+ import { type Preview, type OpenFlow } from '../gen';
2
+ type LastEditScript = {
3
+ content: string;
4
+ path: string;
5
+ language: Preview['language'];
6
+ lock?: string;
7
+ isCodebase?: boolean;
8
+ tag?: string;
9
+ };
10
+ type LastEditFlow = {
11
+ flow: OpenFlow;
12
+ uriPath: string;
13
+ };
14
+ type $$ComponentProps = {
15
+ initial?: {
16
+ type: 'script';
17
+ script: LastEditScript;
18
+ } | {
19
+ type: 'flow';
20
+ flow: LastEditFlow;
21
+ } | undefined;
22
+ };
23
+ declare const Dev: import("svelte").Component<$$ComponentProps, {}, "">;
2
24
  type Dev = ReturnType<typeof Dev>;
3
25
  export default Dev;
@@ -22,7 +22,7 @@ import DownloadCsv from './table/DownloadCsv.svelte';
22
22
  import { convertJsonToCsv } from './table/tableUtils';
23
23
  import Tooltip from './Tooltip.svelte';
24
24
  import HighlightTheme from './HighlightTheme.svelte';
25
- import { getContext, hasContext, createEventDispatcher, onDestroy } from 'svelte';
25
+ import { getContext, hasContext, createEventDispatcher, onDestroy, untrack } from 'svelte';
26
26
  import { toJsonStr } from '../utils';
27
27
  import { userStore } from '../stores';
28
28
  import ResultStreamDisplay from './ResultStreamDisplay.svelte';
@@ -45,17 +45,29 @@ function isTableCol(result, keys) {
45
45
  }
46
46
  function isTableRowObject(json) {
47
47
  // check array of objects (with possible a first row of headers)
48
+ const hasHeaders = Array.isArray(json[0]) &&
49
+ json[0].length > 0 &&
50
+ json[0].length <= 50 &&
51
+ json[0].every((item) => typeof item === 'string');
52
+ return isTableRowObjectInner(json, hasHeaders);
53
+ }
54
+ function isTableRowObjectInner(json, hasHeaders) {
48
55
  return (Array.isArray(json) &&
49
- json.length > 0 &&
50
- (json.every((item) => item && typeof item === 'object' && Object.keys(item).length > 0 && !Array.isArray(item)) ||
51
- (Array.isArray(json[0]) &&
52
- json[0].every((item) => typeof item === 'string') &&
53
- json
54
- .slice(1)
55
- .every((item) => item &&
56
- typeof item === 'object' &&
57
- Object.keys(item).length > 0 &&
58
- !Array.isArray(item)))));
56
+ json.length > (hasHeaders ? 1 : 0) &&
57
+ json.every((item, index) => {
58
+ if (hasHeaders && index === 0) {
59
+ return true;
60
+ }
61
+ if (item && typeof item === 'object') {
62
+ let keys = Object.keys(item);
63
+ if (keys.length > 0 && !Array.isArray(item)) {
64
+ if (hasHeaders || keys.length <= 50) {
65
+ return true;
66
+ }
67
+ }
68
+ }
69
+ return false;
70
+ }));
59
71
  }
60
72
  let largeObject = $state(undefined);
61
73
  function checkIfS3(result, keys) {
@@ -92,6 +104,7 @@ function inferResultKind(result) {
92
104
  return keys[0];
93
105
  }
94
106
  let size = roughSizeOfObject(result);
107
+ console.debug('size of object', size);
95
108
  // Otherwise, check if the result is too large (10kb) for json
96
109
  if (size > TABLE_MAX_SIZE) {
97
110
  largeObject = true;
@@ -252,20 +265,18 @@ function handleArrayOfObjectsHeaders(json) {
252
265
  json.length > 0 &&
253
266
  Array.isArray(json[0]) &&
254
267
  json[0].length > 0 &&
255
- json[0].every((item) => typeof item === 'string') &&
256
- json
257
- .slice(1)
258
- .every((item) => item && typeof item === 'object' && Object.keys(item).length > 0 && !Array.isArray(item))) {
268
+ json[0].every((item) => typeof item === 'string')) {
259
269
  const headers = json[0];
260
- const rows = json.slice(1);
261
- const result = rows.map((row) => {
270
+ const rows = new Array(json.length - 1);
271
+ for (let i = 1; i < json.length; i++) {
262
272
  const obj = {};
263
- for (const header of headers) {
264
- obj[header] = row[header];
273
+ const row = json[i];
274
+ for (let j = 0; j < headers.length; j++) {
275
+ obj[headers[j]] = row[headers[j]];
265
276
  }
266
- return obj;
267
- });
268
- return result;
277
+ rows[i - 1] = obj;
278
+ }
279
+ return rows;
269
280
  }
270
281
  return json;
271
282
  }
@@ -340,7 +351,9 @@ onDestroy(() => {
340
351
  $effect(() => {
341
352
  ;
342
353
  [result];
343
- resultKind = inferResultKind(result);
354
+ untrack(() => {
355
+ resultKind = inferResultKind(result);
356
+ });
344
357
  });
345
358
  $effect(() => {
346
359
  chooseToolbarLocation(!is_render_all &&