windmill-components 1.677.1 → 1.695.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 (552) hide show
  1. package/package/components/AppConnectInner.svelte +6 -0
  2. package/package/components/ArgInput.svelte +2 -0
  3. package/package/components/AutoscalingConfigEditor.svelte +18 -4
  4. package/package/components/CiTestResults.svelte +64 -0
  5. package/package/components/CiTestResults.svelte.d.ts +7 -0
  6. package/package/components/CompareWorkspaces.svelte +741 -484
  7. package/package/components/DBManager.svelte +35 -4
  8. package/package/components/DBManager.svelte.d.ts +2 -0
  9. package/package/components/DBManagerContent.svelte +3 -1
  10. package/package/components/DBManagerContent.svelte.d.ts +3 -0
  11. package/package/components/DBManagerDrawer.svelte +145 -3
  12. package/package/components/DBTableEditor.svelte +14 -4
  13. package/package/components/DatatablePicker.svelte +2 -5
  14. package/package/components/DatatableSchemaDiff.svelte +531 -0
  15. package/package/components/DatatableSchemaDiff.svelte.d.ts +29 -0
  16. package/package/components/DedicatedWorkersSelector.svelte +4 -2
  17. package/package/components/DefaultTagsInner.svelte +42 -2
  18. package/package/components/DeployWorkspaceDrawer.svelte +1 -1
  19. package/package/components/Dev.svelte +407 -74
  20. package/package/components/EditableSchemaForm.svelte +4 -0
  21. package/package/components/Editor.svelte +1 -1
  22. package/package/components/EditorBar.svelte +1 -1
  23. package/package/components/EditorBar.svelte.d.ts +1 -1
  24. package/package/components/ErrorOrRecoveryHandler.svelte +2 -2
  25. package/package/components/FlowPreviewContent.svelte +32 -30
  26. package/package/components/FlowRestartButton.svelte +143 -61
  27. package/package/components/FlowRestartButton.svelte.d.ts +37 -0
  28. package/package/components/FlowStatusViewer.svelte +15 -1
  29. package/package/components/FlowStatusViewer.svelte.d.ts +10 -2
  30. package/package/components/FlowStatusViewerInner.svelte +270 -222
  31. package/package/components/FlowStatusViewerInner.svelte.d.ts +6 -2
  32. package/package/components/FlowTimeline.svelte +1 -1
  33. package/package/components/FolderEditor.svelte +189 -4
  34. package/package/components/ForkConflictModal.svelte +57 -0
  35. package/package/components/ForkConflictModal.svelte.d.ts +3 -0
  36. package/package/components/ForkWorkspaceBanner.svelte +82 -11
  37. package/package/components/GitRepoViewer.svelte +251 -97
  38. package/package/components/GlobalUserOffboardingModal.svelte +293 -0
  39. package/package/components/GlobalUserOffboardingModal.svelte.d.ts +10 -0
  40. package/package/components/InputTransformSchemaForm.svelte +1 -1
  41. package/package/components/InstanceSettings.svelte +58 -19
  42. package/package/components/Login.svelte +133 -36
  43. package/package/components/Login.svelte.d.ts +1 -0
  44. package/package/components/ModuleTest.svelte +2 -1
  45. package/package/components/NoMainFuncBadge.svelte +1 -1
  46. package/package/components/OffboardItemsBox.svelte +56 -0
  47. package/package/components/OffboardItemsBox.svelte.d.ts +12 -0
  48. package/package/components/OffboardReassignControls.svelte +47 -0
  49. package/package/components/OffboardReassignControls.svelte.d.ts +20 -0
  50. package/package/components/OffboardWorkspaceSection.svelte +110 -0
  51. package/package/components/OffboardWorkspaceSection.svelte.d.ts +24 -0
  52. package/package/components/OnBehalfOfSelector.svelte +21 -3
  53. package/package/components/OnBehalfOfSelector.svelte.d.ts +7 -0
  54. package/package/components/Path.svelte +7 -1
  55. package/package/components/Path.svelte.d.ts +1 -1
  56. package/package/components/QueueAlerts.svelte +10 -10
  57. package/package/components/ResourcePicker.svelte +2 -2
  58. package/package/components/RunsPage.svelte +2 -1
  59. package/package/components/S3FilePickerInner.svelte +89 -89
  60. package/package/components/ScriptBuilder.svelte +52 -11
  61. package/package/components/ScriptEditor.svelte +19 -8
  62. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  63. package/package/components/ShareModal.svelte +236 -98
  64. package/package/components/ShareModal.svelte.d.ts +1 -1
  65. package/package/components/SuperadminSettingsInner.svelte +362 -315
  66. package/package/components/UserOffboardingModal.svelte +238 -0
  67. package/package/components/UserOffboardingModal.svelte.d.ts +10 -0
  68. package/package/components/WorkspaceDeployLayout.svelte +3 -3
  69. package/package/components/WorkspaceDeployLayout.svelte.d.ts +1 -0
  70. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -0
  71. package/package/components/apps/components/helpers/executeRunnable.js +2 -1
  72. package/package/components/apps/editor/AppReportsDrawerInner.svelte +1 -1
  73. package/package/components/apps/editor/appPolicy.js +2 -1
  74. package/package/components/apps/editor/commonAppUtils.d.ts +3 -0
  75. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -1
  76. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +7 -0
  77. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +4 -2
  78. package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte +49 -0
  79. package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte.d.ts +9 -0
  80. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -0
  81. package/package/components/apps/inputType.d.ts +1 -0
  82. package/package/components/apps/sharedTypes.d.ts +1 -0
  83. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  84. package/package/components/auditLogs/AuditLogsFilters.svelte +8 -3
  85. package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
  86. package/package/components/common/fileUpload/S3ArgInput.svelte +12 -10
  87. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +2 -0
  88. package/package/components/common/table/AppRow.svelte +3 -3
  89. package/package/components/common/table/FlowRow.svelte +3 -3
  90. package/package/components/common/table/RawAppRow.svelte +4 -4
  91. package/package/components/common/table/Row.svelte +6 -2
  92. package/package/components/common/table/ScriptRow.svelte +11 -3
  93. package/package/components/copilot/chat/AIChatDisplay.svelte +5 -36
  94. package/package/components/copilot/chat/AIChatInput.svelte +56 -47
  95. package/package/components/copilot/chat/AIChatManager.svelte.js +50 -48
  96. package/package/components/copilot/chat/ContextElementBadge.svelte +6 -4
  97. package/package/components/copilot/chat/anthropic.d.ts +7 -1
  98. package/package/components/copilot/chat/anthropic.js +5 -2
  99. package/package/components/copilot/chat/app/core.d.ts +12 -20
  100. package/package/components/copilot/chat/app/core.js +230 -159
  101. package/package/components/copilot/chat/app/core.test.js +417 -0
  102. package/package/components/copilot/chat/chatLoop.d.ts +3 -0
  103. package/package/components/copilot/chat/chatLoop.js +13 -5
  104. package/package/components/copilot/chat/context.js +44 -0
  105. package/package/components/copilot/chat/flow/FlowAIChat.svelte +57 -76
  106. package/package/components/copilot/chat/flow/core.d.ts +14 -3
  107. package/package/components/copilot/chat/flow/core.js +494 -116
  108. package/package/components/copilot/chat/flow/helperUtils.d.ts +22 -0
  109. package/package/components/copilot/chat/flow/helperUtils.js +100 -0
  110. package/package/components/copilot/chat/flow/helperUtils.test.js +231 -0
  111. package/package/components/copilot/chat/flow/inlineScriptsUtils.d.ts +5 -24
  112. package/package/components/copilot/chat/flow/inlineScriptsUtils.js +30 -55
  113. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  114. package/package/components/copilot/chat/flow/openFlowZod.gen.js +24 -0
  115. package/package/components/copilot/chat/flow/utils.test.js +59 -0
  116. package/package/components/copilot/chat/openai-responses.d.ts +7 -1
  117. package/package/components/copilot/chat/openai-responses.js +5 -2
  118. package/package/components/copilot/chat/script/core.js +3 -0
  119. package/package/components/copilot/chat/shared.d.ts +7 -2
  120. package/package/components/copilot/chat/shared.js +116 -53
  121. package/package/components/copilot/chat/shared.test.d.ts +1 -0
  122. package/package/components/copilot/chat/shared.test.js +412 -0
  123. package/package/components/copilot/chat/tokenUsage.d.ts +23 -0
  124. package/package/components/copilot/chat/tokenUsage.js +42 -0
  125. package/package/components/copilot/chat/workspaceTools.d.ts +7 -0
  126. package/package/components/copilot/chat/workspaceTools.js +239 -0
  127. package/package/components/copilot/chat/workspaceToolsZod.gen.d.ts +1295 -0
  128. package/package/components/copilot/chat/workspaceToolsZod.gen.js +424 -0
  129. package/package/components/copilot/lib.d.ts +5 -1
  130. package/package/components/copilot/lib.js +24 -6
  131. package/package/components/copilot/lib.test.d.ts +1 -0
  132. package/package/components/copilot/lib.test.js +19 -0
  133. package/package/components/copilot/modelConfig.d.ts +3 -0
  134. package/package/components/copilot/modelConfig.js +10 -0
  135. package/package/components/deploymentRequest/DeploymentRequestPanel.svelte +337 -0
  136. package/package/components/deploymentRequest/DeploymentRequestPanel.svelte.d.ts +15 -0
  137. package/package/components/details/CopyableCodeBlock.svelte +18 -8
  138. package/package/components/details/CopyableCodeBlock.svelte.d.ts +1 -0
  139. package/package/components/flows/FlowAssetsHandler.svelte +19 -21
  140. package/package/components/flows/FlowProgressBar.svelte +5 -2
  141. package/package/components/flows/agentToolTree.d.ts +17 -0
  142. package/package/components/flows/agentToolTree.js +114 -0
  143. package/package/components/flows/agentToolTree.test.d.ts +1 -0
  144. package/package/components/flows/agentToolTree.test.js +86 -0
  145. package/package/components/flows/agentToolUtils.d.ts +0 -5
  146. package/package/components/flows/agentToolUtils.js +0 -49
  147. package/package/components/flows/content/FlowLoop.svelte +7 -4
  148. package/package/components/flows/content/FlowModuleComponent.svelte +636 -599
  149. package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +15 -7
  150. package/package/components/flows/content/FlowSettings.svelte +29 -0
  151. package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -10
  152. package/package/components/flows/dfs.d.ts +6 -2
  153. package/package/components/flows/dfs.js +19 -11
  154. package/package/components/flows/flowDeleteController.d.ts +32 -0
  155. package/package/components/flows/flowDeleteController.js +54 -0
  156. package/package/components/flows/flowDeleteController.test.d.ts +1 -0
  157. package/package/components/flows/flowDeleteController.test.js +121 -0
  158. package/package/components/flows/flowDeleteUtils.d.ts +48 -0
  159. package/package/components/flows/flowDeleteUtils.js +150 -0
  160. package/package/components/flows/flowDeleteUtils.test.d.ts +1 -0
  161. package/package/components/flows/flowDeleteUtils.test.js +131 -0
  162. package/package/components/flows/flowDiff.d.ts +2 -47
  163. package/package/components/flows/flowDiff.js +16 -293
  164. package/package/components/flows/flowDiff.testUtils.d.ts +8 -0
  165. package/package/components/flows/flowDiff.testUtils.js +26 -0
  166. package/package/components/flows/flowDiffManager.svelte.js +20 -75
  167. package/package/components/flows/flowDiffManager.svelte.test.js +103 -2
  168. package/package/components/flows/flowExplorer.d.ts +4 -0
  169. package/package/components/flows/flowExplorer.js +7 -30
  170. package/package/components/flows/flowState.d.ts +1 -0
  171. package/package/components/flows/flowStateUtils.svelte.js +11 -2
  172. package/package/components/flows/flowTree.d.ts +91 -0
  173. package/package/components/flows/flowTree.js +326 -0
  174. package/package/components/flows/flowTree.test.d.ts +1 -0
  175. package/package/components/flows/flowTree.test.js +236 -0
  176. package/package/components/flows/map/FlowJobsMenu.svelte +36 -30
  177. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  178. package/package/components/flows/map/FlowModuleSchemaMap.svelte +73 -229
  179. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
  180. package/package/components/flows/pickers/PickHubScriptQuick.svelte +2 -2
  181. package/package/components/flows/previousResults.js +13 -41
  182. package/package/components/flows/previousResults.test.d.ts +1 -0
  183. package/package/components/flows/previousResults.test.js +65 -0
  184. package/package/components/flows/propPicker/OutputPicker.svelte +2 -1
  185. package/package/components/flows/propPicker/OutputPickerInner.svelte +41 -4
  186. package/package/components/flows/propPicker/StepHistory.svelte +9 -1
  187. package/package/components/git_sync/GitSyncContext.svelte.js +11 -7
  188. package/package/components/git_sync/GitSyncRepositoryCard.svelte +2 -29
  189. package/package/components/git_sync/PullWorkspaceModal.svelte +6 -7
  190. package/package/components/graph/FlowGraphV2.svelte +8 -4
  191. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
  192. package/package/components/graph/groupedModulesProxy.svelte.d.ts +10 -0
  193. package/package/components/graph/groupedModulesProxy.svelte.js +17 -1
  194. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +8 -2
  195. package/package/components/home/HomeConnectDrawer.svelte +125 -0
  196. package/package/components/home/HomeConnectDrawer.svelte.d.ts +5 -0
  197. package/package/components/home/deploy_ui.js +1 -1
  198. package/package/components/icons/AzureIcon.svelte +12 -25
  199. package/package/components/icons/AzureIcon.svelte.d.ts +3 -2
  200. package/package/components/icons/GithubIcon.svelte +4 -4
  201. package/package/components/icons/GithubIcon.svelte.d.ts +5 -2
  202. package/package/components/instanceSettings/ExternalJwtTokens.svelte +85 -0
  203. package/package/components/instanceSettings/ExternalJwtTokens.svelte.d.ts +12 -0
  204. package/package/components/instanceSettings/GhesAppSettings.svelte +17 -0
  205. package/package/components/instanceSettings/IndexerMemorySettings.svelte +56 -29
  206. package/package/components/instanceSettings/SecretBackendConfig.svelte +9 -2
  207. package/package/components/instanceSettings.d.ts +1 -0
  208. package/package/components/instanceSettings.js +66 -8
  209. package/package/components/mcp/McpScopeSelector.svelte +119 -9
  210. package/package/components/mcp/McpScopeSelector.svelte.d.ts +1 -0
  211. package/package/components/offboarding-utils.d.ts +11 -0
  212. package/package/components/offboarding-utils.js +102 -0
  213. package/package/components/progressBar/ProgressBar.svelte +9 -5
  214. package/package/components/progressBar/ProgressBar.svelte.d.ts +1 -0
  215. package/package/components/raw_apps/DeleteAfterUsePopup.svelte +52 -0
  216. package/package/components/raw_apps/DeleteAfterUsePopup.svelte.d.ts +9 -0
  217. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +5 -1
  218. package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -1
  219. package/package/components/raw_apps/RawAppEditor.svelte +186 -102
  220. package/package/components/raw_apps/RawAppEditorHeader.svelte +6 -1
  221. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -0
  222. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +9 -3
  223. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +2 -1
  224. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +1 -0
  225. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +1 -0
  226. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +48 -5
  227. package/package/components/raw_apps/RawAppSharedUiDrawer.svelte +129 -0
  228. package/package/components/raw_apps/RawAppSharedUiDrawer.svelte.d.ts +5 -0
  229. package/package/components/raw_apps/RawAppSidebar.svelte +12 -0
  230. package/package/components/raw_apps/RawAppYamlEditor.svelte +81 -0
  231. package/package/components/raw_apps/RawAppYamlEditor.svelte.d.ts +20 -0
  232. package/package/components/raw_apps/dataTableRefUtils.d.ts +7 -0
  233. package/package/components/raw_apps/dataTableRefUtils.js +34 -0
  234. package/package/components/raw_apps/dataTableRefUtils.test.d.ts +1 -0
  235. package/package/components/raw_apps/dataTableRefUtils.test.js +29 -0
  236. package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
  237. package/package/components/raw_apps/rawAppPolicy.d.ts +1 -0
  238. package/package/components/raw_apps/rawAppPolicy.js +17 -2
  239. package/package/components/resources/resourceTypesFilter.d.ts +19 -0
  240. package/package/components/resources/resourceTypesFilter.js +21 -0
  241. package/package/components/restartFromStepPath.d.ts +39 -0
  242. package/package/components/restartFromStepPath.js +89 -0
  243. package/package/components/runs/JobDetailFieldConfig.d.ts +1 -0
  244. package/package/components/runs/JobDetailFieldConfig.js +57 -10
  245. package/package/components/runs/JobDetailHeader.svelte +24 -3
  246. package/package/components/runs/runsFilter.d.ts +1 -1
  247. package/package/components/schema/FlowPropertyEditor.svelte +30 -1
  248. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +5 -2
  249. package/package/components/script_builder.d.ts +1 -1
  250. package/package/components/search/GlobalSearchModal.svelte +8 -1
  251. package/package/components/select/Select.svelte +3 -2
  252. package/package/components/select/Select.svelte.d.ts +1 -0
  253. package/package/components/settings/CreateToken.svelte +91 -71
  254. package/package/components/settings/CreateToken.svelte.d.ts +3 -0
  255. package/package/components/settings/EditTokenScopesModal.svelte +57 -0
  256. package/package/components/settings/EditTokenScopesModal.svelte.d.ts +10 -0
  257. package/package/components/settings/ScopesPicker.svelte +43 -0
  258. package/package/components/settings/ScopesPicker.svelte.d.ts +11 -0
  259. package/package/components/settings/TokensTable.svelte +51 -15
  260. package/package/components/settings/WorkspaceUserSettings.svelte +34 -28
  261. package/package/components/sidebar/OperatorMenu.svelte +6 -0
  262. package/package/components/sidebar/SidebarContent.svelte +68 -2
  263. package/package/components/sidebar/WorkspaceMenu.svelte +8 -4
  264. package/package/components/triggers/AddTriggersButton.svelte +17 -0
  265. package/package/components/triggers/CaptureWrapper.svelte +19 -1
  266. package/package/components/triggers/PermissionedAsLine.svelte +37 -3
  267. package/package/components/triggers/PermissionedAsLine.svelte.d.ts +6 -0
  268. package/package/components/triggers/TriggerEditorToolbar.svelte.d.ts +1 -1
  269. package/package/components/triggers/TriggerModeToggle.svelte +36 -7
  270. package/package/components/triggers/TriggerModeToggle.svelte.d.ts +1 -1
  271. package/package/components/triggers/TriggerSuspendedJobsModal.svelte.d.ts +1 -1
  272. package/package/components/triggers/TriggersEditor.svelte +10 -2
  273. package/package/components/triggers/TriggersWrapper.svelte +20 -0
  274. package/package/components/triggers/azure/AzureCapture.svelte +41 -0
  275. package/package/components/triggers/azure/AzureCapture.svelte.d.ts +44 -0
  276. package/package/components/triggers/azure/AzureTriggerEditor.svelte +20 -0
  277. package/package/components/triggers/azure/AzureTriggerEditor.svelte.d.ts +9 -0
  278. package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte +301 -0
  279. package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte.d.ts +16 -0
  280. package/package/components/triggers/azure/AzureTriggerEditorInner.svelte +422 -0
  281. package/package/components/triggers/azure/AzureTriggerEditorInner.svelte.d.ts +25 -0
  282. package/package/components/triggers/azure/AzureTriggerPanel.svelte +55 -0
  283. package/package/components/triggers/azure/AzureTriggerPanel.svelte.d.ts +10 -0
  284. package/{dist/sharedUtils/components/triggers/kafka → package/components/triggers/azure}/utils.d.ts +1 -1
  285. package/package/components/triggers/azure/utils.js +56 -0
  286. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +15 -11
  287. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +22 -14
  288. package/package/components/triggers/http/RouteEditorConfigSection.svelte +15 -7
  289. package/package/components/triggers/http/RouteEditorInner.svelte +16 -14
  290. package/package/components/triggers/http/RoutesGenerator.svelte +6 -1
  291. package/package/components/triggers/http/RoutesPanel.svelte +1 -1
  292. package/package/components/triggers/http/utils.d.ts +1 -1
  293. package/package/components/triggers/http/utils.js +2 -2
  294. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +22 -14
  295. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +22 -14
  296. package/package/components/triggers/native/NativeTriggerEditor.svelte +3 -0
  297. package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte +118 -0
  298. package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte.d.ts +17 -0
  299. package/package/components/triggers/native/utils.js +14 -0
  300. package/package/components/triggers/nats/NatsTriggerEditor.svelte.d.ts +4 -3
  301. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +22 -14
  302. package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +4 -3
  303. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +22 -14
  304. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +22 -14
  305. package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +4 -3
  306. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +22 -14
  307. package/package/components/triggers/triggers.svelte.d.ts +1 -0
  308. package/package/components/triggers/triggers.svelte.js +24 -1
  309. package/package/components/triggers/utils.js +47 -6
  310. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -14
  311. package/package/components/triggers.d.ts +1 -1
  312. package/package/components/useFolderDefaultPermissionedAs.svelte.d.ts +13 -0
  313. package/package/components/useFolderDefaultPermissionedAs.svelte.js +63 -0
  314. package/package/components/useNestedRestartState.svelte.d.ts +56 -0
  315. package/package/components/useNestedRestartState.svelte.js +320 -0
  316. package/package/components/workspaceSettings/CreateWorkspace.svelte +16 -677
  317. package/package/components/workspaceSettings/CreateWorkspaceInner.svelte +604 -0
  318. package/package/components/workspaceSettings/CreateWorkspaceInner.svelte.d.ts +7 -0
  319. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +27 -25
  320. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +46 -8
  321. package/package/components/workspaceSettings/DataTableSettings.svelte +27 -22
  322. package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
  323. package/package/components/workspaceSettings/ForkDatatableSection.svelte +228 -0
  324. package/package/components/workspaceSettings/ForkDatatableSection.svelte.d.ts +28 -0
  325. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +8 -2
  326. package/package/components/workspaceSettings/RulesetEditor.svelte +27 -2
  327. package/package/components/workspaceSettings/SharedUiSettings.svelte +175 -0
  328. package/package/components/workspaceSettings/SharedUiSettings.svelte.d.ts +3 -0
  329. package/package/components/workspaceSettings/VolumeStorageSettings.svelte +1 -1
  330. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +17 -1
  331. package/package/consts.d.ts +3 -0
  332. package/package/consts.js +10 -0
  333. package/package/gen/core/OpenAPI.js +1 -1
  334. package/package/gen/schemas.gen.d.ts +795 -59
  335. package/package/gen/schemas.gen.js +801 -60
  336. package/package/gen/services.gen.d.ts +475 -5
  337. package/package/gen/services.gen.js +976 -23
  338. package/package/gen/types.gen.d.ts +1865 -75
  339. package/package/githubApp.js +5 -1
  340. package/package/hubPaths.json +2 -8
  341. package/package/infer.d.ts +1 -1
  342. package/package/infer.js +50 -52
  343. package/package/infer.svelte.js +10 -1
  344. package/package/mcpEndpointTools.js +60 -4
  345. package/package/monaco_workers/sqlTypePlugin.worker.d.ts +10 -0
  346. package/package/monaco_workers/sqlTypePlugin.worker.js +39 -0
  347. package/package/script_helpers.d.ts +8 -2
  348. package/package/script_helpers.js +31 -0
  349. package/package/stores.d.ts +11 -0
  350. package/package/stores.js +6 -0
  351. package/package/system_prompts/index.d.ts +1 -0
  352. package/package/system_prompts/index.js +8 -0
  353. package/package/system_prompts/prompts.d.ts +17 -13
  354. package/package/system_prompts/prompts.js +921 -61
  355. package/package/templates/ci_test_bun.ts.template +27 -0
  356. package/package/templates/ci_test_python.py.template +26 -0
  357. package/package/utils/forkConflict.d.ts +26 -0
  358. package/package/utils/forkConflict.js +56 -0
  359. package/package/utils_deployable.d.ts +164 -121
  360. package/package/utils_deployable.js +61 -11
  361. package/package/utils_workspace_deploy.d.ts +8 -8
  362. package/package/utils_workspace_deploy.js +89 -421
  363. package/package.json +30 -6
  364. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
  365. package/dist/sharedUtils/base.d.ts +0 -1
  366. package/dist/sharedUtils/cloud.d.ts +0 -1
  367. package/dist/sharedUtils/common.d.ts +0 -111
  368. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
  369. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
  370. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
  371. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
  372. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
  373. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
  374. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
  375. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
  376. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
  377. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
  378. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
  379. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
  380. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
  381. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
  382. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
  383. package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
  384. package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
  385. package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
  386. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
  387. package/dist/sharedUtils/components/apps/types.d.ts +0 -274
  388. package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
  389. package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
  390. package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
  391. package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
  392. package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
  393. package/dist/sharedUtils/components/common/index.d.ts +0 -24
  394. package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
  395. package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
  396. package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
  397. package/dist/sharedUtils/components/ducklake.d.ts +0 -1
  398. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
  399. package/dist/sharedUtils/components/icons/index.d.ts +0 -101
  400. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
  401. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
  402. package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
  403. package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
  404. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
  405. package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
  406. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
  407. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
  408. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
  409. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
  410. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
  411. package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
  412. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
  413. package/dist/sharedUtils/components/triggers.d.ts +0 -20
  414. package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
  415. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
  416. package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
  417. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
  418. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
  419. package/dist/sharedUtils/gen/core/request.d.ts +0 -29
  420. package/dist/sharedUtils/gen/index.d.ts +0 -6
  421. package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
  422. package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
  423. package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
  424. package/dist/sharedUtils/history.svelte.d.ts +0 -9
  425. package/dist/sharedUtils/hub.d.ts +0 -49
  426. package/dist/sharedUtils/jsr.json +0 -6
  427. package/dist/sharedUtils/lib.d.ts +0 -5
  428. package/dist/sharedUtils/lib.es.js +0 -1588
  429. package/dist/sharedUtils/package.json +0 -12
  430. package/dist/sharedUtils/schema.d.ts +0 -3
  431. package/dist/sharedUtils/stores.d.ts +0 -97
  432. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
  433. package/dist/sharedUtils/toast.d.ts +0 -8
  434. package/dist/sharedUtils/utils.d.ts +0 -265
  435. package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +0 -153
  436. package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +0 -21
  437. package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +0 -136
  438. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.d.ts +0 -15
  439. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -107
  440. package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +0 -50
  441. package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +0 -93
  442. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.d.ts +0 -29
  443. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.js +0 -134
  444. package/package/components/copilot/chat/__tests__/app/appResultsWriter.d.ts +0 -30
  445. package/package/components/copilot/chat/__tests__/app/appResultsWriter.js +0 -197
  446. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.d.ts +0 -10
  447. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.js +0 -9
  448. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/meta.json +0 -4
  449. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.d.ts +0 -6
  450. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.js +0 -5
  451. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/meta.json +0 -4
  452. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.d.ts +0 -12
  453. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.js +0 -14
  454. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/meta.json +0 -4
  455. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.d.ts +0 -8
  456. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.js +0 -25
  457. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/meta.json +0 -4
  458. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.d.ts +0 -7
  459. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.js +0 -5
  460. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/meta.json +0 -4
  461. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.d.ts +0 -8
  462. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.js +0 -5
  463. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/meta.json +0 -4
  464. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.d.ts +0 -10
  465. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.tsx +0 -26
  466. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.d.ts +0 -10
  467. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.tsx +0 -79
  468. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.d.ts +0 -10
  469. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.tsx +0 -46
  470. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.d.ts +0 -10
  471. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.tsx +0 -56
  472. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.d.ts +0 -6
  473. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.tsx +0 -59
  474. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.d.ts +0 -16
  475. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.tsx +0 -119
  476. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.d.ts +0 -15
  477. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.js +0 -14
  478. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/meta.json +0 -4
  479. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.d.ts +0 -14
  480. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.js +0 -5
  481. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/meta.json +0 -4
  482. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.d.ts +0 -6
  483. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.js +0 -41
  484. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/meta.json +0 -4
  485. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.d.ts +0 -15
  486. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.js +0 -3
  487. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/meta.json +0 -4
  488. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.d.ts +0 -9
  489. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.tsx +0 -51
  490. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.d.ts +0 -8
  491. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.tsx +0 -27
  492. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.d.ts +0 -8
  493. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.tsx +0 -18
  494. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.d.ts +0 -12
  495. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.tsx +0 -81
  496. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.d.ts +0 -3
  497. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.js +0 -3
  498. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/meta.json +0 -4
  499. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.d.ts +0 -3
  500. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.js +0 -3
  501. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/meta.json +0 -4
  502. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.d.ts +0 -2
  503. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.tsx +0 -38
  504. package/package/components/copilot/chat/__tests__/app/variants/baseline.d.ts +0 -6
  505. package/package/components/copilot/chat/__tests__/app/variants/baseline.js +0 -10
  506. package/package/components/copilot/chat/__tests__/app/variants/index.d.ts +0 -3
  507. package/package/components/copilot/chat/__tests__/app/variants/index.js +0 -3
  508. package/package/components/copilot/chat/__tests__/app/variants/streamlined.d.ts +0 -6
  509. package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +0 -137
  510. package/package/components/copilot/chat/__tests__/flow/expected/test1.json +0 -134
  511. package/package/components/copilot/chat/__tests__/flow/expected/test2.json +0 -183
  512. package/package/components/copilot/chat/__tests__/flow/expected/test3.json +0 -204
  513. package/package/components/copilot/chat/__tests__/flow/expected/test4.json +0 -175
  514. package/package/components/copilot/chat/__tests__/flow/expected/test5_modify_simple.json +0 -68
  515. package/package/components/copilot/chat/__tests__/flow/expected/test6_modify_medium.json +0 -142
  516. package/package/components/copilot/chat/__tests__/flow/expected/test7_modify_complex.json +0 -136
  517. package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +0 -294
  518. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.d.ts +0 -17
  519. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +0 -49
  520. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.d.ts +0 -12
  521. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -79
  522. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +0 -50
  523. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +0 -102
  524. package/package/components/copilot/chat/__tests__/flow/initial/test5_initial.json +0 -53
  525. package/package/components/copilot/chat/__tests__/flow/initial/test6_initial.json +0 -68
  526. package/package/components/copilot/chat/__tests__/flow/initial/test7_initial.json +0 -120
  527. package/package/components/copilot/chat/__tests__/flow/variants/baseline.d.ts +0 -6
  528. package/package/components/copilot/chat/__tests__/flow/variants/baseline.js +0 -10
  529. package/package/components/copilot/chat/__tests__/flow/variants/index.d.ts +0 -3
  530. package/package/components/copilot/chat/__tests__/flow/variants/index.js +0 -3
  531. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.d.ts +0 -15
  532. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +0 -388
  533. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +0 -45
  534. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +0 -121
  535. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +0 -28
  536. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +0 -96
  537. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.d.ts +0 -32
  538. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.js +0 -130
  539. package/package/components/copilot/chat/__tests__/shared/baseVariants.d.ts +0 -45
  540. package/package/components/copilot/chat/__tests__/shared/baseVariants.js +0 -57
  541. package/package/components/copilot/chat/__tests__/shared/index.d.ts +0 -10
  542. package/package/components/copilot/chat/__tests__/shared/index.js +0 -5
  543. package/package/components/copilot/chat/__tests__/shared/types.d.ts +0 -105
  544. package/package/components/copilot/chat/__tests__/shared/types.js +0 -9
  545. package/package/components/copilot/chat/flow/openFlowZod.js +0 -24
  546. package/package/components/copilot/chat/flow/utils.d.ts +0 -14
  547. package/package/components/copilot/chat/flow/utils.js +0 -108
  548. package/package/components/flows/agentToolUtils.test.js +0 -55
  549. /package/package/components/copilot/chat/{__tests__/app/appChat.eval.test.d.ts → app/core.test.d.ts} +0 -0
  550. /package/package/components/copilot/chat/{__tests__/flow/flowChat.eval.test.d.ts → flow/helperUtils.test.d.ts} +0 -0
  551. /package/package/components/copilot/chat/flow/{openFlowZod.d.ts → openFlowZod.gen.d.ts} +0 -0
  552. /package/package/components/{flows/agentToolUtils.test.d.ts → copilot/chat/flow/utils.test.d.ts} +0 -0
