@flowdrop/flowdrop 1.5.0 → 1.7.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 (435) 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 +280 -303
  40. package/dist/components/App.svelte.d.ts +11 -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 +46 -59
  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 +51 -81
  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/schemas/v1/workflow.schema.json +5 -0
  299. package/dist/services/agentSpecExecutionService.d.ts +3 -3
  300. package/dist/services/agentSpecExecutionService.js +55 -56
  301. package/dist/services/api.d.ts +2 -2
  302. package/dist/services/api.js +37 -37
  303. package/dist/services/apiVariableService.d.ts +1 -1
  304. package/dist/services/apiVariableService.js +34 -41
  305. package/dist/services/autoSaveService.js +8 -8
  306. package/dist/services/categoriesApi.d.ts +2 -2
  307. package/dist/services/categoriesApi.js +8 -8
  308. package/dist/services/chatService.d.ts +1 -1
  309. package/dist/services/chatService.js +18 -18
  310. package/dist/services/draftStorage.d.ts +1 -1
  311. package/dist/services/draftStorage.js +11 -11
  312. package/dist/services/dynamicSchemaService.d.ts +1 -1
  313. package/dist/services/dynamicSchemaService.js +39 -41
  314. package/dist/services/globalSave.d.ts +2 -2
  315. package/dist/services/globalSave.js +38 -41
  316. package/dist/services/historyService.d.ts +1 -1
  317. package/dist/services/historyService.js +10 -10
  318. package/dist/services/interruptService.d.ts +1 -1
  319. package/dist/services/interruptService.js +29 -35
  320. package/dist/services/nodeExecutionService.d.ts +1 -1
  321. package/dist/services/nodeExecutionService.js +44 -45
  322. package/dist/services/playgroundService.d.ts +1 -1
  323. package/dist/services/playgroundService.js +29 -29
  324. package/dist/services/portConfigApi.d.ts +2 -2
  325. package/dist/services/portConfigApi.js +8 -8
  326. package/dist/services/settingsService.d.ts +2 -2
  327. package/dist/services/settingsService.js +19 -25
  328. package/dist/services/toastService.d.ts +4 -4
  329. package/dist/services/toastService.js +33 -33
  330. package/dist/services/variableService.d.ts +1 -1
  331. package/dist/services/variableService.js +36 -36
  332. package/dist/services/workflowStorage.d.ts +2 -2
  333. package/dist/services/workflowStorage.js +13 -13
  334. package/dist/settings/index.d.ts +7 -7
  335. package/dist/settings/index.js +6 -6
  336. package/dist/skins/default.d.ts +1 -1
  337. package/dist/skins/default.js +1 -1
  338. package/dist/skins/index.d.ts +3 -3
  339. package/dist/skins/index.js +7 -7
  340. package/dist/skins/slate.d.ts +1 -1
  341. package/dist/skins/slate.js +69 -69
  342. package/dist/stores/categoriesStore.svelte.d.ts +1 -1
  343. package/dist/stores/categoriesStore.svelte.js +5 -5
  344. package/dist/stores/editorStateMachine.svelte.d.ts +2 -2
  345. package/dist/stores/editorStateMachine.svelte.js +34 -34
  346. package/dist/stores/historyStore.svelte.d.ts +4 -4
  347. package/dist/stores/historyStore.svelte.js +4 -4
  348. package/dist/stores/interruptStore.svelte.d.ts +3 -3
  349. package/dist/stores/interruptStore.svelte.js +21 -21
  350. package/dist/stores/playgroundStore.svelte.d.ts +2 -2
  351. package/dist/stores/playgroundStore.svelte.js +18 -21
  352. package/dist/stores/portCoordinateStore.svelte.d.ts +2 -2
  353. package/dist/stores/portCoordinateStore.svelte.js +10 -13
  354. package/dist/stores/settingsStore.svelte.d.ts +2 -2
  355. package/dist/stores/settingsStore.svelte.js +57 -62
  356. package/dist/stores/workflowStore.svelte.d.ts +4 -3
  357. package/dist/stores/workflowStore.svelte.js +47 -47
  358. package/dist/stories/CanvasDecorator.svelte +7 -10
  359. package/dist/stories/CanvasDecorator.svelte.d.ts +2 -2
  360. package/dist/stories/EdgeDecorator.svelte +28 -31
  361. package/dist/stories/EdgeDecorator.svelte.d.ts +1 -1
  362. package/dist/stories/NodeDecorator.svelte +14 -20
  363. package/dist/stories/NodeDecorator.svelte.d.ts +1 -1
  364. package/dist/stories/utils.d.ts +2 -2
  365. package/dist/stories/utils.js +89 -93
  366. package/dist/styles/base.css +16 -50
  367. package/dist/styles/tokens.css +10 -28
  368. package/dist/svelte-app.d.ts +10 -10
  369. package/dist/svelte-app.js +39 -39
  370. package/dist/themes/default.d.ts +1 -1
  371. package/dist/themes/default.js +4 -4
  372. package/dist/themes/index.d.ts +3 -3
  373. package/dist/themes/index.js +11 -11
  374. package/dist/themes/minimal.d.ts +1 -1
  375. package/dist/themes/minimal.js +5 -5
  376. package/dist/types/agentspec.d.ts +18 -18
  377. package/dist/types/agentspec.js +2 -2
  378. package/dist/types/auth.d.ts +1 -1
  379. package/dist/types/auth.js +6 -6
  380. package/dist/types/chat.d.ts +2 -2
  381. package/dist/types/config.d.ts +6 -6
  382. package/dist/types/events.d.ts +3 -3
  383. package/dist/types/events.js +2 -2
  384. package/dist/types/index.d.ts +34 -32
  385. package/dist/types/index.js +6 -6
  386. package/dist/types/interrupt.d.ts +6 -6
  387. package/dist/types/interrupt.js +21 -21
  388. package/dist/types/interruptState.d.ts +12 -12
  389. package/dist/types/interruptState.js +66 -66
  390. package/dist/types/playground.d.ts +7 -7
  391. package/dist/types/playground.js +14 -14
  392. package/dist/types/settings.d.ts +7 -5
  393. package/dist/types/settings.js +19 -24
  394. package/dist/types/skin.d.ts +1 -1
  395. package/dist/types/theme.d.ts +2 -2
  396. package/dist/types/uischema.d.ts +4 -4
  397. package/dist/types/uischema.js +3 -3
  398. package/dist/utils/colors.d.ts +1 -1
  399. package/dist/utils/colors.js +95 -97
  400. package/dist/utils/config.d.ts +2 -2
  401. package/dist/utils/config.js +48 -48
  402. package/dist/utils/connections.d.ts +6 -2
  403. package/dist/utils/connections.js +21 -15
  404. package/dist/utils/edgeStyling.d.ts +2 -2
  405. package/dist/utils/edgeStyling.js +36 -39
  406. package/dist/utils/errors.js +3 -3
  407. package/dist/utils/fetchWithAuth.d.ts +1 -1
  408. package/dist/utils/fetchWithAuth.js +2 -2
  409. package/dist/utils/handleIds.d.ts +2 -2
  410. package/dist/utils/handleIds.js +8 -8
  411. package/dist/utils/handlePositioning.d.ts +1 -1
  412. package/dist/utils/handlePositioning.js +2 -2
  413. package/dist/utils/icons.d.ts +1 -1
  414. package/dist/utils/icons.js +74 -74
  415. package/dist/utils/logger.d.ts +1 -1
  416. package/dist/utils/logger.js +7 -7
  417. package/dist/utils/nodeIds.d.ts +1 -1
  418. package/dist/utils/nodeIds.js +1 -1
  419. package/dist/utils/nodeStatus.d.ts +1 -1
  420. package/dist/utils/nodeStatus.js +48 -48
  421. package/dist/utils/nodeSwap.d.ts +9 -9
  422. package/dist/utils/nodeSwap.js +52 -58
  423. package/dist/utils/nodeTypes.d.ts +1 -1
  424. package/dist/utils/nodeTypes.js +20 -21
  425. package/dist/utils/nodeWrapper.d.ts +7 -7
  426. package/dist/utils/nodeWrapper.js +19 -21
  427. package/dist/utils/performanceUtils.d.ts +1 -1
  428. package/dist/utils/performanceUtils.js +1 -2
  429. package/dist/utils/portUtils.d.ts +2 -2
  430. package/dist/utils/portUtils.js +1 -1
  431. package/dist/utils/sanitize.js +1 -1
  432. package/dist/utils/uischema.d.ts +2 -2
  433. package/dist/utils/uischema.js +8 -8
  434. package/dist/utils/validation.js +8 -8
  435. package/package.json +7 -11
