windmill-components 1.655.1 → 1.665.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 (653) hide show
  1. package/package/components/ApiConnectForm.svelte +6 -6
  2. package/package/components/ApiConnectForm.svelte.d.ts +3 -2
  3. package/package/components/AppConnectDrawer.svelte +3 -1
  4. package/package/components/AppConnectDrawer.svelte.d.ts +2 -0
  5. package/package/components/AppConnectInner.svelte +137 -72
  6. package/package/components/AppConnectInner.svelte.d.ts +1 -0
  7. package/package/components/CompareWorkspaces.svelte +32 -24
  8. package/package/components/DBManager.svelte +7 -13
  9. package/package/components/DBTable.svelte +2 -2
  10. package/package/components/DBTableEditor.svelte +39 -31
  11. package/package/components/DBTableEditor.svelte.d.ts +2 -2
  12. package/package/components/DedicatedWorkersSelector.svelte +292 -85
  13. package/package/components/DeployWorkspace.svelte +30 -26
  14. package/package/components/Dev.svelte +7 -2
  15. package/package/components/Dev.svelte.d.ts +3 -0
  16. package/package/components/Editor.svelte +17 -13
  17. package/package/components/EditorBar.svelte.d.ts +1 -1
  18. package/package/components/FilterSearchbar.svelte +1 -1
  19. package/package/components/FirstStepInputs.svelte +0 -1
  20. package/package/components/FlowBuilder.svelte +5 -0
  21. package/package/components/FlowGraphDiffViewer.svelte +3 -0
  22. package/package/components/FlowGraphViewer.svelte +7 -4
  23. package/package/components/FlowGraphViewer.svelte.d.ts +1 -0
  24. package/package/components/FlowGraphViewerStep.svelte +3 -3
  25. package/package/components/FlowGraphViewerStep.svelte.d.ts +1 -0
  26. package/package/components/FlowPreviewContent.svelte +11 -1
  27. package/package/components/FlowStatusViewer.svelte +4 -1
  28. package/package/components/FlowStatusViewer.svelte.d.ts +3 -1
  29. package/package/components/FlowStatusViewerInner.svelte +46 -11
  30. package/package/components/FlowStatusViewerInner.svelte.d.ts +4 -1
  31. package/package/components/FlowStatusWaitingForEvents.svelte +48 -103
  32. package/package/components/FlowTimeline.svelte +76 -84
  33. package/package/components/FlowViewer.svelte +40 -22
  34. package/package/components/FlowViewer.svelte.d.ts +8 -2
  35. package/package/components/GroupEditor.svelte +7 -9
  36. package/package/components/HistoricList.svelte +12 -4
  37. package/package/components/InstanceGroupEditor.svelte +92 -19
  38. package/package/components/InstanceSetting.svelte +16 -6
  39. package/package/components/InstanceSettings.svelte +51 -7
  40. package/package/components/InstanceSettings.svelte.d.ts +2 -1
  41. package/package/components/JobLoader.svelte +5 -4
  42. package/package/components/JobLoader.svelte.d.ts +1 -1
  43. package/package/components/Login.svelte +9 -1
  44. package/package/components/NoMainFuncBadge.svelte +2 -2
  45. package/package/components/OnBehalfOfSelector.svelte +49 -37
  46. package/package/components/OnBehalfOfSelector.svelte.d.ts +16 -6
  47. package/package/components/ResourceEditor.svelte +16 -11
  48. package/package/components/ResourceEditor.svelte.d.ts +1 -0
  49. package/package/components/ResourceEditorDrawer.svelte +3 -1
  50. package/package/components/ResourceEditorDrawer.svelte.d.ts +6 -2
  51. package/package/components/ResourcePicker.svelte +10 -5
  52. package/package/components/ResourcePicker.svelte.d.ts +2 -0
  53. package/package/components/S3FilePickerInner.svelte +12 -4
  54. package/package/components/SchemaForm.svelte +20 -14
  55. package/package/components/SchemaForm.svelte.d.ts +2 -2
  56. package/package/components/ScriptBuilder.svelte +158 -18
  57. package/package/components/ScriptEditor.svelte +674 -150
  58. package/package/components/ScriptEditor.svelte.d.ts +7 -3
  59. package/package/components/SuperadminSettings.svelte +4 -1
  60. package/package/components/SuperadminSettingsInner.svelte +176 -67
  61. package/package/components/SuperadminSettingsInner.svelte.d.ts +3 -1
  62. package/package/components/SyncResourceTypes.svelte +31 -0
  63. package/package/components/SyncResourceTypes.svelte.d.ts +6 -0
  64. package/package/components/TimelineBar.svelte +14 -8
  65. package/package/components/TimelineBar.svelte.d.ts +1 -0
  66. package/package/components/WorkerGroup.svelte +11 -4
  67. package/package/components/WorkflowTimeline.svelte +386 -58
  68. package/package/components/WorkflowTimeline.svelte.d.ts +6 -1
  69. package/package/components/WorkspaceDependenciesEditor.svelte +32 -2
  70. package/package/components/apps/components/display/dbtable/DeleteRow.svelte +2 -2
  71. package/package/components/apps/components/display/dbtable/InsertRowRunnable.svelte +2 -2
  72. package/package/components/apps/components/display/dbtable/UpdateCell.svelte +2 -2
  73. package/package/components/apps/components/display/dbtable/metadata.js +44 -222
  74. package/package/components/apps/components/display/dbtable/queries/count.d.ts +9 -0
  75. package/package/components/apps/components/display/dbtable/queries/delete.d.ts +9 -0
  76. package/package/components/apps/components/display/dbtable/queries/insert.d.ts +9 -0
  77. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +7 -0
  78. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +1 -1
  79. package/package/components/apps/components/display/dbtable/queries/select.d.ts +9 -0
  80. package/package/components/apps/components/display/dbtable/queries/update.d.ts +9 -0
  81. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +11 -9
  82. package/package/components/apps/editor/appUtilsS3.js +2 -2
  83. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptsPanel.svelte +53 -10
  84. package/package/components/common/clearableInput/ClearableInput.svelte +3 -7
  85. package/package/components/common/confirmationModal/ConfirmationModal.svelte +7 -1
  86. package/package/components/common/confirmationModal/ConfirmationModal.svelte.d.ts +1 -0
  87. package/package/components/common/drawer/Disposable.svelte +24 -2
  88. package/package/components/common/drawer/Disposable.svelte.d.ts +5 -0
  89. package/package/components/common/modal/Modal.svelte +84 -58
  90. package/package/components/common/table/AppRow.svelte.d.ts +1 -1
  91. package/package/components/common/table/FlowRow.svelte.d.ts +1 -1
  92. package/package/components/common/table/ScriptRow.svelte +31 -3
  93. package/package/components/common/table/ScriptRow.svelte.d.ts +1 -1
  94. package/package/components/copilot/MetadataGen.svelte +8 -5
  95. package/package/components/copilot/MetadataGen.svelte.d.ts +1 -0
  96. package/package/components/copilot/TestAIKey.svelte +2 -1
  97. package/package/components/copilot/TestAIKey.svelte.d.ts +1 -0
  98. package/package/components/copilot/chat/AIChatManager.svelte.js +62 -80
  99. package/package/components/copilot/chat/HistoryManager.svelte.d.ts +1 -0
  100. package/package/components/copilot/chat/HistoryManager.svelte.js +3 -0
  101. package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +47 -31
  102. package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +1 -6
  103. package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +18 -13
  104. package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +14 -5
  105. package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +13 -12
  106. package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +46 -29
  107. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +1 -4
  108. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +14 -5
  109. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +13 -12
  110. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +5 -8
  111. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +82 -108
  112. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +4 -7
  113. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +19 -11
  114. package/package/components/copilot/chat/__tests__/shared/types.d.ts +3 -0
  115. package/package/components/copilot/chat/anthropic.d.ts +9 -2
  116. package/package/components/copilot/chat/anthropic.js +12 -6
  117. package/package/components/copilot/chat/app/core.js +5 -12
  118. package/package/components/copilot/chat/chatLoop.d.ts +40 -0
  119. package/package/components/copilot/chat/chatLoop.js +97 -0
  120. package/package/components/copilot/chat/openai-responses.d.ts +8 -2
  121. package/package/components/copilot/chat/openai-responses.js +17 -17
  122. package/package/components/copilot/chat/shared.d.ts +2 -1
  123. package/package/components/copilot/chat/shared.js +2 -2
  124. package/package/components/copilot/lib.d.ts +14 -5
  125. package/package/components/copilot/lib.js +68 -48
  126. package/package/components/custom_ui.d.ts +1 -0
  127. package/package/components/dbOps.d.ts +2 -2
  128. package/package/components/dbOps.js +129 -53
  129. package/package/components/debug/debugUtils.d.ts +5 -0
  130. package/package/components/debug/debugUtils.js +20 -0
  131. package/package/components/debug/index.d.ts +1 -1
  132. package/package/components/debug/index.js +3 -7
  133. package/package/components/flows/CreateActionsFlow.svelte +221 -43
  134. package/package/components/flows/DebounceLimit.svelte +42 -9
  135. package/package/components/flows/common/FlowCard.svelte +2 -1
  136. package/package/components/flows/common/FlowCard.svelte.d.ts +1 -0
  137. package/package/components/flows/common/FlowCardHeader.svelte +14 -10
  138. package/package/components/flows/common/FlowCardHeader.svelte.d.ts +1 -0
  139. package/package/components/flows/content/AgentToolWrapper.svelte +2 -1
  140. package/package/components/flows/content/AgentToolWrapper.svelte.d.ts +1 -0
  141. package/package/components/flows/content/FlowEditorPanel.svelte +1 -0
  142. package/package/components/flows/content/FlowInputs.svelte +1 -1
  143. package/package/components/flows/content/FlowInputsQuick.svelte +1 -1
  144. package/package/components/flows/content/FlowModuleComponent.svelte +32 -18
  145. package/package/components/flows/content/FlowModuleComponent.svelte.d.ts +1 -0
  146. package/package/components/flows/content/FlowModuleDebounce.svelte +46 -0
  147. package/package/components/flows/content/FlowModuleDebounce.svelte.d.ts +8 -0
  148. package/package/components/flows/content/FlowModuleEarlyStop.svelte +26 -5
  149. package/package/components/flows/content/FlowModuleWrapper.svelte +1 -0
  150. package/package/components/flows/content/FlowRetries.svelte +57 -57
  151. package/package/components/flows/content/FlowSelectionPanel.svelte +9 -14
  152. package/package/components/flows/content/FlowSelectionPanel.svelte.d.ts +1 -0
  153. package/package/components/flows/content/FlowSettings.svelte +6 -6
  154. package/package/components/flows/content/ScriptEditorDrawer.svelte +1 -1
  155. package/package/components/flows/content/SuspendDrawer.svelte +0 -18
  156. package/package/components/flows/header/FlowYamlEditor.svelte +20 -4
  157. package/package/components/flows/map/FlowErrorHandlerItem.svelte +32 -14
  158. package/package/components/flows/map/FlowErrorHandlerItem.svelte.d.ts +1 -0
  159. package/package/components/flows/map/FlowModuleSchemaItem.svelte +7 -10
  160. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte +1 -8
  161. package/package/components/flows/map/FlowModuleSchemaItemViewer.svelte.d.ts +0 -2
  162. package/package/components/flows/map/FlowModuleSchemaMap.svelte +343 -137
  163. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -0
  164. package/package/components/flows/map/FlowStickyNode.svelte +24 -16
  165. package/package/components/flows/map/FlowStickyNode.svelte.d.ts +1 -0
  166. package/package/components/flows/map/InsertModuleInner.svelte +2 -0
  167. package/package/components/flows/map/VirtualItemWrapper.svelte +1 -1
  168. package/package/components/flows/pickers/PickHubScriptQuick.svelte.d.ts +1 -1
  169. package/package/components/flows/propPicker/OutputPickerInner.svelte +5 -1
  170. package/package/components/flows/scheduleUtils.js +3 -1
  171. package/package/components/flows/utils.svelte.js +6 -1
  172. package/package/components/git_sync/GitSyncContext.svelte.js +13 -2
  173. package/package/components/git_sync/GitSyncSection.svelte +135 -99
  174. package/package/components/graph/DragGhost.svelte +11 -2
  175. package/package/components/graph/FlowGraphV2.svelte +138 -42
  176. package/package/components/graph/FlowGraphV2.svelte.d.ts +15 -1
  177. package/package/components/graph/GroupActionBar.svelte +124 -0
  178. package/package/components/graph/GroupActionBar.svelte.d.ts +20 -0
  179. package/package/components/graph/GroupHeader.svelte +98 -0
  180. package/package/components/graph/GroupHeader.svelte.d.ts +11 -0
  181. package/package/components/graph/GroupHeaderBlock.svelte +58 -0
  182. package/package/components/graph/GroupHeaderBlock.svelte.d.ts +13 -0
  183. package/package/components/graph/GroupModuleIcons.svelte +163 -0
  184. package/package/components/graph/GroupModuleIcons.svelte.d.ts +11 -0
  185. package/package/components/graph/GroupNodeCard.svelte +127 -0
  186. package/package/components/graph/GroupNodeCard.svelte.d.ts +18 -0
  187. package/package/components/graph/GroupNoteArea.svelte +132 -0
  188. package/package/components/graph/GroupNoteArea.svelte.d.ts +11 -0
  189. package/package/components/graph/GroupOverlay.svelte +71 -0
  190. package/package/components/graph/GroupOverlay.svelte.d.ts +12 -0
  191. package/package/components/graph/MiniFlowGraph.svelte +17 -2
  192. package/package/components/graph/SelectionBoundingBox.svelte +14 -14
  193. package/package/components/graph/compoundLayout.d.ts +17 -1
  194. package/package/components/graph/compoundLayout.js +129 -14
  195. package/package/components/graph/flowStructure.d.ts +63 -0
  196. package/package/components/graph/flowStructure.js +422 -0
  197. package/package/components/graph/flowStructure.test.d.ts +1 -0
  198. package/package/components/graph/flowStructure.test.js +205 -0
  199. package/package/components/graph/graphBuilder.svelte.d.ts +52 -3
  200. package/package/components/graph/graphBuilder.svelte.js +170 -67
  201. package/package/components/graph/graphContext.d.ts +7 -0
  202. package/package/components/graph/groupDetectionUtils.d.ts +24 -1
  203. package/package/components/graph/groupDetectionUtils.js +101 -1
  204. package/package/components/graph/groupEditor.svelte.d.ts +105 -0
  205. package/package/components/graph/groupEditor.svelte.js +253 -0
  206. package/package/components/graph/groupedModulesProxy.svelte.d.ts +55 -0
  207. package/package/components/graph/groupedModulesProxy.svelte.js +130 -0
  208. package/package/components/graph/model.d.ts +2 -1
  209. package/package/components/graph/moveManager.svelte.js +0 -3
  210. package/package/components/graph/nodeExtraSpace.d.ts +32 -0
  211. package/package/components/graph/nodeExtraSpace.js +113 -0
  212. package/package/components/graph/noteColors.d.ts +1 -0
  213. package/package/components/graph/noteColors.js +20 -10
  214. package/package/components/graph/noteUtils.svelte.d.ts +0 -18
  215. package/package/components/graph/noteUtils.svelte.js +6 -41
  216. package/package/components/graph/renderers/edges/BaseEdge.svelte +26 -11
  217. package/package/components/graph/renderers/nodes/AIToolNode.svelte +24 -49
  218. package/package/components/graph/renderers/nodes/AIToolNode.svelte.d.ts +1 -4
  219. package/package/components/graph/renderers/nodes/AssetNode.svelte +1 -27
  220. package/package/components/graph/renderers/nodes/AssetNode.svelte.d.ts +0 -4
  221. package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte +85 -0
  222. package/package/components/graph/renderers/nodes/CollapsedGroupNode.svelte.d.ts +8 -0
  223. package/package/components/graph/renderers/nodes/ForLoopStartNode.svelte +3 -2
  224. package/package/components/graph/renderers/nodes/GroupEndNode.svelte +9 -0
  225. package/package/components/graph/renderers/nodes/GroupEndNode.svelte.d.ts +6 -0
  226. package/package/components/graph/renderers/nodes/GroupHeadNode.svelte +20 -0
  227. package/package/components/graph/renderers/nodes/GroupHeadNode.svelte.d.ts +8 -0
  228. package/package/components/graph/renderers/nodes/ModuleNode.svelte +8 -5
  229. package/package/components/graph/renderers/triggers/TriggersWrapper.svelte +1 -1
  230. package/package/components/graph/util.d.ts +5 -1
  231. package/package/components/graph/util.js +7 -5
  232. package/package/components/home/Item.svelte +1 -0
  233. package/package/components/home/ItemsList.svelte +1 -1
  234. package/package/components/icons/ActiveCampaignIcon.svelte +10 -0
  235. package/package/components/icons/ActiveCampaignIcon.svelte.d.ts +7 -0
  236. package/package/components/icons/AlgoliaIcon.svelte +7 -0
  237. package/package/components/icons/AlgoliaIcon.svelte.d.ts +7 -0
  238. package/package/components/icons/ApolloIcon.svelte +7 -0
  239. package/package/components/icons/ApolloIcon.svelte.d.ts +7 -0
  240. package/package/components/icons/BambooHrIcon.svelte +7 -0
  241. package/package/components/icons/BambooHrIcon.svelte.d.ts +7 -0
  242. package/package/components/icons/BaremetricsIcon.svelte +7 -0
  243. package/package/components/icons/BaremetricsIcon.svelte.d.ts +7 -0
  244. package/package/components/icons/BitlyIcon.svelte +7 -0
  245. package/package/components/icons/BitlyIcon.svelte.d.ts +7 -0
  246. package/package/components/icons/BloggerIcon.svelte +7 -0
  247. package/package/components/icons/BloggerIcon.svelte.d.ts +7 -0
  248. package/package/components/icons/BlueskyIcon.svelte +7 -0
  249. package/package/components/icons/BlueskyIcon.svelte.d.ts +7 -0
  250. package/package/components/icons/BoxIcon.svelte +7 -0
  251. package/package/components/icons/BoxIcon.svelte.d.ts +7 -0
  252. package/package/components/icons/BrevoIcon.svelte +7 -0
  253. package/package/components/icons/BrevoIcon.svelte.d.ts +7 -0
  254. package/package/components/icons/BrexIcon.svelte +7 -0
  255. package/package/components/icons/BrexIcon.svelte.d.ts +7 -0
  256. package/package/components/icons/BrowserlessIcon.svelte +7 -0
  257. package/package/components/icons/BrowserlessIcon.svelte.d.ts +7 -0
  258. package/package/components/icons/BubbleIcon.svelte +11 -0
  259. package/package/components/icons/BubbleIcon.svelte.d.ts +7 -0
  260. package/package/components/icons/BuildkiteIcon.svelte +7 -0
  261. package/package/components/icons/BuildkiteIcon.svelte.d.ts +7 -0
  262. package/package/components/icons/CalcomIcon.svelte +1 -1
  263. package/package/components/icons/CalendlyIcon.svelte +7 -0
  264. package/package/components/icons/CalendlyIcon.svelte.d.ts +7 -0
  265. package/package/components/icons/CircleCiIcon.svelte +7 -0
  266. package/package/components/icons/CircleCiIcon.svelte.d.ts +7 -0
  267. package/package/components/icons/CiscoIcon.svelte +7 -0
  268. package/package/components/icons/CiscoIcon.svelte.d.ts +7 -0
  269. package/package/components/icons/ClearbitIcon.svelte +7 -0
  270. package/package/components/icons/ClearbitIcon.svelte.d.ts +7 -0
  271. package/package/components/icons/ClerkIcon.svelte +7 -0
  272. package/package/components/icons/ClerkIcon.svelte.d.ts +7 -0
  273. package/package/components/icons/CloseIcon.svelte +37 -0
  274. package/package/components/icons/CloseIcon.svelte.d.ts +7 -0
  275. package/package/components/icons/CloudinaryIcon.svelte +7 -0
  276. package/package/components/icons/CloudinaryIcon.svelte.d.ts +7 -0
  277. package/package/components/icons/CockroachDbIcon.svelte +7 -0
  278. package/package/components/icons/CockroachDbIcon.svelte.d.ts +7 -0
  279. package/package/components/icons/CodaIcon.svelte +7 -0
  280. package/package/components/icons/CodaIcon.svelte.d.ts +7 -0
  281. package/package/components/icons/CohereIcon.svelte +16 -0
  282. package/package/components/icons/CohereIcon.svelte.d.ts +7 -0
  283. package/package/components/icons/CoinMarketCapIcon.svelte +7 -0
  284. package/package/components/icons/CoinMarketCapIcon.svelte.d.ts +7 -0
  285. package/package/components/icons/CoinbaseIcon.svelte +7 -0
  286. package/package/components/icons/CoinbaseIcon.svelte.d.ts +7 -0
  287. package/package/components/icons/ConfluenceIcon.svelte +7 -0
  288. package/package/components/icons/ConfluenceIcon.svelte.d.ts +7 -0
  289. package/package/components/icons/ContentfulIcon.svelte +7 -0
  290. package/package/components/icons/ContentfulIcon.svelte.d.ts +7 -0
  291. package/package/components/icons/ConvertKitIcon.svelte +7 -0
  292. package/package/components/icons/ConvertKitIcon.svelte.d.ts +7 -0
  293. package/package/components/icons/DatoCmsIcon.svelte +7 -0
  294. package/package/components/icons/DatoCmsIcon.svelte.d.ts +7 -0
  295. package/package/components/icons/DeelIcon.svelte +7 -0
  296. package/package/components/icons/DeelIcon.svelte.d.ts +7 -0
  297. package/package/components/icons/DeepLIcon.svelte +7 -0
  298. package/package/components/icons/DeepLIcon.svelte.d.ts +7 -0
  299. package/package/components/icons/DigitalOceanIcon.svelte +7 -0
  300. package/package/components/icons/DigitalOceanIcon.svelte.d.ts +7 -0
  301. package/package/components/icons/DiscourseIcon.svelte +7 -0
  302. package/package/components/icons/DiscourseIcon.svelte.d.ts +7 -0
  303. package/package/components/icons/DocusignIcon.svelte +7 -0
  304. package/package/components/icons/DocusignIcon.svelte.d.ts +7 -0
  305. package/package/components/icons/DropboxIcon.svelte +7 -0
  306. package/package/components/icons/DropboxIcon.svelte.d.ts +7 -0
  307. package/package/components/icons/EdgeDbIcon.svelte +16 -20
  308. package/package/components/icons/EventbriteIcon.svelte +10 -0
  309. package/package/components/icons/EventbriteIcon.svelte.d.ts +7 -0
  310. package/package/components/icons/FigmaIcon.svelte +7 -0
  311. package/package/components/icons/FigmaIcon.svelte.d.ts +7 -0
  312. package/package/components/icons/FlyIcon.svelte +7 -0
  313. package/package/components/icons/FlyIcon.svelte.d.ts +7 -0
  314. package/package/components/icons/FreshdeskIcon.svelte +7 -0
  315. package/package/components/icons/FreshdeskIcon.svelte.d.ts +7 -0
  316. package/package/components/icons/FrontAppIcon.svelte +7 -0
  317. package/package/components/icons/FrontAppIcon.svelte.d.ts +7 -0
  318. package/package/components/icons/GhostCmsIcon.svelte +7 -0
  319. package/package/components/icons/GhostCmsIcon.svelte.d.ts +7 -0
  320. package/package/components/icons/GiphyIcon.svelte +7 -0
  321. package/package/components/icons/GiphyIcon.svelte.d.ts +7 -0
  322. package/package/components/icons/GitBookIcon.svelte +7 -0
  323. package/package/components/icons/GitBookIcon.svelte.d.ts +7 -0
  324. package/package/components/icons/GroqIcon.svelte +7 -0
  325. package/package/components/icons/GroqIcon.svelte.d.ts +7 -0
  326. package/package/components/icons/HoneybadgerIcon.svelte +7 -0
  327. package/package/components/icons/HoneybadgerIcon.svelte.d.ts +7 -0
  328. package/package/components/icons/HttpIcon.svelte +1 -0
  329. package/package/components/icons/IftttIcon.svelte +7 -0
  330. package/package/components/icons/IftttIcon.svelte.d.ts +7 -0
  331. package/package/components/icons/IntercomIcon.svelte +7 -0
  332. package/package/components/icons/IntercomIcon.svelte.d.ts +7 -0
  333. package/package/components/icons/JoomlaIcon.svelte +7 -0
  334. package/package/components/icons/JoomlaIcon.svelte.d.ts +7 -0
  335. package/package/components/icons/LineIcon.svelte +7 -0
  336. package/package/components/icons/LineIcon.svelte.d.ts +7 -0
  337. package/package/components/icons/LinearIcon.svelte +7 -0
  338. package/package/components/icons/LinearIcon.svelte.d.ts +7 -0
  339. package/package/components/icons/LinodeIcon.svelte +7 -0
  340. package/package/components/icons/LinodeIcon.svelte.d.ts +7 -0
  341. package/package/components/icons/LumaAiIcon.svelte +39 -0
  342. package/package/components/icons/LumaAiIcon.svelte.d.ts +7 -0
  343. package/package/components/icons/MSTeamsIcon.svelte +20 -38
  344. package/package/components/icons/MSTeamsIcon.svelte.d.ts +2 -0
  345. package/package/components/icons/MagentoIcon.svelte +7 -0
  346. package/package/components/icons/MagentoIcon.svelte.d.ts +7 -0
  347. package/package/components/icons/MailchimpIcon.svelte +25 -13
  348. package/package/components/icons/MandrillIcon.svelte +7 -0
  349. package/package/components/icons/MandrillIcon.svelte.d.ts +7 -0
  350. package/package/components/icons/MauticIcon.svelte +7 -0
  351. package/package/components/icons/MauticIcon.svelte.d.ts +7 -0
  352. package/package/components/icons/MediumIcon.svelte +7 -0
  353. package/package/components/icons/MediumIcon.svelte.d.ts +7 -0
  354. package/package/components/icons/MiroIcon.svelte +7 -0
  355. package/package/components/icons/MiroIcon.svelte.d.ts +7 -0
  356. package/package/components/icons/MistralIcon.svelte +7 -0
  357. package/package/components/icons/MistralIcon.svelte.d.ts +7 -0
  358. package/package/components/icons/MixpanelIcon.svelte +7 -0
  359. package/package/components/icons/MixpanelIcon.svelte.d.ts +7 -0
  360. package/package/components/icons/MondayIcon.svelte +7 -0
  361. package/package/components/icons/MondayIcon.svelte.d.ts +7 -0
  362. package/package/components/icons/NeonDbIcon.svelte +23 -0
  363. package/package/components/icons/NeonDbIcon.svelte.d.ts +7 -0
  364. package/package/components/icons/NetlifyIcon.svelte +7 -0
  365. package/package/components/icons/NetlifyIcon.svelte.d.ts +7 -0
  366. package/package/components/icons/OneSignalIcon.svelte +9 -0
  367. package/package/components/icons/OneSignalIcon.svelte.d.ts +7 -0
  368. package/package/components/icons/OpenWeatherIcon.svelte +7 -0
  369. package/package/components/icons/OpenWeatherIcon.svelte.d.ts +7 -0
  370. package/package/components/icons/PagerDutyIcon.svelte +7 -0
  371. package/package/components/icons/PagerDutyIcon.svelte.d.ts +7 -0
  372. package/package/components/icons/PandaDocIcon.svelte +7 -0
  373. package/package/components/icons/PandaDocIcon.svelte.d.ts +7 -0
  374. package/package/components/icons/PaypalIcon.svelte +7 -0
  375. package/package/components/icons/PaypalIcon.svelte.d.ts +7 -0
  376. package/package/components/icons/PersonioIcon.svelte +7 -0
  377. package/package/components/icons/PersonioIcon.svelte.d.ts +7 -0
  378. package/package/components/icons/PinterestIcon.svelte +7 -0
  379. package/package/components/icons/PinterestIcon.svelte.d.ts +7 -0
  380. package/package/components/icons/PipedriveIcon.svelte +11 -0
  381. package/package/components/icons/PipedriveIcon.svelte.d.ts +7 -0
  382. package/package/components/icons/PlanetScaleIcon.svelte +7 -0
  383. package/package/components/icons/PlanetScaleIcon.svelte.d.ts +7 -0
  384. package/package/components/icons/PostmarkIcon.svelte +7 -0
  385. package/package/components/icons/PostmarkIcon.svelte.d.ts +7 -0
  386. package/package/components/icons/PusherIcon.svelte +7 -0
  387. package/package/components/icons/PusherIcon.svelte.d.ts +7 -0
  388. package/package/components/icons/QuickbooksIcon.svelte +13 -1
  389. package/package/components/icons/RaindropIcon.svelte +27 -0
  390. package/package/components/icons/RaindropIcon.svelte.d.ts +7 -0
  391. package/package/components/icons/ReadwiseIcon.svelte +12 -0
  392. package/package/components/icons/ReadwiseIcon.svelte.d.ts +7 -0
  393. package/package/components/icons/RenderIcon.svelte +7 -0
  394. package/package/components/icons/RenderIcon.svelte.d.ts +7 -0
  395. package/package/components/icons/ReplicateIcon.svelte +7 -0
  396. package/package/components/icons/ReplicateIcon.svelte.d.ts +7 -0
  397. package/package/components/icons/ResendIcon.svelte +1 -1
  398. package/package/components/icons/RestIcon.svelte +1 -0
  399. package/package/components/icons/RingCentralIcon.svelte +7 -0
  400. package/package/components/icons/RingCentralIcon.svelte.d.ts +7 -0
  401. package/package/components/icons/RocketChatIcon.svelte +7 -0
  402. package/package/components/icons/RocketChatIcon.svelte.d.ts +7 -0
  403. package/package/components/icons/RunPodIcon.svelte +8 -0
  404. package/package/components/icons/RunPodIcon.svelte.d.ts +7 -0
  405. package/package/components/icons/RustIcon.svelte +74 -56
  406. package/package/components/icons/SalesforceIcon.svelte +7 -0
  407. package/package/components/icons/SalesforceIcon.svelte.d.ts +7 -0
  408. package/package/components/icons/SegmentIcon.svelte +7 -0
  409. package/package/components/icons/SegmentIcon.svelte.d.ts +7 -0
  410. package/package/components/icons/SentryIcon.svelte +7 -0
  411. package/package/components/icons/SentryIcon.svelte.d.ts +7 -0
  412. package/package/components/icons/ServiceNowIcon.svelte +7 -0
  413. package/package/components/icons/ServiceNowIcon.svelte.d.ts +7 -0
  414. package/package/components/icons/ShortcutIcon.svelte +7 -0
  415. package/package/components/icons/ShortcutIcon.svelte.d.ts +7 -0
  416. package/package/components/icons/SigNozIcon.svelte +8 -0
  417. package/package/components/icons/SigNozIcon.svelte.d.ts +7 -0
  418. package/package/components/icons/SmartsheetIcon.svelte +7 -0
  419. package/package/components/icons/SmartsheetIcon.svelte.d.ts +7 -0
  420. package/package/components/icons/SpeechifyIcon.svelte +7 -0
  421. package/package/components/icons/SpeechifyIcon.svelte.d.ts +7 -0
  422. package/package/components/icons/SplitwiseIcon.svelte +7 -0
  423. package/package/components/icons/SplitwiseIcon.svelte.d.ts +7 -0
  424. package/package/components/icons/StravaIcon.svelte +7 -0
  425. package/package/components/icons/StravaIcon.svelte.d.ts +7 -0
  426. package/package/components/icons/TallyIcon.svelte +7 -0
  427. package/package/components/icons/TallyIcon.svelte.d.ts +7 -0
  428. package/package/components/icons/TelnyxIcon.svelte +19 -0
  429. package/package/components/icons/TelnyxIcon.svelte.d.ts +7 -0
  430. package/package/components/icons/ThreadsIcon.svelte +7 -0
  431. package/package/components/icons/ThreadsIcon.svelte.d.ts +7 -0
  432. package/package/components/icons/TodoistIcon.svelte +7 -0
  433. package/package/components/icons/TodoistIcon.svelte.d.ts +7 -0
  434. package/package/components/icons/TogetherAiIcon.svelte +23 -0
  435. package/package/components/icons/TogetherAiIcon.svelte.d.ts +7 -0
  436. package/package/components/icons/TrelloIcon.svelte +22 -1
  437. package/package/components/icons/TursoIcon.svelte +7 -0
  438. package/package/components/icons/TursoIcon.svelte.d.ts +7 -0
  439. package/package/components/icons/TwitchIcon.svelte +7 -0
  440. package/package/components/icons/TwitchIcon.svelte.d.ts +7 -0
  441. package/package/components/icons/TwitterIcon.svelte +7 -0
  442. package/package/components/icons/TwitterIcon.svelte.d.ts +7 -0
  443. package/package/components/icons/TypeformIcon.svelte +1 -1
  444. package/package/components/icons/VercelIcon.svelte +7 -0
  445. package/package/components/icons/VercelIcon.svelte.d.ts +7 -0
  446. package/package/components/icons/WebflowIcon.svelte +7 -0
  447. package/package/components/icons/WebflowIcon.svelte.d.ts +7 -0
  448. package/package/components/icons/WooCommerceIcon.svelte +7 -0
  449. package/package/components/icons/WooCommerceIcon.svelte.d.ts +7 -0
  450. package/package/components/icons/WordpressIcon.svelte +7 -0
  451. package/package/components/icons/WordpressIcon.svelte.d.ts +7 -0
  452. package/package/components/icons/XataIcon.svelte +13 -0
  453. package/package/components/icons/XataIcon.svelte.d.ts +7 -0
  454. package/package/components/icons/YelpIcon.svelte +7 -0
  455. package/package/components/icons/YelpIcon.svelte.d.ts +7 -0
  456. package/package/components/icons/YnabIcon.svelte +7 -0
  457. package/package/components/icons/YnabIcon.svelte.d.ts +7 -0
  458. package/package/components/icons/YoutubeIcon.svelte +7 -0
  459. package/package/components/icons/YoutubeIcon.svelte.d.ts +7 -0
  460. package/package/components/icons/ZendeskIcon.svelte +1 -1
  461. package/package/components/icons/ZeroTierIcon.svelte +7 -0
  462. package/package/components/icons/ZeroTierIcon.svelte.d.ts +7 -0
  463. package/package/components/icons/ZoomIcon.svelte +7 -0
  464. package/package/components/icons/ZoomIcon.svelte.d.ts +7 -0
  465. package/package/components/icons/index.d.ts +111 -1
  466. package/package/components/icons/index.js +225 -2
  467. package/package/components/instanceSettings/GhesAppSettings.svelte +161 -0
  468. package/package/components/instanceSettings/GhesAppSettings.svelte.d.ts +8 -0
  469. package/package/components/instanceSettings/IndexerMemorySettings.svelte +19 -8
  470. package/package/components/instanceSettings/InstanceAISettings.svelte +132 -0
  471. package/package/components/instanceSettings/InstanceAISettings.svelte.d.ts +10 -0
  472. package/package/components/instanceSettings/WorkspaceRegistries.svelte +293 -0
  473. package/package/components/instanceSettings/WorkspaceRegistries.svelte.d.ts +8 -0
  474. package/package/components/instanceSettings/WsConnectivityTest.svelte +177 -0
  475. package/package/components/instanceSettings/WsConnectivityTest.svelte.d.ts +7 -0
  476. package/package/components/instanceSettings.d.ts +3 -1
  477. package/package/components/instanceSettings.js +92 -2
  478. package/package/components/mcp/McpScopeSelector.svelte +408 -0
  479. package/package/components/mcp/McpScopeSelector.svelte.d.ts +7 -0
  480. package/package/components/meltComponents/Popover.svelte +0 -1
  481. package/package/components/raw_apps/RawAppPreview.svelte +6 -2
  482. package/package/components/recording/FlowRecordingReplay.svelte +94 -52
  483. package/package/components/recording/FlowRecordingReplay.svelte.d.ts +10 -1
  484. package/package/components/recording/ScriptRecordingReplay.svelte +140 -76
  485. package/package/components/recording/ScriptRecordingReplay.svelte.d.ts +10 -1
  486. package/package/components/runs/JobRunsPreview.svelte +8 -1
  487. package/package/components/runs/TimeframeSelect.svelte +0 -1
  488. package/package/components/schema/JobSchemaPicker.svelte +8 -2
  489. package/package/components/schema/JobSchemaPicker.svelte.d.ts +1 -0
  490. package/package/components/schema/SchemaFormDND.svelte +15 -3
  491. package/package/components/scriptEditor/LogPanel.svelte +78 -68
  492. package/package/components/script_builder.d.ts +1 -1
  493. package/package/components/scripts/CreateActionsScript.svelte +3 -3
  494. package/package/components/scripts/WacExportDrawer.svelte +127 -0
  495. package/package/components/scripts/WacExportDrawer.svelte.d.ts +8 -0
  496. package/package/components/scripts/scriptStore.svelte.d.ts +2 -0
  497. package/package/components/scripts/scriptStore.svelte.js +2 -0
  498. package/package/components/select/SelectDropdown.svelte +1 -1
  499. package/package/components/settings/AIPromptsModal.svelte +5 -2
  500. package/package/components/settings/AIPromptsModal.svelte.d.ts +1 -1
  501. package/package/components/settings/CloudQuotas.svelte +152 -0
  502. package/package/components/settings/CloudQuotas.svelte.d.ts +3 -0
  503. package/package/components/settings/CreateToken.svelte +15 -430
  504. package/package/components/settings/Trashbin.svelte +248 -0
  505. package/package/components/settings/Trashbin.svelte.d.ts +3 -0
  506. package/package/components/sidebar/MultiplayerMenu.svelte +14 -4
  507. package/package/components/triggers/DeleteTriggerButton.svelte +1 -0
  508. package/package/components/triggers/PermissionedAsLine.svelte +66 -0
  509. package/package/components/triggers/PermissionedAsLine.svelte.d.ts +9 -0
  510. package/package/components/triggers/TriggerEditorToolbar.svelte +2 -2
  511. package/package/components/triggers/TriggerTokens.svelte +3 -3
  512. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +19 -1
  513. package/package/components/triggers/email/utils.js +3 -1
  514. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +24 -4
  515. package/package/components/triggers/gcp/utils.js +2 -0
  516. package/package/components/triggers/http/RouteEditorConfigSection.svelte +22 -3
  517. package/package/components/triggers/http/RouteEditorInner.svelte +28 -6
  518. package/package/components/triggers/http/RoutesGenerator.svelte +13 -2
  519. package/package/components/triggers/http/utils.js +3 -1
  520. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +23 -6
  521. package/package/components/triggers/kafka/utils.js +3 -1
  522. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +27 -5
  523. package/package/components/triggers/mqtt/utils.js +2 -0
  524. package/package/components/triggers/native/NativeTriggerEditor.svelte +23 -1
  525. package/package/components/triggers/native/NativeTriggerTable.svelte +14 -3
  526. package/package/components/triggers/native/utils.js +3 -2
  527. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +19 -1
  528. package/package/components/triggers/nats/utils.js +2 -0
  529. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +19 -1
  530. package/package/components/triggers/postgres/utils.js +2 -0
  531. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +29 -7
  532. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +19 -1
  533. package/package/components/triggers/sqs/utils.js +2 -0
  534. package/package/components/triggers/utils.js +9 -2
  535. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +24 -4
  536. package/package/components/triggers/websocket/utils.js +3 -1
  537. package/package/components/workspaceSettings/AISettings.svelte +342 -214
  538. package/package/components/workspaceSettings/AISettings.svelte.d.ts +18 -10
  539. package/package/components/workspaceSettings/CreateWorkspace.svelte +304 -196
  540. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +1 -2
  541. package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
  542. package/package/components/workspaceSettings/InstanceFallbackSettings.svelte +75 -0
  543. package/package/components/workspaceSettings/InstanceFallbackSettings.svelte.d.ts +9 -0
  544. package/package/components/workspaceSettings/StorageSettings.svelte +4 -35
  545. package/package/components/workspaceSettings/VolumeStorageSettings.svelte +80 -0
  546. package/package/components/workspaceSettings/VolumeStorageSettings.svelte.d.ts +10 -0
  547. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +4 -1
  548. package/package/gen/core/OpenAPI.js +1 -1
  549. package/package/gen/schemas.gen.d.ts +294 -94
  550. package/package/gen/schemas.gen.js +294 -94
  551. package/package/gen/services.gen.d.ts +121 -5
  552. package/package/gen/services.gen.js +237 -5
  553. package/package/gen/types.gen.d.ts +715 -91
  554. package/package/githubApp.js +19 -1
  555. package/package/hubPaths.json +8 -4
  556. package/package/infer.d.ts +1 -1
  557. package/package/infer.js +5 -1
  558. package/package/logoutRedirect.d.ts +1 -0
  559. package/package/logoutRedirect.js +24 -0
  560. package/package/script_helpers.d.ts +8 -2
  561. package/package/script_helpers.js +15 -1
  562. package/package/services/trashService.d.ts +28 -0
  563. package/package/services/trashService.js +47 -0
  564. package/package/stores.d.ts +1 -0
  565. package/package/stores.js +1 -0
  566. package/package/system_prompts/index.d.ts +1 -0
  567. package/package/system_prompts/index.js +7 -0
  568. package/package/system_prompts/prompts.d.ts +7 -5
  569. package/package/system_prompts/prompts.js +182 -11
  570. package/package/templates/wac_python.py.template +42 -0
  571. package/package/templates/wac_typescript.ts.template +48 -0
  572. package/package/utils_deployable.d.ts +22 -21
  573. package/package/utils_deployable.js +58 -25
  574. package/package/utils_workspace_deploy.d.ts +15 -4
  575. package/package/utils_workspace_deploy.js +19 -15
  576. package/package/wsUrl.d.ts +1 -0
  577. package/package/wsUrl.js +15 -0
  578. package/package.json +13 -5
  579. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
  580. package/dist/sharedUtils/base.d.ts +0 -1
  581. package/dist/sharedUtils/cloud.d.ts +0 -1
  582. package/dist/sharedUtils/common.d.ts +0 -111
  583. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
  584. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
  585. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
  586. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
  587. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
  588. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
  589. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
  590. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
  591. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
  592. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
  593. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
  594. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
  595. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
  596. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
  597. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
  598. package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
  599. package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
  600. package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
  601. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
  602. package/dist/sharedUtils/components/apps/types.d.ts +0 -274
  603. package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
  604. package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
  605. package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
  606. package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
  607. package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
  608. package/dist/sharedUtils/components/common/index.d.ts +0 -24
  609. package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
  610. package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
  611. package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
  612. package/dist/sharedUtils/components/ducklake.d.ts +0 -1
  613. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
  614. package/dist/sharedUtils/components/icons/index.d.ts +0 -101
  615. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
  616. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
  617. package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
  618. package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
  619. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
  620. package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
  621. package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +0 -2
  622. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
  623. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
  624. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
  625. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
  626. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
  627. package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
  628. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
  629. package/dist/sharedUtils/components/triggers.d.ts +0 -20
  630. package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
  631. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
  632. package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
  633. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
  634. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
  635. package/dist/sharedUtils/gen/core/request.d.ts +0 -29
  636. package/dist/sharedUtils/gen/index.d.ts +0 -6
  637. package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
  638. package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
  639. package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
  640. package/dist/sharedUtils/history.svelte.d.ts +0 -9
  641. package/dist/sharedUtils/hub.d.ts +0 -49
  642. package/dist/sharedUtils/jsr.json +0 -6
  643. package/dist/sharedUtils/lib.d.ts +0 -5
  644. package/dist/sharedUtils/lib.es.js +0 -1588
  645. package/dist/sharedUtils/package.json +0 -12
  646. package/dist/sharedUtils/schema.d.ts +0 -3
  647. package/dist/sharedUtils/stores.d.ts +0 -97
  648. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
  649. package/dist/sharedUtils/toast.d.ts +0 -8
  650. package/dist/sharedUtils/utils.d.ts +0 -265
  651. package/package/components/graph/NodeContextMenu.svelte +0 -36
  652. package/package/components/graph/NodeContextMenu.svelte.d.ts +0 -8
  653. package/package/svelte5Utils.svelte.d.ts +0 -184
