windmill-components 1.623.2 → 1.642.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 (599) hide show
  1. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +2 -0
  2. package/dist/sharedUtils/base.d.ts +1 -0
  3. package/dist/sharedUtils/cloud.d.ts +1 -0
  4. package/dist/sharedUtils/common.d.ts +111 -0
  5. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +5 -0
  6. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +5 -0
  7. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
  8. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +13 -0
  9. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +11 -0
  10. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +95 -0
  11. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +6 -0
  12. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +7 -0
  13. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +33 -0
  14. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +10 -0
  15. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +5371 -0
  16. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +3 -0
  17. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +3 -0
  18. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +7 -0
  19. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
  20. package/dist/sharedUtils/components/apps/gridUtils.d.ts +14 -0
  21. package/dist/sharedUtils/components/apps/inputType.d.ts +178 -0
  22. package/dist/sharedUtils/components/apps/rx.d.ts +29 -0
  23. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +21 -0
  24. package/dist/sharedUtils/components/apps/types.d.ts +274 -0
  25. package/dist/sharedUtils/components/assets/lib.d.ts +25 -0
  26. package/dist/sharedUtils/components/common/alert/model.d.ts +2 -0
  27. package/dist/sharedUtils/components/common/badge/model.d.ts +8 -0
  28. package/dist/sharedUtils/components/common/button/model.d.ts +45 -0
  29. package/dist/sharedUtils/components/common/fileInput/model.d.ts +1 -0
  30. package/dist/sharedUtils/components/common/index.d.ts +24 -0
  31. package/dist/sharedUtils/components/common/skeleton/model.d.ts +21 -0
  32. package/dist/sharedUtils/components/dbTypes.d.ts +14 -0
  33. package/dist/sharedUtils/components/diff_drawer.d.ts +26 -0
  34. package/dist/sharedUtils/components/ducklake.d.ts +1 -0
  35. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +7 -0
  36. package/dist/sharedUtils/components/icons/index.d.ts +101 -0
  37. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +1 -0
  38. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +10 -0
  39. package/dist/sharedUtils/components/raw_apps/utils.d.ts +15 -0
  40. package/dist/sharedUtils/components/triggers/email/utils.d.ts +4 -0
  41. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +2 -0
  42. package/dist/sharedUtils/components/triggers/http/utils.d.ts +11 -0
  43. package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +2 -0
  44. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +2 -0
  45. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +2 -0
  46. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +8 -0
  47. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +2 -0
  48. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +32 -0
  49. package/dist/sharedUtils/components/triggers/utils.d.ts +80 -0
  50. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +2 -0
  51. package/dist/sharedUtils/components/triggers.d.ts +20 -0
  52. package/dist/sharedUtils/gen/core/ApiError.d.ts +10 -0
  53. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +13 -0
  54. package/dist/sharedUtils/gen/core/ApiResult.d.ts +7 -0
  55. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +26 -0
  56. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +27 -0
  57. package/dist/sharedUtils/gen/core/request.d.ts +29 -0
  58. package/dist/sharedUtils/gen/index.d.ts +6 -0
  59. package/dist/sharedUtils/gen/schemas.gen.d.ts +7036 -0
  60. package/dist/sharedUtils/gen/services.gen.d.ts +6047 -0
  61. package/dist/sharedUtils/gen/types.gen.d.ts +21881 -0
  62. package/dist/sharedUtils/history.svelte.d.ts +9 -0
  63. package/dist/sharedUtils/hub.d.ts +49 -0
  64. package/dist/sharedUtils/jsr.json +6 -0
  65. package/dist/sharedUtils/lib.d.ts +5 -0
  66. package/dist/sharedUtils/lib.es.js +1588 -0
  67. package/dist/sharedUtils/package.json +12 -0
  68. package/dist/sharedUtils/schema.d.ts +3 -0
  69. package/dist/sharedUtils/stores.d.ts +97 -0
  70. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +80 -0
  71. package/dist/sharedUtils/toast.d.ts +8 -0
  72. package/dist/sharedUtils/utils.d.ts +265 -0
  73. package/package/assets/app.css +32 -13
  74. package/package/components/AIAgentLogViewer.svelte +2 -2
  75. package/package/components/AIAgentLogViewer.svelte.d.ts +1 -0
  76. package/package/components/AIProviderPicker.svelte +20 -80
  77. package/package/components/AIProviderPicker.svelte.d.ts +2 -7
  78. package/package/components/AddUser.svelte +2 -2
  79. package/package/components/ApiConnectForm.svelte +7 -1
  80. package/package/components/AppConnectInner.svelte.d.ts +1 -1
  81. package/package/components/ArgInput.svelte +15 -5
  82. package/package/components/ArgInput.svelte.d.ts +3 -4
  83. package/package/components/Auth0Setting.svelte +6 -2
  84. package/package/components/AuthSettings.svelte +68 -39
  85. package/package/components/AuthSettings.svelte.d.ts +3 -1
  86. package/package/components/AutheliaSetting.svelte +3 -2
  87. package/package/components/AuthentikSetting.svelte +3 -2
  88. package/package/components/AutoscalingConfigEditor.svelte +2 -1
  89. package/package/components/AutoscalingConfigEditor.svelte.d.ts +1 -0
  90. package/package/components/CenteredModal.svelte +14 -4
  91. package/package/components/CenteredModal.svelte.d.ts +1 -0
  92. package/package/components/ChangeInstanceUsernameInner.svelte +1 -1
  93. package/package/components/CompareWorkspaces.svelte +29 -57
  94. package/package/components/ConcurrentJobsChart.svelte +1 -1
  95. package/package/components/ConnectionSection.svelte +69 -73
  96. package/package/components/CustomSso.svelte +7 -7
  97. package/package/components/DBManager.svelte +15 -4
  98. package/package/components/DBManager.svelte.d.ts +2 -0
  99. package/package/components/DBManagerContent.svelte +5 -0
  100. package/package/components/DBManagerContent.svelte.d.ts +1 -0
  101. package/package/components/DBManagerDrawer.svelte +2 -0
  102. package/package/components/DatatablePicker.svelte +29 -0
  103. package/package/components/DatatablePicker.svelte.d.ts +13 -0
  104. package/package/components/DateTimeInput.svelte +3 -3
  105. package/package/components/DedicatedWorkersSelector.svelte +39 -42
  106. package/package/components/DeployToSetting.svelte +183 -123
  107. package/package/components/DeployToSetting.svelte.d.ts +19 -28
  108. package/package/components/DeployWorkspace.svelte +6 -44
  109. package/package/components/DeployWorkspace.svelte.d.ts +2 -1
  110. package/package/components/DeployWorkspaceDrawer.svelte +18 -7
  111. package/package/components/DeployWorkspaceDrawer.svelte.d.ts +3 -20
  112. package/package/components/Description.svelte +3 -1
  113. package/package/components/Dev.svelte +1 -0
  114. package/package/components/DiffEditor.svelte +7 -6
  115. package/package/components/DiffEditor.svelte.d.ts +2 -6
  116. package/package/components/DisplayResult.svelte +2 -2
  117. package/package/components/DropdownMenu.svelte +39 -0
  118. package/package/components/DropdownMenu.svelte.d.ts +14 -0
  119. package/package/components/DropdownSubmenuItem.svelte +68 -0
  120. package/package/components/DropdownSubmenuItem.svelte.d.ts +10 -0
  121. package/package/components/DropdownV2.svelte +3 -3
  122. package/package/components/DropdownV2Inner.svelte +42 -34
  123. package/package/components/DropdownV2Inner.svelte.d.ts +2 -1
  124. package/package/components/DucklakePicker.svelte +2 -5
  125. package/package/components/EEOnly.svelte +4 -14
  126. package/package/components/EEOnly.svelte.d.ts +0 -1
  127. package/package/components/Editor.svelte +2 -2
  128. package/package/components/Editor.svelte.d.ts +1 -0
  129. package/package/components/EditorBar.svelte +2 -4
  130. package/package/components/ErrorOrRecoveryHandler.svelte +62 -53
  131. package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +1 -0
  132. package/package/components/ExploreAssetButton.svelte +1 -2
  133. package/package/components/FileExplorer.svelte +249 -0
  134. package/package/components/FileExplorer.svelte.d.ts +21 -0
  135. package/package/components/FilesetEditor.svelte +103 -0
  136. package/package/components/FilesetEditor.svelte.d.ts +6 -0
  137. package/package/components/FilterSearchbar.svelte +628 -0
  138. package/package/components/FilterSearchbar.svelte.d.ts +86 -0
  139. package/package/components/FlowBuilder.svelte +123 -79
  140. package/package/components/FlowGraphViewerStep.svelte +49 -33
  141. package/package/components/FlowHistoryJobPicker.svelte +2 -1
  142. package/package/components/FlowJobResult.svelte +31 -23
  143. package/package/components/FlowJobResult.svelte.d.ts +0 -1
  144. package/package/components/FlowLogRow.svelte +1 -1
  145. package/package/components/FlowLogViewer.svelte +8 -3
  146. package/package/components/FlowPreviewContent.svelte +65 -49
  147. package/package/components/FlowPreviewContent.svelte.d.ts +4 -0
  148. package/package/components/FlowRestartButton.svelte +47 -47
  149. package/package/components/FlowRestartButton.svelte.d.ts +2 -0
  150. package/package/components/FlowStatusViewer.svelte +2 -3
  151. package/package/components/FlowStatusViewer.svelte.d.ts +1 -0
  152. package/package/components/FlowStatusViewerInner.svelte +380 -297
  153. package/package/components/FlowStatusViewerInner.svelte.d.ts +2 -2
  154. package/package/components/FlowStatusWaitingForEvents.svelte +11 -10
  155. package/package/components/FolderPicker.svelte +195 -65
  156. package/package/components/FolderPicker.svelte.d.ts +2 -0
  157. package/package/components/HistoricInputs.svelte +3 -4
  158. package/package/components/IconedResourceType.svelte +8 -2
  159. package/package/components/IconedResourceType.svelte.d.ts +2 -0
  160. package/package/components/InputError.svelte +9 -0
  161. package/package/components/InputError.svelte.d.ts +6 -0
  162. package/package/components/InputTransformForm.svelte +46 -39
  163. package/package/components/InputTransformForm.svelte.d.ts +1 -0
  164. package/package/components/InputTransformSchemaForm.svelte +2 -1
  165. package/package/components/InputTransformSchemaForm.svelte.d.ts +1 -0
  166. package/package/components/InputTransformsViewer.svelte +37 -20
  167. package/package/components/InstanceNameEditor.svelte +3 -1
  168. package/package/components/InstanceSetting.svelte +150 -374
  169. package/package/components/InstanceSetting.svelte.d.ts +1 -0
  170. package/package/components/InstanceSettings.svelte +804 -193
  171. package/package/components/InstanceSettings.svelte.d.ts +17 -2
  172. package/package/components/IntegerInput.svelte +58 -0
  173. package/package/components/IntegerInput.svelte.d.ts +14 -0
  174. package/package/components/InviteGlobalUser.svelte +25 -25
  175. package/package/components/InviteGlobalUser.svelte.d.ts +4 -2
  176. package/package/components/JobArgs.svelte +14 -10
  177. package/package/components/JobLoader.svelte +6 -4
  178. package/package/components/JobLoader.svelte.d.ts +2 -2
  179. package/package/components/JobStatus.svelte +29 -26
  180. package/package/components/JobStatus.svelte.d.ts +1 -0
  181. package/package/components/KanidmSetting.svelte +3 -2
  182. package/package/components/KeycloakSetting.svelte +3 -2
  183. package/package/components/Login.svelte +9 -3
  184. package/package/components/ModuleStatus.svelte +5 -5
  185. package/package/components/ModuleTest.svelte +3 -3
  186. package/package/components/MoveDrawer.svelte +47 -76
  187. package/package/components/MoveDrawer.svelte.d.ts +4 -6
  188. package/package/components/NextcloudSetting.svelte +3 -2
  189. package/package/components/NoDirectDeployAlert.svelte +31 -0
  190. package/package/components/NoDirectDeployAlert.svelte.d.ts +6 -0
  191. package/package/components/NumberTypeNarrowing.svelte +65 -67
  192. package/package/components/NumberTypeNarrowing.svelte.d.ts +2 -1
  193. package/package/components/OAuthSetting.svelte +6 -14
  194. package/package/components/ObjectStoreConfigSettings.svelte +150 -55
  195. package/package/components/ObjectStoreConfigSettings.svelte.d.ts +34 -44
  196. package/package/components/OktaSetting.svelte +3 -2
  197. package/package/components/PageHeader.svelte +1 -1
  198. package/package/components/ParentWorkspaceProtectionAlert.svelte +48 -0
  199. package/package/components/ParentWorkspaceProtectionAlert.svelte.d.ts +7 -0
  200. package/package/components/Path.svelte +40 -28
  201. package/package/components/Path.svelte.d.ts +3 -0
  202. package/package/components/PocketIdSetting.svelte +3 -2
  203. package/package/components/ResourceEditor.svelte +9 -3
  204. package/package/components/ResourcePicker.svelte +2 -5
  205. package/package/components/RightClickPopover.svelte +37 -0
  206. package/package/components/RightClickPopover.svelte.d.ts +11 -0
  207. package/package/components/RunChart.svelte +2 -21
  208. package/package/components/RunChart.svelte.d.ts +0 -3
  209. package/package/components/RunsPage.svelte +458 -560
  210. package/package/components/SaveButton.svelte +78 -0
  211. package/package/components/SaveButton.svelte.d.ts +12 -0
  212. package/package/components/SaveInputsButton.svelte +1 -1
  213. package/package/components/SavedInputsV2.svelte +1 -3
  214. package/package/components/SchemaFormWithArgPicker.svelte +34 -30
  215. package/package/components/SchemaFormWithArgPicker.svelte.d.ts +12 -21
  216. package/package/components/SchemaViewer.svelte +56 -53
  217. package/package/components/ScriptBuilder.svelte +12 -12
  218. package/package/components/ScriptEditor.svelte +30 -28
  219. package/package/components/Section.svelte +2 -2
  220. package/package/components/ServiceLogsInner.svelte +21 -82
  221. package/package/components/Star.svelte +8 -22
  222. package/package/components/Star.svelte.d.ts +4 -4
  223. package/package/components/StringTypeNarrowing.svelte +1 -0
  224. package/package/components/SummaryPathDisplay.svelte +177 -0
  225. package/package/components/SummaryPathDisplay.svelte.d.ts +10 -0
  226. package/package/components/SuperadminSettings.svelte +185 -4
  227. package/package/components/SuperadminSettings.svelte.d.ts +4 -1
  228. package/package/components/SuperadminSettingsInner.svelte +307 -192
  229. package/package/components/SuperadminSettingsInner.svelte.d.ts +12 -1
  230. package/package/components/TaggedTextInput.svelte +449 -0
  231. package/package/components/TaggedTextInput.svelte.d.ts +28 -0
  232. package/package/components/Toast.svelte +69 -51
  233. package/package/components/Toast.svelte.d.ts +2 -2
  234. package/package/components/Tooltip.svelte +2 -2
  235. package/package/components/Tooltip.svelte.d.ts +2 -0
  236. package/package/components/TooltipInner.svelte +6 -1
  237. package/package/components/TooltipInner.svelte.d.ts +1 -0
  238. package/package/components/Uptodate.svelte +3 -2
  239. package/package/components/UserSettings.svelte +2 -2
  240. package/package/components/UserSettings.svelte.d.ts +1 -0
  241. package/package/components/WorkerGroup.svelte +320 -192
  242. package/package/components/WorkerGroup.svelte.d.ts +2 -0
  243. package/package/components/WorkspaceDependenciesEditor.svelte +33 -17
  244. package/package/components/ZitadelSetting.svelte +3 -2
  245. package/package/components/aiProviderStorage.d.ts +5 -0
  246. package/package/components/aiProviderStorage.js +50 -0
  247. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +24 -13
  248. package/package/components/apps/components/display/dbtable/metadata.d.ts +1 -0
  249. package/package/components/apps/components/display/dbtable/metadata.js +1 -0
  250. package/package/components/apps/components/display/dbtable/queries/count.js +3 -1
  251. package/package/components/apps/components/display/dbtable/queries/delete.js +3 -1
  252. package/package/components/apps/components/display/dbtable/queries/insert.js +3 -1
  253. package/package/components/apps/components/display/dbtable/queries/select.js +15 -1
  254. package/package/components/apps/components/display/dbtable/queries/update.js +3 -1
  255. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +6 -0
  256. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
  257. package/package/components/apps/components/display/table/AppAggridTable.svelte +7 -0
  258. package/package/components/apps/components/display/table/AppAggridTableActions.svelte +9 -3
  259. package/package/components/apps/components/display/table/AppAggridTableActions.svelte.d.ts +1 -0
  260. package/package/components/apps/components/display/table/theme/windmill-theme.css +8 -7
  261. package/package/components/apps/components/helpers/eval.js +5 -2
  262. package/package/components/apps/components/layout/AppModal.svelte +2 -1
  263. package/package/components/apps/components/layout/AppModal.svelte.d.ts +1 -0
  264. package/package/components/apps/editor/appPolicy.js +5 -4
  265. package/package/components/apps/editor/appUtils.d.ts +1 -1
  266. package/package/components/apps/editor/component/components.d.ts +11 -0
  267. package/package/components/apps/editor/component/components.js +19 -2
  268. package/package/components/apps/editor/componentsPanel/CssProperty.svelte +3 -1
  269. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -1
  270. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +1 -1
  271. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +1 -1
  272. package/package/components/apps/editor/settingsPanel/StylePanel.svelte +66 -29
  273. package/package/components/apps/editor/settingsPanel/StylePanel.svelte.d.ts +2 -17
  274. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +10 -0
  275. package/package/components/apps/inputType.d.ts +2 -2
  276. package/package/components/assets/AssetButtons.svelte +3 -7
  277. package/package/components/assets/AssetButtons.svelte.d.ts +2 -4
  278. package/package/components/assets/AssetColumnBadges.svelte +35 -0
  279. package/package/components/assets/AssetColumnBadges.svelte.d.ts +10 -0
  280. package/package/components/assets/AssetsDropdownButton.svelte +8 -6
  281. package/package/components/assets/AssetsUsageDrawer.svelte +16 -14
  282. package/package/components/assets/JobAssetsViewer.svelte +4 -6
  283. package/package/components/assets/assetsFilter.d.ts +50 -0
  284. package/package/components/assets/assetsFilter.js +43 -0
  285. package/package/components/assets/lib.d.ts +3 -2
  286. package/package/components/assets/lib.js +8 -1
  287. package/package/components/auditLogs/AuditLogsFilters.svelte +30 -1
  288. package/package/components/common/InlineCalendarInput.svelte +580 -0
  289. package/package/components/common/InlineCalendarInput.svelte.d.ts +31 -0
  290. package/package/components/common/alert/Alert.svelte +2 -8
  291. package/package/components/common/alert/model.d.ts +1 -0
  292. package/package/components/common/alert/model.js +7 -0
  293. package/package/components/common/badge/Badge.svelte +7 -3
  294. package/package/components/common/badge/Badge.svelte.d.ts +1 -0
  295. package/package/components/common/breadcrumb/Breadcrumb.svelte +10 -14
  296. package/package/components/common/breadcrumb/Breadcrumb.svelte.d.ts +8 -23
  297. package/package/components/common/drawer/DrawerContent.svelte +1 -1
  298. package/package/components/common/seconds/SecondsInput.svelte +158 -67
  299. package/package/components/common/seconds/SecondsInput.svelte.d.ts +9 -21
  300. package/package/components/common/sidebar/SidebarNavigation.svelte +50 -0
  301. package/package/components/common/sidebar/SidebarNavigation.svelte.d.ts +25 -0
  302. package/package/components/common/table/AppRow.svelte +7 -10
  303. package/package/components/common/table/AppRow.svelte.d.ts +2 -2
  304. package/package/components/common/table/FlowRow.svelte +12 -15
  305. package/package/components/common/table/FlowRow.svelte.d.ts +2 -2
  306. package/package/components/common/table/RawAppRow.svelte +5 -82
  307. package/package/components/common/table/RawAppRow.svelte.d.ts +2 -23
  308. package/package/components/common/table/Row.svelte +2 -2
  309. package/package/components/common/table/Row.svelte.d.ts +0 -2
  310. package/package/components/common/table/ScriptRow.svelte +8 -11
  311. package/package/components/common/table/ScriptRow.svelte.d.ts +2 -2
  312. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +1 -1
  313. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -1
  314. package/package/components/copilot/TestAIKey.svelte +1 -1
  315. package/package/components/copilot/chat/AIChatInput.svelte +22 -11
  316. package/package/components/copilot/chat/AIChatManager.svelte.js +15 -17
  317. package/package/components/copilot/chat/AvailableContextList.svelte +215 -12
  318. package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +1 -0
  319. package/package/components/copilot/chat/ContextTextarea.svelte +15 -2
  320. package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +1 -1
  321. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +4 -2
  322. package/package/components/copilot/chat/app/core.js +7 -86
  323. package/package/components/copilot/chat/context.js +4 -1
  324. package/package/components/copilot/chat/flow/core.js +193 -61
  325. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  326. package/package/components/copilot/chat/flow/openFlowZod.d.ts +2 -2
  327. package/package/components/copilot/chat/flow/openFlowZod.js +6 -8
  328. package/package/components/copilot/chat/navigator/core.d.ts +2 -2
  329. package/package/components/copilot/chat/navigator/core.js +11 -2
  330. package/package/components/copilot/chat/script/core.js +4 -1
  331. package/package/components/copilot/chat/shared.d.ts +53 -1
  332. package/package/components/copilot/chat/shared.js +227 -1
  333. package/package/components/copilot/lib.js +42 -0
  334. package/package/components/dedicated_worker.d.ts +7 -0
  335. package/package/components/dedicated_worker.js +36 -0
  336. package/package/components/details/DetailPageHeader.svelte +8 -23
  337. package/package/components/details/DetailPageHeader.svelte.d.ts +1 -0
  338. package/package/components/details/DetailPageLayout.svelte +1 -1
  339. package/package/components/details/createAppFromScript.d.ts +136 -16
  340. package/package/components/details/createAppFromScript.js +13 -12
  341. package/package/components/diffEditorTypes.d.ts +6 -0
  342. package/package/components/diffEditorTypes.js +1 -0
  343. package/package/components/flows/CreateActionsApp.svelte +32 -82
  344. package/package/components/flows/CreateActionsFlow.svelte +28 -28
  345. package/package/components/flows/FlowAssetsHandler.svelte +1 -4
  346. package/package/components/flows/FlowProgressBar.svelte +37 -1
  347. package/package/components/flows/FlowProgressBar.svelte.d.ts +3 -0
  348. package/package/components/flows/agentToolUtils.d.ts +18 -0
  349. package/package/components/flows/agentToolUtils.js +47 -0
  350. package/package/components/flows/common/FlowCardHeader.svelte +8 -9
  351. package/package/components/flows/content/FlowEnvironmentVariables.svelte +3 -2
  352. package/package/components/flows/content/FlowLoop.svelte +3 -4
  353. package/package/components/flows/content/FlowModuleCache.svelte +1 -3
  354. package/package/components/flows/content/FlowModuleComponent.svelte +22 -6
  355. package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
  356. package/package/components/flows/content/FlowResult.svelte +77 -25
  357. package/package/components/flows/content/FlowRetries.svelte +1 -1
  358. package/package/components/flows/content/FlowSettings.svelte +4 -7
  359. package/package/components/flows/flowState.js +6 -0
  360. package/package/components/flows/flowStateUtils.svelte.js +4 -1
  361. package/package/components/flows/flowStore.svelte.d.ts +1 -1
  362. package/package/components/flows/flowStore.svelte.js +4 -2
  363. package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
  364. package/package/components/flows/header/FlowYamlEditor.svelte +2 -2
  365. package/package/components/flows/map/FlowModuleSchemaMap.svelte +12 -6
  366. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +2 -2
  367. package/package/components/flows/map/InsertModuleInner.svelte +7 -0
  368. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
  369. package/package/components/flows/missingInputWarnings.js +7 -0
  370. package/package/components/flows/pickers/PickHubScriptQuick.svelte +4 -4
  371. package/package/components/flows/propPicker/OutputPicker.svelte +1 -1
  372. package/package/components/flows/propPicker/PropPickerWrapper.svelte +6 -9
  373. package/package/components/flows/propPicker/PropPickerWrapper.svelte.d.ts +3 -3
  374. package/package/components/flows/scheduleUtils.js +2 -2
  375. package/package/components/flows/types.d.ts +1 -3
  376. package/package/components/flows/utils.svelte.js +5 -1
  377. package/package/components/git_sync/GitSyncRepositoryCard.svelte +23 -21
  378. package/package/components/git_sync/GitSyncSection.svelte +24 -27
  379. package/package/components/graph/FlowGraphV2.svelte +1 -1
  380. package/package/components/graph/graphBuilder.svelte.d.ts +3 -1
  381. package/package/components/graph/model.d.ts +1 -1
  382. package/package/components/graph/renderers/nodes/AIToolNode.svelte +3 -1
  383. package/package/components/graph/renderers/nodes/AssetNode.svelte +25 -13
  384. package/package/components/graph/renderers/nodes/AssetsOverflowedNode.svelte +1 -1
  385. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +8 -0
  386. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +5 -2
  387. package/package/components/home/Item.svelte +9 -15
  388. package/package/components/home/Item.svelte.d.ts +8 -7
  389. package/package/components/home/ItemsList.svelte +4 -10
  390. package/package/components/home/ItemsList.svelte.d.ts +1 -0
  391. package/package/components/icons/GoogleCalendarIcon.svelte +41 -0
  392. package/package/components/icons/GoogleCalendarIcon.svelte.d.ts +7 -0
  393. package/package/components/icons/GoogleDriveIcon.svelte +30 -0
  394. package/package/components/icons/GoogleDriveIcon.svelte.d.ts +7 -0
  395. package/package/components/icons/GoogleIcon.svelte +15 -6
  396. package/package/components/icons/GoogleIcon.svelte.d.ts +5 -2
  397. package/package/components/icons/MSSqlServerIcon.svelte +111 -47
  398. package/package/components/instanceSettings/IndexerJobIndexSettings.svelte +94 -0
  399. package/package/components/instanceSettings/IndexerJobIndexSettings.svelte.d.ts +9 -0
  400. package/package/components/instanceSettings/IndexerLogIndexSettings.svelte +67 -0
  401. package/package/components/instanceSettings/IndexerLogIndexSettings.svelte.d.ts +9 -0
  402. package/package/components/instanceSettings/IndexerMemorySettings.svelte +109 -0
  403. package/package/components/instanceSettings/IndexerMemorySettings.svelte.d.ts +9 -0
  404. package/package/components/instanceSettings/SecretBackendConfig.svelte +15 -16
  405. package/package/components/instanceSettings/SettingCard.svelte +47 -0
  406. package/package/components/instanceSettings/SettingCard.svelte.d.ts +19 -0
  407. package/package/components/instanceSettings/SettingsSearchInput.svelte +66 -0
  408. package/package/components/instanceSettings/SettingsSearchInput.svelte.d.ts +9 -0
  409. package/package/components/instanceSettings.d.ts +52 -0
  410. package/package/components/instanceSettings.js +413 -69
  411. package/package/components/meltComponents/MenuItem.svelte +1 -0
  412. package/package/components/meltComponents/Popover.svelte +10 -1
  413. package/package/components/meltComponents/Popover.svelte.d.ts +2 -0
  414. package/package/components/meltComponents/Tooltip.svelte +2 -1
  415. package/package/components/meltComponents/Tooltip.svelte.d.ts +1 -0
  416. package/package/components/moveRenameManager.d.ts +21 -0
  417. package/package/components/moveRenameManager.js +61 -0
  418. package/package/components/progressBar/ProgressBar.svelte +69 -27
  419. package/package/components/progressBar/ProgressBar.svelte.d.ts +7 -0
  420. package/package/components/prop_picker.d.ts +0 -3
  421. package/package/components/propertyPicker/PropPicker.svelte +34 -49
  422. package/package/components/propertyPicker/PropPicker.svelte.d.ts +12 -11
  423. package/package/components/raw_apps/FileTreeNode.svelte +1 -0
  424. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +3 -2
  425. package/package/components/raw_apps/RawAppEditor.svelte +20 -16
  426. package/package/components/raw_apps/RawAppEditor.svelte.d.ts +4 -4
  427. package/package/components/raw_apps/RawAppEditorHeader.svelte +73 -7
  428. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -1
  429. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +1 -2
  430. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +41 -1
  431. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +0 -1
  432. package/package/components/raw_apps/RawAppSidebar.svelte +32 -284
  433. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -1
  434. package/package/components/raw_apps/RunnableRow.svelte +88 -34
  435. package/package/components/raw_apps/RunnableRow.svelte.d.ts +4 -0
  436. package/package/components/resources/resourcesFilter.d.ts +70 -0
  437. package/package/components/resources/resourcesFilter.js +61 -0
  438. package/package/components/runs/BatchReRunOptionsPane.svelte +130 -121
  439. package/package/components/runs/BatchReRunOptionsPane.svelte.d.ts +3 -2
  440. package/package/components/runs/FlowExecutionStatus.svelte +30 -0
  441. package/package/components/runs/FlowExecutionStatus.svelte.d.ts +15 -0
  442. package/package/components/runs/JobDetailFieldConfig.d.ts +47 -0
  443. package/package/components/runs/JobDetailFieldConfig.js +433 -0
  444. package/package/components/runs/JobDetailHeader.svelte +551 -0
  445. package/package/components/runs/JobDetailHeader.svelte.d.ts +17 -0
  446. package/package/components/runs/JobRunsPreview.svelte +174 -218
  447. package/package/components/runs/JobRunsPreview.svelte.d.ts +0 -1
  448. package/package/components/runs/JobStatusIcon.svelte +47 -0
  449. package/package/components/runs/JobStatusIcon.svelte.d.ts +9 -0
  450. package/package/components/runs/RunBadges.svelte +39 -34
  451. package/package/components/runs/RunBadges.svelte.d.ts +2 -1
  452. package/package/components/runs/RunRow.svelte +24 -64
  453. package/package/components/runs/RunRow.svelte.d.ts +1 -2
  454. package/package/components/runs/RunsTable.svelte +312 -131
  455. package/package/components/runs/RunsTable.svelte.d.ts +4 -3
  456. package/package/components/runs/TimeframeSelect.svelte +189 -0
  457. package/package/components/runs/TimeframeSelect.svelte.d.ts +44 -0
  458. package/package/components/runs/runsFilter.d.ts +201 -0
  459. package/package/components/runs/runsFilter.js +182 -0
  460. package/package/components/runs/useJobsLoader.svelte.d.ts +5 -7
  461. package/package/components/runs/useJobsLoader.svelte.js +27 -30
  462. package/package/components/schedules/schedulesFilter.d.ts +65 -0
  463. package/package/components/schedules/schedulesFilter.js +60 -0
  464. package/package/components/schema/EditableSchemaWrapper.svelte +43 -22
  465. package/package/components/schema/EditableSchemaWrapper.svelte.d.ts +1 -1
  466. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  467. package/package/components/schema/PropertyEditor.svelte +1 -0
  468. package/package/components/schema/RunningJobSchemaPicker.svelte +1 -1
  469. package/package/components/schema/editable_schema_wrapper.d.ts +1 -0
  470. package/package/components/scripts/CreateActionsScript.svelte +0 -1
  471. package/package/components/search/GlobalSearchModal.svelte +1 -8
  472. package/package/components/select/GenericDropdown.svelte +113 -0
  473. package/package/components/select/GenericDropdown.svelte.d.ts +37 -0
  474. package/package/components/select/Select.svelte +17 -4
  475. package/package/components/select/Select.svelte.d.ts +2 -1
  476. package/package/components/select/SelectDropdown.svelte +76 -155
  477. package/package/components/select/SelectDropdown.svelte.d.ts +4 -1
  478. package/package/components/settings/ChangeWorkspaceColor.svelte +7 -8
  479. package/package/components/settings/ChangeWorkspaceId.svelte +4 -6
  480. package/package/components/settings/ChangeWorkspaceName.svelte +6 -8
  481. package/package/components/settings/PremiumInfo.svelte +268 -128
  482. package/package/components/settings/SettingsPageHeader.svelte +22 -0
  483. package/package/components/settings/SettingsPageHeader.svelte.d.ts +10 -0
  484. package/package/components/settings/WorkspaceUserSettings.svelte +13 -23
  485. package/package/components/sidebar/CriticalAlertModalInner.svelte +28 -22
  486. package/package/components/sidebar/CriticalAlertModalInner.svelte.d.ts +5 -20
  487. package/package/components/sidebar/DarkModeToggle.svelte +2 -2
  488. package/package/components/sidebar/FavoriteMenu.svelte +101 -20
  489. package/package/components/sidebar/FavoriteMenu.svelte.d.ts +29 -1
  490. package/package/components/sidebar/MenuButton.svelte +10 -7
  491. package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
  492. package/package/components/sidebar/MenuLink.svelte +4 -3
  493. package/package/components/sidebar/OperatorMenu.svelte +3 -1
  494. package/package/components/sidebar/OperatorMenu.svelte.d.ts +6 -1
  495. package/package/components/sidebar/SidebarContent.svelte +3 -3
  496. package/package/components/sidebar/WorkspaceMenu.svelte +3 -2
  497. package/package/components/table/AutoDataTable.svelte +2 -2
  498. package/package/components/toast.js +1 -2
  499. package/package/components/triggers/AddTriggersButton.svelte +11 -0
  500. package/package/components/triggers/TriggerFilters.svelte +71 -0
  501. package/package/components/triggers/TriggerFilters.svelte.d.ts +10 -0
  502. package/package/components/triggers/TriggersEditor.svelte +31 -11
  503. package/package/components/triggers/TriggersWrapper.svelte +10 -0
  504. package/package/components/triggers/http/RouteEditorInner.svelte +1 -1
  505. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +7 -0
  506. package/package/components/triggers/kafka/utils.js +1 -0
  507. package/package/components/triggers/native/NativeTriggerEditor.svelte +22 -17
  508. package/package/components/triggers/native/NativeTriggerTable.svelte +16 -0
  509. package/package/components/triggers/native/services/google/GoogleCalendarPicker.svelte +112 -0
  510. package/package/components/triggers/native/services/google/GoogleCalendarPicker.svelte.d.ts +8 -0
  511. package/package/components/triggers/native/services/google/GoogleDrivePicker.svelte +323 -0
  512. package/package/components/triggers/native/services/google/GoogleDrivePicker.svelte.d.ts +8 -0
  513. package/package/components/triggers/native/services/google/GoogleTriggerForm.svelte +116 -0
  514. package/package/components/triggers/native/services/google/GoogleTriggerForm.svelte.d.ts +12 -0
  515. package/package/components/triggers/native/utils.d.ts +0 -1
  516. package/package/components/triggers/native/utils.js +15 -1
  517. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +3 -3
  518. package/package/components/triggers/triggers.svelte.d.ts +1 -1
  519. package/package/components/triggers/triggers.svelte.js +11 -3
  520. package/package/components/triggers/utils.js +33 -6
  521. package/package/components/triggers/websocket/WebsocketEditorConfigSection.svelte +1 -1
  522. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +3 -81
  523. package/package/components/triggers.d.ts +1 -1
  524. package/package/components/variables/variablesFilter.d.ts +56 -0
  525. package/package/components/variables/variablesFilter.js +51 -0
  526. package/package/components/waitJob.d.ts +1 -1
  527. package/package/components/waitJob.js +3 -2
  528. package/package/components/worker_group.d.ts +2 -0
  529. package/package/components/worker_group.js +15 -0
  530. package/package/components/workspaceSettings/AISettings.svelte +36 -42
  531. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -0
  532. package/package/components/workspaceSettings/CreateWorkspace.svelte +4 -4
  533. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte.d.ts +1 -2
  534. package/package/components/workspaceSettings/DataTableSettings.svelte +27 -16
  535. package/package/components/workspaceSettings/DataTableSettings.svelte.d.ts +1 -0
  536. package/package/components/workspaceSettings/DucklakeSettings.svelte +21 -15
  537. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +1 -0
  538. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +24 -66
  539. package/package/components/workspaceSettings/ModelTokenLimits.svelte +6 -10
  540. package/package/components/workspaceSettings/OAuthClientConfig.svelte +46 -75
  541. package/package/components/workspaceSettings/OAuthClientConfig.svelte.d.ts +8 -1
  542. package/package/components/workspaceSettings/RulesetEditor.svelte +280 -0
  543. package/package/components/workspaceSettings/RulesetEditor.svelte.d.ts +9 -0
  544. package/package/components/workspaceSettings/SettingsFooter.svelte +35 -0
  545. package/package/components/workspaceSettings/SettingsFooter.svelte.d.ts +12 -0
  546. package/package/components/workspaceSettings/StorageSettings.svelte +48 -34
  547. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
  548. package/package/components/workspaceSettings/WorkspaceDependenciesSettings.svelte +66 -27
  549. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +237 -73
  550. package/package/components/workspaceSettings/WorkspaceRulesets.svelte +183 -0
  551. package/package/components/workspaceSettings/WorkspaceRulesets.svelte.d.ts +3 -0
  552. package/package/editorLangUtils.d.ts +1 -1
  553. package/package/gen/core/OpenAPI.js +1 -1
  554. package/package/gen/schemas.gen.d.ts +996 -70
  555. package/package/gen/schemas.gen.js +1352 -378
  556. package/package/gen/services.gen.d.ts +156 -41
  557. package/package/gen/services.gen.js +319 -83
  558. package/package/gen/types.gen.d.ts +1896 -317
  559. package/package/hub.d.ts +1 -0
  560. package/package/hub.js +7 -0
  561. package/package/hubPaths.json +2 -1
  562. package/package/infer.d.ts +2 -0
  563. package/package/mcpEndpointTools.d.ts +3 -0
  564. package/package/mcpEndpointTools.js +574 -147
  565. package/package/rawAppWmillTs.js +12 -11
  566. package/package/scripts.d.ts +1 -1
  567. package/package/scripts.js +1 -1
  568. package/package/storeUtils.js +8 -0
  569. package/package/stores.d.ts +1 -1
  570. package/package/stores.js +4 -2
  571. package/package/svelte5Utils.svelte.d.ts +40 -0
  572. package/package/svelte5Utils.svelte.js +158 -0
  573. package/package/svelte5UtilsKit.svelte.d.ts +13 -3
  574. package/package/svelte5UtilsKit.svelte.js +96 -20
  575. package/package/system_prompts/prompts.d.ts +5 -5
  576. package/package/system_prompts/prompts.js +94 -21
  577. package/package/toast.d.ts +5 -1
  578. package/package/toast.js +14 -5
  579. package/package/utils.js +214 -7
  580. package/package/utils_deployable.d.ts +25 -25
  581. package/package/utils_deployable.js +2 -1
  582. package/package/validators/workspaceSettings.d.ts +12 -0
  583. package/package/validators/workspaceSettings.js +72 -0
  584. package/package/workspaceProtectionRules.svelte.d.ts +73 -0
  585. package/package/workspaceProtectionRules.svelte.js +176 -0
  586. package/package.json +8 -5
  587. package/package/components/DropdownSelect.svelte +0 -26
  588. package/package/components/DropdownSelect.svelte.d.ts +0 -11
  589. package/package/components/FlowPreviewResult.svelte +0 -84
  590. package/package/components/FlowPreviewResult.svelte.d.ts +0 -20
  591. package/package/components/copilot/chat/context.d.ts +0 -119
  592. package/package/components/flows/propPicker/FlowPropPicker.svelte +0 -72
  593. package/package/components/flows/propPicker/FlowPropPicker.svelte.d.ts +0 -23
  594. package/package/components/runs/ManuelDatePicker.svelte +0 -96
  595. package/package/components/runs/ManuelDatePicker.svelte.d.ts +0 -35
  596. package/package/components/runs/RunsBatchActionsDropdown.svelte +0 -82
  597. package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +0 -15
  598. package/package/components/runs/RunsFilter.svelte +0 -966
  599. package/package/components/runs/RunsFilter.svelte.d.ts +0 -80