@@ -6,80 +6,78 @@
6
6
  -->
7
7
 
8
8
  <script lang="ts">
9
- import type { NodeExecutionInfo } from "../types/index.js";
10
- import Icon from "@iconify/svelte";
11
- import StatusLabel from "./StatusLabel.svelte";
9
+ import type { NodeExecutionInfo } from '../types/index.js';
10
+ import Icon from '@iconify/svelte';
11
+ import StatusLabel from './StatusLabel.svelte';
12
12
  import {
13
13
  getStatusColor,
14
14
  getStatusIcon,
15
15
  getStatusLabel,
16
16
  getStatusBackgroundColor,
17
17
  formatExecutionDuration,
18
- formatLastExecuted,
19
- } from "../utils/nodeStatus.js";
18
+ formatLastExecuted
19
+ } from '../utils/nodeStatus.js';
20
20
 
21
21
  interface Props {
22
22
  nodeId?: string;
23
23
  executionInfo?: NodeExecutionInfo;
24
- position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
25
- size?: "sm" | "md" | "lg";
24
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
25
+ size?: 'sm' | 'md' | 'lg';
26
26
  showDetails?: boolean;
27
27
  }
28
28
 
29
29
  let props: Props = $props();
30
30
 
31
31
  // Default values
32
- let position = $derived(props.position || "top-right");
33
- let size = $derived(props.size || "md");
32
+ let position = $derived(props.position || 'top-right');
33
+ let size = $derived(props.size || 'md');
34
34
  let showDetails = $derived(props.showDetails || false);
