windmill-components 1.596.1 → 1.612.2

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 (414) hide show
  1. package/dist/appPolicy/myFunction.es.js +1337 -0
  2. package/dist/sharedUtils/assets/tokens/colorTokensConfig.d.ts +2 -0
  3. package/dist/sharedUtils/base.d.ts +1 -0
  4. package/dist/sharedUtils/cloud.d.ts +1 -0
  5. package/dist/sharedUtils/common.d.ts +108 -0
  6. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/count.d.ts +5 -0
  7. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/delete.d.ts +5 -0
  8. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/insert.d.ts +5 -0
  9. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/select.d.ts +11 -0
  10. package/dist/sharedUtils/components/apps/components/display/dbtable/queries/update.d.ts +11 -0
  11. package/dist/sharedUtils/components/apps/components/display/dbtable/utils.d.ts +84 -0
  12. package/dist/sharedUtils/components/apps/editor/appPolicy.d.ts +6 -0
  13. package/dist/sharedUtils/components/apps/editor/appUtilsCore.d.ts +7 -0
  14. package/dist/sharedUtils/components/apps/editor/appUtilsS3.d.ts +22 -0
  15. package/dist/sharedUtils/components/apps/editor/commonAppUtils.d.ts +10 -0
  16. package/dist/sharedUtils/components/apps/editor/component/components.d.ts +5305 -0
  17. package/dist/sharedUtils/components/apps/editor/component/default-codes.d.ts +3 -0
  18. package/dist/sharedUtils/components/apps/editor/component/index.d.ts +3 -0
  19. package/dist/sharedUtils/components/apps/editor/component/sets.d.ts +7 -0
  20. package/dist/sharedUtils/components/apps/editor/componentsPanel/componentDefaultProps.d.ts +3 -0
  21. package/dist/sharedUtils/components/apps/gridUtils.d.ts +14 -0
  22. package/dist/sharedUtils/components/apps/inputType.d.ts +176 -0
  23. package/dist/sharedUtils/components/apps/rx.d.ts +29 -0
  24. package/dist/sharedUtils/components/apps/sharedTypes.d.ts +19 -0
  25. package/dist/sharedUtils/components/apps/types.d.ts +274 -0
  26. package/dist/sharedUtils/components/common/alert/model.d.ts +2 -0
  27. package/dist/sharedUtils/components/common/badge/model.d.ts +8 -0
  28. package/dist/sharedUtils/components/common/button/model.d.ts +45 -0
  29. package/dist/sharedUtils/components/common/fileInput/model.d.ts +1 -0
  30. package/dist/sharedUtils/components/common/index.d.ts +24 -0
  31. package/dist/sharedUtils/components/common/skeleton/model.d.ts +21 -0
  32. package/dist/sharedUtils/components/dbTypes.d.ts +11 -0
  33. package/dist/sharedUtils/components/diff_drawer.d.ts +26 -0
  34. package/dist/sharedUtils/components/ducklake.d.ts +1 -0
  35. package/dist/sharedUtils/components/flows/scheduleUtils.d.ts +7 -0
  36. package/dist/sharedUtils/components/random_positive_adjetive.d.ts +1 -0
  37. package/dist/sharedUtils/components/raw_apps/rawAppPolicy.d.ts +10 -0
  38. package/dist/sharedUtils/components/raw_apps/utils.d.ts +15 -0
  39. package/dist/sharedUtils/components/triggers/email/utils.d.ts +4 -0
  40. package/dist/sharedUtils/components/triggers/gcp/utils.d.ts +2 -0
  41. package/dist/sharedUtils/components/triggers/http/utils.d.ts +11 -0
  42. package/dist/sharedUtils/components/triggers/kafka/utils.d.ts +2 -0
  43. package/dist/sharedUtils/components/triggers/mqtt/utils.d.ts +2 -0
  44. package/dist/sharedUtils/components/triggers/nats/utils.d.ts +2 -0
  45. package/dist/sharedUtils/components/triggers/postgres/utils.d.ts +8 -0
  46. package/dist/sharedUtils/components/triggers/sqs/utils.d.ts +2 -0
  47. package/dist/sharedUtils/components/triggers/triggers.svelte.d.ts +32 -0
  48. package/dist/sharedUtils/components/triggers/utils.d.ts +81 -0
  49. package/dist/sharedUtils/components/triggers/websocket/utils.d.ts +2 -0
  50. package/dist/sharedUtils/components/triggers.d.ts +20 -0
  51. package/dist/sharedUtils/gen/core/ApiError.d.ts +10 -0
  52. package/dist/sharedUtils/gen/core/ApiRequestOptions.d.ts +13 -0
  53. package/dist/sharedUtils/gen/core/ApiResult.d.ts +7 -0
  54. package/dist/sharedUtils/gen/core/CancelablePromise.d.ts +26 -0
  55. package/dist/sharedUtils/gen/core/OpenAPI.d.ts +27 -0
  56. package/dist/sharedUtils/gen/core/request.d.ts +29 -0
  57. package/dist/sharedUtils/gen/index.d.ts +6 -0
  58. package/dist/sharedUtils/gen/schemas.gen.d.ts +6192 -0
  59. package/dist/sharedUtils/gen/services.gen.d.ts +5741 -0
  60. package/dist/sharedUtils/gen/types.gen.d.ts +20152 -0
  61. package/dist/sharedUtils/history.svelte.d.ts +9 -0
  62. package/dist/sharedUtils/hub.d.ts +48 -0
  63. package/dist/sharedUtils/jsr.json +6 -0
  64. package/dist/sharedUtils/lib.d.ts +5 -0
  65. package/dist/sharedUtils/lib.es.js +1426 -0
  66. package/dist/sharedUtils/package.json +12 -0
  67. package/dist/sharedUtils/schema.d.ts +3 -0
  68. package/dist/sharedUtils/stores.d.ts +96 -0
  69. package/dist/sharedUtils/svelte5Utils.svelte.d.ts +49 -0
  70. package/dist/sharedUtils/toast.d.ts +8 -0
  71. package/dist/sharedUtils/utils.d.ts +250 -0
  72. package/package/assets/tokens/tokens.json +11 -1
  73. package/package/ata/apis.js +78 -5
  74. package/package/components/AddUser.svelte +1 -1
  75. package/package/components/CenteredModal.svelte +32 -24
  76. package/package/components/CenteredModal.svelte.d.ts +7 -27
  77. package/package/components/CenteredPage.svelte +5 -2
  78. package/package/components/CenteredPage.svelte.d.ts +2 -0
  79. package/package/components/ConcurrentJobsChart.svelte +3 -2
  80. package/package/components/ConcurrentJobsChart.svelte.d.ts +2 -2
  81. package/package/components/CustomPopover.svelte +20 -23
  82. package/package/components/CustomPopover.svelte.d.ts +14 -39
  83. package/package/components/DBManager.svelte +105 -17
  84. package/package/components/DBManager.svelte.d.ts +2 -1
  85. package/package/components/DBManagerContent.svelte +4 -3
  86. package/package/components/DBManagerContent.svelte.d.ts +1 -1
  87. package/package/components/DBTableEditor.svelte +210 -171
  88. package/package/components/DBTableEditor.svelte.d.ts +22 -3
  89. package/package/components/Description.svelte +3 -2
  90. package/package/components/Dev.svelte +36 -2
  91. package/package/components/DiffDrawer.svelte +8 -29
  92. package/package/components/DiffEditor.svelte +32 -2
  93. package/package/components/DisplayResult.svelte +32 -24
  94. package/package/components/Editor.svelte +70 -16
  95. package/package/components/Editor.svelte.d.ts +3 -0
  96. package/package/components/EditorBar.svelte +1 -1
  97. package/package/components/FakeMonacoPlaceHolder.svelte +1 -1
  98. package/package/components/FlowBuilder.svelte +17 -11
  99. package/package/components/FlowDiffViewer.svelte +37 -0
  100. package/package/components/FlowDiffViewer.svelte.d.ts +7 -0
  101. package/package/components/FlowPreviewContent.svelte +3 -2
  102. package/package/components/FlowPreviewResult.svelte +0 -4
  103. package/package/components/FlowStatusViewerInner.svelte +50 -33
  104. package/package/components/FlowStatusViewerInner.svelte.d.ts +1 -1
  105. package/package/components/FlowStatusWaitingForEvents.svelte +27 -23
  106. package/package/components/FlowStatusWaitingForEvents.svelte.d.ts +4 -18
  107. package/package/components/FlowViewer.svelte +103 -2
  108. package/package/components/FlowViewer.svelte.d.ts +9 -3
  109. package/package/components/ForkWorkspaceBanner.svelte +16 -13
  110. package/package/components/GraphqlSchemaViewer.svelte +8 -1
  111. package/package/components/HistoricInputs.svelte +25 -27
  112. package/package/components/HistoricInputs.svelte.d.ts +2 -2
  113. package/package/components/InstanceSetting.svelte +38 -0
  114. package/package/components/InviteUser.svelte +16 -42
  115. package/package/components/InviteUser.svelte.d.ts +4 -18
  116. package/package/components/JobOtelTraces.svelte +287 -0
  117. package/package/components/JobOtelTraces.svelte.d.ts +6 -0
  118. package/package/components/JsonInputs.svelte +6 -8
  119. package/package/components/JsonInputs.svelte.d.ts +7 -8
  120. package/package/components/LogViewer.svelte +91 -33
  121. package/package/components/Login.svelte +21 -0
  122. package/package/components/ManualPopover.svelte +5 -6
  123. package/package/components/ManualPopover.svelte.d.ts +9 -35
  124. package/package/components/MemoryFootprintViewer.svelte +2 -6
  125. package/package/components/ModulePreview.svelte +23 -21
  126. package/package/components/ModulePreview.svelte.d.ts +1 -0
  127. package/package/components/Path.svelte +2 -2
  128. package/package/components/Path.svelte.d.ts +1 -1
  129. package/package/components/ResourcePicker.svelte +3 -0
  130. package/package/components/ResourcePicker.svelte.d.ts +1 -0
  131. package/package/components/RunButton.svelte +5 -15
  132. package/package/components/RunButton.svelte.d.ts +7 -19
  133. package/package/components/RunChart.svelte +8 -4
  134. package/package/components/RunChart.svelte.d.ts +2 -2
  135. package/package/components/RunFormAdvancedPopup.svelte +1 -1
  136. package/package/components/RunsPage.svelte +169 -539
  137. package/package/components/RunsPage.svelte.d.ts +5 -5
  138. package/package/components/S3FilePicker.svelte +7 -11
  139. package/package/components/S3FilePickerInner.svelte +2 -3
  140. package/package/components/S3FilePickerInner.svelte.d.ts +2 -2
  141. package/package/components/SchemaForm.svelte +26 -19
  142. package/package/components/SchemaFormWithArgPicker.svelte +4 -3
  143. package/package/components/ScriptBuilder.svelte +1 -1
  144. package/package/components/ScriptEditor.svelte +575 -101
  145. package/package/components/Section.svelte +3 -1
  146. package/package/components/ServiceLogsInner.svelte +4 -4
  147. package/package/components/SimpleEditor.svelte +46 -2
  148. package/package/components/SuperadminSettingsInner.svelte +1 -1
  149. package/package/components/TemplateEditor.svelte +54 -29
  150. package/package/components/TemplateEditor.svelte.d.ts +13 -102
  151. package/package/components/UserSettings.svelte +1 -1
  152. package/package/components/WorkerTagPicker.svelte +1 -1
  153. package/package/components/WorkerTagSelect.svelte +5 -2
  154. package/package/components/WorkspaceTutorials.svelte +5 -0
  155. package/package/components/apps/components/buttons/AppButton.svelte +21 -6
  156. package/package/components/apps/components/buttons/AppForm.svelte +2 -1
  157. package/package/components/apps/components/buttons/AppFormButton.svelte +2 -1
  158. package/package/components/apps/components/display/dbtable/AppDbExplorer.svelte +0 -4
  159. package/package/components/apps/components/display/dbtable/metadata.js +69 -30
  160. package/package/components/apps/components/display/dbtable/queries/alterTable.d.ts +46 -0
  161. package/package/components/apps/components/display/dbtable/queries/alterTable.js +314 -0
  162. package/package/components/apps/components/display/dbtable/queries/alterTable.test.d.ts +1 -0
  163. package/package/components/apps/components/display/dbtable/queries/alterTable.test.js +867 -0
  164. package/package/components/apps/components/display/dbtable/queries/createTable.d.ts +2 -24
  165. package/package/components/apps/components/display/dbtable/queries/createTable.js +11 -25
  166. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.d.ts +9 -0
  167. package/package/components/apps/components/display/dbtable/queries/dbQueriesUtils.js +45 -0
  168. package/package/components/apps/components/display/dbtable/queries/relationalKeys.d.ts +47 -0
  169. package/package/components/apps/components/display/dbtable/queries/relationalKeys.js +402 -0
  170. package/package/components/apps/components/display/dbtable/queries/select.d.ts +2 -0
  171. package/package/components/apps/components/display/dbtable/queries/select.js +37 -6
  172. package/package/components/apps/components/display/dbtable/tableEditor.d.ts +35 -0
  173. package/package/components/apps/components/display/dbtable/tableEditor.js +49 -0
  174. package/package/components/apps/components/display/dbtable/utils.d.ts +10 -1
  175. package/package/components/apps/components/display/dbtable/utils.js +52 -20
  176. package/package/components/apps/components/helpers/HiddenComponent.svelte +1 -1
  177. package/package/components/apps/components/helpers/InputValue.svelte +1 -1
  178. package/package/components/apps/components/helpers/ResolveConfig.svelte +1 -1
  179. package/package/components/apps/components/helpers/RunnableComponent.svelte +3 -2
  180. package/package/components/apps/components/helpers/RunnableComponent.svelte.d.ts +1 -1
  181. package/package/components/apps/components/helpers/RunnableWrapper.svelte +2 -2
  182. package/package/components/apps/editor/AppEditorHeader.svelte +8 -1
  183. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte +32 -29
  184. package/package/components/apps/editor/AppEditorHeaderDeploy.svelte.d.ts +2 -2
  185. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte +4 -4
  186. package/package/components/apps/editor/AppEditorHeaderDeployInitialDraft.svelte.d.ts +3 -3
  187. package/package/components/apps/editor/PublicApp.svelte +49 -30
  188. package/package/components/apps/editor/PublicApp.svelte.d.ts +1 -0
  189. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte +77 -7
  190. package/package/components/apps/editor/inlineScriptsPanel/InlineScriptRunnableByPath.svelte.d.ts +2 -2
  191. package/package/components/apps/editor/inlineScriptsPanel/utils.d.ts +2 -2
  192. package/package/components/apps/editor/inlineScriptsPanel/utils.js +10 -1
  193. package/package/components/apps/inputType.d.ts +6 -1
  194. package/package/components/auditLogs/AuditLogsFilters.svelte +9 -17
  195. package/package/components/auditLogs/AuditLogsFilters.svelte.d.ts +1 -1
  196. package/package/components/common/button/model.js +1 -1
  197. package/package/components/common/calendarPicker/CalendarPicker.svelte.d.ts +1 -1
  198. package/package/components/common/languageIcons/TypeScript.svelte +5 -3
  199. package/package/components/common/languageIcons/TypeScript.svelte.d.ts +1 -0
  200. package/package/components/common/modal/Modal.svelte +3 -3
  201. package/package/components/copilot/autocomplete/Autocompletor.js +3 -2
  202. package/package/components/copilot/chat/AIButtonStyle.d.ts +1 -1
  203. package/package/components/copilot/chat/AIButtonStyle.js +2 -1
  204. package/package/components/copilot/chat/AIChat.svelte +3 -1
  205. package/package/components/copilot/chat/AIChatDisplay.svelte +89 -4
  206. package/package/components/copilot/chat/AIChatInput.svelte +275 -0
  207. package/package/components/copilot/chat/AIChatManager.svelte.js +107 -1
  208. package/package/components/copilot/chat/AiChatLayout.svelte +15 -30
  209. package/package/components/copilot/chat/AppAvailableContextList.svelte +263 -0
  210. package/package/components/copilot/chat/AppAvailableContextList.svelte.d.ts +13 -0
  211. package/package/components/copilot/chat/ContextElementBadge.svelte +44 -0
  212. package/package/components/copilot/chat/DatatableCreationPolicy.svelte +32 -33
  213. package/package/components/copilot/chat/ProviderModelSelector.svelte +1 -1
  214. package/package/components/copilot/chat/__tests__/app/appEvalHelpers.js +3 -0
  215. package/package/components/copilot/chat/__tests__/flow/flowEvalHelpers.js +4 -0
  216. package/package/components/copilot/chat/app/core.d.ts +56 -15
  217. package/package/components/copilot/chat/app/core.js +141 -22
  218. package/package/components/copilot/chat/context.d.ts +59 -2
  219. package/package/components/copilot/chat/context.js +6 -2
  220. package/package/components/copilot/chat/flow/FlowAIChat.svelte +22 -0
  221. package/package/components/copilot/chat/flow/core.d.ts +3 -1
  222. package/package/components/copilot/chat/flow/core.js +29 -2
  223. package/package/components/copilot/chat/flow/openFlow.json +1 -1
  224. package/package/components/copilot/chat/flow/openFlowZod.d.ts +1 -0
  225. package/package/components/copilot/chat/flow/openFlowZod.js +14 -2
  226. package/package/components/copilot/chat/script/core.d.ts +4 -1
  227. package/package/components/copilot/chat/script/core.js +38 -2
  228. package/package/components/copilot/chat/shared.d.ts +10 -0
  229. package/package/components/copilot/chat/shared.js +24 -0
  230. package/package/components/copilot/lib.d.ts +1 -1
  231. package/package/components/custom_ui.d.ts +1 -0
  232. package/package/components/dbOps.d.ts +18 -4
  233. package/package/components/dbOps.js +25 -3
  234. package/package/components/debug/DebugConsole.svelte +277 -0
  235. package/package/components/debug/DebugConsole.svelte.d.ts +13 -0
  236. package/package/components/debug/DebugPanel.svelte +97 -0
  237. package/package/components/debug/DebugPanel.svelte.d.ts +11 -0
  238. package/package/components/debug/DebugToolbar.svelte +148 -0
  239. package/package/components/debug/DebugToolbar.svelte.d.ts +17 -0
  240. package/package/components/debug/DebugVariableViewer.svelte +115 -0
  241. package/package/components/debug/DebugVariableViewer.svelte.d.ts +11 -0
  242. package/package/components/debug/MonacoDebugger.svelte +384 -0
  243. package/package/components/debug/MonacoDebugger.svelte.d.ts +15 -0
  244. package/package/components/debug/dapClient.d.ts +192 -0
  245. package/package/components/debug/dapClient.js +426 -0
  246. package/package/components/debug/debugUtils.d.ts +30 -0
  247. package/package/components/debug/debugUtils.js +131 -0
  248. package/package/components/debug/index.d.ts +75 -0
  249. package/package/components/debug/index.js +82 -0
  250. package/package/components/flows/CreateActionsApp.svelte +6 -4
  251. package/package/components/flows/DebounceLimit.svelte.d.ts +1 -1
  252. package/package/components/flows/FlowHistoryInner.svelte +15 -4
  253. package/package/components/flows/content/AgentToolWrapper.svelte +1 -1
  254. package/package/components/flows/content/FlowEditorDrawer.svelte +124 -0
  255. package/package/components/flows/content/FlowEditorDrawer.svelte.d.ts +22 -0
  256. package/package/components/flows/content/FlowInput.svelte +211 -37
  257. package/package/components/flows/content/FlowModuleComponent.svelte +553 -67
  258. package/package/components/flows/content/FlowModuleEarlyStop.svelte +8 -10
  259. package/package/components/flows/content/FlowModuleHeader.svelte +7 -4
  260. package/package/components/flows/content/FlowModuleWorkerTagSelect.svelte +1 -1
  261. package/package/components/flows/content/McpOAuthConnect.svelte +217 -0
  262. package/package/components/flows/content/McpOAuthConnect.svelte.d.ts +7 -0
  263. package/package/components/flows/content/McpToolEditor.svelte +50 -37
  264. package/package/components/flows/content/McpToolEditor.svelte.d.ts +0 -1
  265. package/package/components/flows/conversations/FlowChat.svelte +16 -2
  266. package/package/components/flows/conversations/FlowChat.svelte.d.ts +2 -1
  267. package/package/components/flows/conversations/FlowChatInterface.svelte +103 -6
  268. package/package/components/flows/conversations/FlowChatInterface.svelte.d.ts +2 -0
  269. package/package/components/flows/conversations/FlowChatManager.svelte.js +53 -21
  270. package/package/components/flows/header/FlowImportExportMenu.svelte +1 -1
  271. package/package/components/flows/propPicker/PropPickerWrapper.svelte +3 -1
  272. package/package/components/flows/types.d.ts +2 -0
  273. package/package/components/git_sync/GitSyncRepositoryCard.svelte +16 -8
  274. package/package/components/home/ItemsList.svelte +5 -5
  275. package/package/components/home/TutorialBanner.svelte +34 -18
  276. package/package/components/icons/CssIcon.svelte +20 -0
  277. package/package/components/icons/CssIcon.svelte.d.ts +7 -25
  278. package/package/components/icons/HtmlIcon.svelte +20 -0
  279. package/package/components/icons/HtmlIcon.svelte.d.ts +8 -0
  280. package/package/components/icons/JavaScriptIcon.svelte +10 -2
  281. package/package/components/icons/JavaScriptIcon.svelte.d.ts +1 -0
  282. package/package/components/icons/JsonIcon.svelte +8 -2
  283. package/package/components/icons/JsonIcon.svelte.d.ts +1 -0
  284. package/package/components/icons/LessIcon.svelte +16 -0
  285. package/package/components/icons/LessIcon.svelte.d.ts +8 -0
  286. package/package/components/icons/MarkdownIcon.svelte +20 -0
  287. package/package/components/icons/MarkdownIcon.svelte.d.ts +8 -0
  288. package/package/components/icons/ReactIcon.svelte +10 -2
  289. package/package/components/icons/ReactIcon.svelte.d.ts +1 -0
  290. package/package/components/icons/SassIcon.svelte +28 -0
  291. package/package/components/icons/SassIcon.svelte.d.ts +8 -0
  292. package/package/components/icons/SvelteIcon.svelte +10 -2
  293. package/package/components/icons/SvelteIcon.svelte.d.ts +1 -0
  294. package/package/components/icons/VueIcon.svelte +10 -2
  295. package/package/components/icons/VueIcon.svelte.d.ts +1 -0
  296. package/package/components/icons/YamlIcon.svelte +20 -0
  297. package/package/components/icons/YamlIcon.svelte.d.ts +8 -0
  298. package/package/components/instanceSettings/SecretBackendConfig.svelte +514 -0
  299. package/package/components/instanceSettings/SecretBackendConfig.svelte.d.ts +8 -0
  300. package/package/components/instanceSettings.d.ts +2 -1
  301. package/package/components/instanceSettings.js +32 -1
  302. package/package/components/jobs/JobPreview.svelte +46 -39
  303. package/package/components/jobs/JobPreview.svelte.d.ts +1 -0
  304. package/package/components/monacoLanguagesOptions.js +16 -15
  305. package/package/components/propertyPicker/PropPicker.svelte +16 -2
  306. package/package/components/propertyPicker/PropPicker.svelte.d.ts +2 -0
  307. package/package/components/raw_apps/DefaultDatabaseSelector.svelte +9 -5
  308. package/package/components/raw_apps/FileEditorIcon.svelte +12 -7
  309. package/package/components/raw_apps/FileEditorIcon.svelte.d.ts +2 -0
  310. package/package/components/raw_apps/FileTreeNode.svelte +119 -83
  311. package/package/components/raw_apps/RawAppBackgroundRunner.svelte +88 -8
  312. package/package/components/raw_apps/RawAppDataTableList.svelte +12 -9
  313. package/package/components/raw_apps/RawAppEditor.svelte +218 -68
  314. package/package/components/raw_apps/RawAppEditorHeader.svelte +33 -16
  315. package/package/components/raw_apps/RawAppHistoryList.svelte +264 -80
  316. package/package/components/raw_apps/RawAppHistoryList.svelte.d.ts +1 -0
  317. package/package/components/raw_apps/RawAppHistoryManager.svelte.d.ts +15 -1
  318. package/package/components/raw_apps/RawAppHistoryManager.svelte.js +46 -12
  319. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte +549 -47
  320. package/package/components/raw_apps/RawAppInlineScriptEditor.svelte.d.ts +31 -5
  321. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte +25 -18
  322. package/package/components/raw_apps/RawAppInlineScriptPanelList.svelte.d.ts +1 -0
  323. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte +141 -10
  324. package/package/components/raw_apps/RawAppInlineScriptRunnable.svelte.d.ts +8 -0
  325. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte +2 -1
  326. package/package/components/raw_apps/RawAppInlineScriptsPanel.svelte.d.ts +9 -1
  327. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte +47 -3
  328. package/package/components/raw_apps/RawAppInputsSpecEditor.svelte.d.ts +2 -2
  329. package/package/components/raw_apps/RawAppModules.svelte +13 -7
  330. package/package/components/raw_apps/RawAppPreview.svelte +48 -6
  331. package/package/components/raw_apps/RawAppSidebar.svelte +194 -125
  332. package/package/components/raw_apps/RawAppSidebar.svelte.d.ts +1 -0
  333. package/package/components/raw_apps/RunnableRow.svelte +41 -0
  334. package/package/components/raw_apps/RunnableRow.svelte.d.ts +11 -0
  335. package/package/components/raw_apps/utils.d.ts +1 -1
  336. package/package/components/raw_apps/utils.js +76 -18
  337. package/package/components/runs/ManuelDatePicker.svelte +3 -3
  338. package/package/components/runs/ManuelDatePicker.svelte.d.ts +3 -3
  339. package/package/components/runs/NoWorkerWithTagWarning.svelte +5 -1
  340. package/package/components/runs/RunsFilter.svelte +75 -63
  341. package/package/components/runs/RunsFilter.svelte.d.ts +35 -4
  342. package/package/components/runs/RunsQueue.svelte.d.ts +1 -1
  343. package/package/components/runs/RunsTable.svelte +1 -1
  344. package/package/components/runs/RunsTable.svelte.d.ts +1 -1
  345. package/package/components/runs/useJobsLoader.svelte.d.ts +34 -0
  346. package/package/components/runs/useJobsLoader.svelte.js +507 -0
  347. package/package/components/scriptEditor/LogPanel.svelte +17 -2
  348. package/package/components/scriptEditor/LogPanel.svelte.d.ts +2 -0
  349. package/package/components/select/SelectDropdown.svelte +2 -2
  350. package/package/components/settings/AIPromptsModal.svelte +88 -0
  351. package/package/components/settings/AIPromptsModal.svelte.d.ts +11 -0
  352. package/package/components/settings/ChangeWorkspaceColor.svelte +4 -3
  353. package/package/components/settings/ChangeWorkspaceId.svelte +14 -10
  354. package/package/components/settings/ChangeWorkspaceName.svelte +7 -6
  355. package/package/components/settings/UserAIPromptsSettings.svelte +56 -15
  356. package/package/components/settings/WorkspaceOperatorSettings.svelte +68 -85
  357. package/package/components/settings/WorkspaceUserSettings.svelte +531 -406
  358. package/package/components/sidebar/MenuButton.svelte +46 -24
  359. package/package/components/sidebar/MenuButton.svelte.d.ts +2 -0
  360. package/package/components/sidebar/MultiplayerMenu.svelte +3 -3
  361. package/package/components/sidebar/OperatorMenu.svelte +62 -87
  362. package/package/components/sidebar/SidebarContent.svelte +7 -2
  363. package/package/components/sidebar/WorkspaceMenu.svelte +35 -85
  364. package/package/components/sqlTypeService.js +4 -3
  365. package/package/components/table/DataTable.svelte +3 -2
  366. package/package/components/table/DataTable.svelte.d.ts +1 -0
  367. package/package/components/text_input/TextInput.svelte +3 -0
  368. package/package/components/text_input/TextInput.svelte.d.ts +2 -0
  369. package/package/components/tutorials/FlowBuilderLiveTutorial.svelte +6 -35
  370. package/package/components/tutorials/RunsTutorial.svelte +399 -0
  371. package/package/components/{schema/SchemaPicker.svelte.d.ts → tutorials/RunsTutorial.svelte.d.ts} +11 -12
  372. package/package/components/tutorials/TroubleshootFlowTutorial.svelte +5 -20
  373. package/package/components/tutorials/utils.d.ts +16 -0
  374. package/package/components/tutorials/utils.js +96 -0
  375. package/package/components/tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte +133 -0
  376. package/package/components/{SavedInputs.svelte.d.ts → tutorials/workspace/WorkspaceOnboardingOperatorTutorial.svelte.d.ts} +8 -11
  377. package/package/components/vscode.js +6 -6
  378. package/package/components/workspace/WorkspaceCard.svelte +184 -0
  379. package/package/components/workspace/WorkspaceCard.svelte.d.ts +24 -0
  380. package/package/components/workspace/WorkspaceIcon.svelte +21 -0
  381. package/package/components/workspace/WorkspaceIcon.svelte.d.ts +9 -0
  382. package/package/components/workspace/WorkspaceTreeView.svelte +331 -0
  383. package/package/components/workspace/WorkspaceTreeView.svelte.d.ts +15 -0
  384. package/package/components/workspaceSettings/AISettings.svelte +146 -108
  385. package/package/components/workspaceSettings/CreateWorkspace.svelte +25 -11
  386. package/package/components/workspaceSettings/DucklakeSettings.svelte +46 -23
  387. package/package/components/workspaceSettings/DucklakeSettings.svelte.d.ts +2 -1
  388. package/package/components/workspaceSettings/ModelTokenLimits.svelte +14 -18
  389. package/package/components/workspaceSettings/StorageSettings.svelte +280 -241
  390. package/package/components/workspaceSettings/StorageSettings.svelte.d.ts +1 -0
  391. package/package/consts.js +4 -1
  392. package/package/gen/core/OpenAPI.js +1 -1
  393. package/package/gen/schemas.gen.d.ts +126 -0
  394. package/package/gen/schemas.gen.js +126 -0
  395. package/package/gen/services.gen.d.ts +160 -2
  396. package/package/gen/services.gen.js +319 -4
  397. package/package/gen/types.gen.d.ts +607 -2
  398. package/package/hubPaths.json +3 -2
  399. package/package/infer.js +2 -0
  400. package/package/monaco_workers/graphql.worker.bundle.js +121 -121
  401. package/package/rawAppWmillTs.d.ts +11 -0
  402. package/package/rawAppWmillTs.js +38 -1
  403. package/package/svelte5Utils.svelte.d.ts +9 -0
  404. package/package/svelte5Utils.svelte.js +51 -1
  405. package/package/tutorialUtils.js +0 -4
  406. package/package/tutorials/config.js +31 -3
  407. package/package/tutorials/roleUtils.d.ts +1 -1
  408. package/package/tutorials/roleUtils.js +6 -2
  409. package/package/utils.js +159 -1
  410. package/package.json +16 -17
  411. package/package/components/SavedInputs.svelte +0 -416
  412. package/package/components/runs/JobsLoader.svelte +0 -468
  413. package/package/components/runs/JobsLoader.svelte.d.ts +0 -49
  414. package/package/components/schema/SchemaPicker.svelte +0 -92
