@flowdrop/flowdrop 1.5.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (434) hide show
  1. package/README.md +46 -47
  2. package/dist/adapters/WorkflowAdapter.d.ts +1 -1
  3. package/dist/adapters/WorkflowAdapter.js +26 -26
  4. package/dist/adapters/agentspec/AgentSpecAdapter.d.ts +2 -2
  5. package/dist/adapters/agentspec/AgentSpecAdapter.js +122 -133
  6. package/dist/adapters/agentspec/agentAdapter.d.ts +2 -2
  7. package/dist/adapters/agentspec/agentAdapter.js +10 -10
  8. package/dist/adapters/agentspec/autoLayout.d.ts +1 -1
  9. package/dist/adapters/agentspec/autoLayout.js +7 -9
  10. package/dist/adapters/agentspec/componentTypeDefaults.d.ts +1 -1
  11. package/dist/adapters/agentspec/componentTypeDefaults.js +120 -120
  12. package/dist/adapters/agentspec/defaultNodeTypes.d.ts +2 -2
  13. package/dist/adapters/agentspec/defaultNodeTypes.js +307 -307
  14. package/dist/adapters/agentspec/index.d.ts +10 -10
  15. package/dist/adapters/agentspec/index.js +6 -6
  16. package/dist/adapters/agentspec/validator.d.ts +2 -2
  17. package/dist/adapters/agentspec/validator.js +20 -22
  18. package/dist/api/enhanced-client.d.ts +3 -3
  19. package/dist/api/enhanced-client.js +72 -73
  20. package/dist/chat/commandClassifier.js +6 -6
  21. package/dist/chat/index.d.ts +5 -5
  22. package/dist/chat/index.js +4 -4
  23. package/dist/chat/responseParser.d.ts +6 -6
  24. package/dist/chat/responseParser.js +28 -24
  25. package/dist/commands/batch.d.ts +1 -1
  26. package/dist/commands/batch.js +5 -7
  27. package/dist/commands/executor.d.ts +2 -2
  28. package/dist/commands/executor.js +320 -231
  29. package/dist/commands/index.d.ts +6 -6
  30. package/dist/commands/index.js +5 -5
  31. package/dist/commands/parser.d.ts +1 -1
  32. package/dist/commands/parser.js +91 -74
  33. package/dist/commands/positioner.d.ts +2 -2
  34. package/dist/commands/positioner.js +1 -1
  35. package/dist/commands/storeIntegration.svelte.d.ts +2 -2
  36. package/dist/commands/storeIntegration.svelte.js +5 -5
  37. package/dist/commands/types.d.ts +42 -42
  38. package/dist/commands/types.js +2 -2
  39. package/dist/components/App.svelte +240 -294
  40. package/dist/components/App.svelte.d.ts +9 -9
  41. package/dist/components/CanvasBanner.stories.svelte +10 -16
  42. package/dist/components/CanvasBanner.stories.svelte.d.ts +1 -1
  43. package/dist/components/CanvasBanner.svelte +2 -2
  44. package/dist/components/CanvasBanner.svelte.d.ts +1 -1
  45. package/dist/components/CanvasController.svelte +3 -4
  46. package/dist/components/ConfigForm.svelte +118 -256
  47. package/dist/components/ConfigForm.svelte.d.ts +2 -2
  48. package/dist/components/ConfigMappingRow.svelte +7 -9
  49. package/dist/components/ConfigMappingRow.svelte.d.ts +1 -1
  50. package/dist/components/ConfigModal.svelte +3 -3
  51. package/dist/components/ConfigModal.svelte.d.ts +1 -1
  52. package/dist/components/ConfigPanel.stories.svelte +19 -19
  53. package/dist/components/ConfigPanel.stories.svelte.d.ts +1 -1
  54. package/dist/components/ConfigPanel.svelte +9 -20
  55. package/dist/components/ConfigPanel.svelte.d.ts +1 -1
  56. package/dist/components/ConnectionLine.svelte +4 -4
  57. package/dist/components/EdgeRefresher.svelte +1 -1
  58. package/dist/components/FlowDropEdge.stories.svelte +110 -110
  59. package/dist/components/FlowDropEdge.svelte +9 -9
  60. package/dist/components/FlowDropEdge.svelte.d.ts +1 -1
  61. package/dist/components/FlowDropZone.svelte +6 -9
  62. package/dist/components/FlowDropZone.svelte.d.ts +1 -1
  63. package/dist/components/LoadingSpinner.stories.svelte +13 -13
  64. package/dist/components/LoadingSpinner.stories.svelte.d.ts +1 -1
  65. package/dist/components/LoadingSpinner.svelte +3 -3
  66. package/dist/components/LoadingSpinner.svelte.d.ts +1 -1
  67. package/dist/components/Logo.stories.svelte +4 -4
  68. package/dist/components/Logo.stories.svelte.d.ts +1 -1
  69. package/dist/components/Logo.svelte +3 -9
  70. package/dist/components/LogsSidebar.svelte +41 -48
  71. package/dist/components/LogsSidebar.svelte.d.ts +1 -1
  72. package/dist/components/MarkdownDisplay.stories.svelte +10 -14
  73. package/dist/components/MarkdownDisplay.stories.svelte.d.ts +1 -1
  74. package/dist/components/MarkdownDisplay.svelte +4 -6
  75. package/dist/components/Navbar.stories.svelte +19 -19
  76. package/dist/components/Navbar.stories.svelte.d.ts +1 -1
  77. package/dist/components/Navbar.svelte +28 -49
  78. package/dist/components/Navbar.svelte.d.ts +2 -2
  79. package/dist/components/NodeSidebar.svelte +42 -88
  80. package/dist/components/NodeSidebar.svelte.d.ts +1 -1
  81. package/dist/components/NodeStatusOverlay.stories.svelte +19 -31
  82. package/dist/components/NodeStatusOverlay.stories.svelte.d.ts +1 -1
  83. package/dist/components/NodeStatusOverlay.svelte +40 -55
  84. package/dist/components/NodeStatusOverlay.svelte.d.ts +3 -3
  85. package/dist/components/NodeSwapPicker.svelte +20 -64
  86. package/dist/components/NodeSwapPicker.svelte.d.ts +1 -1
  87. package/dist/components/PipelineStatus.svelte +63 -89
  88. package/dist/components/PipelineStatus.svelte.d.ts +4 -4
  89. package/dist/components/PortCoordinateTracker.svelte +5 -7
  90. package/dist/components/PortCoordinateTracker.svelte.d.ts +1 -1
  91. package/dist/components/PortMappingRow.svelte +20 -24
  92. package/dist/components/PortMappingRow.svelte.d.ts +2 -2
  93. package/dist/components/ReadOnlyDetails.svelte +1 -1
  94. package/dist/components/SchemaForm.stories.svelte +53 -53
  95. package/dist/components/SchemaForm.stories.svelte.d.ts +1 -1
  96. package/dist/components/SchemaForm.svelte +24 -51
  97. package/dist/components/SchemaForm.svelte.d.ts +2 -2
  98. package/dist/components/SettingsModal.svelte +6 -9
  99. package/dist/components/SettingsModal.svelte.d.ts +1 -1
  100. package/dist/components/SettingsPanel.svelte +138 -158
  101. package/dist/components/SettingsPanel.svelte.d.ts +1 -1
  102. package/dist/components/StatusIcon.stories.svelte +16 -29
  103. package/dist/components/StatusIcon.stories.svelte.d.ts +1 -1
  104. package/dist/components/StatusIcon.svelte +19 -19
  105. package/dist/components/StatusIcon.svelte.d.ts +2 -2
  106. package/dist/components/StatusLabel.stories.svelte +8 -8
  107. package/dist/components/StatusLabel.stories.svelte.d.ts +1 -1
  108. package/dist/components/SwapMappingEditor.svelte +35 -56
  109. package/dist/components/SwapMappingEditor.svelte.d.ts +2 -2
  110. package/dist/components/ThemeToggle.stories.svelte +10 -10
  111. package/dist/components/ThemeToggle.stories.svelte.d.ts +1 -1
  112. package/dist/components/ThemeToggle.svelte +22 -33
  113. package/dist/components/ThemeToggle.svelte.d.ts +1 -1
  114. package/dist/components/UniversalNode.svelte +29 -41
  115. package/dist/components/UniversalNode.svelte.d.ts +3 -3
  116. package/dist/components/WorkflowEditor.svelte +113 -168
  117. package/dist/components/WorkflowEditor.svelte.d.ts +4 -4
  118. package/dist/components/chat/AIChatPanel.svelte +272 -133
  119. package/dist/components/chat/AIChatPanel.svelte.d.ts +3 -3
  120. package/dist/components/chat/CommandPreview.svelte +74 -24
  121. package/dist/components/chat/CommandPreview.svelte.d.ts +1 -1
  122. package/dist/components/console/CommandConsole.stories.svelte +71 -53
  123. package/dist/components/console/CommandConsole.stories.svelte.d.ts +1 -1
  124. package/dist/components/console/CommandConsole.svelte +39 -35
  125. package/dist/components/console/CommandConsole.svelte.d.ts +2 -2
  126. package/dist/components/console/ConsoleAutocomplete.svelte +6 -3
  127. package/dist/components/console/ConsoleInput.svelte +148 -89
  128. package/dist/components/console/ConsoleInput.svelte.d.ts +1 -1
  129. package/dist/components/console/ConsoleOutput.svelte +5 -10
  130. package/dist/components/console/ConsoleOutput.svelte.d.ts +1 -1
  131. package/dist/components/console/formatters.d.ts +1 -1
  132. package/dist/components/console/formatters.js +27 -29
  133. package/dist/components/form/FormArray.svelte +75 -132
  134. package/dist/components/form/FormArray.svelte.d.ts +1 -1
  135. package/dist/components/form/FormAutocomplete.svelte +65 -108
  136. package/dist/components/form/FormAutocomplete.svelte.d.ts +1 -1
  137. package/dist/components/form/FormCheckboxGroup.stories.svelte +13 -16
  138. package/dist/components/form/FormCheckboxGroup.stories.svelte.d.ts +1 -1
  139. package/dist/components/form/FormCheckboxGroup.svelte +2 -2
  140. package/dist/components/form/FormCodeEditor.svelte +42 -56
  141. package/dist/components/form/FormField.svelte +79 -90
  142. package/dist/components/form/FormField.svelte.d.ts +2 -2
  143. package/dist/components/form/FormFieldLight.svelte +72 -88
  144. package/dist/components/form/FormFieldLight.svelte.d.ts +1 -1
  145. package/dist/components/form/FormFieldWrapper.stories.svelte +14 -14
  146. package/dist/components/form/FormFieldWrapper.stories.svelte.d.ts +1 -1
  147. package/dist/components/form/FormFieldWrapper.svelte +2 -9
  148. package/dist/components/form/FormFieldWrapper.svelte.d.ts +1 -1
  149. package/dist/components/form/FormFieldset.svelte +3 -3
  150. package/dist/components/form/FormFieldset.svelte.d.ts +2 -2
  151. package/dist/components/form/FormMarkdownEditor.svelte +123 -156
  152. package/dist/components/form/FormNumberField.stories.svelte +18 -18
  153. package/dist/components/form/FormNumberField.stories.svelte.d.ts +1 -1
  154. package/dist/components/form/FormNumberField.svelte +6 -6
  155. package/dist/components/form/FormRangeField.stories.svelte +13 -13
  156. package/dist/components/form/FormRangeField.stories.svelte.d.ts +1 -1
  157. package/dist/components/form/FormRangeField.svelte +4 -12
  158. package/dist/components/form/FormSelect.stories.svelte +21 -21
  159. package/dist/components/form/FormSelect.stories.svelte.d.ts +1 -1
  160. package/dist/components/form/FormSelect.svelte +5 -5
  161. package/dist/components/form/FormSelect.svelte.d.ts +1 -1
  162. package/dist/components/form/FormTemplateEditor.svelte +126 -175
  163. package/dist/components/form/FormTemplateEditor.svelte.d.ts +1 -1
  164. package/dist/components/form/FormTextField.stories.svelte +17 -23
  165. package/dist/components/form/FormTextField.stories.svelte.d.ts +1 -1
  166. package/dist/components/form/FormTextField.svelte +4 -4
  167. package/dist/components/form/FormTextarea.stories.svelte +18 -21
  168. package/dist/components/form/FormTextarea.stories.svelte.d.ts +1 -1
  169. package/dist/components/form/FormTextarea.svelte +4 -4
  170. package/dist/components/form/FormToggle.stories.svelte +13 -16
  171. package/dist/components/form/FormToggle.stories.svelte.d.ts +1 -1
  172. package/dist/components/form/FormToggle.svelte +3 -3
  173. package/dist/components/form/FormUISchemaRenderer.svelte +12 -19
  174. package/dist/components/form/FormUISchemaRenderer.svelte.d.ts +3 -3
  175. package/dist/components/form/index.d.ts +19 -19
  176. package/dist/components/form/index.js +18 -18
  177. package/dist/components/form/templateAutocomplete.d.ts +2 -2
  178. package/dist/components/form/templateAutocomplete.js +55 -64
  179. package/dist/components/form/types.d.ts +6 -6
  180. package/dist/components/form/types.js +4 -9
  181. package/dist/components/icons/AlertCircleIcon.svelte +1 -6
  182. package/dist/components/icons/CogIcon.svelte +1 -6
  183. package/dist/components/interrupt/ChoicePrompt.stories.svelte +27 -27
  184. package/dist/components/interrupt/ChoicePrompt.stories.svelte.d.ts +1 -1
  185. package/dist/components/interrupt/ChoicePrompt.svelte +17 -41
  186. package/dist/components/interrupt/ChoicePrompt.svelte.d.ts +1 -1
  187. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte +17 -17
  188. package/dist/components/interrupt/ConfirmationPrompt.stories.svelte.d.ts +1 -1
  189. package/dist/components/interrupt/ConfirmationPrompt.svelte +10 -16
  190. package/dist/components/interrupt/ConfirmationPrompt.svelte.d.ts +1 -1
  191. package/dist/components/interrupt/FormPrompt.svelte +10 -15
  192. package/dist/components/interrupt/FormPrompt.svelte.d.ts +1 -1
  193. package/dist/components/interrupt/InterruptBubble.svelte +87 -121
  194. package/dist/components/interrupt/InterruptBubble.svelte.d.ts +2 -2
  195. package/dist/components/interrupt/ReviewPrompt.stories.svelte +37 -37
  196. package/dist/components/interrupt/ReviewPrompt.stories.svelte.d.ts +1 -1
  197. package/dist/components/interrupt/ReviewPrompt.svelte +55 -75
  198. package/dist/components/interrupt/ReviewPrompt.svelte.d.ts +1 -1
  199. package/dist/components/interrupt/TextInputPrompt.stories.svelte +16 -17
  200. package/dist/components/interrupt/TextInputPrompt.stories.svelte.d.ts +1 -1
  201. package/dist/components/interrupt/TextInputPrompt.svelte +13 -18
  202. package/dist/components/interrupt/TextInputPrompt.svelte.d.ts +1 -1
  203. package/dist/components/interrupt/index.d.ts +6 -6
  204. package/dist/components/interrupt/index.js +6 -6
  205. package/dist/components/layouts/MainLayout.svelte +46 -84
  206. package/dist/components/layouts/MainLayout.svelte.d.ts +6 -6
  207. package/dist/components/nodes/GatewayNode.stories.svelte +64 -65
  208. package/dist/components/nodes/GatewayNode.svelte +37 -70
  209. package/dist/components/nodes/GatewayNode.svelte.d.ts +3 -3
  210. package/dist/components/nodes/IdeaNode.stories.svelte +25 -26
  211. package/dist/components/nodes/IdeaNode.svelte +22 -36
  212. package/dist/components/nodes/IdeaNode.svelte.d.ts +1 -1
  213. package/dist/components/nodes/NotesNode.stories.svelte +37 -38
  214. package/dist/components/nodes/NotesNode.svelte +28 -39
  215. package/dist/components/nodes/NotesNode.svelte.d.ts +1 -1
  216. package/dist/components/nodes/SimpleNode.stories.svelte +137 -138
  217. package/dist/components/nodes/SimpleNode.svelte +44 -74
  218. package/dist/components/nodes/SimpleNode.svelte.d.ts +1 -1
  219. package/dist/components/nodes/SquareNode.stories.svelte +75 -75
  220. package/dist/components/nodes/SquareNode.svelte +42 -68
  221. package/dist/components/nodes/SquareNode.svelte.d.ts +1 -1
  222. package/dist/components/nodes/TerminalNode.stories.svelte +10 -10
  223. package/dist/components/nodes/TerminalNode.svelte +74 -112
  224. package/dist/components/nodes/TerminalNode.svelte.d.ts +1 -1
  225. package/dist/components/nodes/ToolNode.stories.svelte +115 -116
  226. package/dist/components/nodes/ToolNode.svelte +31 -64
  227. package/dist/components/nodes/ToolNode.svelte.d.ts +1 -1
  228. package/dist/components/nodes/WorkflowNode.stories.svelte +84 -89
  229. package/dist/components/nodes/WorkflowNode.svelte +50 -103
  230. package/dist/components/nodes/WorkflowNode.svelte.d.ts +3 -3
  231. package/dist/components/playground/ChatPanel.svelte +47 -103
  232. package/dist/components/playground/ExecutionLogs.svelte +45 -68
  233. package/dist/components/playground/InputCollector.svelte +32 -51
  234. package/dist/components/playground/MessageBubble.stories.svelte +25 -25
  235. package/dist/components/playground/MessageBubble.stories.svelte.d.ts +1 -1
  236. package/dist/components/playground/MessageBubble.svelte +54 -70
  237. package/dist/components/playground/MessageBubble.svelte.d.ts +1 -1
  238. package/dist/components/playground/Playground.svelte +60 -91
  239. package/dist/components/playground/Playground.svelte.d.ts +3 -3
  240. package/dist/components/playground/PlaygroundModal.svelte +8 -12
  241. package/dist/components/playground/PlaygroundModal.svelte.d.ts +3 -3
  242. package/dist/components/playground/SessionManager.svelte +34 -40
  243. package/dist/components/playground/SessionManager.svelte.d.ts +1 -1
  244. package/dist/config/agentSpecEndpoints.d.ts +1 -1
  245. package/dist/config/agentSpecEndpoints.js +20 -20
  246. package/dist/config/constants.js +2 -2
  247. package/dist/config/defaultCategories.d.ts +1 -1
  248. package/dist/config/defaultCategories.js +86 -86
  249. package/dist/config/defaultPortConfig.d.ts +1 -1
  250. package/dist/config/defaultPortConfig.js +144 -144
  251. package/dist/config/endpoints.d.ts +4 -4
  252. package/dist/config/endpoints.js +68 -68
  253. package/dist/config/runtimeConfig.d.ts +2 -2
  254. package/dist/config/runtimeConfig.js +8 -8
  255. package/dist/core/index.d.ts +68 -68
  256. package/dist/core/index.js +38 -38
  257. package/dist/display/index.d.ts +2 -2
  258. package/dist/display/index.js +2 -2
  259. package/dist/editor/index.d.ts +64 -64
  260. package/dist/editor/index.js +54 -54
  261. package/dist/form/code.d.ts +5 -5
  262. package/dist/form/code.js +14 -14
  263. package/dist/form/fieldRegistry.d.ts +3 -3
  264. package/dist/form/fieldRegistry.js +9 -11
  265. package/dist/form/full.d.ts +8 -8
  266. package/dist/form/full.js +9 -9
  267. package/dist/form/index.d.ts +18 -18
  268. package/dist/form/index.js +16 -16
  269. package/dist/form/markdown.d.ts +4 -4
  270. package/dist/form/markdown.js +8 -8
  271. package/dist/helpers/proximityConnect.d.ts +3 -3
  272. package/dist/helpers/proximityConnect.js +32 -34
  273. package/dist/helpers/workflowEditorHelper.d.ts +6 -6
  274. package/dist/helpers/workflowEditorHelper.js +64 -68
  275. package/dist/index.d.ts +6 -6
  276. package/dist/index.js +6 -6
  277. package/dist/mocks/app-environment.js +2 -2
  278. package/dist/mocks/app-forms.js +1 -1
  279. package/dist/mocks/app-navigation.js +2 -2
  280. package/dist/mocks/app-stores.js +3 -3
  281. package/dist/playground/index.d.ts +19 -19
  282. package/dist/playground/index.js +16 -16
  283. package/dist/playground/mount.d.ts +3 -3
  284. package/dist/playground/mount.js +24 -24
  285. package/dist/registry/builtinFormats.js +13 -13
  286. package/dist/registry/builtinNodes.d.ts +2 -2
  287. package/dist/registry/builtinNodes.js +77 -77
  288. package/dist/registry/index.d.ts +4 -4
  289. package/dist/registry/index.js +4 -4
  290. package/dist/registry/nodeComponentRegistry.d.ts +8 -8
  291. package/dist/registry/nodeComponentRegistry.js +9 -11
  292. package/dist/registry/plugin.d.ts +2 -2
  293. package/dist/registry/plugin.js +11 -11
  294. package/dist/registry/workflowFormatRegistry.d.ts +3 -3
  295. package/dist/registry/workflowFormatRegistry.js +2 -2
  296. package/dist/schema/index.d.ts +1 -1
  297. package/dist/schema/index.js +2 -2
  298. package/dist/services/agentSpecExecutionService.d.ts +3 -3
  299. package/dist/services/agentSpecExecutionService.js +55 -56
  300. package/dist/services/api.d.ts +2 -2
  301. package/dist/services/api.js +37 -37
  302. package/dist/services/apiVariableService.d.ts +1 -1
  303. package/dist/services/apiVariableService.js +34 -41
  304. package/dist/services/autoSaveService.js +8 -8
  305. package/dist/services/categoriesApi.d.ts +2 -2
  306. package/dist/services/categoriesApi.js +8 -8
  307. package/dist/services/chatService.d.ts +1 -1
  308. package/dist/services/chatService.js +18 -18
  309. package/dist/services/draftStorage.d.ts +1 -1
  310. package/dist/services/draftStorage.js +11 -11
  311. package/dist/services/dynamicSchemaService.d.ts +1 -1
  312. package/dist/services/dynamicSchemaService.js +39 -41
  313. package/dist/services/globalSave.d.ts +2 -2
  314. package/dist/services/globalSave.js +38 -41
  315. package/dist/services/historyService.d.ts +1 -1
  316. package/dist/services/historyService.js +10 -10
  317. package/dist/services/interruptService.d.ts +1 -1
  318. package/dist/services/interruptService.js +29 -35
  319. package/dist/services/nodeExecutionService.d.ts +1 -1
  320. package/dist/services/nodeExecutionService.js +44 -45
  321. package/dist/services/playgroundService.d.ts +1 -1
  322. package/dist/services/playgroundService.js +29 -29
  323. package/dist/services/portConfigApi.d.ts +2 -2
  324. package/dist/services/portConfigApi.js +8 -8
  325. package/dist/services/settingsService.d.ts +2 -2
  326. package/dist/services/settingsService.js +19 -25
  327. package/dist/services/toastService.d.ts +4 -4
  328. package/dist/services/toastService.js +33 -33
  329. package/dist/services/variableService.d.ts +1 -1
  330. package/dist/services/variableService.js +36 -36
  331. package/dist/services/workflowStorage.d.ts +2 -2
  332. package/dist/services/workflowStorage.js +13 -13
  333. package/dist/settings/index.d.ts +7 -7
  334. package/dist/settings/index.js +6 -6
  335. package/dist/skins/default.d.ts +1 -1
  336. package/dist/skins/default.js +1 -1
  337. package/dist/skins/index.d.ts +3 -3
  338. package/dist/skins/index.js +7 -7
  339. package/dist/skins/slate.d.ts +1 -1
  340. package/dist/skins/slate.js +69 -69
  341. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  342. package/dist/stores/categoriesStore.svelte.js +5 -5
  343. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  344. package/dist/stores/editorStateMachine.svelte.js +34 -34
  345. package/dist/stores/historyStore.svelte.d.ts +4 -4
  346. package/dist/stores/historyStore.svelte.js +4 -4
  347. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  348. package/dist/stores/interruptStore.svelte.js +21 -21
  349. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  350. package/dist/stores/playgroundStore.svelte.js +18 -21
  351. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  352. package/dist/stores/portCoordinateStore.svelte.js +10 -13
  353. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  354. package/dist/stores/settingsStore.svelte.js +57 -62
  355. package/dist/stores/workflowStore.svelte.d.ts +3 -3
  356. package/dist/stores/workflowStore.svelte.js +46 -47
  357. package/dist/stories/CanvasDecorator.svelte +7 -10
  358. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  359. package/dist/stories/EdgeDecorator.svelte +28 -31
  360. package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
  361. package/dist/stories/NodeDecorator.svelte +14 -20
  362. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  363. package/dist/stories/utils.d.ts +2 -2
  364. package/dist/stories/utils.js +89 -93
  365. package/dist/styles/base.css +16 -50
  366. package/dist/styles/tokens.css +10 -28
  367. package/dist/svelte-app.d.ts +10 -10
  368. package/dist/svelte-app.js +39 -39
  369. package/dist/themes/default.d.ts +1 -1
  370. package/dist/themes/default.js +4 -4
  371. package/dist/themes/index.d.ts +3 -3
  372. package/dist/themes/index.js +11 -11
  373. package/dist/themes/minimal.d.ts +1 -1
  374. package/dist/themes/minimal.js +5 -5
  375. package/dist/types/agentspec.d.ts +18 -18
  376. package/dist/types/agentspec.js +2 -2
  377. package/dist/types/auth.d.ts +1 -1
  378. package/dist/types/auth.js +6 -6
  379. package/dist/types/chat.d.ts +2 -2
  380. package/dist/types/config.d.ts +6 -6
  381. package/dist/types/events.d.ts +3 -3
  382. package/dist/types/events.js +2 -2
  383. package/dist/types/index.d.ts +32 -32
  384. package/dist/types/index.js +6 -6
  385. package/dist/types/interrupt.d.ts +6 -6
  386. package/dist/types/interrupt.js +21 -21
  387. package/dist/types/interruptState.d.ts +12 -12
  388. package/dist/types/interruptState.js +66 -66
  389. package/dist/types/playground.d.ts +7 -7
  390. package/dist/types/playground.js +14 -14
  391. package/dist/types/settings.d.ts +7 -5
  392. package/dist/types/settings.js +19 -24
  393. package/dist/types/skin.d.ts +1 -1
  394. package/dist/types/theme.d.ts +2 -2
  395. package/dist/types/uischema.d.ts +4 -4
  396. package/dist/types/uischema.js +3 -3
  397. package/dist/utils/colors.d.ts +1 -1
  398. package/dist/utils/colors.js +95 -97
  399. package/dist/utils/config.d.ts +2 -2
  400. package/dist/utils/config.js +48 -48
  401. package/dist/utils/connections.d.ts +2 -2
  402. package/dist/utils/connections.js +15 -15
  403. package/dist/utils/edgeStyling.d.ts +2 -2
  404. package/dist/utils/edgeStyling.js +36 -39
  405. package/dist/utils/errors.js +3 -3
  406. package/dist/utils/fetchWithAuth.d.ts +1 -1
  407. package/dist/utils/fetchWithAuth.js +2 -2
  408. package/dist/utils/handleIds.d.ts +2 -2
  409. package/dist/utils/handleIds.js +8 -8
  410. package/dist/utils/handlePositioning.d.ts +1 -1
  411. package/dist/utils/handlePositioning.js +2 -2
  412. package/dist/utils/icons.d.ts +1 -1
  413. package/dist/utils/icons.js +74 -74
  414. package/dist/utils/logger.d.ts +1 -1
  415. package/dist/utils/logger.js +7 -7
  416. package/dist/utils/nodeIds.d.ts +1 -1
  417. package/dist/utils/nodeIds.js +1 -1
  418. package/dist/utils/nodeStatus.d.ts +1 -1
  419. package/dist/utils/nodeStatus.js +48 -48
  420. package/dist/utils/nodeSwap.d.ts +9 -9
  421. package/dist/utils/nodeSwap.js +52 -58
  422. package/dist/utils/nodeTypes.d.ts +1 -1
  423. package/dist/utils/nodeTypes.js +20 -21
  424. package/dist/utils/nodeWrapper.d.ts +7 -7
  425. package/dist/utils/nodeWrapper.js +19 -21
  426. package/dist/utils/performanceUtils.d.ts +1 -1
  427. package/dist/utils/performanceUtils.js +1 -2
  428. package/dist/utils/portUtils.d.ts +2 -2
  429. package/dist/utils/portUtils.js +1 -1
  430. package/dist/utils/sanitize.js +1 -1
  431. package/dist/utils/uischema.d.ts +2 -2
  432. package/dist/utils/uischema.js +8 -8
  433. package/dist/utils/validation.js +8 -8
  434. package/package.json +7 -11
