windmill-components 1.677.1 → 1.695.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/package/components/AppConnectInner.svelte +6 -0
  2. package/package/components/ArgInput.svelte +2 -0
  3. package/package/components/AutoscalingConfigEditor.svelte +18 -4
  4. package/package/components/CiTestResults.svelte +64 -0
  5. package/package/components/CiTestResults.svelte.d.ts +7 -0
  6. package/package/components/CompareWorkspaces.svelte +741 -484
  7. package/package/components/DBManager.svelte +35 -4
  8. package/package/components/DBManager.svelte.d.ts +2 -0
  9. package/package/components/DBManagerContent.svelte +3 -1
  10. package/package/components/DBManagerContent.svelte.d.ts +3 -0
  11. package/package/components/DBManagerDrawer.svelte +145 -3
  12. package/package/components/DBTableEditor.svelte +14 -4
  13. package/package/components/DatatablePicker.svelte +2 -5
  14. package/package/components/DatatableSchemaDiff.svelte +531 -0
  15. package/package/components/DatatableSchemaDiff.svelte.d.ts +29 -0
  16. package/package/components/DedicatedWorkersSelector.svelte +4 -2
  17. package/package/components/DefaultTagsInner.svelte +42 -2
  18. package/package/components/DeployWorkspaceDrawer.svelte +1 -1
  19. package/package/components/Dev.svelte +407 -74
  20. package/package/components/EditableSchemaForm.svelte +4 -0
  21. package/package/components/Editor.svelte +1 -1
  22. package/package/components/EditorBar.svelte +1 -1
  23. package/package/components/EditorBar.svelte.d.ts +1 -1
  24. package/package/components/ErrorOrRecoveryHandler.svelte +2 -2
  25. package/package/components/FlowPreviewContent.svelte +32 -30
  26. package/package/components/FlowRestartButton.svelte +143 -61
  27. package/package/components/FlowRestartButton.svelte.d.ts +37 -0
  28. package/package/components/FlowStatusViewer.svelte +15 -1
  29. package/package/components/FlowStatusViewer.svelte.d.ts +10 -2
  30. package/package/components/FlowStatusViewerInner.svelte +270 -222
  31. package/package/components/FlowStatusViewerInner.svelte.d.ts +6 -2
  32. package/package/components/FlowTimeline.svelte +1 -1
  33. package/package/components/FolderEditor.svelte +189 -4
  34. package/package/components/ForkConflictModal.svelte +57 -0
  35. package/package/components/ForkConflictModal.svelte.d.ts +3 -0
  36. package/package/components/ForkWorkspaceBanner.svelte +82 -11
  37. package/package/components/GitRepoViewer.svelte +251 -97
  38. package/package/components/GlobalUserOffboardingModal.svelte +293 -0
  39. package/package/components/GlobalUserOffboardingModal.svelte.d.ts +10 -0
  40. package/package/components/InputTransformSchemaForm.svelte +1 -1
  41. package/package/components/InstanceSettings.svelte +58 -19
  42. package/package/components/Login.svelte +133 -36
  43. package/package/components/Login.svelte.d.ts +1 -0
  44. package/package/components/ModuleTest.svelte +2 -1
  45. package/package/components/NoMainFuncBadge.svelte +1 -1
  46. package/package/components/OffboardItemsBox.svelte +56 -0
  47. package/package/components/OffboardItemsBox.svelte.d.ts +12 -0
  48. package/package/components/OffboardReassignControls.svelte +47 -0
  49. package/package/components/OffboardReassignControls.svelte.d.ts +20 -0
  50. package/package/components/OffboardWorkspaceSection.svelte +110 -0
  51. package/package/components/OffboardWorkspaceSection.svelte.d.ts +24 -0
  52. package/package/components/OnBehalfOfSelector.svelte +21 -3
  53. package/package/components/OnBehalfOfSelector.svelte.d.ts +7 -0
  54. package/package/components/Path.svelte +7 -1
  55. package/package/components/Path.svelte.d.ts +1 -1
  56. package/package/components/QueueAlerts.svelte +10 -10
  57. package/package/components/ResourcePicker.svelte +2 -2
  58. package/package/components/RunsPage.svelte +2 -1
  59. package/package/components/S3FilePickerInner.svelte +89 -89
  60. package/package/components/ScriptBuilder.svelte +52 -11
  61. package/package/components/ScriptEditor.svelte +19 -8
  62. package/package/components/ScriptEditor.svelte.d.ts +1 -1
  63. package/package/components/ShareModal.svelte +236 -98
  64. package/package/components/ShareModal.svelte.d.ts +1 -1
  65. package/package/components/SuperadminSettingsInner.svelte +362 -315
  66. package/package/components/UserOffboardingModal.svelte +238 -0
  67. package/package/components/UserOffboardingModal.svelte.d.ts +10 -0
  68. package/package/components/WorkspaceDeployLayout.svelte +3 -3
  69. package/package/components/WorkspaceDeployLayout.svelte.d.ts +1 -0
  70. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +3 -0
  71. package/package/components/apps/components/helpers/executeRunnable.js +2 -1
  72. package/package/components/apps/editor/AppReportsDrawerInner.svelte +1 -1
  73. package/package/components/apps/editor/appPolicy.js +2 -1
  74. package/package/components/apps/editor/commonAppUtils.d.ts +3 -0
  75. package/package/components/apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte +1 -1
  76. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptEditor.svelte +7 -0
  77. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +4 -2
  78. package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte +49 -0
  79. package/package/components/apps/editor/inlineScriptsPanel/TagPopup.svelte.d.ts +9 -0
  80. package/package/components/apps/editor/settingsPanel/mainInput/RunnableSelector.svelte +12 -0
  81. package/package/components/apps/inputType.d.ts +1 -0
  82. package/package/components/apps/sharedTypes.d.ts +1 -0
  83. package/package/components/assets/AssetsDropdownButton.svelte +1 -1
  84. package/package/components/auditLogs/AuditLogsFilters.svelte +8 -3
  85. package/package/components/common/confirmationModal/ConfirmationModal.svelte +1 -1
  86. package/package/components/common/fileUpload/S3ArgInput.svelte +12 -10
  87. package/package/components/common/fileUpload/S3ArgInput.svelte.d.ts +2 -0
  88. package/package/components/common/table/AppRow.svelte +3 -3
  89. package/package/components/common/table/FlowRow.svelte +3 -3
  90. package/package/components/common/table/RawAppRow.svelte +4 -4
  91. package/package/components/common/table/Row.svelte +6 -2
  92. package/package/components/common/table/ScriptRow.svelte +11 -3
  93. package/package/components/copilot/chat/AIChatDisplay.svelte +5 -36
  94. package/package/components/copilot/chat/AIChatInput.svelte +56 -47
  95. package/package/components/copilot/chat/AIChatManager.svelte.js +50 -48
  96. package/package/components/copilot/chat/ContextElementBadge.svelte +6 -4
  97. package/package/components/copilot/chat/anthropic.d.ts +7 -1
  98. package/package/components/copilot/chat/anthropic.js +5 -2
  99. package/package/components/copilot/chat/app/core.d.ts +12 -20
  100. package/package/components/copilot/chat/app/core.js +230 -159
  101. package/package/components/copilot/chat/app/core.test.js +417 -0
  102. package/package/components/copilot/chat/chatLoop.d.ts +3 -0
  103. package/package/components/copilot/chat/chatLoop.js +13 -5
  104. package/package/components/copilot/chat/context.js +44 -0
  105. package/package/components/copilot/chat/flow/FlowAIChat.svelte +57 -76
  106. package/package/components/copilot/chat/flow/core.d.ts +14 -3
  107. package/package/components/copilot/chat/flow/core.js +494 -116
  108. package/package/components/copilot/chat/flow/helperUtils.d.ts +22 -0
  109. package/package/components/copilot/chat/flow/helperUtils.js +100 -0
  110. package/package/components/copilot/chat/flow/helperUtils.test.js +231 -0
  111. package/package/components/copilot/chat/flow/inlineScriptsUtils.d.ts +5 -24
  112. package/package/components/copilot/chat/flow/inlineScriptsUtils.js +30 -55
  113. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  114. package/package/components/copilot/chat/flow/openFlowZod.gen.js +24 -0
  115. package/package/components/copilot/chat/flow/utils.test.js +59 -0
  116. package/package/components/copilot/chat/openai-responses.d.ts +7 -1
  117. package/package/components/copilot/chat/openai-responses.js +5 -2
  118. package/package/components/copilot/chat/script/core.js +3 -0
  119. package/package/components/copilot/chat/shared.d.ts +7 -2
  120. package/package/components/copilot/chat/shared.js +116 -53
  121. package/package/components/copilot/chat/shared.test.d.ts +1 -0
  122. package/package/components/copilot/chat/shared.test.js +412 -0
  123. package/package/components/copilot/chat/tokenUsage.d.ts +23 -0
  124. package/package/components/copilot/chat/tokenUsage.js +42 -0
  125. package/package/components/copilot/chat/workspaceTools.d.ts +7 -0
  126. package/package/components/copilot/chat/workspaceTools.js +239 -0
  127. package/package/components/copilot/chat/workspaceToolsZod.gen.d.ts +1295 -0
  128. package/package/components/copilot/chat/workspaceToolsZod.gen.js +424 -0
  129. package/package/components/copilot/lib.d.ts +5 -1
  130. package/package/components/copilot/lib.js +24 -6
  131. package/package/components/copilot/lib.test.d.ts +1 -0
  132. package/package/components/copilot/lib.test.js +19 -0
  133. package/package/components/copilot/modelConfig.d.ts +3 -0
  134. package/package/components/copilot/modelConfig.js +10 -0
  135. package/package/components/deploymentRequest/DeploymentRequestPanel.svelte +337 -0
  136. package/package/components/deploymentRequest/DeploymentRequestPanel.svelte.d.ts +15 -0
  137. package/package/components/details/CopyableCodeBlock.svelte +18 -8
  138. package/package/components/details/CopyableCodeBlock.svelte.d.ts +1 -0
  139. package/package/components/flows/FlowAssetsHandler.svelte +19 -21
  140. package/package/components/flows/FlowProgressBar.svelte +5 -2
  141. package/package/components/flows/agentToolTree.d.ts +17 -0
  142. package/package/components/flows/agentToolTree.js +114 -0
  143. package/package/components/flows/agentToolTree.test.d.ts +1 -0
  144. package/package/components/flows/agentToolTree.test.js +86 -0
  145. package/package/components/flows/agentToolUtils.d.ts +0 -5
  146. package/package/components/flows/agentToolUtils.js +0 -49
  147. package/package/components/flows/content/FlowLoop.svelte +7 -4
  148. package/package/components/flows/content/FlowModuleComponent.svelte +636 -599
  149. package/package/components/flows/content/FlowModuleDeleteAfterUse.svelte +15 -7
  150. package/package/components/flows/content/FlowSettings.svelte +29 -0
  151. package/package/components/flows/conversations/FlowChatManager.svelte.js +21 -10
  152. package/package/components/flows/dfs.d.ts +6 -2
  153. package/package/components/flows/dfs.js +19 -11
  154. package/package/components/flows/flowDeleteController.d.ts +32 -0
  155. package/package/components/flows/flowDeleteController.js +54 -0
  156. package/package/components/flows/flowDeleteController.test.d.ts +1 -0
  157. package/package/components/flows/flowDeleteController.test.js +121 -0
  158. package/package/components/flows/flowDeleteUtils.d.ts +48 -0
  159. package/package/components/flows/flowDeleteUtils.js +150 -0
  160. package/package/components/flows/flowDeleteUtils.test.d.ts +1 -0
  161. package/package/components/flows/flowDeleteUtils.test.js +131 -0
  162. package/package/components/flows/flowDiff.d.ts +2 -47
  163. package/package/components/flows/flowDiff.js +16 -293
  164. package/package/components/flows/flowDiff.testUtils.d.ts +8 -0
  165. package/package/components/flows/flowDiff.testUtils.js +26 -0
  166. package/package/components/flows/flowDiffManager.svelte.js +20 -75
  167. package/package/components/flows/flowDiffManager.svelte.test.js +103 -2
  168. package/package/components/flows/flowExplorer.d.ts +4 -0
  169. package/package/components/flows/flowExplorer.js +7 -30
  170. package/package/components/flows/flowState.d.ts +1 -0
  171. package/package/components/flows/flowStateUtils.svelte.js +11 -2
  172. package/package/components/flows/flowTree.d.ts +91 -0
  173. package/package/components/flows/flowTree.js +326 -0
  174. package/package/components/flows/flowTree.test.d.ts +1 -0
  175. package/package/components/flows/flowTree.test.js +236 -0
  176. package/package/components/flows/map/FlowJobsMenu.svelte +36 -30
  177. package/package/components/flows/map/FlowModuleSchemaItem.svelte +1 -1
  178. package/package/components/flows/map/FlowModuleSchemaMap.svelte +73 -229
  179. package/package/components/flows/map/FlowModuleSchemaMap.svelte.d.ts +1 -2
  180. package/package/components/flows/pickers/PickHubScriptQuick.svelte +2 -2
  181. package/package/components/flows/previousResults.js +13 -41
  182. package/package/components/flows/previousResults.test.d.ts +1 -0
  183. package/package/components/flows/previousResults.test.js +65 -0
  184. package/package/components/flows/propPicker/OutputPicker.svelte +2 -1
  185. package/package/components/flows/propPicker/OutputPickerInner.svelte +41 -4
  186. package/package/components/flows/propPicker/StepHistory.svelte +9 -1
  187. package/package/components/git_sync/GitSyncContext.svelte.js +11 -7
  188. package/package/components/git_sync/GitSyncRepositoryCard.svelte +2 -29
  189. package/package/components/git_sync/PullWorkspaceModal.svelte +6 -7
  190. package/package/components/graph/FlowGraphV2.svelte +8 -4
  191. package/package/components/graph/FlowGraphV2.svelte.d.ts +2 -0
  192. package/package/components/graph/groupedModulesProxy.svelte.d.ts +10 -0
  193. package/package/components/graph/groupedModulesProxy.svelte.js +17 -1
  194. package/package/components/graph/renderers/triggers/TriggersBadge.svelte +8 -2
  195. package/package/components/home/HomeConnectDrawer.svelte +125 -0
  196. package/package/components/home/HomeConnectDrawer.svelte.d.ts +5 -0
  197. package/package/components/home/deploy_ui.js +1 -1
  198. package/package/components/icons/AzureIcon.svelte +12 -25
  199. package/package/components/icons/AzureIcon.svelte.d.ts +3 -2
  200. package/package/components/icons/GithubIcon.svelte +4 -4
  201. package/package/components/icons/GithubIcon.svelte.d.ts +5 -2
  202. package/package/components/instanceSettings/ExternalJwtTokens.svelte +85 -0
  203. package/package/components/instanceSettings/ExternalJwtTokens.svelte.d.ts +12 -0
  204. package/package/components/instanceSettings/GhesAppSettings.svelte +17 -0
  205. package/package/components/instanceSettings/IndexerMemorySettings.svelte +56 -29
  206. package/package/components/instanceSettings/SecretBackendConfig.svelte +9 -2
  207. package/package/components/instanceSettings.d.ts +1 -0
  208. package/package/components/instanceSettings.js +66 -8
  209. package/package/components/mcp/McpScopeSelector.svelte +119 -9
  210. package/package/components/mcp/McpScopeSelector.svelte.d.ts +1 -0
  211. package/package/components/offboarding-utils.d.ts +11 -0
  212. package/package/components/offboarding-utils.js +102 -0
  213. package/package/components/progressBar/ProgressBar.svelte +9 -5
  214. package/package/components/progressBar/ProgressBar.svelte.d.ts +1 -0
  215. package/package/components/raw_apps/DeleteAfterUsePopup.svelte +52 -0
  216. package/package/components/raw_apps/DeleteAfterUsePopup.svelte.d.ts +9 -0
  217. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +5 -1
  218. package/package/components/raw_apps/RawAppDataTableDrawer.svelte +1 -1
  219. package/package/components/raw_apps/RawAppEditor.svelte +186 -102
  220. package/package/components/raw_apps/RawAppEditorHeader.svelte +6 -1
  221. package/package/components/raw_apps/RawAppEditorHeader.svelte.d.ts +1 -0
  222. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +9 -3
  223. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +2 -1
  224. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +1 -0
  225. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +1 -0
  226. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +48 -5
  227. package/package/components/raw_apps/RawAppSharedUiDrawer.svelte +129 -0
  228. package/package/components/raw_apps/RawAppSharedUiDrawer.svelte.d.ts +5 -0
  229. package/package/components/raw_apps/RawAppSidebar.svelte +12 -0
  230. package/package/components/raw_apps/RawAppYamlEditor.svelte +81 -0
  231. package/package/components/raw_apps/RawAppYamlEditor.svelte.d.ts +20 -0
  232. package/package/components/raw_apps/dataTableRefUtils.d.ts +7 -0
  233. package/package/components/raw_apps/dataTableRefUtils.js +34 -0
  234. package/package/components/raw_apps/dataTableRefUtils.test.d.ts +1 -0
  235. package/package/components/raw_apps/dataTableRefUtils.test.js +29 -0
  236. package/package/components/raw_apps/datatableUtils.svelte.js +1 -1
  237. package/package/components/raw_apps/rawAppPolicy.d.ts +1 -0
  238. package/package/components/raw_apps/rawAppPolicy.js +17 -2
  239. package/package/components/resources/resourceTypesFilter.d.ts +19 -0
  240. package/package/components/resources/resourceTypesFilter.js +21 -0
  241. package/package/components/restartFromStepPath.d.ts +39 -0
  242. package/package/components/restartFromStepPath.js +89 -0
  243. package/package/components/runs/JobDetailFieldConfig.d.ts +1 -0
  244. package/package/components/runs/JobDetailFieldConfig.js +57 -10
  245. package/package/components/runs/JobDetailHeader.svelte +24 -3
  246. package/package/components/runs/runsFilter.d.ts +1 -1
  247. package/package/components/schema/FlowPropertyEditor.svelte +30 -1
  248. package/package/components/schema/FlowPropertyEditor.svelte.d.ts +5 -2
  249. package/package/components/script_builder.d.ts +1 -1
  250. package/package/components/search/GlobalSearchModal.svelte +8 -1
  251. package/package/components/select/Select.svelte +3 -2
  252. package/package/components/select/Select.svelte.d.ts +1 -0
  253. package/package/components/settings/CreateToken.svelte +91 -71
  254. package/package/components/settings/CreateToken.svelte.d.ts +3 -0
  255. package/package/components/settings/EditTokenScopesModal.svelte +57 -0
  256. package/package/components/settings/EditTokenScopesModal.svelte.d.ts +10 -0
  257. package/package/components/settings/ScopesPicker.svelte +43 -0
  258. package/package/components/settings/ScopesPicker.svelte.d.ts +11 -0
  259. package/package/components/settings/TokensTable.svelte +51 -15
  260. package/package/components/settings/WorkspaceUserSettings.svelte +34 -28
  261. package/package/components/sidebar/OperatorMenu.svelte +6 -0
  262. package/package/components/sidebar/SidebarContent.svelte +68 -2
  263. package/package/components/sidebar/WorkspaceMenu.svelte +8 -4
  264. package/package/components/triggers/AddTriggersButton.svelte +17 -0
  265. package/package/components/triggers/CaptureWrapper.svelte +19 -1
  266. package/package/components/triggers/PermissionedAsLine.svelte +37 -3
  267. package/package/components/triggers/PermissionedAsLine.svelte.d.ts +6 -0
  268. package/package/components/triggers/TriggerEditorToolbar.svelte.d.ts +1 -1
  269. package/package/components/triggers/TriggerModeToggle.svelte +36 -7
  270. package/package/components/triggers/TriggerModeToggle.svelte.d.ts +1 -1
  271. package/package/components/triggers/TriggerSuspendedJobsModal.svelte.d.ts +1 -1
  272. package/package/components/triggers/TriggersEditor.svelte +10 -2
  273. package/package/components/triggers/TriggersWrapper.svelte +20 -0
  274. package/package/components/triggers/azure/AzureCapture.svelte +41 -0
  275. package/package/components/triggers/azure/AzureCapture.svelte.d.ts +44 -0
  276. package/package/components/triggers/azure/AzureTriggerEditor.svelte +20 -0
  277. package/package/components/triggers/azure/AzureTriggerEditor.svelte.d.ts +9 -0
  278. package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte +301 -0
  279. package/package/components/triggers/azure/AzureTriggerEditorConfigSection.svelte.d.ts +16 -0
  280. package/package/components/triggers/azure/AzureTriggerEditorInner.svelte +422 -0
  281. package/package/components/triggers/azure/AzureTriggerEditorInner.svelte.d.ts +25 -0
  282. package/package/components/triggers/azure/AzureTriggerPanel.svelte +55 -0
  283. package/package/components/triggers/azure/AzureTriggerPanel.svelte.d.ts +10 -0
  284. package/{dist/sharedUtils/components/triggers/kafka → package/components/triggers/azure}/utils.d.ts +1 -1
  285. package/package/components/triggers/azure/utils.js +56 -0
  286. package/package/components/triggers/email/EmailTriggerEditorInner.svelte +15 -11
  287. package/package/components/triggers/gcp/GcpTriggerEditorInner.svelte +22 -14
  288. package/package/components/triggers/http/RouteEditorConfigSection.svelte +15 -7
  289. package/package/components/triggers/http/RouteEditorInner.svelte +16 -14
  290. package/package/components/triggers/http/RoutesGenerator.svelte +6 -1
  291. package/package/components/triggers/http/RoutesPanel.svelte +1 -1
  292. package/package/components/triggers/http/utils.d.ts +1 -1
  293. package/package/components/triggers/http/utils.js +2 -2
  294. package/package/components/triggers/kafka/KafkaTriggerEditorInner.svelte +22 -14
  295. package/package/components/triggers/mqtt/MqttTriggerEditorInner.svelte +22 -14
  296. package/package/components/triggers/native/NativeTriggerEditor.svelte +3 -0
  297. package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte +118 -0
  298. package/package/components/triggers/native/services/github/GitHubTriggerForm.svelte.d.ts +17 -0
  299. package/package/components/triggers/native/utils.js +14 -0
  300. package/package/components/triggers/nats/NatsTriggerEditor.svelte.d.ts +4 -3
  301. package/package/components/triggers/nats/NatsTriggerEditorInner.svelte +22 -14
  302. package/package/components/triggers/postgres/PostgresTriggerEditor.svelte.d.ts +4 -3
  303. package/package/components/triggers/postgres/PostgresTriggerEditorInner.svelte +22 -14
  304. package/package/components/triggers/schedules/ScheduleEditorInner.svelte +22 -14
  305. package/package/components/triggers/sqs/SqsTriggerEditor.svelte.d.ts +4 -3
  306. package/package/components/triggers/sqs/SqsTriggerEditorInner.svelte +22 -14
  307. package/package/components/triggers/triggers.svelte.d.ts +1 -0
  308. package/package/components/triggers/triggers.svelte.js +24 -1
  309. package/package/components/triggers/utils.js +47 -6
  310. package/package/components/triggers/websocket/WebsocketTriggerEditorInner.svelte +22 -14
  311. package/package/components/triggers.d.ts +1 -1
  312. package/package/components/useFolderDefaultPermissionedAs.svelte.d.ts +13 -0
  313. package/package/components/useFolderDefaultPermissionedAs.svelte.js +63 -0
  314. package/package/components/useNestedRestartState.svelte.d.ts +56 -0
  315. package/package/components/useNestedRestartState.svelte.js +320 -0
  316. package/package/components/workspaceSettings/CreateWorkspace.svelte +16 -677
  317. package/package/components/workspaceSettings/CreateWorkspaceInner.svelte +604 -0
  318. package/package/components/workspaceSettings/CreateWorkspaceInner.svelte.d.ts +7 -0
  319. package/package/components/workspaceSettings/CustomInstanceDbSelect.svelte +27 -25
  320. package/package/components/workspaceSettings/CustomInstanceDbWizardModal.svelte +46 -8
  321. package/package/components/workspaceSettings/DataTableSettings.svelte +27 -22
  322. package/package/components/workspaceSettings/DucklakeSettings.svelte +1 -1
  323. package/package/components/workspaceSettings/ForkDatatableSection.svelte +228 -0
  324. package/package/components/workspaceSettings/ForkDatatableSection.svelte.d.ts +28 -0
  325. package/package/components/workspaceSettings/GitSyncFilterSettings.svelte +8 -2
  326. package/package/components/workspaceSettings/RulesetEditor.svelte +27 -2
  327. package/package/components/workspaceSettings/SharedUiSettings.svelte +175 -0
  328. package/package/components/workspaceSettings/SharedUiSettings.svelte.d.ts +3 -0
  329. package/package/components/workspaceSettings/VolumeStorageSettings.svelte +1 -1
  330. package/package/components/workspaceSettings/WorkspaceIntegrations.svelte +17 -1
  331. package/package/consts.d.ts +3 -0
  332. package/package/consts.js +10 -0
  333. package/package/gen/core/OpenAPI.js +1 -1
  334. package/package/gen/schemas.gen.d.ts +795 -59
  335. package/package/gen/schemas.gen.js +801 -60
  336. package/package/gen/services.gen.d.ts +475 -5
  337. package/package/gen/services.gen.js +976 -23
  338. package/package/gen/types.gen.d.ts +1865 -75
  339. package/package/githubApp.js +5 -1
  340. package/package/hubPaths.json +2 -8
  341. package/package/infer.d.ts +1 -1
  342. package/package/infer.js +50 -52
  343. package/package/infer.svelte.js +10 -1
  344. package/package/mcpEndpointTools.js +60 -4
  345. package/package/monaco_workers/sqlTypePlugin.worker.d.ts +10 -0
  346. package/package/monaco_workers/sqlTypePlugin.worker.js +39 -0
  347. package/package/script_helpers.d.ts +8 -2
  348. package/package/script_helpers.js +31 -0
  349. package/package/stores.d.ts +11 -0
  350. package/package/stores.js +6 -0
  351. package/package/system_prompts/index.d.ts +1 -0
  352. package/package/system_prompts/index.js +8 -0
  353. package/package/system_prompts/prompts.d.ts +17 -13
  354. package/package/system_prompts/prompts.js +921 -61
  355. package/package/templates/ci_test_bun.ts.template +27 -0
  356. package/package/templates/ci_test_python.py.template +26 -0
  357. package/package/utils/forkConflict.d.ts +26 -0
  358. package/package/utils/forkConflict.js +56 -0
  359. package/package/utils_deployable.d.ts +164 -121
  360. package/package/utils_deployable.js +61 -11
  361. package/package/utils_workspace_deploy.d.ts +8 -8
  362. package/package/utils_workspace_deploy.js +89 -421
  363. package/package.json +30 -6
  364. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +0 -2
  365. package/dist/sharedUtils/base.d.ts +0 -1
  366. package/dist/sharedUtils/cloud.d.ts +0 -1
  367. package/dist/sharedUtils/common.d.ts +0 -111
  368. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +0 -5
  369. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +0 -5
  370. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +0 -5
  371. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +0 -13
  372. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +0 -11
  373. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +0 -95
  374. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +0 -6
  375. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +0 -7
  376. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +0 -33
  377. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +0 -10
  378. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +0 -5371
  379. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +0 -3
  380. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +0 -3
  381. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +0 -7
  382. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +0 -3
  383. package/dist/sharedUtils/components/apps/gridUtils.d.ts +0 -14
  384. package/dist/sharedUtils/components/apps/inputType.d.ts +0 -178
  385. package/dist/sharedUtils/components/apps/rx.d.ts +0 -29
  386. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +0 -21
  387. package/dist/sharedUtils/components/apps/types.d.ts +0 -274
  388. package/dist/sharedUtils/components/assets/lib.d.ts +0 -25
  389. package/dist/sharedUtils/components/common/alert/model.d.ts +0 -2
  390. package/dist/sharedUtils/components/common/badge/model.d.ts +0 -8
  391. package/dist/sharedUtils/components/common/button/model.d.ts +0 -45
  392. package/dist/sharedUtils/components/common/fileInput/model.d.ts +0 -1
  393. package/dist/sharedUtils/components/common/index.d.ts +0 -24
  394. package/dist/sharedUtils/components/common/skeleton/model.d.ts +0 -21
  395. package/dist/sharedUtils/components/dbTypes.d.ts +0 -14
  396. package/dist/sharedUtils/components/diff_drawer.d.ts +0 -26
  397. package/dist/sharedUtils/components/ducklake.d.ts +0 -1
  398. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +0 -7
  399. package/dist/sharedUtils/components/icons/index.d.ts +0 -101
  400. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +0 -1
  401. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +0 -10
  402. package/dist/sharedUtils/components/raw_apps/utils.d.ts +0 -15
  403. package/dist/sharedUtils/components/triggers/email/utils.d.ts +0 -4
  404. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +0 -2
  405. package/dist/sharedUtils/components/triggers/http/utils.d.ts +0 -11
  406. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +0 -2
  407. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +0 -2
  408. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +0 -8
  409. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +0 -2
  410. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +0 -32
  411. package/dist/sharedUtils/components/triggers/utils.d.ts +0 -80
  412. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +0 -2
  413. package/dist/sharedUtils/components/triggers.d.ts +0 -20
  414. package/dist/sharedUtils/gen/core/ApiError.d.ts +0 -10
  415. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +0 -13
  416. package/dist/sharedUtils/gen/core/ApiResult.d.ts +0 -7
  417. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +0 -26
  418. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +0 -27
  419. package/dist/sharedUtils/gen/core/request.d.ts +0 -29
  420. package/dist/sharedUtils/gen/index.d.ts +0 -6
  421. package/dist/sharedUtils/gen/schemas.gen.d.ts +0 -7036
  422. package/dist/sharedUtils/gen/services.gen.d.ts +0 -6047
  423. package/dist/sharedUtils/gen/types.gen.d.ts +0 -21881
  424. package/dist/sharedUtils/history.svelte.d.ts +0 -9
  425. package/dist/sharedUtils/hub.d.ts +0 -49
  426. package/dist/sharedUtils/jsr.json +0 -6
  427. package/dist/sharedUtils/lib.d.ts +0 -5
  428. package/dist/sharedUtils/lib.es.js +0 -1588
  429. package/dist/sharedUtils/package.json +0 -12
  430. package/dist/sharedUtils/schema.d.ts +0 -3
  431. package/dist/sharedUtils/stores.d.ts +0 -97
  432. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +0 -80
  433. package/dist/sharedUtils/toast.d.ts +0 -8
  434. package/dist/sharedUtils/utils.d.ts +0 -265
  435. package/package/components/copilot/chat/__tests__/app/appChat.eval.test.js +0 -153
  436. package/package/components/copilot/chat/__tests__/app/appEvalComparison.d.ts +0 -21
  437. package/package/components/copilot/chat/__tests__/app/appEvalComparison.js +0 -136
  438. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.d.ts +0 -15
  439. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +0 -107
  440. package/package/components/copilot/chat/__tests__/app/appEvalRunner.d.ts +0 -50
  441. package/package/components/copilot/chat/__tests__/app/appEvalRunner.js +0 -93
  442. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.d.ts +0 -29
  443. package/package/components/copilot/chat/__tests__/app/appFixtureLoader.js +0 -134
  444. package/package/components/copilot/chat/__tests__/app/appResultsWriter.d.ts +0 -30
  445. package/package/components/copilot/chat/__tests__/app/appResultsWriter.js +0 -197
  446. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.d.ts +0 -10
  447. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/main.js +0 -9
  448. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/createFolder/meta.json +0 -4
  449. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.d.ts +0 -6
  450. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/main.js +0 -5
  451. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/deleteItem/meta.json +0 -4
  452. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.d.ts +0 -12
  453. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/main.js +0 -14
  454. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFiles/meta.json +0 -4
  455. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.d.ts +0 -8
  456. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/main.js +0 -25
  457. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/listFolders/meta.json +0 -4
  458. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.d.ts +0 -7
  459. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/main.js +0 -5
  460. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/moveItem/meta.json +0 -4
  461. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.d.ts +0 -8
  462. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/main.js +0 -5
  463. package/package/components/copilot/chat/__tests__/app/initial/file_manager/backend/renameItem/meta.json +0 -4
  464. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.d.ts +0 -10
  465. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Breadcrumb.tsx +0 -26
  466. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.d.ts +0 -10
  467. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileItem.tsx +0 -79
  468. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.d.ts +0 -10
  469. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FileList.tsx +0 -46
  470. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.d.ts +0 -10
  471. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/FolderTree.tsx +0 -56
  472. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.d.ts +0 -6
  473. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/components/Toolbar.tsx +0 -59
  474. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.d.ts +0 -16
  475. package/package/components/copilot/chat/__tests__/app/initial/file_manager/frontend/index.tsx +0 -119
  476. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.d.ts +0 -15
  477. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/main.js +0 -14
  478. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/addToCart/meta.json +0 -4
  479. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.d.ts +0 -14
  480. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/main.js +0 -5
  481. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/calculateTotal/meta.json +0 -4
  482. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.d.ts +0 -6
  483. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/main.js +0 -41
  484. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/getProducts/meta.json +0 -4
  485. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.d.ts +0 -15
  486. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/main.js +0 -3
  487. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/backend/removeFromCart/meta.json +0 -4
  488. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.d.ts +0 -9
  489. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/Cart.tsx +0 -51
  490. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.d.ts +0 -8
  491. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductCard.tsx +0 -27
  492. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.d.ts +0 -8
  493. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/components/ProductList.tsx +0 -18
  494. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.d.ts +0 -12
  495. package/package/components/copilot/chat/__tests__/app/initial/shopping_cart/frontend/index.tsx +0 -81
  496. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.d.ts +0 -3
  497. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/main.js +0 -3
  498. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/decrementCounter/meta.json +0 -4
  499. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.d.ts +0 -3
  500. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/main.js +0 -3
  501. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/backend/incrementCounter/meta.json +0 -4
  502. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.d.ts +0 -2
  503. package/package/components/copilot/chat/__tests__/app/initial/test1_counter_app/frontend/index.tsx +0 -38
  504. package/package/components/copilot/chat/__tests__/app/variants/baseline.d.ts +0 -6
  505. package/package/components/copilot/chat/__tests__/app/variants/baseline.js +0 -10
  506. package/package/components/copilot/chat/__tests__/app/variants/index.d.ts +0 -3
  507. package/package/components/copilot/chat/__tests__/app/variants/index.js +0 -3
  508. package/package/components/copilot/chat/__tests__/app/variants/streamlined.d.ts +0 -6
  509. package/package/components/copilot/chat/__tests__/app/variants/streamlined.js +0 -137
  510. package/package/components/copilot/chat/__tests__/flow/expected/test1.json +0 -134
  511. package/package/components/copilot/chat/__tests__/flow/expected/test2.json +0 -183
  512. package/package/components/copilot/chat/__tests__/flow/expected/test3.json +0 -204
  513. package/package/components/copilot/chat/__tests__/flow/expected/test4.json +0 -175
  514. package/package/components/copilot/chat/__tests__/flow/expected/test5_modify_simple.json +0 -68
  515. package/package/components/copilot/chat/__tests__/flow/expected/test6_modify_medium.json +0 -142
  516. package/package/components/copilot/chat/__tests__/flow/expected/test7_modify_complex.json +0 -136
  517. package/package/components/copilot/chat/__tests__/flow/flowChat.eval.test.js +0 -294
  518. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.d.ts +0 -17
  519. package/package/components/copilot/chat/__tests__/flow/flowEvalComparison.js +0 -49
  520. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.d.ts +0 -12
  521. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +0 -79
  522. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.d.ts +0 -50
  523. package/package/components/copilot/chat/__tests__/flow/flowEvalRunner.js +0 -102
  524. package/package/components/copilot/chat/__tests__/flow/initial/test5_initial.json +0 -53
  525. package/package/components/copilot/chat/__tests__/flow/initial/test6_initial.json +0 -68
  526. package/package/components/copilot/chat/__tests__/flow/initial/test7_initial.json +0 -120
  527. package/package/components/copilot/chat/__tests__/flow/variants/baseline.d.ts +0 -6
  528. package/package/components/copilot/chat/__tests__/flow/variants/baseline.js +0 -10
  529. package/package/components/copilot/chat/__tests__/flow/variants/index.d.ts +0 -3
  530. package/package/components/copilot/chat/__tests__/flow/variants/index.js +0 -3
  531. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.d.ts +0 -15
  532. package/package/components/copilot/chat/__tests__/flow/variants/minimal-single-tool.js +0 -388
  533. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.d.ts +0 -45
  534. package/package/components/copilot/chat/__tests__/shared/baseEvalRunner.js +0 -121
  535. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.d.ts +0 -28
  536. package/package/components/copilot/chat/__tests__/shared/baseLLMEvaluator.js +0 -96
  537. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.d.ts +0 -32
  538. package/package/components/copilot/chat/__tests__/shared/baseResultsWriter.js +0 -130
  539. package/package/components/copilot/chat/__tests__/shared/baseVariants.d.ts +0 -45
  540. package/package/components/copilot/chat/__tests__/shared/baseVariants.js +0 -57
  541. package/package/components/copilot/chat/__tests__/shared/index.d.ts +0 -10
  542. package/package/components/copilot/chat/__tests__/shared/index.js +0 -5
  543. package/package/components/copilot/chat/__tests__/shared/types.d.ts +0 -105
  544. package/package/components/copilot/chat/__tests__/shared/types.js +0 -9
  545. package/package/components/copilot/chat/flow/openFlowZod.js +0 -24
  546. package/package/components/copilot/chat/flow/utils.d.ts +0 -14
  547. package/package/components/copilot/chat/flow/utils.js +0 -108
  548. package/package/components/flows/agentToolUtils.test.js +0 -55
  549. /package/package/components/copilot/chat/{__tests__/app/appChat.eval.test.d.ts → app/core.test.d.ts} +0 -0
  550. /package/package/components/copilot/chat/{__tests__/flow/flowChat.eval.test.d.ts → flow/helperUtils.test.d.ts} +0 -0
  551. /package/package/components/copilot/chat/flow/{openFlowZod.d.ts → openFlowZod.gen.d.ts} +0 -0
  552. /package/package/components/{flows/agentToolUtils.test.d.ts → copilot/chat/flow/utils.test.d.ts} +0 -0