@@ -7,7 +7,7 @@ import LogPanel from './scriptEditor/LogPanel.svelte';
7
7
  import { JobService, OpenAPI, WorkspaceService } from '../gen';
8
8
  import { inferArgs } from '../infer';
9
9
  import { userStore, workspaceStore } from '../stores';
10
- import { emptySchema, readFieldsRecursively, sendUserToast } from '../utils';
10
+ import { emptySchema, pluralize, readFieldsRecursively, sendUserToast } from '../utils';
11
11
  import { Pane, Splitpanes } from 'svelte-splitpanes';
12
12
  import { onDestroy, onMount, setContext, untrack } from 'svelte';
13
13
  import DarkModeToggle from './sidebar/DarkModeToggle.svelte';
@@ -17,6 +17,7 @@ import FlowPreviewButtons from './flows/header/FlowPreviewButtons.svelte';
17
17
  import FlowModuleSchemaMap from './flows/map/FlowModuleSchemaMap.svelte';
18
18
  import FlowEditorPanel from './flows/content/FlowEditorPanel.svelte';
19
19
  import { deepEqual } from 'fast-equals';
20
+ import { findModuleInFlow } from './flows/flowDiff';
20
21
  import { writable } from 'svelte/store';
21
22
  import { initHistory } from '../history.svelte';