@@ -0,0 +1,507 @@
1
+ import { onDestroy, onMount, untrack } from 'svelte';
2
+ import { JobService, ConcurrencyGroupsService, CancelablePromise, CancelError } from '../../gen';
3
+ import { sendUserToast } from '../../toast';
4
+ import { tweened } from 'svelte/motion';
5
+ import { subtractDaysFromDateString } from '../../utils';
6
+ import { CancelablePromiseUtils } from '../../cancelable-promise-utils';
7
+ export function computeJobKinds(jobKindsCat) {
8
+ if (jobKindsCat == 'all') {
9
+ return '';
10
+ }
11
+ else if (jobKindsCat == 'dependencies') {
12
+ let kinds = ['dependencies', 'flowdependencies', 'appdependencies'];
13
+ return kinds.join(',');
14
+ }
15
+ else if (jobKindsCat == 'previews') {
16
+ let kinds = ['preview', 'flowpreview'];
17
+ return kinds.join(',');
18
+ }
19
+ else if (jobKindsCat == 'deploymentcallbacks') {
20
+ let kinds = ['deploymentcallback'];
21
+ return kinds.join(',');
22
+ }
23
+ else if (jobKindsCat == 'runs') {
24
+ let kinds = ['script', 'flow', 'singlestepflow'];
25
+ return kinds.join(',');
26
+ }
27
+ else {
28
+ let kinds = [
29
+ 'script',
30
+ 'flow',
31
+ 'flowscript',
32
+ 'flownode',
33
+ 'appscript'
34
+ ];
35
+ return kinds.join(',');
36
+ }
37
+ }
38
+ export function useJobsLoader(args) {
39
+ let _args = $derived(args());
40
+ let currentWorkspace = $derived(_args.currentWorkspace);
41
+ let filters = $derived(_args.filters);
42
+ let jobKinds = $derived(_args.jobKinds);
43
+ let autoRefresh = $derived(_args.autoRefresh ?? true);
44
+ let argError = $derived(_args.argError ?? '');
45
+ let resultError = $derived(_args.resultError ?? '');
46
+ let refreshRate = $derived(_args.refreshRate ?? 5000);
47
+ let syncQueuedRunsCount = $derived(_args.syncQueuedRunsCount ?? true);
48
+ let computeMinAndMax = $derived(_args.computeMinAndMax);
49
+ let lookback = $derived(_args.lookback ?? 0);
50
+ let onSetMinMaxTs = $derived(_args.onSetMinMaxTs);
51
+ let onSetPerPage = $derived(_args.onSetPerPage);
52
+ let label = $derived(filters?.label ?? null);
53
+ let worker = $derived(filters?.worker ?? null);
54
+ let success = $derived(filters?.success ?? null);
55
+ let showSkipped = $derived(filters?.show_skipped ?? false);
56
+ let showSchedules = $derived(filters?.show_schedules ?? true);
57
+ let showFutureJobs = $derived(filters?.show_future_jobs ?? true);
58
+ let resultFilter = $derived(filters?.result);
59
+ let jobTriggerKind = $derived(filters?.job_trigger_kind ?? null);
60
+ let schedulePath = $derived(filters?.schedule_path ?? null);
61
+ let jobKindsCat = $derived(filters?.job_kinds ?? null);
62
+ let allWorkspaces = $derived(filters?.all_workspaces ?? false);
63
+ let allowWildcards = $derived(filters?.allow_wildcards ?? false);
64
+ let concurrencyKey = $derived(filters?.concurrency_key);
65
+ let tag = $derived(filters?.tag);
66
+ let user = $derived(filters?.user);
67
+ let folder = $derived(filters?.folder);
68
+ let path = $derived(filters?.path);
69
+ let argFilter = $derived(filters?.arg);
70
+ let minTs = $derived(filters?.min_ts ?? null);
71
+ let maxTs = $derived(filters?.max_ts ?? null);
72
+ let perPage = $derived(filters?.per_page ?? 100);
73
+ let queue_count = $state();
74
+ let suspended_count = $state();
75
+ let loading = $state(false);
76
+ let lastFetchWentToEnd = $state(false);
77
+ let completedJobs = $state();
78
+ let externalJobs = $state();
79
+ let extendedJobs = $state();
80
+ let jobs = $state();
81
+ let intervalId = $state();
82
+ let sync = true;
83
+ function onParamChanges() {
84
+ resetJobs();
85
+ let promise = loadJobsIntern(true);
86
+ promise = CancelablePromiseUtils.onTimeout(promise, 4000, () => {
87
+ sendUserToast('Loading jobs is taking longer than expected...', true, perPage > 25 && onSetPerPage
88
+ ? [{ label: 'Reduce to 25 items per page', callback: () => onSetPerPage(25) }]
89
+ : []);
90
+ });
91
+ promise = CancelablePromiseUtils.catchErr(promise, (e) => {
92
+ if (e instanceof CancelError) {
93
+ return CancelablePromiseUtils.pure(undefined);
94
+ }
95
+ return CancelablePromiseUtils.err(e);
96
+ });
97
+ return promise;
98
+ }
99
+ let loadingFetch = false;
100
+ async function loadExtraJobs() {
101
+ if (jobs && jobs.length > 0) {
102
+ let minQueueTs = undefined;
103
+ let minCompletedTs = undefined;
104
+ let cursor = 0;
105
+ while (jobs && cursor < jobs?.length) {
106
+ cursor++;
107
+ const job = jobs[jobs.length - 1 - cursor];
108
+ if (job.type == 'CompletedJob') {
109
+ minCompletedTs = job.completed_at;
110
+ break;
111
+ }
112
+ else if (job.type == 'QueuedJob' && minQueueTs == undefined) {
113
+ minQueueTs = job.created_at;
114
+ }
115
+ }
116
+ const ts = minCompletedTs ?? minQueueTs;
117
+ if (!ts) {
118
+ sendUserToast('No jobs to load from');
119
+ lastFetchWentToEnd = false;
120
+ return;
121
+ }
122
+ // const minCreated = lastJob?.created_at
123
+ const minCreated = new Date(new Date(ts).getTime() - 1).toISOString();
124
+ let olderJobs = await fetchJobs(minCreated, minTs, undefined);
125
+ jobs = updateWithNewJobs(olderJobs ?? [], jobs ?? []);
126
+ computeCompletedJobs();
127
+ lastFetchWentToEnd = olderJobs?.length < perPage;
128
+ }
129
+ else {
130
+ lastFetchWentToEnd = false;
131
+ }
132
+ }
133
+ function fetchJobs(completedBefore, completedAfter, createdAfterQueue) {
134
+ if (_args.skip)
135
+ return CancelablePromiseUtils.pure([]);
136
+ loadingFetch = true;
137
+ let scriptPathStart = folder === null || folder === '' ? undefined : `f/${folder}/`;
138
+ let scriptPathExact = path === null || path === '' ? undefined : path;
139
+ let promise = JobService.listJobs({
140
+ workspace: currentWorkspace,
141
+ completedBefore: completedBefore ?? undefined,
142
+ completedAfter: completedAfter ?? undefined,
143
+ createdAfterQueue,
144
+ schedulePath: schedulePath ?? undefined,
145
+ scriptPathExact,
146
+ createdBy: user === null || user === '' ? undefined : user,
147
+ scriptPathStart: scriptPathStart,
148
+ jobKinds: jobKindsCat == 'all' || jobKinds == '' ? undefined : jobKinds,
149
+ success: success == 'success' ? true : success == 'failure' ? false : undefined,
150
+ running: success == 'running' || success == 'suspended'
151
+ ? true
152
+ : success == 'waiting'
153
+ ? false
154
+ : undefined,
155
+ isSkipped: showSkipped ? undefined : false,
156
+ // isFlowStep: jobKindsCat != 'all' ? false : undefined,
157
+ hasNullParent: jobKindsCat != 'all' ? true : undefined,
158
+ label: label === null || label === '' ? undefined : label,
159
+ tag: tag === null || tag === '' ? undefined : tag,
160
+ worker: worker === null || worker === '' ? undefined : worker,
161
+ isNotSchedule: showSchedules == false ? true : undefined,
162
+ suspended: success == 'waiting' ? false : success == 'suspended' ? true : undefined,
163
+ scheduledForBeforeNow: showFutureJobs == false || success == 'waiting' || success == 'suspended'
164
+ ? true
165
+ : undefined,
166
+ args: argFilter && argFilter != '{}' && argFilter != '' && argError == '' ? argFilter : undefined,
167
+ result: resultFilter && resultFilter != '{}' && resultFilter != '' && resultError == ''
168
+ ? resultFilter
169
+ : undefined,
170
+ triggerKind: jobTriggerKind ?? undefined,
171
+ allWorkspaces: allWorkspaces ? true : undefined,
172
+ perPage,
173
+ allowWildcards: allowWildcards ? true : undefined
174
+ });
175
+ promise = CancelablePromiseUtils.catchErr(promise, (e) => {
176
+ if (e instanceof CancelError)
177
+ return CancelablePromiseUtils.err(e);
178
+ sendUserToast('There was an issue loading jobs, see browser console for more details', true);
179
+ console.error(e);
180
+ return CancelablePromiseUtils.pure([]);
181
+ });
182
+ CancelablePromiseUtils.pipe(promise, () => {
183
+ loadingFetch = false;
184
+ });
185
+ return promise;
186
+ }
187
+ function fetchExtendedJobs(concurrencyKey, createdBeforeQueue, completedAfter) {
188
+ if (_args.skip)
189
+ return CancelablePromiseUtils.pure({ jobs: [], obscured_jobs: [] });
190
+ loadingFetch = true;
191
+ let promise = ConcurrencyGroupsService.listExtendedJobs({
192
+ rowLimit: perPage,
193
+ concurrencyKey: concurrencyKey == null || concurrencyKey == '' ? undefined : concurrencyKey,
194
+ workspace: currentWorkspace,
195
+ completedAfter: completedAfter ?? undefined,
196
+ createdBeforeQueue: createdBeforeQueue ?? undefined,
197
+ // createdOrStartedBefore: startedBefore,
198
+ // createdOrStartedAfter: startedAfter,
199
+ // createdOrStartedAfterCompletedJobs: startedAfterCompletedJobs,
200
+ schedulePath: schedulePath ?? undefined,
201
+ scriptPathExact: path === null || path === '' ? undefined : path,
202
+ createdBy: user === null || user === '' ? undefined : user,
203
+ scriptPathStart: folder === null || folder === '' ? undefined : `f/${folder}/`,
204
+ jobKinds: jobKindsCat == 'all' || jobKinds == '' ? undefined : jobKinds,
205
+ success: success == 'success' ? true : success == 'failure' ? false : undefined,
206
+ running: success == 'running' ? true : undefined,
207
+ isSkipped: showSkipped ? undefined : false,
208
+ isFlowStep: jobKindsCat != 'all' ? false : undefined,
209
+ label: label === null || label === '' ? undefined : label,
210
+ tag: tag === null || tag === '' ? undefined : tag,
211
+ isNotSchedule: showSchedules == false ? true : undefined,
212
+ scheduledForBeforeNow: showFutureJobs == false ? true : undefined,
213
+ args: argFilter && argFilter != '{}' && argFilter != '' && argError == '' ? argFilter : undefined,
214
+ result: resultFilter && resultFilter != '{}' && resultFilter != '' && resultError == ''
215
+ ? resultFilter
216
+ : undefined,
217
+ triggerKind: jobTriggerKind ?? undefined,
218
+ allWorkspaces: allWorkspaces ? true : undefined,
219
+ perPage,
220
+ allowWildcards
221
+ });
222
+ promise = CancelablePromiseUtils.catchErr(promise, (e) => {
223
+ sendUserToast('There was an issue loading jobs, see browser console for more details', true);
224
+ console.error(e);
225
+ return CancelablePromiseUtils.pure({ jobs: [], obscured_jobs: [] });
226
+ });
227
+ promise = CancelablePromiseUtils.pipe(promise, () => {
228
+ loadingFetch = false;
229
+ });
230
+ return promise;
231
+ }
232
+ async function loadJobs(reset, shouldGetCount) {
233
+ if (reset)
234
+ resetJobs();
235
+ await loadJobsIntern(shouldGetCount);
236
+ }
237
+ function resetJobs() {
238
+ jobs = undefined;
239
+ completedJobs = undefined;
240
+ externalJobs = undefined;
241
+ extendedJobs = undefined;
242
+ lastFetchWentToEnd = false;
243
+ intervalId && clearInterval(intervalId);
244
+ intervalId = setInterval(syncer, refreshRate);
245
+ }
246
+ function loadJobsIntern(shouldGetCount) {
247
+ if (shouldGetCount) {
248
+ getCount();
249
+ }
250
+ loading = true;
251
+ // Extend MinTs to fetch jobs mefore minTs and show a correct concurrency graph
252
+ // TODO: when an ended_at column is created on the completed_job table,
253
+ // lookback won't be needed anymore (just filter ended_at > minTs instead
254
+ const extendedMinTs = subtractDaysFromDateString(minTs, lookback);
255
+ if (concurrencyKey == null || concurrencyKey === '') {
256
+ return CancelablePromiseUtils.map(fetchJobs(maxTs, null, extendedMinTs), (newJobs) => {
257
+ extendedJobs = { jobs: newJobs, obscured_jobs: [] };
258
+ // Filter on minTs here and not in the backend
259
+ // to get enough data for the concurrency graph
260
+ jobs = sortMinDate(minTs, newJobs);
261
+ externalJobs = [];
262
+ computeCompletedJobs();
263
+ loading = false;
264
+ });
265
+ }
266
+ else {
267
+ return CancelablePromiseUtils.map(fetchExtendedJobs(concurrencyKey, maxTs, extendedMinTs ?? null), (newExtendedJobs) => {
268
+ extendedJobs = newExtendedJobs;
269
+ const newJobs = newExtendedJobs.jobs;
270
+ const newExternalJobs = newExtendedJobs.obscured_jobs;
271
+ // Filter on minTs here and not in the backend
272
+ // to get enough data for the concurrency graph
273
+ if (minTs != undefined) {
274
+ const minDate = new Date(minTs);
275
+ jobs = newJobs.filter((x) => x.started_at
276
+ ? new Date(x.started_at) > minDate
277
+ : x.created_at
278
+ ? new Date(x.created_at) > minDate
279
+ : false);
280
+ externalJobs = computeExternalJobs(newExternalJobs.filter((x) => x.started_at && new Date(x.started_at) > minDate));
281
+ }
282
+ else {
283
+ jobs = newJobs;
284
+ externalJobs = computeExternalJobs(newExternalJobs);
285
+ }
286
+ computeCompletedJobs();
287
+ loading = false;
288
+ });
289
+ }
290
+ }
291
+ async function getCount() {
292
+ if (_args.skip)
293
+ return;
294
+ const { database_length, suspended } = await JobService.getQueueCount({
295
+ workspace: currentWorkspace,
296
+ allWorkspaces
297
+ });
298
+ if (queue_count) {
299
+ queue_count.set(database_length);
300
+ }
301
+ else {
302
+ queue_count = tweened(database_length, { duration: 1000 });
303
+ }
304
+ if (suspended_count) {
305
+ suspended_count.set(suspended ?? 0);
306
+ }
307
+ else {
308
+ suspended_count = tweened(suspended ?? 0, { duration: 1000 });
309
+ }
310
+ }
311
+ let lastQueueTs = undefined;
312
+ async function syncer() {
313
+ if (success == 'waiting') {
314
+ onSetMinMaxTs?.(null, null);
315
+ }
316
+ if (loadingFetch) {
317
+ return;
318
+ }
319
+ if (sync) {
320
+ if (syncQueuedRunsCount) {
321
+ getCount();
322
+ }
323
+ const ts = computeMinAndMax?.();
324
+ if (ts) {
325
+ onSetMinMaxTs?.(ts.minTs, ts.maxTs);
326
+ if (maxTs != undefined) {
327
+ loadJobsIntern(false);
328
+ }
329
+ }
330
+ if (jobs && maxTs == undefined) {
331
+ if (success == 'running') {
332
+ loadJobsIntern(false);
333
+ }
334
+ else {
335
+ let minQueueCreatedAt = undefined;
336
+ let completedTs = null;
337
+ let cursor = 0;
338
+ if (minTs == undefined) {
339
+ while (cursor < jobs.length) {
340
+ const cjob = jobs[cursor];
341
+ if (cjob.type == 'QueuedJob') {
342
+ minQueueCreatedAt = cjob.created_at;
343
+ }
344
+ else if (cjob.type == 'CompletedJob' && completedTs == undefined) {
345
+ completedTs = new Date(cjob.completed_at).toISOString();
346
+ }
347
+ cursor++;
348
+ }
349
+ }
350
+ let queueTs;
351
+ if (minQueueCreatedAt) {
352
+ const queueTs = new Date(minQueueCreatedAt).toISOString();
353
+ lastQueueTs = queueTs;
354
+ }
355
+ else {
356
+ queueTs = lastQueueTs;
357
+ }
358
+ loading = true;
359
+ let newJobs;
360
+ if (concurrencyKey == null || concurrencyKey === '') {
361
+ newJobs = await fetchJobs(maxTs, minTs ?? completedTs, queueTs);
362
+ }
363
+ else {
364
+ // Obscured jobs have no ids, so we have to do the full request
365
+ extendedJobs = await fetchExtendedJobs(concurrencyKey, maxTs, minTs ?? completedTs);
366
+ externalJobs = computeExternalJobs(extendedJobs.obscured_jobs);
367
+ // Filter on minTs here and not in the backend
368
+ // to get enough data for the concurrency graph
369
+ newJobs = sortMinDate(minTs ?? completedTs, extendedJobs.jobs);
370
+ }
371
+ if (newJobs && newJobs.length > 0 && jobs) {
372
+ jobs = updateWithNewJobs(jobs, newJobs);
373
+ if (concurrencyKey == null || concurrencyKey === '') {
374
+ if (!extendedJobs) {
375
+ extendedJobs = { jobs: jobs, obscured_jobs: [] };
376
+ }
377
+ else {
378
+ extendedJobs.jobs = updateWithNewJobs(extendedJobs.jobs, newJobs);
379
+ extendedJobs = extendedJobs;
380
+ }
381
+ externalJobs = [];
382
+ }
383
+ computeCompletedJobs();
384
+ }
385
+ loading = false;
386
+ }
387
+ }
388
+ }
389
+ }
390
+ function updateWithNewJobs(jobs, newJobs) {
391
+ const oldJobs = jobs?.map((x) => x.id);
392
+ let ret = newJobs.filter((x) => !oldJobs.includes(x.id)).concat(jobs);
393
+ newJobs
394
+ .filter((x) => oldJobs.includes(x.id))
395
+ .forEach((x) => (ret[ret?.findIndex((y) => y.id == x.id)] = x));
396
+ return ret;
397
+ }
398
+ function sortMinDate(minTs, jobs) {
399
+ if (minTs) {
400
+ const minDate = new Date(minTs);
401
+ return jobs.filter((x) => x.started_at
402
+ ? new Date(x.started_at) > minDate
403
+ : x.created_at
404
+ ? new Date(x.created_at) > minDate
405
+ : false);
406
+ }
407
+ else {
408
+ return jobs;
409
+ }
410
+ }
411
+ function computeCompletedJobs() {
412
+ completedJobs =
413
+ jobs?.filter((x) => x.type == 'CompletedJob').map((x) => x) ?? [];
414
+ }
415
+ function onVisibilityChange() {
416
+ if (document.hidden) {
417
+ sync = false;
418
+ }
419
+ else {
420
+ sync = true;
421
+ }
422
+ }
423
+ function computeExternalJobs(obscuredJobs) {
424
+ return obscuredJobs.map((x) => ({
425
+ type: x.typ,
426
+ started_at: x.started_at,
427
+ running: x.started_at != undefined,
428
+ id: '-',
429
+ script_path: '-',
430
+ created_by: '-',
431
+ created_at: '-',
432
+ success: false,
433
+ canceled: false,
434
+ is_flow_step: false,
435
+ is_skipped: false,
436
+ visible_to_owner: false,
437
+ email: '-',
438
+ permissioned_as: '-',
439
+ tag: '-',
440
+ job_kind: 'script',
441
+ duration_ms: x.duration_ms
442
+ }));
443
+ }
444
+ onMount(() => {
445
+ document.addEventListener('visibilitychange', onVisibilityChange);
446
+ return () => {
447
+ window.removeEventListener('visibilitychange', onVisibilityChange);
448
+ };
449
+ });
450
+ onDestroy(() => {
451
+ sync = false;
452
+ if (intervalId) {
453
+ clearInterval(intervalId);
454
+ }
455
+ });
456
+ $effect(() => {
457
+ Object.keys(filters ?? {}).map((k) => filters?.[k]);
458
+ let p = untrack(() => onParamChanges());
459
+ return () => p.cancel();
460
+ });
461
+ $effect(() => {
462
+ ;
463
+ [autoRefresh, refreshRate];
464
+ untrack(() => {
465
+ if (!intervalId && autoRefresh) {
466
+ intervalId = setInterval(syncer, refreshRate);
467
+ }
468
+ });
469
+ });
470
+ $effect(() => {
471
+ autoRefresh;
472
+ untrack(() => {
473
+ if (intervalId && !autoRefresh) {
474
+ clearInterval(intervalId);
475
+ intervalId = undefined;
476
+ }
477
+ });
478
+ });
479
+ return {
480
+ loadExtraJobs,
481
+ loadJobs,
482
+ get queue_count() {
483
+ return queue_count;
484
+ },
485
+ get suspended_count() {
486
+ return suspended_count;
487
+ },
488
+ get loading() {
489
+ return loading;
490
+ },
491
+ get completedJobs() {
492
+ return completedJobs;
493
+ },
494
+ get externalJobs() {
495
+ return externalJobs;
496
+ },
497
+ get extendedJobs() {
498
+ return extendedJobs;
499
+ },
500
+ get jobs() {
501
+ return jobs;
502
+ },
503
+ get lastFetchWentToEnd() {
504
+ return lastFetchWentToEnd;
505
+ }
506
+ };
507
+ }
@@ -14,13 +14,14 @@ import { Pane, Splitpanes } from 'svelte-splitpanes';
14
14
  import SplitPanesWrapper from '../splitPanes/SplitPanesWrapper.svelte';
