windmill-components 1.532.0 → 1.542.4

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 (371) hide show
  1. package/package/components/AIProviderPicker.svelte +181 -0
  2. package/package/components/AIProviderPicker.svelte.d.ts +15 -0
  3. package/package/components/ArgInfo.svelte +2 -2
  4. package/package/components/ArgInput.svelte +60 -27
  5. package/package/components/ArgInput.svelte.d.ts +3 -3
  6. package/package/components/AssignableTagsInner.svelte +89 -3
  7. package/package/components/Auth0Setting.svelte +8 -3
  8. package/package/components/ConcurrentJobsChart.svelte +36 -48
  9. package/package/components/ConcurrentJobsChart.svelte.d.ts +8 -20
  10. package/package/components/CustomPopover.svelte.d.ts +1 -1
  11. package/package/components/Dev.svelte +5 -4
  12. package/package/components/DiffDrawer.svelte +2 -2
  13. package/package/components/DiffEditor.svelte +34 -37
  14. package/package/components/DiffEditor.svelte.d.ts +23 -39
  15. package/package/components/DropdownSelect.svelte +26 -0
  16. package/package/components/DropdownSelect.svelte.d.ts +11 -0
  17. package/package/components/DropdownV2Inner.svelte +1 -1
  18. package/package/components/{DynSelect.svelte → DynamicInput.svelte} +47 -15
  19. package/package/components/DynamicInput.svelte.d.ts +11 -0
  20. package/package/components/EditableSchemaForm.svelte +155 -140
  21. package/package/components/EditableSchemaForm.svelte.d.ts +6 -7
  22. package/package/components/Editor.svelte +101 -87
  23. package/package/components/Editor.svelte.d.ts +7 -1
  24. package/package/components/EditorBar.svelte +2 -5
  25. package/package/components/FlowBuilder.svelte +10 -7
  26. package/package/components/FlowLogRow.svelte +64 -0
  27. package/package/components/FlowLogRow.svelte.d.ts +15 -0
  28. package/package/components/FlowLogViewer.svelte +406 -373
  29. package/package/components/FlowLogViewer.svelte.d.ts +5 -1
  30. package/package/components/FlowLogViewerWrapper.svelte +44 -1
  31. package/package/components/FlowLoopIterationPreview.svelte.d.ts +1 -1
  32. package/package/components/FlowPreviewContent.svelte +3 -3
  33. package/package/components/FlowPreviewContent.svelte.d.ts +1 -1
  34. package/package/components/FlowStatusViewer.svelte +28 -0
  35. package/package/components/FlowStatusViewerInner.svelte +106 -23
  36. package/package/components/FlowStatusViewerInner.svelte.d.ts +7 -0
  37. package/package/components/FolderPicker.svelte +1 -1
  38. package/package/components/InputTransformForm.svelte +20 -10
  39. package/package/components/JobArgs.svelte +1 -1
  40. package/package/components/JobLoader.svelte.d.ts +1 -1
  41. package/package/components/JobStatus.svelte +2 -0
  42. package/package/components/LogSnippetViewer.svelte +3 -3
  43. package/package/components/LogSnippetViewer.svelte.d.ts +1 -1
  44. package/package/components/LogViewer.svelte +87 -71
  45. package/package/components/LogViewer.svelte.d.ts +1 -0
  46. package/package/components/ModulePreview.svelte +2 -1
  47. package/package/components/ModulePreview.svelte.d.ts +1 -0
  48. package/package/components/ModulePreviewForm.svelte +72 -65
  49. package/package/components/ModulePreviewResultViewer.svelte +13 -18
  50. package/package/components/ModuleTest.svelte +6 -5
  51. package/package/components/ModuleTest.svelte.d.ts +1 -0
  52. package/package/components/OktaSetting.svelte +8 -3
  53. package/package/components/Path.svelte +7 -1
  54. package/package/components/Path.svelte.d.ts +1 -1
  55. package/package/components/Portal.svelte +11 -7
  56. package/package/components/Portal.svelte.d.ts +19 -39
  57. package/package/components/PrefixedInput.svelte +120 -0
  58. package/package/components/PrefixedInput.svelte.d.ts +8 -0
  59. package/package/components/QueuePosition.svelte +81 -0
  60. package/package/components/QueuePosition.svelte.d.ts +8 -0
  61. package/package/components/ResourceNarrowing.svelte +13 -0
  62. package/package/components/ResourceNarrowing.svelte.d.ts +6 -0
  63. package/package/components/ResourceTypePicker.svelte +49 -74
  64. package/package/components/RunChart.svelte +74 -89
  65. package/package/components/RunChart.svelte.d.ts +10 -22
  66. package/package/components/RunForm.svelte +2 -2
  67. package/package/components/RunForm.svelte.d.ts +1 -1
  68. package/package/components/RunFormAdvancedPopup.svelte +13 -1
  69. package/package/components/S3FilePicker.svelte +1 -1
  70. package/package/components/SchemaForm.svelte +1 -2
  71. package/package/components/SchemaForm.svelte.d.ts +2 -2
  72. package/package/components/ScriptBuilder.svelte +3 -2
  73. package/package/components/ScriptEditor.svelte +25 -10
  74. package/package/components/ScriptEditor.svelte.d.ts +2 -1
  75. package/package/components/ServiceLogsInner.svelte +1 -1
  76. package/package/components/ShareModal.svelte.d.ts +1 -1
  77. package/package/components/SimpleEditor.svelte +4 -68
  78. package/package/components/StringTypeNarrowing.svelte +5 -10
  79. package/package/components/TemplateEditor.svelte +2 -16
  80. package/package/components/TimeAgo.svelte +1 -1
  81. package/package/components/TimeAgo.svelte.d.ts +1 -0
  82. package/package/components/Toggle.svelte +2 -1
  83. package/package/components/Toggle.svelte.d.ts +2 -1
  84. package/package/components/WorkerRepl.svelte +1 -1
  85. package/package/components/apps/components/display/AppNavbarItem.svelte +2 -1
  86. package/package/components/apps/components/display/table/AppAggridTable.svelte +44 -48
  87. package/package/components/apps/components/display/table/SyncColumnDefs.svelte +101 -19
  88. package/package/components/apps/components/display/table/SyncColumnDefs.svelte.d.ts +5 -2
  89. package/package/components/apps/components/display/table/utils.js +36 -5
  90. package/package/components/apps/components/inputs/currency/CurrencyInput.svelte +10 -5
  91. package/package/components/apps/components/layout/AppModal.svelte +2 -2
  92. package/package/components/apps/editor/AppEditor.svelte +4 -3
  93. package/package/components/apps/editor/AppEditorHeader.svelte +0 -1
  94. package/package/components/apps/editor/GridViewer.svelte.d.ts +11 -4
  95. package/package/components/apps/editor/SettingsPanel.svelte +2 -2
  96. package/package/components/apps/editor/component/ComponentNavigation.svelte +3 -2
  97. package/package/components/apps/editor/componentsPanel/ListItem.svelte +2 -2
  98. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +1 -1
  99. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte.d.ts +1 -1
  100. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditorDrawer.svelte.d.ts +1 -1
  101. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +0 -1
  102. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +1 -1
  103. package/package/components/apps/editor/settingsPanel/ArrayStaticInputEditor.svelte +29 -4
  104. package/package/components/apps/editor/settingsPanel/GridCondition.svelte +3 -1
  105. package/package/components/apps/editor/settingsPanel/GridNavbar.svelte +3 -1
  106. package/package/components/apps/editor/settingsPanel/GridTab.svelte +3 -1
  107. package/package/components/apps/editor/settingsPanel/InputsSpecEditor.svelte +1 -1
  108. package/package/components/apps/editor/settingsPanel/OneOfInputSpecsEditor.svelte +55 -53
  109. package/package/components/apps/editor/settingsPanel/TableActions.svelte +3 -1
  110. package/package/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte +13 -5
  111. package/package/components/apps/svelte-grid/Grid.svelte.d.ts +30 -11
  112. package/package/components/assets/JobAssetsViewer.svelte +28 -24
  113. package/package/components/auditLogs/AuditLogsTable.svelte +2 -6
  114. package/package/components/chartjs-wrappers/Chart.svelte.d.ts +14 -7
  115. package/package/components/common/OnChange.svelte.d.ts +11 -4
  116. package/package/components/common/badge/Badge.svelte +9 -2
  117. package/package/components/common/badge/Badge.svelte.d.ts +2 -1
  118. package/package/components/common/button/model.d.ts +1 -1
  119. package/package/components/common/calendarPicker/CalendarPicker.svelte +5 -1
  120. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +5 -4
  121. package/package/components/common/drawer/Disposable.svelte +45 -26
  122. package/package/components/common/drawer/Disposable.svelte.d.ts +12 -44
  123. package/package/components/common/drawer/Drawer.svelte +17 -14
  124. package/package/components/common/drawer/Drawer.svelte.d.ts +1 -0
  125. package/package/components/common/menu/MenuItem.svelte.d.ts +2 -2
  126. package/package/components/common/modal/Modal.svelte.d.ts +1 -1
  127. package/package/components/common/tabs/TabContent.svelte +2 -7
  128. package/package/components/common/tabs/TabContent.svelte.d.ts +5 -27
  129. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte +9 -3
  130. package/package/components/common/toggleButton-v2/ToggleButtonGroup.svelte.d.ts +1 -0
  131. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte +8 -4
  132. package/package/components/common/toggleButton-v2/ToggleButtonMore.svelte.d.ts +1 -0
  133. package/package/components/copilot/MetadataGen.svelte +14 -3
  134. package/package/components/copilot/chat/AIChatInput.svelte +0 -1
  135. package/package/components/copilot/chat/AIChatManager.svelte.js +26 -104
  136. package/package/components/copilot/chat/AssistantMessage.svelte +0 -4
  137. package/package/components/copilot/chat/AvailableContextList.svelte +192 -66
  138. package/package/components/copilot/chat/AvailableContextList.svelte.d.ts +2 -2
  139. package/package/components/copilot/chat/ContextElementBadge.svelte +3 -3
  140. package/package/components/copilot/chat/ContextManager.svelte.js +36 -13
  141. package/package/components/copilot/chat/ContextTextarea.svelte +21 -48
  142. package/package/components/copilot/chat/ToolContentDisplay.svelte +10 -1
  143. package/package/components/copilot/chat/ToolExecutionDisplay.svelte +3 -3
  144. package/package/components/copilot/chat/anthropic.d.ts +15 -0
  145. package/package/components/copilot/chat/anthropic.js +208 -0
  146. package/package/components/copilot/chat/api/apiTools.d.ts +2 -2
  147. package/package/components/copilot/chat/api/apiTools.js +10 -7
  148. package/package/components/copilot/chat/api/core.d.ts +1 -1
  149. package/package/components/copilot/chat/api/core.js +7 -2
  150. package/package/components/copilot/chat/ask/core.d.ts +1 -1
  151. package/package/components/copilot/chat/ask/core.js +7 -2
  152. package/package/components/copilot/chat/context.d.ts +7 -2
  153. package/package/components/copilot/chat/flow/FlowAIChat.svelte +110 -8
  154. package/package/components/copilot/chat/flow/core.d.ts +12 -1
  155. package/package/components/copilot/chat/flow/core.js +133 -5
  156. package/package/components/copilot/chat/flow/uiIntents.d.ts +8 -0
  157. package/package/components/copilot/chat/flow/uiIntents.js +5 -0
  158. package/package/components/copilot/chat/flow/useUiIntent.d.ts +5 -0
  159. package/package/components/copilot/chat/flow/useUiIntent.js +12 -0
  160. package/package/components/copilot/chat/monaco-adapter.d.ts +23 -4
  161. package/package/components/copilot/chat/monaco-adapter.js +55 -16
  162. package/package/components/copilot/chat/navigator/core.d.ts +1 -1
  163. package/package/components/copilot/chat/navigator/core.js +7 -2
  164. package/package/components/copilot/chat/script/CodeDisplay.svelte +10 -111
  165. package/package/components/copilot/chat/script/core.d.ts +5 -4
  166. package/package/components/copilot/chat/script/core.js +134 -21
  167. package/package/components/copilot/chat/shared.d.ts +10 -9
  168. package/package/components/copilot/chat/shared.js +24 -12
  169. package/package/components/copilot/lib.d.ts +29 -8
  170. package/package/components/copilot/lib.js +211 -31
  171. package/package/components/copilot/shared.d.ts +1 -1
  172. package/package/components/copilot/shared.js +16 -10
  173. package/package/components/flows/FlowEditor.svelte +4 -2
  174. package/package/components/flows/FlowEditor.svelte.d.ts +1 -0
  175. package/package/components/flows/FlowModuleIcon.svelte +8 -8
  176. package/package/components/flows/common/FlowCardHeader.svelte +4 -1
  177. package/package/components/flows/content/FlowBranchesAllWrapper.svelte +6 -0
  178. package/package/components/flows/content/FlowBranchesOneWrapper.svelte +6 -0
  179. package/package/components/flows/content/FlowEditorPanel.svelte +2 -1
  180. package/package/components/flows/content/FlowEditorPanel.svelte.d.ts +1 -0
  181. package/package/components/flows/content/FlowInput.svelte +36 -39
  182. package/package/components/flows/content/FlowInput.svelte.d.ts +1 -0
  183. package/package/components/flows/content/FlowLoop.svelte +7 -0
  184. package/package/components/flows/content/FlowModuleComponent.svelte +42 -46
  185. package/package/components/flows/content/FlowModuleEarlyStop.svelte +47 -17
  186. package/package/components/flows/content/FlowModuleScript.svelte +1 -1
  187. package/package/components/flows/content/FlowModuleSleep.svelte +4 -1
  188. package/package/components/flows/content/FlowModuleSuspend.svelte +15 -18
  189. package/package/components/flows/content/FlowModuleTimeout.svelte +50 -10
  190. package/package/components/flows/content/FlowModuleTimeout.svelte.d.ts +1 -0
  191. package/package/components/flows/content/FlowRetries.svelte +108 -3
  192. package/package/components/flows/content/FlowRetries.svelte.d.ts +3 -2
  193. package/package/components/flows/content/FlowWhileLoop.svelte +6 -0
  194. package/package/components/flows/content/ScriptEditorDrawer.svelte +9 -11
  195. package/package/components/flows/dfs.d.ts +1 -1
  196. package/package/components/flows/dfs.js +6 -6
  197. package/package/components/flows/flowInfers.js +15 -42
  198. package/package/components/flows/flowStateUtils.svelte.js +1 -2
  199. package/package/components/flows/flowStore.d.ts +45 -1
  200. package/package/components/flows/flowStore.js +1 -1
  201. package/package/components/flows/map/FlowJobsMenu.svelte +3 -3
  202. package/package/components/flows/map/FlowModuleSchemaItem.svelte +73 -80
  203. package/package/components/flows/map/FlowModuleSchemaItem.svelte.d.ts +1 -1
  204. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -1
  205. package/package/components/flows/map/InsertModuleButton.svelte +1 -0
  206. package/package/components/flows/map/InsertModuleInner.svelte +12 -15
  207. package/package/components/flows/map/InsertModuleInner.svelte.d.ts +10 -9
  208. package/package/components/flows/map/MapItem.svelte +8 -4
  209. package/package/components/flows/map/VirtualItem.svelte +1 -1
  210. package/package/components/flows/pickers/TopLevelNode.svelte +1 -1
  211. package/package/components/flows/propPicker/InputPickerInner.svelte +5 -5
  212. package/package/components/flows/propPicker/OutputPickerInner.svelte +143 -118
  213. package/package/components/flows/propPicker/OutputPickerInner.svelte.d.ts +7 -16
  214. package/package/components/flows/{testSteps.svelte.d.ts → stepsInputArgs.svelte.d.ts} +2 -1
  215. package/package/components/flows/{testSteps.svelte.js → stepsInputArgs.svelte.js} +15 -3
  216. package/package/components/flows/types.d.ts +16 -3
  217. package/package/components/flows/utils.js +3 -0
  218. package/package/components/git_sync/DetectionFlow.svelte +15 -17
  219. package/package/components/git_sync/GitSyncContext.svelte.js +1 -1
  220. package/package/components/git_sync/GitSyncRepositoryCard.svelte +0 -1
  221. package/package/components/graph/FlowGraphV2.svelte +1 -1
  222. package/package/components/graph/graphBuilder.svelte.d.ts +5 -1
  223. package/package/components/graph/renderers/edges/BaseEdge.svelte +9 -1
  224. package/package/components/graph/renderers/edges/BaseEdge.svelte.d.ts +4 -1
  225. package/package/components/graph/renderers/nodes/AIToolNode.svelte +4 -4
  226. package/package/components/graph/renderers/nodes/BranchAllStart.svelte +2 -3
  227. package/package/components/graph/renderers/nodes/BranchOneStart.svelte +2 -3
  228. package/package/components/graph/renderers/nodes/NewAIToolNode.svelte +71 -54
  229. package/package/components/graph/renderers/triggers/TriggerButton.svelte.d.ts +1 -1
  230. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +3 -1
  231. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +34 -24
  232. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte.d.ts +1 -2
  233. package/package/components/home/ItemsList.svelte +17 -13
  234. package/package/components/home/TreeView.svelte +21 -27
  235. package/package/components/home/TreeView.svelte.d.ts +2 -29
  236. package/package/components/home/TreeViewRoot.svelte +11 -23
  237. package/package/components/home/TreeViewRoot.svelte.d.ts +15 -13
  238. package/package/components/icons/GitIcon.svelte +10 -2
  239. package/package/components/icons/GitIcon.svelte.d.ts +1 -0
  240. package/package/components/meltComponents/MeltButton.svelte.d.ts +1 -1
  241. package/package/components/meltComponents/Popover.svelte +23 -3
  242. package/package/components/meltComponents/Popover.svelte.d.ts +2 -1
  243. package/package/components/monacoLanguagesOptions.d.ts +3 -0
  244. package/package/components/monacoLanguagesOptions.js +109 -0
  245. package/package/components/propertyPicker/ObjectViewer.svelte +18 -5
  246. package/package/components/propertyPicker/PropPicker.svelte +1 -1
  247. package/package/components/propertyPicker/utils.js +14 -7
  248. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +1 -1
  249. package/package/components/runs/JobRunsPreview.svelte +212 -177
  250. package/package/components/runs/JobsLoader.svelte +2 -2
  251. package/package/components/runs/JobsLoader.svelte.d.ts +1 -1
  252. package/package/components/runs/NoWorkerWithTagWarning.svelte +18 -5
  253. package/package/components/runs/RunBadges.svelte +100 -0
  254. package/package/components/runs/RunBadges.svelte.d.ts +12 -0
  255. package/package/components/runs/RunLabels.svelte +86 -0
  256. package/package/components/runs/RunLabels.svelte.d.ts +10 -0
  257. package/package/components/runs/RunOption.svelte +20 -0
  258. package/package/components/runs/RunOption.svelte.d.ts +10 -0
  259. package/package/components/runs/RunRow.svelte +239 -151
  260. package/package/components/runs/RunRow.svelte.d.ts +12 -9
  261. package/package/components/runs/RunsBatchActionsDropdown.svelte +13 -17
  262. package/package/components/runs/RunsBatchActionsDropdown.svelte.d.ts +5 -18
  263. package/package/components/runs/RunsFilter.svelte +369 -243
  264. package/package/components/runs/RunsFilter.svelte.d.ts +2 -0
  265. package/package/components/runs/RunsQueue.svelte +96 -25
  266. package/package/components/runs/RunsQueue.svelte.d.ts +7 -21
  267. package/package/components/runs/RunsTable.svelte +62 -71
  268. package/package/components/runs/RunsTable.svelte.d.ts +2 -1
  269. package/package/components/runs/runs-grid.css +95 -0
  270. package/package/components/schema/AddPropertyV2.svelte +2 -7
  271. package/package/components/schema/AddPropertyV2.svelte.d.ts +3 -20
  272. package/package/components/schema/EditableSchemaDrawer.svelte +121 -127
  273. package/package/components/schema/EditableSchemaDrawer.svelte.d.ts +2 -1
  274. package/package/components/schema/EditableSchemaSdkWrapper.svelte +16 -3
  275. package/package/components/schema/EditableSchemaSdkWrapper.svelte.d.ts +4 -1
  276. package/package/components/schema/EditableSchemaWrapper.svelte +3 -10
  277. package/package/components/schema/FlowPropertyEditor.svelte +195 -236
  278. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +1 -1
  279. package/package/components/schema/PropertyEditor.svelte +33 -35
  280. package/package/components/schema/SchemaFormDND.svelte +11 -10
  281. package/package/components/schema/SchemaFormDND.svelte.d.ts +4 -3
  282. package/package/components/schema/editable_schema_wrapper.d.ts +0 -3
  283. package/package/components/search/GlobalSearchModal.svelte +8 -1
  284. package/package/components/select/DraggableTags.svelte.d.ts +17 -7
  285. package/package/components/select/MultiSelect.svelte.d.ts +21 -11
  286. package/package/components/select/Select.svelte +2 -1
  287. package/package/components/select/Select.svelte.d.ts +25 -13
  288. package/package/components/select/SelectDropdown.svelte.d.ts +14 -7
  289. package/package/components/settings/PremiumInfo.svelte +7 -2
  290. package/package/components/settings/TokenDisplay.svelte +1 -1
  291. package/package/components/sidebar/OperatorMenu.svelte +5 -0
  292. package/package/components/sidebar/SidebarContent.svelte +48 -2
  293. package/package/components/sidebar/WorkspaceMenu.svelte +116 -17
  294. package/package/components/toast.js +6 -3
  295. package/package/components/triggers/AddTriggersButton.svelte +7 -6
  296. package/package/components/triggers/CaptureWrapper.svelte +21 -16
  297. package/package/components/triggers/CaptureWrapper.svelte.d.ts +1 -1
  298. package/package/components/triggers/TriggerLabel.svelte +8 -0
  299. package/package/components/triggers/TriggerTokens.svelte +1 -1
  300. package/package/components/triggers/TriggersEditor.svelte +9 -5
  301. package/package/components/triggers/TriggersTable.svelte +2 -2
  302. package/package/components/triggers/TriggersWrapper.svelte +17 -5
  303. package/package/components/triggers/TriggersWrapper.svelte.d.ts +3 -19
  304. package/package/components/{details/EmailTriggerCaptures.svelte → triggers/email/DefaultEmailCapture.svelte} +5 -5
  305. package/package/components/{details/EmailTriggerCaptures.svelte.d.ts → triggers/email/DefaultEmailCapture.svelte.d.ts} +4 -4
  306. package/package/components/{details/EmailTriggerConfigSection.svelte → triggers/email/DefaultEmailConfigSection.svelte} +24 -14
  307. package/package/components/triggers/email/DefaultEmailConfigSection.svelte.d.ts +13 -0
  308. package/package/components/triggers/email/DefaultEmailPanel.svelte +71 -0
  309. package/package/components/triggers/email/DefaultEmailPanel.svelte.d.ts +11 -0
  310. package/package/components/triggers/email/EmailCapture.svelte +39 -0
  311. package/package/components/triggers/email/EmailCapture.svelte.d.ts +43 -0
  312. package/package/components/triggers/email/EmailTriggerEditor.svelte +20 -0
  313. package/package/components/triggers/email/EmailTriggerEditor.svelte.d.ts +11 -0
  314. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte +133 -0
  315. package/package/components/triggers/email/EmailTriggerEditorConfigSection.svelte.d.ts +14 -0
  316. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +335 -0
  317. package/package/components/triggers/email/EmailTriggerEditorInner.svelte.d.ts +22 -0
  318. package/package/components/triggers/email/EmailTriggerPanel.svelte +61 -0
  319. package/package/components/triggers/email/EmailTriggerPanel.svelte.d.ts +14 -0
  320. package/package/components/triggers/email/utils.d.ts +4 -0
  321. package/package/components/triggers/email/utils.js +52 -0
  322. package/package/components/triggers/http/RouteEditorConfigSection.svelte +1 -1
  323. package/package/components/triggers/http/RouteEditorInner.svelte +1 -1
  324. package/package/components/triggers/http/utils.js +1 -1
  325. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +23 -20
  326. package/package/components/triggers/nats/NatsTriggersConfigSection.svelte +15 -27
  327. package/package/components/triggers/nats/NatsTriggersConfigSection.svelte.d.ts +7 -5
  328. package/package/components/triggers/triggers.svelte.d.ts +1 -0
  329. package/package/components/triggers/triggers.svelte.js +24 -2
  330. package/package/components/triggers/utils.js +19 -5
  331. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +16 -16
  332. package/package/components/triggers.d.ts +1 -1
  333. package/package/components/triggers.js +2 -0
  334. package/package/components/wizards/AgGridWizard.svelte +85 -80
  335. package/package/components/workspaceSettings/AISettings.svelte +74 -22
  336. package/package/components/workspaceSettings/AISettings.svelte.d.ts +2 -1
  337. package/package/components/workspaceSettings/CreateWorkspace.svelte +395 -0
  338. package/package/components/workspaceSettings/CreateWorkspace.svelte.d.ts +6 -0
  339. package/package/components/workspaceSettings/DucklakeSettings.svelte +3 -1
  340. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +1 -1
  341. package/package/components/workspaceSettings/StorageSettings.svelte +69 -48
  342. package/package/gen/core/OpenAPI.js +1 -1
  343. package/package/gen/schemas.gen.d.ts +142 -3
  344. package/package/gen/schemas.gen.js +144 -3
  345. package/package/gen/services.gen.d.ts +129 -1
  346. package/package/gen/services.gen.js +267 -1
  347. package/package/gen/types.gen.d.ts +434 -8
  348. package/package/hubPaths.json +6 -2
  349. package/package/infer.js +1 -1
  350. package/package/keyboardChain.d.ts +5 -0
  351. package/package/keyboardChain.js +40 -0
  352. package/package/script_helpers.d.ts +2 -2
  353. package/package/script_helpers.js +2 -0
  354. package/package/services/JobManager.js +2 -2
  355. package/package/stores.d.ts +4 -1
  356. package/package/stores.js +16 -6
  357. package/package/utils/workspaceHierarchy.d.ts +27 -0
  358. package/package/utils/workspaceHierarchy.js +101 -0
  359. package/package/utils.d.ts +6 -3
  360. package/package/utils.js +30 -15
  361. package/package/workspace_settings.js +2 -3
  362. package/package.json +10 -12
  363. package/package/components/DynSelect.svelte.d.ts +0 -11
  364. package/package/components/ModulePreviewResultViewer.svelte.d.ts +0 -28
  365. package/package/components/ObjectTypeNarrowing.svelte +0 -18
  366. package/package/components/ObjectTypeNarrowing.svelte.d.ts +0 -22
  367. package/package/components/details/DetailPageTriggerPanel.svelte +0 -121
  368. package/package/components/details/DetailPageTriggerPanel.svelte.d.ts +0 -20
  369. package/package/components/details/EmailTriggerConfigSection.svelte.d.ts +0 -12
  370. package/package/components/details/EmailTriggerPanel.svelte +0 -76
  371. package/package/components/details/EmailTriggerPanel.svelte.d.ts +0 -26
