@stigmer/react 0.5.1 → 1.0.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 (625) hide show
  1. package/activity/group-activity.d.ts +13 -0
  2. package/activity/group-activity.d.ts.map +1 -0
  3. package/activity/group-activity.js +54 -0
  4. package/activity/group-activity.js.map +1 -0
  5. package/activity/index.d.ts +4 -0
  6. package/activity/index.d.ts.map +1 -0
  7. package/activity/index.js +3 -0
  8. package/activity/index.js.map +1 -0
  9. package/activity/types.d.ts +34 -0
  10. package/activity/types.d.ts.map +1 -0
  11. package/activity/types.js +2 -0
  12. package/activity/types.js.map +1 -0
  13. package/activity/useRecentActivity.d.ts +35 -0
  14. package/activity/useRecentActivity.d.ts.map +1 -0
  15. package/activity/useRecentActivity.js +73 -0
  16. package/activity/useRecentActivity.js.map +1 -0
  17. package/agent/AgentPicker.d.ts.map +1 -1
  18. package/agent/AgentPicker.js +4 -2
  19. package/agent/AgentPicker.js.map +1 -1
  20. package/billing/BillingSection.d.ts.map +1 -1
  21. package/billing/BillingSection.js +1 -1
  22. package/billing/BillingSection.js.map +1 -1
  23. package/composer/ComposerToolbar.d.ts +5 -1
  24. package/composer/ComposerToolbar.d.ts.map +1 -1
  25. package/composer/ComposerToolbar.js +4 -3
  26. package/composer/ComposerToolbar.js.map +1 -1
  27. package/composer/InteractionModePicker.d.ts +40 -0
  28. package/composer/InteractionModePicker.d.ts.map +1 -0
  29. package/composer/InteractionModePicker.js +76 -0
  30. package/composer/InteractionModePicker.js.map +1 -0
  31. package/composer/SessionComposer.d.ts +53 -64
  32. package/composer/SessionComposer.d.ts.map +1 -1
  33. package/composer/SessionComposer.js +20 -8
  34. package/composer/SessionComposer.js.map +1 -1
  35. package/composer/__tests__/SessionComposer-memo.test.js +10 -5
  36. package/composer/__tests__/SessionComposer-memo.test.js.map +1 -1
  37. package/composer/index.d.ts +3 -1
  38. package/composer/index.d.ts.map +1 -1
  39. package/composer/index.js +1 -0
  40. package/composer/index.js.map +1 -1
  41. package/dashboard/DashboardFailedRuns.d.ts +19 -0
  42. package/dashboard/DashboardFailedRuns.d.ts.map +1 -0
  43. package/dashboard/DashboardFailedRuns.js +35 -0
  44. package/dashboard/DashboardFailedRuns.js.map +1 -0
  45. package/dashboard/DashboardKPICards.d.ts +19 -0
  46. package/dashboard/DashboardKPICards.d.ts.map +1 -0
  47. package/dashboard/DashboardKPICards.js +80 -0
  48. package/dashboard/DashboardKPICards.js.map +1 -0
  49. package/dashboard/OperationalDashboard.d.ts +37 -0
  50. package/dashboard/OperationalDashboard.d.ts.map +1 -0
  51. package/dashboard/OperationalDashboard.js +48 -0
  52. package/dashboard/OperationalDashboard.js.map +1 -0
  53. package/dashboard/index.d.ts +8 -0
  54. package/dashboard/index.d.ts.map +1 -0
  55. package/dashboard/index.js +9 -0
  56. package/dashboard/index.js.map +1 -0
  57. package/dashboard/types.d.ts +49 -0
  58. package/dashboard/types.d.ts.map +1 -0
  59. package/dashboard/types.js +2 -0
  60. package/dashboard/types.js.map +1 -0
  61. package/dashboard/useAgentExecutionSummary.d.ts +33 -0
  62. package/dashboard/useAgentExecutionSummary.d.ts.map +1 -0
  63. package/dashboard/useAgentExecutionSummary.js +32 -0
  64. package/dashboard/useAgentExecutionSummary.js.map +1 -0
  65. package/dashboard/useDashboardFailedRuns.d.ts +18 -0
  66. package/dashboard/useDashboardFailedRuns.d.ts.map +1 -0
  67. package/dashboard/useDashboardFailedRuns.js +86 -0
  68. package/dashboard/useDashboardFailedRuns.js.map +1 -0
  69. package/dashboard/useDashboardSummary.d.ts +32 -0
  70. package/dashboard/useDashboardSummary.d.ts.map +1 -0
  71. package/dashboard/useDashboardSummary.js +67 -0
  72. package/dashboard/useDashboardSummary.js.map +1 -0
  73. package/execution/ContextGauge.d.ts +45 -0
  74. package/execution/ContextGauge.d.ts.map +1 -0
  75. package/execution/ContextGauge.js +82 -0
  76. package/execution/ContextGauge.js.map +1 -0
  77. package/execution/InteractionModeBadge.d.ts +24 -0
  78. package/execution/InteractionModeBadge.d.ts.map +1 -0
  79. package/execution/InteractionModeBadge.js +29 -0
  80. package/execution/InteractionModeBadge.js.map +1 -0
  81. package/execution/MessageThread.d.ts +33 -3
  82. package/execution/MessageThread.d.ts.map +1 -1
  83. package/execution/MessageThread.js +51 -9
  84. package/execution/MessageThread.js.map +1 -1
  85. package/execution/PlanCompletionCard.d.ts +23 -0
  86. package/execution/PlanCompletionCard.d.ts.map +1 -0
  87. package/execution/PlanCompletionCard.js +28 -0
  88. package/execution/PlanCompletionCard.js.map +1 -0
  89. package/execution/SummarizationBadge.d.ts +30 -0
  90. package/execution/SummarizationBadge.d.ts.map +1 -0
  91. package/execution/SummarizationBadge.js +61 -0
  92. package/execution/SummarizationBadge.js.map +1 -0
  93. package/execution/SummarizationCard.d.ts +27 -0
  94. package/execution/SummarizationCard.d.ts.map +1 -0
  95. package/execution/SummarizationCard.js +47 -0
  96. package/execution/SummarizationCard.js.map +1 -0
  97. package/execution/__tests__/PlanCompletionCard.test.d.ts +2 -0
  98. package/execution/__tests__/PlanCompletionCard.test.d.ts.map +1 -0
  99. package/execution/__tests__/PlanCompletionCard.test.js +53 -0
  100. package/execution/__tests__/PlanCompletionCard.test.js.map +1 -0
  101. package/execution/__tests__/buildThreadItems-plan-completion.test.d.ts +2 -0
  102. package/execution/__tests__/buildThreadItems-plan-completion.test.d.ts.map +1 -0
  103. package/execution/__tests__/buildThreadItems-plan-completion.test.js +137 -0
  104. package/execution/__tests__/buildThreadItems-plan-completion.test.js.map +1 -0
  105. package/execution/__tests__/useContextWindow.test.d.ts +2 -0
  106. package/execution/__tests__/useContextWindow.test.d.ts.map +1 -0
  107. package/execution/__tests__/useContextWindow.test.js +121 -0
  108. package/execution/__tests__/useContextWindow.test.js.map +1 -0
  109. package/execution/index.d.ts +12 -0
  110. package/execution/index.d.ts.map +1 -1
  111. package/execution/index.js +6 -0
  112. package/execution/index.js.map +1 -1
  113. package/execution/useContextWindow.d.ts +71 -0
  114. package/execution/useContextWindow.d.ts.map +1 -0
  115. package/execution/useContextWindow.js +91 -0
  116. package/execution/useContextWindow.js.map +1 -0
  117. package/execution/useCreateAgentExecution.d.ts +9 -0
  118. package/execution/useCreateAgentExecution.d.ts.map +1 -1
  119. package/execution/useCreateAgentExecution.js +15 -3
  120. package/execution/useCreateAgentExecution.js.map +1 -1
  121. package/index.d.ts +9 -4
  122. package/index.d.ts.map +1 -1
  123. package/index.js +12 -2
  124. package/index.js.map +1 -1
  125. package/internal/VirtualizedThread.d.ts +2 -1
  126. package/internal/VirtualizedThread.d.ts.map +1 -1
  127. package/internal/VirtualizedThread.js +3 -2
  128. package/internal/VirtualizedThread.js.map +1 -1
  129. package/internal/store/index.d.ts +1 -0
  130. package/internal/store/index.d.ts.map +1 -1
  131. package/internal/store/index.js +1 -0
  132. package/internal/store/index.js.map +1 -1
  133. package/internal/store/workflow-execution-event-store.d.ts +92 -0
  134. package/internal/store/workflow-execution-event-store.d.ts.map +1 -0
  135. package/internal/store/workflow-execution-event-store.js +298 -0
  136. package/internal/store/workflow-execution-event-store.js.map +1 -0
  137. package/library/ScopeToggle.d.ts +13 -9
  138. package/library/ScopeToggle.d.ts.map +1 -1
  139. package/library/ScopeToggle.js +43 -22
  140. package/library/ScopeToggle.js.map +1 -1
  141. package/library/VisibilityToggle.js +14 -5
  142. package/library/VisibilityToggle.js.map +1 -1
  143. package/library/index.d.ts +1 -0
  144. package/library/index.d.ts.map +1 -1
  145. package/library/index.js +1 -0
  146. package/library/index.js.map +1 -1
  147. package/library/useExportResource.d.ts +3 -2
  148. package/library/useExportResource.d.ts.map +1 -1
  149. package/library/useExportResource.js +11 -6
  150. package/library/useExportResource.js.map +1 -1
  151. package/mcp-server/McpServerDetailView.d.ts.map +1 -1
  152. package/mcp-server/McpServerDetailView.js +25 -13
  153. package/mcp-server/McpServerDetailView.js.map +1 -1
  154. package/mcp-server/McpServerPicker.d.ts.map +1 -1
  155. package/mcp-server/McpServerPicker.js +4 -2
  156. package/mcp-server/McpServerPicker.js.map +1 -1
  157. package/package.json +16 -5
  158. package/provider.d.ts.map +1 -1
  159. package/provider.js +164 -1
  160. package/provider.js.map +1 -1
  161. package/resource-detail/ResourceDetailShell.d.ts +1 -1
  162. package/resource-detail/ResourceDetailShell.d.ts.map +1 -1
  163. package/resource-detail/ResourceDetailShell.js +6 -6
  164. package/resource-detail/ResourceDetailShell.js.map +1 -1
  165. package/resource-detail/types.d.ts +23 -0
  166. package/resource-detail/types.d.ts.map +1 -1
  167. package/resource-detail/useDeleteResource.d.ts +1 -1
  168. package/resource-detail/useDeleteResource.d.ts.map +1 -1
  169. package/resource-detail/useDeleteResource.js +5 -0
  170. package/resource-detail/useDeleteResource.js.map +1 -1
  171. package/resource-workbench/components/ResourceWorkbench.d.ts.map +1 -1
  172. package/resource-workbench/components/ResourceWorkbench.js +2 -1
  173. package/resource-workbench/components/ResourceWorkbench.js.map +1 -1
  174. package/session/useNewSessionFlow.d.ts.map +1 -1
  175. package/session/useNewSessionFlow.js +1 -0
  176. package/session/useNewSessionFlow.js.map +1 -1
  177. package/session/useSessionConversation.d.ts +7 -0
  178. package/session/useSessionConversation.d.ts.map +1 -1
  179. package/session/useSessionConversation.js +1 -0
  180. package/session/useSessionConversation.js.map +1 -1
  181. package/session/useSessionPageFlow.d.ts.map +1 -1
  182. package/session/useSessionPageFlow.js +1 -0
  183. package/session/useSessionPageFlow.js.map +1 -1
  184. package/session/useSessionUsage.d.ts.map +1 -1
  185. package/session/useSessionUsage.js +65 -4
  186. package/session/useSessionUsage.js.map +1 -1
  187. package/settings/UsageSection.d.ts.map +1 -1
  188. package/settings/UsageSection.js +1 -4
  189. package/settings/UsageSection.js.map +1 -1
  190. package/skill/SkillPicker.d.ts.map +1 -1
  191. package/skill/SkillPicker.js +4 -2
  192. package/skill/SkillPicker.js.map +1 -1
  193. package/src/activity/group-activity.ts +65 -0
  194. package/src/activity/index.ts +13 -0
  195. package/src/activity/types.ts +35 -0
  196. package/src/activity/useRecentActivity.ts +131 -0
  197. package/src/agent/AgentPicker.tsx +6 -1
  198. package/src/billing/BillingSection.tsx +3 -2
  199. package/src/composer/ComposerToolbar.tsx +19 -1
  200. package/src/composer/InteractionModePicker.tsx +189 -0
  201. package/src/composer/SessionComposer.tsx +85 -8
  202. package/src/composer/__tests__/SessionComposer-memo.test.ts +11 -6
  203. package/src/composer/index.ts +7 -0
  204. package/src/dashboard/DashboardFailedRuns.tsx +109 -0
  205. package/src/dashboard/DashboardKPICards.tsx +128 -0
  206. package/src/dashboard/OperationalDashboard.tsx +96 -0
  207. package/src/dashboard/index.ts +37 -0
  208. package/src/dashboard/types.ts +50 -0
  209. package/src/dashboard/useAgentExecutionSummary.ts +71 -0
  210. package/src/dashboard/useDashboardFailedRuns.ts +122 -0
  211. package/src/dashboard/useDashboardSummary.ts +109 -0
  212. package/src/execution/ContextGauge.tsx +243 -0
  213. package/src/execution/InteractionModeBadge.tsx +70 -0
  214. package/src/execution/MessageThread.tsx +88 -3
  215. package/src/execution/PlanCompletionCard.tsx +105 -0
  216. package/src/execution/SummarizationBadge.tsx +188 -0
  217. package/src/execution/SummarizationCard.tsx +126 -0
  218. package/src/execution/__tests__/PlanCompletionCard.test.tsx +67 -0
  219. package/src/execution/__tests__/buildThreadItems-plan-completion.test.ts +197 -0
  220. package/src/execution/__tests__/useContextWindow.test.ts +167 -0
  221. package/src/execution/index.ts +22 -0
  222. package/src/execution/useContextWindow.ts +148 -0
  223. package/src/execution/useCreateAgentExecution.ts +26 -3
  224. package/src/index.ts +222 -0
  225. package/src/internal/VirtualizedThread.tsx +4 -1
  226. package/src/internal/store/index.ts +6 -0
  227. package/src/internal/store/workflow-execution-event-store.ts +391 -0
  228. package/src/library/ScopeToggle.tsx +88 -20
  229. package/src/library/VisibilityToggle.tsx +54 -13
  230. package/src/library/index.ts +2 -0
  231. package/src/library/useExportResource.ts +12 -9
  232. package/src/mcp-server/McpServerDetailView.tsx +80 -148
  233. package/src/mcp-server/McpServerPicker.tsx +6 -1
  234. package/src/provider.tsx +195 -8
  235. package/src/resource-detail/ResourceDetailShell.tsx +21 -4
  236. package/src/resource-detail/types.ts +25 -0
  237. package/src/resource-detail/useDeleteResource.ts +6 -1
  238. package/src/resource-workbench/components/ResourceWorkbench.tsx +4 -0
  239. package/src/session/useNewSessionFlow.ts +1 -0
  240. package/src/session/useSessionConversation.ts +8 -0
  241. package/src/session/useSessionPageFlow.ts +1 -0
  242. package/src/session/useSessionUsage.ts +72 -4
  243. package/src/settings/UsageSection.tsx +1 -9
  244. package/src/skill/SkillPicker.tsx +6 -1
  245. package/src/workflow/ApprovalFormBuilder.tsx +1017 -0
  246. package/src/workflow/BranchConditionBuilder.tsx +451 -0
  247. package/src/workflow/CanvasActionsContext.ts +12 -0
  248. package/src/workflow/CanvasContextMenu.tsx +364 -0
  249. package/src/workflow/CanvasTaskNode.tsx +372 -0
  250. package/src/workflow/CanvasTransitionEdge.tsx +122 -0
  251. package/src/workflow/CostByWorkflowChart.tsx +120 -0
  252. package/src/workflow/ExecutionSummaryWidget.tsx +194 -0
  253. package/src/workflow/ExecutionTrendChart.tsx +157 -0
  254. package/src/workflow/FailedRunsWidget.tsx +109 -0
  255. package/src/workflow/PendingApprovalsWidget.tsx +115 -0
  256. package/src/workflow/TaskConfigForm.tsx +618 -0
  257. package/src/workflow/TaskKindRegistryContext.ts +36 -0
  258. package/src/workflow/TaskPickerPopover.tsx +326 -0
  259. package/src/workflow/WorkflowArchitectDialog.tsx +505 -0
  260. package/src/workflow/WorkflowCanvasEditor.tsx +651 -0
  261. package/src/workflow/WorkflowCanvasInner.tsx +160 -0
  262. package/src/workflow/WorkflowDashboard.tsx +124 -0
  263. package/src/workflow/WorkflowDetailView.tsx +527 -0
  264. package/src/workflow/WorkflowEditorView.tsx +547 -0
  265. package/src/workflow/WorkflowExecutionApprovalCard.tsx +129 -0
  266. package/src/workflow/WorkflowExecutionArtifactPanel.tsx +112 -0
  267. package/src/workflow/WorkflowExecutionCostPanel.tsx +131 -0
  268. package/src/workflow/WorkflowExecutionHeader.tsx +194 -0
  269. package/src/workflow/WorkflowExecutionPhaseBadge.tsx +188 -0
  270. package/src/workflow/WorkflowExecutionTaskPanel.tsx +135 -0
  271. package/src/workflow/WorkflowExecutionTimeline.tsx +118 -0
  272. package/src/workflow/WorkflowExecutionTimelineEvent.tsx +488 -0
  273. package/src/workflow/WorkflowExecutionViewer.tsx +248 -0
  274. package/src/workflow/WorkflowInspectorPanel.tsx +568 -0
  275. package/src/workflow/WorkflowRefinePanel.tsx +411 -0
  276. package/src/workflow/WorkflowRepairCard.tsx +433 -0
  277. package/src/workflow/WorkflowRunDialog.tsx +220 -0
  278. package/src/workflow/WorkflowRunForm.tsx +245 -0
  279. package/src/workflow/WorkflowTaskList.tsx +177 -0
  280. package/src/workflow/WorkflowTaskPalette.tsx +248 -0
  281. package/src/workflow/WorkflowTopologyGraph.tsx +250 -0
  282. package/src/workflow/WorkflowYamlEditor.tsx +271 -0
  283. package/src/workflow/__tests__/starter-workflow-yaml.test.ts +57 -0
  284. package/src/workflow/canvas-constants.ts +87 -0
  285. package/src/workflow/canvas-icons.tsx +36 -0
  286. package/src/workflow/extract-workflow-yaml.ts +87 -0
  287. package/src/workflow/graph-commands.ts +675 -0
  288. package/src/workflow/index.ts +375 -0
  289. package/src/workflow/serialize-workflow-yaml.ts +546 -0
  290. package/src/workflow/starter-workflow-yaml.ts +29 -0
  291. package/src/workflow/types.ts +99 -0
  292. package/src/workflow/useCanvasKeyboardShortcuts.ts +134 -0
  293. package/src/workflow/useDiagnoseExecutionFlow.ts +378 -0
  294. package/src/workflow/useGraphHistory.ts +138 -0
  295. package/src/workflow/usePendingApprovals.ts +89 -0
  296. package/src/workflow/useRefineWorkflowFlow.ts +321 -0
  297. package/src/workflow/useResolveAgentExecutionSession.ts +57 -0
  298. package/src/workflow/useRunWorkflowFlow.ts +235 -0
  299. package/src/workflow/useTaskKindRegistry.ts +135 -0
  300. package/src/workflow/useWorkflow.ts +78 -0
  301. package/src/workflow/useWorkflowArchitectFlow.ts +303 -0
  302. package/src/workflow/useWorkflowCanvas.ts +882 -0
  303. package/src/workflow/useWorkflowCount.ts +66 -0
  304. package/src/workflow/useWorkflowDashboardSummary.ts +71 -0
  305. package/src/workflow/useWorkflowEditor.ts +106 -0
  306. package/src/workflow/useWorkflowExecution.ts +67 -0
  307. package/src/workflow/useWorkflowExecutionActions.ts +179 -0
  308. package/src/workflow/useWorkflowExecutionArtifacts.ts +57 -0
  309. package/src/workflow/useWorkflowExecutionEventLog.ts +111 -0
  310. package/src/workflow/useWorkflowExecutionEventStream.ts +244 -0
  311. package/src/workflow/useWorkflowExecutionList.ts +121 -0
  312. package/src/workflow/useWorkflowInstances.ts +62 -0
  313. package/src/workflow/useWorkflowList.ts +79 -0
  314. package/src/workflow/useWorkflowSave.ts +84 -0
  315. package/src/workflow/useWorkflowTopology.ts +229 -0
  316. package/src/workflow/useWorkflowValidation.ts +329 -0
  317. package/src/workflow/useWorkflowYaml.ts +49 -0
  318. package/src/workflow/workflow-graph-conversions.ts +796 -0
  319. package/src/workflow/workflow-graph-model.ts +83 -0
  320. package/src/workflow/workflow-yaml-diff.ts +132 -0
  321. package/styles.css +1 -1
  322. package/workflow/ApprovalFormBuilder.d.ts +24 -0
  323. package/workflow/ApprovalFormBuilder.d.ts.map +1 -0
  324. package/workflow/ApprovalFormBuilder.js +347 -0
  325. package/workflow/ApprovalFormBuilder.js.map +1 -0
  326. package/workflow/BranchConditionBuilder.d.ts +29 -0
  327. package/workflow/BranchConditionBuilder.d.ts.map +1 -0
  328. package/workflow/BranchConditionBuilder.js +170 -0
  329. package/workflow/BranchConditionBuilder.js.map +1 -0
  330. package/workflow/CanvasActionsContext.d.ts +8 -0
  331. package/workflow/CanvasActionsContext.d.ts.map +1 -0
  332. package/workflow/CanvasActionsContext.js +4 -0
  333. package/workflow/CanvasActionsContext.js.map +1 -0
  334. package/workflow/CanvasContextMenu.d.ts +59 -0
  335. package/workflow/CanvasContextMenu.d.ts.map +1 -0
  336. package/workflow/CanvasContextMenu.js +98 -0
  337. package/workflow/CanvasContextMenu.js.map +1 -0
  338. package/workflow/CanvasTaskNode.d.ts +21 -0
  339. package/workflow/CanvasTaskNode.d.ts.map +1 -0
  340. package/workflow/CanvasTaskNode.js +125 -0
  341. package/workflow/CanvasTaskNode.js.map +1 -0
  342. package/workflow/CanvasTransitionEdge.d.ts +24 -0
  343. package/workflow/CanvasTransitionEdge.d.ts.map +1 -0
  344. package/workflow/CanvasTransitionEdge.js +50 -0
  345. package/workflow/CanvasTransitionEdge.js.map +1 -0
  346. package/workflow/CostByWorkflowChart.d.ts +15 -0
  347. package/workflow/CostByWorkflowChart.d.ts.map +1 -0
  348. package/workflow/CostByWorkflowChart.js +45 -0
  349. package/workflow/CostByWorkflowChart.js.map +1 -0
  350. package/workflow/ExecutionSummaryWidget.d.ts +16 -0
  351. package/workflow/ExecutionSummaryWidget.d.ts.map +1 -0
  352. package/workflow/ExecutionSummaryWidget.js +93 -0
  353. package/workflow/ExecutionSummaryWidget.js.map +1 -0
  354. package/workflow/ExecutionTrendChart.d.ts +14 -0
  355. package/workflow/ExecutionTrendChart.d.ts.map +1 -0
  356. package/workflow/ExecutionTrendChart.js +67 -0
  357. package/workflow/ExecutionTrendChart.js.map +1 -0
  358. package/workflow/FailedRunsWidget.d.ts +19 -0
  359. package/workflow/FailedRunsWidget.d.ts.map +1 -0
  360. package/workflow/FailedRunsWidget.js +37 -0
  361. package/workflow/FailedRunsWidget.js.map +1 -0
  362. package/workflow/PendingApprovalsWidget.d.ts +19 -0
  363. package/workflow/PendingApprovalsWidget.d.ts.map +1 -0
  364. package/workflow/PendingApprovalsWidget.js +35 -0
  365. package/workflow/PendingApprovalsWidget.js.map +1 -0
  366. package/workflow/TaskConfigForm.d.ts +29 -0
  367. package/workflow/TaskConfigForm.d.ts.map +1 -0
  368. package/workflow/TaskConfigForm.js +230 -0
  369. package/workflow/TaskConfigForm.js.map +1 -0
  370. package/workflow/TaskKindRegistryContext.d.ts +24 -0
  371. package/workflow/TaskKindRegistryContext.d.ts.map +1 -0
  372. package/workflow/TaskKindRegistryContext.js +25 -0
  373. package/workflow/TaskKindRegistryContext.js.map +1 -0
  374. package/workflow/TaskPickerPopover.d.ts +33 -0
  375. package/workflow/TaskPickerPopover.d.ts.map +1 -0
  376. package/workflow/TaskPickerPopover.js +110 -0
  377. package/workflow/TaskPickerPopover.js.map +1 -0
  378. package/workflow/WorkflowArchitectDialog.d.ts +48 -0
  379. package/workflow/WorkflowArchitectDialog.d.ts.map +1 -0
  380. package/workflow/WorkflowArchitectDialog.js +129 -0
  381. package/workflow/WorkflowArchitectDialog.js.map +1 -0
  382. package/workflow/WorkflowCanvasEditor.d.ts +38 -0
  383. package/workflow/WorkflowCanvasEditor.d.ts.map +1 -0
  384. package/workflow/WorkflowCanvasEditor.js +287 -0
  385. package/workflow/WorkflowCanvasEditor.js.map +1 -0
  386. package/workflow/WorkflowCanvasInner.d.ts +32 -0
  387. package/workflow/WorkflowCanvasInner.d.ts.map +1 -0
  388. package/workflow/WorkflowCanvasInner.js +49 -0
  389. package/workflow/WorkflowCanvasInner.js.map +1 -0
  390. package/workflow/WorkflowDashboard.d.ts +35 -0
  391. package/workflow/WorkflowDashboard.d.ts.map +1 -0
  392. package/workflow/WorkflowDashboard.js +59 -0
  393. package/workflow/WorkflowDashboard.js.map +1 -0
  394. package/workflow/WorkflowDetailView.d.ts +63 -0
  395. package/workflow/WorkflowDetailView.d.ts.map +1 -0
  396. package/workflow/WorkflowDetailView.js +202 -0
  397. package/workflow/WorkflowDetailView.js.map +1 -0
  398. package/workflow/WorkflowEditorView.d.ts +43 -0
  399. package/workflow/WorkflowEditorView.d.ts.map +1 -0
  400. package/workflow/WorkflowEditorView.js +165 -0
  401. package/workflow/WorkflowEditorView.js.map +1 -0
  402. package/workflow/WorkflowExecutionApprovalCard.d.ts +27 -0
  403. package/workflow/WorkflowExecutionApprovalCard.d.ts.map +1 -0
  404. package/workflow/WorkflowExecutionApprovalCard.js +32 -0
  405. package/workflow/WorkflowExecutionApprovalCard.js.map +1 -0
  406. package/workflow/WorkflowExecutionArtifactPanel.d.ts +15 -0
  407. package/workflow/WorkflowExecutionArtifactPanel.d.ts.map +1 -0
  408. package/workflow/WorkflowExecutionArtifactPanel.js +53 -0
  409. package/workflow/WorkflowExecutionArtifactPanel.js.map +1 -0
  410. package/workflow/WorkflowExecutionCostPanel.d.ts +18 -0
  411. package/workflow/WorkflowExecutionCostPanel.d.ts.map +1 -0
  412. package/workflow/WorkflowExecutionCostPanel.js +44 -0
  413. package/workflow/WorkflowExecutionCostPanel.js.map +1 -0
  414. package/workflow/WorkflowExecutionHeader.d.ts +26 -0
  415. package/workflow/WorkflowExecutionHeader.d.ts.map +1 -0
  416. package/workflow/WorkflowExecutionHeader.js +68 -0
  417. package/workflow/WorkflowExecutionHeader.js.map +1 -0
  418. package/workflow/WorkflowExecutionPhaseBadge.d.ts +23 -0
  419. package/workflow/WorkflowExecutionPhaseBadge.d.ts.map +1 -0
  420. package/workflow/WorkflowExecutionPhaseBadge.js +99 -0
  421. package/workflow/WorkflowExecutionPhaseBadge.js.map +1 -0
  422. package/workflow/WorkflowExecutionTaskPanel.d.ts +24 -0
  423. package/workflow/WorkflowExecutionTaskPanel.d.ts.map +1 -0
  424. package/workflow/WorkflowExecutionTaskPanel.js +59 -0
  425. package/workflow/WorkflowExecutionTaskPanel.js.map +1 -0
  426. package/workflow/WorkflowExecutionTimeline.d.ts +27 -0
  427. package/workflow/WorkflowExecutionTimeline.d.ts.map +1 -0
  428. package/workflow/WorkflowExecutionTimeline.js +51 -0
  429. package/workflow/WorkflowExecutionTimeline.js.map +1 -0
  430. package/workflow/WorkflowExecutionTimelineEvent.d.ts +18 -0
  431. package/workflow/WorkflowExecutionTimelineEvent.d.ts.map +1 -0
  432. package/workflow/WorkflowExecutionTimelineEvent.js +210 -0
  433. package/workflow/WorkflowExecutionTimelineEvent.js.map +1 -0
  434. package/workflow/WorkflowExecutionViewer.d.ts +45 -0
  435. package/workflow/WorkflowExecutionViewer.d.ts.map +1 -0
  436. package/workflow/WorkflowExecutionViewer.js +75 -0
  437. package/workflow/WorkflowExecutionViewer.js.map +1 -0
  438. package/workflow/WorkflowInspectorPanel.d.ts +46 -0
  439. package/workflow/WorkflowInspectorPanel.d.ts.map +1 -0
  440. package/workflow/WorkflowInspectorPanel.js +152 -0
  441. package/workflow/WorkflowInspectorPanel.js.map +1 -0
  442. package/workflow/WorkflowRefinePanel.d.ts +30 -0
  443. package/workflow/WorkflowRefinePanel.d.ts.map +1 -0
  444. package/workflow/WorkflowRefinePanel.js +107 -0
  445. package/workflow/WorkflowRefinePanel.js.map +1 -0
  446. package/workflow/WorkflowRepairCard.d.ts +35 -0
  447. package/workflow/WorkflowRepairCard.d.ts.map +1 -0
  448. package/workflow/WorkflowRepairCard.js +113 -0
  449. package/workflow/WorkflowRepairCard.js.map +1 -0
  450. package/workflow/WorkflowRunDialog.d.ts +51 -0
  451. package/workflow/WorkflowRunDialog.d.ts.map +1 -0
  452. package/workflow/WorkflowRunDialog.js +75 -0
  453. package/workflow/WorkflowRunDialog.js.map +1 -0
  454. package/workflow/WorkflowRunForm.d.ts +62 -0
  455. package/workflow/WorkflowRunForm.d.ts.map +1 -0
  456. package/workflow/WorkflowRunForm.js +64 -0
  457. package/workflow/WorkflowRunForm.js.map +1 -0
  458. package/workflow/WorkflowTaskList.d.ts +25 -0
  459. package/workflow/WorkflowTaskList.d.ts.map +1 -0
  460. package/workflow/WorkflowTaskList.js +89 -0
  461. package/workflow/WorkflowTaskList.js.map +1 -0
  462. package/workflow/WorkflowTaskPalette.d.ts +22 -0
  463. package/workflow/WorkflowTaskPalette.d.ts.map +1 -0
  464. package/workflow/WorkflowTaskPalette.js +83 -0
  465. package/workflow/WorkflowTaskPalette.js.map +1 -0
  466. package/workflow/WorkflowTopologyGraph.d.ts +22 -0
  467. package/workflow/WorkflowTopologyGraph.d.ts.map +1 -0
  468. package/workflow/WorkflowTopologyGraph.js +123 -0
  469. package/workflow/WorkflowTopologyGraph.js.map +1 -0
  470. package/workflow/WorkflowYamlEditor.d.ts +43 -0
  471. package/workflow/WorkflowYamlEditor.d.ts.map +1 -0
  472. package/workflow/WorkflowYamlEditor.js +215 -0
  473. package/workflow/WorkflowYamlEditor.js.map +1 -0
  474. package/workflow/__tests__/starter-workflow-yaml.test.d.ts +2 -0
  475. package/workflow/__tests__/starter-workflow-yaml.test.d.ts.map +1 -0
  476. package/workflow/__tests__/starter-workflow-yaml.test.js +44 -0
  477. package/workflow/__tests__/starter-workflow-yaml.test.js.map +1 -0
  478. package/workflow/canvas-constants.d.ts +56 -0
  479. package/workflow/canvas-constants.d.ts.map +1 -0
  480. package/workflow/canvas-constants.js +74 -0
  481. package/workflow/canvas-constants.js.map +1 -0
  482. package/workflow/canvas-icons.d.ts +13 -0
  483. package/workflow/canvas-icons.d.ts.map +1 -0
  484. package/workflow/canvas-icons.js +21 -0
  485. package/workflow/canvas-icons.js.map +1 -0
  486. package/workflow/extract-workflow-yaml.d.ts +22 -0
  487. package/workflow/extract-workflow-yaml.d.ts.map +1 -0
  488. package/workflow/extract-workflow-yaml.js +63 -0
  489. package/workflow/extract-workflow-yaml.js.map +1 -0
  490. package/workflow/graph-commands.d.ts +209 -0
  491. package/workflow/graph-commands.d.ts.map +1 -0
  492. package/workflow/graph-commands.js +516 -0
  493. package/workflow/graph-commands.js.map +1 -0
  494. package/workflow/index.d.ts +66 -0
  495. package/workflow/index.d.ts.map +1 -0
  496. package/workflow/index.js +88 -0
  497. package/workflow/index.js.map +1 -0
  498. package/workflow/serialize-workflow-yaml.d.ts +39 -0
  499. package/workflow/serialize-workflow-yaml.d.ts.map +1 -0
  500. package/workflow/serialize-workflow-yaml.js +413 -0
  501. package/workflow/serialize-workflow-yaml.js.map +1 -0
  502. package/workflow/starter-workflow-yaml.d.ts +12 -0
  503. package/workflow/starter-workflow-yaml.d.ts.map +1 -0
  504. package/workflow/starter-workflow-yaml.js +30 -0
  505. package/workflow/starter-workflow-yaml.js.map +1 -0
  506. package/workflow/types.d.ts +80 -0
  507. package/workflow/types.d.ts.map +1 -0
  508. package/workflow/types.js +2 -0
  509. package/workflow/types.js.map +1 -0
  510. package/workflow/useCanvasKeyboardShortcuts.d.ts +34 -0
  511. package/workflow/useCanvasKeyboardShortcuts.d.ts.map +1 -0
  512. package/workflow/useCanvasKeyboardShortcuts.js +108 -0
  513. package/workflow/useCanvasKeyboardShortcuts.js.map +1 -0
  514. package/workflow/useDiagnoseExecutionFlow.d.ts +87 -0
  515. package/workflow/useDiagnoseExecutionFlow.d.ts.map +1 -0
  516. package/workflow/useDiagnoseExecutionFlow.js +257 -0
  517. package/workflow/useDiagnoseExecutionFlow.js.map +1 -0
  518. package/workflow/useGraphHistory.d.ts +28 -0
  519. package/workflow/useGraphHistory.d.ts.map +1 -0
  520. package/workflow/useGraphHistory.js +106 -0
  521. package/workflow/useGraphHistory.js.map +1 -0
  522. package/workflow/usePendingApprovals.d.ts +35 -0
  523. package/workflow/usePendingApprovals.d.ts.map +1 -0
  524. package/workflow/usePendingApprovals.js +50 -0
  525. package/workflow/usePendingApprovals.js.map +1 -0
  526. package/workflow/useRefineWorkflowFlow.d.ts +75 -0
  527. package/workflow/useRefineWorkflowFlow.d.ts.map +1 -0
  528. package/workflow/useRefineWorkflowFlow.js +216 -0
  529. package/workflow/useRefineWorkflowFlow.js.map +1 -0
  530. package/workflow/useResolveAgentExecutionSession.d.ts +33 -0
  531. package/workflow/useResolveAgentExecutionSession.d.ts.map +1 -0
  532. package/workflow/useResolveAgentExecutionSession.js +37 -0
  533. package/workflow/useResolveAgentExecutionSession.js.map +1 -0
  534. package/workflow/useRunWorkflowFlow.d.ts +82 -0
  535. package/workflow/useRunWorkflowFlow.d.ts.map +1 -0
  536. package/workflow/useRunWorkflowFlow.js +145 -0
  537. package/workflow/useRunWorkflowFlow.js.map +1 -0
  538. package/workflow/useTaskKindRegistry.d.ts +96 -0
  539. package/workflow/useTaskKindRegistry.d.ts.map +1 -0
  540. package/workflow/useTaskKindRegistry.js +75 -0
  541. package/workflow/useTaskKindRegistry.js.map +1 -0
  542. package/workflow/useWorkflow.d.ts +47 -0
  543. package/workflow/useWorkflow.d.ts.map +1 -0
  544. package/workflow/useWorkflow.js +53 -0
  545. package/workflow/useWorkflow.js.map +1 -0
  546. package/workflow/useWorkflowArchitectFlow.d.ts +96 -0
  547. package/workflow/useWorkflowArchitectFlow.d.ts.map +1 -0
  548. package/workflow/useWorkflowArchitectFlow.js +179 -0
  549. package/workflow/useWorkflowArchitectFlow.js.map +1 -0
  550. package/workflow/useWorkflowCanvas.d.ts +66 -0
  551. package/workflow/useWorkflowCanvas.d.ts.map +1 -0
  552. package/workflow/useWorkflowCanvas.js +628 -0
  553. package/workflow/useWorkflowCanvas.js.map +1 -0
  554. package/workflow/useWorkflowCount.d.ts +47 -0
  555. package/workflow/useWorkflowCount.d.ts.map +1 -0
  556. package/workflow/useWorkflowCount.js +26 -0
  557. package/workflow/useWorkflowCount.js.map +1 -0
  558. package/workflow/useWorkflowDashboardSummary.d.ts +34 -0
  559. package/workflow/useWorkflowDashboardSummary.d.ts.map +1 -0
  560. package/workflow/useWorkflowDashboardSummary.js +33 -0
  561. package/workflow/useWorkflowDashboardSummary.js.map +1 -0
  562. package/workflow/useWorkflowEditor.d.ts +45 -0
  563. package/workflow/useWorkflowEditor.d.ts.map +1 -0
  564. package/workflow/useWorkflowEditor.js +52 -0
  565. package/workflow/useWorkflowEditor.js.map +1 -0
  566. package/workflow/useWorkflowExecution.d.ts +37 -0
  567. package/workflow/useWorkflowExecution.d.ts.map +1 -0
  568. package/workflow/useWorkflowExecution.js +43 -0
  569. package/workflow/useWorkflowExecution.js.map +1 -0
  570. package/workflow/useWorkflowExecutionActions.d.ts +41 -0
  571. package/workflow/useWorkflowExecutionActions.d.ts.map +1 -0
  572. package/workflow/useWorkflowExecutionActions.js +86 -0
  573. package/workflow/useWorkflowExecutionActions.js.map +1 -0
  574. package/workflow/useWorkflowExecutionArtifacts.d.ts +26 -0
  575. package/workflow/useWorkflowExecutionArtifacts.d.ts.map +1 -0
  576. package/workflow/useWorkflowExecutionArtifacts.js +29 -0
  577. package/workflow/useWorkflowExecutionArtifacts.js.map +1 -0
  578. package/workflow/useWorkflowExecutionEventLog.d.ts +47 -0
  579. package/workflow/useWorkflowExecutionEventLog.d.ts.map +1 -0
  580. package/workflow/useWorkflowExecutionEventLog.js +59 -0
  581. package/workflow/useWorkflowExecutionEventLog.js.map +1 -0
  582. package/workflow/useWorkflowExecutionEventStream.d.ts +61 -0
  583. package/workflow/useWorkflowExecutionEventStream.d.ts.map +1 -0
  584. package/workflow/useWorkflowExecutionEventStream.js +161 -0
  585. package/workflow/useWorkflowExecutionEventStream.js.map +1 -0
  586. package/workflow/useWorkflowExecutionList.d.ts +49 -0
  587. package/workflow/useWorkflowExecutionList.d.ts.map +1 -0
  588. package/workflow/useWorkflowExecutionList.js +65 -0
  589. package/workflow/useWorkflowExecutionList.js.map +1 -0
  590. package/workflow/useWorkflowInstances.d.ts +30 -0
  591. package/workflow/useWorkflowInstances.d.ts.map +1 -0
  592. package/workflow/useWorkflowInstances.js +33 -0
  593. package/workflow/useWorkflowInstances.js.map +1 -0
  594. package/workflow/useWorkflowList.d.ts +57 -0
  595. package/workflow/useWorkflowList.d.ts.map +1 -0
  596. package/workflow/useWorkflowList.js +29 -0
  597. package/workflow/useWorkflowList.js.map +1 -0
  598. package/workflow/useWorkflowSave.d.ts +25 -0
  599. package/workflow/useWorkflowSave.d.ts.map +1 -0
  600. package/workflow/useWorkflowSave.js +61 -0
  601. package/workflow/useWorkflowSave.js.map +1 -0
  602. package/workflow/useWorkflowTopology.d.ts +40 -0
  603. package/workflow/useWorkflowTopology.d.ts.map +1 -0
  604. package/workflow/useWorkflowTopology.js +163 -0
  605. package/workflow/useWorkflowTopology.js.map +1 -0
  606. package/workflow/useWorkflowValidation.d.ts +27 -0
  607. package/workflow/useWorkflowValidation.d.ts.map +1 -0
  608. package/workflow/useWorkflowValidation.js +253 -0
  609. package/workflow/useWorkflowValidation.js.map +1 -0
  610. package/workflow/useWorkflowYaml.d.ts +26 -0
  611. package/workflow/useWorkflowYaml.d.ts.map +1 -0
  612. package/workflow/useWorkflowYaml.js +26 -0
  613. package/workflow/useWorkflowYaml.js.map +1 -0
  614. package/workflow/workflow-graph-conversions.d.ts +70 -0
  615. package/workflow/workflow-graph-conversions.d.ts.map +1 -0
  616. package/workflow/workflow-graph-conversions.js +634 -0
  617. package/workflow/workflow-graph-conversions.js.map +1 -0
  618. package/workflow/workflow-graph-model.d.ts +83 -0
  619. package/workflow/workflow-graph-model.d.ts.map +1 -0
  620. package/workflow/workflow-graph-model.js +5 -0
  621. package/workflow/workflow-graph-model.js.map +1 -0
  622. package/workflow/workflow-yaml-diff.d.ts +24 -0
  623. package/workflow/workflow-yaml-diff.d.ts.map +1 -0
  624. package/workflow/workflow-yaml-diff.js +96 -0
  625. package/workflow/workflow-yaml-diff.js.map +1 -0
