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
@@ -1,15 +1,15 @@
1
1
  <script lang="ts">import { createBubbler, stopPropagation } from 'svelte/legacy';
2
2
  const bubble = createBubbler();
3
3
  import Button from '../common/button/Button.svelte';
4
- import { createEventDispatcher, onMount } from 'svelte';
5
- import { Trash2 } from 'lucide-svelte';
4
+ import { createEventDispatcher, onDestroy, onMount, untrack } from 'svelte';
5
+ import { AlertTriangle, Trash2, Bug, Terminal } from 'lucide-svelte';
6
+ import Modal from '../common/modal/Modal.svelte';
6
7
  import { inferArgs, inferAssets } from '../../infer';
7
8
  import Editor from '../Editor.svelte';
8
- import { emptySchema } from '../../utils';
9
+ import { emptySchema, getLocalSetting, sendUserToast, storeLocalSetting } from '../../utils';
9
10
  import { scriptLangToEditorLang } from '../../scripts';
10
11
  import DiffEditor from '../DiffEditor.svelte';
11
12
  import CacheTtlPopup from '../apps/editor/inlineScriptsPanel/CacheTtlPopup.svelte';
12
- import RunButton from '../RunButton.svelte';
13
13
  import { computeFields } from '../apps/editor/inlineScriptsPanel/utils';
14
14
  import EditorBar from '../EditorBar.svelte';
15
15
  import { LanguageIcon } from '../common/languageIcons';
@@ -17,7 +17,12 @@ import { resource } from 'runed';
17
17
  import { usePreparedAssetSqlQueries } from '../../infer.svelte';
18
18
  import AssetsDropdownButton from '../assets/AssetsDropdownButton.svelte';
19
19
  import { workspaceStore } from '../../stores';
20
- let { inlineScript = $bindable(), name = $bindable(undefined), id, fields = $bindable(undefined), path, isLoading = false, onRun, onCancel, editor = $bindable(undefined), lastDeployedCode } = $props();
20
+ import { SvelteSet } from 'svelte/reactivity';
21
+ import { Pane, Splitpanes } from 'svelte-splitpanes';
22
+ import { editor as meditor } from 'monaco-editor';
23
+ import { DebugConsole, getDAPClient, debugState, resetDAPClient, getDebugServerUrl, isDebuggable, getDebugFileExtension, fetchContextualVariables, signDebugRequest, getDebugErrorMessage } from '../debug';
24
+ import TextInput from '../text_input/TextInput.svelte';
25
+ let { inlineScript = $bindable(), name = $bindable(undefined), id, fields = $bindable(undefined), path, onRun, editor = $bindable(undefined), lastDeployedCode, onSelectionChange } = $props();
21
26
  let diffEditor = $state();
22
27
  let validCode = $state(true);
