windmill-components 1.511.1 → 1.531.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. package/package/components/AIAgentLogViewer.svelte +123 -0
  2. package/package/components/AIAgentLogViewer.svelte.d.ts +13 -0
  3. package/package/components/AppConnectInner.svelte +10 -10
  4. package/package/components/AppConnectInner.svelte.d.ts +1 -1
  5. package/package/components/ArgInput.svelte +42 -14
  6. package/package/components/ArgInput.svelte.d.ts +2 -10
  7. package/package/components/AssignableTagsInner.svelte +5 -0
  8. package/package/components/AuthSettings.svelte +4 -2
  9. package/package/components/AuthSettings.svelte.d.ts +1 -0
  10. package/package/components/AutoscalingConfigEditor.svelte +76 -2
  11. package/package/components/DBManagerDrawer.svelte +154 -151
  12. package/package/components/DBManagerDrawer.svelte.d.ts +2 -2
  13. package/package/components/DBTable.svelte +3 -3
  14. package/package/components/DBTable.svelte.d.ts +1 -0
  15. package/package/components/DBTableEditor.svelte +7 -7
  16. package/package/components/DBTableEditor.svelte.d.ts +1 -1
  17. package/package/components/DeployWorkspace.svelte +1 -1
  18. package/package/components/Dev.svelte +12 -28
  19. package/package/components/DiffEditor.svelte +6 -3
  20. package/package/components/DiffEditor.svelte.d.ts +1 -0
  21. package/package/components/DisplayResult.svelte +46 -14
  22. package/package/components/DisplayResult.svelte.d.ts +5 -1
  23. package/package/components/DynSelect.svelte +58 -34
  24. package/package/components/DynSelect.svelte.d.ts +3 -11
  25. package/package/components/EditableSchemaForm.svelte +131 -8
  26. package/package/components/EditableSchemaForm.svelte.d.ts +5 -1
  27. package/package/components/Editor.svelte +27 -9
  28. package/package/components/Editor.svelte.d.ts +1 -1
  29. package/package/components/EditorBar.svelte +105 -7
  30. package/package/components/EditorSettings.svelte +6 -0
  31. package/package/components/ErrorOrRecoveryHandler.svelte +76 -8
  32. package/package/components/ErrorOrRecoveryHandler.svelte.d.ts +2 -1
  33. package/package/components/ExploreAssetButton.svelte +14 -4
  34. package/package/components/ExploreAssetButton.svelte.d.ts +1 -0
  35. package/package/components/FirstStepInputs.svelte +2 -2
  36. package/package/components/FlowBuilder.svelte +18 -36
  37. package/package/components/FlowGraphViewerStep.svelte +7 -0
  38. package/package/components/FlowJobResult.svelte +16 -64
  39. package/package/components/FlowJobResult.svelte.d.ts +11 -4
  40. package/package/components/FlowLogViewer.svelte +660 -0
  41. package/package/components/FlowLogViewer.svelte.d.ts +34 -0
  42. package/package/components/FlowLogViewerWrapper.svelte +52 -0
  43. package/package/components/FlowLogViewerWrapper.svelte.d.ts +21 -0
  44. package/package/components/FlowLoopIterationPreview.svelte +3 -3
  45. package/package/components/FlowPreviewContent.svelte +13 -6
  46. package/package/components/FlowPreviewContent.svelte.d.ts +7 -7
  47. package/package/components/FlowPreviewResult.svelte +7 -5
  48. package/package/components/FlowPreviewResult.svelte.d.ts +4 -5
  49. package/package/components/FlowStatusViewer.svelte +28 -16
  50. package/package/components/FlowStatusViewer.svelte.d.ts +19 -27
  51. package/package/components/FlowStatusViewerInner.svelte +500 -295
  52. package/package/components/FlowStatusViewerInner.svelte.d.ts +34 -34
  53. package/package/components/FlowTimeline.svelte +11 -13
  54. package/package/components/FlowTimeline.svelte.d.ts +6 -5
  55. package/package/components/FolderEditor.svelte +1 -1
  56. package/package/components/GitDiffPreview.svelte +14 -18
  57. package/package/components/GitDiffPreview.svelte.d.ts +2 -8
  58. package/package/components/GitHubAppIntegration.svelte +3 -1
  59. package/package/components/HighlightCode.svelte +4 -1
  60. package/package/components/IconedResourceType.svelte +9 -5
  61. package/package/components/IdEditorInput.svelte +25 -22
  62. package/package/components/IdEditorInput.svelte.d.ts +11 -23
  63. package/package/components/InstanceSetting.svelte +7 -2
  64. package/package/components/InstanceSettings.svelte +1 -0
  65. package/package/components/JobLoader.svelte +108 -12
  66. package/package/components/JobLoader.svelte.d.ts +16 -3
  67. package/package/components/LogViewer.svelte +8 -2
  68. package/package/components/LogViewer.svelte.d.ts +1 -0
  69. package/package/components/LogViewerHeader.svelte +32 -0
  70. package/package/components/LogViewerHeader.svelte.d.ts +8 -0
  71. package/package/components/Login.svelte +8 -2
  72. package/package/components/MemoryFootprintViewer.svelte +1 -1
  73. package/package/components/ModulePreviewForm.svelte +10 -6
  74. package/package/components/ModulePreviewResultViewer.svelte +18 -2
  75. package/package/components/ModulePreviewResultViewer.svelte.d.ts +1 -1
  76. package/package/components/ModuleTest.svelte +59 -16
  77. package/package/components/MoveDrawer.svelte.d.ts +2 -2
  78. package/package/components/NextcloudSetting.svelte +84 -0
  79. package/package/components/NextcloudSetting.svelte.d.ts +7 -0
  80. package/package/components/ObjectResourceInput.svelte +3 -2
  81. package/package/components/ObjectResourceInput.svelte.d.ts +1 -0
  82. package/package/components/ParqetCsvTableRenderer.svelte +1 -1
  83. package/package/components/RelativeLineNumbers.svelte +16 -0
  84. package/package/components/RelativeLineNumbers.svelte.d.ts +18 -0
  85. package/package/components/ResourceEditor.svelte +10 -5
  86. package/package/components/ResourcePicker.svelte +8 -1
  87. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  88. package/package/components/ResultStreamDisplay.svelte +5 -0
  89. package/package/components/ResultStreamDisplay.svelte.d.ts +5 -0
  90. package/package/components/RunForm.svelte +9 -1
  91. package/package/components/SchemaForm.svelte +2 -2
  92. package/package/components/SchemaForm.svelte.d.ts +2 -10
  93. package/package/components/ScriptBuilder.svelte +26 -19
  94. package/package/components/ScriptBuilder.svelte.d.ts +1 -1
  95. package/package/components/ScriptEditor.svelte +2 -2
  96. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  97. package/package/components/ScriptWrapper.svelte +1 -1
  98. package/package/components/ShareModal.svelte.d.ts +1 -1
  99. package/package/components/SimpleAgTable.svelte +2 -0
  100. package/package/components/SimpleAgTable.svelte.d.ts +2 -0
  101. package/package/components/SimpleEditor.svelte +10 -4
  102. package/package/components/SimpleEditor.svelte.d.ts +1 -0
  103. package/package/components/SqlRepl.svelte +21 -7
  104. package/package/components/SqlRepl.svelte.d.ts +2 -2
  105. package/package/components/StringTypeNarrowing.svelte.d.ts +1 -1
  106. package/package/components/TemplateEditor.svelte +1 -1
  107. package/package/components/UserSettings.svelte +4 -4
  108. package/package/components/WorkerTagSelect.svelte +70 -1
  109. package/package/components/apps/components/display/AppAccordionList.svelte +1 -1
  110. package/package/components/apps/components/display/AppCarouselList.svelte +10 -8
  111. package/package/components/apps/components/display/AppDisplayComponent.svelte +13 -1
  112. package/package/components/apps/components/display/AppJobIdFlowStatus.svelte +3 -3
  113. package/package/components/apps/components/display/AppText.svelte +2 -2
  114. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +8 -1
  115. package/package/components/apps/components/display/dbtable/InsertRow.svelte +5 -4
  116. package/package/components/apps/components/display/dbtable/queries/count.js +11 -1
  117. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +1 -1
  118. package/package/components/apps/components/display/dbtable/queries/createTable.js +3 -3
  119. package/package/components/apps/components/display/dbtable/queries/delete.js +7 -0
  120. package/package/components/apps/components/display/dbtable/queries/insert.js +2 -0
  121. package/package/components/apps/components/display/dbtable/queries/select.js +14 -0
  122. package/package/components/apps/components/display/dbtable/queries/update.js +7 -0
  123. package/package/components/apps/components/display/dbtable/utils.d.ts +6 -5
  124. package/package/components/apps/components/display/dbtable/utils.js +52 -28
  125. package/package/components/apps/components/display/table/AppAggridExplorerTable.svelte +1 -1
  126. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte +1 -0
  127. package/package/components/apps/components/display/table/AppAggridInfiniteTable.svelte.d.ts +1 -0
  128. package/package/components/apps/components/display/table/AppAggridTable.svelte +7 -6
  129. package/package/components/apps/components/display/table/AppAggridTable.svelte.d.ts +1 -0
  130. package/package/components/apps/components/display/table/utils.js +7 -4
  131. package/package/components/apps/components/helpers/HiddenComponent.svelte +2 -3
  132. package/package/components/apps/components/helpers/InputValue.svelte +6 -1
  133. package/package/components/apps/components/helpers/NonRunnableComponent.svelte +8 -4
  134. package/package/components/apps/components/helpers/NonRunnableComponent.svelte.d.ts +1 -1
  135. package/package/components/apps/components/helpers/RunnableComponent.svelte +10 -8
  136. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -2
  137. package/package/components/apps/components/helpers/RunnableWrapper.svelte +12 -3
  138. package/package/components/apps/components/helpers/RunnableWrapper.svelte.d.ts +1 -1
  139. package/package/components/apps/components/inputs/AppCodeInputComponent.svelte +0 -5
  140. package/package/components/apps/components/inputs/AppS3FileInput.svelte +2 -2
  141. package/package/components/apps/components/layout/AppConditionalWrapper.svelte +1 -1
  142. package/package/components/apps/components/layout/AppContainer.svelte +1 -1
  143. package/package/components/apps/components/layout/AppDecisionTree.svelte +32 -21
  144. package/package/components/apps/components/layout/AppDrawer.svelte +1 -1
  145. package/package/components/apps/components/layout/AppList.svelte +9 -8
  146. package/package/components/apps/components/layout/AppModal.svelte +1 -1
  147. package/package/components/apps/components/layout/AppSplitpanes.svelte +5 -2
  148. package/package/components/apps/components/layout/AppStepper.svelte +10 -6
  149. package/package/components/apps/components/layout/AppTabs.svelte +3 -3
  150. package/package/components/apps/editor/AppEditorHeader.svelte +13 -2
  151. package/package/components/apps/editor/AppJobsDrawer.svelte +2 -2
  152. package/package/components/apps/editor/GridEditor.svelte +24 -19
  153. package/package/components/apps/editor/GridEditor.svelte.d.ts +4 -1
  154. package/package/components/apps/editor/GridViewer.svelte +1 -0
  155. package/package/components/apps/editor/RunnableJobPanelInner.svelte +2 -1
  156. package/package/components/apps/editor/SubGridEditor.svelte +7 -11
  157. package/package/components/apps/editor/SubGridEditor.svelte.d.ts +3 -19
  158. package/package/components/apps/editor/appUtils.js +17 -68
  159. package/package/components/apps/editor/component/ComponentInner.svelte +845 -694
  160. package/package/components/apps/editor/component/componentCallbacks.svelte.js +8 -1
  161. package/package/components/apps/editor/contextPanel/components/IdEditor.svelte +7 -7
  162. package/package/components/apps/editor/contextPanel/components/IdEditor.svelte.d.ts +7 -19
  163. package/package/components/apps/editor/contextPanel/components/OutputHeader.svelte +14 -55
  164. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  165. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  166. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  167. package/package/components/apps/editor/settingsPanel/DecisionTreeGraphEditor.svelte +31 -45
  168. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +2 -1
  169. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte.d.ts +1 -0
  170. package/package/components/apps/editor/settingsPanel/decisionTree/DecisionTreePreview.svelte +1 -3
  171. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte +2 -2
  172. package/package/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte.d.ts +1 -0
  173. package/package/components/apps/svelte-grid/Grid.svelte +23 -25
  174. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +21 -9
  175. package/package/components/apps/svelte-grid/MoveResize.svelte +13 -15
  176. package/package/components/apps/svelte-grid/MoveResize.svelte.d.ts +17 -24
  177. package/package/components/apps/utils.d.ts +2 -0
  178. package/package/components/apps/utils.js +22 -0
  179. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  180. package/package/components/assets/JobAssetsViewer.svelte +2 -2
  181. package/package/components/assets/lib.js +4 -0
  182. package/package/components/auditLogs/AuditLogsFilters.svelte +7 -9
  183. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  184. package/package/components/common/button/Button.svelte +4 -3
  185. package/package/components/common/button/Button.svelte.d.ts +1 -0
  186. package/package/components/common/confirmationModal/ConfirmationModal.svelte +6 -5
  187. package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +6 -11
  188. package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.d.ts +26 -0
  189. package/package/components/common/confirmationModal/asyncConfirmationModal.svelte.js +50 -0
  190. package/package/components/common/fileDownload/FileDownload.svelte +1 -3
  191. package/package/components/common/fileDownload/FileDownload.svelte.d.ts +4 -18
  192. package/package/components/common/languageIcons/LanguageIcon.svelte +5 -2
  193. package/package/components/common/modal/Modal.svelte +2 -5
  194. package/package/components/common/tabs/TabsV2.svelte +2 -1
  195. package/package/components/common/tabs/TabsV2.svelte.d.ts +1 -0
  196. package/package/components/copilot/FlowInlineScriptAIButton.svelte +58 -0
  197. package/package/components/copilot/FlowInlineScriptAIButton.svelte.d.ts +3 -0
  198. package/package/components/copilot/MetadataGen.svelte +19 -1
  199. package/package/components/copilot/MetadataGen.svelte.d.ts +1 -1
  200. package/package/components/copilot/ScriptGen.svelte +23 -31
  201. package/package/components/copilot/ScriptGen.svelte.d.ts +0 -1
  202. package/package/components/copilot/autocomplete/Autocompletor.js +2 -0
  203. package/package/components/copilot/chat/AIChatDisplay.svelte +4 -4
  204. package/package/components/copilot/chat/AIChatInput.svelte +29 -6
  205. package/package/components/copilot/chat/AIChatManager.svelte.js +171 -33
  206. package/package/components/copilot/chat/AIChatMessage.svelte +3 -0
  207. package/package/components/copilot/chat/ContextTextarea.svelte +1 -1
  208. package/package/components/copilot/chat/ToolContentDisplay.svelte +84 -0
  209. package/package/components/copilot/chat/ToolContentDisplay.svelte.d.ts +11 -0
  210. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +105 -0
  211. package/package/components/copilot/chat/ToolExecutionDisplay.svelte.d.ts +7 -0
  212. package/package/components/copilot/chat/api/apiTools.d.ts +7 -0
  213. package/package/components/copilot/chat/api/apiTools.js +192 -0
  214. package/package/components/copilot/chat/api/core.d.ts +7 -0
  215. package/package/components/copilot/chat/api/core.js +61 -0
  216. package/package/components/copilot/chat/flow/FlowAIChat.svelte +4 -6
  217. package/package/components/copilot/chat/flow/core.js +213 -42
  218. package/package/components/copilot/chat/flow/utils.js +3 -0
  219. package/package/components/copilot/chat/monaco-adapter.d.ts +1 -1
  220. package/package/components/copilot/chat/monaco-adapter.js +10 -4
  221. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  222. package/package/components/copilot/chat/navigator/core.js +20 -22
  223. package/package/components/copilot/chat/script/core.d.ts +11 -3
  224. package/package/components/copilot/chat/script/core.js +120 -44
  225. package/package/components/copilot/chat/shared.d.ts +31 -4
  226. package/package/components/copilot/chat/shared.js +235 -10
  227. package/package/components/copilot/lib.d.ts +1 -1
  228. package/package/components/copilot/lib.js +15 -6
  229. package/package/components/custom_ui.d.ts +4 -0
  230. package/package/components/dbOps.d.ts +20 -8
  231. package/package/components/dbOps.js +85 -40
  232. package/package/components/details/DetailPageHeader.svelte +0 -2
  233. package/package/components/details/DetailPageLayout.svelte +34 -33
  234. package/package/components/flow_builder.d.ts +1 -2
  235. package/package/components/flows/FlowEditor.svelte +3 -3
  236. package/package/components/flows/FlowEditor.svelte.d.ts +7 -6
  237. package/package/components/flows/common/FlowCard.svelte +2 -2
  238. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  239. package/package/components/flows/common/FlowCardHeader.svelte +13 -4
  240. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  241. package/package/components/flows/content/BranchPredicateEditor.svelte +4 -7
  242. package/package/components/flows/content/BranchPredicateEditor.svelte.d.ts +12 -11
  243. package/package/components/flows/content/FlowConstants.svelte +3 -3
  244. package/package/components/flows/content/FlowEditorPanel.svelte +3 -3
  245. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +2 -4
  246. package/package/components/flows/content/FlowInput.svelte +5 -0
  247. package/package/components/flows/content/FlowInputsQuick.svelte +2 -1
  248. package/package/components/flows/content/FlowLoop.svelte +2 -2
  249. package/package/components/flows/content/FlowModuleComponent.svelte +130 -108
  250. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  251. package/package/components/flows/content/FlowModuleEarlyStop.svelte +2 -2
  252. package/package/components/flows/content/FlowModuleScript.svelte +0 -1
  253. package/package/components/flows/content/FlowModuleSkip.svelte +1 -1
  254. package/package/components/flows/content/FlowModuleSleep.svelte +1 -1
  255. package/package/components/flows/content/FlowModuleSuspend.svelte +1 -1
  256. package/package/components/flows/content/FlowModuleWrapper.svelte +15 -5
  257. package/package/components/flows/content/FlowModuleWrapper.svelte.d.ts +1 -0
  258. package/package/components/flows/content/FlowResult.svelte +2 -3
  259. package/package/components/flows/content/FlowResult.svelte.d.ts +2 -4
  260. package/package/components/flows/content/FlowWhileLoop.svelte +1 -1
  261. package/package/components/flows/dfs.d.ts +3 -1
  262. package/package/components/flows/dfs.js +5 -1
  263. package/package/components/flows/flowInfers.js +78 -0
  264. package/package/components/flows/flowState.d.ts +2 -3
  265. package/package/components/flows/flowState.js +2 -2
  266. package/package/components/flows/flowStateUtils.svelte.d.ts +4 -4
  267. package/package/components/flows/flowStateUtils.svelte.js +14 -13
  268. package/package/components/flows/flowStore.d.ts +3 -4
  269. package/package/components/flows/header/FlowPreviewButtons.svelte +2 -1
  270. package/package/components/flows/header/FlowYamlEditor.svelte +10 -1
  271. package/package/components/flows/idUtils.js +2 -1
  272. package/package/components/flows/map/FlowGraphPreviewButton.svelte +1 -1
  273. package/package/components/flows/map/FlowJobsMenu.svelte +7 -3
  274. package/package/components/flows/map/FlowJobsMenu.svelte.d.ts +1 -0
  275. package/package/components/flows/map/FlowModuleSchemaItem.svelte +15 -15
  276. package/package/components/flows/map/FlowModuleSchemaMap.svelte +27 -15
  277. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +6 -4
  278. package/package/components/flows/map/InsertModuleButton.svelte +4 -1
  279. package/package/components/flows/map/InsertModuleInner.svelte +9 -1
  280. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +1 -0
  281. package/package/components/flows/map/MapItem.svelte +4 -2
  282. package/package/components/flows/pickers/TopLevelNode.svelte +4 -1
  283. package/package/components/flows/propPicker/InputPickerInner.svelte +5 -4
  284. package/package/components/flows/propPicker/OutputBadge.svelte +16 -10
  285. package/package/components/flows/propPicker/OutputPickerInner.svelte +19 -6
  286. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +6 -2
  287. package/package/components/flows/propPicker/StepHistory.svelte +4 -1
  288. package/package/components/flows/testSteps.svelte.d.ts +3 -2
  289. package/package/components/flows/testSteps.svelte.js +26 -23
  290. package/package/components/flows/types.d.ts +1 -1
  291. package/package/components/flows/utils.d.ts +3 -5
  292. package/package/components/flows/utils.js +3 -4
  293. package/package/components/git_sync/DetectionFlow.svelte +202 -0
  294. package/package/components/git_sync/DetectionFlow.svelte.d.ts +6 -0
  295. package/package/components/git_sync/GitSyncContext.svelte.d.ts +82 -0
  296. package/package/components/git_sync/GitSyncContext.svelte.js +462 -0
  297. package/package/components/git_sync/GitSyncModalManager.svelte +99 -0
  298. package/package/components/git_sync/GitSyncModalManager.svelte.d.ts +18 -0
  299. package/package/components/git_sync/GitSyncRepositoryCard.svelte +339 -0
  300. package/package/components/git_sync/GitSyncRepositoryCard.svelte.d.ts +6 -0
  301. package/package/components/git_sync/GitSyncRepositoryList.svelte +17 -0
  302. package/package/components/git_sync/GitSyncRepositoryList.svelte.d.ts +18 -0
  303. package/package/components/git_sync/GitSyncSection.svelte +89 -0
  304. package/package/components/git_sync/GitSyncSection.svelte.d.ts +3 -0
  305. package/package/components/git_sync/GitSyncSuccessModal.svelte +58 -0
  306. package/package/components/git_sync/GitSyncSuccessModal.svelte.d.ts +7 -0
  307. package/package/components/git_sync/PullWorkspaceModal.svelte +575 -0
  308. package/package/components/git_sync/PullWorkspaceModal.svelte.d.ts +15 -0
  309. package/package/components/git_sync/PushWorkspaceModal.svelte +320 -0
  310. package/package/components/git_sync/PushWorkspaceModal.svelte.d.ts +12 -0
  311. package/package/components/graph/FlowGraphV2.svelte +49 -25
  312. package/package/components/graph/FlowGraphV2.svelte.d.ts +5 -2
  313. package/package/components/graph/graphBuilder.svelte.d.ts +49 -17
  314. package/package/components/graph/graphBuilder.svelte.js +31 -15
  315. package/package/components/graph/model.d.ts +9 -6
  316. package/package/components/graph/renderers/edges/BaseEdge.svelte +3 -3
  317. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +2 -3
  318. package/package/components/graph/renderers/nodes/AIToolNode.svelte +234 -0
  319. package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +24 -0
  320. package/package/components/graph/renderers/nodes/AssetNode.svelte +19 -14
  321. package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +18 -1
  322. package/package/components/graph/renderers/nodes/BranchAllEndNode.svelte +1 -1
  323. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +1 -1
  324. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +1 -1
  325. package/package/components/graph/renderers/nodes/ForLoopEndNode.svelte +2 -2
  326. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +1 -1
  327. package/package/components/graph/renderers/nodes/ModuleNode.svelte +21 -21
  328. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +64 -0
  329. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte.d.ts +7 -0
  330. package/package/components/graph/renderers/nodes/branchOneEndNode.svelte +1 -1
  331. package/package/components/icons/AssetDucklakeIcon.svelte +28 -0
  332. package/package/components/icons/AssetDucklakeIcon.svelte.d.ts +9 -0
  333. package/package/components/icons/AssetGenericIcon.svelte +3 -0
  334. package/package/components/icons/DucklakeIcon.svelte +18 -0
  335. package/package/components/icons/DucklakeIcon.svelte.d.ts +6 -0
  336. package/package/components/icons/RubyIcon.svelte +656 -0
  337. package/package/components/icons/RubyIcon.svelte.d.ts +7 -0
  338. package/package/components/instanceSettings.js +20 -3
  339. package/package/components/modulesTest.svelte.d.ts +6 -3
  340. package/package/components/modulesTest.svelte.js +32 -0
  341. package/package/components/preview/FlowPreviewStatus.svelte +3 -1
  342. package/package/components/raw_apps/RawAppEditor.svelte +27 -26
  343. package/package/components/raw_apps/RawAppEditor.svelte.d.ts +17 -17
  344. package/package/components/runs/{JobPreview.svelte → JobRunsPreview.svelte} +2 -5
  345. package/package/components/runs/{JobPreview.svelte.d.ts → JobRunsPreview.svelte.d.ts} +3 -3
  346. package/package/components/runs/NoWorkerWithTagWarning.svelte +3 -3
  347. package/package/components/runs/RunRow.svelte +5 -1
  348. package/package/components/runs/RunsFilter.svelte.d.ts +1 -1
  349. package/package/components/schema/AddProperty.svelte +41 -36
  350. package/package/components/schema/AddProperty.svelte.d.ts +2 -2
  351. package/package/components/schema/AddPropertyV2.svelte +41 -37
  352. package/package/components/schema/AddPropertyV2.svelte.d.ts +1 -1
  353. package/package/components/schema/FlowPropertyEditor.svelte +11 -8
  354. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  355. package/package/components/schema/PropertyEditor.svelte +0 -2
  356. package/package/components/schema/PropertyEditor.svelte.d.ts +1 -1
  357. package/package/components/schema/SchemaFormDND.svelte +2 -1
  358. package/package/components/schema/SchemaFormDND.svelte.d.ts +2 -0
  359. package/package/components/scriptEditor/LogPanel.svelte +5 -3
  360. package/package/components/scriptEditor/LogPanel.svelte.d.ts +5 -1
  361. package/package/components/search/RunsSearch.svelte +1 -1
  362. package/package/components/select/Select.svelte +7 -4
  363. package/package/components/select/Select.svelte.d.ts +5 -0
  364. package/package/components/select/SelectDropdown.svelte +2 -1
  365. package/package/components/select/SelectDropdown.svelte.d.ts +3 -0
  366. package/package/components/settings/CreateToken.svelte +132 -12
  367. package/package/components/settings/CreateToken.svelte.d.ts +3 -20
  368. package/package/components/settings/TokenDisplay.svelte +18 -42
  369. package/package/components/settings/TokenDisplay.svelte.d.ts +0 -1
  370. package/package/components/settings/TokensTable.svelte +2 -4
  371. package/package/components/settings/TokensTable.svelte.d.ts +3 -19
  372. package/package/components/settings/WorkspaceUserSettings.svelte +428 -69
  373. package/package/components/sidebar/MenuButton.svelte +12 -10
  374. package/package/components/sidebar/changelogs.js +5 -0
  375. package/package/components/stepHistoryLoader.svelte.d.ts +2 -2
  376. package/package/components/stepHistoryLoader.svelte.js +7 -12
  377. package/package/components/table/AutoDataTable.svelte +6 -4
  378. package/package/components/table/AutoDataTable.svelte.d.ts +1 -0
  379. package/package/components/table/DataTable.svelte +12 -10
  380. package/package/components/table/DataTable.svelte.d.ts +1 -0
  381. package/package/components/triggers/TriggerRetriesAndErrorHandler.svelte.d.ts +2 -2
  382. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte +1 -1
  383. package/package/components/triggers/gcp/GcpTriggerEditorConfigSection.svelte.d.ts +2 -1
  384. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +50 -11
  385. package/package/components/triggers/gcp/utils.js +1 -0
  386. package/package/components/triggers/http/OpenAPISpecGenerator.svelte +2 -2
  387. package/package/components/triggers/http/utils.js +1 -1
  388. package/package/components/triggers/kafka/utils.js +1 -1
  389. package/package/components/triggers/mqtt/utils.js +1 -1
  390. package/package/components/triggers/nats/utils.js +1 -1
  391. package/package/components/triggers/postgres/utils.js +1 -1
  392. package/package/components/triggers/sqs/utils.js +1 -1
  393. package/package/components/triggers/utils.js +2 -1
  394. package/package/components/triggers/webhook/WebhooksConfigSection.svelte +24 -26
  395. package/package/components/triggers/webhook/WebhooksPanel.svelte +1 -15
  396. package/package/components/triggers/websocket/utils.js +1 -1
  397. package/package/components/tutorials/FlowBuilderTutorialBranchOne.svelte +1 -1
  398. package/package/components/tutorials/FlowBuilderTutorialForLoop.svelte +4 -4
  399. package/package/components/tutorials/utils.js +3 -0
  400. package/package/components/worker_group.d.ts +4 -1
  401. package/package/components/worker_group.js +3 -2
  402. package/package/components/workspaceSettings/AISettings.svelte +52 -36
  403. package/package/components/workspaceSettings/DucklakeSettings.svelte +321 -0
  404. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +23 -0
  405. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +122 -499
  406. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte.d.ts +8 -10
  407. package/package/consts.js +2 -1
  408. package/package/editorLangUtils.d.ts +1 -1
  409. package/package/editorLangUtils.js +2 -0
  410. package/package/editorUtils.d.ts +2 -1
  411. package/package/editorUtils.js +2 -1
  412. package/package/gen/core/OpenAPI.js +1 -1
  413. package/package/gen/schemas.gen.d.ts +303 -14
  414. package/package/gen/schemas.gen.js +371 -76
  415. package/package/gen/services.gen.d.ts +136 -16
  416. package/package/gen/services.gen.js +264 -19
  417. package/package/gen/types.gen.d.ts +736 -17
  418. package/package/git-sync.d.ts +36 -0
  419. package/package/git-sync.js +1 -0
  420. package/package/hub.d.ts +1 -0
  421. package/package/hubPaths.json +9 -3
  422. package/package/infer.js +13 -3
  423. package/package/monaco_workers/graphql.worker.bundle.js +144 -110
  424. package/package/script_helpers.d.ts +5 -2
  425. package/package/script_helpers.js +87 -14
  426. package/package/scripts.d.ts +1 -1
  427. package/package/scripts.js +3 -2
  428. package/package/services/JobManager.d.ts +28 -0
  429. package/package/services/JobManager.js +114 -0
  430. package/package/stores.d.ts +3 -1
  431. package/package/stores.js +2 -0
  432. package/package/svelte5Utils.svelte.d.ts +16 -0
  433. package/package/svelte5Utils.svelte.js +26 -0
  434. package/package/utils.d.ts +19 -2
  435. package/package/utils.js +55 -2
  436. package/package.json +24 -22
  437. package/package/components/AllFlowLogs.svelte +0 -31
  438. package/package/components/AllFlowLogs.svelte.d.ts +0 -8
  439. package/package/components/InitGitRepoPopover.svelte +0 -410
  440. package/package/components/InitGitRepoPopover.svelte.d.ts +0 -13
  441. package/package/components/PullGitRepoPopover.svelte +0 -355
  442. package/package/components/PullGitRepoPopover.svelte.d.ts +0 -18
  443. package/package/components/copilot/chat/navigator/apiTools.d.ts +0 -68
  444. package/package/components/copilot/chat/navigator/apiTools.js +0 -258
  445. package/package/inferArgSig.d.ts +0 -42
  446. package/package/inferArgSig.js +0 -198