35
35
  let isHovered = $state(false);
36
36
 
37
37
  // Size configurations - optimized for larger, centered overlay
38
38
  const sizeConfig = {
39
39
  sm: {
40
- statusSize: "18px",
41
- iconSize: "10px",
42
- labelSize: "0.75rem",
43
- padding: "6px 12px",
40
+ statusSize: '18px',
41
+ iconSize: '10px',
42
+ labelSize: '0.75rem',
43
+ padding: '6px 12px'
44
44
  },
45
45
  md: {
46
- statusSize: "24px",
47
- iconSize: "14px",
48
- labelSize: "0.875rem",
49
- padding: "8px 16px",
46
+ statusSize: '24px',
47
+ iconSize: '14px',
48
+ labelSize: '0.875rem',
49
+ padding: '8px 16px'
50
50
  },
51
51
  lg: {
52
- statusSize: "28px",
53
- iconSize: "16px",
54
- labelSize: "1rem",
55
- padding: "10px 20px",
56
- },
52
+ statusSize: '28px',
53
+ iconSize: '16px',
54
+ labelSize: '1rem',
55
+ padding: '10px 20px'
56
+ }
57
57
  };
58
58
 
59
59
  const config = $derived(sizeConfig[size]);
60
60
 
61
61
  // Position styles - horizontal center aligned with top edge of node
62
62
  const positionStyles = {
63
- "top-left": "top: -24px; left: 50%; transform: translateX(-50%);",
64
- "top-right": "top: -24px; left: 50%; transform: translateX(-50%);",
65
- "bottom-left": "top: -24px; left: 50%; transform: translateX(-50%);",
66
- "bottom-right": "top: -24px; left: 50%; transform: translateX(-50%);",
63
+ 'top-left': 'top: -24px; left: 50%; transform: translateX(-50%);',
64
+ 'top-right': 'top: -24px; left: 50%; transform: translateX(-50%);',
65
+ 'bottom-left': 'top: -24px; left: 50%; transform: translateX(-50%);',
66
+ 'bottom-right': 'top: -24px; left: 50%; transform: translateX(-50%);'
67
67
  };
68
68
 
69
69
  // Get execution info or default
70
70
  let executionInfo = $derived(
71
71
  props.executionInfo || {
72
- status: "idle" as const,
72
+ status: 'idle' as const,
73
73
  executionCount: 0,
74
- isExecuting: false,
75
- },
74
+ isExecuting: false
75
+ }
76
76
  );
77
77
 
78
78
  // Show overlay if there's meaningful status information
79
79
  let shouldShow = $derived(
80
- executionInfo.status !== "idle" ||
81
- executionInfo.executionCount > 0 ||
82
- executionInfo.isExecuting,
80
+ executionInfo.status !== 'idle' || executionInfo.executionCount > 0 || executionInfo.isExecuting
83
81
  );
84
82
  </script>
85
83
 
@@ -88,9 +86,9 @@
88
86
  class="node-status-overlay"
89
87
  class:node-status-overlay--hovered={isHovered}
90
88
  class:node-status-overlay--top-left={true}
91
- class:node-status-overlay--sm={size === "sm"}
92
- class:node-status-overlay--md={size === "md"}
93
- class:node-status-overlay--lg={size === "lg"}
89
+ class:node-status-overlay--sm={size === 'sm'}
90
+ class:node-status-overlay--md={size === 'md'}
91
+ class:node-status-overlay--lg={size === 'lg'}
94
92
  style="
95
93
  {positionStyles[position]}
96
94
  --status-size: {config.statusSize};