15
15
  import { CheckCircle2, Loader2, XCircle } from 'lucide-svelte';
16
16
  import ScriptFix from '../copilot/ScriptFix.svelte';
17
+ import JobOtelTraces from '../JobOtelTraces.svelte';
17
18
  import Cell from '../table/Cell.svelte';
18
19
  import DataTable from '../table/DataTable.svelte';
19
20
  import Head from '../table/Head.svelte';
20
21
  import WorkflowTimeline from '../WorkflowTimeline.svelte';
21
22
  import Tooltip from '../Tooltip.svelte';
22
23
  import { getStringError } from '../copilot/chat/utils';
23
- let { lang, previewIsLoading = false, previewJob, pastPreviews = [], editor = undefined, diffEditor = undefined, args = undefined, workspace = undefined, showCaptures = false, customUi = undefined, children, capturesTab } = $props();
24
+ let { lang, previewIsLoading = false, previewJob, pastPreviews = [], editor = undefined, diffEditor = undefined, args = undefined, workspace = undefined, showCaptures = false, customUi = undefined, children, capturesTab, customResultPanel, showCustomResultPanel = false } = $props();
24
25
  let selectedTab = $state('logs');
25
26
  let drawerOpen = $state(false);
26
27
  let drawerContent = $state(undefined);