23
28
  async function inferInlineScriptSchema(language, content, schema) {
@@ -72,6 +77,397 @@ $effect(() => {
72
77
  if (inlineScript && inferAssetsRes.current)
73
78
  inlineScript.assets = inferAssetsRes.current?.assets;
74
79
  });
80
+ // Debug mode state
81
+ const DEBUG_BETA_WARNING_KEY = 'debug_beta_warning_confirmed';
82
+ let showDebugBetaWarning = $state(false);
83
+ let debugMode = $state(false);
84
+ let debugBreakpoints = new SvelteSet();
85
+ let breakpointDecorations = $state([]);
86
+ let currentLineDecoration = $state([]);
87
+ let dapClient = $state(null);
88
+ let selectedDebugFrameId = $state(null);
89
+ let debugSessionJobId = $state(null);
90
+ let showDebugConsole = $state(true);
91
+ let editorPaneSize = $state(75);
92
+ let consolePaneSize = $state(25);
93
+ // Get the DAP server URL based on language
94
+ const dapServerUrl = $derived(getDebugServerUrl((inlineScript?.language || 'python3')));
95
+ const debugFilePath = $derived(`/tmp/script${getDebugFileExtension(inlineScript?.language ?? '')}`);
96
+ const isDebuggableScript = $derived(isDebuggable(inlineScript?.language ?? ''));
97
+ const showDebugPanel = $derived(debugMode && $debugState.connected && ($debugState.running || $debugState.stopped));
98
+ const hasDebugResult = $derived(debugMode && $debugState.result !== undefined);
99
+ const debugConsoleVisible = $derived(showDebugPanel && showDebugConsole);
100
+ const currentDebugFrameId = $derived(selectedDebugFrameId ?? $debugState.stackFrames[0]?.id);
101
+ // Export debug state for parent component
102
+ export function getDebugState() {
103
+ return {
104
+ debugMode,
105
+ isDebuggableScript,
106
+ showDebugPanel,
107
+ hasDebugResult,
108
+ dapClient,
109
+ selectedDebugFrameId,
110
+ debugSessionJobId,
111
+ debugBreakpoints
112
+ };
113
+ }
114
+ // Breakpoint decoration options
115
+ const breakpointDecorationType = {
116
+ glyphMarginClassName: 'debug-breakpoint-glyph',
117
+ glyphMarginHoverMessage: { value: 'Breakpoint (click to remove)' },
118
+ stickiness: 1
119
+ };
120
+ const currentLineDecorationType = {
121
+ isWholeLine: true,
122
+ className: 'debug-current-line',
123
+ glyphMarginClassName: 'debug-current-line-glyph'
124
+ };
125
+ // Debug functions
126
+ function toggleBreakpoint(line) {
127
+ if (debugBreakpoints.has(line)) {
128
+ debugBreakpoints.delete(line);
129
+ }
130
+ else {
131
+ debugBreakpoints.add(line);
132
+ }
133
+ updateBreakpointDecorations();
134
+ }
135
+ function updateBreakpointDecorations() {
136
+ const monacoEditor = editor?.getEditor?.();
137
+ if (!monacoEditor)
138
+ return;
139
+ const decorations = Array.from(debugBreakpoints).map((line) => ({
140
+ range: { startLineNumber: line, startColumn: 1, endLineNumber: line, endColumn: 1 },
141
+ options: breakpointDecorationType
142
+ }));
143
+ const oldDecorations = untrack(() => breakpointDecorations);
144
+ breakpointDecorations = monacoEditor.deltaDecorations(oldDecorations, decorations);
145
+ }
146
+ function refreshBreakpointPositions() {
147
+ const monacoEditor = editor?.getEditor?.();
148
+ if (!monacoEditor || breakpointDecorations.length === 0)
149
+ return;
150
+ const model = monacoEditor.getModel();
151
+ if (!model)
152
+ return;
153
+ const newLines = new Set();
154
+ for (const decorationId of breakpointDecorations) {
155
+ const range = model.getDecorationRange(decorationId);
156
+ if (range) {
157
+ newLines.add(range.startLineNumber);
158
+ }
159
+ }
160
+ const oldLines = Array.from(debugBreakpoints).sort((a, b) => a - b);
161
+ const updatedLines = Array.from(newLines).sort((a, b) => a - b);
162
+ const positionsChanged = oldLines.length !== updatedLines.length ||
163
+ oldLines.some((line, i) => line !== updatedLines[i]);
164
+ if (positionsChanged) {
165
+ debugBreakpoints.clear();
166
+ for (const line of newLines) {
167
+ debugBreakpoints.add(line);
168
+ }
169
+ syncBreakpointsWithServer();
170
+ }
171
+ }
172
+ async function syncBreakpointsWithServer() {
173
+ if (!dapClient || !dapClient.isConnected())
174
+ return;
175
+ try {
176
+ await dapClient.setBreakpoints(debugFilePath, Array.from(debugBreakpoints));
177
+ }
178
+ catch (error) {
179
+ console.error('Failed to sync breakpoints:', error);
180
+ }
181
+ }
182
+ function updateCurrentLineDecoration(line) {
183
+ const monacoEditor = editor?.getEditor?.();
184
+ if (!monacoEditor)
185
+ return;
186
+ const oldDecorations = untrack(() => currentLineDecoration);
187
+ if (!line) {
188
+ currentLineDecoration = monacoEditor.deltaDecorations(oldDecorations, []);
189
+ return;
190
+ }
191
+ const decorations = [
192
+ {
193
+ range: { startLineNumber: line, startColumn: 1, endLineNumber: line, endColumn: 1 },
194
+ options: currentLineDecorationType
195
+ }
196
+ ];
197
+ currentLineDecoration = monacoEditor.deltaDecorations(oldDecorations, decorations);
198
+ monacoEditor.revealLineInCenter(line);
199
+ }
200
+ export async function startDebugging() {
201
+ if (!inlineScript)
202
+ return;
203
+ try {
204
+ showDebugConsole = true;
205
+ selectedDebugFrameId = null;
206
+ resetDAPClient();
207
+ dapClient = getDAPClient(dapServerUrl);
208
+ const env = await fetchContextualVariables($workspaceStore ?? '');
209
+ const code = inlineScript.content;
210
+ let signedPayload;
211
+ try {
212
+ signedPayload = await signDebugRequest($workspaceStore ?? '', code ?? '', inlineScript.language ?? 'python3');
213
+ debugSessionJobId = signedPayload.job_id;
214
+ }
215
+ catch (signError) {
216
+ sendUserToast(getDebugErrorMessage(signError), true);
217
+ return;
218
+ }
219
+ // Get static args from fields
220
+ const args = Object.entries(fields ?? {}).reduce((acc, [key, obj]) => {
221
+ if (obj.type === 'static') {
222
+ acc[key] = obj.value;
223
+ }
224
+ return acc;
225
+ }, {});
226
+ await dapClient.connect();
227
+ await dapClient.initialize();
228
+ await dapClient.setBreakpoints(debugFilePath, Array.from(debugBreakpoints));
229
+ await dapClient.configurationDone();
230
+ await dapClient.launch({
231
+ code,
232
+ cwd: '/tmp',
233
+ args,
234
+ callMain: true,
235
+ env,
236
+ token: signedPayload.token
237
+ });
238
+ }
239
+ catch (error) {
240
+ console.error('Failed to start debugging:', error);
241
+ sendUserToast(getDebugErrorMessage(error), true);
242
+ }
243
+ }
244
+ export async function stopDebugging() {
245
+ if (!dapClient)
246
+ return;
247
+ try {
248
+ await dapClient.terminate();
249
+ dapClient.disconnect();
250
+ }
251
+ catch (error) {
252
+ console.error('Failed to stop debugging:', error);
253
+ }
254
+ finally {
255
+ debugSessionJobId = null;
256
+ }
257
+ }
258
+ export async function continueExecution() {
259
+ if (!dapClient)
260
+ return;
261
+ await dapClient.continue_();
262
+ }
263
+ export async function stepOver() {
264
+ if (!dapClient)
265
+ return;
266
+ await dapClient.stepOver();
267
+ }
268
+ export async function stepIn() {
269
+ if (!dapClient)
270
+ return;
271
+ await dapClient.stepIn();
272
+ }
273
+ export async function stepOut() {
274
+ if (!dapClient)
275
+ return;
276
+ await dapClient.stepOut();
277
+ }
278
+ export function clearAllBreakpoints() {
279
+ debugBreakpoints.clear();
280
+ updateBreakpointDecorations();
281
+ }
282
+ export function toggleDebugMode() {
283
+ if (debugMode) {
284
+ // Exiting debug mode - clean up
285
+ debugMode = false;
286
+ stopDebugging();
287
+ clearAllBreakpoints();
288
+ updateCurrentLineDecoration(undefined);
289
+ }
290
+ else {
291
+ // Entering debug mode - check if beta warning was confirmed
292
+ if (getLocalSetting(DEBUG_BETA_WARNING_KEY) !== 'true') {
293
+ showDebugBetaWarning = true;
294
+ }
295
+ else {
296
+ debugMode = true;
297
+ }
298
+ }
299
+ }
300
+ function confirmDebugBetaWarning() {
301
+ storeLocalSetting(DEBUG_BETA_WARNING_KEY, 'true');
302
+ showDebugBetaWarning = false;
303
+ debugMode = true;
304
+ }
305
+ // Subscribe to debug state changes for current line highlighting
306
+ $effect(() => {
307
+ const currentLine = $debugState.currentLine;
308
+ if (debugMode) {
309
+ untrack(() => updateCurrentLineDecoration(currentLine));
310
+ }
311
+ });
312
+ // Watch for language changes - exit debug mode when language changes
313
+ let lastDebugLang = undefined;
314
+ $effect(() => {
315
+ const currentLang = inlineScript?.language;
316
+ if (lastDebugLang !== undefined && lastDebugLang !== currentLang && debugMode) {
317
+ untrack(() => {
318
+ if (dapClient) {
319
+ dapClient
320
+ .terminate()
321
+ .catch(() => { })
322
+ .finally(() => {
323
+ dapClient?.disconnect();
324
+ });
325
+ }
326
+ resetDAPClient();
327
+ dapClient = null;
328
+ debugMode = false;
329
+ clearAllBreakpoints();
330
+ updateCurrentLineDecoration(undefined);
331
+ });
332
+ }
333
+ lastDebugLang = currentLang;
334
+ });
335
+ // Set up glyph margin click handler for breakpoints when debug mode is enabled
336
+ $effect(() => {
337
+ const monacoEditor = editor?.getEditor?.();
338
+ if (!monacoEditor)
339
+ return;
340
+ if (debugMode && isDebuggableScript) {
341
+ monacoEditor.updateOptions({ glyphMargin: true });
342
+ const mouseDownDisposable = monacoEditor.onMouseDown((e) => {
343
+ if (e.target.type === 2) {
344
+ const line = e.target.position?.lineNumber;
345
+ if (line) {
346
+ toggleBreakpoint(line);
347
+ }
348
+ }
349
+ });
350
+ monacoEditor.addCommand(120, () => {
351
+ const position = monacoEditor.getPosition();
352
+ if (position) {
353
+ toggleBreakpoint(position.lineNumber);
354
+ }
355
+ });
356
+ monacoEditor.addCommand(119, () => {
357
+ if ($debugState.stopped)
358
+ continueExecution();
359
+ });
360
+ monacoEditor.addCommand(117, () => {
361
+ if ($debugState.stopped)
362
+ stepOver();
363
+ });
364
+ monacoEditor.addCommand(118, () => {
365
+ if ($debugState.stopped)
366
+ stepIn();
367
+ });
368
+ monacoEditor.addCommand(1143, () => {
369
+ if ($debugState.stopped)
370
+ stepOut();
371
+ });
372
+ return () => {
373
+ mouseDownDisposable.dispose();
374
+ monacoEditor.updateOptions({ glyphMargin: false });
375
+ };
376
+ }
377
+ else {
378
+ monacoEditor.updateOptions({ glyphMargin: false });
379
+ }
380
+ });
381
+ // Clean up debug mode on destroy
382
+ onDestroy(() => {
383
+ if (debugMode) {
384
+ stopDebugging();
385
+ resetDAPClient();
386
+ }
387
+ });
388
+ // Track last selection to avoid duplicate events
389
+ let lastSelectionKey = $state(null);
390
+ // Track pending selection during mouse drag
391
+ let pendingSelection = null;
392
+ let isMouseDown = false;
393
+ function emitSelection(editorInstance) {
394
+ if (!onSelectionChange)
395
+ return;
396
+ const selection = pendingSelection;
397
+ if (!selection) {
398
+ // No selection - only emit null if we previously had a selection
399
+ if (lastSelectionKey !== null) {
400
+ lastSelectionKey = null;
401
+ onSelectionChange(null);
402
+ }
403
+ return;
404
+ }
405
+ // Check if there's an actual selection (not just cursor position)
406
+ const hasSelection = selection.startLineNumber !== selection.endLineNumber ||
407
+ selection.startColumn !== selection.endColumn;
408
+ if (!hasSelection) {
409
+ // No selection - only emit null if we previously had a selection
410
+ if (lastSelectionKey !== null) {
411
+ lastSelectionKey = null;
412
+ onSelectionChange(null);
413
+ }
414
+ return;
415
+ }
416
+ // Get the selected content from the editor
417
+ const model = editorInstance.getModel?.();
418
+ if (!model || !('getValueInRange' in model))
419
+ return;
420
+ const content = model.getValueInRange({
421
+ startLineNumber: selection.startLineNumber,
422
+ startColumn: selection.startColumn,
423
+ endLineNumber: selection.endLineNumber,
424
+ endColumn: selection.endColumn
425
+ });
426
+ // Create a key to deduplicate identical selections
427
+ const selectionKey = `${selection.startLineNumber}:${selection.startColumn}:${selection.endLineNumber}:${selection.endColumn}`;
428
+ if (selectionKey === lastSelectionKey)
429
+ return;
430
+ lastSelectionKey = selectionKey;
431
+ onSelectionChange({
432
+ content,
433
+ startLine: selection.startLineNumber,
434
+ endLine: selection.endLineNumber,
435
+ startColumn: selection.startColumn,
436
+ endColumn: selection.endColumn
437
+ });
438
+ }
439
+ // Listen for editor selection changes - wait for mouseup before emitting
440
+ $effect(() => {
441
+ if (!editor || !onSelectionChange)
442
+ return;
443
+ const editorInstance = editor;
444
+ // Track selection changes but don't emit until mouseup
445
+ const selectionDisposable = editorInstance.onDidChangeCursorSelection?.((e) => {
446
+ pendingSelection = e.selection;
447
+ // If not mouse-driven (e.g., keyboard selection), emit immediately
448
+ if (!isMouseDown) {
449
+ untrack(() => emitSelection(editorInstance));
450
+ }
451
+ });
452
+ // Track mouse state
453
+ const handleMouseDown = () => {
454
+ isMouseDown = true;
455
+ };
456
+ const handleMouseUp = () => {
457
+ if (isMouseDown) {
458
+ isMouseDown = false;
459
+ untrack(() => emitSelection(editorInstance));
460
+ }
461
+ };
462
+ // Add mouse listeners to the document to catch mouseup even outside editor
463
+ document.addEventListener('mousedown', handleMouseDown);
464
+ document.addEventListener('mouseup', handleMouseUp);
465
+ return () => {
466
+ selectionDisposable?.dispose();
467
+ document.removeEventListener('mousedown', handleMouseDown);
468
+ document.removeEventListener('mouseup', handleMouseUp);
469
+ };
470
+ });
75
471
  </script>
76
472
 
77
473
  {#if inlineScript}
@@ -82,19 +478,21 @@ $effect(() => {
82
478
  </div>
83
479
  {#if name !== undefined}
84
480
  <div class="flex flex-row gap-2 w-full items-center">
85
- <input
86
- onkeydown={stopPropagation(bubble('keydown'))}
481
+ <TextInput
482
+ inputProps={{
483
+ onkeydown: () => stopPropagation(bubble('keydown')),
484
+ placeholder: 'Inline script name'
485
+ }}
87
486
  bind:value={name}
88
- placeholder="Inline script name"
89
- class="!text-xs !rounded-sm !shadow-none"
487
+ size="sm"
90
488
  />
91
489
  </div>
92
490
  <Button
93
491
  title="Clear script"
94
- size="xs2"
95
- color="light"
96
- variant="contained"
492
+ variant="subtle"
97
493
  aria-label="Clear script"
494
+ destructive
495
+ unifiedSize="sm"
98
496
  on:click={() => dispatch('delete')}
99
497
  endIcon={{ icon: Trash2 }}
100
498
  iconOnly
@@ -107,14 +505,13 @@ $effect(() => {
107
505
 
108
506
  <Button
109
507
  variant="default"
110
- size="xs2"
508
+ unifiedSize="sm"
111
509
  on:click={async () => {
112
510
  editor?.format()
113
511
  }}
114
512
  >
115
513
  Format
116
514
  </Button>
117
- <RunButton {isLoading} {onRun} {onCancel} />
118
515
  </div>
119
516
  </div>
120
517
 
@@ -124,7 +521,7 @@ $effect(() => {
124
521
  {editor}
125
522
  lang={inlineScript.language}
126
523
  {websocketAlive}
127
- iconOnly={width < 950}
524
+ iconOnly={width < 1250}
128
525
  kind={'script'}
129
526
  template={'script'}
130
527
  on:showDiffMode={showDiffMode}
@@ -141,40 +538,123 @@ $effect(() => {
141
538
  {#if inlineScript.assets?.length}
142
539
  <AssetsDropdownButton assets={inlineScript.assets} />
143
540
  {/if}
541
+ {#if isDebuggableScript}
542
+ <Button
543
+ variant={debugMode ? 'accent' : 'default'}
544
+ size="xs2"
545
+ on:click={toggleDebugMode}
546
+ startIcon={{ icon: Bug }}
547
+ btnClasses={debugMode
548
+ ? ''
549
+ : 'bg-surface hover:bg-surface-hover border border-tertiary/30'}
550
+ title="Toggle Debug Mode"
551
+ >
552
+ {debugMode ? 'Exit Debug' : 'Debug'}
553
+ </Button>
554
+ {/if}
555
+ {#if showDebugPanel && !showDebugConsole}
556
+ <Button
557
+ variant="default"
558
+ size="xs2"
559
+ on:click={() => (showDebugConsole = true)}
560
+ startIcon={{ icon: Terminal }}
561
+ btnClasses="bg-surface hover:bg-surface-hover border border-tertiary/30"
562
+ title="Show Debug Console"
563
+ >
564
+ Console
565
+ </Button>
566
+ {/if}
144
567
  </div>
145
- <Editor
146
- path={path + '/' + id}
147
- bind:this={editor}
148
- class="flex flex-1 grow h-full"
149
- scriptLang={inlineScript.language}
150
- bind:code={inlineScript.content}
151
- fixedOverflowWidgets={true}
152
- cmdEnterAction={() => onRun()}
153
- bind:websocketAlive
154
- rawAppRunnableKey={id}
155
- on:change={async (e) => {
156
- if (inlineScript) {
157
- if (inlineScript.lock != undefined) {
158
- inlineScript.lock = undefined
159
- }
160
- const oldSchema = JSON.stringify(inlineScript.schema)
161
- if (inlineScript.schema == undefined) {
162
- inlineScript.schema = emptySchema()
568
+ {#if debugConsoleVisible}
569
+ <Splitpanes horizontal class="h-full">
570
+ <Pane bind:size={editorPaneSize} minSize={20}>
571
+ <Editor
572
+ path={path + '/' + id}
573
+ bind:this={editor}
574
+ class="flex flex-1 grow h-full"
575
+ scriptLang={inlineScript.language}
576
+ bind:code={inlineScript.content}
577
+ fixedOverflowWidgets={true}
578
+ cmdEnterAction={() => onRun()}
579
+ bind:websocketAlive
580
+ rawAppRunnableKey={id}
581
+ on:change={async (e) => {
582
+ if (inlineScript) {
583
+ if (inlineScript.lock != undefined) {
584
+ inlineScript.lock = undefined
585
+ }
586
+ const oldSchema = JSON.stringify(inlineScript.schema)
587
+ if (inlineScript.schema == undefined) {
588
+ inlineScript.schema = emptySchema()
589
+ }
590
+ await inferInlineScriptSchema(
591
+ inlineScript?.language,
592
+ e.detail,
593
+ inlineScript.schema
594
+ )
595
+ if (JSON.stringify(inlineScript.schema) != oldSchema) {
596
+ inlineScript = inlineScript
597
+ syncFields()
598
+ }
599
+ if (debugMode && breakpointDecorations.length > 0) {
600
+ refreshBreakpointPositions()
601
+ }
602
+ }
603
+ }}
604
+ args={Object.entries(fields ?? {}).reduce((acc, [key, obj]) => {
605
+ acc[key] = obj.type === 'static' ? obj.value : undefined
606
+ return acc
607
+ }, {})}
608
+ preparedAssetsSqlQueries={preparedSqlQueries.current}
609
+ />
610
+ </Pane>
611
+ <Pane bind:size={consolePaneSize} minSize={10}>
612
+ <DebugConsole
613
+ client={dapClient}
614
+ currentFrameId={currentDebugFrameId}
615
+ onClose={() => (showDebugConsole = false)}
616
+ workspace={$workspaceStore}
617
+ jobId={debugSessionJobId ?? undefined}
618
+ />
619
+ </Pane>
620
+ </Splitpanes>
621
+ {:else}
622
+ <Editor
623
+ path={path + '/' + id}
624
+ bind:this={editor}
625
+ class="flex flex-1 grow h-full"
626
+ scriptLang={inlineScript.language}
627
+ bind:code={inlineScript.content}
628
+ fixedOverflowWidgets={true}
629
+ cmdEnterAction={() => onRun()}
630
+ bind:websocketAlive
631
+ rawAppRunnableKey={id}
632
+ on:change={async (e) => {
633
+ if (inlineScript) {
634
+ if (inlineScript.lock != undefined) {
635
+ inlineScript.lock = undefined
636
+ }
637
+ const oldSchema = JSON.stringify(inlineScript.schema)
638
+ if (inlineScript.schema == undefined) {
639
+ inlineScript.schema = emptySchema()
640
+ }
641
+ await inferInlineScriptSchema(inlineScript?.language, e.detail, inlineScript.schema)
642
+ if (JSON.stringify(inlineScript.schema) != oldSchema) {
643
+ inlineScript = inlineScript
644
+ syncFields()
645
+ }
646
+ if (debugMode && breakpointDecorations.length > 0) {
647
+ refreshBreakpointPositions()
648
+ }
163
649
  }
164
- await inferInlineScriptSchema(inlineScript?.language, e.detail, inlineScript.schema)
165
- if (JSON.stringify(inlineScript.schema) != oldSchema) {
166
- inlineScript = inlineScript
167
- syncFields()
168
- }
169
- }
170
- // $app = $app
171
- }}
172
- args={Object.entries(fields ?? {}).reduce((acc, [key, obj]) => {
173
- acc[key] = obj.type === 'static' ? obj.value : undefined
174
- return acc
175
- }, {})}
176
- preparedAssetsSqlQueries={preparedSqlQueries.current}
177
- />
650
+ }}
651
+ args={Object.entries(fields ?? {}).reduce((acc, [key, obj]) => {
652
+ acc[key] = obj.type === 'static' ? obj.value : undefined
653
+ return acc
654
+ }, {})}
655
+ preparedAssetsSqlQueries={preparedSqlQueries.current}
656
+ />
657
+ {/if}
178
658
 
179
659
  <DiffEditor
180
660
  open={false}
@@ -188,3 +668,25 @@ $effect(() => {
188
668
  </div>
189
669
  </div>
190
670
  {/if}
671
+
672
+ <Modal title="Debug Feature (Beta)" bind:open={showDebugBetaWarning}>
673
+ <div class="flex items-start gap-3">
674
+ <div class="flex-shrink-0">
675
+ <div
676
+ class="flex h-10 w-10 items-center justify-center rounded-full bg-yellow-100 dark:bg-yellow-800/50"
677
+ >
678
+ <AlertTriangle class="h-5 w-5 text-yellow-600 dark:text-yellow-400" />
679
+ </div>
680
+ </div>
681
+ <div class="text-secondary text-sm">
682
+ <p
683
+ >The Debug feature is currently in <strong>beta</strong>. You may encounter unexpected
684
+ behavior or limitations.</p
685
+ >
686
+ <p class="mt-2">By continuing, you acknowledge that this feature is experimental.</p>
687
+ </div>
688
+ </div>
689
+ {#snippet actions()}
690
+ <Button size="sm" on:click={confirmDebugBetaWarning}>Continue</Button>
691
+ {/snippet}
692
+ </Modal>