@@ -0,0 +1,75 @@
1
+ "use client";
2
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useRef } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ import { useRunWorkflowFlow } from "./useRunWorkflowFlow";
6
+ import { WorkflowRunForm } from "./WorkflowRunForm";
7
+ /**
8
+ * Dialog for running a workflow execution.
9
+ *
10
+ * Composes {@link useRunWorkflowFlow} with {@link WorkflowRunForm}
11
+ * inside a native `<dialog>` element. Manages the full lifecycle:
12
+ * form fields, validation, submission, error display, and close.
13
+ *
14
+ * Uses the same `<dialog>` + `showModal()` pattern as
15
+ * {@link ConfirmDialog} — built-in focus trapping, Escape key
16
+ * handling, and backdrop. Styled via `--stgm-*` design tokens.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <WorkflowRunDialog
21
+ * open={showRunDialog}
22
+ * onOpenChange={setShowRunDialog}
23
+ * org="acme"
24
+ * workflow={workflow}
25
+ * instances={instances}
26
+ * onSuccess={(id) => router.push(`/workflows/executions/${id}`)}
27
+ * onError={(msg) => toast.error(msg)}
28
+ * />
29
+ * ```
30
+ */
31
+ export function WorkflowRunDialog({ open, onOpenChange, org, workflow, instances, onSuccess, onError, }) {
32
+ const dialogRef = useRef(null);
33
+ const handleSuccess = useCallback((executionId) => {
34
+ onOpenChange(false);
35
+ onSuccess(executionId);
36
+ }, [onOpenChange, onSuccess]);
37
+ const flow = useRunWorkflowFlow({
38
+ org,
39
+ workflow,
40
+ instances,
41
+ onSuccess: handleSuccess,
42
+ onError,
43
+ });
44
+ // Sync open state with the native dialog
45
+ useEffect(() => {
46
+ const dialog = dialogRef.current;
47
+ if (!dialog)
48
+ return;
49
+ if (open && !dialog.open) {
50
+ flow.reset();
51
+ dialog.showModal();
52
+ }
53
+ else if (!open && dialog.open) {
54
+ dialog.close();
55
+ }
56
+ }, [open, flow.reset]);
57
+ const handleDialogCancel = useCallback((e) => {
58
+ e.preventDefault();
59
+ onOpenChange(false);
60
+ }, [onOpenChange]);
61
+ const handleBackdropClick = useCallback((e) => {
62
+ if (e.target === dialogRef.current) {
63
+ onOpenChange(false);
64
+ }
65
+ }, [onOpenChange]);
66
+ const workflowName = workflow.metadata?.name || workflow.metadata?.slug || "Workflow";
67
+ return (_jsx("dialog", { ref: dialogRef, onCancel: handleDialogCancel, onClick: handleBackdropClick, className: cn("fixed inset-0 z-50 m-auto w-full max-w-lg rounded-lg border border-border bg-popover p-0 text-popover-foreground shadow-lg", "backdrop:bg-black/50", "open:animate-in open:fade-in-0 open:zoom-in-95"), children: _jsxs("div", { className: "flex flex-col", children: [_jsxs("div", { className: "border-b border-border px-6 py-4", children: [_jsxs("h3", { className: "text-base font-semibold text-foreground", children: ["Run ", workflowName] }), _jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: "Configure inputs and start a new execution" })] }), _jsxs("div", { className: "max-h-[60vh] overflow-y-auto px-6 py-4", children: [flow.error && (_jsx("div", { className: "mb-4 rounded-md border border-destructive bg-destructive-muted px-3 py-2 text-sm text-destructive", role: "alert", children: flow.error })), _jsx(WorkflowRunForm, { triggerMessage: flow.triggerMessage, onTriggerMessageChange: flow.setTriggerMessage, envDeclarations: flow.envDeclarations, runtimeEnv: flow.runtimeEnv, onEnvVarChange: flow.setEnvVar, instances: instances, selectedInstanceId: flow.selectedInstanceId, onInstanceChange: flow.setSelectedInstanceId, errors: flow.fieldErrors, disabled: flow.isSubmitting })] }), _jsxs("div", { className: "flex justify-end gap-2 border-t border-border px-6 py-3", children: [_jsx("button", { type: "button", onClick: () => onOpenChange(false), disabled: flow.isSubmitting, className: cn("rounded-md px-3 py-1.5 text-sm font-medium transition-colors", "border border-input bg-background text-foreground", "hover:bg-accent hover:text-accent-foreground", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50"), children: "Cancel" }), _jsxs("button", { type: "button", onClick: flow.submit, disabled: flow.isSubmitting, className: cn("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium transition-colors", "bg-primary text-primary-foreground hover:bg-primary-hover", "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-40"), children: [flow.isSubmitting && _jsx(SpinnerIcon, {}), flow.isSubmitting ? "Starting…" : "Run Workflow"] })] })] }) }));
68
+ }
69
+ // ---------------------------------------------------------------------------
70
+ // Icons
71
+ // ---------------------------------------------------------------------------
72
+ function SpinnerIcon() {
73
+ return (_jsx("svg", { width: "14", height: "14", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", className: "animate-spin", "aria-hidden": "true", children: _jsx("path", { d: "M8 2a6 6 0 1 0 6 6" }) }));
74
+ }
75
+ //# sourceMappingURL=WorkflowRunDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowRunDialog.js","sourceRoot":"","sources":["../../src/workflow/WorkflowRunDialog.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import type { EnvVarDeclaration } from "@stigmer/protos/ai/stigmer/agentic/environment/v1/spec_pb";
2
+ import type { WorkflowInstance } from "@stigmer/protos/ai/stigmer/agentic/workflowinstance/v1/api_pb";
3
+ import type { RunWorkflowFieldErrors } from "./useRunWorkflowFlow";
4
+ /** Props for {@link WorkflowRunForm}. */
5
+ export interface WorkflowRunFormProps {
6
+ /** Current trigger message value. */
7
+ readonly triggerMessage: string;
8
+ /** Called when the trigger message changes. */
9
+ readonly onTriggerMessageChange: (value: string) => void;
10
+ /** Declared environment variables from the workflow spec. */
11
+ readonly envDeclarations: Record<string, EnvVarDeclaration>;
12
+ /** Current runtime env var overrides (keyed by variable name). */
13
+ readonly runtimeEnv: Record<string, string>;
14
+ /** Called when a single env var value changes. */
15
+ readonly onEnvVarChange: (key: string, value: string) => void;
16
+ /** Available workflow instances for the selector. */
17
+ readonly instances: readonly WorkflowInstance[];
18
+ /** Currently selected instance ID, or `null` for server-resolved default. */
19
+ readonly selectedInstanceId: string | null;
20
+ /** Called when the selected instance changes. */
21
+ readonly onInstanceChange: (id: string | null) => void;
22
+ /** Field-level validation errors keyed by field name. */
23
+ readonly errors: RunWorkflowFieldErrors;
24
+ /** When `true`, all fields are disabled (during submission). */
25
+ readonly disabled?: boolean;
26
+ /** Additional CSS classes for the root container. */
27
+ readonly className?: string;
28
+ }
29
+ /**
30
+ * Form fields for running a workflow execution.
31
+ *
32
+ * Renders a trigger message textarea, auto-generated environment
33
+ * variable fields from the workflow's `spec.env` declarations, and
34
+ * an instance selector (hidden when 0-1 instances exist).
35
+ *
36
+ * This component is presentational — it does not manage state or
37
+ * submit. Pair with {@link useRunWorkflowFlow} for the full
38
+ * behavior, or wire the props manually for custom integrations.
39
+ *
40
+ * All visuals flow through `--stgm-*` design tokens. Zero Console
41
+ * dependencies — safe for platform builder embedding.
42
+ *
43
+ * @example
44
+ * ```tsx
45
+ * const flow = useRunWorkflowFlow({ ... });
46
+ *
47
+ * <WorkflowRunForm
48
+ * triggerMessage={flow.triggerMessage}
49
+ * onTriggerMessageChange={flow.setTriggerMessage}
50
+ * envDeclarations={flow.envDeclarations}
51
+ * runtimeEnv={flow.runtimeEnv}
52
+ * onEnvVarChange={flow.setEnvVar}
53
+ * instances={instances}
54
+ * selectedInstanceId={flow.selectedInstanceId}
55
+ * onInstanceChange={flow.setSelectedInstanceId}
56
+ * errors={flow.fieldErrors}
57
+ * disabled={flow.isSubmitting}
58
+ * />
59
+ * ```
60
+ */
61
+ export declare function WorkflowRunForm({ triggerMessage, onTriggerMessageChange, envDeclarations, runtimeEnv, onEnvVarChange, instances, selectedInstanceId, onInstanceChange, errors, disabled, className, }: WorkflowRunFormProps): import("react/jsx-runtime").JSX.Element;
62
+ //# sourceMappingURL=WorkflowRunForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowRunForm.d.ts","sourceRoot":"","sources":["../../src/workflow/WorkflowRunForm.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2DAA2D,CAAC;AACnG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+DAA+D,CAAC;AACtG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,+CAA+C;IAC/C,QAAQ,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEzD,6DAA6D;IAC7D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC5D,kEAAkE;IAClE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAE9D,qDAAqD;IACrD,QAAQ,CAAC,SAAS,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,6EAA6E;IAC7E,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,iDAAiD;IACjD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAEvD,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IAExC,gEAAgE;IAChE,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,eAAe,CAAC,EAC9B,cAAc,EACd,sBAAsB,EACtB,eAAe,EACf,UAAU,EACV,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,EACN,QAAQ,EACR,SAAS,GACV,EAAE,oBAAoB,2CAmHtB"}
@@ -0,0 +1,64 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useId } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ const INPUT_CLASSES = cn("w-full rounded-md border border-input bg-background px-2.5 py-1.5 text-sm text-foreground", "placeholder:text-muted-foreground", "focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring", "disabled:pointer-events-none disabled:opacity-50");
6
+ /**
7
+ * Form fields for running a workflow execution.
8
+ *
9
+ * Renders a trigger message textarea, auto-generated environment
10
+ * variable fields from the workflow's `spec.env` declarations, and
11
+ * an instance selector (hidden when 0-1 instances exist).
12
+ *
13
+ * This component is presentational — it does not manage state or
14
+ * submit. Pair with {@link useRunWorkflowFlow} for the full
15
+ * behavior, or wire the props manually for custom integrations.
16
+ *
17
+ * All visuals flow through `--stgm-*` design tokens. Zero Console
18
+ * dependencies — safe for platform builder embedding.
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * const flow = useRunWorkflowFlow({ ... });
23
+ *
24
+ * <WorkflowRunForm
25
+ * triggerMessage={flow.triggerMessage}
26
+ * onTriggerMessageChange={flow.setTriggerMessage}
27
+ * envDeclarations={flow.envDeclarations}
28
+ * runtimeEnv={flow.runtimeEnv}
29
+ * onEnvVarChange={flow.setEnvVar}
30
+ * instances={instances}
31
+ * selectedInstanceId={flow.selectedInstanceId}
32
+ * onInstanceChange={flow.setSelectedInstanceId}
33
+ * errors={flow.fieldErrors}
34
+ * disabled={flow.isSubmitting}
35
+ * />
36
+ * ```
37
+ */
38
+ export function WorkflowRunForm({ triggerMessage, onTriggerMessageChange, envDeclarations, runtimeEnv, onEnvVarChange, instances, selectedInstanceId, onInstanceChange, errors, disabled, className, }) {
39
+ const formId = useId();
40
+ const envEntries = Object.entries(envDeclarations);
41
+ const showInstanceSelector = instances.length > 1;
42
+ return (_jsxs("div", { className: cn("flex flex-col gap-4", className), children: [_jsxs(FieldGroup, { children: [_jsx(FieldLabel, { htmlFor: `${formId}-trigger`, children: "Input Message" }), _jsx("textarea", { id: `${formId}-trigger`, value: triggerMessage, onChange: (e) => onTriggerMessageChange(e.target.value), placeholder: "Optional message or JSON payload to trigger the workflow", disabled: disabled, rows: 3, className: cn(INPUT_CLASSES, "resize-y") }), _jsxs(FieldHint, { children: ["Accessible in the workflow as", " ", _jsx("code", { className: "text-[0.7rem]", children: "{{workflow.input.trigger_message}}" })] })] }), showInstanceSelector && (_jsxs(FieldGroup, { children: [_jsx(FieldLabel, { htmlFor: `${formId}-instance`, children: "Instance" }), _jsxs("select", { id: `${formId}-instance`, value: selectedInstanceId ?? "", onChange: (e) => onInstanceChange(e.target.value || null), disabled: disabled, className: INPUT_CLASSES, children: [_jsx("option", { value: "", children: "Default instance (auto)" }), instances.map((inst) => (_jsx("option", { value: inst.metadata?.id ?? "", children: inst.metadata?.name || inst.metadata?.slug || inst.metadata?.id }, inst.metadata?.id)))] })] })), envEntries.length > 0 && (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsx("h4", { className: "text-xs font-medium text-muted-foreground", children: "Environment Variables" }), envEntries.map(([key, decl]) => {
43
+ const fieldId = `${formId}-env-${key}`;
44
+ const fieldError = errors[key];
45
+ return (_jsxs(FieldGroup, { children: [_jsxs(FieldLabel, { htmlFor: fieldId, children: [_jsx("code", { className: "text-xs", children: key }), !decl.optional && (_jsx("span", { className: "ml-1 text-destructive", "aria-label": "required", children: "*" }))] }), _jsx("input", { id: fieldId, type: decl.isSecret ? "password" : "text", value: runtimeEnv[key] ?? "", onChange: (e) => onEnvVarChange(key, e.target.value), placeholder: decl.optional ? "Optional" : "Required", disabled: disabled, "aria-invalid": !!fieldError, "aria-describedby": fieldError
46
+ ? `${fieldId}-error`
47
+ : decl.description
48
+ ? `${fieldId}-desc`
49
+ : undefined, className: cn(INPUT_CLASSES, fieldError && "border-destructive focus-visible:ring-destructive") }), decl.description && !fieldError && (_jsx(FieldHint, { id: `${fieldId}-desc`, children: decl.description })), fieldError && (_jsx("p", { id: `${fieldId}-error`, className: "text-[0.7rem] text-destructive", role: "alert", children: fieldError }))] }, key));
50
+ })] }))] }));
51
+ }
52
+ // ---------------------------------------------------------------------------
53
+ // Shared form primitives (internal to this file)
54
+ // ---------------------------------------------------------------------------
55
+ function FieldGroup({ children, }) {
56
+ return _jsx("div", { className: "flex flex-col gap-1", children: children });
57
+ }
58
+ function FieldLabel({ htmlFor, children, }) {
59
+ return (_jsx("label", { htmlFor: htmlFor, className: "text-xs font-medium text-foreground", children: children }));
60
+ }
61
+ function FieldHint({ id, children, }) {
62
+ return (_jsx("p", { id: id, className: "text-[0.7rem] text-muted-foreground", children: children }));
63
+ }
64
+ //# sourceMappingURL=WorkflowRunForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowRunForm.js","sourceRoot":"","sources":["../../src/workflow/WorkflowRunForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { WorkflowTask } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/spec_pb";
2
+ /** Props for {@link WorkflowTaskList}. */
3
+ export interface WorkflowTaskListProps {
4
+ /** Tasks from the workflow spec. */
5
+ readonly tasks: readonly WorkflowTask[];
6
+ /** Additional CSS class names for the root container. */
7
+ readonly className?: string;
8
+ }
9
+ /**
10
+ * Compact list of tasks in a workflow specification.
11
+ *
12
+ * Renders each task as a row with a kind icon (from the TaskKindRegistry),
13
+ * task name, kind label, and a sequential connector line indicating flow
14
+ * order. When the registry is loading, kind icons are omitted gracefully.
15
+ *
16
+ * Zero Console dependencies — safe for platform builder embedding.
17
+ * All visual properties flow through `--stgm-*` tokens.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * <WorkflowTaskList tasks={workflow.spec?.tasks ?? []} />
22
+ * ```
23
+ */
24
+ export declare const WorkflowTaskList: import("react").NamedExoticComponent<WorkflowTaskListProps>;
25
+ //# sourceMappingURL=WorkflowTaskList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowTaskList.d.ts","sourceRoot":"","sources":["../../src/workflow/WorkflowTaskList.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wDAAwD,CAAC;AAG3F,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,oCAAoC;IACpC,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAyBD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,6DA8D3B,CAAC"}
@@ -0,0 +1,89 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { memo, useMemo } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ import { WorkflowTaskKind } from "@stigmer/protos/ai/stigmer/agentic/workflow/v1/enum_pb";
6
+ import { useTaskKindRegistryContext } from "./TaskKindRegistryContext";
7
+ const TASK_KIND_LABELS = new Map([
8
+ [WorkflowTaskKind.set_vars, "Set Variables"],
9
+ [WorkflowTaskKind.http_call, "HTTP Call"],
10
+ [WorkflowTaskKind.grpc_call, "gRPC Call"],
11
+ [WorkflowTaskKind.activity_call, "Activity Call"],
12
+ [WorkflowTaskKind.switch_case, "Switch"],
13
+ [WorkflowTaskKind.for_each, "For Each"],
14
+ [WorkflowTaskKind.fork, "Fork"],
15
+ [WorkflowTaskKind.try_catch, "Try/Catch"],
16
+ [WorkflowTaskKind.listen, "Listen"],
17
+ [WorkflowTaskKind.wait, "Wait"],
18
+ [WorkflowTaskKind.raise_error, "Raise Error"],
19
+ [WorkflowTaskKind.run_workflow, "Run Workflow"],
20
+ [WorkflowTaskKind.agent_call, "Agent Call"],
21
+ [WorkflowTaskKind.llm_call, "LLM Call"],
22
+ [WorkflowTaskKind.transform, "Transform"],
23
+ [WorkflowTaskKind.human_input, "Human Input"],
24
+ [WorkflowTaskKind.validate, "Validate"],
25
+ [WorkflowTaskKind.emit_event, "Emit Event"],
26
+ [WorkflowTaskKind.notification, "Notification"],
27
+ [WorkflowTaskKind.eval, "Evaluate (LLM Judge)"],
28
+ ]);
29
+ /**
30
+ * Compact list of tasks in a workflow specification.
31
+ *
32
+ * Renders each task as a row with a kind icon (from the TaskKindRegistry),
33
+ * task name, kind label, and a sequential connector line indicating flow
34
+ * order. When the registry is loading, kind icons are omitted gracefully.
35
+ *
36
+ * Zero Console dependencies — safe for platform builder embedding.
37
+ * All visual properties flow through `--stgm-*` tokens.
38
+ *
39
+ * @example
40
+ * ```tsx
41
+ * <WorkflowTaskList tasks={workflow.spec?.tasks ?? []} />
42
+ * ```
43
+ */
44
+ export const WorkflowTaskList = memo(function WorkflowTaskList({ tasks, className, }) {
45
+ const { descriptors } = useTaskKindRegistryContext();
46
+ const kindIconMap = useMemo(() => {
47
+ const map = new Map();
48
+ for (const d of descriptors) {
49
+ map.set(d.kind, d.icon);
50
+ }
51
+ return map;
52
+ }, [descriptors]);
53
+ if (tasks.length === 0) {
54
+ return (_jsx("div", { className: cn("py-8 text-center text-sm text-muted-foreground", className), children: "No tasks defined" }));
55
+ }
56
+ return (_jsx("div", { className: cn("flex flex-col", className), children: tasks.map((task, idx) => {
57
+ const kindLabel = TASK_KIND_LABELS.get(task.kind) ?? formatKindName(task.kind);
58
+ const iconName = kindIconMap.get(kindEnumToString(task.kind));
59
+ const isLast = idx === tasks.length - 1;
60
+ return (_jsxs("div", { className: "flex items-stretch gap-3", children: [_jsxs("div", { className: "flex w-5 flex-col items-center", children: [_jsx("div", { className: cn("flex size-5 shrink-0 items-center justify-center rounded-full border border-border bg-background text-[10px] font-medium text-muted-foreground"), children: idx + 1 }), !isLast && (_jsx("div", { className: "w-px flex-1 bg-border" }))] }), _jsxs("div", { className: "flex min-w-0 flex-1 items-center gap-2 pb-3 pt-0.5", children: [iconName && (_jsx(TaskKindIcon, { iconName: iconName, className: "size-4 shrink-0 text-muted-foreground" })), _jsx("span", { className: "truncate text-sm font-medium text-foreground", children: task.name }), _jsx("span", { className: "shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground", children: kindLabel })] })] }, task.name));
61
+ }) }));
62
+ });
63
+ /**
64
+ * Maps a WorkflowTaskKind enum value to its string representation
65
+ * matching the TaskKindDescriptor's `kind` field.
66
+ */
67
+ function kindEnumToString(kind) {
68
+ const entry = Object.entries(WorkflowTaskKind).find(([, v]) => v === kind && typeof v === "number");
69
+ return entry?.[0] ?? "";
70
+ }
71
+ function formatKindName(kind) {
72
+ const str = kindEnumToString(kind);
73
+ return str
74
+ .split("_")
75
+ .map((w) => w.charAt(0).toUpperCase() + w.slice(1))
76
+ .join(" ");
77
+ }
78
+ /**
79
+ * Renders a task kind icon by name. Uses simple SVG placeholders --
80
+ * the full Lucide icon set is intentionally avoided in the SDK to
81
+ * keep the bundle size minimal (DD-004).
82
+ */
83
+ function TaskKindIcon({ iconName, className, }) {
84
+ return (_jsx("span", { className: cn("inline-flex items-center justify-center", className), title: iconName, "aria-hidden": "true", children: _jsx(TaskDotIcon, {}) }));
85
+ }
86
+ function TaskDotIcon() {
87
+ return (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "8", cy: "8", r: "3" }), _jsx("path", { d: "M8 2v3M8 11v3M2 8h3M11 8h3" })] }));
88
+ }
89
+ //# sourceMappingURL=WorkflowTaskList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowTaskList.js","sourceRoot":"","sources":["../../src/workflow/WorkflowTaskList.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /** MIME type for the drag transfer carrying the task kind identifier. */
2
+ export declare const TASK_KIND_DRAG_MIME = "application/stigmer-task-kind";
3
+ /** Props for {@link WorkflowTaskPalette}. */
4
+ export interface WorkflowTaskPaletteProps {
5
+ /** Additional CSS class names for the root container. */
6
+ readonly className?: string;
7
+ }
8
+ /**
9
+ * Categorized sidebar listing all available workflow task kinds.
10
+ *
11
+ * Each task kind entry is draggable. The drop target (the canvas)
12
+ * reads the task kind from the drag transfer data using
13
+ * {@link TASK_KIND_DRAG_MIME} and creates a new node.
14
+ *
15
+ * Self-contained SDK component (DD-001, AD-T15-B2-005): depends only
16
+ * on `useTaskKindRegistry()` and `--stgm-*` theme tokens. No canvas
17
+ * or React Flow dependency.
18
+ *
19
+ * @since T15 Batch 2 (Node Authoring)
20
+ */
21
+ export declare const WorkflowTaskPalette: import("react").NamedExoticComponent<WorkflowTaskPaletteProps>;
22
+ //# sourceMappingURL=WorkflowTaskPalette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowTaskPalette.d.ts","sourceRoot":"","sources":["../../src/workflow/WorkflowTaskPalette.tsx"],"names":[],"mappings":"AASA,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,kCAAkC,CAAC;AAEnE,6CAA6C;AAC7C,MAAM,WAAW,wBAAwB;IACvC,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,mBAAmB,gEA2H9B,CAAC"}
@@ -0,0 +1,83 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { memo, useState, useCallback, useMemo } from "react";
4
+ import { cn } from "@stigmer/theme";
5
+ import { useTaskKindRegistry } from "./useTaskKindRegistry";
6
+ import { CATEGORY_COLORS, CATEGORY_DISPLAY_NAMES, CATEGORY_ORDER } from "./canvas-constants";
7
+ /** MIME type for the drag transfer carrying the task kind identifier. */
8
+ export const TASK_KIND_DRAG_MIME = "application/stigmer-task-kind";
9
+ /**
10
+ * Categorized sidebar listing all available workflow task kinds.
11
+ *
12
+ * Each task kind entry is draggable. The drop target (the canvas)
13
+ * reads the task kind from the drag transfer data using
14
+ * {@link TASK_KIND_DRAG_MIME} and creates a new node.
15
+ *
16
+ * Self-contained SDK component (DD-001, AD-T15-B2-005): depends only
17
+ * on `useTaskKindRegistry()` and `--stgm-*` theme tokens. No canvas
18
+ * or React Flow dependency.
19
+ *
20
+ * @since T15 Batch 2 (Node Authoring)
21
+ */
22
+ export const WorkflowTaskPalette = memo(function WorkflowTaskPalette({ className, }) {
23
+ const { categories, isLoading, error, refetch } = useTaskKindRegistry();
24
+ const [searchQuery, setSearchQuery] = useState("");
25
+ const [collapsedCategories, setCollapsedCategories] = useState(new Set());
26
+ const handleSearchChange = useCallback((e) => {
27
+ setSearchQuery(e.target.value);
28
+ }, []);
29
+ const toggleCategory = useCallback((category) => {
30
+ setCollapsedCategories((prev) => {
31
+ const next = new Set(prev);
32
+ if (next.has(category)) {
33
+ next.delete(category);
34
+ }
35
+ else {
36
+ next.add(category);
37
+ }
38
+ return next;
39
+ });
40
+ }, []);
41
+ const filteredCategories = useMemo(() => {
42
+ const query = searchQuery.toLowerCase().trim();
43
+ const result = [];
44
+ for (const cat of CATEGORY_ORDER) {
45
+ const descriptors = categories.get(cat);
46
+ if (!descriptors || descriptors.length === 0)
47
+ continue;
48
+ const filtered = query
49
+ ? descriptors.filter((d) => d.displayName.toLowerCase().includes(query) ||
50
+ d.description.toLowerCase().includes(query))
51
+ : descriptors;
52
+ if (filtered.length > 0) {
53
+ result.push({ category: cat, descriptors: filtered });
54
+ }
55
+ }
56
+ return result;
57
+ }, [categories, searchQuery]);
58
+ if (isLoading) {
59
+ return (_jsx("div", { className: cn("stgm flex w-60 flex-col gap-3 border-r border-[var(--stgm-border-prominent,#d4d4d8)] bg-[var(--stgm-card,var(--stgm-background,#fff))] p-3", className), children: Array.from({ length: 4 }).map((_, i) => (_jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "h-4 w-20 animate-pulse rounded bg-[var(--stgm-muted,#f5f5f5)]" }), _jsx("div", { className: "h-10 w-full animate-pulse rounded bg-[var(--stgm-muted,#f5f5f5)]" }), _jsx("div", { className: "h-10 w-full animate-pulse rounded bg-[var(--stgm-muted,#f5f5f5)]" })] }, i))) }));
60
+ }
61
+ if (error) {
62
+ return (_jsxs("div", { className: cn("stgm flex w-60 flex-col items-center justify-center gap-2 border-r border-[var(--stgm-border-prominent,#d4d4d8)] bg-[var(--stgm-card,var(--stgm-background,#fff))] p-4", className), children: [_jsx("span", { className: "text-xs text-[var(--stgm-destructive,#ef4444)]", children: "Failed to load task types" }), _jsx("button", { type: "button", onClick: refetch, className: "rounded border border-[var(--stgm-border-prominent,#d4d4d8)] bg-[var(--stgm-card,var(--stgm-background,#fff))] px-2 py-1 text-xs text-[var(--stgm-foreground,#1a1a2e)] hover:bg-[var(--stgm-muted,#f5f5f5)]", children: "Retry" })] }));
63
+ }
64
+ return (_jsxs("div", { className: cn("stgm flex w-60 shrink-0 flex-col border-r border-[var(--stgm-border-prominent,#d4d4d8)] bg-[var(--stgm-card,var(--stgm-background,#fff))]", className), children: [_jsx("div", { className: "border-b border-[var(--stgm-border-prominent,#d4d4d8)] p-2", children: _jsx("input", { type: "search", placeholder: "Search tasks\u2026", value: searchQuery, onChange: handleSearchChange, className: "w-full rounded border border-[var(--stgm-border-prominent,#d4d4d8)] bg-[var(--stgm-input-bg,var(--stgm-background,#fff))] px-2 py-1.5 text-xs text-[var(--stgm-foreground,#1a1a2e)] placeholder:text-[var(--stgm-muted-foreground,#737373)] outline-none focus:ring-1 focus:ring-[var(--stgm-ring,#3b82f6)]", "aria-label": "Search task types" }) }), _jsx("div", { className: "flex-1 overflow-y-auto p-2", children: filteredCategories.length === 0 ? (_jsx("div", { className: "py-6 text-center text-xs text-[var(--stgm-muted-foreground,#737373)]", children: searchQuery ? "No matching tasks" : "No task types available" })) : (filteredCategories.map(({ category, descriptors }) => (_jsx(PaletteCategory, { category: category, descriptors: descriptors, isCollapsed: collapsedCategories.has(category), onToggle: toggleCategory }, category)))) })] }));
65
+ });
66
+ // ---------------------------------------------------------------------------
67
+ // PaletteCategory
68
+ // ---------------------------------------------------------------------------
69
+ function PaletteCategory({ category, descriptors, isCollapsed, onToggle, }) {
70
+ const categoryColor = CATEGORY_COLORS[category] ?? CATEGORY_COLORS.unspecified;
71
+ return (_jsxs("div", { className: "mb-2", children: [_jsxs("button", { type: "button", onClick: () => onToggle(category), className: "flex w-full items-center gap-1.5 rounded px-1 py-1 text-left text-[11px] font-semibold uppercase tracking-wider text-[var(--stgm-muted-foreground,#737373)] hover:bg-[var(--stgm-muted,#f5f5f5)]", "aria-expanded": !isCollapsed, children: [_jsx("span", { className: "inline-block h-2 w-2 rounded-full", style: { backgroundColor: categoryColor }, "aria-hidden": "true" }), CATEGORY_DISPLAY_NAMES[category], _jsx("span", { className: "ml-auto text-[10px]", children: isCollapsed ? "+" : "\u2212" })] }), !isCollapsed && (_jsx("div", { className: "mt-0.5 space-y-0.5", role: "listbox", "aria-label": CATEGORY_DISPLAY_NAMES[category], children: descriptors.map((descriptor) => (_jsx(PaletteItem, { descriptor: descriptor, categoryColor: categoryColor }, descriptor.kind))) }))] }));
72
+ }
73
+ // ---------------------------------------------------------------------------
74
+ // PaletteItem
75
+ // ---------------------------------------------------------------------------
76
+ function PaletteItem({ descriptor, categoryColor, }) {
77
+ const handleDragStart = useCallback((e) => {
78
+ e.dataTransfer.setData(TASK_KIND_DRAG_MIME, descriptor.kind);
79
+ e.dataTransfer.effectAllowed = "move";
80
+ }, [descriptor.kind]);
81
+ return (_jsxs("div", { draggable: true, onDragStart: handleDragStart, className: "flex cursor-grab items-start gap-2 rounded border border-[var(--stgm-border-prominent,#d4d4d8)] bg-[var(--stgm-background,#fff)] px-2 py-1.5 transition-colors hover:bg-[var(--stgm-muted,#f5f5f5)] active:cursor-grabbing", role: "option", "aria-label": `Drag to add ${descriptor.displayName} task`, children: [_jsx("span", { className: "mt-0.5 inline-block h-2.5 w-0.5 shrink-0 rounded-full", style: { backgroundColor: categoryColor }, "aria-hidden": "true" }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate text-xs font-medium text-[var(--stgm-foreground,#1a1a2e)]", children: descriptor.displayName }), _jsx("div", { className: "truncate text-[10px] leading-tight text-[var(--stgm-muted-foreground,#737373)]", children: descriptor.description })] })] }));
82
+ }
83
+ //# sourceMappingURL=WorkflowTaskPalette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowTaskPalette.js","sourceRoot":"","sources":["../../src/workflow/WorkflowTaskPalette.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE7D,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE7F,yEAAyE;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,+BAA+B,CAAC;AAQnE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,mBAAmB,CAAC,EACnE,SAAS,GACgB;IACzB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACxE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAC5D,IAAI,GAAG,EAAE,CACV,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,CAAsC,EAAE,EAAE;QACzC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,QAAgB,EAAE,EAAE;QACtD,sBAAsB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,EAAE;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAC/C,MAAM,MAAM,GAGP,EAAE,CAAC;QAER,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEvD,MAAM,QAAQ,GAAG,KAAK;gBACpB,CAAC,CAAC,WAAW,CAAC,MAAM,CAChB,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC3C,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC9C;gBACH,CAAC,CAAC,WAAW,CAAC;YAEhB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IAE9B,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CACL,cAAK,SAAS,EAAE,EAAE,CAAC,4IAA4I,EAAE,SAAS,CAAC,YACxK,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACvC,eAAa,SAAS,EAAC,WAAW,aAChC,cAAK,SAAS,EAAC,+DAA+D,GAAG,EACjF,cAAK,SAAS,EAAC,kEAAkE,GAAG,EACpF,cAAK,SAAS,EAAC,kEAAkE,GAAG,KAH5E,CAAC,CAIL,CACP,CAAC,GACE,CACP,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,wKAAwK,EAAE,SAAS,CAAC,aACrM,eAAM,SAAS,EAAC,gDAAgD,0CAEzD,EACP,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,6MAA6M,sBAGhN,IACL,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,2IAA2I,EAC3I,SAAS,CACV,aAED,cAAK,SAAS,EAAC,4DAA4D,YACzE,gBACE,IAAI,EAAC,QAAQ,EACb,WAAW,EAAC,oBAAe,EAC3B,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,kBAAkB,EAC5B,SAAS,EAAC,6SAA6S,gBAC5S,mBAAmB,GAC9B,GACE,EAEN,cAAK,SAAS,EAAC,4BAA4B,YACxC,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACjC,cAAK,SAAS,EAAC,sEAAsE,YAClF,WAAW,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,yBAAyB,GAC1D,CACP,CAAC,CAAC,CAAC,CACF,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CACpD,KAAC,eAAe,IAEd,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAC9C,QAAQ,EAAE,cAAc,IAJnB,QAAQ,CAKb,CACH,CAAC,CACH,GACG,IACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,SAAS,eAAe,CAAC,EACvB,QAAQ,EACR,WAAW,EACX,WAAW,EACX,QAAQ,GAMT;IACC,MAAM,aAAa,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,WAAW,CAAC;IAE/E,OAAO,CACL,eAAK,SAAS,EAAC,MAAM,aACnB,kBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACjC,SAAS,EAAC,kMAAkM,mBAC7L,CAAC,WAAW,aAE3B,eACE,SAAS,EAAC,mCAAmC,EAC7C,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,iBAC7B,MAAM,GAClB,EACD,sBAAsB,CAAC,QAAQ,CAAC,EACjC,eAAM,SAAS,EAAC,qBAAqB,YAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,GAAQ,IACpE,EAER,CAAC,WAAW,IAAI,CACf,cAAK,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAC,SAAS,gBAAa,sBAAsB,CAAC,QAAQ,CAAC,YAC5F,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAC/B,KAAC,WAAW,IAEV,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,IAFvB,UAAU,CAAC,IAAI,CAGpB,CACH,CAAC,GACE,CACP,IACG,CACP,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,SAAS,WAAW,CAAC,EACnB,UAAU,EACV,aAAa,GAId;IACC,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,CAA4B,EAAE,EAAE;QAC/B,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,MAAM,CAAC;IACxC,CAAC,EACD,CAAC,UAAU,CAAC,IAAI,CAAC,CAClB,CAAC;IAEF,OAAO,CACL,eACE,SAAS,QACT,WAAW,EAAE,eAAe,EAC5B,SAAS,EAAC,4NAA4N,EACtO,IAAI,EAAC,QAAQ,gBACD,eAAe,UAAU,CAAC,WAAW,OAAO,aAExD,eACE,SAAS,EAAC,uDAAuD,EACjE,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,iBAC7B,MAAM,GAClB,EACF,eAAK,SAAS,EAAC,gBAAgB,aAC7B,cAAK,SAAS,EAAC,oEAAoE,YAChF,UAAU,CAAC,WAAW,GACnB,EACN,cAAK,SAAS,EAAC,gFAAgF,YAC5F,UAAU,CAAC,WAAW,GACnB,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { UseWorkflowTopologyReturn } from "./useWorkflowTopology";
2
+ /** Props for {@link WorkflowTopologyGraph}. */
3
+ export interface WorkflowTopologyGraphProps {
4
+ /** Topology data from {@link useWorkflowTopology}. */
5
+ readonly topology: UseWorkflowTopologyReturn;
6
+ /** Additional CSS class names for the root container. */
7
+ readonly className?: string;
8
+ }
9
+ /**
10
+ * Read-only SVG DAG renderer for workflow topology.
11
+ *
12
+ * Uses dagre for layered layout computation and renders nodes as
13
+ * rounded rectangles with category-based coloring. Edges are drawn
14
+ * as SVG paths with arrowhead markers.
15
+ *
16
+ * Supports mouse wheel zoom and drag-to-pan for large workflows.
17
+ * All colors flow through `--stgm-*` tokens with sensible fallbacks.
18
+ *
19
+ * @since T10 (YAML Editor with Graph Preview)
20
+ */
21
+ export declare const WorkflowTopologyGraph: import("react").NamedExoticComponent<WorkflowTopologyGraphProps>;
22
+ //# sourceMappingURL=WorkflowTopologyGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowTopologyGraph.d.ts","sourceRoot":"","sources":["../../src/workflow/WorkflowTopologyGraph.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA8B,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGnG,+CAA+C;AAC/C,MAAM,WAAW,0BAA0B;IACzC,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,kEAmGhC,CAAC"}