@@ -7,29 +7,29 @@
7
7
  -->
8
8
 
9
9
  <script lang="ts">
10
- import Icon from "@iconify/svelte";
11
- import { tick } from "svelte";
12
- import MessageBubble from "./MessageBubble.svelte";
13
- import { InterruptBubble } from "../interrupt/index.js";
14
- import type { PlaygroundMessage } from "../../types/playground.js";
15
- import { hasEnableRunFlag } from "../../types/playground.js";
10
+ import Icon from '@iconify/svelte';
11
+ import { tick } from 'svelte';
12
+ import MessageBubble from './MessageBubble.svelte';
13
+ import { InterruptBubble } from '../interrupt/index.js';
14
+ import type { PlaygroundMessage } from '../../types/playground.js';
15
+ import { hasEnableRunFlag } from '../../types/playground.js';
16
16
  import {
17
17
  isInterruptMetadata,
18
18
  extractInterruptMetadata,
19
- metadataToInterrupt,
20
- } from "../../types/interrupt.js";
19
+ metadataToInterrupt
20
+ } from '../../types/interrupt.js';
21
21
  import {
22
22
  getMessages,
23
23
  getChatMessages,
24
24
  getIsExecuting,
25
25
  getSessionStatus,
26
- getCurrentSession,
27
- } from "../../stores/playgroundStore.svelte.js";
26
+ getCurrentSession
27
+ } from '../../stores/playgroundStore.svelte.js';
28
28
  import {
29
29
  getInterruptsMap,
30
30
  interruptActions,
31
- getInterruptByMessageId,
32
- } from "../../stores/interruptStore.svelte.js";
31
+ getInterruptByMessageId
32
+ } from '../../stores/interruptStore.svelte.js';
33
33
 
