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
@@ -5,19 +5,18 @@ import { triggerableByAI } from '../../actions/triggerableByAI.svelte';
5
5
  import Toggle from '../Toggle.svelte';
6
6
  import { UserService } from '../../gen';
7
7
  import TokenDisplay from './TokenDisplay.svelte';
8
- import ScopeSelector from './ScopeSelector.svelte';
9
- import McpScopeSelector from '../mcp/McpScopeSelector.svelte';
8
+ import ScopesPicker from './ScopesPicker.svelte';
10
9
  import TextInput from '../text_input/TextInput.svelte';
11
10
  import Select from '../select/Select.svelte';
12
- let { showMcpMode = false, defaultNewTokenWorkspace, scopes, onTokenCreated, newTokenLabel = $bindable(undefined), displayCreateToken = true } = $props();
11
+ let { showMcpMode = false, openWithMcpMode = false, mcpOnly = false, lockWorkspace = false, title = 'Add a new token', defaultNewTokenWorkspace, scopes, onTokenCreated, newTokenLabel = $bindable(undefined), displayCreateToken = true } = $props();
13
12
  let newToken = $state(undefined);
14
13
  let newMcpToken = $state(undefined);
15
14
  let newTokenExpiration = $state(undefined);
16
15
  let newTokenWorkspace = $state(untrack(() => defaultNewTokenWorkspace));
17
16
  let mcpCreationMode = $state(false);