@@ -100,9 +98,7 @@
100
98
  "
101
99
  onmouseenter={() => (isHovered = true)}
102
100
  onmouseleave={() => (isHovered = false)}
103
- title="{getStatusLabel(
104
- executionInfo.status,
105
- )} - Executed {executionInfo.executionCount} times"
101
+ title="{getStatusLabel(executionInfo.status)} - Executed {executionInfo.executionCount} times"
106
102
  role="status"
107
103
  aria-label="Node execution status: {getStatusLabel(executionInfo.status)}"
108
104
  >
@@ -115,10 +111,7 @@
115
111
  class="node-status-overlay__status-icon"
116
112
  style="background-color: {getStatusColor(executionInfo.status)}"
117
113
  >
118
- <Icon
119
- icon={getStatusIcon(executionInfo.status)}
120
- class="node-status-overlay__icon"
121
- />
114
+ <Icon icon={getStatusIcon(executionInfo.status)} class="node-status-overlay__icon" />
122
115
  </div>
123
116
  <StatusLabel
124
117
  label={getStatusLabel(executionInfo.status)}
@@ -144,9 +137,7 @@
144
137
  </div>
145
138
  <div class="node-status-overlay__detail-item">
146
139
  <span class="node-status-overlay__detail-label">Executions:</span>
147
- <span class="node-status-overlay__detail-value"
148
- >{executionInfo.executionCount}</span
149
- >
140
+ <span class="node-status-overlay__detail-value">{executionInfo.executionCount}</span>
150
141
  </div>