34
34
  /**
35
35
  * Component props
@@ -78,7 +78,7 @@
78
78
  let {
79
79
  showTimestamps = true,
80
80
  autoScroll = true,
81
- placeholder = "Type your message...",
81
+ placeholder = 'Type your message...',
82
82
  onSendMessage,
83
83
  onStopExecution,
84
84
  showLogsInline = false,
@@ -86,8 +86,8 @@
86
86
  onInterruptResolved,
87
87
  showChatInput = true,
88
88
  showRunButton = true,
89
- predefinedMessage = "Run workflow",
90
- compactSystemMessages = true,
89
+ predefinedMessage = 'Run workflow',
90
+ compactSystemMessages = true
91
91
  }: Props = $props();
92
92
 
93
93
  /**
@@ -104,7 +104,7 @@
104
104
  const noInputsAvailable = $derived(!showChatInput && !showRunButton);
105
105
 
106
106
  /** Input field value */
107
- let inputValue = $state("");
107
+ let inputValue = $state('');
108
108
 
109
109
  /** Reference to the messages container for scrolling */
110
110
  let messagesContainer = $state<HTMLDivElement>();
@@ -115,9 +115,7 @@
115
115
  /**
116
116
  * Filter messages based on showLogsInline setting
117
117
  */
118
- const displayMessages = $derived(
119
- showLogsInline ? getMessages() : getChatMessages(),
120
- );
118
+ const displayMessages = $derived(showLogsInline ? getMessages() : getChatMessages());
121
119
 