@@ -1,19 +1,30 @@
1
1
  <script lang="ts">import FlowModuleIcon from '../../flows/FlowModuleIcon.svelte';
2
2
  import BarsStaggered from '../../icons/BarsStaggered.svelte';
3
+ import { workspaceStore } from '../../../stores';
4
+ import { workspaceRunnablesSearch, MAX_RUNNABLE_CONTENT_LENGTH } from './shared';
3
5
  import { ContextIconMap } from './context';
4
- import { ArrowLeft, Diff, Database, ChevronRight } from 'lucide-svelte';
5
- const { availableContext, selectedContext, onSelect, setShowing, showAllAvailable = false, stringSearch = '', onViewChange } = $props();
6
+ import { ArrowLeft, Diff, Database, ChevronRight, Code2, Loader2 } from 'lucide-svelte';
7
+ const { availableContext, selectedContext, onSelect, onSelectWorkspaceItem, setShowing, showAllAvailable = false, stringSearch = '', onViewChange } = $props();
6
8
  // Current view state: 'categories' or specific category type
7
9
  let currentView = $state('categories');
8
10
  // Selected index for keyboard navigation
9
11
  let itemSelectedIndex = $state(0);
10
12
  let categorySelectedIndex = $state(0);
13
+ // Workspace search state
14
+ let workspaceSearchQuery = $state('');
15
+ let workspaceSearchResults = $state([]);
16
+ let workspaceSearchLoading = $state(false);
17
+ let searchInputElement = $state(undefined);
18
+ let searchDebounceTimer = undefined;
11
19
  // Category definitions