@@ -1,4 +1,4 @@
1
- <script lang="ts">import { WorkspaceService } from '../../gen';
1
+ <script lang="ts">import { ResourceService, WorkspaceService } from '../../gen';
2
2
  import { workspaceStore } from '../../stores';
3
3
  import { sendUserToast } from '../../toast';
4
4
  import { AI_PROVIDERS, fetchAvailableModels } from '../copilot/lib';
@@ -18,20 +18,109 @@ import ModelTokenLimits from './ModelTokenLimits.svelte';
18
18
  import { setCopilotInfo } from '../../aiStore';
19
19
  import AIPromptsModal from '../settings/AIPromptsModal.svelte';
20
20
  import { Settings } from 'lucide-svelte';
21
+ import { untrack } from 'svelte';
21
22
  import { slide } from 'svelte/transition';
22
23
  import SettingsFooter from './SettingsFooter.svelte';
24
+ import InstanceFallbackSettings from './InstanceFallbackSettings.svelte';
23
25
  import SettingCard from '../instanceSettings/SettingCard.svelte';
24
- let { aiProviders = $bindable(), codeCompletionModel = $bindable(), defaultModel = $bindable(), customPrompts = $bindable(), maxTokensPerModel = $bindable(), usingOpenaiClientCredentialsOauth = $bindable(), onSave, onDiscard, hasUnsavedChanges = false } = $props();
26
+ let { initialConfig = undefined, hasUnsavedChanges = $bindable(false), workspace = undefined, disableChatOffset = false, hasInstanceAiConfig = false, usesInstanceAiConfig = false, instanceAiSummary = undefined, customSave = undefined, onSave = undefined, title = 'Windmill AI', description = 'Windmill AI integrates with your favorite AI providers and models.', link = 'https://www.windmill.dev/docs/core_concepts/ai_generation', promptScope = 'workspace' } = $props();
27
+ let effectiveWorkspace = $derived(workspace ?? $workspaceStore);
28
+ // --- Internal state ---
29
+ let aiProviders = $state({});
30
+ let codeCompletionModel = $state(undefined);
31
+ let defaultModel = $state(undefined);
32
+ let customPrompts = $state({});
33
+ let maxTokensPerModel = $state({});
34
+ let usingOpenaiClientCredentialsOauth = $state(false);
35
+ let workspaceOverrideEditorOpened = $state(false);
36
+ // --- Initial state for dirty tracking ---
37
+ let initialAiProviders = $state({});
38
+ let initialCodeCompletionModel = $state(undefined);
39
+ let initialDefaultModel = $state(undefined);
40
+ let initialCustomPrompts = $state({});
41
+ let initialMaxTokensPerModel = $state({});
42
+ let initialPrompts = $state({});
43
+ let lastLoadedConfigKey = $state(undefined);
44
+ function clone(v) {
45
+ return JSON.parse(JSON.stringify(v));
46
+ }
47
+ function applyConfig(config) {
48
+ aiProviders = clone(config?.providers ?? {});
49
+ defaultModel = config?.default_model?.model;
50
+ codeCompletionModel = config?.code_completion_model?.model;
51
+ customPrompts = clone(config?.custom_prompts ?? {});
52
+ maxTokensPerModel = clone(config?.max_tokens_per_model ?? {});
53
+ for (const mode of ['edit', 'fix', 'gen']) {
54
+ if (!(mode in customPrompts)) {
55
+ customPrompts[mode] = '';
56
+ }
57
+ }
58
+ }
59
+ function storeInitialState() {
60
+ initialAiProviders = clone(aiProviders);
61
+ initialDefaultModel = defaultModel;
62
+ initialCodeCompletionModel = codeCompletionModel;
63
+ initialCustomPrompts = clone(customPrompts);
64
+ initialMaxTokensPerModel = clone(maxTokensPerModel);
65
+ initialPrompts = clone(customPrompts);
66
+ }
67
+ export function loadFromConfig(config) {
68
+ applyConfig(config);
69
+ storeInitialState();
70
+ }
71
+ export function discard() {
72
+ aiProviders = clone(initialAiProviders);
73
+ defaultModel = initialDefaultModel;
74
+ codeCompletionModel = initialCodeCompletionModel;
75
+ customPrompts = clone(initialCustomPrompts);
76
+ maxTokensPerModel = clone(initialMaxTokensPerModel);
77
+ }
78
+ $effect(() => {
79
+ const configKey = JSON.stringify(initialConfig ?? {});
80
+ if (configKey === lastLoadedConfigKey) {
81
+ return;
82
+ }
83
+ lastLoadedConfigKey = configKey;
84
+ untrack(() => {
85
+ loadFromConfig(initialConfig);
86
+ });
87
+ });
88
+ // Check if openai_client_credentials_oauth resource type exists
89
+ async function loadOpenaiOauthFlag() {
90
+ try {
91
+ usingOpenaiClientCredentialsOauth = await ResourceService.existsResourceType({
92
+ workspace: effectiveWorkspace,
93
+ path: 'openai_client_credentials_oauth'
94
+ });
95
+ }
96
+ catch {
97
+ usingOpenaiClientCredentialsOauth = false;
98
+ }
99
+ }
100
+ loadOpenaiOauthFlag();
101
+ // --- Dirty tracking ---
102
+ let dirty = $derived(JSON.stringify(aiProviders) !== JSON.stringify(initialAiProviders) ||
103
+ defaultModel !== initialDefaultModel ||
104
+ codeCompletionModel !== initialCodeCompletionModel ||
105
+ JSON.stringify(customPrompts) !== JSON.stringify(initialCustomPrompts) ||
106
+ JSON.stringify(maxTokensPerModel) !== JSON.stringify(initialMaxTokensPerModel));
107
+ $effect(() => {
108
+ hasUnsavedChanges = dirty;
109
+ });
110
+ // --- Model fetching ---
25
111
  let fetchedAiModels = $state(false);