@@ -1,355 +0,0 @@
1
- <script lang="ts">import { Button } from './common';
2
- import Popover from './meltComponents/Popover.svelte';
3
- import { Loader2, Eye, Save, CheckCircle2, XCircle, DownloadCloud, AlertTriangle, Terminal, ChevronDown, ChevronUp } from 'lucide-svelte';
4
- import { workspaceStore } from '../stores';
5
- import hubPaths from '../hubPaths.json';
6
- import { JobService } from '../gen';
7
- import { tryEvery } from '../utils';
8
- import { sendUserToast } from '../toast';
9
- import GitDiffPreview from './GitDiffPreview.svelte';
10
- import { page } from '$app/stores';
11
- let { gitRepoResourcePath, uiState, onFilterUpdate } = $props();
12
- let previewResult = $state(undefined);
13
- let isPreviewLoading = $state(false);
14
- let isPulling = $state(false);
15
- let pullGitRepoPopover = $state(null);
16
- let jobStatus = $state({
17
- id: null,
18
- status: undefined,
19
- type: 'preview'
20
- });
21
- let isCliInfoExpanded = $state(false);
22
- async function handleJobCompletion(jobId, workspace) {
23
- let success = false;
24
- await tryEvery({
25
- tryCode: async () => {
26
- const result = await JobService.getCompletedJob({
27
- workspace,
28
- id: jobId
29
- });
30
- success = !!result.success;
31
- },
32
- timeoutCode: async () => {
33
- try {
34
- await JobService.cancelQueuedJob({
35
- workspace,
36
- id: jobId,
37
- requestBody: {
38
- reason: 'Job timed out after 5s'
39
- }
40
- });
41
- }
42
- catch (err) {
43
- console.error(err);
44
- }
45
- },
46
- interval: 500,
47
- timeout: 10000
48
- });
49
- return success;
50
- }
51
- async function previewChanges() {
52
- const workspace = $workspaceStore;
53
- if (!workspace)
54
- return;
55
- console.log('Previewing changes for repo:', gitRepoResourcePath);
56
- isPreviewLoading = true;
57
- jobStatus = { id: null, status: undefined, type: 'preview' };
58
- try {
59
- // Always use the simplified JSON approach
60
- const jobId = await JobService.runScriptByPath({
61
- workspace,
62
- path: hubPaths.gitInitRepo,
63
- requestBody: {
64
- workspace_id: workspace,
65
- repo_url_resource_path: gitRepoResourcePath,
66
- dry_run: true,
67
- pull: true,
68
- only_wmill_yaml: false,
69
- settings_json: JSON.stringify(uiState)
70
- },
71
- skipPreprocessor: true
72
- });
73
- jobStatus = { id: jobId, status: 'running', type: 'preview' };
74
- const success = await handleJobCompletion(jobId, workspace);
75
- if (success) {
76
- const rawResult = await JobService.getCompletedJobResult({ workspace, id: jobId });
77
- console.log('Preview result:', rawResult);
78
- // Convert new CLI format to expected format
79
- const added = [];
80
- const deleted = [];
81
- const modified = [];
82
- if (rawResult &&
83
- rawResult.changes &&
84
- Array.isArray(rawResult.changes)) {
85
- for (const change of rawResult.changes) {
86
- if (change.type === 'added') {
87
- added.push(change.path);
88
- }
89
- else if (change.type === 'deleted') {
90
- deleted.push(change.path);
91
- }
92
- else if (change.type === 'modified') {
93
- modified.push(change.path);
94
- }
95
- }
96
- }
97
- // For full sync mode, just use the CLI results directly
98
- // The CLI already handles wmill.yaml changes with --include-wmill-yaml flag
99
- previewResult = { added, deleted, modified };
100
- jobStatus.status = 'success';
101
- }
102
- else {
103
- previewResult = undefined;
104
- jobStatus.status = 'failure';
105
- }
106
- }
107
- catch (error) {
108
- console.error('Failed to preview changes:', error);
109
- previewResult = undefined;
110
- jobStatus = {
111
- ...jobStatus,
112
- status: 'failure',
113
- error: error instanceof Error ? error.message : String(error)
114
- };
115
- }
116
- finally {
117
- isPreviewLoading = false;
118
- }
119
- }
120
- async function pullFromRepo() {
121
- const workspace = $workspaceStore;
122
- if (!workspace)
123
- return;
124
- console.log('Pulling from repo:', gitRepoResourcePath);
125
- isPulling = true;
126
- jobStatus = { id: null, status: undefined, type: 'pull' };
127
- try {
128
- // Use init git repo script with dry_run: false (actual pull operation)
129
- // The script will read wmill.yaml directly from the cloned repo, no need to pass settings
130
- const jobId = await JobService.runScriptByPath({
131
- workspace,
132
- path: hubPaths.gitInitRepo,
133
- requestBody: {
134
- workspace_id: workspace,
135
- repo_url_resource_path: gitRepoResourcePath,
136
- dry_run: false,
137
- branch_to_push: '',
138
- only_wmill_yaml: false,
139
- pull: true,
140
- settings_json: undefined // Let script use wmill.yaml from repo
141
- },
142
- skipPreprocessor: true
143
- });
144
- jobStatus = { id: jobId, status: 'running', type: 'pull' };
145
- const success = await handleJobCompletion(jobId, workspace);
146
- jobStatus.status = success ? 'success' : 'failure';
147
- if (success) {
148
- // Get the result which should contain the local git repo settings as JSON
149
- const result = (await JobService.getCompletedJobResult({ workspace, id: jobId }));
150
- console.log('Pull result:', result);
151
- // Apply the settings from the sync operation result to the UI
152
- if (result?.settings_json) {
153
- // Directly update the UI state with the JSON result - no YAML conversion needed!
154
- const settingsJson = result.settings_json;
155
- onFilterUpdate({
156
- include_path: settingsJson.include_path || ['f/**'],
157
- exclude_path: settingsJson.exclude_path || [],
158
- extra_include_path: settingsJson.extra_include_path || [],
159
- include_type: settingsJson.include_type || ['script', 'flow', 'app', 'folder']
160
- });
161
- sendUserToast('Successfully pulled workspace content from repository');
162
- // Reset popover state after successful pull
163
- previewResult = undefined;
164
- jobStatus = { id: null, status: undefined, type: 'preview' };
165
- pullGitRepoPopover?.close();
166
- }
167
- else {
168
- console.warn('No settings_json returned from pull operation');
169
- sendUserToast('Pull completed but could not update filter settings', true);
170
- }
171
- }
172
- }
173
- catch (error) {
174
- console.error('Failed to pull from repo:', error);
175
- jobStatus = {
176
- ...jobStatus,
177
- status: 'failure',
178
- error: error instanceof Error ? error.message : String(error)
179
- };
180
- }
181
- finally {
182
- isPulling = false;
183
- }
184
- }
185
- </script>
186
-
187
- <Popover
188
- bind:this={pullGitRepoPopover}
189
- floatingConfig={{
190
- placement: 'top-start',
191
- strategy: 'fixed',
192
- flip: false,
193
- shift: true
194
- }}
195
- contentClasses="p-4 w-1/3"
196
- >
197
- <svelte:fragment slot="trigger">
198
- <Button
199
- color="dark"
200
- size="sm"
201
- nonCaptureEvent
202
- onclick={pullGitRepoPopover?.open}
203
- startIcon={{ icon: DownloadCloud }}
204
- >
205
- Pull workspace from Git repo
206
- </Button>
207
- </svelte:fragment>
208
-
209
- <svelte:fragment slot="content" let:close>
210
- <div class="flex flex-col gap-4">
211
- <div class="flex flex-col gap-2">
212
- <h3 class="text-lg font-semibold">Pull workspace from Git repository</h3>
213
- <div class="prose max-w-none text-2xs text-tertiary">
214
- This action will pull all workspace objects from your Git repository according to the
215
- filters set in the Git repository wmill.yaml file and apply those filter settings to the
216
- workspace.
217
- <span class="text-orange-600 flex items-center gap-1">
218
- <AlertTriangle size={14} /> This will overwrite your current workspace content and Git sync
219
- filter settings with the content from the Git repository.
220
- </span>
221
-
222
- <!-- Collapsible CLI Info Section -->
223
- <div class="mt-2 border rounded-md">
224
- <button
225
- class="w-full flex items-center justify-between p-1.5 bg-surface-secondary hover:bg-surface-hover"
226
- onclick={() => (isCliInfoExpanded = !isCliInfoExpanded)}
227
- >
228
- <span class="font-medium flex items-center gap-2">
229
- <Terminal size={14} />
230
- Windmill CLI to push local files to Windmill
231
- </span>
232
- {#if isCliInfoExpanded}
233
- <ChevronUp size={16} />
234
- {:else}
235
- <ChevronDown size={16} />
236
- {/if}
237
- </button>
238
-
239
- {#if isCliInfoExpanded}
240
- <div class="p-1 bg-surface-tertiary">
241
- <div class="text-2xs mb-2">
242
- Not familiar with Windmill CLI? <a
243
- href="https://www.windmill.dev/docs/advanced/cli/sync"
244
- class="text-blue-500 hover:text-blue-600 underline"
245
- target="_blank"
246
- rel="noopener noreferrer">Check out the docs</a
247
- >
248
- </div>
249
- <div class="font-mono text-2xs">
250
- <pre class="overflow-auto max-h-60"
251
- ><code
252
- >npm install -g windmill-cli
253
- # Clone your git repository
254
- git clone $REPO_URL
255
- cd $REPO_NAME
256
- # Configure Windmill CLI
257
- wmill workspace add {$workspaceStore} {$workspaceStore} {`${$page.url.protocol}//${$page.url.hostname}/`}
258
- # Push the content to Windmill
259
- wmill sync push --yes
260
- # Optional: add --skip-secrets --skip-variables --skip-resources flags as needed</code
261
- ></pre
262
- >
263
- </div>
264
- </div>
265
- {/if}
266
- </div>
267
- </div>
268
- </div>
269
-
270
- {#if previewResult}
271
- <GitDiffPreview {previewResult} />
272
- {/if}
273
-
274
- {#if jobStatus.id}
275
- <div class="flex items-center gap-2 text-xs text-tertiary">
276
- {#if jobStatus.status === 'running'}
277
- <Loader2 class="animate-spin" size={14} />
278
- {:else if jobStatus.status === 'success'}
279
- <CheckCircle2 size={14} class="text-green-600" />
280
- {:else if jobStatus.status === 'failure'}
281
- <XCircle size={14} class="text-red-700" />
282
- {/if}
283
- {jobStatus.type === 'preview' ? 'Preview' : 'Pull'} job:
284
- <a
285
- target="_blank"
286
- class="underline"
287
- href={`/run/${jobStatus.id}?workspace=${$workspaceStore}`}
288
- >
289
- {jobStatus.id}
290
- </a>
291
- </div>
292
- {#if jobStatus.error}
293
- <div class="text-xs text-red-600">{jobStatus.error}</div>
294
- {/if}
295
- {/if}
296
-
297
- <div class="flex justify-between items-center mt-4">
298
- <Button
299
- color="light"
300
- size="xs"
301
- on:click={() => {
302
- previewResult = undefined
303
- jobStatus = { id: null, status: undefined, type: 'preview' }
304
- close()
305
- }}
306
- disabled={isPreviewLoading || isPulling}
307
- >
308
- Cancel
309
- </Button>
310
- <div class="flex gap-2">
311
- {#if !previewResult}
312
- <Button
313
- size="xs"
314
- on:click={previewChanges}
315
- disabled={isPreviewLoading || isPulling}
316
- startIcon={{
317
- icon: isPreviewLoading ? Loader2 : Eye,
318
- classes: isPreviewLoading ? 'animate-spin' : ''
319
- }}
320
- >
321
- Preview
322
- </Button>
323
- {:else}
324
- <Button
325
- size="xs"
326
- on:click={previewChanges}
327
- disabled={isPreviewLoading || isPulling}
328
- startIcon={{
329
- icon: isPreviewLoading ? Loader2 : Eye,
330
- classes: isPreviewLoading ? 'animate-spin' : ''
331
- }}
332
- title="Preview changes again"
333
- >
334
- Preview
335
- </Button>
336
- {#if previewResult.added?.length || previewResult.deleted?.length || previewResult.modified?.length}
337
- <Button
338
- color="red"
339
- size="xs"
340
- on:click={pullFromRepo}
341
- disabled={isPreviewLoading || isPulling}
342
- startIcon={{
343
- icon: isPulling ? Loader2 : Save,
344
- classes: isPulling ? 'animate-spin' : ''
345
- }}
346
- >
347
- {isPulling ? 'Pulling...' : 'Pull'}
348
- </Button>
349
- {/if}
350
- {/if}
351
- </div>
352
- </div>
353
- </div>
354
- </svelte:fragment>
355
- </Popover>
@@ -1,18 +0,0 @@
1
- type $$ComponentProps = {
2
- gitRepoResourcePath: string;
3
- uiState: {
4
- include_path: string[];
5
- exclude_path: string[];
6
- extra_include_path: string[];
7
- include_type: string[];
8
- };
9
- onFilterUpdate: (filters: {
10
- include_path: string[];
11
- exclude_path: string[];
12
- extra_include_path: string[];
13
- include_type: string[];
14
- }) => void;
15
- };
16
- declare const PullGitRepoPopover: import("svelte").Component<$$ComponentProps, {}, "">;
17
- type PullGitRepoPopover = ReturnType<typeof PullGitRepoPopover>;
18
- export default PullGitRepoPopover;
@@ -1,68 +0,0 @@
1
- import type { ChatCompletionTool } from 'openai/resources/index.mjs';
2
- import type { Tool } from '../shared';
3
- interface OpenAPIParameter {
4
- name: string;
5
- in: string;
6
- description?: string;
7
- required?: boolean;
8
- schema?: {
9
- type?: string;
10
- format?: string;
11
- };
12
- }
13
- interface OpenAPIRequestBody {
14
- description?: string;
15
- required?: boolean;
16
- content: {
17
- [contentType: string]: {
18
- schema: {
19
- type?: string;
20
- properties?: Record<string, any>;
21
- };
22
- };
23
- };
24
- }
25
- interface OpenAPIOperation {
26
- operationId?: string;
27
- summary?: string;
28
- description?: string;
29
- parameters?: OpenAPIParameter[];
30
- requestBody?: OpenAPIRequestBody;
31
- responses?: Record<string, any>;
32
- tags?: string[];
33
- }
34
- interface OpenAPIPathItem {
35
- get?: OpenAPIOperation;
36
- post?: OpenAPIOperation;
37
- put?: OpenAPIOperation;
38
- delete?: OpenAPIOperation;
39
- patch?: OpenAPIOperation;
40
- options?: OpenAPIOperation;
41
- parameters?: OpenAPIParameter[];
42
- summary?: string;
43
- description?: string;
44
- }
45
- interface OpenAPISpec {
46
- paths: {
47
- [path: string]: OpenAPIPathItem;
48
- };
49
- components?: {
50
- parameters?: {
51
- [name: string]: OpenAPIParameter;
52
- };
53
- schemas?: {
54
- [name: string]: any;
55
- };
56
- };
57
- }
58
- export declare function buildToolsFromOpenApi(openApiSpec: OpenAPISpec, options?: {
59
- pathFilter?: (path: string) => boolean;
60
- operationFilter?: (operation: OpenAPIOperation) => boolean;
61
- methodFilter?: string[];
62
- }): {
63
- tools: ChatCompletionTool[];
64
- endpointMap: Record<string, string>;
65
- };
66
- export declare function createApiTools(chatTools: ChatCompletionTool[], endpointMap?: Record<string, string>): Tool<{}>[];
67
- export declare function loadApiTools(): Promise<Tool<{}>[]>;
68
- export {};
@@ -1,258 +0,0 @@
1
- import { get } from 'svelte/store';
2
- import { workspaceStore, enterpriseLicense } from '../../../../stores';
3
- /**
4
- * Dereferences parameter $ref references in an OpenAPI spec
5
- * Only resolves parameter references, not schemas or other components
6
- */
7
- function dereferenceParameters(spec) {
8
- if (!spec.components?.parameters) {
9
- return spec;
10
- }
11
- const resolveParameterRef = (paramRef) => {
12
- if (paramRef.$ref) {
13
- // Extract parameter name from $ref (e.g., "#/components/parameters/WorkspaceId" -> "WorkspaceId")
14
- const refPath = paramRef.$ref.split('/');
15
- if (refPath.length >= 4 && refPath[1] === 'components' && refPath[2] === 'parameters') {
16
- const paramName = refPath[3];
17
- const resolvedParam = spec.components?.parameters?.[paramName];
18
- if (resolvedParam) {
19
- return resolvedParam;
20
- }
21
- }
22
- console.warn(`Could not resolve parameter reference: ${paramRef.$ref}`);
23
- return paramRef;
24
- }
25
- return paramRef;
26
- };
27
- const processParameters = (parameters) => {
28
- return parameters.map(resolveParameterRef);
29
- };
30
- const dereferencedSpec = {
31
- ...spec,
32
- paths: {}
33
- };
34
- // Process each path
35
- for (const [pathKey, pathItem] of Object.entries(spec.paths)) {
36
- const newPathItem = { ...pathItem };
37
- // Dereference path-level parameters
38
- if (pathItem.parameters) {
39
- newPathItem.parameters = processParameters(pathItem.parameters);
40
- }
41
- // Dereference operation-level parameters
42
- const methods = ['get', 'post', 'put', 'delete', 'patch', 'options'];
43
- for (const method of methods) {
44
- const operation = pathItem[method];
45
- if (operation?.parameters) {
46
- newPathItem[method] = {
47
- ...operation,
48
- parameters: processParameters(operation.parameters)
49
- };
50
- }
51
- }
52
- dereferencedSpec.paths[pathKey] = newPathItem;
53
- }
54
- return dereferencedSpec;
55
- }
56
- const buildApiCallTools = (name, description, parameters) => {
57
- return {
58
- type: 'function',
59
- function: {
60
- name,
61
- description,
62
- parameters
63
- }
64
- };
65
- };
66
- export function buildToolsFromOpenApi(openApiSpec, options = {}) {
67
- const tools = [];
68
- const endpointMap = {};
69
- const { pathFilter, methodFilter = ['get', 'post', 'put', 'delete', 'patch'] } = options;
70
- // Iterate through all paths in the OpenAPI spec
71
- for (const [path, pathItem] of Object.entries(openApiSpec.paths)) {
72
- if (pathFilter && !pathFilter(path))
73
- continue;
74
- for (const [method, operation] of Object.entries(pathItem)) {
75
- // Skip non-operation properties
76
- if (method === 'parameters' ||
77
- method === 'servers' ||
78
- method === 'summary' ||
79
- method === 'description')
80
- continue;
81
- // Skip methods not in methodFilter
82
- if (!methodFilter.includes(method.toLowerCase()))
83
- continue;
84
- // Type cast to OpenAPIOperation
85
- const op = operation;
86
- if (!op.operationId || !op.summary) {
87
- console.error(`Operation ${method} ${path} has no operationId or summary`);
88
- continue;
89
- }
90
- // Build the parameters schema
91
- const parameters = {
92
- type: 'object',
93
- properties: {},
94
- required: []
95
- };
96
- // Process path parameters
97
- const pathParams = [...(pathItem.parameters || []), ...(op.parameters || [])].filter((p) => p.in === 'path');
98
- // Process query parameters
99
- const queryParams = (op.parameters || []).filter((p) => p.in === 'query');
100
- // Add path parameters
101
- for (const param of pathParams) {
102
- if (param.name === 'workspace') {
103
- continue;
104
- }
105
- parameters.properties[param.name] = {
106
- type: param.schema?.type || 'string',
107
- description: param.description || `Path parameter: ${param.name}`
108
- };
109
- if (param.required) {
110
- parameters.required.push(param.name);
111
- }
112
- }
113
- // Add query parameters
114
- for (const param of queryParams) {
115
- parameters.properties[param.name] = {
116
- type: param.schema?.type || 'string',
117
- description: param.description || `Query parameter: ${param.name}`
118
- };
119
- if (param.required) {
120
- parameters.required.push(param.name);
121
- }
122
- }
123
- // Handle request body if present
124
- if (op.requestBody) {
125
- const contentType = Object.keys(op.requestBody.content || {})[0];
126
- if (contentType) {
127
- const schema = op.requestBody.content[contentType].schema;
128
- if (schema) {
129
- parameters.properties.body = {
130
- type: 'object',
131
- description: op.requestBody.description || 'Request body',
132
- properties: schema.properties || {}
133
- };
134
- if (op.requestBody.required) {
135
- parameters.required.push('body');
136
- }
137
- }
138
- }
139
- }
140
- const tool = buildApiCallTools('api_' + op.operationId.replace(/\s+/g, ''), op.summary || op.description || `${method.toUpperCase()} ${path}`, parameters);
141
- // Store the endpoint path in the map
142
- endpointMap['api_' + op.operationId.replace(/\s+/g, '')] = `${method.toUpperCase()} ${path}`;
143
- tools.push(tool);
144
- }
145
- }
146
- return { tools, endpointMap };
147
- }
148
- export function createApiTools(chatTools, endpointMap = {}) {
149
- return chatTools.map((chatTool) => {
150
- return {
151
- def: chatTool,
152
- fn: async ({ args, toolId, toolCallbacks }) => {
153
- const toolName = chatTool.function.name;
154
- let endpoint = endpointMap[toolName] || '';
155
- endpoint = endpoint.replace('{workspace}', get(workspaceStore));
156
- try {
157
- // Extract method and path from endpoint
158
- const [method, path] = endpoint.split(' ', 2);
159
- if (!endpoint || !method || !path) {
160
- throw new Error(`Invalid endpoint for tool ${toolName}: ${endpoint}`);
161
- }
162
- // Build URL with path parameters
163
- let url = `/api${path}`;
164
- const queryParams = {};
165
- // Process arguments
166
- for (const [key, value] of Object.entries(args)) {
167
- if (key === 'body')
168
- continue; // Body is handled separately
169
- // Check if this is a path parameter
170
- if (url.includes(`{${key}}`)) {
171
- url = url.replace(`{${key}}`, encodeURIComponent(String(value)));
172
- }
173
- else {
174
- // Assume it's a query parameter
175
- queryParams[key] = String(value);
176
- }
177
- }
178
- // Add query parameters to URL if needed
179
- if (Object.keys(queryParams).length > 0) {
180
- const searchParams = new URLSearchParams();
181
- for (const [key, value] of Object.entries(queryParams)) {
182
- searchParams.append(key, value);
183
- }
184
- url += `?${searchParams.toString()}`;
185
- }
186
- // Log the constructed URL
187
- console.log(`Calling API: ${method} ${url} with args: ${JSON.stringify(args)}`);
188
- toolCallbacks.setToolStatus(toolId, `Calling API endpoint (${url})...`);
189
- const response = await fetch(url, {
190
- method: method
191
- });
192
- if (response.ok) {
193
- let result = '';
194
- if (response.headers.get('content-type')?.includes('application/json')) {
195
- result = await response.json();
196
- }
197
- else {
198
- result = await response.text();
199
- }
200
- toolCallbacks.setToolStatus(toolId, `API call to ${url} completed`);
201
- return JSON.stringify({
202
- success: true,
203
- data: result
204
- });
205
- }
206
- else {
207
- const text = await response.text();
208
- toolCallbacks.setToolStatus(toolId, `API call to ${url} failed`);
209
- return JSON.stringify({
210
- success: false,
211
- data: text
212
- });
213
- }
214
- }
215
- catch (error) {
216
- toolCallbacks.setToolStatus(toolId, `API call to ${endpoint} failed`);
217
- console.error(`Error calling API to ${endpoint}:`, error);
218
- return `Error calling API: ${error instanceof Error ? error.message : String(error)}`;
219
- }
220
- }
221
- };
222
- });
223
- }
224
- export async function loadApiTools() {
225
- try {
226
- const response = await fetch('/api/openapi.json');
227
- const rawOpenApiSpec = (await response.json());
228
- // Dereference parameter references
229
- const openApiSpec = dereferenceParameters(rawOpenApiSpec);
230
- const pathsToInclude = [
231
- 'jobs',
232
- 'jobs_u',
233
- 'scripts',
234
- 'flows',
235
- 'resources',
236
- 'variables',
237
- 'schedules',
238
- 'workers'
239
- ];
240
- // call srch endpoint to check if it's available
241
- if (get(enterpriseLicense)) {
242
- const srchResponse = await fetch(`/api/srch/index/search/enabled`);
243
- if (srchResponse.ok) {
244
- pathsToInclude.push('srch/w'); // job search
245
- }
246
- }
247
- const { tools: apiTools, endpointMap } = buildToolsFromOpenApi(openApiSpec, {
248
- pathFilter: (path) => pathsToInclude.some((p) => path.includes(`/${p}/`)),
249
- methodFilter: ['get']
250
- });
251
- const executableApiTools = createApiTools(apiTools, endpointMap);
252
- return executableApiTools;
253
- }
254
- catch (error) {
255
- console.error('Failed to load API tools:', error);
256
- return [];
257
- }
258
- }