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
@@ -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 { GcpTriggerService } from '../../../gen';
@@ -112,6 +113,9 @@ export async function openNew(nis_flow, fixedScriptPath_, defaultValues) {
112
113
  auto_acknowledge_msg = defaultValues?.auto_acknowledge_msg ?? true;
113
114
  ack_deadline = defaultValues?.ack_deadline;
114
115
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
116
+ permissionedAs = undefined;
117
+ selectedPermissionedAs = undefined;
118
+ preservePermissionedAs = false;
115
119
  originalConfig = undefined;
116
120
  }
117
121
  finally {
@@ -155,8 +159,8 @@ async function loadTriggerConfig(cfg) {
155
159
  ack_deadline = cfg?.ack_deadline;
156
160
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
157
161
  permissionedAs = cfg?.permissioned_as;
158
- selectedPermissionedAs = undefined;
159
- preservePermissionedAs = false;
162
+ selectedPermissionedAs = cfg?.permissioned_as;
163
+ preservePermissionedAs = !!cfg?.permissioned_as;
160
164
  }
161
165
  async function updateTrigger() {
162
166
  deploymentLoading = true;
@@ -213,13 +217,18 @@ function getGcpCaptureConfig() {
213
217
  };
214
218
  }
215
219
  async function handleToggleMode(newMode) {
220
+ const previousMode = mode;
216
221
  mode = newMode;
217
222
  if (!trigger?.draftConfig) {
218
- await GcpTriggerService.setGcpTriggerMode({
223
+ const ok = await withForkConflictRetry((force) => GcpTriggerService.setGcpTriggerMode({
219
224
  path: initialPath,
220
225
  workspace: $workspaceStore ?? '',
221
- requestBody: { mode: newMode }
222
- });
226
+ requestBody: { mode: newMode, force }
227
+ }), 'GCP Pub/Sub trigger');
228
+ if (!ok) {
229
+ mode = previousMode;
230
+ return;
231
+ }
223
232
  sendUserToast(`${capitalize(newMode)} GCP Pub/Sub trigger ${initialPath}`);
224
233
  onUpdate?.(initialPath);
225
234
  }
@@ -313,15 +322,14 @@ $effect(() => {
313
322
  <p>Loading...</p>
314
323
  </div>
315
324
  {:else}
316
- {#if edit}
317
- <PermissionedAsLine
318
- {permissionedAs}
319
- onPermissionedAsChange={(pa, preserve) => {
320
- selectedPermissionedAs = pa
321
- preservePermissionedAs = preserve
322
- }}
323
- />
324
- {/if}
325
+ <PermissionedAsLine
326
+ {permissionedAs}
327
+ {path}
328
+ onPermissionedAsChange={(pa, preserve) => {
329
+ selectedPermissionedAs = pa
330
+ preservePermissionedAs = preserve
331
+ }}
332
+ />
325
333
  <div class="flex flex-col gap-5">
326
334
  {#if mode === 'suspended'}
327
335
  <TriggerSuspendedJobsAlert {suspendedJobsModal} />
@@ -63,8 +63,9 @@ $effect.pre(() => {
63
63
  route_path === undefined && (route_path = '');
64
64
  });
65
65
  let userIsAdmin = $derived($userStore?.is_admin || $userStore?.is_super_admin);
66
- let userCanEditConfig = $derived(userIsAdmin || isDraftOnly); // User can edit config if they are admin or if the trigger is a draft which will not be saved
67
66
  let globalHttpWorkspacedRoute = $state(false);
67
+ let effectiveWorkspaced = $derived(workspaced_route || globalHttpWorkspacedRoute);
68
+ let userCanEditConfig = $derived(userIsAdmin || isDraftOnly || effectiveWorkspaced);
68
69
  async function loadGlobalHttpWorkspacedRouteSetting() {
69
70
  try {
70
71
  const setting = await SettingService.getGlobal({ key: 'http_route_workspaced_route' });
@@ -76,7 +77,11 @@ async function loadGlobalHttpWorkspacedRouteSetting() {
76
77
  }
77
78
  loadGlobalHttpWorkspacedRouteSetting();
78
79
  $effect.pre(() => {
79
- if (globalHttpWorkspacedRoute && !workspaced_route) {
80
+ // Force workspaced route for non-admins on new triggers only.
81
+ // Existing non-workspaced triggers created by admins can still be edited by non-admins
82
+ // (with restricted fields), so we don't override their workspaced_route value.
83
+ const isNewTrigger = !initialTriggerPath;
84
+ if ((globalHttpWorkspacedRoute || (!userIsAdmin && isNewTrigger)) && !workspaced_route) {
80
85
  workspaced_route = true;
81
86
  dirtyRoutePath = true;
82
87
  }
@@ -90,9 +95,10 @@ $effect.pre(() => {
90
95
  <TestingBadge />
91
96
  {/if}
92
97
  {/snippet}
93
- {#if !userCanEditConfig && isDraftOnly}
94
- <Alert type="info" title="Admin only" collapsible size="xs">
95
- Route endpoints can only be edited by workspace admins
98
+ {#if !userCanEditConfig}
99
+ <Alert type="info" title="Route config restricted" collapsible size="xs">
100
+ Route path, HTTP method, and workspace prefix can only be changed by workspace admins on
101
+ non-workspaced routes
96
102
  </Alert>
97
103
  <div class="my-2"></div>
98
104
  {/if}
@@ -147,7 +153,7 @@ $effect.pre(() => {
147
153
  <Toggle
148
154
  size="sm"
149
155
  checked={workspaced_route}
150
- disabled={!can_write || !userCanEditConfig || globalHttpWorkspacedRoute}
156
+ disabled={!can_write || !userIsAdmin || globalHttpWorkspacedRoute}
151
157
  on:change={() => {
152
158
  workspaced_route = !workspaced_route
153
159
  dirtyRoutePath = true
@@ -155,7 +161,9 @@ $effect.pre(() => {
155
161
  options={{
156
162
  right: globalHttpWorkspacedRoute
157
163
  ? 'Prefix with workspace (enforced by instance setting)'
158
- : 'Prefix with workspace',
164
+ : !userIsAdmin
165
+ ? 'Prefix with workspace (required for non-admin users)'
166
+ : 'Prefix with workspace',
159
167
  rightTooltip:
160
168
  'Prefixes the route with the workspace ID (e.g., {base_url}/api/r/{workspace_id}/{route}). Note: deploying the HTTP trigger to another workspace updates the route workspace prefix accordingly.',
161
169
  rightDocumentationLink:
@@ -98,7 +98,6 @@ let originalConfig = $state(undefined);
98
98
  let userSettings = $state(undefined);
99
99
  let hasChanged = $derived(!deepEqual(getRouteConfig(), originalConfig ?? {}));
100
100
  let scopes = $derived(['http_triggers:read:' + path]);
101
- const isAdmin = $derived($userStore?.is_admin || $userStore?.is_super_admin);
102
101
  const routeConfig = $derived.by(getRouteConfig);
103
102
  const captureConfig = $derived.by(untrack(() => isEditor) ? getCaptureConfig : () => ({}));
104
103
  const saveDisabled = $derived(drawerLoading ||
@@ -213,6 +212,9 @@ export async function openNew(nis_flow, fixedScriptPath_, defaultValues) {
213
212
  error_handler_args = defaultValues?.error_handler_args ?? {};
214
213
  retry = defaultValues?.retry ?? undefined;
215
214
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
215
+ permissionedAs = undefined;
216
+ selectedPermissionedAs = undefined;
217
+ preservePermissionedAs = false;
216
218
  originalConfig = undefined;
217
219
  }
218
220
  finally {
@@ -256,8 +258,8 @@ function loadTriggerConfig(cfg) {
256
258
  retry = cfg?.retry;
257
259
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
258
260
  permissionedAs = cfg?.permissioned_as;
259
- selectedPermissionedAs = undefined;
260
- preservePermissionedAs = false;
261
+ selectedPermissionedAs = cfg?.permissioned_as;
262
+ preservePermissionedAs = !!cfg?.permissioned_as;
261
263
  }
262
264
  async function loadTrigger(defaultConfig) {
263
265
  if (defaultConfig) {
@@ -329,6 +331,8 @@ function getRouteConfig() {
329
331
  async function handleToggleMode(newMode) {
330
332
  mode = newMode;
331
333
  if (!trigger?.draftConfig) {
334
+ // HTTP routes are always workspace-prefixed at runtime, so fork
335
+ // and parent live at distinct URLs — no fork-conflict warning.
332
336
  await HttpTriggerService.setHttpTriggerMode({
333
337
  path: initialPath,
334
338
  workspace: $workspaceStore ?? '',
@@ -409,15 +413,14 @@ $effect(() => {
409
413
  <Loader2 class="animate-spin" />
410
414
  {/if}
411
415
  {:else}
412
- {#if edit}
413
- <PermissionedAsLine
414
- {permissionedAs}
415
- onPermissionedAsChange={(pa, preserve) => {
416
- selectedPermissionedAs = pa
417
- preservePermissionedAs = preserve
418
- }}
419
- />
420
- {/if}
416
+ <PermissionedAsLine
417
+ {permissionedAs}
418
+ {path}
419
+ onPermissionedAsChange={(pa, preserve) => {
420
+ selectedPermissionedAs = pa
421
+ preservePermissionedAs = preserve
422
+ }}
423
+ />
421
424
  <div class="flex flex-col gap-8">
422
425
  {#if mode === 'suspended'}
423
426
  <TriggerSuspendedJobsAlert {suspendedJobsModal} />
@@ -446,7 +449,6 @@ $effect(() => {
446
449
  checkInitialPathExistence={!edit}
447
450
  namePlaceholder="route"
448
451
  kind="http_trigger"
449
- hideUser
450
452
  disableEditing={!can_write}
451
453
  />
452
454
  </Label>
@@ -874,7 +876,7 @@ $effect(() => {
874
876
  {#if !drawerLoading}
875
877
  <TriggerEditorToolbar
876
878
  {trigger}
877
- permissions={drawerLoading || !can_write ? 'none' : can_write && isAdmin ? 'create' : 'write'}
879
+ permissions={drawerLoading || !can_write ? 'none' : 'create'}
878
880
  {saveDisabled}
879
881
  {allowDraft}
880
882
  {edit}
@@ -9,7 +9,7 @@ import Subsection from '../../Subsection.svelte';
9
9
  import RouteEditor from './RouteEditor.svelte';
10
10
  import { generateHttpTriggerFromOpenApi } from './utils';
11
11
  import { isCloudHosted } from '../../../cloud';
12
- import { usedTriggerKinds, workspaceStore } from '../../../stores';
12
+ import { usedTriggerKinds, userStore, workspaceStore } from '../../../stores';
13
13
  import FileInput from '../../common/fileInput/FileInput.svelte';
14
14
  import { emptyStringTrimmed, sendUserToast } from '../../../utils';
15
15
  import FolderPicker from '../../FolderPicker.svelte';
@@ -113,10 +113,15 @@ async function saveHttpTrigger() {
113
113
  isCreating = false;
114
114
  }
115
115
  }
116
+ let userIsAdmin = $derived($userStore?.is_admin || $userStore?.is_super_admin);
116
117
  async function generateHttpTrigger() {
117
118
  try {
118
119
  isGeneratingHttpRoutes = true;
119
120
  httpTriggers = await generateHttpTriggerFromOpenApi(code, folderName);
121
+ // Force workspaced routes for non-admins or when the global setting is enabled
122
+ if (!userIsAdmin || globalHttpWorkspacedRoute) {
123
+ httpTriggers = httpTriggers.map((t) => ({ ...t, workspaced_route: true }));
124
+ }
120
125
  if (httpTriggers.length === 0) {
121
126
  sendUserToast('No paths defined in the OpenAPI spec. Cannot generate HTTP routes.', true);
122
127
  }
@@ -38,7 +38,7 @@ onMount(() => {
38
38
  >
39
39
 
40
40
  {#if !$userStore?.is_admin && !$userStore?.is_super_admin && selectedTrigger.isDraft}
41
- <Alert title="Only workspace admins can create routes" type="info" size="xs" />
41
+ <Alert title="Non-admin users are limited to workspaced routes" type="info" size="xs" />
42
42
  {/if}
43
43
  </div>
44
44
  {/snippet}
@@ -6,6 +6,6 @@ export declare const SIGNATURE_TEMPLATE_SCRIPT_HUB_PATH: string;
6
6
  export declare const SIGNATURE_TEMPLATE_FLOW_HUB_ID = "67";
7
7
  export declare function getHttpRoute(route_prefix: string, route_path: string | undefined, workspaced_route: boolean, workspace_id: string): string;
8
8
  export declare function replacePlaceholderForSignatureScriptTemplate(content: string): string;
9
- export declare function saveHttpRouteFromCfg(initialPath: string, routeCfg: Record<string, any>, edit: boolean, workspace: string, isAdmin: boolean, usedTriggerKinds: Writable<string[]>): Promise<boolean>;
9
+ export declare function saveHttpRouteFromCfg(initialPath: string, routeCfg: Record<string, any>, edit: boolean, workspace: string, _isAdmin: boolean, usedTriggerKinds: Writable<string[]>): Promise<boolean>;
10
10
  export type Source = 'OpenAPI' | 'OpenAPI_File' | 'OpenAPI_URL';
11
11
  export declare function generateHttpTriggerFromOpenApi(api: string, folderName: string): Promise<NewHttpTrigger[]>;
@@ -18,7 +18,7 @@ export function replacePlaceholderForSignatureScriptTemplate(content) {
18
18
  const secret_key_path = params.get(SECRET_KEY_PATH) ?? '';
19
19
  return content.replace(/(const\s+SECRET_KEY_VARIABLE_PATH\s*=\s*")[^"]*(";)/, `$1${secret_key_path}$2`);
20
20
  }
21
- export async function saveHttpRouteFromCfg(initialPath, routeCfg, edit, workspace, isAdmin, usedTriggerKinds) {
21
+ export async function saveHttpRouteFromCfg(initialPath, routeCfg, edit, workspace, _isAdmin, usedTriggerKinds) {
22
22
  const requestBody = {
23
23
  path: routeCfg.path,
24
24
  script_path: routeCfg.script_path,
@@ -49,7 +49,7 @@ export async function saveHttpRouteFromCfg(initialPath, routeCfg, edit, workspac
49
49
  path: initialPath,
50
50
  requestBody: {
51
51
  ...requestBody,
52
- route_path: isAdmin || !edit ? routeCfg.route_path : undefined
52
+ route_path: routeCfg.route_path
53
53
  }
54
54
  });
55
55
  sendUserToast(`Route ${routeCfg.path} updated`);
@@ -8,6 +8,7 @@ import ScriptPicker from '../../ScriptPicker.svelte';
8
8
  import { KafkaTriggerService } from '../../../gen';
9
9
  import { usedTriggerKinds, userStore, workspaceStore } from '../../../stores';
10
10
  import { canWrite, capitalize, emptyString, sendUserToast } from '../../../utils';
11
+ import { withForkConflictRetry } from '../../../utils/forkConflict';
11
12
  import Section from '../../Section.svelte';
12
13
  import { Loader2, RotateCcw } from 'lucide-svelte';
13
14
  import Label from '../../Label.svelte';
@@ -141,6 +142,9 @@ export async function openNew(nis_flow, fixedScriptPath_, nDefaultValues) {
141
142
  filterLogic = 'and';
142
143
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
143
144
  mode = nDefaultValues?.mode ?? 'enabled';
145
+ permissionedAs = undefined;
146
+ selectedPermissionedAs = undefined;
147
+ preservePermissionedAs = false;
144
148
  originalConfig = undefined;
145
149
  }
146
150
  finally {
@@ -171,8 +175,8 @@ function loadTriggerConfig(cfg) {
171
175
  filterLogic = cfg?.filter_logic ?? 'and';
172
176
  errorHandlerSelected = getHandlerType(error_handler_path ?? '');
173
177
  permissionedAs = cfg?.permissioned_as;
174
- selectedPermissionedAs = undefined;
175
- preservePermissionedAs = false;
178
+ selectedPermissionedAs = cfg?.permissioned_as;
179
+ preservePermissionedAs = !!cfg?.permissioned_as;
176
180
  }
177
181
  async function loadTrigger(defaultConfig) {
178
182
  if (defaultConfig) {
@@ -249,13 +253,18 @@ async function resetOffsets() {
249
253
  }
250
254
  }
251
255
  async function handleToggleMode(newMode) {
256
+ const previousMode = mode;
252
257
  mode = newMode;
253
258
  if (!trigger?.draftConfig) {
254
- await KafkaTriggerService.setKafkaTriggerMode({
259
+ const ok = await withForkConflictRetry((force) => KafkaTriggerService.setKafkaTriggerMode({
255
260
  path: initialPath,
256
261
  workspace: $workspaceStore ?? '',
257
- requestBody: { mode: newMode }
258
- });
262
+ requestBody: { mode: newMode, force }
263
+ }), 'Kafka trigger');
264
+ if (!ok) {
265
+ mode = previousMode;
266
+ return;
267
+ }
259
268
  sendUserToast(`${capitalize(newMode)} Kafka trigger ${initialPath}`);
260
269
  onUpdate?.(initialPath);
261
270
  }
@@ -360,15 +369,14 @@ $effect(() => {
360
369
  <Loader2 class="animate-spin" />
361
370
  {/if}
362
371
  {:else}
363
- {#if edit}
364
- <PermissionedAsLine
365
- {permissionedAs}
366
- onPermissionedAsChange={(pa, preserve) => {
367
- selectedPermissionedAs = pa
368
- preservePermissionedAs = preserve
369
- }}
370
- />
371
- {/if}
372
+ <PermissionedAsLine
373
+ {permissionedAs}
374
+ {path}
375
+ onPermissionedAsChange={(pa, preserve) => {
376
+ selectedPermissionedAs = pa
377
+ preservePermissionedAs = preserve
378
+ }}
379
+ />
372
380
  <div class="flex flex-col gap-4">
373
381
  {#if description}
374
382
  {@render description()}
@@ -7,6 +7,7 @@ import Required from '../../Required.svelte';
7
7
  import ScriptPicker from '../../ScriptPicker.svelte';
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';
@@ -128,6 +129,9 @@ export async function openNew(nis_flow, fixedScriptPath_, defaultValues) {
128
129
  v5_config = defaultValues?.v5_config ?? DEFAULT_V5_CONFIG;
129
130
  activateV5Options.topic_alias_maximum = Boolean(defaultValues?.v5_config?.topic_alias_maximum);
130
131
  activateV5Options.session_expiry_interval = Boolean(defaultValues?.v5_config?.session_expiry_interval);
132
+ permissionedAs = undefined;
133
+ selectedPermissionedAs = undefined;
134
+ preservePermissionedAs = false;
131
135
  originalConfig = undefined;
132
136
  }
133
137
  finally {
@@ -157,8 +161,8 @@ async function loadTriggerConfig(cfg) {
157
161
  activateV5Options.topic_alias_maximum = Boolean(v5_config.topic_alias_maximum);
158
162
  activateV5Options.session_expiry_interval = Boolean(v5_config.session_expiry_interval);
159
163
  permissionedAs = cfg?.permissioned_as;
160
- selectedPermissionedAs = undefined;
161
- preservePermissionedAs = false;
164
+ selectedPermissionedAs = cfg?.permissioned_as;
165
+ preservePermissionedAs = !!cfg?.permissioned_as;
162
166
  }
163
167
  catch (error) {
164
168
  sendUserToast(`Could not load mqtt trigger config: ${error.body}`, true);
@@ -228,13 +232,18 @@ async function updateTrigger() {
228
232
  deploymentLoading = false;
229
233
  }
230
234
  async function handleToggleMode(newMode) {
235
+ const previousMode = mode;
231
236
  mode = newMode;
232
237
  if (!trigger?.draftConfig) {
233
- await MqttTriggerService.setMqttTriggerMode({
238
+ const ok = await withForkConflictRetry((force) => MqttTriggerService.setMqttTriggerMode({
234
239
  path: initialPath,
235
240
  workspace: $workspaceStore ?? '',
236
- requestBody: { mode: newMode }
237
- });
241
+ requestBody: { mode: newMode, force }
242
+ }), 'MQTT trigger');
243
+ if (!ok) {
244
+ mode = previousMode;
245
+ return;
246
+ }
238
247
  sendUserToast(`${capitalize(newMode)} MQTT trigger ${initialPath}`);
239
248
  onUpdate?.(initialPath);
240
249
  }
@@ -327,15 +336,14 @@ $effect(() => {
327
336
  <Loader2 class="animate-spin" />
328
337
  {/if}
329
338
  {:else}
330
- {#if edit}
331
- <PermissionedAsLine
332
- {permissionedAs}
333
- onPermissionedAsChange={(pa, preserve) => {
334
- selectedPermissionedAs = pa
335
- preservePermissionedAs = preserve
336
- }}
337
- />
338
- {/if}
339
+ <PermissionedAsLine
340
+ {permissionedAs}
341
+ {path}
342
+ onPermissionedAsChange={(pa, preserve) => {
343
+ selectedPermissionedAs = pa
344
+ preservePermissionedAs = preserve
345
+ }}
346
+ />
339
347
  <div class="flex flex-col gap-4">
340
348
  {#if description}
341
349
  {@render description()}
@@ -12,6 +12,7 @@ import Section from '../../Section.svelte';
12
12
  import Required from '../../Required.svelte';
13
13
  import NextcloudTriggerForm from './services/nextcloud/NextcloudTriggerForm.svelte';
14
14
  import GoogleTriggerForm from './services/google/GoogleTriggerForm.svelte';
15
+ import GitHubTriggerForm from './services/github/GitHubTriggerForm.svelte';
15
16
  import TriggerEditorToolbar from '../TriggerEditorToolbar.svelte';
16
17
  import { handleConfigChange } from '../utils';
17
18
  import { deepEqual } from 'fast-equals';
@@ -32,6 +33,8 @@ const ServiceFormComponent = $derived.by(() => {
32
33
  return NextcloudTriggerForm;
33
34
  case 'google':
34
35
  return GoogleTriggerForm;
36
+ case 'github':
37
+ return GitHubTriggerForm;
35
38
  default:
36
39
  return null;
37
40
  }
@@ -0,0 +1,118 @@
1
+ <script lang="ts">import Section from '../../../../Section.svelte';
2
+ import Select from '../../../../select/Select.svelte';
3
+ import MultiSelect from '../../../../select/MultiSelect.svelte';
4
+ import { NativeTriggerService } from '../../../../../gen/services.gen';
5
+ import { workspaceStore } from '../../../../../stores';
6
+ import { sendUserToast } from '../../../../../toast';
7
+ import { Loader2 } from 'lucide-svelte';
8
+ let { serviceConfig = $bindable(), errors = $bindable(), loading = $bindable(), disabled = false, externalData } = $props();
9
+ const GITHUB_EVENTS = [
10
+ { label: 'Push', value: 'push' },
11
+ { label: 'Pull Request', value: 'pull_request' },
12
+ { label: 'Issues', value: 'issues' },
13
+ { label: 'Issue Comment', value: 'issue_comment' },
14
+ { label: 'Create (branch/tag)', value: 'create' },
15
+ { label: 'Delete (branch/tag)', value: 'delete' },
16
+ { label: 'Release', value: 'release' },
17
+ { label: 'Workflow Run', value: 'workflow_run' },
18
+ { label: 'Pull Request Review', value: 'pull_request_review' },
19
+ { label: 'Fork', value: 'fork' },
20
+ { label: 'Star', value: 'star' },
21
+ { label: 'Deployment', value: 'deployment' },
22
+ { label: 'Deployment Status', value: 'deployment_status' }
23
+ ];
24
+ let repos = $state([]);
25
+ let selectedRepo = $state(externalData?.owner && externalData?.repo
26
+ ? `${externalData.owner}/${externalData.repo}`
27
+ : serviceConfig.owner && serviceConfig.repo
28
+ ? `${serviceConfig.owner}/${serviceConfig.repo}`
29
+ : '');
30
+ let selectedEvents = $state(externalData?.events ?? serviceConfig.events ?? ['push']);
31
+ async function loadRepos() {
32
+ if (!$workspaceStore) {
33
+ repos = [];
34
+ return;
35
+ }
36
+ loading = true;
37
+ try {
38
+ repos = await NativeTriggerService.listGithubRepos({
39
+ workspace: $workspaceStore
40
+ });
41
+ }
42
+ catch (err) {
43
+ console.error('Failed to load GitHub repositories:', err);
44
+ sendUserToast(`Failed to load repositories: ${err.body || err.message}`, true);
45
+ repos = [];
46
+ }
47
+ finally {
48
+ loading = false;
49
+ }
50
+ }
51
+ $effect(() => {
52
+ if ($workspaceStore) {
53
+ loadRepos();
54
+ }
55
+ });
56
+ $effect(() => {
57
+ const parts = selectedRepo.split('/');
58
+ const owner = parts[0] ?? '';
59
+ const repo = parts.slice(1).join('/') ?? '';
60
+ serviceConfig = {
61
+ owner,
62
+ repo,
63
+ events: selectedEvents
64
+ };
65
+ });
66
+ let repoItems = $derived(repos.map((r) => ({
67
+ label: `${r.full_name}${r.private ? ' (private)' : ''}`,
68
+ value: r.full_name
69
+ })));
70
+ export function validate() {
71
+ let serviceErrors = {};
72
+ if (!selectedRepo?.trim()) {
73
+ serviceErrors.repo = 'Repository is required';
74
+ }
75
+ if (!selectedEvents || selectedEvents.length === 0) {
76
+ serviceErrors.events = 'At least one event is required';
77
+ }
78
+ return serviceErrors;
79
+ }
80
+ </script>
81
+
82
+ <Section label="GitHub Trigger Configuration">
83
+ <div class="flex flex-col gap-4">
84
+ <div class="flex flex-col gap-1">
85
+ <p class="block text-xs font-semibold text-primary">Repository</p>
86
+ {#if loading}
87
+ <div class="flex items-center gap-2 text-secondary text-xs">
88
+ <Loader2 class="animate-spin" size={14} />
89
+ Loading repositories...
90
+ </div>
91
+ {:else}
92
+ <Select
93
+ items={repoItems}
94
+ bind:value={selectedRepo}
95
+ placeholder="Select a repository"
96
+ {disabled}
97
+ />
98
+ {/if}
99
+ {#if errors.repo}
100
+ <p class="text-red-500 text-xs">{errors.repo}</p>
101
+ {/if}
102
+ </div>
103
+
104
+ <div class="flex flex-col gap-1">
105
+ <p class="block text-xs font-semibold text-primary">Events</p>
106
+ <MultiSelect
107
+ items={GITHUB_EVENTS}
108
+ bind:value={selectedEvents}
109
+ placeholder="Select events"
110
+ {disabled}
111
+ reorderable={false}
112
+ />
113
+ {#if errors.events}
114
+ <p class="text-red-500 text-xs">{errors.events}</p>
115
+ {/if}
116
+ </div>
117
+ </div>
118
+ </Section>
@@ -0,0 +1,17 @@
1
+ interface Props {
2
+ serviceConfig: Record<string, any>;
3
+ errors: Record<string, string>;
4
+ disabled?: boolean;
5
+ externalData?: any;
6
+ loading: boolean;
7
+ path?: string;
8
+ isFlow?: boolean;
9
+ token?: string;
10
+ triggerTokens?: any;
11
+ scopes?: any[];
12
+ }
13
+ declare const GitHubTriggerForm: import("svelte").Component<Props, {
14
+ validate: () => Record<string, string>;
15
+ }, "loading" | "errors" | "serviceConfig">;
16
+ type GitHubTriggerForm = ReturnType<typeof GitHubTriggerForm>;
17
+ export default GitHubTriggerForm;
@@ -23,6 +23,16 @@ export const NATIVE_TRIGGER_SERVICES = {
23
23
  script: '/scripts/add?hub=hub%2F28135',
24
24
  flow: '/flows/add?hub=75'
25
25
  }
26
+ },
27
+ github: {
28
+ serviceDisplayName: 'GitHub',
29
+ serviceKey: 'github',
30
+ supportsSync: true,
31
+ isCloudCompatible: true,
32
+ templates: {
33
+ script: '/scripts/add?hub=hub%2F28202',
34
+ flow: '/flows/add?hub=80'
35
+ }
26
36
  }
27
37
  };
28
38
  export async function isServiceAvailable(service, workspace) {
@@ -77,6 +87,8 @@ export function getTriggerIconName(service) {
77
87
  return 'NextcloudIcon';
78
88
  case 'google':
79
89
  return 'GoogleIcon';
90
+ case 'github':
91
+ return 'GithubIcon';
80
92
  default:
81
93
  return 'NextcloudIcon';
82
94
  }
@@ -87,6 +99,8 @@ export async function getServiceIcon(service) {
87
99
  return (await import('../../icons/NextcloudIcon.svelte')).default;
88
100
  case 'google':
89
101
  return (await import('../../icons/GoogleIcon.svelte')).default;
102
+ case 'github':
103
+ return (await import('../../icons/GithubIcon.svelte')).default;
90
104
  }
91
105
  }
92
106
  export function getServiceTemplates(service) {
@@ -1,6 +1,7 @@
1
- declare const NatsTriggerEditor: import("svelte").Component<{
2
- onUpdate: any;
3
- }, {
1
+ type $$ComponentProps = {
2
+ onUpdate?: (path?: string) => void;
3
+ };
4
+ declare const NatsTriggerEditor: 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
  }, "">;