22
23
  import { SelectionManager } from './graph/selectionUtils.svelte';
@@ -24,7 +25,16 @@ import { NoteEditor, setNoteEditorContext } from './graph/noteEditor.svelte';
24
25
  import { GroupEditor, setGroupEditorContext } from './graph/groupEditor.svelte';
25
26
  import { dfs } from './flows/dfs';
26
27
  import { loadSchemaFromModule } from './flows/flowInfers';
27
- import { CornerDownLeft, Play } from 'lucide-svelte';
28
+ import { CornerDownLeft, Play, Folder, FolderTree, User, Search, ChevronDown, ChevronUp, Code2, LayoutDashboard } from 'lucide-svelte';
29
+ import ToggleButtonGroup from './common/toggleButton-v2/ToggleButtonGroup.svelte';
30
+ import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte';
31
+ import FlowIcon from './home/FlowIcon.svelte';
32
+ import { groupItems } from './home/treeViewUtils';
33
+ import SearchItems from './SearchItems.svelte';
34
+ import TextInput from './text_input/TextInput.svelte';
35
+ import Row from './common/table/Row.svelte';
36
+ import Alert from './common/alert/Alert.svelte';
37
+ import { HOME_SEARCH_PLACEHOLDER } from '../consts';
28
38
  import Toggle from './Toggle.svelte';