151
142
  {#if executionInfo.lastExecuted}
152
143
  <div class="node-status-overlay__detail-item">
@@ -160,20 +151,14 @@
160
151
  <div class="node-status-overlay__detail-item">
161
152
  <span class="node-status-overlay__detail-label">Duration:</span>
162
153
  <span class="node-status-overlay__detail-value"
163
- >{formatExecutionDuration(
164
- executionInfo.lastExecutionDuration,
165
- )}</span
154
+ >{formatExecutionDuration(executionInfo.lastExecutionDuration)}</span
166
155
  >
167
156
  </div>
168
157
  {/if}
169
158
  {#if executionInfo.lastError}
170
- <div
171
- class="node-status-overlay__detail-item node-status-overlay__detail-item--error"
172
- >
159
+ <div class="node-status-overlay__detail-item node-status-overlay__detail-item--error">
173
160
  <span class="node-status-overlay__detail-label">Error:</span>
174
- <span class="node-status-overlay__detail-value"
175
- >{executionInfo.lastError}</span
176
- >
161
+ <span class="node-status-overlay__detail-value">{executionInfo.lastError}</span>
177
162
  </div>
178
163
  {/if}
179
164
  </div>
@@ -326,7 +311,7 @@
326
311
  }
327
312
 
328
313
  /* Animation for running status */
329
- .node-status-overlay__status-icon[style*="running"] {
314
+ .node-status-overlay__status-icon[style*='running'] {
330
315
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
331
316
  }
332
317
 
@@ -1,9 +1,9 @@
1
- import type { NodeExecutionInfo } from "../types/index.js";
1
+ import type { NodeExecutionInfo } from '../types/index.js';
2
2
  interface Props {
3
3
  nodeId?: string;
4
4
  executionInfo?: NodeExecutionInfo;
5
- position?: "top-left" | "top-right" | "bottom-left" | "bottom-right";
6
- size?: "sm" | "md" | "lg";
5
+ position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
6
+ size?: 'sm' | 'md' | 'lg';
7
7
  showDetails?: boolean;
8
8
  }
9
9
  declare const NodeStatusOverlay: import("svelte").Component<Props, {}, "">;
@@ -6,18 +6,12 @@
6
6
  -->
7
7
 
8
8
  <script lang="ts">
9
- import type {
10
- NodeMetadata,
11
- NodeCategory,
12
- WorkflowFormat,
13
- WorkflowNode,
14
- } from "../types/index.js";
15
- import Icon from "@iconify/svelte";
16
- import { getNodeIcon, getCategoryIcon } from "../utils/icons.js";
17
- import { getCategoryColorToken } from "../utils/colors.js";
18
- import { getCategoryLabel } from "../stores/categoriesStore.svelte.js";
19
- import { getVersionUpgrade } from "../utils/nodeSwap.js";
20
-
9
+ import type { NodeMetadata, NodeCategory, WorkflowFormat, WorkflowNode } from '../types/index.js';
10
+ import Icon from '@iconify/svelte';
11
+ import { getNodeIcon, getCategoryIcon } from '../utils/icons.js';
12
+ import { getCategoryColorToken } from '../utils/colors.js';
13
+ import { getCategoryLabel } from '../stores/categoriesStore.svelte.js';
14
+ import { getVersionUpgrade } from '../utils/nodeSwap.js';
21
15
 
22
16
  interface Props {
23
17
  /** The node being swapped */
@@ -32,20 +26,12 @@
32
26
  onCancel: () => void;
33
27
  }
34
28
 
35
- const {
36
- currentNode,
37
- availableNodes,
38
- activeFormat,
39
- onSelect,
40
- onCancel,
41
- }: Props = $props();
29
+ const { currentNode, availableNodes, activeFormat, onSelect, onCancel }: Props = $props();
42
30
 
43
- let searchInput = $state("");
31
+ let searchInput = $state('');
44
32
 
45
33
  /** Check version upgrade availability */
46
- let versionUpgrade = $derived(
47
- getVersionUpgrade(currentNode.data.metadata, availableNodes),
48
- );
34
+ let versionUpgrade = $derived(getVersionUpgrade(currentNode.data.metadata, availableNodes));
49
35
 
50
36
  /** Filter nodes compatible with active format */
51
37
  function isNodeCompatibleWithFormat(node: NodeMetadata): boolean {
@@ -55,9 +41,7 @@
55
41
  }
56
42
 
57
43
  /** Nodes filtered by format compatibility */
58
- let formatCompatibleNodes = $derived(
59
- availableNodes.filter((n) => isNodeCompatibleWithFormat(n)),
60
- );
44
+ let formatCompatibleNodes = $derived(availableNodes.filter((n) => isNodeCompatibleWithFormat(n)));
61
45
 
62
46
  /** Apply search filter */
63
47
  let filteredNodes = $derived.by(() => {
@@ -68,7 +52,7 @@
68
52
  (node) =>
69
53
  node.name.toLowerCase().includes(query) ||
70
54
  node.description.toLowerCase().includes(query) ||
71
- node.tags?.some((tag) => tag.toLowerCase().includes(query)),
55
+ node.tags?.some((tag) => tag.toLowerCase().includes(query))
72
56
  );
73
57
  }
74
58
  return nodes;
@@ -96,11 +80,7 @@
96
80
  <div class="swap-picker">
97
81
  <!-- Header -->
98
82
  <div class="swap-picker__header">
99
- <button
100
- class="swap-picker__back"
101
- onclick={onCancel}
102
- aria-label="Back to configuration"
103
- >
83
+ <button class="swap-picker__back" onclick={onCancel} aria-label="Back to configuration">
104
84
  <Icon icon="heroicons:arrow-left" />
105
85
  </button>
106
86
  <h2 class="swap-picker__title">Swap Node</h2>
@@ -114,10 +94,7 @@
114
94
 
115
95
  <!-- Version upgrade banner -->
116
96
  {#if versionUpgrade}
117
- <button
118
- class="swap-picker__upgrade"
119
- onclick={() => onSelect(versionUpgrade!)}
120
- >
97
+ <button class="swap-picker__upgrade" onclick={() => onSelect(versionUpgrade!)}>
121
98
  <Icon icon="heroicons:arrow-up-circle" />
122
99
  <div class="swap-picker__upgrade-info">
123
100
  <span class="swap-picker__upgrade-title">Upgrade Available</span>
@@ -156,10 +133,7 @@
156
133
  </div>
157
134
  <div class="swap-picker__flat-list">
158
135
  {#each categoryNodes as nodeType (nodeType.id)}
159
- <button
160
- class="swap-picker__flat-item"
161
- onclick={() => onSelect(nodeType)}
162
- >
136
+ <button class="swap-picker__flat-item" onclick={() => onSelect(nodeType)}>
163
137
  <span
164
138
  class="swap-picker__flat-dot"
165
139
  style="background: {getCategoryColorToken(nodeType.category)}"
@@ -188,19 +162,12 @@
188
162
  </div>
189
163
  <div class="swap-picker__category-items">
190
164
  {#each categoryNodes as nodeType (nodeType.id)}
191
- <button
192
- class="swap-picker__item"
193
- onclick={() => onSelect(nodeType)}
194
- >
165
+ <button class="swap-picker__item" onclick={() => onSelect(nodeType)}>
195
166
  <span
196
167
  class="swap-picker__item-icon"
197
- style="--_icon-color: {getCategoryColorToken(
198
- nodeType.category,
199
- )}"
168
+ style="--_icon-color: {getCategoryColorToken(nodeType.category)}"
200
169
  >
201
- <Icon
202
- icon={getNodeIcon(nodeType.icon, nodeType.category)}
203
- />
170
+ <Icon icon={getNodeIcon(nodeType.icon, nodeType.category)} />
204
171
  </span>
205
172
  <div class="swap-picker__item-info">
206
173
  <span class="swap-picker__item-name">{nodeType.name}</span>
@@ -208,10 +175,7 @@
208
175
  {nodeType.description}
209
176
  </span>
210
177
  </div>
211
- <Icon
212
- icon="heroicons:chevron-right"
213
- class="swap-picker__item-arrow"
214
- />
178
+ <Icon icon="heroicons:chevron-right" class="swap-picker__item-arrow" />
215
179
  </button>
216
180
  {/each}
217
181
  </div>
@@ -439,11 +403,7 @@
439
403
  width: 1.25rem;
440
404
  height: 1.25rem;
441
405
  border-radius: 0.25rem;
442
- background: color-mix(
443
- in srgb,
444
- var(--_icon-color) var(--fd-node-icon-bg-opacity),
445
- transparent
446
- );
406
+ background: color-mix(in srgb, var(--_icon-color) var(--fd-node-icon-bg-opacity), transparent);
447
407
  color: var(--fd-node-icon);
448
408
  font-size: 0.625rem;
449
409
  display: flex;
@@ -498,11 +458,7 @@
498
458
  width: 1.75rem;
499
459
  height: 1.75rem;
500
460
  border-radius: 0.375rem;
501
- background: color-mix(
502
- in srgb,
503
- var(--_icon-color) var(--fd-node-icon-bg-opacity),
504
- transparent
505
- );
461
+ background: color-mix(in srgb, var(--_icon-color) var(--fd-node-icon-bg-opacity), transparent);
506
462
  color: var(--fd-node-icon);
507
463
  font-size: var(--fd-text-xs);
508
464
  display: flex;
@@ -1,4 +1,4 @@
1
- import type { NodeMetadata, WorkflowFormat, WorkflowNode } from "../types/index.js";
1
+ import type { NodeMetadata, WorkflowFormat, WorkflowNode } from '../types/index.js';
2
2
  interface Props {
3
3
  /** The node being swapped */
4
4
  currentNode: WorkflowNode;
@@ -5,14 +5,14 @@
5
5
  -->
6
6
 
7
7
  <script lang="ts">
8
- import { onMount } from "svelte";
9
- import App from "./App.svelte";
10
- import LogsSidebar from "./LogsSidebar.svelte";
11
- import { EnhancedFlowDropApiClient } from "../api/enhanced-client.js";
12
- import { createEndpointConfig } from "../config/endpoints.js";
13
- import type { Workflow } from "../types/index.js";
14
- import type { EndpointConfig } from "../config/endpoints.js";
15
- import { logger } from "../utils/logger.js";
8
+ import { onMount } from 'svelte';
9
+ import App from './App.svelte';
10
+ import LogsSidebar from './LogsSidebar.svelte';
11
+ import { EnhancedFlowDropApiClient } from '../api/enhanced-client.js';
12
+ import { createEndpointConfig } from '../config/endpoints.js';
13
+ import type { Workflow } from '../types/index.js';
14
+ import type { EndpointConfig } from '../config/endpoints.js';
15
+ import { logger } from '../utils/logger.js';
16
16
 
17
17
  interface Props {
18
18
  pipelineId: string;
@@ -25,31 +25,25 @@
25
25
  label: string;
26
26
  href: string;
27
27
  icon?: string;
28
- variant?: "primary" | "secondary" | "outline";
28
+ variant?: 'primary' | 'secondary' | 'outline';
29
29
  onclick?: (event: Event) => void;
30
- }>,
30
+ }>
31
31
  ) => void;
32
32
  }
33
33
 
34
- let {
35
- pipelineId,
36
- workflow,
37
- apiClient,
38
- baseUrl,
39
- endpointConfig,
40
- onActionsReady,
41
- }: Props = $props();
34
+ let { pipelineId, workflow, apiClient, baseUrl, endpointConfig, onActionsReady }: Props =
35
+ $props();
42
36
 
43
37
  // Initialize API client if not provided
44
38
  // svelte-ignore state_referenced_locally — client created once from props
45
39
  const client =
46
40
  apiClient ||
47
41
  new EnhancedFlowDropApiClient(
48
- endpointConfig ?? createEndpointConfig(baseUrl || "/api/flowdrop"),
42
+ endpointConfig ?? createEndpointConfig(baseUrl || '/api/flowdrop')
49
43
  );
50
44
 
51
45
  // Pipeline status and job data
52
- let pipelineStatus = $state<string>("unknown");
46
+ let pipelineStatus = $state<string>('unknown');
53
47
  interface PipelineNodeStatus {
54
48
  status: string;
55
49
  [key: string]: unknown;
@@ -75,23 +69,19 @@
75
69
  running: 0,
76
70
  completed: 0,
77
71
  failed: 0,
78
- cancelled: 0,
79
- },
72
+ cancelled: 0
73
+ }
80
74
  });