122
120
  /**
123
121
  * Track previous message count for detecting new messages.
@@ -151,11 +149,11 @@
151
149
  if (!activeElement) return false;
152
150
  // Check if active element is a form control inside the messages container
153
151
  const isFormControl =
154
- activeElement.tagName === "INPUT" ||
155
- activeElement.tagName === "TEXTAREA" ||
156
- activeElement.tagName === "SELECT" ||
157
- activeElement.tagName === "BUTTON" ||
158
- activeElement.getAttribute("contenteditable") === "true";
152
+ activeElement.tagName === 'INPUT' ||
153
+ activeElement.tagName === 'TEXTAREA' ||
154
+ activeElement.tagName === 'SELECT' ||
155
+ activeElement.tagName === 'BUTTON' ||
156
+ activeElement.getAttribute('contenteditable') === 'true';
159
157
  return isFormControl && messagesContainer.contains(activeElement);
160
158
  }
161
159
 
@@ -163,9 +161,7 @@
163
161
  * Check if a message is an interrupt request
164
162
  */
165
163
  function isInterruptMessage(message: PlaygroundMessage): boolean {
166
- return isInterruptMetadata(
167
- message.metadata as Record<string, unknown> | undefined,
168
- );
164
+ return isInterruptMetadata(message.metadata as Record<string, unknown> | undefined);
169
165
  }