29
39
  import { setLicense } from '../enterpriseUtils';
30
40
  import { approximateFindPythonRelativePath, isTypescriptRelativePath, parseTypescriptDeps } from '../relative_imports';
@@ -66,7 +76,12 @@ async function loadUser() {
66
76
  }
67
77
  let darkModeToggle = $state();
68
78
  let darkMode = $state(document.documentElement.classList.contains('dark'));
79
+ let flowContainerWidth = $state(0);
80
+ let flowContainerHeight = $state(0);
81
+ let flowHorizontalSplit = $derived(flowContainerWidth < flowContainerHeight);
69
82
  let modeInitialized = $state(false);
83
+ let paneWidth = $state(0);
84
+ let compactPreview = $derived(paneWidth < 800);
70
85
  function initializeMode() {
71
86
  modeInitialized = true;
72
87
  darkModeToggle?.toggle();
@@ -97,6 +112,43 @@ const href = window.location.href;
97
112
  const indexQ = href.indexOf('?');
98
113
  const searchParams = indexQ > -1 ? new URLSearchParams(href.substring(indexQ)) : undefined;
99
114
  let relativePaths = $state([]);
115
+ // watchPath is (re)synced on initial load, on popstate, and on explicit
116
+ // pickPath assignments. We don't listen for generic pushState events —
117
+ // the only pushState callsite is pickPath itself, and it updates watchPath
118
+ // directly. If a third caller starts pushing to history, add a resync there.
119
+ function parseWatchPath() {
120
+ const i = window.location.href.indexOf('?');
121
+ if (i < 0)
122
+ return undefined;
123
+ return new URLSearchParams(window.location.href.substring(i)).get('path') ?? undefined;
124
+ }
125
+ const PATH_SUFFIX_RE = /(\.(flow|app|raw_app)|__(flow|app|raw_app))\/?$/;
126
+ let watchPath = $state(parseWatchPath()?.replace(PATH_SUFFIX_RE, ''));
127
+ let pickerItems = $state([]);
128
+ // Picker only makes sense on the local dev page — that's the only context
129
+ // with a wmill dev WebSocket capable of returning the workspace listing.
130
+ // The VS Code extension iframe omits ?local=true and drives the page via
131
+ // postMessage (replaceScript / replaceFlow), so it must skip the picker.
132
+ const isLocalDevPage = !!searchParams?.has('local');
133
+ const pickerMode = $derived(isLocalDevPage && !watchPath);
134
+ let wsState = $state('connecting');
135
+ let pickerFilter = $state('');
136
+ let pickerKind = $state('all');
137
+ // Shape pickerItems into the homepage's ItemType so we can reuse `groupItems`
138
+ // for the folder/user tree structure. `kind` ('script'|'flow'|'raw_app') maps 1:1
139
+ // onto ItemType['type']; missing fields (canWrite, edited_at, etc.) default to safe values.
140
+ const pickerTreeItems = $derived(pickerItems.map((item) => ({
141
+ path: item.path,
142
+ summary: item.summary ?? '',
143
+ type: item.kind,
144
+ canWrite: true,
145
+ extra_perms: {},
146
+ starred: false,
147
+ edited_at: ''
148
+ })));
149
+ const pickerKindFilteredItems = $derived(pickerKind === 'all' ? pickerTreeItems : pickerTreeItems.filter((i) => i.type === pickerKind));
150
+ let pickerFilteredItems = $state(undefined);
151
+ const pickerGroups = $derived(groupItems(pickerFilteredItems ?? pickerKindFilteredItems));
100
152
  if (searchParams?.has('local')) {
101
153
  connectWs();
102
154
  }
@@ -238,12 +290,33 @@ async function testBundle(file, isTar, format) {
238
290
  });
