windmill-components 1.511.1 → 1.531.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. package/package/components/AIAgentLogViewer.svelte +123 -0
  2. package/package/components/AIAgentLogViewer.svelte.d.ts +13 -0
  3. package/package/components/AppConnectInner.svelte +10 -10
  4. package/package/components/AppConnectInner.svelte.d.ts +1 -1
  5. package/package/components/ArgInput.svelte +42 -14
  6. package/package/components/ArgInput.svelte.d.ts +2 -10
  7. package/package/components/AssignableTagsInner.svelte +5 -0
  8. package/package/components/AuthSettings.svelte +4 -2
  9. package/package/components/AuthSettings.svelte.d.ts +1 -0
  10. package/package/components/AutoscalingConfigEditor.svelte +76 -2
  11. package/package/components/DBManagerDrawer.svelte +154 -151
  12. package/package/components/DBManagerDrawer.svelte.d.ts +2 -2
  13. package/package/components/DBTable.svelte +3 -3
  14. package/package/components/DBTable.svelte.d.ts +1 -0
  15. package/package/components/DBTableEditor.svelte +7 -7
  16. package/package/components/DBTableEditor.svelte.d.ts +1 -1
  17. package/package/components/DeployWorkspace.svelte +1 -1
  18. package/package/components/Dev.svelte +12 -28
  19. package/package/components/DiffEditor.svelte +6 -3
  20. package/package/components/DiffEditor.svelte.d.ts +1 -0
  21. package/package/components/DisplayResult.svelte +46 -14
  22. package/package/components/DisplayResult.svelte.d.ts +5 -1
  23. package/package/components/DynSelect.svelte +58 -34
  24. package/package/components/DynSelect.svelte.d.ts +3 -11
  25. package/package/components/EditableSchemaForm.svelte +131 -8
  26. package/package/components/EditableSchemaForm.svelte.d.ts +5 -1
  27. package/package/components/Editor.svelte +27 -9
  28. package/package/components/Editor.svelte.d.ts +1 -1
  29. package/package/components/EditorBar.svelte +105 -7
  30. package/package/components/EditorSettings.svelte +6 -0
  31. package/package/components/ErrorOrRecoveryHandler.svelte +76 -8
  32. package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +2 -1
  33. package/package/components/ExploreAssetButton.svelte +14 -4
  34. package/package/components/ExploreAssetButton.svelte.d.ts +1 -0
  35. package/package/components/FirstStepInputs.svelte +2 -2
  36. package/package/components/FlowBuilder.svelte +18 -36
  37. package/package/components/FlowGraphViewerStep.svelte +7 -0
  38. package/package/components/FlowJobResult.svelte +16 -64
  39. package/package/components/FlowJobResult.svelte.d.ts +11 -4
  40. package/package/components/FlowLogViewer.svelte +660 -0
  41. package/package/components/FlowLogViewer.svelte.d.ts +34 -0
  42. package/package/components/FlowLogViewerWrapper.svelte +52 -0
  43. package/package/components/FlowLogViewerWrapper.svelte.d.ts +21 -0
  44. package/package/components/FlowLoopIterationPreview.svelte +3 -3
  45. package/package/components/FlowPreviewContent.svelte +13 -6
  46. package/package/components/FlowPreviewContent.svelte.d.ts +7 -7
  47. package/package/components/FlowPreviewResult.svelte +7 -5
  48. package/package/components/FlowPreviewResult.svelte.d.ts +4 -5
  49. package/package/components/FlowStatusViewer.svelte +28 -16
  50. package/package/components/FlowStatusViewer.svelte.d.ts +19 -27
  51. package/package/components/FlowStatusViewerInner.svelte +500 -295
  52. package/package/components/FlowStatusViewerInner.svelte.d.ts +34 -34
  53. package/package/components/FlowTimeline.svelte +11 -13
  54. package/package/components/FlowTimeline.svelte.d.ts +6 -5
  55. package/package/components/FolderEditor.svelte +1 -1
  56. package/package/components/GitDiffPreview.svelte +14 -18
  57. package/package/components/GitDiffPreview.svelte.d.ts +2 -8
  58. package/package/components/GitHubAppIntegration.svelte +3 -1
  59. package/package/components/HighlightCode.svelte +4 -1
  60. package/package/components/IconedResourceType.svelte +9 -5
  61. package/package/components/IdEditorInput.svelte +25 -22
  62. package/package/components/IdEditorInput.svelte.d.ts +11 -23
  63. package/package/components/InstanceSetting.svelte +7 -2
  64. package/package/components/InstanceSettings.svelte +1 -0
  65. package/package/components/JobLoader.svelte +108 -12
  66. package/package/components/JobLoader.svelte.d.ts +16 -3
  67. package/package/components/LogViewer.svelte +8 -2
  68. package/package/components/LogViewer.svelte.d.ts +1 -0
  69. package/package/components/LogViewerHeader.svelte +32 -0
  70. package/package/components/LogViewerHeader.svelte.d.ts +8 -0
  71. package/package/components/Login.svelte +8 -2
  72. package/package/components/MemoryFootprintViewer.svelte +1 -1
  73. package/package/components/ModulePreviewForm.svelte +10 -6
  74. package/package/components/ModulePreviewResultViewer.svelte +18 -2
  75. package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -1
  76. package/package/components/ModuleTest.svelte +59 -16
  77. package/package/components/MoveDrawer.svelte.d.ts +2 -2
  78. package/package/components/NextcloudSetting.svelte +84 -0
  79. package/package/components/NextcloudSetting.svelte.d.ts +7 -0
  80. package/package/components/ObjectResourceInput.svelte +3 -2
  81. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  82. package/package/components/ParqetCsvTableRenderer.svelte +1 -1
  83. package/package/components/RelativeLineNumbers.svelte +16 -0
  84. package/package/components/RelativeLineNumbers.svelte.d.ts +18 -0
  85. package/package/components/ResourceEditor.svelte +10 -5
  86. package/package/components/ResourcePicker.svelte +8 -1
  87. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  88. package/package/components/ResultStreamDisplay.svelte +5 -0
  89. package/package/components/ResultStreamDisplay.svelte.d.ts +5 -0
  90. package/package/components/RunForm.svelte +9 -1
  91. package/package/components/SchemaForm.svelte +2 -2
  92. package/package/components/SchemaForm.svelte.d.ts +2 -10
  93. package/package/components/ScriptBuilder.svelte +26 -19
  94. package/package/components/ScriptBuilder.svelte.d.ts +1 -1
  95. package/package/components/ScriptEditor.svelte +2 -2
  96. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  97. package/package/components/ScriptWrapper.svelte +1 -1
  98. package/package/components/ShareModal.svelte.d.ts +1 -1
  99. package/package/components/SimpleAgTable.svelte +2 -0
  100. package/package/components/SimpleAgTable.svelte.d.ts +2 -0
  101. package/package/components/SimpleEditor.svelte +10 -4
  102. package/package/components/SimpleEditor.svelte.d.ts +1 -0
  103. package/package/components/SqlRepl.svelte +21 -7
  104. package/package/components/SqlRepl.svelte.d.ts +2 -2
  105. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  106. package/package/components/TemplateEditor.svelte +1 -1
  107. package/package/components/UserSettings.svelte +4 -4
  108. package/package/components/WorkerTagSelect.svelte +70 -1
  109. package/package/components/apps/components/display/AppAccordionList.svelte +1 -1
  110. package/package/components/apps/components/display/AppCarouselList.svelte +10 -8
  111. package/package/components/apps/components/display/AppDisplayComponent.svelte +13 -1
  112. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +3 -3
  113. package/package/components/apps/components/display/AppText.svelte +2 -2
  114. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +8 -1
  115. package/package/components/apps/components/display/dbtable/InsertRow.svelte +5 -4
  116. package/package/components/apps/components/display/dbtable/queries/count.js +11 -1
  117. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +1 -1
  118. package/package/components/apps/components/display/dbtable/queries/createTable.js +3 -3
  119. package/package/components/apps/components/display/dbtable/queries/delete.js +7 -0
  120. package/package/components/apps/components/display/dbtable/queries/insert.js +2 -0
  121. package/package/components/apps/components/display/dbtable/queries/select.js +14 -0
  122. package/package/components/apps/components/display/dbtable/queries/update.js +7 -0
  123. package/package/components/apps/components/display/dbtable/utils.d.ts +6 -5
  124. package/package/components/apps/components/display/dbtable/utils.js +52 -28
  125. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +1 -1
  126. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
  127. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -0
  128. package/package/components/apps/components/display/table/AppAggridTable.svelte +7 -6
  129. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
  130. package/package/components/apps/components/display/table/utils.js +7 -4
  131. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -3
  132. package/package/components/apps/components/helpers/InputValue.svelte +6 -1
  133. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +8 -4
  134. package/package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -1
  135. package/package/components/apps/components/helpers/RunnableComponent.svelte +10 -8
  136. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -2
  137. package/package/components/apps/components/helpers/RunnableWrapper.svelte +12 -3
  138. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -1
  139. package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +0 -5
  140. package/package/components/apps/components/inputs/AppS3FileInput.svelte +2 -2
  141. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +1 -1
  142. package/package/components/apps/components/layout/AppContainer.svelte +1 -1
  143. package/package/components/apps/components/layout/AppDecisionTree.svelte +32 -21
  144. package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
  145. package/package/components/apps/components/layout/AppList.svelte +9 -8
  146. package/package/components/apps/components/layout/AppModal.svelte +1 -1
  147. package/package/components/apps/components/layout/AppSplitpanes.svelte +5 -2
  148. package/package/components/apps/components/layout/AppStepper.svelte +10 -6
  149. package/package/components/apps/components/layout/AppTabs.svelte +3 -3
  150. package/package/components/apps/editor/AppEditorHeader.svelte +13 -2
  151. package/package/components/apps/editor/AppJobsDrawer.svelte +2 -2
  152. package/package/components/apps/editor/GridEditor.svelte +24 -19
  153. package/package/components/apps/editor/GridEditor.svelte.d.ts +4 -1
  154. package/package/components/apps/editor/GridViewer.svelte +1 -0
  155. package/package/components/apps/editor/RunnableJobPanelInner.svelte +2 -1
  156. package/package/components/apps/editor/SubGridEditor.svelte +7 -11
  157. package/package/components/apps/editor/SubGridEditor.svelte.d.ts +3 -19
  158. package/package/components/apps/editor/appUtils.js +17 -68
  159. package/package/components/apps/editor/component/ComponentInner.svelte +845 -694
  160. package/package/components/apps/editor/component/componentCallbacks.svelte.js +8 -1
  161. package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +7 -7
  162. package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +7 -19
  163. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +14 -55
  164. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  165. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  166. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  167. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +31 -45
  168. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
  169. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +1 -0
  170. package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +1 -3
  171. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +2 -2
  172. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +1 -0
  173. package/package/components/apps/svelte-grid/Grid.svelte +23 -25
  174. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +21 -9
  175. package/package/components/apps/svelte-grid/MoveResize.svelte +13 -15
  176. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +17 -24
  177. package/package/components/apps/utils.d.ts +2 -0
  178. package/package/components/apps/utils.js +22 -0
  179. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  180. package/package/components/assets/JobAssetsViewer.svelte +2 -2
  181. package/package/components/assets/lib.js +4 -0
  182. package/package/components/auditLogs/AuditLogsFilters.svelte +7 -9
  183. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  184. package/package/components/common/button/Button.svelte +4 -3
  185. package/package/components/common/button/Button.svelte.d.ts +1 -0
  186. package/package/components/common/confirmationModal/ConfirmationModal.svelte +6 -5
  187. package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +6 -11
  188. package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.d.ts +26 -0
  189. package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.js +50 -0
  190. package/package/components/common/fileDownload/FileDownload.svelte +1 -3
  191. package/package/components/common/fileDownload/FileDownload.svelte.d.ts +4 -18
  192. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  193. package/package/components/common/modal/Modal.svelte +2 -5
  194. package/package/components/common/tabs/TabsV2.svelte +2 -1
  195. package/package/components/common/tabs/TabsV2.svelte.d.ts +1 -0
  196. package/package/components/copilot/FlowInlineScriptAIButton.svelte +58 -0
  197. package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -0
  198. package/package/components/copilot/MetadataGen.svelte +19 -1
  199. package/package/components/copilot/MetadataGen.svelte.d.ts +1 -1
  200. package/package/components/copilot/ScriptGen.svelte +23 -31
  201. package/package/components/copilot/ScriptGen.svelte.d.ts +0 -1
  202. package/package/components/copilot/autocomplete/Autocompletor.js +2 -0
  203. package/package/components/copilot/chat/AIChatDisplay.svelte +4 -4
  204. package/package/components/copilot/chat/AIChatInput.svelte +29 -6
  205. package/package/components/copilot/chat/AIChatManager.svelte.js +171 -33
  206. package/package/components/copilot/chat/AIChatMessage.svelte +3 -0
  207. package/package/components/copilot/chat/ContextTextarea.svelte +1 -1
  208. package/package/components/copilot/chat/ToolContentDisplay.svelte +84 -0
  209. package/package/components/copilot/chat/ToolContentDisplay.svelte.d.ts +11 -0
  210. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +105 -0
  211. package/package/components/copilot/chat/ToolExecutionDisplay.svelte.d.ts +7 -0
  212. package/package/components/copilot/chat/api/apiTools.d.ts +7 -0
  213. package/package/components/copilot/chat/api/apiTools.js +192 -0
  214. package/package/components/copilot/chat/api/core.d.ts +7 -0
  215. package/package/components/copilot/chat/api/core.js +61 -0
  216. package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -6
  217. package/package/components/copilot/chat/flow/core.js +213 -42
  218. package/package/components/copilot/chat/flow/utils.js +3 -0
  219. package/package/components/copilot/chat/monaco-adapter.d.ts +1 -1
  220. package/package/components/copilot/chat/monaco-adapter.js +10 -4
  221. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  222. package/package/components/copilot/chat/navigator/core.js +20 -22
  223. package/package/components/copilot/chat/script/core.d.ts +11 -3
  224. package/package/components/copilot/chat/script/core.js +120 -44
  225. package/package/components/copilot/chat/shared.d.ts +31 -4
  226. package/package/components/copilot/chat/shared.js +235 -10
  227. package/package/components/copilot/lib.d.ts +1 -1
  228. package/package/components/copilot/lib.js +15 -6
  229. package/package/components/custom_ui.d.ts +4 -0
  230. package/package/components/dbOps.d.ts +20 -8
  231. package/package/components/dbOps.js +85 -40
  232. package/package/components/details/DetailPageHeader.svelte +0 -2
  233. package/package/components/details/DetailPageLayout.svelte +34 -33
  234. package/package/components/flow_builder.d.ts +1 -2
  235. package/package/components/flows/FlowEditor.svelte +3 -3
  236. package/package/components/flows/FlowEditor.svelte.d.ts +7 -6
  237. package/package/components/flows/common/FlowCard.svelte +2 -2
  238. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  239. package/package/components/flows/common/FlowCardHeader.svelte +13 -4
  240. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  241. package/package/components/flows/content/BranchPredicateEditor.svelte +4 -7
  242. package/package/components/flows/content/BranchPredicateEditor.svelte.d.ts +12 -11
  243. package/package/components/flows/content/FlowConstants.svelte +3 -3
  244. package/package/components/flows/content/FlowEditorPanel.svelte +3 -3
  245. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -4
  246. package/package/components/flows/content/FlowInput.svelte +5 -0
  247. package/package/components/flows/content/FlowInputsQuick.svelte +2 -1
  248. package/package/components/flows/content/FlowLoop.svelte +2 -2
  249. package/package/components/flows/content/FlowModuleComponent.svelte +130 -108
  250. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  251. package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
  252. package/package/components/flows/content/FlowModuleScript.svelte +0 -1
  253. package/package/components/flows/content/FlowModuleSkip.svelte +1 -1
  254. package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
  255. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  256. package/package/components/flows/content/FlowModuleWrapper.svelte +15 -5
  257. package/package/components/flows/content/FlowModuleWrapper.svelte.d.ts +1 -0
  258. package/package/components/flows/content/FlowResult.svelte +2 -3
  259. package/package/components/flows/content/FlowResult.svelte.d.ts +2 -4
  260. package/package/components/flows/content/FlowWhileLoop.svelte +1 -1
  261. package/package/components/flows/dfs.d.ts +3 -1
  262. package/package/components/flows/dfs.js +5 -1
  263. package/package/components/flows/flowInfers.js +78 -0
  264. package/package/components/flows/flowState.d.ts +2 -3
  265. package/package/components/flows/flowState.js +2 -2
  266. package/package/components/flows/flowStateUtils.svelte.d.ts +4 -4
  267. package/package/components/flows/flowStateUtils.svelte.js +14 -13
  268. package/package/components/flows/flowStore.d.ts +3 -4
  269. package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
  270. package/package/components/flows/header/FlowYamlEditor.svelte +10 -1
  271. package/package/components/flows/idUtils.js +2 -1
  272. package/package/components/flows/map/FlowGraphPreviewButton.svelte +1 -1
  273. package/package/components/flows/map/FlowJobsMenu.svelte +7 -3
  274. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -0
  275. package/package/components/flows/map/FlowModuleSchemaItem.svelte +15 -15
  276. package/package/components/flows/map/FlowModuleSchemaMap.svelte +27 -15
  277. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +6 -4
  278. package/package/components/flows/map/InsertModuleButton.svelte +4 -1
  279. package/package/components/flows/map/InsertModuleInner.svelte +9 -1
  280. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
  281. package/package/components/flows/map/MapItem.svelte +4 -2
  282. package/package/components/flows/pickers/TopLevelNode.svelte +4 -1
  283. package/package/components/flows/propPicker/InputPickerInner.svelte +5 -4
  284. package/package/components/flows/propPicker/OutputBadge.svelte +16 -10
  285. package/package/components/flows/propPicker/OutputPickerInner.svelte +19 -6
  286. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +6 -2
  287. package/package/components/flows/propPicker/StepHistory.svelte +4 -1
  288. package/package/components/flows/testSteps.svelte.d.ts +3 -2
  289. package/package/components/flows/testSteps.svelte.js +26 -23
  290. package/package/components/flows/types.d.ts +1 -1
  291. package/package/components/flows/utils.d.ts +3 -5
  292. package/package/components/flows/utils.js +3 -4
  293. package/package/components/git_sync/DetectionFlow.svelte +202 -0
  294. package/package/components/git_sync/DetectionFlow.svelte.d.ts +6 -0
  295. package/package/components/git_sync/GitSyncContext.svelte.d.ts +82 -0
  296. package/package/components/git_sync/GitSyncContext.svelte.js +462 -0
  297. package/package/components/git_sync/GitSyncModalManager.svelte +99 -0
  298. package/package/components/git_sync/GitSyncModalManager.svelte.d.ts +18 -0
  299. package/package/components/git_sync/GitSyncRepositoryCard.svelte +339 -0
  300. package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +6 -0
  301. package/package/components/git_sync/GitSyncRepositoryList.svelte +17 -0
  302. package/package/components/git_sync/GitSyncRepositoryList.svelte.d.ts +18 -0
  303. package/package/components/git_sync/GitSyncSection.svelte +89 -0
  304. package/package/components/git_sync/GitSyncSection.svelte.d.ts +3 -0
  305. package/package/components/git_sync/GitSyncSuccessModal.svelte +58 -0
  306. package/package/components/git_sync/GitSyncSuccessModal.svelte.d.ts +7 -0
  307. package/package/components/git_sync/PullWorkspaceModal.svelte +575 -0
  308. package/package/components/git_sync/PullWorkspaceModal.svelte.d.ts +15 -0
  309. package/package/components/git_sync/PushWorkspaceModal.svelte +320 -0
  310. package/package/components/git_sync/PushWorkspaceModal.svelte.d.ts +12 -0
  311. package/package/components/graph/FlowGraphV2.svelte +49 -25
  312. package/package/components/graph/FlowGraphV2.svelte.d.ts +5 -2
  313. package/package/components/graph/graphBuilder.svelte.d.ts +49 -17
  314. package/package/components/graph/graphBuilder.svelte.js +31 -15
  315. package/package/components/graph/model.d.ts +9 -6
  316. package/package/components/graph/renderers/edges/BaseEdge.svelte +3 -3
  317. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +2 -3
  318. package/package/components/graph/renderers/nodes/AIToolNode.svelte +234 -0
  319. package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +24 -0
  320. package/package/components/graph/renderers/nodes/AssetNode.svelte +19 -14
  321. package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +18 -1
  322. package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
  323. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
  324. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  325. package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +2 -2
  326. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
  327. package/package/components/graph/renderers/nodes/ModuleNode.svelte +21 -21
  328. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +64 -0
  329. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte.d.ts +7 -0
  330. package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
  331. package/package/components/icons/AssetDucklakeIcon.svelte +28 -0
  332. package/package/components/icons/AssetDucklakeIcon.svelte.d.ts +9 -0
  333. package/package/components/icons/AssetGenericIcon.svelte +3 -0
  334. package/package/components/icons/DucklakeIcon.svelte +18 -0
  335. package/package/components/icons/DucklakeIcon.svelte.d.ts +6 -0
  336. package/package/components/icons/RubyIcon.svelte +656 -0
  337. package/package/components/icons/RubyIcon.svelte.d.ts +7 -0
  338. package/package/components/instanceSettings.js +20 -3
  339. package/package/components/modulesTest.svelte.d.ts +6 -3
  340. package/package/components/modulesTest.svelte.js +32 -0
  341. package/package/components/preview/FlowPreviewStatus.svelte +3 -1
  342. package/package/components/raw_apps/RawAppEditor.svelte +27 -26
  343. package/package/components/raw_apps/RawAppEditor.svelte.d.ts +17 -17
  344. package/package/components/runs/{JobPreview.svelte → JobRunsPreview.svelte} +2 -5
  345. package/package/components/runs/{JobPreview.svelte.d.ts → JobRunsPreview.svelte.d.ts} +3 -3
  346. package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
  347. package/package/components/runs/RunRow.svelte +5 -1
  348. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  349. package/package/components/schema/AddProperty.svelte +41 -36
  350. package/package/components/schema/AddProperty.svelte.d.ts +2 -2
  351. package/package/components/schema/AddPropertyV2.svelte +41 -37
  352. package/package/components/schema/AddPropertyV2.svelte.d.ts +1 -1
  353. package/package/components/schema/FlowPropertyEditor.svelte +11 -8
  354. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  355. package/package/components/schema/PropertyEditor.svelte +0 -2
  356. package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
  357. package/package/components/schema/SchemaFormDND.svelte +2 -1
  358. package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -0
  359. package/package/components/scriptEditor/LogPanel.svelte +5 -3
  360. package/package/components/scriptEditor/LogPanel.svelte.d.ts +5 -1
  361. package/package/components/search/RunsSearch.svelte +1 -1
  362. package/package/components/select/Select.svelte +7 -4
  363. package/package/components/select/Select.svelte.d.ts +5 -0
  364. package/package/components/select/SelectDropdown.svelte +2 -1
  365. package/package/components/select/SelectDropdown.svelte.d.ts +3 -0
  366. package/package/components/settings/CreateToken.svelte +132 -12
  367. package/package/components/settings/CreateToken.svelte.d.ts +3 -20
  368. package/package/components/settings/TokenDisplay.svelte +18 -42
  369. package/package/components/settings/TokenDisplay.svelte.d.ts +0 -1
  370. package/package/components/settings/TokensTable.svelte +2 -4
  371. package/package/components/settings/TokensTable.svelte.d.ts +3 -19
  372. package/package/components/settings/WorkspaceUserSettings.svelte +428 -69
  373. package/package/components/sidebar/MenuButton.svelte +12 -10
  374. package/package/components/sidebar/changelogs.js +5 -0
  375. package/package/components/stepHistoryLoader.svelte.d.ts +2 -2
  376. package/package/components/stepHistoryLoader.svelte.js +7 -12
  377. package/package/components/table/AutoDataTable.svelte +6 -4
  378. package/package/components/table/AutoDataTable.svelte.d.ts +1 -0
  379. package/package/components/table/DataTable.svelte +12 -10
  380. package/package/components/table/DataTable.svelte.d.ts +1 -0
  381. package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +2 -2
  382. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
  383. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
  384. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +50 -11
  385. package/package/components/triggers/gcp/utils.js +1 -0
  386. package/package/components/triggers/http/OpenAPISpecGenerator.svelte +2 -2
  387. package/package/components/triggers/http/utils.js +1 -1
  388. package/package/components/triggers/kafka/utils.js +1 -1
  389. package/package/components/triggers/mqtt/utils.js +1 -1
  390. package/package/components/triggers/nats/utils.js +1 -1
  391. package/package/components/triggers/postgres/utils.js +1 -1
  392. package/package/components/triggers/sqs/utils.js +1 -1
  393. package/package/components/triggers/utils.js +2 -1
  394. package/package/components/triggers/webhook/WebhooksConfigSection.svelte +24 -26
  395. package/package/components/triggers/webhook/WebhooksPanel.svelte +1 -15
  396. package/package/components/triggers/websocket/utils.js +1 -1
  397. package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte +1 -1
  398. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +4 -4
  399. package/package/components/tutorials/utils.js +3 -0
  400. package/package/components/worker_group.d.ts +4 -1
  401. package/package/components/worker_group.js +3 -2
  402. package/package/components/workspaceSettings/AISettings.svelte +52 -36
  403. package/package/components/workspaceSettings/DucklakeSettings.svelte +321 -0
  404. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +23 -0
  405. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +122 -499
  406. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +8 -10
  407. package/package/consts.js +2 -1
  408. package/package/editorLangUtils.d.ts +1 -1
  409. package/package/editorLangUtils.js +2 -0
  410. package/package/editorUtils.d.ts +2 -1
  411. package/package/editorUtils.js +2 -1
  412. package/package/gen/core/OpenAPI.js +1 -1
  413. package/package/gen/schemas.gen.d.ts +303 -14
  414. package/package/gen/schemas.gen.js +371 -76
  415. package/package/gen/services.gen.d.ts +136 -16
  416. package/package/gen/services.gen.js +264 -19
  417. package/package/gen/types.gen.d.ts +736 -17
  418. package/package/git-sync.d.ts +36 -0
  419. package/package/git-sync.js +1 -0
  420. package/package/hub.d.ts +1 -0
  421. package/package/hubPaths.json +9 -3
  422. package/package/infer.js +13 -3
  423. package/package/monaco_workers/graphql.worker.bundle.js +144 -110
  424. package/package/script_helpers.d.ts +5 -2
  425. package/package/script_helpers.js +87 -14
  426. package/package/scripts.d.ts +1 -1
  427. package/package/scripts.js +3 -2
  428. package/package/services/JobManager.d.ts +28 -0
  429. package/package/services/JobManager.js +114 -0
  430. package/package/stores.d.ts +3 -1
  431. package/package/stores.js +2 -0
  432. package/package/svelte5Utils.svelte.d.ts +16 -0
  433. package/package/svelte5Utils.svelte.js +26 -0
  434. package/package/utils.d.ts +19 -2
  435. package/package/utils.js +55 -2
  436. package/package.json +24 -22
  437. package/package/components/AllFlowLogs.svelte +0 -31
  438. package/package/components/AllFlowLogs.svelte.d.ts +0 -8
  439. package/package/components/InitGitRepoPopover.svelte +0 -410
  440. package/package/components/InitGitRepoPopover.svelte.d.ts +0 -13
  441. package/package/components/PullGitRepoPopover.svelte +0 -355
  442. package/package/components/PullGitRepoPopover.svelte.d.ts +0 -18
  443. package/package/components/copilot/chat/navigator/apiTools.d.ts +0 -68
  444. package/package/components/copilot/chat/navigator/apiTools.js +0 -258
  445. package/package/inferArgSig.d.ts +0 -42
  446. package/package/inferArgSig.js +0 -198