@@ -10,7 +10,7 @@ let contextTooltipWord = $state('');
10
10
  let tooltipPosition = $state({ x: 0, y: 0 });
11
11
  let textarea = $state(undefined);
12
12
  let tooltipElement = $state(undefined);
13
- let selectedSuggestionIndex = $state(0);
13
+ let tooltipCurrentViewNumber = $state(0);
14
14
  // Properties to copy for caret position calculation
15
15
  const properties = [
16
16
  'direction',
@@ -142,18 +142,17 @@ function handleContextSelection(contextElement) {
142
142
  updateInstructionsWithContext(contextElement);
143
143
  showContextTooltip = false;
144
144
  }
145
- async function updateTooltipPosition(availableContext, showContextTooltip, contextTooltipWord) {
146
- if (!textarea || !showContextTooltip)
145
+ async function updateTooltipPosition(currentViewItemsNumber) {
146
+ if (!textarea)
147
147
  return;
148
148
  try {
149
149
  const coords = getCaretCoordinates(textarea, textarea.selectionEnd);
150
150
  const rect = textarea.getBoundingClientRect();
151
- const filteredAvailableContext = availableContext.filter((c) => !contextTooltipWord || c.title.toLowerCase().includes(contextTooltipWord.slice(1)));
152
151
  const itemHeight = 28; // Estimated height of one item + gap (Button: p-1(8px) + text-xs(16px) = 24px; Parent: gap-1(4px) = 28px)
153
152
  const containerPadding = 8; // p-1 top + p-1 bottom = 4px + 4px = 8px
154
153
  const maxHeight = 192 + containerPadding; // max-h-48 (192px) + containerPadding (8px)
155
154
  // Calculate uncapped height, subtract gap from last item as it's not needed
156
- const numItems = filteredAvailableContext.length;
155
+ const numItems = currentViewItemsNumber;
157
156
  let uncappedHeight = numItems > 0 ? numItems * itemHeight - 4 + containerPadding : containerPadding;
158
157
  // Ensure height is at least containerPadding even if no items
159
158
  uncappedHeight = Math.max(uncappedHeight, containerPadding);
@@ -211,59 +210,29 @@ function handleInput(e) {
211
210
  else {
212
211
  showContextTooltip = false;
213
212
  contextTooltipWord = '';
214
- selectedSuggestionIndex = 0;
215
- }
216
- }
217
- function handleKeyPress(e) {
218
- if (e.key === 'Enter' && !e.shiftKey) {
219
- e.preventDefault();
220
- if (contextTooltipWord) {
221
- const filteredContext = availableContext.filter((c) => !contextTooltipWord || c.title.toLowerCase().includes(contextTooltipWord.slice(1)));
222
- const contextElement = filteredContext[selectedSuggestionIndex];
223
- if (contextElement) {
224
- const isInSelectedContext = selectedContext.find((c) => c.title === contextElement.title && c.type === contextElement.type);
225
- // If the context element is already in the selected context and the last word in the instructions is the same as the context element title, send request
226
- if (isInSelectedContext && value.split(' ').pop() === '@' + contextElement.title) {
227
- onSendRequest();
228
- return;
229
- }
230
- handleContextSelection(contextElement);
231
- }
232
- else if (contextTooltipWord === '@' && availableContext.length > 0) {
233
- handleContextSelection(availableContext[0]);
234
- }
235
- }
236
- else {
237
- onSendRequest();
238
- }
239
213
  }
240
214
  }
241
215
  function handleKeyDown(e) {
216
+ // Pass to parent first if provided
242
217
  if (onKeyDown) {
243
218
  onKeyDown(e);
244
219
  }
245
- if (!showContextTooltip)
246
- return;
247
- const filteredContext = availableContext.filter((c) => !contextTooltipWord || c.title.toLowerCase().includes(contextTooltipWord.slice(1)));
248
- if (e.key === 'Tab') {
249
- e.preventDefault();
250
- const contextElement = filteredContext[selectedSuggestionIndex];
251
- if (contextElement) {
252
- handleContextSelection(contextElement);
220
+ if (showContextTooltip) {
221
+ // avoid new line after Enter in the tooltip
222
+ if (e.key === 'Enter') {
223
+ e.preventDefault();
253
224
  }
225
+ return;
254
226
  }
255
- if (e.key === 'ArrowDown') {
256
- e.preventDefault();
257
- selectedSuggestionIndex = (selectedSuggestionIndex + 1) % filteredContext.length;
258
- }
259
- else if (e.key === 'ArrowUp') {
227
+ if (e.key === 'Enter' && !e.shiftKey) {
260
228
  e.preventDefault();
261
- selectedSuggestionIndex =
262
- (selectedSuggestionIndex - 1 + filteredContext.length) % filteredContext.length;
229
+ onSendRequest();
263
230
  }
264
231
  }
265
232
  $effect(() => {
266
- updateTooltipPosition(availableContext, showContextTooltip, contextTooltipWord);
233
+ if (showContextTooltip) {
234
+ updateTooltipPosition(tooltipCurrentViewNumber);
235
+ }
267
236
  });
268
237
  export function focus() {
269
238
  textarea?.focus();
@@ -283,7 +252,6 @@ export function focus() {
283
252
  </div>
284
253
  <textarea
285
254
  bind:this={textarea}
286
- onkeypress={handleKeyPress}
287
255
  onkeydown={handleKeyDown}
288
256
  bind:value
289
257
  use:autosize
@@ -319,7 +287,12 @@ export function focus() {
319
287
  }}
320
288
  showAllAvailable={true}
321
289
  stringSearch={contextTooltipWord.slice(1)}
322
- selectedIndex={selectedSuggestionIndex}
290
+ onViewChange={(newNumber) => {
291
+ tooltipCurrentViewNumber = newNumber
292
+ }}
293
+ setShowing={(showing) => {
294
+ showContextTooltip = showing
295
+ }}
323
296
  />
324
297
  </div>
325
298
  </Portal>
@@ -13,6 +13,13 @@ function formatJson(obj) {
13
13
  return obj;
14
14
  }
15
15
  }
16
+ for (const key in obj) {
17
+ try {
18
+ const parsed = JSON.parse(obj[key]);
19
+ obj[key] = parsed;
20
+ }
21
+ catch { }
22
+ }
16
23
  return JSON.stringify(obj, null, 2);
17
24
  }
18
25
  catch {
@@ -71,7 +78,9 @@ async function copyToClipboard() {
71
78
  <div
72
79
  class="bg-surface-secondary border border-gray-200 dark:border-gray-700 rounded p-3 overflow-x-auto max-h-64 overflow-y-auto"
73
80
  >
74
- <pre class="text-2xs text-primary whitespace-pre-wrap">{formatJson(content)}</pre>
81
+ <pre class="text-2xs text-primary whitespace-pre-wrap"
82
+ >{formatJson($state.snapshot(content))}</pre
83
+ >
75
84
  </div>
76
85
  {:else}
77
86
  <div
@@ -14,8 +14,8 @@ const hasParameters = $derived(message.parameters !== undefined && Object.keys(m
14
14
  <!-- Collapsible Header -->
15
15
  <button
16
16
  class={twMerge(
17
- "w-full p-3 bg-surface-secondary hover:bg-surface-hover transition-colors flex items-center justify-between text-left border-b border-gray-200 dark:border-gray-700",
18
- message.needsConfirmation ? "opacity-80" : ""
17
+ 'w-full p-3 bg-surface-secondary hover:bg-surface-hover transition-colors flex items-center justify-between text-left border-b border-gray-200 dark:border-gray-700',
18
+ message.needsConfirmation ? 'opacity-80' : ''
19
19
  )}
20
20
  onclick={() => (isExpanded = !isExpanded)}
21
21
  disabled={!message.showDetails}
@@ -46,7 +46,7 @@ const hasParameters = $derived(message.parameters !== undefined && Object.keys(m
46
46
  {#if isExpanded}
47
47
  <div class="p-3 bg-surface space-y-3">
48
48
  <!-- Parameters Section -->
49
- <div class={message.needsConfirmation ? "opacity-80" : ""}>
49
+ <div class={message.needsConfirmation ? 'opacity-80' : ''}>
50
50
  <ToolContentDisplay title="Parameters" content={message.parameters} />
51
51
  </div>
52
52
 
@@ -0,0 +1,15 @@
1
+ import { OpenAI } from 'openai';
2
+ import type { ChatCompletionMessageParam } from 'openai/resources/index.mjs';
3
+ import type { MessageParam, TextBlockParam, ToolUnion } from '@anthropic-ai/sdk/resources';
4
+ import type { MessageStream } from '@anthropic-ai/sdk/lib/MessageStream';
5
+ import { type Tool, type ToolCallbacks } from './shared';
6
+ export declare function getAnthropicCompletion(messages: ChatCompletionMessageParam[], abortController: AbortController, tools?: OpenAI.Chat.Completions.ChatCompletionFunctionTool[]): Promise<MessageStream>;
7
+ export declare function parseAnthropicCompletion(completion: MessageStream, callbacks: ToolCallbacks & {
8
+ onNewToken: (token: string) => void;
9
+ onMessageEnd: () => void;
10
+ }, messages: ChatCompletionMessageParam[], addedMessages: ChatCompletionMessageParam[], tools: Tool<any>[], helpers: any): Promise<boolean>;
11
+ export declare function convertOpenAIToAnthropicMessages(messages: ChatCompletionMessageParam[]): {
12
+ system: TextBlockParam[] | undefined;
13
+ messages: MessageParam[];
14
+ };
15
+ export declare function convertOpenAIToolsToAnthropic(tools?: OpenAI.Chat.Completions.ChatCompletionFunctionTool[]): ToolUnion[] | undefined;
@@ -0,0 +1,208 @@
1
+ import { OpenAI } from 'openai';
2
+ import { getProviderAndCompletionConfig, workspaceAIClients } from '../lib';
3
+ import { processToolCall } from './shared';
4
+ export async function getAnthropicCompletion(messages, abortController, tools) {
5
+ const { provider, config } = getProviderAndCompletionConfig({ messages, stream: true });
6
+ const { system, messages: anthropicMessages } = convertOpenAIToAnthropicMessages(messages);
7
+ const anthropicTools = convertOpenAIToolsToAnthropic(tools);
8
+ const anthropicClient = workspaceAIClients.getAnthropicClient();
9
+ const anthropicParams = {
10
+ model: config.model,
11
+ max_tokens: config.max_tokens,
12
+ messages: anthropicMessages,
13
+ ...(system && { system }),
14
+ ...(anthropicTools && { tools: anthropicTools }),
15
+ ...(typeof config.temperature === 'number' && { temperature: config.temperature })
16
+ };
17
+ const stream = anthropicClient.messages.stream(anthropicParams, {
18
+ signal: abortController.signal,
19
+ headers: {
20
+ 'X-Provider': provider,
21
+ 'anthropic-version': '2023-06-01',
22
+ 'X-Anthropic-SDK': 'true'
23
+ }
24
+ });
25
+ return stream;
26
+ }
27
+ export async function parseAnthropicCompletion(completion, callbacks, messages, addedMessages, tools, helpers) {
28
+ let toolCallsToProcess = [];
29
+ let error = null;
30
+ // Handle text streaming
31
+ completion.on('text', (textDelta, _textSnapshot) => {
32
+ callbacks.onNewToken(textDelta);
33
+ });
34
+ completion.on('message', (message) => {
35
+ for (const block of message.content) {
36
+ if (block.type === 'text') {
37
+ const text = block.text;
38
+ const assistantMessage = { role: 'assistant', content: text };
39
+ messages.push(assistantMessage);
40
+ addedMessages.push(assistantMessage);
41
+ callbacks.onMessageEnd();
42
+ }
43
+ else if (block.type === 'tool_use') {
44
+ // Convert Anthropic tool calls to OpenAI format for compatibility
45
+ toolCallsToProcess.push({
46
+ id: block.id,
47
+ type: 'function',
48
+ function: {
49
+ name: block.name,
50
+ arguments: JSON.stringify(block.input)
51
+ }
52
+ });
53
+ // Preprocess tool if it has a preAction
54
+ const tool = tools.find((t) => t.def.function.name === block.name);
55
+ if (tool && tool.preAction) {
56
+ tool.preAction({ toolCallbacks: callbacks, toolId: block.id });
57
+ }
58
+ }
59
+ }
60
+ });
61
+ // Handle errors
62
+ completion.on('error', (e) => {
63
+ console.error('Anthropic stream error:', e);
64
+ error = e;
65
+ });
66
+ // Wait for completion
67
+ await completion.done();
68
+ callbacks.onMessageEnd();
69
+ if (error) {
70
+ throw error;
71
+ }
72
+ // Process tool calls if any
73
+ if (toolCallsToProcess.length > 0) {
74
+ const assistantWithTools = {
75
+ role: 'assistant',
76
+ tool_calls: toolCallsToProcess
77
+ };
78
+ messages.push(assistantWithTools);
79
+ addedMessages.push(assistantWithTools);
80
+ // Process each tool call
81
+ for (const toolCall of toolCallsToProcess) {
82
+ const messageToAdd = await processToolCall({
83
+ tools,
84
+ toolCall,
85
+ helpers,
86
+ toolCallbacks: callbacks
87
+ });
88
+ messages.push(messageToAdd);
89
+ addedMessages.push(messageToAdd);
90
+ }
91
+ return true; // Continue the conversation loop
92
+ }
93
+ return false; // End the conversation
94
+ }
95
+ export function convertOpenAIToAnthropicMessages(messages) {
96
+ let system;
97
+ const anthropicMessages = [];
98
+ for (const message of messages) {
99
+ if (message.role === 'system') {
100
+ const systemText = typeof message.content === 'string' ? message.content : JSON.stringify(message.content);
101
+ // Convert system to array format with cache_control for caching
102
+ system = [
103
+ {
104
+ type: 'text',
105
+ text: systemText,
106
+ cache_control: { type: 'ephemeral' }
107
+ }
108
+ ];
109
+ continue;
110
+ }
111
+ if (message.role === 'user') {
112
+ anthropicMessages.push({
113
+ role: 'user',
114
+ content: typeof message.content === 'string' ? message.content : JSON.stringify(message.content)
115
+ });
116
+ }
117
+ else if (message.role === 'assistant') {
118
+ const content = [];
119
+ if (message.content) {
120
+ content.push({
121
+ type: 'text',
122
+ text: typeof message.content === 'string' ? message.content : JSON.stringify(message.content)
123
+ });
124
+ }
125
+ if (message.tool_calls) {
126
+ for (const toolCall of message.tool_calls) {
127
+ if (toolCall.type !== 'function')
128
+ continue;
129
+ let input = {};
130
+ try {
131
+ input = JSON.parse(toolCall.function.arguments || '{}');
132
+ }
133
+ catch (e) {
134
+ console.error('Failed to parse tool call arguments', e);
135
+ }
136
+ content.push({
137
+ type: 'tool_use',
138
+ id: toolCall.id,
139
+ name: toolCall.function.name,
140
+ input
141
+ });
142
+ }
143
+ }
144
+ if (content.length > 0) {
145
+ anthropicMessages.push({
146
+ role: 'assistant',
147
+ content: content.length === 1 && content[0].type === 'text' ? content[0].text : content
148
+ });
149
+ }
150
+ }
151
+ else if (message.role === 'tool') {
152
+ // Tool results must be in user messages in Anthropic format
153
+ anthropicMessages.push({
154
+ role: 'user',
155
+ content: [
156
+ {
157
+ type: 'tool_result',
158
+ tool_use_id: message.tool_call_id,
159
+ content: typeof message.content === 'string'
160
+ ? message.content
161
+ : JSON.stringify(message.content)
162
+ }
163
+ ]
164
+ });
165
+ }
166
+ }
167
+ // Add cache_control to the last message content blocks
168
+ if (anthropicMessages.length > 0) {
169
+ const lastMessage = anthropicMessages[anthropicMessages.length - 1];
170
+ if (Array.isArray(lastMessage.content)) {
171
+ // Add cache_control to the last content block
172
+ if (lastMessage.content.length > 0) {
173
+ const lastBlock = lastMessage.content[lastMessage.content.length - 1];
174
+ if (lastBlock.type === 'text') {
175
+ lastBlock.cache_control = { type: 'ephemeral' };
176
+ }
177
+ }
178
+ }
179
+ else if (typeof lastMessage.content === 'string') {
180
+ // Convert string content to array format with cache_control
181
+ lastMessage.content = [
182
+ {
183
+ type: 'text',
184
+ text: lastMessage.content,
185
+ cache_control: { type: 'ephemeral' }
186
+ }
187
+ ];
188
+ }
189
+ }
190
+ return { system, messages: anthropicMessages };
191
+ }
192
+ export function convertOpenAIToolsToAnthropic(tools) {
193
+ if (!tools || tools.length === 0)
194
+ return undefined;
195
+ const anthropicTools = tools.map((tool) => ({
196
+ name: tool.function.name,
197
+ description: tool.function.description,
198
+ input_schema: (tool.function.parameters || {
199
+ type: 'object',
200
+ properties: {}
201
+ })
202
+ }));
203
+ // Add cache_control to the last tool to cache all tool definitions
204
+ if (anthropicTools.length > 0) {
205
+ anthropicTools[anthropicTools.length - 1].cache_control = { type: 'ephemeral' };
206
+ }
207
+ return anthropicTools;
208
+ }
@@ -1,6 +1,6 @@
1
- import type { ChatCompletionTool } from 'openai/resources/index.mjs';
1
+ import type { ChatCompletionFunctionTool } from 'openai/resources/index.mjs';
2
2
  import type { Tool } from '../shared';
3
- export declare function createApiTools(chatTools: ChatCompletionTool[], endpointMap?: Record<string, {
3
+ export declare function createApiTools(chatTools: ChatCompletionFunctionTool[], endpointMap?: Record<string, {
4
4
  method: string;
5
5
  path: string;
6
6
  }>): Tool<{}>[];
@@ -15,7 +15,8 @@ function buildApiCallTool(endpointTool) {
15
15
  if (key === 'workspace')
16
16
  continue;
17
17
  parameters.properties[key] = schema;
18
- if (Array.isArray(endpointTool.path_params_schema.required) && endpointTool.path_params_schema.required.includes(key)) {
18
+ if (Array.isArray(endpointTool.path_params_schema.required) &&
19
+ endpointTool.path_params_schema.required.includes(key)) {
19
20
  parameters.required.push(key);
20
21
  }
21
22
  }
@@ -24,7 +25,8 @@ function buildApiCallTool(endpointTool) {
24
25
  if (endpointTool.query_params_schema?.properties) {
25
26
  for (const [key, schema] of Object.entries(endpointTool.query_params_schema.properties)) {
26
27
  parameters.properties[key] = schema;
27
- if (Array.isArray(endpointTool.query_params_schema.required) && endpointTool.query_params_schema.required.includes(key)) {
28
+ if (Array.isArray(endpointTool.query_params_schema.required) &&
29
+ endpointTool.query_params_schema.required.includes(key)) {
28
30
  parameters.required.push(key);
29
31
  }
30
32
  }
@@ -38,7 +40,8 @@ function buildApiCallTool(endpointTool) {
38
40
  properties: endpointTool.body_schema.properties,
39
41
  required: endpointTool.body_schema.required || []
40
42
  };
41
- if (Array.isArray(endpointTool.body_schema.required) && endpointTool.body_schema.required.length > 0) {
43
+ if (Array.isArray(endpointTool.body_schema.required) &&
44
+ endpointTool.body_schema.required.length > 0) {
42
45
  parameters.required.push('body');
43
46
  }
44
47
  }
@@ -114,7 +117,7 @@ export function createApiTools(chatTools, endpointMap = {}) {
114
117
  url += `?${searchParams.toString()}`;
115
118
  }
116
119
  toolCallbacks.setToolStatus(toolId, {
117
- content: `Calling ${toolName}...`,
120
+ content: `Calling ${toolName}...`
118
121
  });
119
122
  const fetchOptions = {
120
123
  method: endpoint.method
@@ -141,7 +144,7 @@ export function createApiTools(chatTools, endpointMap = {}) {
141
144
  });
142
145
  toolCallbacks.setToolStatus(toolId, {
143
146
  content: `Call to ${toolName} completed`,
144
- result: jsonResult,
147
+ result: jsonResult
145
148
  });
146
149
  return jsonResult;
147
150
  }
@@ -155,7 +158,7 @@ export function createApiTools(chatTools, endpointMap = {}) {
155
158
  toolCallbacks.setToolStatus(toolId, {
156
159
  content: `Call to ${toolName} failed`,
157
160
  result: jsonResult,
158
- error: `HTTP ${response.status}: ${text}`,
161
+ error: `HTTP ${response.status}: ${text}`
159
162
  });
160
163
  return jsonResult;
161
164
  }
@@ -164,7 +167,7 @@ export function createApiTools(chatTools, endpointMap = {}) {
164
167
  const errorMessage = `Error calling API: ${error instanceof Error ? error.message : String(error)}`;
165
168
  toolCallbacks.setToolStatus(toolId, {
166
169
  content: `Call to ${toolName} failed`,
167
- error: errorMessage,
170
+ error: errorMessage
168
171
  });
169
172
  console.error(`Error calling API:`, error);
170
173
  return errorMessage;
@@ -3,5 +3,5 @@ import type { Tool } from '../shared';
3
3
  export declare const CHAT_SYSTEM_PROMPT: (username: string) => string;
4
4
  export declare function getApiTools(): Promise<Tool<{}>[]>;
5
5
  export declare const apiTools: Tool<{}>[];
6
- export declare function prepareApiSystemMessage(): ChatCompletionSystemMessageParam;
6
+ export declare function prepareApiSystemMessage(customPrompt?: string): ChatCompletionSystemMessageParam;
7
7
  export declare function prepareApiUserMessage(instructions: string): ChatCompletionUserMessageParam;
@@ -47,10 +47,15 @@ export async function getApiTools() {
47
47
  return apiToolsCache;
48
48
  }
49
49
  export const apiTools = [getDocumentationTool];
50
- export function prepareApiSystemMessage() {
50
+ export function prepareApiSystemMessage(customPrompt) {
51
+ let content = CHAT_SYSTEM_PROMPT(get(userStore)?.username ?? '');
52
+ // If there's a custom prompt, append it to the system prompt
53
+ if (customPrompt?.trim()) {
54
+ content = `${content}\n\nUSER GIVEN INSTRUCTIONS:\n${customPrompt.trim()}`;
55
+ }
51
56
  return {
52
57
  role: 'system',
53
- content: CHAT_SYSTEM_PROMPT(get(userStore)?.username ?? '')
58
+ content
54
59
  };
55
60
  }
56
61
  export function prepareApiUserMessage(instructions) {
@@ -2,5 +2,5 @@ import type { ChatCompletionSystemMessageParam, ChatCompletionUserMessageParam }
2
2
  import type { Tool } from '../shared';
3
3
  export declare const CHAT_SYSTEM_PROMPT = "\nYou are Windmill's intelligent assistant, designed to answer questions about its functionality. It is your only purpose to help the user in the context of the windmill application.\nWindmill is an open-source developer platform for building internal tools, API integrations, background jobs, workflows, and user interfaces. It offers a unified system where scripts are automatically turned into sharable UIs and can be composed into flows or embedded in custom applications.\n\nYou have access to these tools:\n1. Get documentation for user requests (get_documentation)\n\nINSTRUCTIONS:\n- When user asks about something, use the get_documentation tool to retrieve accurate information about how to fulfill the user's request.\n- Complete your response with precisions about how it works based on the documentation. Also drop a link to the relevant documentation if possible.\n- If the user asks about something that you are unsure about, say that you are not sure about the answer and suggest to ask the question to the windmill team.\n\nGENERAL PRINCIPLES:\n- Be concise but thorough\n- Maintain a friendly, professional tone\n- If you encounter an error or can't complete a request, explain why and suggest alternatives\n";
4
4
  export declare const askTools: Tool<{}>[];
5
- export declare function prepareAskSystemMessage(): ChatCompletionSystemMessageParam;
5
+ export declare function prepareAskSystemMessage(customPrompt?: string): ChatCompletionSystemMessageParam;
6
6
  export declare function prepareAskUserMessage(instructions: string): ChatCompletionUserMessageParam;
@@ -17,10 +17,15 @@ GENERAL PRINCIPLES:
17
17
  - If you encounter an error or can't complete a request, explain why and suggest alternatives
18
18
  `;
19
19
  export const askTools = [getDocumentationTool];
20
- export function prepareAskSystemMessage() {
20
+ export function prepareAskSystemMessage(customPrompt) {
21
+ let content = CHAT_SYSTEM_PROMPT;
22
+ // If there's a custom prompt, append it to the system prompt
23
+ if (customPrompt?.trim()) {
24
+ content = `${content}\n\nUSER GIVEN INSTRUCTIONS:\n${customPrompt.trim()}`;
25
+ }
21
26
  return {
22
27
  role: 'system',
23
- content: CHAT_SYSTEM_PROMPT
28
+ content
24
29
  };
25
30
  }
26
31
  export function prepareAskUserMessage(instructions) {
@@ -40,7 +40,7 @@ export interface CodePieceElement {
40
40
  title: string;
41
41
  lang: ScriptLang | 'bunnative';
42
42
  }
43
- export interface FlowModule {
43
+ export interface FlowModuleElement {
44
44
  type: 'flow_module';
45
45
  id: string;
46
46
  title: string;
@@ -51,7 +51,12 @@ export interface FlowModule {
51
51
  type: string;
52
52
  };
53
53
  }
54
- export type ContextElement = (CodeElement | ErrorElement | DBElement | DiffElement | CodePieceElement | FlowModule) & {
54
+ export interface FlowModuleCodePieceElement extends Omit<CodePieceElement, 'type'> {
55
+ type: 'flow_module_code_piece';
56
+ id: string;
57
+ value: FlowModuleElement['value'];
58
+ }
59
+ export type ContextElement = (CodeElement | ErrorElement | DBElement | DiffElement | CodePieceElement | FlowModuleElement | FlowModuleCodePieceElement) & {
55
60
  deletable?: boolean;
56
61
  };
57
62
  export {};