@@ -7,6 +7,7 @@ import ScriptPicker from '../../ScriptPicker.svelte';
7
7
  import { NatsTriggerService } from '../../../gen';
8
8
  import { usedTriggerKinds, userStore, workspaceStore } from '../../../stores';
9
9
  import { canWrite, capitalize, emptyString, sendUserToast } from '../../../utils';
10
+ import { withForkConflictRetry } from '../../../utils/forkConflict';
10
11
  import Section from '../../Section.svelte';
11
12
  import { Loader2 } from 'lucide-svelte';
12
13
  import Label from '../../Label.svelte';
@@ -121,6 +122,9 @@ export async function openNew(nis_flow, fixedScriptPath_, nDefaultValues) {
121
122
  error_handler_args = nDefaultValues?.error_handler_args ?? {};
122
123
  retry = nDefaultValues?.retry ?? undefined;
123
124
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
125
+ permissionedAs = undefined;
126
+ selectedPermissionedAs = undefined;
127
+ preservePermissionedAs = false;
124
128
  originalConfig = undefined;
125
129
  }
126
130
  finally {
@@ -149,8 +153,8 @@ async function loadTriggerConfig(cfg) {
149
153
  retry = cfg?.retry;
150
154
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
151
155
  permissionedAs = cfg?.permissioned_as;
152
- selectedPermissionedAs = undefined;
153
- preservePermissionedAs = false;
156
+ selectedPermissionedAs = cfg?.permissioned_as;
157
+ preservePermissionedAs = !!cfg?.permissioned_as;
154
158
  }
155
159
  async function loadTrigger(defaultConfig) {
156
160
  if (defaultConfig) {
@@ -210,13 +214,18 @@ function useDefaultValues() {
210
214
  defaultValues.servers.some((broker) => broker.trim() !== ''));
211
215
  }
212
216
  async function handleToggleMode(newMode) {
217
+ const previousMode = mode;
213
218
  mode = newMode;
214
219
  if (!trigger?.draftConfig) {
215
- await NatsTriggerService.setNatsTriggerMode({
220
+ const ok = await withForkConflictRetry((force) => NatsTriggerService.setNatsTriggerMode({
216
221
  path: initialPath,
217
222
  workspace: $workspaceStore ?? '',
218
- requestBody: { mode: newMode }
219
- });
223
+ requestBody: { mode: newMode, force }
224
+ }), 'NATS trigger');
225
+ if (!ok) {
226
+ mode = previousMode;
227
+ return;
228
+ }
220
229
  sendUserToast(`${capitalize(newMode)} NATS trigger ${initialPath}`);
221
230
  onUpdate?.(initialPath);
222
231
  }
@@ -312,15 +321,14 @@ $effect(() => {
312
321
  <Loader2 class="animate-spin" />
313
322
  {/if}
314
323
  {:else}
315
- {#if edit}
316
- <PermissionedAsLine
317
- {permissionedAs}
318
- onPermissionedAsChange={(pa, preserve) => {
319
- selectedPermissionedAs = pa
320
- preservePermissionedAs = preserve
321
- }}
322
- />
323
- {/if}
324
+ <PermissionedAsLine
325
+ {permissionedAs}
326
+ {path}
327
+ onPermissionedAsChange={(pa, preserve) => {
328
+ selectedPermissionedAs = pa
329
+ preservePermissionedAs = preserve
330
+ }}
331
+ />
324
332
  <div class="flex flex-col gap-4">
325
333
  {#if description}
326
334
  {@render description()}
@@ -1,6 +1,7 @@
1
- declare const PostgresTriggerEditor: import("svelte").Component<{
2
- onUpdate: any;
3
- }, {
1
+ type $$ComponentProps = {
2
+ onUpdate?: (path?: string) => void;
3
+ };
4
+ declare const PostgresTriggerEditor: import("svelte").Component<$$ComponentProps, {
4
5
  openEdit: (ePath: string, isFlow: boolean) => Promise<void>;
5
6
  openNew: (is_flow: boolean, initial_script_path?: string, defaultValues?: Record<string, any>) => Promise<void>;
6
7
  }, "">;
@@ -7,6 +7,7 @@ import ScriptPicker from '../../ScriptPicker.svelte';
7
7
  import { PostgresTriggerService } from '../../../gen';
8
8
  import { usedTriggerKinds, userStore, workspaceStore } from '../../../stores';
9
9
  import { canWrite, emptyString, emptyStringTrimmed, sendUserToast } from '../../../utils';
10
+ import { withForkConflictRetry } from '../../../utils/forkConflict';
10
11
  import Section from '../../Section.svelte';
11
12
  import { Loader2 } from 'lucide-svelte';
12
13
  import Label from '../../Label.svelte';
@@ -229,6 +230,9 @@ export async function openNew(nis_flow, fixedScriptPath_, defaultValues, newDraf
229
230
  retry = defaultValues?.retry ?? undefined;
230
231
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
231
232
  mode = defaultValues?.mode ?? 'enabled';
233
+ permissionedAs = undefined;
234
+ selectedPermissionedAs = undefined;
235
+ preservePermissionedAs = false;
232
236
  originalConfig = undefined;
233
237
  }
234
238
  finally {
@@ -277,8 +281,8 @@ async function loadTriggerConfig(cfg) {
277
281
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
278
282
  mode = cfg?.mode ?? 'enabled';
279
283
  permissionedAs = cfg?.permissioned_as;
280
- selectedPermissionedAs = undefined;
281
- preservePermissionedAs = false;
284
+ selectedPermissionedAs = cfg?.permissioned_as;
285
+ preservePermissionedAs = !!cfg?.permissioned_as;
282
286
  }
283
287
  async function loadTrigger(defaultConfig) {
284
288
  if (defaultConfig) {
@@ -359,13 +363,18 @@ const getTemplateScript = async () => {
359
363
  }
360
364
  };
361
365
  async function handleToggleMode(newMode) {
366
+ const previousMode = mode;
362
367
  mode = newMode;
363
368
  if (!trigger?.draftConfig) {
364
- await PostgresTriggerService.setPostgresTriggerMode({
369
+ const ok = await withForkConflictRetry((force) => PostgresTriggerService.setPostgresTriggerMode({
365
370
  path: initialPath,
366
371
  workspace: $workspaceStore ?? '',
367
- requestBody: { mode: newMode }
368
- });
372
+ requestBody: { mode: newMode, force }
373
+ }), 'postgres trigger');
374
+ if (!ok) {
375
+ mode = previousMode;
376
+ return;
377
+ }
369
378
  sendUserToast(`${capitalize(newMode)} postgres trigger ${initialPath}`);
370
379
  onUpdate?.(initialPath);
371
380
  }
@@ -477,15 +486,14 @@ $effect(() => {
477
486
  </div>
478
487
  {/if}
479
488
  {:else}
480
- {#if edit}
481
- <PermissionedAsLine
482
- {permissionedAs}
483
- onPermissionedAsChange={(pa, preserve) => {
484
- selectedPermissionedAs = pa
485
- preservePermissionedAs = preserve
486
- }}
487
- />
488
- {/if}
489
+ <PermissionedAsLine
490
+ {permissionedAs}
491
+ {path}
492
+ onPermissionedAsChange={(pa, preserve) => {
493
+ selectedPermissionedAs = pa
494
+ preservePermissionedAs = preserve
495
+ }}
496
+ />
489
497
  <div class="flex flex-col gap-4">
490
498
  {#if description}
491
499
  {@render description()}
@@ -26,6 +26,7 @@ import Label from '../../Label.svelte';
26
26
  import WorkerTagPicker from '../../WorkerTagPicker.svelte';
27
27
  import { runScheduleNow } from '../scheduled/utils';
28
28
  import { handleConfigChange } from '../utils';
29
+ import { withForkConflictRetry } from '../../../utils/forkConflict';
29
30
  import TextInput from '../../text_input/TextInput.svelte';
30
31
  import { twMerge } from 'tailwind-merge';
31
32
  import PermissionedAsLine from '../PermissionedAsLine.svelte';
@@ -274,6 +275,9 @@ export async function openNew(nis_flow, initial_script_path, defaultValues, sche
274
275
  wsErrorHandlerMuted = s?.ws_error_handler_muted ?? false;
275
276
  retry = s?.retry ?? undefined;
276
277
  await setScheduleHandler(s);
278
+ permissionedAs = undefined;
279
+ selectedPermissionedAs = undefined;
280
+ preservePermissionedAs = false;
277
281
  }
278
282
  finally {
279
283
  clearTimeout(loadingTimeout);
@@ -478,8 +482,8 @@ async function loadScheduleCfg(cfg) {
478
482
  can_write = canWrite(cfg.path, cfg.extra_perms, $userStore);
479
483
  tag = cfg.tag;
480
484
  permissionedAs = cfg.permissioned_as;
481
- selectedPermissionedAs = undefined;
482
- preservePermissionedAs = false;
485
+ selectedPermissionedAs = cfg.permissioned_as;
486
+ preservePermissionedAs = !!cfg.permissioned_as;
483
487
  loading = false;
484
488
  }
485
489
  async function scheduleScript() {
@@ -572,13 +576,18 @@ function getScheduleCfg() {
572
576
  };
573
577
  }
574
578
  async function handleToggleEnabled(nEnabled) {
579
+ const previousEnabled = enabled;
575
580
  enabled = nEnabled;
576
581
  if (!trigger?.draftConfig) {
577
- await ScheduleService.setScheduleEnabled({
582
+ const ok = await withForkConflictRetry((force) => ScheduleService.setScheduleEnabled({
578
583
  path: initialPath,
579
584
  workspace: $workspaceStore ?? '',
580
- requestBody: { enabled: nEnabled }
581
- });
585
+ requestBody: { enabled: nEnabled, force }
586
+ }), 'schedule');
587
+ if (!ok) {
588
+ enabled = previousEnabled;
589
+ return;
590
+ }
582
591
  sendUserToast(`${nEnabled ? 'enabled' : 'disabled'} schedule ${initialPath}`);
583
592
  onUpdate?.(initialPath);
584
593
  }
@@ -643,15 +652,14 @@ $effect(() => {
643
652
  <Loader2 class="animate-spin" />
644
653
  {/if}
645
654
  {:else}
646
- {#if edit}
647
- <PermissionedAsLine
648
- {permissionedAs}
649
- onPermissionedAsChange={(pa, preserve) => {
650
- selectedPermissionedAs = pa
651
- preservePermissionedAs = preserve
652
- }}
653
- />
654
- {/if}
655
+ <PermissionedAsLine
656
+ {permissionedAs}
657
+ {path}
658
+ onPermissionedAsChange={(pa, preserve) => {
659
+ selectedPermissionedAs = pa
660
+ preservePermissionedAs = preserve
661
+ }}
662
+ />
655
663
  <div class="flex flex-col gap-8">
656
664
  <Section label="Metadata">
657
665
  <div class="flex flex-col gap-6">
@@ -1,6 +1,7 @@
1
- declare const SqsTriggerEditor: import("svelte").Component<{
2
- onUpdate: any;
3
- }, {
1
+ type $$ComponentProps = {
2
+ onUpdate?: (path?: string) => void;
3
+ };
4
+ declare const SqsTriggerEditor: import("svelte").Component<$$ComponentProps, {
4
5
  openEdit: (ePath: string, isFlow: boolean) => Promise<void>;
5
6
  openNew: (is_flow: boolean, initial_script_path?: string, defaultValues?: Record<string, any>) => Promise<void>;
6
7
  }, "">;
@@ -4,6 +4,7 @@ import DrawerContent from '../../common/drawer/DrawerContent.svelte';
4
4
  import Path from '../../Path.svelte';
5
5
  import { usedTriggerKinds, userStore, workspaceStore } from '../../../stores';
6
6
  import { canWrite, capitalize, emptyString, sendUserToast } from '../../../utils';
7
+ import { withForkConflictRetry } from '../../../utils/forkConflict';
7
8
  import { Loader2 } from 'lucide-svelte';
8
9
  import Label from '../../Label.svelte';
9
10
  import { SqsTriggerService } from '../../../gen';
@@ -114,6 +115,9 @@ export async function openNew(nis_flow, fixedScriptPath_, defaultValues) {
114
115
  error_handler_args = defaultValues?.error_handler_args ?? {};
115
116
  retry = defaultValues?.retry ?? undefined;
116
117
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
118
+ permissionedAs = undefined;
119
+ selectedPermissionedAs = undefined;
120
+ preservePermissionedAs = false;
117
121
  originalConfig = undefined;
118
122
  }
119
123
  finally {
@@ -140,8 +144,8 @@ async function loadTriggerConfig(cfg) {
140
144
  retry = cfg?.retry;
141
145
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
142
146
  permissionedAs = cfg?.permissioned_as;
143
- selectedPermissionedAs = undefined;
144
- preservePermissionedAs = false;
147
+ selectedPermissionedAs = cfg?.permissioned_as;
148
+ preservePermissionedAs = !!cfg?.permissioned_as;
145
149
  }
146
150
  catch (error) {
147
151
  sendUserToast(`Could not load SQS trigger config: ${error.body}`, true);
@@ -183,13 +187,18 @@ function getSaveCfg() {
183
187
  };
184
188
  }
185
189
  async function handleToggleMode(newMode) {
190
+ const previousMode = mode;
186
191
  mode = newMode;
187
192
  if (!trigger?.draftConfig) {
188
- await SqsTriggerService.setSqsTriggerMode({
193
+ const ok = await withForkConflictRetry((force) => SqsTriggerService.setSqsTriggerMode({
189
194
  path: initialPath,
190
195
  workspace: $workspaceStore ?? '',
191
- requestBody: { mode: newMode }
192
- });
196
+ requestBody: { mode: newMode, force }
197
+ }), 'SQS trigger');
198
+ if (!ok) {
199
+ mode = previousMode;
200
+ return;
201
+ }
193
202
  sendUserToast(`${capitalize(newMode)} SQS trigger ${initialPath}`);
194
203
  onUpdate?.(initialPath);
195
204
  }
@@ -306,15 +315,14 @@ $effect(() => {
306
315
  <Loader2 class="animate-spin" />
307
316
  {/if}
308
317
  {:else}
309
- {#if edit}
310
- <PermissionedAsLine
311
- {permissionedAs}
312
- onPermissionedAsChange={(pa, preserve) => {
313
- selectedPermissionedAs = pa
314
- preservePermissionedAs = preserve
315
- }}
316
- />
317
- {/if}
318
+ <PermissionedAsLine
319
+ {permissionedAs}
320
+ {path}
321
+ onPermissionedAsChange={(pa, preserve) => {
322
+ selectedPermissionedAs = pa
323
+ preservePermissionedAs = preserve
324
+ }}
325
+ />
318
326
  <div class="flex flex-col gap-4">
319
327
  {#if description}
320
328
  {@render description()}
@@ -26,6 +26,7 @@ export declare class Triggers {
26
26
  fetchMqttTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
27
27
  fetchSqsTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
28
28
  fetchGcpTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
29
+ fetchAzureTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
29
30
  fetchHttpTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
30
31
  fetchEmailTriggers(triggersCountStore: Writable<TriggersCount | undefined>, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
31
32
  fetchNativeTriggers(triggersCountStore: Writable<TriggersCount | undefined>, serviceName: NativeServiceName, workspaceId: string | undefined, path: string, isFlow: boolean, user?: UserExt | undefined): Promise<void>;
@@ -1,4 +1,4 @@
1
- import { KafkaTriggerService, MqttTriggerService, NatsTriggerService, PostgresTriggerService, ScheduleService, SqsTriggerService, WebsocketTriggerService, NativeTriggerService, HttpTriggerService, GcpTriggerService, EmailTriggerService } from '../../gen';
1
+ import { KafkaTriggerService, MqttTriggerService, NatsTriggerService, PostgresTriggerService, ScheduleService, SqsTriggerService, WebsocketTriggerService, NativeTriggerService, HttpTriggerService, GcpTriggerService, AzureTriggerService, EmailTriggerService } from '../../gen';
2
2
  import { enterpriseLicense } from '../../stores';
3
3
  import { getLightConfig, sortTriggers, updateTriggersCount } from './utils';
4
4
  import { get } from 'svelte/store';
@@ -298,6 +298,27 @@ export class Triggers {
298
298
  console.error('Failed to fetch GCP Pub/Sub triggers:', error);
299
299
  }
300
300
  }
301
+ async fetchAzureTriggers(triggersCountStore, workspaceId, path, isFlow, user = undefined) {
302
+ if (!workspaceId)
303
+ return;
304
+ try {
305
+ const azureTriggers = await AzureTriggerService.listAzureTriggers({
306
+ workspace: workspaceId,
307
+ path,
308
+ isFlow
309
+ });
310
+ const azureCount = this.updateTriggers(azureTriggers, 'azure', user);
311
+ triggersCountStore.update((triggersCount) => {
312
+ return {
313
+ ...(triggersCount ?? {}),
314
+ azure_count: azureCount
315
+ };
316
+ });
317
+ }
318
+ catch (error) {
319
+ console.error('Failed to fetch Azure triggers:', error);
320
+ }
321
+ }
301
322
  async fetchHttpTriggers(triggersCountStore, workspaceId, path, isFlow, user = undefined) {
302
323
  if (!workspaceId)
303
324
  return;
@@ -383,11 +404,13 @@ export class Triggers {
383
404
  this.fetchMqttTriggers(triggersCountStore, workspaceId, path, isFlow, user),
384
405
  this.fetchNativeTriggers(triggersCountStore, 'nextcloud', workspaceId, path, isFlow, user),
385
406
  this.fetchNativeTriggers(triggersCountStore, 'google', workspaceId, path, isFlow, user),
407
+ this.fetchNativeTriggers(triggersCountStore, 'github', workspaceId, path, isFlow, user),
386
408
  ...(get(enterpriseLicense)
387
409
  ? [
388
410
  this.fetchKafkaTriggers(triggersCountStore, workspaceId, path, isFlow, user),
389
411
  this.fetchSqsTriggers(triggersCountStore, workspaceId, path, isFlow, user),
390
412
  this.fetchGcpTriggers(triggersCountStore, workspaceId, path, isFlow, user),
413
+ this.fetchAzureTriggers(triggersCountStore, workspaceId, path, isFlow, user),
391
414
  this.fetchEmailTriggers(triggersCountStore, workspaceId, path, isFlow, user),
392
415
  this.fetchNatsTriggers(triggersCountStore, workspaceId, path, isFlow, user)
393
416
  ]
@@ -4,6 +4,7 @@ import NatsIcon from '../icons/NatsIcon.svelte';
4
4
  import MqttIcon from '../icons/MqttIcon.svelte';
5
5
  import AwsIcon from '../icons/AwsIcon.svelte';
6
6
  import GoogleCloudIcon from '../icons/GoogleCloudIcon.svelte';
7
+ import AzureIcon from '../icons/AzureIcon.svelte';
7
8
  import SchedulePollIcon from '../icons/SchedulePollIcon.svelte';
8
9
  import { saveScheduleFromCfg } from '../flows/scheduleUtils';
9
10
  import { saveHttpRouteFromCfg } from './http/utils';
@@ -14,10 +15,12 @@ import { saveSqsTriggerFromCfg } from './sqs/utils';
14
15
  import { saveNatsTriggerFromCfg } from './nats/utils';
15
16
  import { saveMqttTriggerFromCfg } from './mqtt/utils';
16
17
  import { saveGcpTriggerFromCfg } from './gcp/utils';
18
+ import { saveAzureTriggerFromCfg } from './azure/utils';
17
19
  import { emptyString } from '../../utils';
18
20
  import { saveEmailTriggerFromCfg } from './email/utils';
19
21
  import NextcloudIcon from '../icons/NextcloudIcon.svelte';
20
22
  import GoogleIcon from '../icons/GoogleIcon.svelte';
23
+ import GithubIcon from '../icons/GithubIcon.svelte';
21
24
  import { saveNativeTriggerFromCfg } from './native/utils';
22
25
  export const CLOUD_DISABLED_TRIGGER_TYPES = [
23
26
  'nats',
@@ -25,6 +28,7 @@ export const CLOUD_DISABLED_TRIGGER_TYPES = [
25
28
  'sqs',
26
29
  'mqtt',
27
30
  'gcp',
31
+ 'azure',
28
32
  'websocket',
29
33
  'postgres'
30
34
  ];
@@ -41,7 +45,9 @@ export const jobTriggerKinds = [
41
45
  'postgres',
42
46
  'schedule',
43
47
  'gcp',
44
- 'google'
48
+ 'azure',
49
+ 'google',
50
+ 'github'
45
51
  ];
46
52
  // Map of trigger kinds to icons
47
53
  export const triggerIconMap = {
@@ -57,11 +63,13 @@ export const triggerIconMap = {
57
63
  mqtt: MqttIcon,
58
64
  sqs: AwsIcon,
59
65
  gcp: GoogleCloudIcon,
66
+ azure: AzureIcon,
60
67
  primary_schedule: Calendar,
61
68
  poll: SchedulePollIcon,
62
69
  cli: Terminal,
63
70
  nextcloud: NextcloudIcon,
64
- google: GoogleIcon
71
+ google: GoogleIcon,
72
+ github: GithubIcon
65
73
  };
66
74
  export const triggerDisplayNamesMap = {
67
75
  schedule: 'Schedule',
@@ -73,13 +81,15 @@ export const triggerDisplayNamesMap = {
73
81
  mqtt: 'MQTT',
74
82
  sqs: 'SQS',
75
83
  gcp: 'GCP Pub/Sub',
84
+ azure: 'Azure Event Grid',
76
85
  email: 'Email',
77
86
  poll: 'Scheduled Poll',
78
87
  webhook: 'Webhook',
79
88
  default_email: 'Default Email',
80
89
  cli: 'CLI',
81
90
  nextcloud: 'Nextcloud',
82
- google: 'Google'
91
+ google: 'Google',
92
+ github: 'GitHub'
83
93
  };
84
94
  /**
85
95
  * Converts a TriggerType to a CaptureTriggerKind when a mapping exists
@@ -100,6 +110,7 @@ export function triggerTypeToCaptureKind(triggerType) {
100
110
  'mqtt',
101
111
  'sqs',
102
112
  'gcp',
113
+ 'azure',
103
114
  'cli'
104
115
  ];
105
116
  if (capturableTriggerTypes.includes(triggerType)) {
@@ -121,11 +132,13 @@ export function updateTriggersCount(triggersCountStore, type, action, primaryCfg
121
132
  mqtt: 'mqtt_count',
122
133
  sqs: 'sqs_count',
123
134
  gcp: 'gcp_count',
135
+ azure: 'azure_count',
124
136
  email: 'email_count',
125
137
  poll: undefined,
126
138
  cli: undefined,
127
139
  nextcloud: 'nextcloud_count',
128
- google: 'google_count'
140
+ google: 'google_count',
141
+ github: 'github_count'
129
142
  };
130
143
  const countProperty = countPropertyMap[type];
131
144
  triggersCountStore.update((triggersCount) => {
@@ -189,6 +202,8 @@ export function triggerKindToTriggerType(kind) {
189
202
  return 'sqs';
190
203
  case 'gcp':
191
204
  return 'gcp';
205
+ case 'azure':
206
+ return 'azure';
192
207
  case 'scheduledPoll':
193
208
  return 'poll';
194
209
  default:
@@ -228,11 +243,13 @@ export async function deployTriggers(triggersToDeploy, workspaceId, isAdmin, use
228
243
  mqtt: (trigger) => saveMqttTriggerFromCfg(trigger.path ?? trigger.draftConfig?.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds),
229
244
  sqs: (trigger) => saveSqsTriggerFromCfg(trigger.path ?? trigger.draftConfig?.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds),
230
245
  gcp: (trigger) => saveGcpTriggerFromCfg(trigger.path ?? trigger.draftConfig?.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds),
246
+ azure: (trigger) => saveAzureTriggerFromCfg(trigger.path ?? trigger.draftConfig?.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds),
231
247
  email: (trigger) => saveEmailTriggerFromCfg(trigger.path ?? trigger.draftConfig?.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, isAdmin, usedTriggerKinds),
232
248
  poll: undefined,
233
249
  cli: undefined,
234
250
  nextcloud: (trigger) => saveNativeTriggerFromCfg('nextcloud', trigger.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds),
235
- google: (trigger) => saveNativeTriggerFromCfg('google', trigger.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds)
251
+ google: (trigger) => saveNativeTriggerFromCfg('google', trigger.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds),
252
+ github: (trigger) => saveNativeTriggerFromCfg('github', trigger.path ?? '', trigger.draftConfig ?? {}, !trigger.isDraft, workspaceId, usedTriggerKinds)
236
253
  };
237
254
  await Promise.all(triggersToDeploy.map(async (trigger) => {
238
255
  const saveFunction = triggerSaveFunctions[trigger.type];
@@ -310,6 +327,14 @@ export function getLightConfig(triggerType, trigger) {
310
327
  else if (triggerType === 'gcp') {
311
328
  return { gcp_resource_path: trigger.gcp_resource_path, topic: trigger.topic };
312
329
  }
330
+ else if (triggerType === 'azure') {
331
+ return {
332
+ azure_resource_path: trigger.azure_resource_path,
333
+ azure_mode: trigger.azure_mode,
334
+ scope_resource_id: trigger.scope_resource_id,
335
+ topic_name: trigger.topic_name
336
+ };
337
+ }
313
338
  else if (triggerType === 'email') {
314
339
  return { local_part: trigger.local_part };
315
340
  }
@@ -326,6 +351,14 @@ export function getLightConfig(triggerType, trigger) {
326
351
  summary: trigger.summary
327
352
  };
328
353
  }
354
+ else if (triggerType === 'github') {
355
+ return {
356
+ owner: trigger.service_config?.owner ?? trigger.owner,
357
+ repo: trigger.service_config?.repo ?? trigger.repo,
358
+ events: trigger.service_config?.events ?? trigger.events,
359
+ summary: trigger.summary
360
+ };
361
+ }
329
362
  else {
330
363
  return undefined;
331
364
  }
@@ -390,6 +423,12 @@ export function getTriggerLabel(trigger) {
390
423
  return name ? `Drive: ${name}` : config?.resource_id ? `Drive: ${path}` : `Drive: All changes`;
391
424
  }
392
425
  }
426
+ else if (type === 'github' && config?.summary) {
427
+ return `${config.summary}`;
428
+ }
429
+ else if (type === 'github' && config?.owner && config?.repo) {
430
+ return `${config.owner}/${config.repo}`;
431
+ }
393
432
  else if (isDraft && draftConfig?.path) {
394
433
  return `${draftConfig?.path}`;
395
434
  }
@@ -415,9 +454,11 @@ export function sortTriggers(triggers) {
415
454
  'mqtt',
416
455
  'sqs',
417
456
  'gcp',
457
+ 'azure',
418
458
  'email',
419
459
  'nextcloud',
420
- 'google'
460
+ 'google',
461
+ 'github'
421
462
  ];
422
463
  return triggers.sort((a, b) => {
423
464
  // Draft triggers always come last
@@ -8,6 +8,7 @@ import ScriptPicker from '../../ScriptPicker.svelte';
8
8
  import { FlowService, ScriptService, WebsocketTriggerService } from '../../../gen';
9
9
  import { usedTriggerKinds, userStore, workspaceStore } from '../../../stores';
10
10
  import { canWrite, emptySchema, emptyString, sendUserToast } from '../../../utils';
11
+ import { withForkConflictRetry } from '../../../utils/forkConflict';
11
12
  import Section from '../../Section.svelte';
12
13
  import { Loader2, X, Plus } from 'lucide-svelte';
13
14
  import Label from '../../Label.svelte';
@@ -152,6 +153,9 @@ export async function openNew(nis_flow, fixedScriptPath_, defaultValues) {
152
153
  retry = defaultValues?.retry ?? undefined;
153
154
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
154
155
  mode = defaultValues?.mode ?? 'enabled';
156
+ permissionedAs = undefined;
157
+ selectedPermissionedAs = undefined;
158
+ preservePermissionedAs = false;
155
159
  originalConfig = undefined;
156
160
  }
157
161
  finally {
@@ -184,8 +188,8 @@ function loadTriggerConfig(cfg) {
184
188
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
185
189
  mode = cfg?.mode ?? 'enabled';
186
190
  permissionedAs = cfg?.permissioned_as;
187
- selectedPermissionedAs = undefined;
188
- preservePermissionedAs = false;
191
+ selectedPermissionedAs = cfg?.permissioned_as;
192
+ preservePermissionedAs = !!cfg?.permissioned_as;
189
193
  }
190
194
  function getSaveCfg() {
191
195
  return {
@@ -279,13 +283,18 @@ function getCaptureConfig() {
279
283
  };
280
284
  }
281
285
  async function handleToggleMode(newMode) {
286
+ const previousMode = mode;
282
287
  mode = newMode;
283
288
  if (!trigger?.draftConfig) {
284
- await WebsocketTriggerService.setWebsocketTriggerMode({
289
+ const ok = await withForkConflictRetry((force) => WebsocketTriggerService.setWebsocketTriggerMode({
285
290
  path: initialPath,
286
291
  workspace: $workspaceStore ?? '',
287
- requestBody: { mode: newMode }
288
- });
292
+ requestBody: { mode: newMode, force }
293
+ }), 'websocket trigger');
294
+ if (!ok) {
295
+ mode = previousMode;
296
+ return;
297
+ }
289
298
  sendUserToast(`${capitalize(newMode)} websocket trigger ${initialPath}`);
290
299
  onUpdate?.(initialPath);
291
300
  }
@@ -378,15 +387,14 @@ $effect(() => {
378
387
  <Loader2 class="animate-spin" />
379
388
  {/if}
380
389
  {:else}
381
- {#if edit}
382
- <PermissionedAsLine
383
- {permissionedAs}
384
- onPermissionedAsChange={(pa, preserve) => {
385
- selectedPermissionedAs = pa
386
- preservePermissionedAs = preserve
387
- }}
388
- />
389
- {/if}
390
+ <PermissionedAsLine
391
+ {permissionedAs}
392
+ {path}
393
+ onPermissionedAsChange={(pa, preserve) => {
394
+ selectedPermissionedAs = pa
395
+ preservePermissionedAs = preserve
396
+ }}
397
+ />
390
398
  <div class="flex flex-col gap-4">
391
399
  {#if mode === 'suspended'}
392
400
  <TriggerSuspendedJobsAlert {suspendedJobsModal} />
@@ -16,5 +16,5 @@ export type TriggerContext = {
16
16
  triggersState: Triggers;
17
17
  };
18
18
  export declare function setScheduledPollSchedule(triggersState: Triggers, triggersCount: Writable<TriggersCount | undefined>): void;
19
- export type TriggerKind = 'webhooks' | 'emails' | 'default_emails' | 'schedules' | 'cli' | 'routes' | 'websockets' | 'scheduledPoll' | 'kafka' | 'nats' | 'postgres' | 'mqtt' | 'sqs' | 'gcp' | 'nextcloud' | 'google';
19
+ export type TriggerKind = 'webhooks' | 'emails' | 'default_emails' | 'schedules' | 'cli' | 'routes' | 'websockets' | 'scheduledPoll' | 'kafka' | 'nats' | 'postgres' | 'mqtt' | 'sqs' | 'gcp' | 'azure' | 'nextcloud' | 'google' | 'github';
20
20
  export declare function captureTriggerKindToTriggerKind(kind: CaptureTriggerKind): TriggerKind;
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Resolves the folder's `default_permissioned_as` rule that matches a given item path.
3
+ * Returns `undefined` when the user is not admin/wm_deployer, the path is not under a
4
+ * folder, the folder has no matching rules, or the fetch fails.
5
+ *
6
+ * Tracks workspace/user store changes reactively so the value refreshes on workspace
7
+ * switch or permission change. Uses `runed`'s `resource()` which handles race conditions
8
+ * and loading state automatically.
9
+ */
10
+ export declare function useFolderDefaultPermissionedAs(pathGetter: () => string | undefined): {
11
+ readonly value: string | undefined;
12
+ readonly loading: boolean;
13
+ };