@@ -25,13 +25,15 @@ import HighlightTheme from './HighlightTheme.svelte';
25
25
  import { getContext, hasContext, createEventDispatcher, onDestroy } from 'svelte';
26
26
  import { toJsonStr } from '../utils';
27
27
  import { userStore } from '../stores';
28
+ import ResultStreamDisplay from './ResultStreamDisplay.svelte';
29
+ import { twMerge } from 'tailwind-merge';
28
30
  const IMG_MAX_SIZE = 10000000;
29
31
  const TABLE_MAX_SIZE = 5000000;
30
32
  const DISPLAY_MAX_SIZE = 100000;
31
33
  const dispatch = createEventDispatcher();
32
34
  let resultKind = $state();
33
35
  let hasBigInt = $state(false);
34
- let { result, requireHtmlApproval = false, filename = undefined, disableExpand = false, jobId = undefined, workspaceId = undefined, hideAsJson = false, noControls = false, drawerOpen = $bindable(false), nodeId = undefined, language = undefined, appPath = undefined, customUi = undefined, isTest = true, externalToolbarAvailable = false, forceJson = $bindable(false), copilot_fix, children } = $props();
36
+ let { result, requireHtmlApproval = false, filename = undefined, disableExpand = false, jobId = undefined, workspaceId = undefined, hideAsJson = false, noControls = false, drawerOpen = $bindable(false), nodeId = undefined, language = undefined, appPath = undefined, customUi = undefined, isTest = true, externalToolbarAvailable = false, forceJson = $bindable(false), result_stream = undefined, fixTableSizingToParent = false, copilot_fix, children, loading = false, growVertical = false } = $props();
35
37
  let enableHtml = $state(false);