12
20
  const categories = [
13
- { id: 'diffs', label: 'Diffs', icon: Diff },
14
- { id: 'modules', label: 'Modules', icon: BarsStaggered },
15
- { id: 'databases', label: 'Databases', icon: Database }
21
+ { id: 'diffs', label: 'Diffs', icon: Diff, searchable: false },
22
+ { id: 'modules', label: 'Modules', icon: BarsStaggered, searchable: false },
23
+ { id: 'databases', label: 'Databases', icon: Database, searchable: false },
24
+ { id: 'scripts', label: 'Scripts', icon: Code2, searchable: true },
25
+ { id: 'flows', label: 'Flows', icon: BarsStaggered, searchable: true }
16
26
  ];
27
+ const isSearchableView = $derived(currentView === 'scripts' || currentView === 'flows');
17
28
  const filteredAvailableContext = $derived(availableContext.filter((context) => {
18
29
  const filtered = (showAllAvailable ||
19
30
  !selectedContext.some((sc) => sc.type === context.type && sc.title === context.title)) &&
@@ -37,15 +48,18 @@ const contextByCategory = $derived.by(() => {
37
48
  });
38
49
  return grouped;
39
50
  });
40
- const currentCategoryItems = $derived(currentView !== 'categories' ? contextByCategory[currentView] : []);
41
- // Filter to only show categories with items
42
- const availableCategories = $derived(categories.filter((cat) => contextByCategory[cat.id].length > 0));
51
+ const currentCategoryItems = $derived(currentView !== 'categories' && !isSearchableView ? contextByCategory[currentView] : []);
52
+ // Filter to only show categories with items (non-searchable) or always show (searchable)
53
+ const availableCategories = $derived(categories.filter((cat) => cat.searchable || contextByCategory[cat.id]?.length > 0));
43
54
  // Report view changes
44
55
  $effect(() => {
45
56
  if (onViewChange) {
46
57
  if (currentView === 'categories') {
47
58
  onViewChange(availableCategories.length);
48
59
  }
60
+ else if (isSearchableView) {
61
+ onViewChange(workspaceSearchResults.length + 2); // +2 for back button and search input
62
+ }
49
63
  else {
50
64
  onViewChange(currentCategoryItems.length + 1);
51
65
  }
@@ -53,13 +67,134 @@ $effect(() => {
53
67
  });
54
68
  function handleCategoryClick(categoryId) {
55
69
  currentView = categoryId;
70
+ itemSelectedIndex = 0;
71
+ if (categoryId === 'scripts' || categoryId === 'flows') {
72
+ workspaceSearchQuery = '';
73
+ workspaceSearchResults = [];
74
+ searchWorkspaceItems('');
75
+ setTimeout(() => searchInputElement?.focus(), 0);
76
+ }
56
77
  }
57
78
  function handleBackClick() {
58
79
  currentView = 'categories';
59
80
  itemSelectedIndex = 0;
81
+ workspaceSearchQuery = '';
82
+ workspaceSearchResults = [];
83
+ }
84
+ async function searchWorkspaceItems(query) {
85
+ const workspace = $workspaceStore;
86
+ if (!workspace)
87
+ return;
88
+ workspaceSearchLoading = true;
89
+ try {
90
+ const type = currentView === 'scripts' ? 'scripts' : 'flows';
91
+ const results = await workspaceRunnablesSearch.search(query, workspace, type);
92
+ workspaceSearchResults = results.map((r) => ({
93
+ path: r.path,
94
+ summary: r.summary
95
+ }));
96
+ }
97
+ catch (err) {
98
+ console.error('Error searching workspace items', err);
99
+ workspaceSearchResults = [];
100
+ }
101
+ finally {
102
+ workspaceSearchLoading = false;
103
+ }
104
+ }
105
+ function handleSearchInput() {
106
+ if (searchDebounceTimer)
107
+ clearTimeout(searchDebounceTimer);
108
+ searchDebounceTimer = setTimeout(() => {
109
+ searchWorkspaceItems(workspaceSearchQuery);
110
+ }, 300);
111
+ }
112
+ async function handleWorkspaceItemSelect(path) {
113
+ const workspace = $workspaceStore;
114
+ if (!workspace || !onSelectWorkspaceItem)
115
+ return;
116
+ try {
117
+ if (currentView === 'scripts') {
118
+ const script = await workspaceRunnablesSearch.getScript(path, workspace);
119
+ const content = script.content ?? '';
120
+ const truncatedContent = content.length > MAX_RUNNABLE_CONTENT_LENGTH
121
+ ? content.slice(0, MAX_RUNNABLE_CONTENT_LENGTH) + '\n... (truncated)'
122
+ : content;
123
+ const element = {
124
+ type: 'workspace_script',
125
+ path: script.path,
126
+ title: script.path,
127
+ summary: script.summary,
128
+ language: script.language,
129
+ content: truncatedContent,
130
+ schema: script.schema,
131
+ deletable: true
132
+ };
133
+ onSelectWorkspaceItem(element);
134
+ }
135
+ else if (currentView === 'flows') {
136
+ const flow = await workspaceRunnablesSearch.getFlow(path, workspace);
137
+ const flowValue = JSON.stringify(flow.value, null, 2);
138
+ const truncatedValue = flowValue.length > MAX_RUNNABLE_CONTENT_LENGTH
139
+ ? flowValue.slice(0, MAX_RUNNABLE_CONTENT_LENGTH) + '\n... (truncated)'
140
+ : flowValue;
141
+ const element = {
142
+ type: 'workspace_flow',
143
+ path: flow.path,
144
+ title: flow.path,
145
+ summary: flow.summary,
146
+ description: flow.description || '',
147
+ value: truncatedValue,
148
+ schema: flow.schema,
149
+ deletable: true
150
+ };
151
+ onSelectWorkspaceItem(element);
152
+ }
153
+ currentView = 'categories';
154
+ workspaceSearchQuery = '';
155
+ workspaceSearchResults = [];
156
+ }
157
+ catch (err) {
158
+ console.error('Error fetching workspace item', err);
159
+ }
60
160
  }
61
161
  function handleKeyDown(e) {
62
- if (stringSearch.length > 0) {
162
+ if (isSearchableView) {
163
+ // Navigation in workspace search view
164
+ if (e.key === 'ArrowDown') {
165
+ e.preventDefault();
166
+ e.stopPropagation();
167
+ if (workspaceSearchResults.length > 0) {
168
+ itemSelectedIndex = (itemSelectedIndex + 1) % workspaceSearchResults.length;
169
+ }
170
+ }
171
+ else if (e.key === 'ArrowUp') {
172
+ e.preventDefault();
173
+ e.stopPropagation();
174
+ if (workspaceSearchResults.length > 0) {
175
+ itemSelectedIndex =
176
+ (itemSelectedIndex - 1 + workspaceSearchResults.length) %
177
+ workspaceSearchResults.length;
178
+ }
179
+ }
180
+ else if (e.key === 'Enter') {
181
+ // Only select if not typing in the search input, or if results exist
182
+ if (workspaceSearchResults.length > 0) {
183
+ e.preventDefault();
184
+ e.stopPropagation();
185
+ const selectedItem = workspaceSearchResults[itemSelectedIndex];
186
+ if (selectedItem) {
187
+ handleWorkspaceItemSelect(selectedItem.path);
188
+ }
189
+ }
190
+ }
191
+ else if (e.key === 'Escape') {
192
+ e.preventDefault();
193
+ e.stopPropagation();
194
+ handleBackClick();
195
+ }
196
+ }
197
+ else if (stringSearch.length > 0) {
63
198
  // Navigation in search view (flat list)
64
199
  if (e.key === 'ArrowDown') {
65
200
  e.preventDefault();
@@ -148,11 +283,13 @@ function handleKeyDown(e) {
148
283
  }
149
284
  }
150
285
  }
151
- // Listen for keyboard events
286
+ // Listen for keyboard events + clean up debounce timer
152
287
  $effect(() => {
153
288
  document.addEventListener('keydown', handleKeyDown);
154
289
  return () => {
155
290
  document.removeEventListener('keydown', handleKeyDown);
291
+ if (searchDebounceTimer)
292
+ clearTimeout(searchDebounceTimer);
156
293
  };
157
294
  });
158
295
  $effect(() => {
@@ -164,9 +301,13 @@ $effect(() => {
164
301
 
165
302
  <div
166
303
  class="flex flex-col gap-1 text-primary text-xs p-1 pr-0 min-w-24 max-h-48 overflow-y-scroll"
167
- onmousedown={(e) =>
304
+ onmousedown={(e) => {
168
305
  // avoids triggering onblur on the textinput and closing the tooltip
169
- e.preventDefault()}
306
+ // but allow input elements to receive focus for the search input
307
+ if (!(e.target instanceof HTMLInputElement)) {
308
+ e.preventDefault()
309
+ }
310
+ }}
170
311
  role="listbox"
171
312
  tabindex={0}
172
313
  >
@@ -217,6 +358,68 @@ $effect(() => {
217
358
  {#if availableCategories.length === 0}
218
359
  <div class="text-center text-primary text-xs py-2">No available context</div>
219
360
  {/if}
361
+ {:else if isSearchableView}
362
+ <!-- Workspace search view (scripts/flows) -->
363
+ <button
364
+ class="hover:bg-surface-hover rounded-md text-left flex flex-row gap-1 items-center font-normal transition-colors mb-1"
365
+ onclick={handleBackClick}
366
+ >
367
+ <ArrowLeft size={12} />
368
+ <span class="text-xs">Go back</span>
369
+ </button>
370
+
371
+ <input
372
+ bind:this={searchInputElement}
373
+ bind:value={workspaceSearchQuery}
374
+ oninput={handleSearchInput}
375
+ type="text"
376
+ placeholder="Search {currentView}..."
377
+ class="w-full text-xs px-2 py-1 rounded-md border border-gray-200 dark:border-gray-700 bg-surface mb-1 outline-none focus:border-blue-500"
378
+ />
379
+
380
+ {#if workspaceSearchLoading}
381
+ <div class="flex items-center justify-center py-2 gap-1">
382
+ <Loader2 size={14} class="animate-spin" />
383
+ <span class="text-xs text-secondary">Searching...</span>
384
+ </div>
385
+ {:else if workspaceSearchResults.length === 0}
386
+ <div class="text-center text-secondary text-xs py-2">
387
+ No results found
388
+ </div>
389
+ {:else}
390
+ {#each workspaceSearchResults as item, i}
391
+ {@const isAlreadySelected = selectedContext.some(
392
+ (c) =>
393
+ ((c.type === 'workspace_script' && currentView === 'scripts') ||
394
+ (c.type === 'workspace_flow' && currentView === 'flows')) &&
395
+ c.title === item.path
396
+ )}
397
+ <button
398
+ class="hover:bg-surface-hover rounded-md p-1 text-left flex flex-col font-normal transition-colors {i ===
399
+ itemSelectedIndex
400
+ ? 'bg-surface-hover'
401
+ : ''} {isAlreadySelected ? 'opacity-50' : ''}"
402
+ onclick={() => {
403
+ if (!isAlreadySelected) {
404
+ handleWorkspaceItemSelect(item.path)
405
+ }
406
+ }}
407
+ disabled={isAlreadySelected}
408
+ >
409
+ <div class="flex flex-row gap-1 items-center">
410
+ {#if currentView === 'scripts'}
411
+ <Code2 size={14} class="shrink-0" />
412
+ {:else}
413
+ <BarsStaggered size={14} class="shrink-0" />
414
+ {/if}
415
+ <span class="truncate">{item.path}</span>
416
+ </div>
417
+ {#if item.summary}
418
+ <span class="truncate text-secondary pl-5">{item.summary}</span>
419
+ {/if}
420
+ </button>
421
+ {/each}
422
+ {/if}
220
423
  {:else}
221
424
  <!-- Category items view -->
222
425
  <button
@@ -3,6 +3,7 @@ interface Props {
3
3
  availableContext: ContextElement[];
4
4
  selectedContext: ContextElement[];
5
5
  onSelect: (element: ContextElement) => void;
6
+ onSelectWorkspaceItem?: (element: ContextElement) => void;
6
7
  setShowing?: (showing: boolean) => void;
7
8
  showAllAvailable?: boolean;
8
9
  stringSearch?: string;
@@ -120,8 +120,10 @@ function getCaretCoordinates(element, position) {
120
120
  }
121
121
  function getHighlightedText(text) {
122
122
  return text.replace(/@[\w/.\-\[\]]+/g, (match) => {
123
- const contextElement = availableContext.find((c) => c.title === match.slice(1));
124
- if (contextElement) {
123
+ const title = match.slice(1);
124
+ const inContext = availableContext.find((c) => c.title === title) ||
125
+ selectedContext.find((c) => c.title === title);
126
+ if (inContext) {
125
127
  return `<span class="bg-black dark:bg-white text-white dark:text-black z-10">${match}</span>`;
126
128
  }
127
129
  return match;
@@ -259,6 +261,10 @@ export function focus() {
259
261
  oninput={handleInput}
260
262
  onblur={() => {
261
263
  setTimeout(() => {
264
+ // Don't close if focus moved to inside the tooltip (e.g., search input)
265
+ if (tooltipElement?.contains(document.activeElement)) {
266
+ return
267
+ }
262
268
  showContextTooltip = false
263
269
  }, 200)
264
270
  }}
@@ -285,6 +291,13 @@ export function focus() {
285
291
  onSelect={(element) => {
286
292
  handleContextSelection(element)
287
293
  }}
294
+ onSelectWorkspaceItem={(element) => {
295
+ onAddContext(element)
296
+ updateInstructionsWithContext(element)
297
+ showContextTooltip = false
298
+ // Refocus the textarea since focus may have been on the search input
299
+ setTimeout(() => textarea?.focus(), 0)
300
+ }}
288
301
  showAllAvailable={true}
289
302
  stringSearch={contextTooltipWord.slice(1)}
290
303
  onViewChange={(newNumber) => {
@@ -50,7 +50,7 @@ For inline scripts, the code must have a \`main\` function as its entrypoint.
50
50
  - \`lint()\`: Lint all files. Returns errors/warnings grouped by frontend/backend.
51
51
 
52
52
  ### Discovery
53
- - \`list_workspace_runnables(query, type?)\`: Search workspace scripts and flows
53
+ - \`search_workspace(query, type)\`: Search workspace scripts and flows
54
54
  - \`search_hub_scripts(query)\`: Search hub scripts
55
55
 
56
56
  ## Backend Runnable Configuration
@@ -72,7 +72,8 @@ const MINIMAL_SINGLE_TOOL_SYSTEM_PROMPT = `You are a helpful assistant that crea
72
72
 
73
73
  **Code & Scripts:**
74
74
  - **Get language-specific coding instructions** → \`get_instructions_for_code_generation\` (call BEFORE writing code)
75
- - **Find workspace scripts** → \`search_scripts\`
75
+ - **Find workspace scripts and flows** → \`search_workspace\`
76
+ - **Get details of a specific script or flow** → \`get_runnable_details\`
76
77
  - **Find Windmill Hub scripts** → \`search_hub_scripts\`
77
78
 
78
79
  **Testing:**
@@ -298,7 +299,8 @@ Example: Before writing TypeScript/Bun code, call \`get_instructions_for_code_ge
298
299
  ### Creating Flows
299
300
 
300
301
  1. **Search for existing scripts first** (unless user explicitly asks to write from scratch):
301
- - First: \`search_scripts\` to find workspace scripts
302
+ - First: \`search_workspace\` to find workspace scripts and flows
303
+ - Use \`get_runnable_details\` to inspect a specific script or flow (inputs, description, code)
302
304
  - Then: \`search_hub_scripts\` (only consider highly relevant results)
303
305
  - Only create raw scripts if no suitable script is found
304
306
 
@@ -1,8 +1,5 @@
1
1
  import { z } from 'zod';
2
- import { createSearchHubScriptsTool, createToolDef } from '../shared';
3
- import { FlowService, ScriptService } from '../../../../gen';
4
- import uFuzzy from '@leeoniya/ufuzzy';
5
- import { emptyString } from '../../../../utils';
2
+ import { createSearchHubScriptsTool, createToolDef, createSearchWorkspaceTool, createGetRunnableDetailsTool } from '../shared';
6
3
  import { aiChatManager } from '../AIChatManager.svelte';
7
4
  // ============= Utility =============
8
5
  /** Maximum characters per file in get_files tool */
@@ -94,70 +91,6 @@ const getExecDatatableSqlToolDef = memo(() => createToolDef(getExecDatatableSqlS
94
91
  // ============= Selected Context Tool =============
95
92
  const getGetSelectedContextSchema = memo(() => z.object({}));
96
93
  const getGetSelectedContextToolDef = memo(() => createToolDef(getGetSelectedContextSchema(), 'get_selected_context', 'Get information about what is currently selected in the app editor. Returns the type of selection (frontend file or backend runnable) and the path/key of the selected item.'));
97
- // ============= Workspace Runnables Search =============
98
- const getListWorkspaceRunnablesSchema = memo(() => z.object({
99
- query: z.string().describe('The search query to find workspace scripts and flows'),
100
- type: z
101
- .enum(['all', 'scripts', 'flows'])
102
- .describe('Filter by type: "scripts" for scripts only, "flows" for flows only, "all" for both. Defaults to "all".')
103
- }));
104
- const getListWorkspaceRunnablesToolDef = memo(() => createToolDef(getListWorkspaceRunnablesSchema(), 'list_workspace_runnables', 'Search for workspace scripts and flows by query. Returns fully qualified paths that can be used in backend runnables.'));
105
- class WorkspaceRunnablesSearch {
106
- uf;
107
- workspace = undefined;
108
- scripts = undefined;
109
- flows = undefined;
110
- constructor() {
111
- this.uf = new uFuzzy();
112
- }
113
- async initScripts(workspace) {
114
- if (this.scripts === undefined || this.workspace !== workspace) {
115
- this.scripts = await ScriptService.listScripts({ workspace });
116
- this.workspace = workspace;
117
- }
118
- }
119
- async initFlows(workspace) {
120
- if (this.flows === undefined || this.workspace !== workspace) {
121
- this.flows = await FlowService.listFlows({ workspace });
122
- this.workspace = workspace;
123
- }
124
- }
125
- async searchScripts(query, workspace) {
126
- await this.initScripts(workspace);
127
- const scripts = this.scripts;
128
- if (!scripts)
129
- return [];
130
- const results = this.uf.search(scripts.map((s) => (emptyString(s.summary) ? s.path : s.summary + ' (' + s.path + ')')), query.trim());
131
- return (results[2]?.map((id) => ({
132
- type: 'script',
133
- path: scripts[id].path,
134
- summary: scripts[id].summary
135
- })) ?? []);
136
- }
137
- async searchFlows(query, workspace) {
138
- await this.initFlows(workspace);
139
- const flows = this.flows;
140
- if (!flows)
141
- return [];
142
- const results = this.uf.search(flows.map((f) => (emptyString(f.summary) ? f.path : f.summary + ' (' + f.path + ')')), query.trim());
143
- return (results[2]?.map((id) => ({
144
- type: 'flow',
145
- path: flows[id].path,
146
- summary: flows[id].summary
147
- })) ?? []);
148
- }
149
- async search(query, workspace, type = 'all') {
150
- const results = [];
151
- if (type === 'all' || type === 'scripts') {
152
- results.push(...(await this.searchScripts(query, workspace)));
153
- }
154
- if (type === 'all' || type === 'flows') {
155
- results.push(...(await this.searchFlows(query, workspace)));
156
- }
157
- return results;
158
- }
159
- }
160
- const workspaceRunnablesSearch = new WorkspaceRunnablesSearch();
161
94
  // ============= Lint Result Formatting =============
162
95
  function formatLintMessages(messages) {
163
96
  let result = '';
@@ -369,7 +302,7 @@ export const getAppTools = memo(() => [
369
302
  });
370
303
  const lintResult = await helpers.setBackendRunnable(parsedArgs.key, runnable);
371
304
  toolCallbacks.setToolStatus(toolId, {
372
- content: `Backend runnable '${parsedArgs.key}' analyzed`,
305
+ content: `Backend runnable '${parsedArgs.key}' set successfully.`,
373
306
  result: 'Success'
374
307
  });
375
308
  return formatLintResultResponse(`Backend runnable '${parsedArgs.key}' has been set successfully.`, lintResult);
@@ -411,21 +344,8 @@ export const getAppTools = memo(() => [
411
344
  }
412
345
  },
413
346
  // Search tools
414
- {
415
- def: getListWorkspaceRunnablesToolDef(),
416
- fn: async ({ args, workspace, toolId, toolCallbacks }) => {
417
- const parsedArgs = getListWorkspaceRunnablesSchema().parse(args);
418
- const type = parsedArgs.type ?? 'all';
419
- toolCallbacks.setToolStatus(toolId, {
420
- content: `Searching workspace ${type} for "${parsedArgs.query}"...`
421
- });
422
- const results = await workspaceRunnablesSearch.search(parsedArgs.query, workspace, type);
423
- toolCallbacks.setToolStatus(toolId, {
424
- content: `Found ${results.length} workspace runnables matching "${parsedArgs.query}"`
425
- });
426
- return JSON.stringify(results, null, 2);
427
- }
428
- },
347
+ createSearchWorkspaceTool(),
348
+ createGetRunnableDetailsTool(),
429
349
  // Hub scripts search (reuse from shared)
430
350
  createSearchHubScriptsTool(false),
431
351
  // Data table tools
@@ -562,7 +482,8 @@ For inline scripts, the code must have a \`main\` function as its entrypoint.
562
482
  - \`lint()\`: Lint all files. Returns errors/warnings grouped by frontend/backend. Use this to check for issues after making changes.
563
483
 
564
484
  ### Discovery
565
- - \`list_workspace_runnables(query, type?)\`: Search workspace scripts and flows
485
+ - \`search_workspace(query, type)\`: Search workspace scripts and flows
486
+ - \`get_runnable_details(path, type)\`: Get details (summary, description, schema, content) of a specific script or flow
566
487
  - \`search_hub_scripts(query)\`: Search hub scripts
567
488
 
568
489
  ### Data Tables
@@ -709,7 +630,7 @@ When you are using the windmill-client, do not forget that as id for variables o
709
630
  3. Make changes using \`set_frontend_file\` and \`set_backend_runnable\`. These return lint diagnostics.
710
631
  4. Use \`lint()\` at the end to check for and fix any remaining errors
711
632
 
712
- When creating a new app, use \`list_workspace_runnables\` or \`search_hub_scripts\` to find existing scripts/flows to reuse.
633
+ When creating a new app, use \`search_workspace\` or \`search_hub_scripts\` to find existing scripts/flows to reuse.
713
634
 
714
635
  `;
715
636
  // Add datatable creation policy context
@@ -1,4 +1,5 @@
1
1
  import { Code, Database, TriangleAlert, Diff, FileCode, Code2, TextSelect, Table2 } from 'lucide-svelte';
2
+ import BarsStaggered from '../../icons/BarsStaggered.svelte';
2
3
  import {} from '../../../stores';
3
4
  import {} from 'diff';
4
5
  export const ContextIconMap = {
@@ -10,6 +11,8 @@ export const ContextIconMap = {
10
11
  app_frontend_file: FileCode,
11
12
  app_backend_runnable: Code2,
12
13
  app_code_selection: TextSelect,
13
- app_datatable: Table2
14
+ app_datatable: Table2,
15
+ workspace_script: Code2,
16
+ workspace_flow: BarsStaggered
14
17
  // flow_module type is handled with FlowModuleIcon
15
18
  };