26
112
  let availableAiModels = $state(Object.fromEntries(Object.keys(AI_PROVIDERS).map((provider) => [provider, AI_PROVIDERS[provider].defaultModels])));
27
113
  let modalOpen = $state(false);
28
- let initialPrompts = $state($state.snapshot(customPrompts));
29
114
  let hasPromptsChanges = $derived(Array.from(new Set([...Object.keys(customPrompts), ...Object.keys(initialPrompts)])).some((key) => {
30
115
  const currentValue = customPrompts[key] || '';
31
116
  const initialValue = initialPrompts[key] || '';
32
117
  return currentValue !== initialValue;
33
118
  }));
34
119
  let promptCount = $derived(Object.values(customPrompts).filter((p) => p?.trim().length > 0).length);
120
+ let promptDescription = $derived(promptScope === 'instance'
121
+ ? 'Customize AI behavior with instance-level system prompts. These apply when a workspace uses instance AI defaults.'
122
+ : 'Customize AI behavior with workspace-level system prompts. These apply to all workspace members.');
123
+ let showWorkspaceOverrideEditor = $derived(!usesInstanceAiConfig || Object.keys(aiProviders).length > 0 || workspaceOverrideEditorOpened);
35
124
  let selectedAiModels = $derived(Object.values(aiProviders).flatMap((p) => p.models));