@@ -70,6 +71,7 @@ let forceJson = $state(false);
70
71
  {#if showCaptures && customUi?.disableTriggerCaptures !== true}
71
72
  <Tab value="captures" label="Trigger captures" />
72
73
  {/if}
74
+ <Tab value="tracing" label="Tracing" />
73
75
 
74
76
  {#snippet content()}
75
77
  <div class="grow min-h-0">
@@ -98,7 +100,11 @@ let forceJson = $state(false);
98
100
  </Pane>
99
101
  <Pane>
100
102
  {@render children?.()}
101
- {#if previewJob != undefined && (previewJob.result_stream || previewJob.result)}
103
+ {#if showCustomResultPanel && customResultPanel}
104
+ <div class="h-full">
105
+ {@render customResultPanel()}
106
+ </div>
107
+ {:else if previewJob != undefined && (previewJob.result_stream || previewJob.result)}
102
108
  <div class="relative w-full h-full p-2">
103
109
  <div class="relative h-full">
104
110
  <DisplayResult
@@ -237,6 +243,15 @@ let forceJson = $state(false);
237
243
  {#if selectedTab === 'captures'}
238
244
  {@render capturesTab?.()}
239
245
  {/if}
246
+ {#if selectedTab === 'tracing'}
247
+ {#if previewJob?.id}
248
+ <JobOtelTraces jobId={previewJob.id} />
249
+ {:else}
250
+ <div class="p-4 text-secondary">
251
+ Run a preview to see HTTP request traces
252
+ </div>
253
+ {/if}
254
+ {/if}
240
255
  </div>
241
256
  {/snippet}
242
257
  </Tabs>
@@ -19,6 +19,8 @@ interface Props {
19
19
  customUi?: PreviewPanelUi | undefined;
20
20
  children?: import('svelte').Snippet;
21
21
  capturesTab?: import('svelte').Snippet;
22
+ customResultPanel?: import('svelte').Snippet;
23
+ showCustomResultPanel?: boolean;
22
24
  }
23
25
  declare const LogPanel: import("svelte").Component<Props, {
24
26
  setFocusToLogs: () => void;
@@ -102,8 +102,8 @@ $effect(() => {
102
102
  {#if uiState.domExists}
103
103
  <div
104
104
  class={twMerge(
105
- disablePortal ? 'absolute' : 'fixed',
106
- 'z-[5002] text-primary text-sm select-none',
105
+ disablePortal ? 'absolute z-[5002]' : 'fixed z-[10000]',
106
+ 'text-primary text-sm select-none',
107
107
  dropdownPos.isBelow ? '' : 'flex flex-col justify-end',
108
108
  uiState.visible ? '' : 'pointer-events-none',
109
109
  className
@@ -0,0 +1,88 @@
1
+ <script lang="ts">import Modal2 from '../common/modal/Modal2.svelte';
2
+ import Button from '../common/button/Button.svelte';
3
+ import Label from '../Label.svelte';
4
+ import TextInput from '../text_input/TextInput.svelte';
5
+ import { AIMode } from '../copilot/chat/AIChatManager.svelte';
6
+ const MAX_CUSTOM_PROMPT_LENGTH = 5000;
7
+ let { open = $bindable(false), customPrompts = $bindable(), onSave, onReset, hasChanges, isWorkspaceSettings = false } = $props();
8
+ const placeholders = {
9
+ [AIMode.SCRIPT]: 'Enter custom instructions for script generation and editing',
10
+ [AIMode.FLOW]: 'Enter custom instructions for workflow creation and automation',
11
+ [AIMode.APP]: 'Enter custom instructions for UI and app development',
12
+ [AIMode.NAVIGATOR]: 'Enter custom instructions for navigation and guidance',
13
+ [AIMode.API]: 'Enter custom instructions for API interactions and integrations',
14
+ [AIMode.ASK]: 'Enter custom instructions for general questions and assistance'
15
+ };
16
+ const modeLabels = {
17
+ [AIMode.SCRIPT]: 'Script Mode',
18
+ [AIMode.FLOW]: 'Flow Mode',
19
+ [AIMode.APP]: 'App Mode',
20
+ [AIMode.NAVIGATOR]: 'Navigator Mode',
21
+ [AIMode.API]: 'API Mode',
22
+ [AIMode.ASK]: 'Ask Mode'
23
+ };
24
+ function handleSave() {
25
+ onSave?.();
26
+ open = false;
27
+ }
28
+ function handleReset() {
29
+ onReset();
30
+ }
31
+ </script>
32
+
33
+ <Modal2
34
+ bind:isOpen={open}
35
+ title="Customize AI System Prompts"
36
+ fixedWidth="md"
37
+ fixedHeight="xxl"
38
+ target="#content"
39
+ >
40
+ <div class="flex flex-col gap-6 h-full px-1 w-full">
41
+ <div class="grow min-h-0 overflow-y-auto" style="scrollbar-gutter: stable;">
42
+ <div class="text-xs text-secondary mb-6">
43
+ {#if isWorkspaceSettings}
44
+ Customize the system prompts for each AI mode. These prompts apply to all workspace
45
+ members.
46
+ {:else}
47
+ Customize the system prompts for each AI mode. These prompts are stored locally in your
48
+ browser and apply in addition to workspace-level prompts.
49
+ {/if}
50
+ </div>
51
+
52
+ {#each Object.values(AIMode) as mode}
53
+ <div class="flex flex-col gap-2 pb-4 last:border-b-0">
54
+ <Label label={modeLabels[mode]} for={`custom-prompt-${mode}`}>
55
+ <TextInput
56
+ bind:value={customPrompts[mode]}
57
+ underlyingInputEl="textarea"
58
+ inputProps={{
59
+ placeholder: placeholders[mode],
60
+ rows: 3,
61
+ maxlength: MAX_CUSTOM_PROMPT_LENGTH,
62
+ id: `custom-prompt-${mode}`
63
+ }}
64
+ class="min-h-12 resize-y"
65
+ size="sm"
66
+ />
67
+ <div class="flex justify-end mt-1">
68
+ <span class="text-2xs text-hint">
69
+ {(customPrompts[mode] ?? '').length}/{MAX_CUSTOM_PROMPT_LENGTH} characters
70
+ </span>
71
+ </div>
72
+ </Label>
73
+ </div>
74
+ {/each}
75
+ </div>
76
+
77
+ <div class="flex justify-end gap-2">
78
+ <Button size="sm" variant="default" disabled={!hasChanges} onclick={handleReset}>
79
+ Reset
80
+ </Button>
81
+ {#if onSave}
82
+ <Button size="sm" variant="accent" disabled={!hasChanges} onclick={handleSave}>
83
+ Save Prompts
84
+ </Button>
85
+ {/if}
86
+ </div>
87
+ </div>
88
+ </Modal2>
@@ -0,0 +1,11 @@
1
+ interface Props {
2
+ open?: boolean;
3
+ customPrompts: Record<string, string>;
4
+ onSave?: () => void;
5
+ onReset: () => void;
6
+ hasChanges: boolean;
7
+ isWorkspaceSettings?: boolean;
8
+ }
9
+ declare const AIPromptsModal: import("svelte").Component<Props, {}, "open" | "customPrompts">;
10
+ type AIPromptsModal = ReturnType<typeof AIPromptsModal>;
11
+ export default AIPromptsModal;