170
166
 
171
167
  /**
@@ -188,14 +184,10 @@
188
184
  if (!existing) {
189
185
  // Extract and validate interrupt metadata
190
186
  const metadata = extractInterruptMetadata(
191
- message.metadata as Record<string, unknown> | undefined,
187
+ message.metadata as Record<string, unknown> | undefined
192
188
  );
193
189
  if (metadata) {
194
- const interrupt = metadataToInterrupt(
195
- metadata,
196
- message.id,
197
- message.content,
198
- );
190
+ const interrupt = metadataToInterrupt(metadata, message.id, message.content);
199
191
  interruptActions.addInterrupt(interrupt);
200
192
 
201
193
  // If the message status is 'completed', mark the interrupt as resolved
@@ -203,11 +195,8 @@
203
195
  // - "Confirmation Submitted" header
204
196
  // - Disabled buttons
205
197
  // - "Response submitted" indicator
206
- if (message.status === "completed") {
207
- interruptActions.resolveInterrupt(
208
- interrupt.id,
209
- metadata.response_value,
210
- );
198
+ if (message.status === 'completed') {
199
+ interruptActions.resolveInterrupt(interrupt.id, metadata.response_value);
211
200
  }
212
201
  }
213
202
  }
@@ -222,8 +211,8 @@
222
211
  new Map(
223
212
  Array.from(getInterruptsMap().values())
224
213
  .filter((i) => i.messageId)
225
- .map((i) => [i.messageId, i]),
226
- ),
214
+ .map((i) => [i.messageId, i])
215
+ )
227
216
  );
228
217
 
229
218
  /**
@@ -236,16 +225,12 @@
236
225
  /**
237
226
  * Check if we should show the welcome state
238
227
  */