36
38
  let s3FileDisplayRawMode = $state(false);
37
39
  function isTableRow(result) {
@@ -352,7 +354,15 @@ $effect(() => {
352
354
  </script>
353
355
 
354
356
  <HighlightTheme />
355
- {#if is_render_all}
357
+
358
+ {#if result_stream && result == undefined}
359
+ <div class="flex flex-col w-full gap-2">
360
+ <div class="flex items-center gap-2 text-tertiary">
361
+ <Loader2 class="animate-spin" size={16} /> Streaming result
362
+ </div>
363
+ <ResultStreamDisplay {result_stream} />
364
+ </div>
365
+ {:else if is_render_all}
356
366
  <div class="flex flex-col w-full gap-2">
357
367
  {#if !noControls}
358
368
  <div class="text-tertiary text-sm">
@@ -392,9 +402,11 @@ $effect(() => {
392
402
  <div class="text-red-400">Non displayable object</div>
393
403
  {:else}
394
404
  <div
395
- class="inline-highlight relative grow {['plain', 'markdown'].includes(resultKind ?? '')
396
- ? ''
397
- : 'min-h-[160px]'}"
405
+ class={twMerge(
406
+ 'inline-highlight relative grow flex flex-col',
407
+ ['plain', 'markdown'].includes(resultKind ?? '') ? 'min-h-0' : 'min-h-[160px]',
408
+ growVertical ? '' : 'h-full'
409
+ )}
398
410
  >
399
411
  {#if result != undefined && length != undefined && largeObject != undefined}
400
412
  <div class="flex justify-between items-center w-full">
@@ -447,16 +459,36 @@ $effect(() => {
447
459
  {/if}
448
460
  </div>
449
461
  </div>
450
- <div class="grow">
462
+ <div class="grow relative">
451
463
  {#if !forceJson && resultKind === 'table-col'}
452
- {@const data = 'table-col' in result ? result['table-col'] : result}
453
- <AutoDataTable objects={objectOfArraysToObjects(data)} />
464
+ {@const data =
465
+ typeof result === 'object' && 'table-col' in result ? result['table-col'] : result}
466
+ <AutoDataTable
467
+ class={fixTableSizingToParent
468
+ ? 'absolute inset-0 [&>div]:h-full [&>div]:min-h-[10rem]'
469
+ : ''}
470
+ objects={objectOfArraysToObjects(data)}
471
+ />
454
472
  {:else if !forceJson && resultKind === 'table-row'}
455
- {@const data = 'table-row' in result ? result['table-row'] : result}
456
- <AutoDataTable objects={arrayOfRowsToObjects(data)} />
473
+ {@const data =
474
+ typeof result === 'object' && 'table-row' in result ? result['table-row'] : result}
475
+ <AutoDataTable
476
+ class={fixTableSizingToParent
477
+ ? 'absolute inset-0 [&>div]:h-full [&>div]:min-h-[10rem]'
478
+ : ''}
479
+ objects={arrayOfRowsToObjects(data)}
480
+ />
457
481
  {:else if !forceJson && resultKind === 'table-row-object'}
458
- {@const data = 'table-row-object' in result ? result['table-row-object'] : result}
459
- <AutoDataTable objects={handleArrayOfObjectsHeaders(data)} />
482
+ {@const data =
483
+ typeof result === 'object' && 'table-row-object' in result
484
+ ? result['table-row-object']
485
+ : result}
486
+ <AutoDataTable
487
+ class={fixTableSizingToParent
488
+ ? 'absolute inset-0 [&>div]:h-full [&>div]:min-h-[10rem]'
489
+ : ''}
490
+ objects={handleArrayOfObjectsHeaders(data)}
491
+ />
460
492
  {:else if !forceJson && resultKind === 'html'}
461
493
  <div class="h-full">
462
494
  {#if !requireHtmlApproval || enableHtml}
@@ -538,7 +570,7 @@ $effect(() => {
538
570
  {:else if !forceJson && resultKind === 'plain'}<div class="h-full text-2xs"
539
571
  ><pre class="whitespace-pre-wrap"
540
572
  >{typeof result === 'string' ? result : result?.['result']}</pre
541
- >{#if !noControls}
573
+ >{#if !noControls && !loading}
542
574
  <div class="flex">
543
575
  <Button
544
576
  on:click={() =>
@@ -755,7 +787,7 @@ $effect(() => {
755
787
  >
756
788
  </button>
757
789
  {:else if !s3object?.disable_download}
758
- <FileDownload {s3object} />
790
+ <FileDownload {workspaceId} {s3object} {appPath} />
759
791
  {:else}
760
792
  <div class="flex text-secondary pt-2">{s3object?.s3} (download disabled)</div>
761
793
  {/if}
@@ -11,14 +11,18 @@ interface Props {
11
11
  noControls?: boolean;
12
12
  drawerOpen?: boolean;
13
13
  nodeId?: string | undefined;
14
+ loading?: boolean | undefined;
14
15
  language?: string | undefined;
15
16
  appPath?: string | undefined;
16
17
  customUi?: DisplayResultUi | undefined;
17
18
  isTest?: boolean;
18
19
  externalToolbarAvailable?: boolean;
19
20
  forceJson?: boolean;
21
+ result_stream?: string | undefined;
22
+ fixTableSizingToParent?: boolean;
20
23
  copilot_fix?: import('svelte').Snippet;
21
24
  children?: import('svelte').Snippet;
25
+ growVertical?: boolean;
22
26
  }
23
27
  interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
24
28
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
@@ -40,6 +44,6 @@ declare const DisplayResult: $$__sveltets_2_IsomorphicComponent<Props, {
40
44
  }, {}, {
41
45
  openDrawer: () => void;
42
46
  getToolbarLocation: () => "external" | "self" | undefined;
43
- }, "drawerOpen" | "forceJson">;
47
+ }, "forceJson" | "drawerOpen">;
44
48
  type DisplayResult = InstanceType<typeof DisplayResult>;
45
49
  export default DisplayResult;
@@ -15,63 +15,87 @@ function validSelectObject(x) {
15
15
  </script>
16
16
 
17
17
  <script lang="ts">import { usePromise } from '../svelte5Utils.svelte';
18
- import { deepEqual } from 'fast-equals';
19
- import JobLoader from './JobLoader.svelte';
18
+ import JobLoader, {} from './JobLoader.svelte';
20
19
  import Select from './select/Select.svelte';
21
20
  import Tooltip from './Tooltip.svelte';
22
21
  import { Loader2 } from 'lucide-svelte';
22
+ import {} from '../utils';
23
+ import { deepEqual } from 'fast-equals';
23
24
  import { untrack } from 'svelte';
24
- import { readFieldsRecursively } from '../utils';
25
- let { value = $bindable(), helperScript, entrypoint, args: _args, name } = $props();
26
- let args = $state(structuredClone($state.snapshot(_args)));
27
- $effect(() => {
28
- readFieldsRecursively(_args, { excludeField: [name] });
29
- untrack(() => !deepEqual(args, _args) && (args = $state.snapshot(_args)));
30
- });
25
+ let { value = $bindable(), helperScript, entrypoint, otherArgs: otherArgs } = $props();
26
+ let resultJobLoader = $state();
27
+ let _items = usePromise(getItemsFromOptions, { clearValueOnRefresh: false });
28
+ let items = $derived(_items.value);
29
+ let filterText = $state('');
30
+ let open = $state(false);
31
31
  async function getItemsFromOptions() {
32
32
  return new Promise((resolve, reject) => {
33
33
  let cb = {
34
- done(res) {
35
- if (!res || !Array.isArray(res)) {
36
- reject('Result was not an array');
34
+ doneResult({ result }) {
35
+ if (!result || !Array.isArray(result)) {
36
+ if (result?.error?.message && result?.error?.name) {
37
+ reject('Error in DynSelect function execution: ' +
38
+ result?.error?.name +
39
+ ' - ' +
40
+ result?.error?.message);
41
+ }
42
+ else {
43
+ reject('Result was not an array but ' + JSON.stringify(result, null, 2));
44
+ }
37
45
  return;
38
46
  }
39
- if (res.length == 0)
47
+ if (result.length == 0)
40
48
  resolve([]);
41
- if (res.every((x) => typeof x == 'string')) {
42
- res = res.map((x) => ({ label: x, value: x }));
49
+ if (result.every((x) => typeof x == 'string')) {
50
+ result = result.map((x) => ({ label: x, value: x }));
43
51
  }
44
- else if (res.find((x) => validSelectObject(x) != undefined)) {
45
- reject(validSelectObject(res.find((x) => validSelectObject(x) != undefined)));
46
- }
47
- else {
48
- if (filterText != undefined && filterText != '')
49
- res = res.filter((x) => x['label'].includes(filterText));
50
- resolve(res);
52
+ else if (result.find((x) => validSelectObject(x) != undefined)) {
53
+ reject(validSelectObject(result.find((x) => validSelectObject(x) != undefined)));
54
+ return;
51
55
  }
56
+ resolve(result);
52
57
  },
53
58
  cancel: () => reject(),
54
- error: (err) => reject(err)
59
+ doneError({ id, error }) {
60
+ reject(error);
61
+ }
55
62
  };
56
63
  helperScript?.type == 'inline'
57
- ? resultJobLoader?.runPreview(helperScript?.path ?? 'NO_PATH', helperScript.code, helperScript.lang, { ...args, filterText, _ENTRYPOINT_OVERRIDE: entrypoint }, undefined, undefined, undefined, cb)
58
- : resultJobLoader?.runScriptByHash(helperScript?.hash ?? 'NO_HASH', { ...args, filterText, _ENTRYPOINT_OVERRIDE: entrypoint }, cb);
64
+ ? resultJobLoader?.runPreview(helperScript?.path ?? 'NO_PATH', helperScript.code, helperScript.lang, { ...otherArgs, filterText, _ENTRYPOINT_OVERRIDE: entrypoint }, undefined, undefined, undefined, cb)
65
+ : resultJobLoader?.runScriptByHash(helperScript?.hash ?? 'NO_HASH', { ...otherArgs, filterText, _ENTRYPOINT_OVERRIDE: entrypoint }, cb);
59
66
  });
60
67
  }
61
- let _items = usePromise(getItemsFromOptions);
62
- let items = $derived(_items.value);
68
+ let neverLoaded = $state(true);
69
+ $effect(() => {
70
+ if (_items.value && value) {
71
+ if (!_items.value.find((x) => x.value == value)) {
72
+ value = undefined;
73
+ }
74
+ }
75
+ });
76
+ let lastArgs = $state.snapshot(otherArgs);
77
+ let timeout = $state();
78
+ let nargs = $state($state.snapshot(otherArgs));
79
+ $effect(() => {
80
+ otherArgs;
81
+ untrack(() => clearTimeout(timeout));
82
+ timeout = setTimeout(() => {
83
+ nargs = $state.snapshot(otherArgs);
84
+ }, 1000);
85
+ });
63
86
  $effect(() => {
64
87
  ;
65
- [args, name, entrypoint, helperScript, filterText];
66
- untrack(() => _items.refresh());
88
+ [filterText, entrypoint, helperScript];
89
+ if (resultJobLoader && (open || neverLoaded || !deepEqual(lastArgs, nargs))) {
90
+ neverLoaded = false;
91
+ lastArgs = $state.snapshot(otherArgs);
92
+ _items.refresh();
93
+ }
67
94
  });
68
- let resultJobLoader = $state();
69
- let filterText = $state('');
70
- let open = $state(false);
71
95
  </script>
72
96
 
73
97
  {#if helperScript}
74
- <JobLoader bind:this={resultJobLoader} />
98
+ <JobLoader onlyResult bind:this={resultJobLoader} />
75
99
 
76
100
  <div class="w-full flex-col flex">
77
101
  <Select
@@ -85,7 +109,7 @@ let open = $state(false);
85
109
  />
86
110
  {#if _items.error}
87
111
  <div class="text-red-400 text-2xs">
88
- error: <Tooltip>{JSON.stringify(_items.error)}</Tooltip>
112
+ error: <Tooltip>{_items.error}</Tooltip>
89
113
  </div>
90
114
  {/if}
91
115
  </div>
@@ -1,17 +1,9 @@
1
- import type { Script } from '../gen';
1
+ import { type DynamicSelect } from '../utils';
2
2
  interface Props {
3
3
  value?: any;
4
- helperScript?: {
5
- type: 'inline';
6
- path?: string;
7
- lang: Script['language'];
8
- code: string;
9
- } | {
10
- type: 'hash';
11
- hash: string;
12
- };
4
+ helperScript?: DynamicSelect.HelperScript;
13
5
  entrypoint: string;
14
- args?: Record<string, any>;
6
+ otherArgs?: Record<string, any>;
15
7
  name: string;
16
8
  }
17
9
  declare const DynSelect: import("svelte").Component<Props, {}, "value">;
@@ -17,18 +17,38 @@ import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte
17
17
  import Label from './Label.svelte';
18
18
  import { sendUserToast } from '../toast';
19
19
  import Toggle from './Toggle.svelte';
20
- import { emptyString } from '../utils';
20
+ import { DynamicSelect, emptyString } from '../utils';
21
21
  import Popover from './meltComponents/Popover.svelte';
22
22
  import SchemaFormDnd from './schema/SchemaFormDND.svelte';
23
23
  import { deepEqual } from 'fast-equals';
24
24
  import { tweened } from 'svelte/motion';
25
+ import Section from './Section.svelte';
26
+ import Editor from './Editor.svelte';
25
27
  // export let openEditTab: () => void = () => {}
26
28
  const dispatch = createEventDispatcher();
27
- let { schema = $bindable(), hiddenArgs = [], args = $bindable(undefined), shouldHideNoInputs = false, noVariablePicker = false, flexWrap = false, uiOnly = false, isFlowInput = false, noPreview = false, jsonEnabled = true, isAppInput = false, displayWebhookWarning = false, onlyMaskPassword = false, dndType = undefined, editTab, previewSchema = undefined, editPanelInitialSize = undefined, editPanelSize = $bindable(0), diff = {}, disableDnd = false, shouldDispatchChanges = false, isValid = $bindable(true), customUi = undefined, pannelExtraButtonWidth = 0, class: clazz = '', openEditTab, addProperty, runButton, extraTab } = $props();
29
+ let { schema = $bindable(), hiddenArgs = [], args = $bindable(undefined), shouldHideNoInputs = false, noVariablePicker = false, flexWrap = false, uiOnly = false, isFlowInput = false, noPreview = false, jsonEnabled = true, isAppInput = false, displayWebhookWarning = false, onlyMaskPassword = false, dndType = undefined, editTab, previewSchema = undefined, editPanelInitialSize = undefined, editPanelSize = $bindable(0), diff = {}, disableDnd = false, shouldDispatchChanges = false, isValid = $bindable(true), customUi = undefined, pannelExtraButtonWidth = 0, class: clazz = '', dynSelectCode = $bindable(), dynSelectLang = $bindable(), showDynSelectOpt = false, openEditTab, addProperty, runButton, extraTab } = $props();
28
30
  $effect.pre(() => {
29
31
  if (args == undefined) {
30
32
  args = {};
31
33
  }
34
+ if (dynSelectLang === undefined) {
35
+ dynSelectLang = schema?.['x-windmill-dyn-select-lang'] || 'bun';
36
+ }
37
+ if (dynSelectCode === undefined) {
38
+ dynSelectCode = schema?.['x-windmill-dyn-select-code'] || '';
39
+ }
40
+ });
41
+ $effect(() => {
42
+ if (schema && dynSelectCode !== undefined && dynSelectLang !== undefined) {
43
+ if (dynSelectCode && dynSelectCode.trim()) {
44
+ schema['x-windmill-dyn-select-code'] = dynSelectCode.trim();
45
+ schema['x-windmill-dyn-select-lang'] = dynSelectLang;
46
+ }
47
+ else {
48
+ delete schema['x-windmill-dyn-select-code'];
49
+ delete schema['x-windmill-dyn-select-lang'];
50
+ }
51
+ }
32
52
  });
33
53
  export function setDefaults() {
34
54
  const nargs = {};
@@ -73,6 +93,7 @@ function alignOrderWithProperties(schema) {
73
93
  function onSchemaChange() {
74
94
  let editSchema = false;
75
95
  if (alignOrderWithProperties(schema)) {
96
+ console.log('alignOrderWithProperties', JSON.stringify(schema, null, 2));
76
97
  editSchema = true;
77
98
  }
78
99
  let lkeys = schema?.order ?? Object.keys(schema?.properties ?? {});
@@ -95,9 +116,11 @@ function computeSelected(property) {
95
116
  ? property.type
96
117
  : property.format === 'resource-s3_object'
97
118
  ? 'S3'
98
- : property.oneOf && property.oneOf.length >= 2
99
- ? 'oneOf'
100
- : 'object';
119
+ : property.format?.startsWith('dynselect-')
120
+ ? 'dynselect'
121
+ : property.oneOf && property.oneOf.length >= 2
122
+ ? 'oneOf'
123
+ : 'object';
101
124
  }
102
125
  export function openField(key) {
103
126
  opened = key;
@@ -150,6 +173,7 @@ let jsonView = $state(customUi?.jsonOnly == true);
150
173
  let schemaString = $state(JSON.stringify(schema, null, '\t'));
151
174
  let error = $state(undefined);
152
175
  let editor = $state(undefined);
176
+ let dynamicSelectEditor = $state(undefined);
153
177
  export function updateJson() {
154
178
  schemaString = JSON.stringify(schema, null, '\t');
155
179
  editor?.setCode(schemaString);
@@ -191,6 +215,37 @@ $effect(() => {
191
215
  $effect(() => {
192
216
  !!editTab ? openEditTabFn() : closeEditTab();
193
217
  });
218
+ let dynSelectFunctions = $derived(Object.entries(schema?.properties ?? {})
219
+ .filter(([_, property]) => {
220
+ const props = property;
221
+ return (props.type === 'object' &&
222
+ (props.format?.startsWith('dynselect-') || props.format?.startsWith('dynselect_')));
223
+ })
224
+ .map(([fieldName, _]) => fieldName.replace(/\s+/g, '_')));
225
+ let typeOptions = [
226
+ ['String', 'string'],
227
+ ['Number', 'number'],
228
+ ['Integer', 'integer'],
229
+ ['Object', 'object'],
230
+ ['OneOf', 'oneOf'],
231
+ ['Array', 'array'],
232
+ ['Boolean', 'boolean'],
233
+ ['S3 Object', 'S3']
234
+ ];
235
+ if (showDynSelectOpt) {
236
+ typeOptions.push(['DynSelect', 'dynselect']);
237
+ }
238
+ function initDynSelectFn(lang) {
239
+ const generateFn = DynamicSelect.getGenerateTemplateFn(lang);
240
+ return Object.entries(schema?.properties ?? {})
241
+ .map(([functionName]) => generateFn(functionName))
242
+ .join('');
243
+ }
244
+ function updateDynSelectCode(functionName, lang = 'bun') {
245
+ const generateFn = DynamicSelect.getGenerateTemplateFn(lang);
246
+ const code = generateFn(functionName);
247
+ dynSelectCode = dynSelectCode ? dynSelectCode.concat(code) : code;
248
+ }
194
249
  </script>
195
250
 
196
251
  <div class="w-full h-full">
@@ -249,6 +304,11 @@ $effect(() => {
249
304
  }
250
305
  tick().then(() => dispatch('change', schema))
251
306
  }}
307
+ helperScript={{
308
+ type: 'inline',
309
+ code: dynSelectCode!,
310
+ lang: dynSelectLang!
311
+ }}
252
312
  prettifyHeader={isAppInput}
253
313
  disabled={!!previewSchema}
254
314
  {diff}
@@ -263,6 +323,57 @@ $effect(() => {
263
323
  />
264
324
 
265
325
  {@render runButton?.()}
326
+
327
+ <div class="h-full">
328
+ {#if dynSelectFunctions.length > 0}
329
+ <Section
330
+ label="Dynamic select functions"
331
+ collapsable={true}
332
+ collapsed={false}
333
+ class="text-sm"
334
+ >
335
+ <div class="flex flex-col gap-2 h-full">
336
+ {#if dynSelectFunctions.length > 0}
337
+ <div class="bg-blue-50 dark:bg-blue-900/20 p-3 rounded-md">
338
+ <div class="text-sm font-medium text-blue-800 dark:text-blue-200 mb-2">
339
+ Expected Functions for Dynamic Select Fields:
340
+ </div>
341
+ <ul class="text-xs text-blue-700 dark:text-blue-300 space-y-1">
342
+ {#each dynSelectFunctions as functionName}
343
+ <li class="font-mono bg-blue-100 dark:bg-blue-800/30 px-2 py-1 rounded">
344
+ {functionName}()
345
+ </li>
346
+ {/each}
347
+ </ul>
348
+ </div>
349
+ {/if}
350
+ <ToggleButtonGroup
351
+ bind:selected={dynSelectLang}
352
+ on:selected={({ detail }) => {
353
+ dynSelectCode = initDynSelectFn(detail)
354
+ }}
355
+ >
356
+ {#snippet children({ item })}
357
+ <ToggleButton value="bun" label="Typescript (Bun)" {item} />
358
+ <ToggleButton value="python3" label="Python" {item} />
359
+ {/snippet}
360
+ </ToggleButtonGroup>
361
+ {#key dynSelectLang}
362
+ <div class="border w-full h-full">
363
+ <Editor
364
+ bind:this={dynamicSelectEditor}
365
+ class="flex flex-1 grow h-80 w-full"
366
+ scriptLang={dynSelectLang}
367
+ useWebsockets={false}
368
+ automaticLayout
369
+ bind:code={dynSelectCode}
370
+ />
371
+ </div>
372
+ {/key}
373
+ </div>
374
+ </Section>
375
+ {/if}
376
+ </div>
266
377
  </div>
267
378
  </div>
268
379
  </Pane>
@@ -424,6 +535,7 @@ $effect(() => {
424
535
  (v) => {
425
536
  const isS3 = v == 'S3'
426
537
  const isOneOf = v == 'oneOf'
538
+ const isDynSelect = v == 'dynselect'
427
539
 
428
540
  const emptyProperty = {
429
541
  contentEncoding: undefined,
@@ -449,6 +561,15 @@ $effect(() => {
449
561
  type: 'object',
450
562
  format: 'resource-s3_object'
451
563
  }
564
+ } else if (isDynSelect) {
565
+ const functionName = argName.replace(/\s+/g, '_')
566
+ schema.properties[argName] = {
567
+ ...emptyProperty,
568
+ type: 'object',
569
+ format: 'dynselect-' + functionName
570
+ }
571
+ updateDynSelectCode(argName, dynSelectLang)
572
+ dynamicSelectEditor?.setCode(dynSelectCode || '')
452
573
  } else if (isOneOf) {
453
574
  schema.properties[argName] = {
454
575
  ...emptyProperty,
@@ -465,7 +586,8 @@ $effect(() => {
465
586
  property_1: {
466
587
  type: 'string'
467
588
  }
468
- }
589
+ },
590
+ order: ['property_1']
469
591
  },
470
592
  {
471
593
  title: 'Option 2',
@@ -478,7 +600,8 @@ $effect(() => {
478
600
  property_2: {
479
601
  type: 'string'
480
602
  }
481
- }
603
+ },
604
+ order: ['property_2']
482
605
  }
483
606
  ]
484
607
  }
@@ -498,7 +621,7 @@ $effect(() => {
498
621
  }}
499
622
  >
500
623
  {#snippet children({ item })}
501
- {#each [['String', 'string'], ['Number', 'number'], ['Integer', 'integer'], ['Object', 'object'], ['OneOf', 'oneOf'], ['Array', 'array'], ['Boolean', 'boolean'], ['S3 Object', 'S3']] as x}
624
+ {#each typeOptions as x}
502
625
  <ToggleButton value={x[1]} label={x[0]} {item} />
503
626
  {/each}
504
627
  {/snippet}
@@ -1,4 +1,5 @@
1
1
  import type { Schema } from '../common';
2
+ import { type ScriptLang } from '../gen';
2
3
  import type { SchemaDiff } from './schema/schemaUtils.svelte';
3
4
  import type { EditableSchemaFormUi } from './custom_ui';
4
5
  interface Props {
@@ -27,6 +28,9 @@ interface Props {
27
28
  customUi?: EditableSchemaFormUi | undefined;
28
29
  pannelExtraButtonWidth?: number;
29
30
  class?: string;
31
+ dynSelectCode?: string | undefined;
32
+ dynSelectLang?: ScriptLang | undefined;
33
+ showDynSelectOpt?: boolean;
30
34
  openEditTab?: import('svelte').Snippet;
31
35
  addProperty?: import('svelte').Snippet;
32
36
  runButton?: import('svelte').Snippet;
@@ -59,6 +63,6 @@ declare const EditableSchemaForm: $$__sveltets_2_IsomorphicComponent<Props, {
59
63
  openField: (key: string) => void;
60
64
  deleteField: (key: string) => void;
61
65
  updateJson: () => void;
62
- }, "args" | "schema" | "isValid" | "editPanelSize">;
66
+ }, "args" | "schema" | "isValid" | "editPanelSize" | "dynSelectCode" | "dynSelectLang">;
63
67
  type EditableSchemaForm = InstanceType<typeof EditableSchemaForm>;
64
68
  export default EditableSchemaForm;
@@ -83,7 +83,7 @@ import { MonacoLanguageClient } from 'monaco-languageclient';
83
83
  import { toSocket, WebSocketMessageReader, WebSocketMessageWriter } from 'vscode-ws-jsonrpc';
84
84
  import { CloseAction, ErrorAction, RequestType } from 'vscode-languageclient';
85
85
  import { MonacoBinding } from 'y-monaco';
86
- import { dbSchemas, copilotInfo, codeCompletionSessionEnabled, lspTokenStore, formatOnSave, vimMode } from '../stores';
86
+ import { dbSchemas, copilotInfo, codeCompletionSessionEnabled, lspTokenStore, formatOnSave, vimMode, relativeLineNumbers } from '../stores';
87
87
  import { editorConfig, updateOptions } from '../editorUtils';
88
88
  import { createHash as randomHash } from '../editorLangUtils';
89
89
  import { workspaceStore } from '../stores';
@@ -107,9 +107,10 @@ import AIChatInlineWidget from './copilot/chat/AIChatInlineWidget.svelte';
107
107
  import { writable } from 'svelte/store';
108
108
  import { formatResourceTypes } from './copilot/chat/script/core';
109
109
  import FakeMonacoPlaceHolder from './FakeMonacoPlaceHolder.svelte';
110
- import { editorPositionMap } from '../utils';
110
+ import { editorPositionMap, readFieldsRecursively } from '../utils';
111
111
  import { extToLang, langToExt } from '../editorLangUtils';
112
112
  import { aiChatManager } from './copilot/chat/AIChatManager.svelte';
113
+ import { getDbSchemas } from './apps/components/display/dbtable/utils';
113
114
  // import EditorTheme from './EditorTheme.svelte'
114
115
  let divEl = $state(null);
115
116
  let editor = $state(null);
@@ -138,7 +139,7 @@ const dispatch = createEventDispatcher();
138
139
  let graphqlService = undefined;
139
140
  let dbSchema = $state(undefined);
140
141
  let destroyed = false;
141
- const uri = computeUri(filePath, scriptLang);
142
+ const uri = computeUri(untrack(() => filePath), scriptLang);
142
143
  console.log('uri', uri);
143
144
  function computeUri(filePath, scriptLang) {
144
145
  let file;
@@ -405,10 +406,17 @@ function addSqlTypeCompletions() {
405
406
  });
406
407
  }
407
408
  let sqlSchemaCompletor = undefined;
408
- function updateSchema() {
409
+ async function updateSchema() {
409
410
  const newSchemaRes = lang === 'graphql' ? args?.api : args?.database;
410
411
  if (typeof newSchemaRes === 'string') {
411
- dbSchema = $dbSchemas[newSchemaRes.replace('$res:', '')];
412
+ const resourcePath = newSchemaRes.replace('$res:', '');
413
+ dbSchema = $dbSchemas[resourcePath];
414
+ if (lang === 'graphql' && dbSchema === undefined) {
415
+ await getDbSchemas(lang, resourcePath, $workspaceStore, $dbSchemas, (e) => {
416
+ console.error('error getting graphql db schema', e);
417
+ });
418
+ dbSchema = $dbSchemas[resourcePath];
419
+ }
412
420
  }
413
421
  else {
414
422
  dbSchema = undefined;
@@ -425,8 +433,10 @@ function addDBSchemaCompletions() {
425
433
  if (!schemaLang || !schema) {
426
434
  return;
427
435
  }
436
+ console.log('adding db schema completions', schemaLang);
428
437
  if (schemaLang === 'graphql') {
429
438
  graphqlService ||= initializeMode();
439
+ console.log('setting schema config', schema);
430
440
  graphqlService?.setSchemaConfig([
431
441
  {
432
442
  uri: 'my-schema.graphql',
@@ -519,8 +529,8 @@ let aiChatEditorHandler = $state(undefined);
519
529
  let showInlineAIChat = $state(false);
520
530
  let inlineAIChatSelection = $state(null);
521
531
  let selectedCode = $state('');
522
- export function reviewAndApplyCode(code) {
523
- aiChatEditorHandler?.reviewAndApply(code);
532
+ export function reviewAndApplyCode(code, applyAll = false) {
533
+ aiChatEditorHandler?.reviewAndApply(code, applyAll);
524
534
  }
525
535
  function addChatHandler(editor) {
526
536
  try {
@@ -990,7 +1000,7 @@ async function loadMonaco() {
990
1000
  onFileChanges();
991
1001
  try {
992
1002
  editor = meditor.create(divEl, {
993
- ...editorConfig(code ?? '', lang, automaticLayout, fixedOverflowWidgets),
1003
+ ...editorConfig(code ?? '', lang, automaticLayout, fixedOverflowWidgets, $relativeLineNumbers),
994
1004
  model,
995
1005
  fontSize: !small ? 14 : 12,
996
1006
  lineNumbersMinChars,
@@ -1313,9 +1323,12 @@ $effect(() => {
1313
1323
  : sqlTypeCompletor?.dispose();
1314
1324
  });
1315
1325
  $effect(() => {
1316
- lang && args && $dbSchemas && untrack(() => updateSchema());
1326
+ console.log('updating schema', lang, $dbSchemas);
1327
+ readFieldsRecursively(args);
1328
+ lang && $dbSchemas && untrack(() => updateSchema());
1317
1329
  });
1318
1330
  $effect(() => {
1331
+ console.log('updating db schema completions', dbSchema, lang);
1319
1332
  initialized &&
1320
1333
  dbSchema &&
1321
1334
  ['sql', 'graphql'].includes(lang) &&
@@ -1361,6 +1374,11 @@ $effect(() => {
1361
1374
  $effect(() => {
1362
1375
  files && model && untrack(() => onFileChanges());
1363
1376
  });
1377
+ $effect(() => {
1378
+ editor?.updateOptions({
1379
+ lineNumbers: $relativeLineNumbers ? 'relative' : 'on'
1380
+ });
1381
+ });
1364
1382
  </script>
1365
1383
 
1366
1384
  <svelte:window onkeydown={onKeyDown} />
@@ -71,7 +71,7 @@ declare const Editor: $$__sveltets_2_IsomorphicComponent<Props, {
71
71
  append: (code: string) => void;
72
72
  format: () => Promise<void>;
73
73
  getScriptLang: () => string | undefined;
74
- reviewAndApplyCode: (code: string) => void;
74
+ reviewAndApplyCode: (code: string, applyAll?: boolean) => void;
75
75
  reloadWebsocket: () => Promise<void>;
76
76
  fetchPackageDeps: (deps: DepsToGet) => Promise<void>;
77
77
  addAction: (id: string, label: string, callback: (editor: meditor.IStandaloneCodeEditor) => void, keybindings?: number[]) => void;