81
75
 
82
76
  // Node statuses for visual indicators
83
- let nodeStatuses = $state<
84
- Record<string, "pending" | "running" | "completed" | "error">
85
- >({});
77
+ let nodeStatuses = $state<Record<string, 'pending' | 'running' | 'completed' | 'error'>>({});
86
78
 
87
79
  // Loading and error states
88
80
  let isLoadingJobStatus = $state(false);
89
81
 
90
82
  // Logs sidebar state
91
83
  let isLogsSidebarOpen = $state(false);
92
- let logs = $state<
93
- Array<{ level: string; message: string; timestamp: string }>
94
- >([]);
84
+ let logs = $state<Array<{ level: string; message: string; timestamp: string }>>([]);
95
85
 
96
86
  /**
97
87
  * Fetch pipeline data including job information
@@ -113,50 +103,38 @@
113
103
  running: 0,
114
104
  completed: 0,
115
105
  failed: 0,
116
- cancelled: 0,
117
- },
106
+ cancelled: 0
107
+ }
118
108
  };
119
109
 
120
110
  // Update node statuses based on job data
121
111
  if (jobStatusData.node_statuses) {
122
- const newNodeStatuses: Record<
123
- string,
124
- "pending" | "running" | "completed" | "error"
125
- > = {};
112
+ const newNodeStatuses: Record<string, 'pending' | 'running' | 'completed' | 'error'> = {};
126
113
 
127
114
  // Initialize all nodes as pending
128
115
  if (workflow && workflow.nodes) {
129
116
  workflow.nodes.forEach((node) => {
130
- newNodeStatuses[node.id] = "pending";
117
+ newNodeStatuses[node.id] = 'pending';
131
118
  });
132
119
  }
133
120
 
134
121
  // Override with actual job statuses
135
122
  for (const nodeId in jobStatusData.node_statuses) {
136
123
  const status = jobStatusData.node_statuses[nodeId].status;
137
- if (
138
- ["pending", "running", "completed", "failed", "cancelled"].includes(
139
- status,
140
- )
141
- ) {
124
+ if (['pending', 'running', 'completed', 'failed', 'cancelled'].includes(status)) {
142
125
  newNodeStatuses[nodeId] =
143
- status === "failed"
144
- ? "error"
145
- : (status as "pending" | "running" | "completed");
126
+ status === 'failed' ? 'error' : (status as 'pending' | 'running' | 'completed');
146
127
  }
147
128
  }
148
129
  nodeStatuses = newNodeStatuses;
149
130
  }
150
131
 
151
- addLog(
152
- "info",
153
- `Job status updated: ${jobStatusData.status_summary.total} total jobs`,
154
- );
132
+ addLog('info', `Job status updated: ${jobStatusData.status_summary.total} total jobs`);
155
133
  } catch (error) {
156
- logger.error("Failed to fetch pipeline data:", error);
134
+ logger.error('Failed to fetch pipeline data:', error);
157
135
  addLog(
158
- "error",
159
- `Failed to fetch pipeline data: ${error instanceof Error ? error.message : "Unknown error"}`,
136
+ 'error',
137
+ `Failed to fetch pipeline data: ${error instanceof Error ? error.message : 'Unknown error'}`
160
138
  );
161
139
  } finally {
162
140
  isLoadingJobStatus = false;
@@ -172,8 +150,8 @@
172
150
  {
173
151
  level,
174
152
  message,
175
- timestamp: new Date().toISOString(),
176
- },
153
+ timestamp: new Date().toISOString()
154
+ }
177
155
  ];
178
156
  }
179
157
 
@@ -190,25 +168,25 @@
190
168
  function getPipelineActions() {
191
169
  return [
192
170
  {
193
- label: isLoadingJobStatus ? "Refreshing..." : "Refresh Status",
194
- href: "#refresh",
195
- icon: isLoadingJobStatus ? "mdi:loading" : "mdi:refresh",
196
- variant: "outline" as const,
171
+ label: isLoadingJobStatus ? 'Refreshing...' : 'Refresh Status',
172
+ href: '#refresh',
173
+ icon: isLoadingJobStatus ? 'mdi:loading' : 'mdi:refresh',
174
+ variant: 'outline' as const,
197
175
  onclick: (e: Event) => {
198
176
  e.preventDefault();
199
177
  fetchPipelineData();
200
- },
178
+ }
201
179
  },
202
180
  {
203
- label: "View Logs",
204
- href: "#logs",
205
- icon: "mdi:file-document-outline",
206
- variant: "outline" as const,
181
+ label: 'View Logs',
182
+ href: '#logs',
183
+ icon: 'mdi:file-document-outline',
184
+ variant: 'outline' as const,
207
185
  onclick: (e: Event) => {
208
186
  e.preventDefault();
209
187
  toggleLogsSidebar();
210
- },
211
- },
188
+ }
189
+ }
212
190
  ];
213
191
  }
214
192
 
@@ -224,12 +202,12 @@
224
202
  const handleRefresh = () => fetchPipelineData();
225
203
  const handleViewLogs = () => toggleLogsSidebar();
226
204
 
227
- window.addEventListener("pipeline-refresh", handleRefresh);
228
- window.addEventListener("pipeline-view-logs", handleViewLogs);
205
+ window.addEventListener('pipeline-refresh', handleRefresh);
206
+ window.addEventListener('pipeline-view-logs', handleViewLogs);
229
207
 
230
208
  return () => {
231
- window.removeEventListener("pipeline-refresh", handleRefresh);
232
- window.removeEventListener("pipeline-view-logs", handleViewLogs);
209
+ window.removeEventListener('pipeline-refresh', handleRefresh);
210
+ window.removeEventListener('pipeline-view-logs', handleViewLogs);
233
211
  };
234
212
  });
235
213
 
@@ -238,35 +216,35 @@
238
216
  if (pipelineStatus && pipelineId && workflow) {
239
217
  const breadcrumbs = [
240
218
  {
241
- label: "Home",
242
- href: "/",
243
- icon: "mdi:home",
219
+ label: 'Home',
220
+ href: '/',
221
+ icon: 'mdi:home'
244
222
  },
245
223
  {
246
- label: "Workflows",
247
- href: "/",
248
- icon: "mdi:view-list",
224
+ label: 'Workflows',
225
+ href: '/',
226
+ icon: 'mdi:view-list'
249
227
  },
250
228
  {
251
- label: workflow.name || "Workflow",
229
+ label: workflow.name || 'Workflow',
252
230
  href: `/workflow/${workflow.id}/edit`,
253
- icon: "mdi:workflow",
231
+ icon: 'mdi:workflow'
254
232
  },
255
233
  {
256
- label: "Pipelines",
234
+ label: 'Pipelines',
257
235
  href: `/workflow/${workflow.id}/pipelines`,
258
- icon: "mdi:source-branch",
236
+ icon: 'mdi:source-branch'
259
237
  },
260
238
  {
261
239
  label: `Pipeline ${pipelineId} - ${pipelineStatus}`,
262
- icon: "mdi:play-circle",
263
- },
240
+ icon: 'mdi:play-circle'
241
+ }
264
242
  ];
265
243
 
266
244
  window.dispatchEvent(
267
- new CustomEvent("page-breadcrumbs-update", {
268
- detail: { breadcrumbs },
269
- }),
245
+ new CustomEvent('page-breadcrumbs-update', {
246
+ detail: { breadcrumbs }
247
+ })
270
248
  );
271
249
  }
272
250
  });
@@ -289,7 +267,7 @@
289
267
  }
290
268
 
291
269
  // Only start polling if pipeline is running
292
- if (pipelineStatus === "running" && pipelineId) {
270
+ if (pipelineStatus === 'running' && pipelineId) {
293
271
  refreshInterval = setInterval(() => {
294
272
  fetchPipelineData();
295
273
  }, 5000);
@@ -317,11 +295,7 @@
317
295
 
318
296
  <!-- Logs Sidebar -->
319
297
  {#if isLogsSidebarOpen}
320
- <LogsSidebar
321
- {logs}
322
- isOpen={isLogsSidebarOpen}
323
- onClose={() => (isLogsSidebarOpen = false)}
324
- />
298
+ <LogsSidebar {logs} isOpen={isLogsSidebarOpen} onClose={() => (isLogsSidebarOpen = false)} />
325
299
  {/if}
326
300
  </div>
327
301
 
@@ -334,7 +308,7 @@
334
308
  }
335
309
 
336
310
  /* Dark mode override */
337
- :global([data-theme="dark"]) .pipeline-status-container {
311
+ :global([data-theme='dark']) .pipeline-status-container {
338
312
  background: linear-gradient(135deg, #141418 0%, #1a1a2e 50%, #16162a 100%);
339
313
  }
340
314
  </style>