239
- const showWelcome = $derived(
240
- !getCurrentSession() && displayMessages.length === 0,
241
- );
228
+ const showWelcome = $derived(!getCurrentSession() && displayMessages.length === 0);
242
229
 
243
230
  /**
244
231
  * Check if we should show the empty chat state (session exists but no messages)
245
232
  */
246
- const showEmptyChat = $derived(
247
- getCurrentSession() && displayMessages.length === 0,
248
- );
233
+ const showEmptyChat = $derived(getCurrentSession() && displayMessages.length === 0);
249
234
 
250
235
  /**
251
236
  * Handle sending a message
@@ -257,11 +242,11 @@
257
242
  }
258
243
 
259
244
  onSendMessage?.(trimmedValue);
260
- inputValue = "";
245
+ inputValue = '';
261
246
 
262
247
  // Reset textarea height
263
248
  if (inputField) {
264
- inputField.style.height = "auto";
249
+ inputField.style.height = 'auto';
265
250
  }
266
251
 
267
252
  // Re-focus the input
@@ -274,7 +259,7 @@
274
259
  * Handle keyboard events in the input
275
260
  */
276
261
  function handleKeydown(event: KeyboardEvent): void {
277
- if (event.key === "Enter" && !event.shiftKey) {
262
+ if (event.key === 'Enter' && !event.shiftKey) {
278
263
  event.preventDefault();
279
264
  handleSend();
280
265
  }
@@ -421,11 +406,7 @@
421
406
  */
422
407
  $effect(() => {
423
408
  const status = getSessionStatus();
424
- if (
425
- (status === "idle" || status === "completed") &&
426
- inputField &&
427
- !getIsExecuting()
428
- ) {
409
+ if ((status === 'idle' || status === 'completed') && inputField && !getIsExecuting()) {
429
410
  tick().then(() => {
430
411
  inputField?.focus();
431
412
  });
@@ -449,7 +430,7 @@
449
430
  */
450
431
  function handleInput(): void {
451
432
  if (inputField) {
452
- inputField.style.height = "auto";
433
+ inputField.style.height = 'auto';
453
434
  inputField.style.height = `${Math.min(inputField.scrollHeight, 120)}px`;
454
435
  }
455
436
  }
@@ -481,24 +462,9 @@
481
462
  stroke-width="2"
482
463
  stroke-linejoin="round"
483
464
  />
484
- <path
485
- d="M24 24V40"
486
- stroke="currentColor"
487
- stroke-width="2"
488
- stroke-linejoin="round"
489
- />
490
- <path
491
- d="M16 12L32 20"
492
- stroke="currentColor"
493
- stroke-width="2"
494
- stroke-linejoin="round"
495
- />
496
- <path
497
- d="M16 36L32 28"
498
- stroke="currentColor"
499
- stroke-width="2"
500
- stroke-linejoin="round"
501
- />
465
+ <path d="M24 24V40" stroke="currentColor" stroke-width="2" stroke-linejoin="round" />
466
+ <path d="M16 12L32 20" stroke="currentColor" stroke-width="2" stroke-linejoin="round" />
467
+ <path d="M16 36L32 28" stroke="currentColor" stroke-width="2" stroke-linejoin="round" />
502
468
  </svg>
503
469
  </div>
504
470
  {#if noInputsAvailable}
@@ -511,9 +477,7 @@
511
477
  <p class="chat-panel__welcome-text">Test your flow with a prompt</p>
512
478
  {:else}
513
479
  <h2 class="chat-panel__welcome-title">Ready to run</h2>
514
- <p class="chat-panel__welcome-text">
515
- Click Run to execute your workflow
516
- </p>
480
+ <p class="chat-panel__welcome-text">Click Run to execute your workflow</p>
517
481
  {/if}
518
482
  </div>
519
483
  {:else if showEmptyChat}
@@ -539,24 +503,9 @@
539
503
  stroke-width="2"
540
504
  stroke-linejoin="round"
541
505
  />
542
- <path
543
- d="M24 24V40"
544
- stroke="currentColor"
545
- stroke-width="2"
546
- stroke-linejoin="round"
547
- />
548
- <path
549
- d="M16 12L32 20"
550
- stroke="currentColor"
551
- stroke-width="2"
552
- stroke-linejoin="round"
553
- />
554
- <path
555
- d="M16 36L32 28"
556
- stroke="currentColor"
557
- stroke-width="2"
558
- stroke-linejoin="round"
559
- />
506
+ <path d="M24 24V40" stroke="currentColor" stroke-width="2" stroke-linejoin="round" />
507
+ <path d="M16 12L32 20" stroke="currentColor" stroke-width="2" stroke-linejoin="round" />
508
+ <path d="M16 36L32 28" stroke="currentColor" stroke-width="2" stroke-linejoin="round" />
560
509
  </svg>
561
510
  </div>
562
511
  {#if noInputsAvailable}
@@ -569,9 +518,7 @@
569
518
  <p class="chat-panel__welcome-text">Test your flow with a prompt</p>
570
519
  {:else}
571
520
  <h2 class="chat-panel__welcome-title">Ready to run</h2>
572
- <p class="chat-panel__welcome-text">
573
- Click Run to execute your workflow
574
- </p>
521
+ <p class="chat-panel__welcome-text">Click Run to execute your workflow</p>
575
522
  {/if}
576
523
  </div>
577
524
  {:else}
@@ -617,8 +564,7 @@
617
564
  <!-- No inputs available - show informational message -->
618
565
  <div class="chat-panel__no-inputs">
619
566
  <Icon icon="mdi:information-outline" />
620
- <span>View-only mode. Workflow execution is controlled externally.</span
621
- >
567
+ <span>View-only mode. Workflow execution is controlled externally.</span>
622
568
  </div>
623
569
  {:else}
624
570
  <div
@@ -640,7 +586,7 @@
640
586
  </div>
641
587
  {/if}
642
588
 
643
- {#if getSessionStatus() === "running" || getIsExecuting()}
589
+ {#if getSessionStatus() === 'running' || getIsExecuting()}
644
590
  <button
645
591
  type="button"
646
592
  class="chat-panel__stop-btn"
@@ -666,9 +612,7 @@
666
612
  class="chat-panel__run-btn"
667
613
  onclick={handleRun}
668
614
  disabled={!runEnabled}
669
- title={runEnabled
670
- ? "Run workflow"
671
- : "Waiting for workflow to be ready..."}
615
+ title={runEnabled ? 'Run workflow' : 'Waiting for workflow to be ready...'}
672
616
  >
673
617
  <Icon icon="mdi:play" />
674
618
  Run
@@ -7,13 +7,10 @@
7
7
  -->
8
8
 
9
9
  <script lang="ts">
10
- import Icon from "@iconify/svelte";
11
- import { slide } from "svelte/transition";
12
- import type {
13
- PlaygroundMessage,
14
- PlaygroundMessageLevel,
15
- } from "../../types/playground.js";
16
- import { getLogMessages } from "../../stores/playgroundStore.svelte.js";
10
+ import Icon from '@iconify/svelte';
11
+ import { slide } from 'svelte/transition';
12
+ import type { PlaygroundMessage, PlaygroundMessageLevel } from '../../types/playground.js';
13
+ import { getLogMessages } from '../../stores/playgroundStore.svelte.js';
17
14
 
18
15
  /**
19
16
  * Component props
@@ -27,14 +24,10 @@
27
24
  onToggle?: (expanded: boolean) => void;
28
25
  }
29
26
 
30
- let {
31
- isExpanded = $bindable(false),
32
- maxHeight = "300px",
33
- onToggle,
34
- }: Props = $props();
27
+ let { isExpanded = $bindable(false), maxHeight = '300px', onToggle }: Props = $props();
35
28
 
36
29
  /** Current log level filter */
37
- let levelFilter = $state<PlaygroundMessageLevel | "all">("all");
30
+ let levelFilter = $state<PlaygroundMessageLevel | 'all'>('all');
38
31
 
39
32
  /** Reference to logs container for auto-scroll */
40
33
  let logsContainer = $state<HTMLDivElement>();
@@ -43,9 +36,9 @@
43
36
  * Filter logs based on selected level
44
37
  */
45
38
  const filteredLogs = $derived(
46
- levelFilter === "all"
39
+ levelFilter === 'all'
47
40
  ? getLogMessages()
48
- : getLogMessages().filter((log) => log.metadata?.level === levelFilter),
41
+ : getLogMessages().filter((log) => log.metadata?.level === levelFilter)
49
42
  );
50
43
 
51
44
  /**
@@ -53,11 +46,10 @@
53
46
  */
54
47
  const logCounts = $derived({
55
48
  all: getLogMessages().length,
56
- info: getLogMessages().filter((l) => l.metadata?.level === "info").length,
57
- warning: getLogMessages().filter((l) => l.metadata?.level === "warning")
58
- .length,
59
- error: getLogMessages().filter((l) => l.metadata?.level === "error").length,
60
- debug: getLogMessages().filter((l) => l.metadata?.level === "debug").length,
49
+ info: getLogMessages().filter((l) => l.metadata?.level === 'info').length,
50
+ warning: getLogMessages().filter((l) => l.metadata?.level === 'warning').length,
51
+ error: getLogMessages().filter((l) => l.metadata?.level === 'error').length,
52
+ debug: getLogMessages().filter((l) => l.metadata?.level === 'debug').length
61
53
  });
62
54
 
63
55
  /**
@@ -73,12 +65,12 @@
73
65
  */
74
66
  function formatTimestamp(timestamp: string): string {
75
67
  const date = new Date(timestamp);
76
- return date.toLocaleTimeString("en-US", {
68
+ return date.toLocaleTimeString('en-US', {
77
69
  hour12: false,
78
- hour: "2-digit",
79
- minute: "2-digit",
80
- second: "2-digit",
81
- fractionalSecondDigits: 3,
70
+ hour: '2-digit',
71
+ minute: '2-digit',
72
+ second: '2-digit',
73
+ fractionalSecondDigits: 3
82
74
  });
83
75
  }
84
76
 
@@ -87,14 +79,14 @@
87
79
  */
88
80
  function getLevelIcon(level: PlaygroundMessageLevel | undefined): string {
89
81
  switch (level) {
90
- case "error":
91
- return "mdi:alert-circle";
92
- case "warning":
93
- return "mdi:alert";
94
- case "debug":
95
- return "mdi:bug";
82
+ case 'error':
83
+ return 'mdi:alert-circle';
84
+ case 'warning':
85
+ return 'mdi:alert';
86
+ case 'debug':
87
+ return 'mdi:bug';
96
88
  default:
97
- return "mdi:information";
89
+ return 'mdi:information';
98
90
  }
99
91
  }
100
92
 
@@ -105,15 +97,15 @@
105
97
  const logText = filteredLogs
106
98
  .map(
107
99
  (log) =>
108
- `[${formatTimestamp(log.timestamp)}] [${(log.metadata?.level ?? "info").toUpperCase()}] ${log.content}${log.nodeId ? ` (Node: ${log.nodeId})` : ""}`,
100
+ `[${formatTimestamp(log.timestamp)}] [${(log.metadata?.level ?? 'info').toUpperCase()}] ${log.content}${log.nodeId ? ` (Node: ${log.nodeId})` : ''}`
109
101
  )
110
- .join("\n");
102
+ .join('\n');
111
103
 
112
- const blob = new Blob([logText], { type: "text/plain" });
104
+ const blob = new Blob([logText], { type: 'text/plain' });
113
105
  const url = URL.createObjectURL(blob);
114
- const link = document.createElement("a");
106
+ const link = document.createElement('a');
115
107
  link.href = url;
116
- link.download = `playground-logs-${new Date().toISOString().split("T")[0]}.txt`;
108
+ link.download = `playground-logs-${new Date().toISOString().split('T')[0]}.txt`;
117
109
  link.click();
118
110
  URL.revokeObjectURL(url);
119
111
  }
@@ -143,21 +135,16 @@
143
135
  <span class="execution-logs__badge">{logCounts.all}</span>
144
136
  {/if}
145
137
  {#if logCounts.error > 0}
146
- <span class="execution-logs__badge execution-logs__badge--error"
147
- >{logCounts.error}</span
148
- >
138
+ <span class="execution-logs__badge execution-logs__badge--error">{logCounts.error}</span>
149
139
  {/if}
150
140
  {#if logCounts.warning > 0}
151
- <span class="execution-logs__badge execution-logs__badge--warning"
152
- >{logCounts.warning}</span
141
+ <span class="execution-logs__badge execution-logs__badge--warning">{logCounts.warning}</span
153
142
  >
154
143
  {/if}
155
144
  </div>
156
145
  <Icon
157
146
  icon="mdi:chevron-down"
158
- class="execution-logs__chevron {isExpanded
159
- ? 'execution-logs__chevron--expanded'
160
- : ''}"
147
+ class="execution-logs__chevron {isExpanded ? 'execution-logs__chevron--expanded' : ''}"
161
148
  />
162
149
  </button>
163
150
 
@@ -170,32 +157,32 @@
170
157
  <button
171
158
  type="button"
172
159
  class="execution-logs__filter"
173
- class:execution-logs__filter--active={levelFilter === "all"}
174
- onclick={() => (levelFilter = "all")}
160
+ class:execution-logs__filter--active={levelFilter === 'all'}
161
+ onclick={() => (levelFilter = 'all')}
175
162
  >
176
163
  All ({logCounts.all})
177
164
  </button>
178
165
  <button
179
166
  type="button"
180
167
  class="execution-logs__filter execution-logs__filter--info"
181
- class:execution-logs__filter--active={levelFilter === "info"}
182
- onclick={() => (levelFilter = "info")}
168
+ class:execution-logs__filter--active={levelFilter === 'info'}
169
+ onclick={() => (levelFilter = 'info')}
183
170
  >
184
171
  Info ({logCounts.info})
185
172
  </button>
186
173
  <button
187
174
  type="button"
188
175
  class="execution-logs__filter execution-logs__filter--warning"
189
- class:execution-logs__filter--active={levelFilter === "warning"}
190
- onclick={() => (levelFilter = "warning")}
176
+ class:execution-logs__filter--active={levelFilter === 'warning'}
177
+ onclick={() => (levelFilter = 'warning')}
191
178
  >
192
179
  Warning ({logCounts.warning})
193
180
  </button>
194
181
  <button
195
182
  type="button"
196
183
  class="execution-logs__filter execution-logs__filter--error"
197
- class:execution-logs__filter--active={levelFilter === "error"}
198
- onclick={() => (levelFilter = "error")}
184
+ class:execution-logs__filter--active={levelFilter === 'error'}
185
+ onclick={() => (levelFilter = 'error')}
199
186
  >
200
187
  Error ({logCounts.error})
201
188
  </button>
@@ -212,11 +199,7 @@
212
199
  </div>
213
200
 
214
201
  <!-- Logs List -->
215
- <div
216
- class="execution-logs__list"
217
- bind:this={logsContainer}
218
- style="max-height: {maxHeight}"
219
- >
202
+ <div class="execution-logs__list" bind:this={logsContainer} style="max-height: {maxHeight}">
220
203
  {#if filteredLogs.length === 0}
221
204
  <div class="execution-logs__empty">
222
205
  <Icon icon="mdi:file-document-outline" />
@@ -226,12 +209,9 @@
226
209
  {#each filteredLogs as log (log.id)}
227
210
  <div
228
211
  class="execution-logs__entry"
229
- class:execution-logs__entry--error={log.metadata?.level ===
230
- "error"}
231
- class:execution-logs__entry--warning={log.metadata?.level ===
232
- "warning"}
233
- class:execution-logs__entry--debug={log.metadata?.level ===
234
- "debug"}
212
+ class:execution-logs__entry--error={log.metadata?.level === 'error'}
213
+ class:execution-logs__entry--warning={log.metadata?.level === 'warning'}
214
+ class:execution-logs__entry--debug={log.metadata?.level === 'debug'}
235
215
  >
236
216
  <span class="execution-logs__entry-time">
237
217
  {formatTimestamp(log.timestamp)}
@@ -243,10 +223,7 @@
243
223
  {log.content}
244
224
  </span>
245
225
  {#if log.nodeId}
246
- <span
247
- class="execution-logs__entry-node"
248
- title="Node: {log.nodeId}"
249
- >
226
+ <span class="execution-logs__entry-node" title="Node: {log.nodeId}">
250
227
  {log.metadata?.nodeLabel ?? log.nodeId}
251
228
  </span>
252
229
  {/if}