239
291
  loadingCodebaseButton = false;
240
292
  }
293
+ const onPopState = () => {
294
+ watchPath = parseWatchPath()?.replace(PATH_SUFFIX_RE, '');
295
+ if (watchPath && socket && socket.readyState === WebSocket.OPEN) {
296
+ socket.send(JSON.stringify({ type: 'loadWmPath', path: watchPath }));
297
+ }
298
+ };
299
+ onMount(() => {
300
+ window.addEventListener('popstate', onPopState);
301
+ });
241
302
  onDestroy(() => {
242
303
  window.removeEventListener('message', el);
304
+ window.removeEventListener('popstate', onPopState);
243
305
  if (socket && socket.readyState === WebSocket.OPEN) {
244
306
  socket?.close();
245
307
  }
246
308
  });
309
+ function pickPath(item) {
310
+ if (item.kind === 'raw_app') {
311
+ sendUserToast(`raw_apps aren't previewable here. Run \`wmill app dev\` from inside the app folder.`, false);
312
+ return;
313
+ }
314
+ const url = new URL(window.location.href);
315
+ url.searchParams.set('path', item.path);
316
+ window.history.pushState({}, '', url.toString());
317
+ watchPath = item.path;
318
+ socket?.send(JSON.stringify({ type: 'loadWmPath', path: item.path }));
319
+ }
247
320
  function connectWs() {
248
321
  try {
249
322
  if (socket) {
@@ -255,7 +328,26 @@ function connectWs() {
255
328
  }
256
329
  const port = searchParams?.get('port') || '3001';
257
330
  try {
331
+ wsState = 'connecting';
258
332
  socket = new WebSocket(`ws://localhost:${port}/ws`);
333
+ // On connect, request the watched path if any, otherwise ask for a list to render the picker
334
+ socket.addEventListener('open', () => {
335
+ if (!socket)
336
+ return;
337
+ wsState = 'open';
338
+ if (watchPath) {
339
+ socket.send(JSON.stringify({ type: 'loadWmPath', path: watchPath }));
340
+ }
341
+ else {
342
+ socket.send(JSON.stringify({ type: 'listPaths' }));
343
+ }
344
+ });
345
+ socket.addEventListener('error', () => {
346
+ wsState = 'closed';
347
+ });
348
+ socket.addEventListener('close', () => {
349
+ wsState = 'closed';
350
+ });
259
351
  // Listen for messages
260
352
  socket.addEventListener('message', (event) => {
261
353
  replaceData(event.data);
@@ -269,11 +361,31 @@ function connectWs() {
269
361
  console.log('Received invalid JSON: ' + msg);
270
362
  return;
271
363
  }
272
- if (data.type == 'script') {
273
- replaceScript(data);
364
+ if (data.type === 'paths') {
365
+ pickerItems = data.items ?? [];
366
+ return;
274
367
  }
275
- else if (data.type == 'flow') {
276
- replaceFlow(data);
368
+ // Picker mode (URL has no path) — ignore live broadcasts so a random
369
+ // file change doesn't yank the page out of the picker. (When watchPath
370
+ // IS set the server gates broadcasts itself, so no further filter here.)
371
+ if (!watchPath)
372
+ return;
373
+ if (data.type == 'script' || data.type == 'flow') {
374
+ // Guard against the $effect on flowStore.val (re)serializing the
375
+ // just-received payload back over the same WS to handleFlowRoundTrip
376
+ // (which would re-run the orphan-file scan with the same content).
377
+ // Mirrors the postMessage handler above.
378
+ lockChanges = true;
379
+ if (data.type == 'script') {
380
+ replaceScript(data);
381
+ }
382
+ else {
383
+ replaceFlow(data);
384
+ }
385
+ timeout && clearTimeout(timeout);
386
+ timeout = window.setTimeout(() => {
387
+ lockChanges = false;
388
+ }, 500);
277
389
  }
278
390
  else {
279
391
  sendUserToast(`Received invalid message type ${data.type}`, true);
@@ -460,14 +572,29 @@ const groupEditor = new GroupEditor(flowStore);
460
572
  let canCreateGroup = $state({ val: false });
461
573
  setGroupEditorContext(groupEditor, canCreateGroup);
462
574
  let lastSent = undefined;
575
+ const isInIframe = window.parent !== window;
463
576
  function updateFlow(flow) {
464
577
  if (lockChanges) {
465
578
  return;
466
579
  }
467
- if (!deepEqual(flow, lastSent)) {
468
- lastSent = $state.snapshot(flow);
469
- window?.parent.postMessage({ type: 'flow', flow: lastSent, uriPath: lastUriPath }, '*');
580
+ if (deepEqual(flow, lastSent)) {
581
+ return;
470
582
  }
583
+ const snapshot = $state.snapshot(flow);
584
+ // Prefer the WebSocket whenever a `wmill dev` session is connected — this covers
585
+ // both standalone browser tabs and Claude Code's iframe preview. The VS Code
586
+ // extension never opens this socket (its iframe URL omits `local=true`), so it
587
+ // falls through to the postMessage path it has always used.
588
+ if (socket && socket.readyState === WebSocket.OPEN) {
589
+ socket.send(JSON.stringify({ type: 'flow', flow: snapshot, uriPath: lastUriPath }));
590
+ lastSent = snapshot;
591
+ }
592
+ else if (isInIframe) {
593
+ window?.parent.postMessage({ type: 'flow', flow: snapshot, uriPath: lastUriPath }, '*');
594
+ lastSent = snapshot;
595
+ }
596
+ // Else: no channel available yet (WS still connecting, not in an iframe).
597
+ // Don't mark `lastSent` so the next change will retry instead of being silently swallowed.
471
598
  }
472
599
  let reload = $state(0);
473
600
  async function inferModuleArgs(selectedIdStore) {
@@ -573,6 +700,9 @@ function resetModulesStates() {
573
700
  }
574
701
  const flowHasChanged = $derived(flowPreviewContent?.flowHasChanged());
575
702
  const selectedId = $derived(selectionManager.getSelectedId());
703
+ const selectedModule = $derived(selectedId && flowStore.val?.value
704
+ ? (findModuleInFlow(flowStore.val.value, selectedId) ?? undefined)
705
+ : undefined);
576
706
  </script>
577
707
 
578
708
  <svelte:window onkeydown={onKeyDown} />
@@ -580,7 +710,185 @@ const selectedId = $derived(selectionManager.getSelectedId());
580
710
  <JobLoader noCode={true} bind:this={jobLoader} bind:isLoading={testIsLoading} bind:job={testJob} />
581
711
 
582
712
  <main class="h-screen w-full">
583
- {#if mode == 'script'}
713
+ {#snippet itemRow(item: ItemType & { marked?: string }, depth: number)}
714
+ {@const wmItem = pickerItems.find((p) => p.path === item.path)}
715
+ <button
716
+ type="button"
717
+ onclick={() => wmItem && pickPath(wmItem)}
718
+ class="block w-full text-left cursor-pointer border-b last:border-b-0"
719
+ >
720
+ <Row
721
+ marked={item.marked}
722
+ path={item.path}
723
+ summary={item.summary}
724
+ kind={item.type}
725
+ {depth}
726
+ workspaceId={$workspaceStore ?? ''}
727
+ canFavorite={false}
728
+ />
729
+ </button>
730
+ {/snippet}
731
+ {#snippet treeNode(node: ItemType | FolderItem | UserItem, depth: number)}
732
+ {#if 'folderName' in node}
733
+ <details open class="group border-b last:border-b-0">
734
+ <summary
735
+ class="px-4 py-2 w-full flex flex-row items-center justify-between cursor-pointer list-none group-open:border-b"
736
+ >
737
+ <div
738
+ class="flex flex-row items-center gap-4 text-sm font-semibold"
739
+ style={depth > 0 ? `padding-left: ${depth * 16}px;` : ''}
740
+ >
741
+ <div class="flex justify-center items-center">
742
+ {#if depth === 0}
743
+ <Folder size={16} class="text-secondary" />
744
+ {:else}
745
+ <FolderTree size={16} class="text-secondary" />
746
+ {/if}
747
+ </div>
748
+ <div>
749
+ <span class="whitespace-nowrap text-xs text-emphasis font-semibold"
750
+ >{#if depth === 0}f/{/if}{node.folderName}</span
751
+ >
752
+ <div class="text-2xs font-normal text-secondary whitespace-nowrap">
753
+ ({pluralize(node.items.length, 'item')})
754
+ </div>
755
+ </div>
756
+ </div>
757
+ <div class="w-full flex flex-row-reverse">
758
+ <ChevronUp size={16} class="hidden group-open:block" />
759
+ <ChevronDown size={16} class="block group-open:hidden" />
760
+ </div>
761
+ </summary>
762
+ {#each node.items as child ('folderName' in child ? `f__${child.folderName}` : 'username' in child ? `u__${child.username}` : `i__${child.type}__${child.path}`)}
763
+ {@render treeNode(child, depth + 1)}
764
+ {/each}
765
+ </details>
766
+ {:else if 'username' in node}
767
+ <details open class="group border-b last:border-b-0">
768
+ <summary
769
+ class="px-4 py-2 w-full flex flex-row items-center justify-between cursor-pointer list-none group-open:border-b"
770
+ >
771
+ <div
772
+ class="flex flex-row items-center gap-4 text-sm font-semibold"
773
+ style={depth > 0 ? `padding-left: ${depth * 16}px;` : ''}
774
+ >
775
+ <div class="flex justify-center items-center">
776
+ <User size={16} class="text-secondary" />
777
+ </div>
778
+ <div>
779
+ <span class="whitespace-nowrap text-xs text-emphasis font-semibold"
780
+ >u/{node.username}</span
781
+ >
782
+ <div class="text-2xs font-normal text-secondary whitespace-nowrap">
783
+ ({pluralize(node.items.length, 'item')})
784
+ </div>
785
+ </div>
786
+ </div>
787
+ <div class="w-full flex flex-row-reverse">
788
+ <ChevronUp size={16} class="hidden group-open:block" />
789
+ <ChevronDown size={16} class="block group-open:hidden" />
790
+ </div>
791
+ </summary>
792
+ {#each node.items as child ('folderName' in child ? `f__${child.folderName}` : 'username' in child ? `u__${child.username}` : `i__${child.type}__${child.path}`)}
793
+ {@render treeNode(child, depth + 1)}
794
+ {/each}
795
+ </details>
796
+ {:else}
797
+ {@render itemRow(node as ItemType & { marked?: string }, depth)}
798
+ {/if}
799
+ {/snippet}
800
+
801
+ {#if pickerMode}
802
+ <div class="h-full w-full overflow-auto p-6">
803
+ <div class="absolute top-2 left-2">
804
+ <DarkModeToggle bind:darkMode bind:this={darkModeToggle} forcedDarkMode={false} />
805
+ </div>
806
+ <div class="absolute top-2 right-2 text-xs text-secondary">
807
+ {#if $userStore}
808
+ {$userStore?.username} on {$workspaceStore}
809
+ {:else}
810
+ <span class="text-red-600">Unable to login on {$workspaceStore}</span>
811
+ {/if}
812
+ </div>
813
+ <div class="max-w-3xl mx-auto pt-8">
814
+ <h1 class="text-2xl font-semibold text-primary mb-1">
815
+ {$workspaceStore}
816
+ <span class="font-normal text-secondary">(local)</span>
817
+ </h1>
818
+ <p class="text-sm text-secondary mb-4"> Click a flow or a script to preview it. </p>
819
+
820
+ <SearchItems
821
+ filter={pickerFilter}
822
+ items={pickerKindFilteredItems}
823
+ f={(item: ItemType) => `${item.path} ${item.summary ?? ''}`}
824
+ bind:filteredItems={pickerFilteredItems}
825
+ />
826
+
827
+ {#if wsState !== 'closed'}
828
+ <div class="flex flex-row gap-2 items-center mb-3 w-full">
829
+ <ToggleButtonGroup bind:selected={pickerKind} class="w-fit">
830
+ {#snippet children({ item })}
831
+ <ToggleButton value="all" label="All" size="md" {item} />
832
+ <ToggleButton value="script" icon={Code2} label="Scripts" size="md" {item} />
833
+ <ToggleButton
834
+ value="flow"
835
+ label="Flows"
836
+ icon={FlowIcon}
837
+ selectedColor="#14b8a6"
838
+ size="md"
839
+ {item}
840
+ />
841
+ <ToggleButton
842
+ value="raw_app"
843
+ label="Apps"
844
+ icon={LayoutDashboard}
845
+ selectedColor="#fb923c"
846
+ size="md"
847
+ {item}
848
+ />
849
+ {/snippet}
850
+ </ToggleButtonGroup>
851
+
852
+ <div class="relative text-primary flex-1 min-w-[100px]">
853
+ <!-- svelte-ignore a11y_autofocus -->
854
+ <TextInput
855
+ inputProps={{
856
+ autofocus: true,
857
+ placeholder: HOME_SEARCH_PLACEHOLDER
858
+ }}
859
+ size="md"
860
+ bind:value={pickerFilter}
861
+ class="!pr-10"
862
+ />
863
+ <div class="absolute right-0 top-0 mt-2 mr-4 text-secondary" aria-hidden="true">
864
+ <Search size={16} />
865
+ </div>
866
+ </div>
867
+ </div>
868
+ {/if}
869
+
870
+ {#if wsState === 'closed'}
871
+ <Alert type="warning" title="Dev server is not running">
872
+ Start it from your workspace root with
873
+ <code class="text-xs px-1 py-0.5 rounded bg-surface-secondary">wmill dev</code>
874
+ to preview your flows, scripts, and apps.
875
+ </Alert>
876
+ {:else if pickerItems.length === 0}
877
+ <div class="text-sm text-secondary"
878
+ >No flows, scripts, or apps detected in this workspace.</div
879
+ >
880
+ {:else if pickerGroups.length === 0}
881
+ <div class="text-sm text-secondary">No items match the search.</div>
882
+ {:else}
883
+ <div class="border rounded-md bg-surface-tertiary overflow-hidden">
884
+ {#each pickerGroups as group ('folderName' in group ? `f__${group.folderName}` : 'username' in group ? `u__${group.username}` : `i__${group.type}__${group.path}`)}
885
+ {@render treeNode(group, 0)}
886
+ {/each}
887
+ </div>
888
+ {/if}
889
+ </div>
890
+ </div>
891
+ {:else if mode == 'script'}
584
892
  <div class="flex flex-col min-h-full min-h-screen overflow-auto">
585
893
  <div class="absolute top-0 left-2">
586
894
  <DarkModeToggle bind:darkMode bind:this={darkModeToggle} forcedDarkMode={false} />
@@ -723,8 +1031,12 @@ const selectedId = $derived(selectionManager.getSelectedId());
723
1031
  </div>
724
1032
  {:else}
725
1033
  <!-- <div class="h-full w-full grid grid-cols-2"> -->
726
- <div class="h-full w-full">
727
- <div class="flex flex-col max-h-screen h-full relative">
1034
+ <div
1035
+ class="h-full w-full"
1036
+ bind:clientWidth={flowContainerWidth}
1037
+ bind:clientHeight={flowContainerHeight}
1038
+ >
1039
+ <div class="flex flex-col max-h-screen h-full relative" bind:clientWidth={paneWidth}>
728
1040
  <div class="absolute top-0 left-2">
729
1041
  <DarkModeToggle bind:darkMode bind:this={darkModeToggle} forcedDarkMode={false} />
730
1042
  {#if $userStore}
@@ -734,70 +1046,91 @@ const selectedId = $derived(selectionManager.getSelectedId());
734
1046
  {/if}
735
1047
  </div>
736
1048
 
737
- <div class="flex justify-center pt-1 z-50 absolute -translate-x-[100%] right-2 top-2 gap-2">
738
- <FlowPreviewButtons
739
- {suspendStatus}
740
- bind:this={flowPreviewButtons}
741
- {onJobDone}
742
- bind:localModuleStates
743
- onRunPreview={() => {
744
- showJobStatus = true
745
- }}
746
- />
747
- </div>
748
- <Splitpanes horizontal class="h-full max-h-screen grow">
1049
+ <Splitpanes horizontal={flowHorizontalSplit} class="min-h-0 max-h-screen grow">
749
1050
  <Pane size={67}>
750
- {#if flowStore.val?.value?.modules}
751
- <div id="flow-editor"></div>
752
- <FlowModuleSchemaMap
753
- bind:this={flowModuleSchemaMap}
754
- disableAi
755
- disableTutorials
756
- smallErrorHandler={true}
757
- disableStaticInputs
758
- localModuleStates={showJobStatus ? localModuleStates : {}}
759
- onTestUpTo={flowPreviewButtons?.testUpTo}
760
- testModuleStates={modulesTestStates}
761
- isOwner={flowPreviewContent?.getIsOwner?.()}
762
- onTestFlow={flowPreviewButtons?.runPreview}
763
- isRunning={flowPreviewContent?.getIsRunning?.()}
764
- onCancelTestFlow={flowPreviewContent?.cancelTest}
765
- onOpenPreview={flowPreviewButtons?.openPreview}
766
- onHideJobStatus={resetModulesStates}
767
- flowJob={job}
768
- {showJobStatus}
769
- onDelete={(id) => {
770
- delete localModuleStates[id]
771
- delete modulesTestStates.states[id]
772
- }}
773
- {flowHasChanged}
774
- />
775
- {:else}
776
- <div class="text-red-400 mt-20">Missing flow modules</div>
777
- {/if}
778
- </Pane>
1051
+ <div class="relative h-full w-full">
1052
+ {#if flowStore.val?.value?.modules}
1053
+ <div id="flow-editor"></div>
1054
+ <div
1055
+ class="flex justify-center pt-1 z-50 absolute gap-2 {compactPreview
1056
+ ? 'left-1/2 -translate-x-1/2 top-14'
1057
+ : 'right-2 top-2'}"
1058
+ >
1059
+ <FlowPreviewButtons
1060
+ {suspendStatus}
1061
+ bind:this={flowPreviewButtons}
1062
+ {onJobDone}
1063
+ bind:localModuleStates
1064
+ onRunPreview={() => {
1065
+ showJobStatus = true
1066
+ }}
1067
+ />
1068
+ </div>
1069
+ <FlowModuleSchemaMap
1070
+ bind:this={flowModuleSchemaMap}
1071
+ disableAi
1072
+ disableTutorials
1073
+ smallErrorHandler={true}
1074
+ disableStaticInputs
1075
+ localModuleStates={showJobStatus ? localModuleStates : {}}
1076
+ onTestUpTo={flowPreviewButtons?.testUpTo}
1077
+ testModuleStates={modulesTestStates}
1078
+ isOwner={flowPreviewContent?.getIsOwner?.()}
1079
+ onTestFlow={flowPreviewButtons?.runPreview}
1080
+ isRunning={flowPreviewContent?.getIsRunning?.()}
1081
+ onCancelTestFlow={flowPreviewContent?.cancelTest}
1082
+ onOpenPreview={flowPreviewButtons?.openPreview}
1083
+ onHideJobStatus={resetModulesStates}
1084
+ flowJob={job}
1085
+ {showJobStatus}
1086
+ onDelete={(id) => {
1087
+ delete localModuleStates[id]
1088
+ delete modulesTestStates.states[id]
1089
+ }}
1090
+ {flowHasChanged}
1091
+ controlsPosition="bottom"
1092
+ />
1093
+ {:else}
1094
+ <div class="text-red-400 mt-20">Missing flow modules</div>
1095
+ {/if}
1096
+ </div></Pane
1097
+ >
1098
+
779
1099
  <Pane size={33}>
780
- {#key reload}
781
- <FlowEditorPanel
782
- enableAi
783
- noEditor
784
- on:applyArgs={(ev) => {
785
- if (ev.detail.kind === 'preprocessor') {
786
- stepsInputArgs.setStepArgs('preprocessor', ev.detail.args ?? {})
787
- selectionManager.selectId('preprocessor')
788
- } else {
789
- previewArgsStore.val = ev.detail.args ?? {}
790
- flowPreviewButtons?.openPreview()
791
- }
792
- }}
793
- onTestFlow={flowPreviewButtons?.runPreview}
794
- {job}
795
- isOwner={flowPreviewContent?.getIsOwner()}
796
- {suspendStatus}
797
- onOpenDetails={flowPreviewButtons?.openPreview}
798
- previewOpen={flowPreviewButtons?.getPreviewOpen()}
799
- />
800
- {/key}
1100
+ <div class="h-full w-full pl-0.5">
1101
+ {#if selectedModule}
1102
+ <div
1103
+ class="flex items-center gap-2 px-3 py-1.5 border-b border-border bg-surface shrink-0"
1104
+ >
1105
+ <span class="text-xs text-secondary shrink-0">{selectedModule.id} summary</span>
1106
+ <TextInput
1107
+ inputProps={{ placeholder: 'Summary' }}
1108
+ bind:value={selectedModule.summary}
1109
+ />
1110
+ </div>
1111
+ {/if}
1112
+ {#key reload}
1113
+ <FlowEditorPanel
1114
+ enableAi
1115
+ noEditor
1116
+ on:applyArgs={(ev) => {
1117
+ if (ev.detail.kind === 'preprocessor') {
1118
+ stepsInputArgs.setStepArgs('preprocessor', ev.detail.args ?? {})
1119
+ selectionManager.selectId('preprocessor')
1120
+ } else {
1121
+ previewArgsStore.val = ev.detail.args ?? {}
1122
+ flowPreviewButtons?.openPreview()
1123
+ }
1124
+ }}
1125
+ onTestFlow={flowPreviewButtons?.runPreview}
1126
+ {job}
1127
+ isOwner={flowPreviewContent?.getIsOwner()}
1128
+ {suspendStatus}
1129
+ onOpenDetails={flowPreviewButtons?.openPreview}
1130
+ previewOpen={flowPreviewButtons?.getPreviewOpen()}
1131
+ />
1132
+ {/key}
1133
+ </div>
801
1134
  </Pane>
802
1135
  </Splitpanes>
803
1136
  </div>
@@ -700,6 +700,10 @@ let dndType = $state(generateRandomString());
700
700
  bind:properties={schema.properties[argName].properties}
701
701
  bind:order={schema.properties[argName].order}
702
702
  bind:requiredProperty={schema.properties[argName].required}
703
+ bind:hideCatalogPicker={
704
+ schema.properties[argName].hideCatalogPicker
705
+ }
706
+ bind:hideRawInput={schema.properties[argName].hideRawInput}
703
707
  {displayWebhookWarning}
704
708
  on:requiredChange={(event) => {
705
709
  if (event.detail.required) {
@@ -1269,7 +1269,7 @@ export async function fetchPackageDeps(deps) {
1269
1269
  let customTsTypesData = resource([() => lang], async () => {
1270
1270
  if (lang !== 'typescript')
1271
1271
  return undefined;
1272
- let datatables = await WorkspaceService.listDataTables({ workspace: $workspaceStore ?? '' });
1272
+ let datatables = (await WorkspaceService.listDataTables({ workspace: $workspaceStore ?? '' })).map((d) => d.name);
1273
1273
  let ducklakes = await WorkspaceService.listDucklakes({ workspace: $workspaceStore ?? '' });
1274
1274
  return { datatables, ducklakes };
1275
1275
  });
@@ -678,7 +678,7 @@ JsonNode ${windmillPathToCamelCaseName(path)} = JsonNode.Parse(await client.GetS
678
678
  itemName="data table"
679
679
  loadItems={async () =>
680
680
  (await WorkspaceService.listDataTables({ workspace: $workspaceStore ?? 'NO_W' })).map(
681
- (path) => ({ path })
681
+ (d) => ({ path: d.name })
682
682
  )}
683
683
  >
684
684
  {#snippet submission()}
@@ -15,7 +15,7 @@ interface Props {
15
15
  iconOnly?: boolean;
16
16
  validCode?: boolean;
17
17
  kind?: 'script' | 'trigger' | 'approval';
18
- template?: 'pgsql' | 'mysql' | 'script' | 'docker' | 'powershell' | 'bunnative' | 'claudesandbox' | 'wac_python' | 'wac_typescript';
18
+ template?: 'pgsql' | 'mysql' | 'script' | 'docker' | 'powershell' | 'bunnative' | 'claudesandbox' | 'wac_python' | 'wac_typescript' | 'ci_test_bun' | 'ci_test_python';
19
19
  collabMode?: boolean;
20
20
  collabLive?: boolean;
21
21
  collabUsers?: {
@@ -58,7 +58,7 @@ let connectionTestJob = $state();
58
58
  const EMAIL_RECIPIENTS_KEY = 'email_recipients';
59
59
  const CHANNEL_KEY = 'channel';
60
60
  async function loadSlackResources() {
61
- const settings = await WorkspaceService.getSettings({ workspace: $workspaceStore });
61
+ const settings = await WorkspaceService.getPublicSettings({ workspace: $workspaceStore });
62
62
  if (!emptyString(settings.slack_name) && !emptyString(settings.slack_team_id)) {
63
63
  workspaceConnectedToSlack = true;
64
64
  slack_team_name = settings.slack_name;
@@ -69,7 +69,7 @@ async function loadSlackResources() {
69
69
  }
70
70
  }
71
71
  async function loadTeamsResources() {
72
- const settings = await WorkspaceService.getSettings({ workspace: $workspaceStore });
72
+ const settings = await WorkspaceService.getPublicSettings({ workspace: $workspaceStore });
73
73
  if (!emptyString(settings.teams_team_name) && !emptyString(settings.teams_team_id)) {
74
74
  workspaceConnectedToTeams = true;
75
75
  }