36
125
  let modelProviderMap = $derived(Object.fromEntries(Object.entries(aiProviders).flatMap(([provider, config]) => config.models.map((m) => [m, provider]))));
37
126
  $effect(() => {
@@ -48,7 +137,7 @@ $effect(() => {
48
137
  }
49
138
  for (const provider of Object.keys(aiProviders)) {
50
139
  try {
51
- const models = await fetchAvailableModels(aiProviders[provider].resource_path, $workspaceStore, provider);
140
+ const models = await fetchAvailableModels(aiProviders[provider].resource_path, effectiveWorkspace, provider);
52
141
  availableAiModels[provider] = models;
53
142
  }
54
143
  catch (e) {
@@ -63,46 +152,68 @@ function resetPrompts() {
63
152
  customPrompts = { ...initialPrompts };
64
153
  sendUserToast('Reset to last saved state');
65
154
  }
66
- async function editCopilotConfig() {
67
- if (Object.keys(aiProviders ?? {}).length > 0) {
68
- const code_completion_model = codeCompletionModel && modelProviderMap[codeCompletionModel]
69
- ? { model: codeCompletionModel, provider: modelProviderMap[codeCompletionModel] }
70
- : undefined;
71
- const default_model = defaultModel && modelProviderMap[defaultModel]
72
- ? { model: defaultModel, provider: modelProviderMap[defaultModel] }
73
- : undefined;
74
- // Convert customPrompts to include only non-empty prompts
75
- const custom_prompts = Object.entries(customPrompts)
76
- .filter(([_, prompt]) => prompt.trim().length > 0)
77
- .reduce((acc, [mode, prompt]) => ({ ...acc, [mode]: prompt }), {});
78
- const config = {
155
+ function buildConfig() {
156
+ const code_completion_model = codeCompletionModel && modelProviderMap[codeCompletionModel]
157
+ ? { model: codeCompletionModel, provider: modelProviderMap[codeCompletionModel] }
158
+ : undefined;
159
+ const default_model = defaultModel && modelProviderMap[defaultModel]
160
+ ? { model: defaultModel, provider: modelProviderMap[defaultModel] }
161
+ : undefined;
162
+ const custom_prompts = Object.entries(customPrompts)
163
+ .filter(([_, prompt]) => prompt.trim().length > 0)
164
+ .reduce((acc, [mode, prompt]) => ({ ...acc, [mode]: prompt }), {});
165
+ return Object.keys(aiProviders ?? {}).length > 0
166
+ ? {
79
167
  providers: aiProviders,
80
168
  code_completion_model,
81
169
  default_model,
82
170
  custom_prompts: Object.keys(custom_prompts).length > 0 ? custom_prompts : undefined,
83
171
  max_tokens_per_model: Object.keys(maxTokensPerModel).length > 0 ? maxTokensPerModel : undefined
84
- };
85
- await WorkspaceService.editCopilotConfig({
86
- workspace: $workspaceStore,
87
- requestBody: config
88
- });
89
- setCopilotInfo(config);
172
+ }
173
+ : {};
174
+ }
175
+ function isSaveDisabled() {
176
+ return (!Object.values(aiProviders).every((p) => p.resource_path) ||
177
+ (codeCompletionModel != undefined && codeCompletionModel.length === 0) ||
178
+ (Object.keys(aiProviders).length > 0 && !defaultModel));
179
+ }
180
+ export async function saveIfDirtyAndValid() {
181
+ if (!dirty) {
182
+ return true;
183
+ }
184
+ if (isSaveDisabled()) {
185
+ sendUserToast('Complete AI settings before leaving this page', true);
186
+ return false;
187
+ }
188
+ await editCopilotConfig();
189
+ return true;
190
+ }
191
+ async function editCopilotConfig() {
192
+ const config = buildConfig();
193
+ let settingsState;
194
+ if (customSave) {
195
+ await customSave(config);
90
196
  }
91
197
  else {
92
- await WorkspaceService.editCopilotConfig({
93
- workspace: $workspaceStore,
94
- requestBody: {}
198
+ const response = await WorkspaceService.editCopilotConfig({
199
+ workspace: effectiveWorkspace,
200
+ requestBody: config
95
201
  });
96
- setCopilotInfo({});
202
+ setCopilotInfo(response.effective_ai_config);
203
+ settingsState = {
204
+ has_instance_ai_config: response.has_instance_ai_config,
205
+ uses_instance_ai_config: response.uses_instance_ai_config,
206
+ instance_ai_summary: response.instance_ai_summary
207
+ };
208
+ sendUserToast('AI settings updated');
97
209
  }
98
- sendUserToast(`AI settings updated`);
99
- initialPrompts = { ...customPrompts }; // Update initial prompts after successful save
100
- onSave?.();
210
+ storeInitialState();
211
+ await onSave?.(settingsState);
101
212
  }
102
213
  async function onAiProviderChange(provider) {
103
214
  if (aiProviders[provider].resource_path) {
104
215
  try {
105
- const models = await fetchAvailableModels(aiProviders[provider].resource_path, $workspaceStore, provider);
216
+ const models = await fetchAvailableModels(aiProviders[provider].resource_path, effectiveWorkspace, provider);
106
217
  availableAiModels[provider] = models;
107
218
  }
108
219
  catch (e) {
@@ -119,197 +230,214 @@ async function onAiProviderChange(provider) {
119
230
  const autocompleteModels = $derived(selectedAiModels.filter(supportsAutocomplete));
120
231
  </script>
121
232
 
122
- <SettingsPageHeader
123
- title="Windmill AI"
124
- description="Windmill AI integrates with your favorite AI providers and models."
125
- link="https://www.windmill.dev/docs/core_concepts/ai_generation"
126
- />
233
+ <SettingsPageHeader {title} {description} {link} />
127
234
 
128
235
  <div class="flex flex-col gap-6 mt-4 pb-8">
129
- <SettingCard label="AI Providers">
130
- <div class="flex flex-col gap-4 p-4 rounded-md border bg-surface-tertiary">
131
- {#each Object.entries(AI_PROVIDERS) as [provider, details]}
132
- <div class="flex flex-col">
133
- <div class="flex flex-row gap-2">
134
- <Toggle
135
- options={{
136
- right: details.label
137
- }}
138
- checked={!!aiProviders[provider]}
139
- on:change={(e) => {
140
- if (e.detail) {
141
- aiProviders = {
142
- ...aiProviders,
143
- [provider]: {
144
- resource_path: '',
145
- models:
146
- availableAiModels[provider].length > 0
147
- ? [availableAiModels[provider][0]]
148
- : []
236
+ {#if usesInstanceAiConfig}
237
+ <div
238
+ class="p-3 border border-blue-200 dark:border-blue-700 bg-blue-50 dark:bg-blue-900/20 rounded-md text-xs text-secondary"
239
+ >
240
+ Instance-level AI settings are currently active. Configure workspace-specific settings below
241
+ to override them.
242
+ </div>
243
+ <InstanceFallbackSettings
244
+ {instanceAiSummary}
245
+ {showWorkspaceOverrideEditor}
246
+ onToggleOverride={() => (workspaceOverrideEditorOpened = !workspaceOverrideEditorOpened)}
247
+ />
248
+ {:else if hasInstanceAiConfig && Object.keys(aiProviders).length > 0}
249
+ <div
250
+ class="p-3 border border-surface-hover bg-surface-secondary rounded-md text-xs text-secondary"
251
+ >
252
+ Workspace AI settings override instance defaults. Remove workspace settings to use instance
253
+ defaults.
254
+ </div>
255
+ {/if}
256
+ {#if showWorkspaceOverrideEditor}
257
+ <SettingCard label="AI Providers">
258
+ <div class="flex flex-col gap-4 p-4 rounded-md border bg-surface-tertiary">
259
+ {#each Object.entries(AI_PROVIDERS) as [provider, details]}
260
+ <div class="flex flex-col">
261
+ <div class="flex flex-row gap-2">
262
+ <Toggle
263
+ options={{
264
+ right: details.label
265
+ }}
266
+ checked={!!aiProviders[provider]}
267
+ on:change={(e) => {
268
+ if (e.detail) {
269
+ aiProviders = {
270
+ ...aiProviders,
271
+ [provider]: {
272
+ resource_path: '',
273
+ models:
274
+ availableAiModels[provider].length > 0
275
+ ? [availableAiModels[provider][0]]
276
+ : []
277
+ }
149
278
  }
150
- }
151
279
 
152
- if (availableAiModels[provider].length > 0 && !defaultModel) {
153
- defaultModel = availableAiModels[provider][0]
154
- }
155
- } else {
156
- aiProviders = Object.fromEntries(
157
- Object.entries(aiProviders).filter(([key]) => key !== provider)
158
- )
159
- if (defaultModel) {
160
- const currentDefaultModel = Object.values(aiProviders).find(
161
- (p) => defaultModel && p.models.includes(defaultModel)
162
- )
163
- if (!currentDefaultModel) {
164
- defaultModel = undefined
280
+ if (availableAiModels[provider].length > 0 && !defaultModel) {
281
+ defaultModel = availableAiModels[provider][0]
165
282
  }
166
- }
167
- if (codeCompletionModel) {
168
- const currentCodeCompletionModel = Object.values(aiProviders).find(
169
- (p) => codeCompletionModel && p.models.includes(codeCompletionModel)
283
+ } else {
284
+ aiProviders = Object.fromEntries(
285
+ Object.entries(aiProviders).filter(([key]) => key !== provider)
170
286
  )
171
- if (!currentCodeCompletionModel) {
172
- codeCompletionModel = undefined
287
+ if (defaultModel) {
288
+ const currentDefaultModel = Object.values(aiProviders).find(
289
+ (p) => defaultModel && p.models.includes(defaultModel)
290
+ )
291
+ if (!currentDefaultModel) {
292
+ defaultModel = undefined
293
+ }
173
294
  }
174
- }
175
- }
176
- }}
177
- />
178
- {#if provider === 'anthropic'}
179
- <Badge color="blue">
180
- Recommended
181
- <Tooltip>
182
- Anthropic models handle tool calls better than other providers, which makes them a
183
- better choice for AI chat.
184
- </Tooltip>
185
- </Badge>
186
- {/if}
187
- </div>
188
-
189
- {#if aiProviders[provider]}
190
- <div
191
- class="mb-4 flex flex-col gap-6 border p-4 rounded-md mt-2"
192
- transition:slide|local={{ duration: 150 }}
193
- >
194
- <Label label="Resource">
195
- <div class="flex flex-row gap-1">
196
- <ResourcePicker
197
- selectFirst
198
- resourceType={provider === 'openai' && usingOpenaiClientCredentialsOauth
199
- ? 'openai_client_credentials_oauth'
200
- : provider}
201
- initialValue={aiProviders[provider].resource_path}
202
- bind:value={
203
- () => aiProviders[provider].resource_path || undefined,
204
- (v) => {
205
- aiProviders[provider].resource_path = v ?? ''
206
- onAiProviderChange(provider as AIProvider)
295
+ if (codeCompletionModel) {
296
+ const currentCodeCompletionModel = Object.values(aiProviders).find(
297
+ (p) => codeCompletionModel && p.models.includes(codeCompletionModel)
298
+ )
299
+ if (!currentCodeCompletionModel) {
300
+ codeCompletionModel = undefined
207
301
  }
208
302
  }
209
- />
210
- <TestAiKey
211
- aiProvider={provider as AIProvider}
212
- resourcePath={aiProviders[provider].resource_path}
213
- model={aiProviders[provider].models[0]}
214
- />
215
- </div>
216
- </Label>
217
-
218
- <Label label="Enabled models">
219
- <MultiSelect
220
- items={safeSelectItems([
221
- ...availableAiModels[provider],
222
- ...aiProviders[provider].models
223
- ])}
224
- bind:value={aiProviders[provider].models}
225
- placeholder="Select models"
226
- onCreateItem={(item) =>
227
- (aiProviders[provider].models = [...aiProviders[provider].models, item])}
228
- />
229
- <p class="text-2xs text-hint">
230
- If you don't see the model you want, you can type it manually in the selector.
231
- </p>
232
- </Label>
303
+ }
304
+ }}
305
+ />
306
+ {#if provider === 'anthropic'}
307
+ <Badge color="blue">
308
+ Recommended
309
+ <Tooltip>
310
+ Anthropic models handle tool calls better than other providers, which makes them
311
+ a better choice for AI chat.
312
+ </Tooltip>
313
+ </Badge>
314
+ {/if}
233
315
  </div>
234
- {/if}
235
- </div>
236
- {/each}
237
- </div>
238
- </SettingCard>
239
316
 
240
- <SettingCard label="Default chat model">
241
- {#key Object.keys(aiProviders).length}
242
- <Select
243
- items={safeSelectItems(selectedAiModels)}
244
- bind:value={defaultModel}
245
- disabled={false}
246
- placeholder="Select a default model"
247
- size="sm"
248
- class="max-w-lg"
249
- />
250
- {/key}
251
- </SettingCard>
317
+ {#if aiProviders[provider]}
318
+ <div
319
+ class="mb-4 flex flex-col gap-6 border p-4 rounded-md mt-2"
320
+ transition:slide|local={{ duration: 150 }}
321
+ >
322
+ <Label label="Resource">
323
+ <div class="flex flex-row gap-1">
324
+ <ResourcePicker
325
+ selectFirst
326
+ {workspace}
327
+ {disableChatOffset}
328
+ resourceType={provider === 'openai' && usingOpenaiClientCredentialsOauth
329
+ ? 'openai_client_credentials_oauth'
330
+ : provider}
331
+ initialValue={aiProviders[provider].resource_path}
332
+ bind:value={
333
+ () => aiProviders[provider].resource_path || undefined,
334
+ (v) => {
335
+ aiProviders[provider].resource_path = v ?? ''
336
+ onAiProviderChange(provider as AIProvider)
337
+ }
338
+ }
339
+ />
340
+ <TestAiKey
341
+ aiProvider={provider as AIProvider}
342
+ workspace={effectiveWorkspace}
343
+ resourcePath={aiProviders[provider].resource_path}
344
+ model={aiProviders[provider].models[0]}
345
+ />
346
+ </div>
347
+ </Label>
252
348
 
253
- <!-- Code completion group for animation purposes -->
254
- <div>
255
- <SettingCard label="Code completion">
256
- <Toggle
257
- on:change={(e) => {
258
- if (e.detail) {
259
- codeCompletionModel = autocompleteModels[0] ?? ''
260
- } else {
261
- codeCompletionModel = undefined
262
- }
263
- }}
264
- checked={codeCompletionModel != undefined}
265
- disabled={autocompleteModels.length == 0}
266
- options={{
267
- right: 'Enable code completion',
268
- rightTooltip: 'We currently only support Mistral Codestral models for code completion.'
269
- }}
270
- />
349
+ <Label label="Enabled models">
350
+ <MultiSelect
351
+ items={safeSelectItems([
352
+ ...availableAiModels[provider],
353
+ ...aiProviders[provider].models
354
+ ])}
355
+ bind:value={aiProviders[provider].models}
356
+ placeholder="Select models"
357
+ onCreateItem={(item) =>
358
+ (aiProviders[provider].models = [...aiProviders[provider].models, item])}
359
+ />
360
+ <p class="text-2xs text-hint">
361
+ If you don't see the model you want, you can type it manually in the selector.
362
+ </p>
363
+ </Label>
364
+ </div>
365
+ {/if}
366
+ </div>
367
+ {/each}
368
+ </div>
271
369
  </SettingCard>
272
370
 
273
- {#if codeCompletionModel != undefined}
274
- <div transition:slide|local={{ duration: 150 }} class="mt-6">
275
- <SettingCard label="Code completion model">
276
- <Select
277
- items={safeSelectItems(autocompleteModels)}
278
- bind:value={codeCompletionModel}
279
- disabled={false}
280
- placeholder="Select a code completion model"
281
- size="sm"
282
- />
283
- </SettingCard>
284
- </div>
285
- {/if}
286
- </div>
371
+ <SettingCard label="Default chat model">
372
+ {#key Object.keys(aiProviders).length}
373
+ <Select
374
+ items={safeSelectItems(selectedAiModels)}
375
+ bind:value={defaultModel}
376
+ disabled={false}
377
+ placeholder="Select a default model"
378
+ size="sm"
379
+ class="max-w-lg"
380
+ />
381
+ {/key}
382
+ </SettingCard>
287
383
 
288
- <ModelTokenLimits {aiProviders} bind:maxTokensPerModel />
384
+ <!-- Code completion group for animation purposes -->
385
+ <div>
386
+ <SettingCard label="Code completion">
387
+ <Toggle
388
+ on:change={(e) => {
389
+ if (e.detail) {
390
+ codeCompletionModel = autocompleteModels[0] ?? ''
391
+ } else {
392
+ codeCompletionModel = undefined
393
+ }
394
+ }}
395
+ checked={codeCompletionModel != undefined}
396
+ disabled={autocompleteModels.length == 0}
397
+ options={{
398
+ right: 'Enable code completion',
399
+ rightTooltip: 'We currently only support Mistral Codestral models for code completion.'
400
+ }}
401
+ />
402
+ </SettingCard>
289
403
 
290
- <SettingCard
291
- label="Custom system prompts"
292
- description="Customize AI behavior with workspace-level system prompts. These apply to all workspace
293
- members."
294
- >
295
- <div class="flex items-center gap-2 pt-1">
296
- <Button
297
- onclick={() => (modalOpen = true)}
298
- variant="default"
299
- unifiedSize="sm"
300
- startIcon={{ icon: Settings }}
301
- disabled={Object.keys(aiProviders ?? {}).length === 0}
302
- >
303
- Configure AI prompts
304
- </Button>
305
- {#if promptCount > 0}
306
- <span class="text-xs text-secondary">({promptCount} configured)</span>
307
- {/if}
308
- {#if hasPromptsChanges}
309
- <Badge color="yellow">Unsaved changes</Badge>
404
+ {#if codeCompletionModel != undefined}
405
+ <div transition:slide|local={{ duration: 150 }} class="mt-6">
406
+ <SettingCard label="Code completion model">
407
+ <Select
408
+ items={safeSelectItems(autocompleteModels)}
409
+ bind:value={codeCompletionModel}
410
+ disabled={false}
411
+ placeholder="Select a code completion model"
412
+ size="sm"
413
+ />
414
+ </SettingCard>
415
+ </div>
310
416
  {/if}
311
417
  </div>
312
- </SettingCard>
418
+
419
+ <ModelTokenLimits {aiProviders} bind:maxTokensPerModel />
420
+
421
+ <SettingCard label="Custom system prompts" description={promptDescription}>
422
+ <div class="flex items-center gap-2 pt-1">
423
+ <Button
424
+ onclick={() => (modalOpen = true)}
425
+ variant="default"
426
+ unifiedSize="sm"
427
+ startIcon={{ icon: Settings }}
428
+ disabled={Object.keys(aiProviders ?? {}).length === 0}
429
+ >
430
+ Configure AI prompts
431
+ </Button>
432
+ {#if promptCount > 0}
433
+ <span class="text-xs text-secondary">({promptCount} configured)</span>
434
+ {/if}
435
+ {#if hasPromptsChanges}
436
+ <Badge color="yellow">Unsaved changes</Badge>
437
+ {/if}
438
+ </div>
439
+ </SettingCard>
440
+ {/if}
313
441
  </div>
314
442
 
315
443
  <AIPromptsModal
@@ -317,15 +445,15 @@ const autocompleteModels = $derived(selectedAiModels.filter(supportsAutocomplete
317
445
  bind:customPrompts
318
446
  onReset={resetPrompts}
319
447
  hasChanges={hasPromptsChanges}
320
- isWorkspaceSettings={true}
448
+ scope={promptScope}
321
449
  />
322
450
 
323
- <SettingsFooter
324
- {hasUnsavedChanges}
325
- onSave={editCopilotConfig}
326
- onDiscard={() => onDiscard?.()}
327
- saveLabel="Save AI settings"
328
- disabled={!Object.values(aiProviders).every((p) => p.resource_path) ||
329
- (codeCompletionModel != undefined && codeCompletionModel.length === 0) ||
330
- (Object.keys(aiProviders).length > 0 && !defaultModel)}
331
- />
451
+ {#if showWorkspaceOverrideEditor}
452
+ <SettingsFooter
453
+ hasUnsavedChanges={dirty}
454
+ onSave={editCopilotConfig}
455
+ onDiscard={discard}
456
+ saveLabel="Save AI settings"
457
+ disabled={isSaveDisabled()}
458
+ />
459
+ {/if}
@@ -1,15 +1,23 @@
1
- import { type AIConfig } from '../../gen';
1
+ import { type AIConfig, type GetCopilotSettingsStateResponse, type InstanceAISummary } from '../../gen';
2
2
  type $$ComponentProps = {
3
- aiProviders: Exclude<AIConfig['providers'], undefined>;
4
- codeCompletionModel: string | undefined;
5
- defaultModel: string | undefined;
6
- customPrompts: Record<string, string>;
7
- maxTokensPerModel: Record<string, number>;
8
- usingOpenaiClientCredentialsOauth: boolean;
9
- onSave?: () => void;
10
- onDiscard?: () => void;
3
+ initialConfig?: AIConfig | undefined;
11
4
  hasUnsavedChanges?: boolean;
5
+ workspace?: string | undefined;
6
+ disableChatOffset?: boolean;
7
+ hasInstanceAiConfig?: boolean;
8
+ usesInstanceAiConfig?: boolean;
9
+ instanceAiSummary?: InstanceAISummary;
10
+ customSave?: (config: AIConfig) => Promise<void>;
11
+ onSave?: (info?: GetCopilotSettingsStateResponse) => void | Promise<void>;
12
+ title?: string;
13
+ description?: string;
14
+ link?: string;
15
+ promptScope?: 'workspace' | 'instance';
12
16
  };
13
- declare const AISettings: import("svelte").Component<$$ComponentProps, {}, "codeCompletionModel" | "defaultModel" | "customPrompts" | "aiProviders" | "maxTokensPerModel" | "usingOpenaiClientCredentialsOauth">;
17
+ declare const AISettings: import("svelte").Component<$$ComponentProps, {
18
+ loadFromConfig: (config: AIConfig | undefined) => void;
19
+ discard: () => void;
20
+ saveIfDirtyAndValid: () => Promise<boolean>;
21
+ }, "hasUnsavedChanges">;
14
22
  type AISettings = ReturnType<typeof AISettings>;
15
23
  export default AISettings;