18
- let mcpScope = $state('mcp:favorites');
19
- let customScopes = $state([]);
20
- let showCustomScopes = $state(false);
17
+ let lastRequestedMcpMode = $state(undefined);
18
+ let mcpLabelAutofilled = $state(false);
19
+ let pickedScopes = $state(null);
21
20
  function ensureCurrentWorkspaceIncluded(workspacesList, currentWorkspace) {
22
21
  if (!currentWorkspace) {
23
22
  return workspacesList;
@@ -28,19 +27,37 @@ function ensureCurrentWorkspaceIncluded(workspacesList, currentWorkspace) {
28
27
  }
29
28
  return [{ id: currentWorkspace, name: currentWorkspace }, ...workspacesList];
30
29
  }
30
+ function enterMcpMode() {
31
+ mcpCreationMode = true;
32
+ newTokenExpiration = undefined;
33
+ newTokenWorkspace = defaultNewTokenWorkspace ?? $workspaceStore;
34
+ newToken = undefined;
35
+ newMcpToken = undefined;
36
+ if (!newTokenLabel) {
37
+ newTokenLabel = 'MCP token';
38
+ mcpLabelAutofilled = true;
39
+ }
40
+ else {
41
+ mcpLabelAutofilled = false;
42
+ }
43
+ }
44
+ function exitMcpMode() {
45
+ mcpCreationMode = false;
46
+ newTokenExpiration = undefined;
47
+ newTokenWorkspace = defaultNewTokenWorkspace;
48
+ newMcpToken = undefined;
49
+ if (mcpLabelAutofilled) {
50
+ newTokenLabel = undefined;
51
+ }
52
+ mcpLabelAutofilled = false;
53
+ }
31
54
  async function createToken(mcpMode = false) {
32
55
  try {
33
56
  let date;
34
57
  if (newTokenExpiration) {
35
58
  date = new Date(new Date().getTime() + newTokenExpiration * 1000);
36
59
  }
37
- let tokenScopes = scopes;
38
- if (mcpMode) {
39
- tokenScopes = mcpScope.split(' ').filter((s) => s.length > 0);
40
- }
41
- else if (showCustomScopes && customScopes.length > 0) {
42
- tokenScopes = customScopes;
43
- }
60
+ const tokenScopes = scopes ?? pickedScopes ?? undefined;
44
61
  const createdToken = await UserService.createToken({
45
62
  requestBody: {
46
63
  label: newTokenLabel,
@@ -50,13 +67,17 @@ async function createToken(mcpMode = false) {
50
67
  }
51
68
  });
52
69
  if (mcpMode) {
70
+ newToken = undefined;
53
71
  newMcpToken = `${createdToken}`;
54
72
  }
55
73
  else {
74
+ newMcpToken = undefined;
56
75
  newToken = `${createdToken}`;
57
76
  }
58
- onTokenCreated(newToken ?? newMcpToken ?? '');
59
- mcpCreationMode = false;
77
+ onTokenCreated(`${createdToken}`);
78
+ if (!mcpOnly) {
79
+ mcpCreationMode = false;
80
+ }
60
81
  }
61
82
  catch (err) {
62
83
  console.error('Failed to create token:', err);
@@ -64,13 +85,31 @@ async function createToken(mcpMode = false) {
64
85
  }
65
86
  const workspaces = $derived(ensureCurrentWorkspaceIncluded($userWorkspaces, $workspaceStore));
66
87
  const mcpBaseUrl = $derived(`${window.location.origin}/api/mcp/w/${newTokenWorkspace}/mcp?token=`);
88
+ $effect(() => {
89
+ const requestedMcpMode = mcpOnly || openWithMcpMode;
90
+ if (requestedMcpMode === lastRequestedMcpMode) {
91
+ return;
92
+ }
93
+ if (requestedMcpMode) {
94
+ enterMcpMode();
95
+ }
96
+ else {
97
+ exitMcpMode();
98
+ }
99
+ lastRequestedMcpMode = requestedMcpMode;
100
+ });
101
+ $effect(() => {
102
+ if (mcpLabelAutofilled && newTokenLabel !== 'MCP token') {
103
+ mcpLabelAutofilled = false;
104
+ }
105
+ });
67
106
  </script>
68
107
 
69
108
  <div>
70
109
  <div class="p-4 rounded-md mb-6 min-w-min bg-surface-tertiary">
71
- <h3 class="pb-2 font-semibold text-emphasis text-sm">Add a new token</h3>
110
+ <h3 class="pb-2 font-semibold text-emphasis text-sm">{title}</h3>
72
111
 
73
- {#if showMcpMode}
112
+ {#if showMcpMode && !mcpOnly}
74
113
  <div
75
114
  class="mb-4 flex flex-row flex-shrink-0"
76
115
  use:triggerableByAI={{
@@ -80,15 +119,10 @@ const mcpBaseUrl = $derived(`${window.location.origin}/api/mcp/w/${newTokenWorks
80
119
  >
81
120
  <Toggle
82
121
  on:change={(e) => {
83
- mcpCreationMode = e.detail
84
122
  if (e.detail) {
85
- newTokenLabel = 'MCP token'
86
- newTokenExpiration = undefined
87
- newTokenWorkspace = $workspaceStore
123
+ enterMcpMode()
88
124
  } else {
89
- newTokenLabel = undefined
90
- newTokenExpiration = undefined
91
- newTokenWorkspace = defaultNewTokenWorkspace
125
+ exitMcpMode()
92
126
  }
93
127
  }}
94
128
  checked={mcpCreationMode}
@@ -112,51 +146,36 @@ const mcpBaseUrl = $derived(`${window.location.origin}/api/mcp/w/${newTokenWorks
112
146
  </div>
113
147
  {/if}
114
148
 
115
- {#if !mcpCreationMode && (!scopes || scopes.length === 0)}
116
- <div class="flex flex-col gap-2">
117
- <Toggle
118
- checked={showCustomScopes}
119
- on:change={(e) => {
120
- showCustomScopes = e.detail
121
- }}
122
- options={{
123
- right: 'Limit token permissions',
124
- rightTooltip:
125
- 'By default, tokens have full API access. Enable this to restrict the token to specific scopes.'
126
- }}
127
- size="xs"
128
- />
129
- {#if showCustomScopes}
130
- <ScopeSelector bind:selectedScopes={customScopes} />
131
- {/if}
132
- </div>
149
+ {#if !scopes || scopes.length === 0}
150
+ <ScopesPicker
151
+ mode={mcpCreationMode ? 'mcp' : 'standard'}
152
+ workspaceId={newTokenWorkspace || $workspaceStore || ''}
153
+ bind:value={pickedScopes}
154
+ />
133
155
  {/if}
134
156
 
135
157
  <div class="mt-2 grid grid-cols-1 md:grid-cols-2 gap-4">
136
158
  {#if mcpCreationMode}
137
- <div class="col-span-2">
138
- <McpScopeSelector
139
- workspaceId={newTokenWorkspace || $workspaceStore || ''}
140
- bind:scope={mcpScope}
141
- />
142
- </div>
159
+ {#if !lockWorkspace}
160
+ <div>
161
+ <span class="block mb-1 text-emphasis text-xs font-semibold">Workspace</span>
162
+ <Select
163
+ bind:value={newTokenWorkspace}
164
+ items={workspaces.map((w) => ({ label: w.name, value: w.id, subtitle: w.id }))}
165
+ />
166
+ </div>
167
+ {/if}
168
+ {/if}
143
169
 
170
+ {#if !mcpOnly}
144
171
  <div>
145
- <span class="block mb-1 text-emphasis text-xs font-semibold">Workspace</span>
146
- <Select
147
- bind:value={newTokenWorkspace}
148
- items={workspaces.map((w) => ({ label: w.name, value: w.id, subtitle: w.id }))}
149
- />
172
+ <span class="block mb-1 text-emphasis text-xs font-semibold"
173
+ >Label <span class="text-xs text-primary">(optional)</span></span
174
+ >
175
+ <TextInput inputProps={{ type: 'text' }} bind:value={newTokenLabel} class="w-full" />
150
176
  </div>
151
177
  {/if}
152
178
 
153
- <div>
154
- <span class="block mb-1 text-emphasis text-xs font-semibold"
155
- >Label <span class="text-xs text-primary">(optional)</span></span
156
- >
157
- <TextInput inputProps={{ type: 'text' }} bind:value={newTokenLabel} class="w-full" />
158
- </div>
159
-
160
179
  {#if !mcpCreationMode}
161
180
  <div>
162
181
  <span class="block mb-1 text-xs text-emphasis font-semibold"
@@ -182,21 +201,22 @@ const mcpBaseUrl = $derived(`${window.location.origin}/api/mcp/w/${newTokenWorks
182
201
  </div>
183
202
 
184
203
  <div class="mt-4 flex justify-end gap-2 flex-row">
185
- <Button
186
- on:click={() => {
187
- mcpCreationMode = false
188
- }}
189
- variant="default"
190
- >
191
- Cancel
192
- </Button>
204
+ {#if !mcpOnly}
205
+ <Button
206
+ on:click={() => {
207
+ exitMcpMode()
208
+ }}
209
+ variant="default"
210
+ >
211
+ Cancel
212
+ </Button>
213
+ {/if}
193
214
  <Button
194
215
  on:click={() => createToken(mcpCreationMode)}
195
- disabled={mcpCreationMode &&
196
- (newTokenWorkspace == undefined || !mcpScope || mcpScope.trim().length === 0)}
216
+ disabled={mcpCreationMode && (newTokenWorkspace == undefined || !pickedScopes)}
197
217
  variant="accent"
198
218
  >
199
- New token
219
+ {mcpCreationMode ? 'Generate MCP URL' : 'New token'}
200
220
  </Button>
201
221
  </div>
202
222
  </div>
@@ -1,6 +1,9 @@
1
1
  interface Props {
2
2
  showMcpMode?: boolean;
3
3
  openWithMcpMode?: boolean;
4
+ mcpOnly?: boolean;
5
+ lockWorkspace?: boolean;
6
+ title?: string;
4
7
  newTokenLabel?: string;
5
8
  defaultNewTokenWorkspace?: string;
6
9
  scopes?: string[];
@@ -0,0 +1,57 @@
1
+ <script lang="ts">import { UserService } from '../../gen';
2
+ import { sendUserToast } from '../../toast';
3
+ import { workspaceStore } from '../../stores';
4
+ import Button from '../common/button/Button.svelte';
5
+ import Modal from '../common/modal/Modal.svelte';
6
+ import ScopesPicker from './ScopesPicker.svelte';
7
+ let { open = $bindable(), tokenPrefix, initialScopes, tokenWorkspaceId, onSaved } = $props();
8
+ // Treat as MCP only when *all* existing scopes are mcp:* — mixed-scope or
9
+ // null-scope tokens fall back to the standard picker so non-MCP scopes are
10
+ // never silently dropped.
11
+ const isMcp = $derived((initialScopes ?? []).length > 0 && (initialScopes ?? []).every((s) => s.startsWith('mcp:')));
12
+ const mcpWorkspaceId = $derived(tokenWorkspaceId ?? $workspaceStore ?? '');
13
+ let pickedScopes = $state(null);
14
+ let saving = $state(false);
15
+ async function save() {
16
+ if (!tokenPrefix)
17
+ return;
18
+ saving = true;
19
+ try {
20
+ await UserService.updateTokenScopes({
21
+ tokenPrefix,
22
+ requestBody: { scopes: pickedScopes }
23
+ });
24
+ sendUserToast('Token scopes updated');
25
+ onSaved?.();
26
+ open = false;
27
+ }
28
+ catch (err) {
29
+ sendUserToast(`Failed to update scopes: ${err.body ?? err.message}`, true);
30
+ }
31
+ finally {
32
+ saving = false;
33
+ }
34
+ }
35
+ const saveDisabled = $derived(saving || !tokenPrefix || (isMcp && !pickedScopes));
36
+ </script>
37
+
38
+ <Modal bind:open title="Edit token scopes" class="!max-w-3xl">
39
+ <div class="flex flex-col gap-3">
40
+ <div class="text-xs text-secondary">
41
+ Token <span class="font-mono">{tokenPrefix}****</span>
42
+ </div>
43
+
44
+ {#key tokenPrefix}
45
+ <ScopesPicker
46
+ mode={isMcp ? 'mcp' : 'standard'}
47
+ workspaceId={mcpWorkspaceId}
48
+ {initialScopes}
49
+ bind:value={pickedScopes}
50
+ />
51
+ {/key}
52
+ </div>
53
+
54
+ {#snippet actions()}
55
+ <Button size="sm" variant="accent" disabled={saveDisabled} on:click={save}>Save</Button>
56
+ {/snippet}
57
+ </Modal>
@@ -0,0 +1,10 @@
1
+ interface Props {
2
+ open: boolean;
3
+ tokenPrefix?: string;
4
+ initialScopes?: string[];
5
+ tokenWorkspaceId?: string;
6
+ onSaved?: () => void;
7
+ }
8
+ declare const EditTokenScopesModal: import("svelte").Component<Props, {}, "open">;
9
+ type EditTokenScopesModal = ReturnType<typeof EditTokenScopesModal>;
10
+ export default EditTokenScopesModal;
@@ -0,0 +1,43 @@
1
+ <script lang="ts">import Toggle from '../Toggle.svelte';
2
+ import ScopeSelector from './ScopeSelector.svelte';
3
+ import McpScopeSelector from '../mcp/McpScopeSelector.svelte';
4
+ let { mode, workspaceId = '', initialScopes, value = $bindable() } = $props();
5
+ const initialMcpScope = $derived((initialScopes ?? []).length > 0 ? (initialScopes ?? []).join(' ') : undefined);
6
+ // Standard-mode local state, seeded from initialScopes if any.
7
+ let limited = $state((initialScopes ?? []).length > 0);
8
+ let standardScopes = $state([...(initialScopes ?? [])]);
9
+ // MCP-mode local state. When no initial scope is provided we fall back
10
+ // to `mcp:favorites` (matches the create-token default).
11
+ let mcpScope = $state(initialMcpScope ?? 'mcp:favorites');
12
+ $effect(() => {
13
+ if (mode === 'mcp') {
14
+ const parts = mcpScope
15
+ .split(' ')
16
+ .map((s) => s.trim())
17
+ .filter((s) => s.length > 0);
18
+ value = parts.length > 0 ? parts : null;
19
+ }
20
+ else {
21
+ value = limited && standardScopes.length > 0 ? standardScopes : null;
22
+ }
23
+ });
24
+ </script>
25
+
26
+ {#if mode === 'standard'}
27
+ <div class="flex flex-col gap-2">
28
+ <Toggle
29
+ bind:checked={limited}
30
+ options={{
31
+ right: 'Limit token permissions',
32
+ rightTooltip:
33
+ 'When off, the token has full API access. Turn on to restrict it to specific scopes.'
34
+ }}
35
+ size="xs"
36
+ />
37
+ {#if limited}
38
+ <ScopeSelector bind:selectedScopes={standardScopes} />
39
+ {/if}
40
+ </div>
41
+ {:else}
42
+ <McpScopeSelector {workspaceId} bind:scope={mcpScope} initialScope={initialMcpScope} />
43
+ {/if}
@@ -0,0 +1,11 @@
1
+ interface Props {
2
+ mode: 'standard' | 'mcp';
3
+ workspaceId?: string;
4
+ /** Existing scopes (used for both initial standard selection and parsing MCP scope) */
5
+ initialScopes?: string[];
6
+ /** Final scope value: null = unrestricted/full access, array = explicit list */
7
+ value: string[] | null;
8
+ }
9
+ declare const ScopesPicker: import("svelte").Component<Props, {}, "value">;
10
+ type ScopesPicker = ReturnType<typeof ScopesPicker>;
11
+ export default ScopesPicker;
@@ -4,15 +4,18 @@ import { displayDate } from '../../utils';
4
4
  import { UserService } from '../../gen';
5
5
  import { sendUserToast } from '../../toast';
6
6
  import CreateToken from './CreateToken.svelte';
7
+ import EditTokenScopesModal from './EditTokenScopesModal.svelte';
7
8
  import Button from '../common/button/Button.svelte';
8
9
  import Badge from '../common/badge/Badge.svelte';
9
10
  import Alert from '../common/alert/Alert.svelte';
10
- import { Trash } from 'lucide-svelte';
11
+ import { Pen, Trash } from 'lucide-svelte';
11
12
  let { showMcpMode = false, openWithMcpMode = false, defaultNewTokenLabel, defaultNewTokenWorkspace, scopes, onTokenCreated } = $props();
12
13
  // --- Local State ---
13
14
  let tokens = $state([]);
14
15
  let tokenPage = $state(1);
15
16
  let newTokenLabel = $state(untrack(() => defaultNewTokenLabel));
17
+ let editingToken = $state(undefined);
18
+ let editModalOpen = $state(false);
16
19
  $effect(() => {
17
20
  listTokens();
18
21
  });
@@ -69,6 +72,14 @@ async function handleDeleteClick(tokenPrefix) {
69
72
  sendUserToast('Successfully deleted token');
70
73
  listTokens();
71
74
  }
75
+ function handleEditClick(tokenPrefix, tokenScopes, tokenWorkspaceId) {
76
+ editingToken = {
77
+ prefix: tokenPrefix,
78
+ scopes: tokenScopes,
79
+ workspaceId: tokenWorkspaceId
80
+ };
81
+ editModalOpen = true;
82
+ }
72
83
  async function listTokens() {
73
84
  tokens = await UserService.listTokens({
74
85
  excludeEphemeral: true,
@@ -93,7 +104,11 @@ function handlePreviousPage() {
93
104
  </div>
94
105
  {#if expiringSoonCount > 0}
95
106
  <div class="mb-2">
96
- <Alert type="warning" title="{expiringSoonCount} token{expiringSoonCount > 1 ? 's' : ''} expiring within 7 days" size="xs" />
107
+ <Alert
108
+ type="warning"
109
+ title="{expiringSoonCount} token{expiringSoonCount > 1 ? 's' : ''} expiring within 7 days"
110
+ size="xs"
111
+ />
97
112
  </div>
98
113
  {/if}
99
114
  <CreateToken
@@ -106,20 +121,19 @@ function handlePreviousPage() {
106
121
  />
107
122
  <div class="overflow-auto grow min-h-64 max-h-2/3">
108
123
  <TableCustom>
109
-
110
124
  {#snippet headerRow()}
111
- <tr >
125
+ <tr>
112
126
  <th>Prefix</th>
113
127
  <th>Label</th>
114
128
  <th>Expiration</th>
115
129
  <th>Scopes</th>
116
130
  <th></th>
117
131
  </tr>
118
- {/snippet}
132
+ {/snippet}
119
133
  {#snippet body()}
120
134
  <tbody>
121
135
  {#if tokens && tokens.length > 0}
122
- {#each tokens as { token_prefix, expiration, label, scopes } (token_prefix)}
136
+ {#each tokens as { token_prefix, expiration, label, scopes, workspace_id } (token_prefix)}
123
137
  {@const badge = expirationBadge(expiration, label)}
124
138
  <tr>
125
139
  <td class="w-32 text-xs text-primary">{token_prefix}****</td>
@@ -136,15 +150,29 @@ function handlePreviousPage() {
136
150
  class="min-w-0 max-w-48 truncate text-xs text-secondary"
137
151
  title={scopes?.join(', ') ?? ''}>{scopes?.join(', ') ?? ''}</td
138
152
  >
139
- <td class="w-16 text-center">
140
- <Button
141
- variant="subtle"
142
- destructive
143
- on:click={() => handleDeleteClick(token_prefix)}
144
- size="xs"
145
- startIcon={{ icon: Trash }}
146
- iconOnly
147
- />
153
+ <td class="w-24 text-center">
154
+ <div class="flex items-center justify-center gap-1">
155
+ <Button
156
+ variant="subtle"
157
+ on:click={() =>
158
+ handleEditClick(
159
+ token_prefix,
160
+ scopes ?? undefined,
161
+ workspace_id ?? undefined
162
+ )}
163
+ size="xs"
164
+ startIcon={{ icon: Pen }}
165
+ iconOnly
166
+ />
167
+ <Button
168
+ variant="subtle"
169
+ destructive
170
+ on:click={() => handleDeleteClick(token_prefix)}
171
+ size="xs"
172
+ startIcon={{ icon: Trash }}
173
+ iconOnly
174
+ />
175
+ </div>
148
176
  </td>
149
177
  </tr>
150
178
  {/each}
@@ -168,3 +196,11 @@ function handlePreviousPage() {
168
196
  </div>
169
197
  </div>
170
198
  </div>
199
+
200
+ <EditTokenScopesModal
201
+ bind:open={editModalOpen}
202
+ tokenPrefix={editingToken?.prefix}
203
+ initialScopes={editingToken?.scopes}
204
+ tokenWorkspaceId={editingToken?.workspaceId}
205
+ onSaved={listTokens}
206
+ />
@@ -19,10 +19,14 @@ import SearchItems from '../SearchItems.svelte';
19
19
  import Cell from '../table/Cell.svelte';
20
20
  import Row from '../table/Row.svelte';
21
21
  import ConfirmationModal from '../common/confirmationModal/ConfirmationModal.svelte';
22
+ import UserOffboardingModal from '../UserOffboardingModal.svelte';
22
23
  import { isCloudHosted } from '../../cloud';
23
24
  import { truncate } from '../../utils';
24
25
  import { onDestroy, untrack } from 'svelte';
25
26
  import { goto } from '../../navigation';
27
+ import { ArrowRightLeft } from 'lucide-svelte';
28
+ let offboardingUser = $state(undefined);
29
+ let offboardingReassignOnly = $state(false);
26
30
  let users = $state(undefined);
27
31
  let invites = $state([]);
28
32
  let filteredUsers = $state(undefined);
@@ -219,7 +223,6 @@ onDestroy(() => {
219
223
  console.warn(e);
220
224
  }
221
225
  });
222
- let deleteConfirmedCallback = $state(undefined);
223
226
  let removeInstanceGroupConfirmedCallback = $state(undefined);
224
227
  let convertConfirmedCallback = $state(undefined);
225
228
  // Auto-add/invite confirmation modal states
@@ -896,14 +899,8 @@ const isAdminsWorkspaceWithoutEE = $derived($workspaceStore === 'admins' && !$en
896
899
  destructive
897
900
  {disabled}
898
901
  onClick={() => {
899
- deleteConfirmedCallback = async () => {
900
- await UserService.deleteUser({
901
- workspace: $workspaceStore ?? '',
902
- username
903
- })
904
- sendUserToast('User removed')
905
- listUsers()
906
- }
902
+ offboardingUser = username
903
+ offboardingReassignOnly = false
907
904
  }}
908
905
  startIcon={{ icon: UserMinus }}
909
906
  >
@@ -932,7 +929,20 @@ const isAdminsWorkspaceWithoutEE = $derived($workspaceStore === 'admins' && !$en
932
929
  Convert
933
930
  </Button>
934
931
  {:else}
935
- {@render removeUserButton(false)}
932
+ <div class="flex items-center gap-1">
933
+ <Button
934
+ unifiedSize="sm"
935
+ variant="subtle"
936
+ onClick={() => {
937
+ offboardingUser = username
938
+ offboardingReassignOnly = true
939
+ }}
940
+ startIcon={{ icon: ArrowRightLeft }}
941
+ >
942
+ Reassign
943
+ </Button>
944
+ {@render removeUserButton(false)}
945
+ </div>
936
946
  {/if}
937
947
  </div>
938
948
  </Cell>
@@ -1073,24 +1083,20 @@ const isAdminsWorkspaceWithoutEE = $derived($workspaceStore === 'admins' && !$en
1073
1083
  {/if}
1074
1084
  </Section>
1075
1085
  {/if}
1076
- <ConfirmationModal
1077
- open={Boolean(deleteConfirmedCallback)}
1078
- title="Remove user"
1079
- confirmationText="Remove"
1080
- on:canceled={() => {
1081
- deleteConfirmedCallback = undefined
1082
- }}
1083
- on:confirmed={() => {
1084
- if (deleteConfirmedCallback) {
1085
- deleteConfirmedCallback()
1086
- }
1087
- deleteConfirmedCallback = undefined
1088
- }}
1089
- >
1090
- <div class="flex flex-col w-full space-y-4">
1091
- <span>Are you sure you want to remove ?</span>
1092
- </div>
1093
- </ConfirmationModal>
1086
+ {#if offboardingUser}
1087
+ <UserOffboardingModal
1088
+ open={offboardingUser != null}
1089
+ username={offboardingUser}
1090
+ reassignOnly={offboardingReassignOnly}
1091
+ onClose={() => {
1092
+ offboardingUser = undefined
1093
+ }}
1094
+ onComplete={() => {
1095
+ offboardingUser = undefined
1096
+ listUsers()
1097
+ }}
1098
+ />
1099
+ {/if}
1094
1100
 
1095
1101
  <div class="[&>div]:!z-[5002]">
1096
1102
  <ConfirmationModal
@@ -102,6 +102,12 @@ let allTriggerLinks = $derived([
102
102
  href: `${base}/gcp_triggers`,
103
103
  kind: 'gcp'
104
104
  },
105
+ {
106
+ label: 'Azure Event Grid triggers',
107
+ id: 'triggers',
108
+ href: `${base}/azure_triggers`,
109
+ kind: 'azure'
110
+ },
105
111
  { label: 'MQTT triggers', id: 'triggers', href: `${base}/mqtt_triggers`, kind: 'mqtt' },
106
112
  { label: 'Email triggers', id: 'triggers', href: `${base}/email_triggers`, kind: 'email' }
107
113
  ].filter(filterLink));