@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,66 @@
1
+ "use client";
2
+
3
+ import { useCallback } from "react";
4
+ import { useStigmer } from "../hooks";
5
+ import { useResourceCount, type ResourceListScope } from "../search";
6
+
7
+ /** Options for {@link useWorkflowCount}. */
8
+ export interface UseWorkflowCountOptions {
9
+ /** Text query to filter workflows before counting. */
10
+ readonly query?: string;
11
+ /**
12
+ * Controls which workflows are counted.
13
+ *
14
+ * - `"org"` — only workflows owned by the given organization.
15
+ * - `"all"` — includes public/platform workflows.
16
+ *
17
+ * @default "org"
18
+ */
19
+ readonly scope?: ResourceListScope;
20
+ }
21
+
22
+ /** Return value of {@link useWorkflowCount}. */
23
+ export interface UseWorkflowCountReturn {
24
+ /**
25
+ * Total number of workflows matching the current filters. `undefined`
26
+ * until the first successful fetch completes.
27
+ */
28
+ readonly count: number | undefined;
29
+ /** `true` while the count fetch is in flight. */
30
+ readonly isLoading: boolean;
31
+ /** Error message from the last failed fetch, or `null` when healthy. */
32
+ readonly error: Error | null;
33
+ /** Re-fetch the count with the same parameters. */
34
+ readonly refetch: () => void;
35
+ }
36
+
37
+ /**
38
+ * Data hook that fetches the total count of workflows.
39
+ *
40
+ * Issues a minimal `stigmer.workflow.list()` call to retrieve only the
41
+ * total count — no workflow entries are returned or stored. Useful for
42
+ * summary cards, badges, and dashboard widgets.
43
+ *
44
+ * For the full paginated workflow list, use {@link useWorkflowList} instead.
45
+ *
46
+ * Pass `null` as `org` to skip fetching (stable no-op).
47
+ *
48
+ * @example
49
+ * ```tsx
50
+ * const { count, isLoading } = useWorkflowCount("acme");
51
+ * ```
52
+ */
53
+ export function useWorkflowCount(
54
+ org: string | null,
55
+ options?: UseWorkflowCountOptions,
56
+ ): UseWorkflowCountReturn {
57
+ const stigmer = useStigmer();
58
+
59
+ const listFn = useCallback(
60
+ (params: Parameters<typeof stigmer.workflow.list>[0]) =>
61
+ stigmer.workflow.list(params),
62
+ [stigmer],
63
+ );
64
+
65
+ return useResourceCount(listFn, org, options);
66
+ }
@@ -0,0 +1,71 @@
1
+ "use client";
2
+
3
+ import { create } from "@bufbuild/protobuf";
4
+ import type { ExecutionSummary } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
5
+ import {
6
+ GetExecutionSummaryRequestSchema,
7
+ SummaryTimeWindow,
8
+ } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
9
+ import { useStigmer } from "../hooks";
10
+ import { useFetch } from "../internal/useFetch";
11
+
12
+ export type { SummaryTimeWindow };
13
+
14
+ export interface UseWorkflowDashboardSummaryOptions {
15
+ /** Organization slug. When empty, the hook does not fetch. */
16
+ readonly org: string | null | undefined;
17
+ /** Time window for aggregation. @default SUMMARY_TIME_WINDOW_LAST_7D */
18
+ readonly timeWindow?: SummaryTimeWindow;
19
+ /** Refetch interval in milliseconds. `0` or `false` disables. @default 0 */
20
+ readonly refetchInterval?: number | false;
21
+ }
22
+
23
+ export interface UseWorkflowDashboardSummaryReturn {
24
+ readonly summary: ExecutionSummary | null;
25
+ readonly isLoading: boolean;
26
+ readonly isRefetching: boolean;
27
+ readonly error: Error | null;
28
+ readonly refetch: () => void;
29
+ }
30
+
31
+ /**
32
+ * Data hook that fetches aggregated execution statistics for an organization.
33
+ *
34
+ * Returns phase counts, cost totals, average duration, top failing workflows,
35
+ * and per-workflow cost breakdowns — scoped to a configurable time window.
36
+ *
37
+ * @example
38
+ * ```tsx
39
+ * const { summary, isLoading } = useWorkflowDashboardSummary({
40
+ * org: "acme",
41
+ * timeWindow: SummaryTimeWindow.SUMMARY_TIME_WINDOW_LAST_7D,
42
+ * });
43
+ * ```
44
+ */
45
+ export function useWorkflowDashboardSummary(
46
+ options: UseWorkflowDashboardSummaryOptions,
47
+ ): UseWorkflowDashboardSummaryReturn {
48
+ const stigmer = useStigmer();
49
+ const org = options.org ?? "";
50
+ const timeWindow =
51
+ options.timeWindow ?? SummaryTimeWindow.LAST_7D;
52
+ const refetchInterval = options.refetchInterval ?? 0;
53
+
54
+ const fetchFn = org
55
+ ? async () => {
56
+ return await stigmer.workflowExecution.getExecutionSummary(
57
+ create(GetExecutionSummaryRequestSchema, { org, timeWindow }),
58
+ );
59
+ }
60
+ : null;
61
+
62
+ const { data, isLoading, isRefetching, error, refetch } =
63
+ useFetch<ExecutionSummary | null>(
64
+ fetchFn,
65
+ [stigmer, org, timeWindow],
66
+ null,
67
+ { refetchInterval: refetchInterval || false },
68
+ );
69
+
70
+ return { summary: data, isLoading, isRefetching, error, refetch };
71
+ }
@@ -0,0 +1,106 @@
1
+ "use client";
2
+
3
+ import { useCallback, useMemo, useRef, useState } from "react";
4
+ import type { Diagnostic } from "@codemirror/lint";
5
+ import { useWorkflowValidation } from "./useWorkflowValidation";
6
+ import { useWorkflowTopology } from "./useWorkflowTopology";
7
+ import { useWorkflowSave } from "./useWorkflowSave";
8
+ import { useTaskKindRegistryContext } from "./TaskKindRegistryContext";
9
+ import { useTaskKindRegistry } from "./useTaskKindRegistry";
10
+
11
+ /** Options for {@link useWorkflowEditor}. */
12
+ export interface UseWorkflowEditorOptions {
13
+ /** Organization slug for the save path. */
14
+ readonly org: string;
15
+ }
16
+
17
+ /** Return value of {@link useWorkflowEditor}. */
18
+ export interface UseWorkflowEditorReturn {
19
+ /** Current YAML content in the editor. */
20
+ readonly yaml: string;
21
+ /** Update the YAML content (called by the editor on change). */
22
+ readonly setYaml: (value: string) => void;
23
+ /** CodeMirror-compatible diagnostics from the validation pipeline. */
24
+ readonly diagnostics: readonly Diagnostic[];
25
+ /** `true` when the editor content differs from the initial value. */
26
+ readonly isDirty: boolean;
27
+ /** `true` while a save request is in flight. */
28
+ readonly isSaving: boolean;
29
+ /** Error from the last failed save, or `null` on success. */
30
+ readonly saveError: Error | null;
31
+ /** Persist the current YAML to the server. Returns `true` on success. */
32
+ readonly save: () => Promise<boolean>;
33
+ /** Reset the editor to the initial YAML (discards changes). */
34
+ readonly reset: () => void;
35
+ /** Topology data for the graph preview. */
36
+ readonly topology: ReturnType<typeof useWorkflowTopology>;
37
+ /** Count of error-level diagnostics. */
38
+ readonly errorCount: number;
39
+ /** Count of warning-level diagnostics. */
40
+ readonly warningCount: number;
41
+ }
42
+
43
+ /**
44
+ * Behavior hook that orchestrates the workflow YAML editor experience.
45
+ *
46
+ * Composes the validation pipeline, topology computation, and save logic
47
+ * into a single return value that the `WorkflowEditorView` renders.
48
+ *
49
+ * @param initialYaml - The YAML string to initialize the editor with.
50
+ * @param options - Editor configuration (organization slug).
51
+ *
52
+ * @since T10 (YAML Editor with Graph Preview)
53
+ */
54
+ export function useWorkflowEditor(
55
+ initialYaml: string,
56
+ options: UseWorkflowEditorOptions,
57
+ ): UseWorkflowEditorReturn {
58
+ const [yaml, setYaml] = useState(initialYaml);
59
+ const initialRef = useRef(initialYaml);
60
+
61
+ const registry = useTaskKindRegistry();
62
+ const { diagnostics } = useWorkflowValidation(yaml, registry);
63
+ const topology = useWorkflowTopology(yaml);
64
+ const { save: applySave, isSaving, error: saveError } = useWorkflowSave(options.org);
65
+
66
+ const isDirty = yaml !== initialRef.current;
67
+
68
+ const save = useCallback(async (): Promise<boolean> => {
69
+ const success = await applySave(yaml);
70
+ if (success) {
71
+ initialRef.current = yaml;
72
+ }
73
+ return success;
74
+ }, [applySave, yaml]);
75
+
76
+ const reset = useCallback(() => {
77
+ setYaml(initialRef.current);
78
+ }, []);
79
+
80
+ const errorCount = useMemo(
81
+ () => diagnostics.filter((d) => d.severity === "error").length,
82
+ [diagnostics],
83
+ );
84
+
85
+ const warningCount = useMemo(
86
+ () => diagnostics.filter((d) => d.severity === "warning").length,
87
+ [diagnostics],
88
+ );
89
+
90
+ return useMemo(
91
+ () => ({
92
+ yaml,
93
+ setYaml,
94
+ diagnostics,
95
+ isDirty,
96
+ isSaving,
97
+ saveError,
98
+ save,
99
+ reset,
100
+ topology,
101
+ errorCount,
102
+ warningCount,
103
+ }),
104
+ [yaml, setYaml, diagnostics, isDirty, isSaving, saveError, save, reset, topology, errorCount, warningCount],
105
+ );
106
+ }
@@ -0,0 +1,67 @@
1
+ "use client";
2
+
3
+ import type { WorkflowExecution } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/api_pb";
4
+ import { isNotFound } from "@stigmer/sdk";
5
+ import { useStigmer } from "../hooks";
6
+ import { useFetch } from "../internal/useFetch";
7
+
8
+ /** Return value of {@link useWorkflowExecution}. */
9
+ export interface UseWorkflowExecutionReturn {
10
+ /** The resolved execution, or `null` while loading, on error, or when not found. */
11
+ readonly execution: WorkflowExecution | null;
12
+ /** `true` while the initial fetch is in flight. */
13
+ readonly isLoading: boolean;
14
+ /** `true` while a background refetch is in flight and stale data is shown. */
15
+ readonly isRefetching: boolean;
16
+ /** Error from the last failed request, or `null` when healthy. */
17
+ readonly error: Error | null;
18
+ /** Discard cached data and re-fetch from the server. */
19
+ readonly refetch: () => void;
20
+ }
21
+
22
+ /**
23
+ * Data hook that fetches a single WorkflowExecution by ID.
24
+ *
25
+ * Pass `null` for `executionId` to skip fetching (stable no-op).
26
+ * When the ID changes, the previous request is discarded and a
27
+ * fresh fetch begins.
28
+ *
29
+ * If the API returns NOT_FOUND, `execution` is set to `null`
30
+ * without raising an error.
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * function ExecutionHeader({ id }: { id: string }) {
35
+ * const { execution, isLoading, error } = useWorkflowExecution(id);
36
+ * if (isLoading) return <Skeleton />;
37
+ * if (error) return <ErrorMessage error={error} />;
38
+ * if (!execution) return <NotFound />;
39
+ * return <h2>{execution.metadata?.name}</h2>;
40
+ * }
41
+ * ```
42
+ */
43
+ export function useWorkflowExecution(
44
+ executionId: string | null,
45
+ ): UseWorkflowExecutionReturn {
46
+ const stigmer = useStigmer();
47
+
48
+ const fetchFn = executionId
49
+ ? async () => {
50
+ try {
51
+ return await stigmer.workflowExecution.get(executionId);
52
+ } catch (err) {
53
+ if (isNotFound(err)) return null;
54
+ throw err;
55
+ }
56
+ }
57
+ : null;
58
+
59
+ const { data: execution, isLoading, isRefetching, error, refetch } = useFetch(
60
+ fetchFn,
61
+ [executionId, stigmer],
62
+ null,
63
+ { cacheKey: executionId ? `workflow-execution:${executionId}` : undefined },
64
+ );
65
+
66
+ return { execution, isLoading, isRefetching, error, refetch };
67
+ }
@@ -0,0 +1,179 @@
1
+ "use client";
2
+
3
+ import { useCallback, useRef, useState } from "react";
4
+ import type { WorkflowExecution } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/api_pb";
5
+ import type { ApprovalAction } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
6
+ import { create } from "@bufbuild/protobuf";
7
+ import {
8
+ CancelWorkflowExecutionInputSchema,
9
+ TerminateWorkflowExecutionInputSchema,
10
+ PauseWorkflowExecutionInputSchema,
11
+ ResumeWorkflowExecutionInputSchema,
12
+ RecoverWorkflowExecutionInputSchema,
13
+ SubmitWorkflowApprovalInputSchema,
14
+ } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
15
+ import { useStigmer } from "../hooks";
16
+ import { toError } from "../internal/toError";
17
+
18
+ /** Return value of {@link useWorkflowExecutionActions}. */
19
+ export interface UseWorkflowExecutionActionsReturn {
20
+ /** Cancel a running execution gracefully. */
21
+ readonly cancel: (reason?: string) => Promise<WorkflowExecution | null>;
22
+ /** Terminate a running execution immediately. */
23
+ readonly terminate: (reason?: string) => Promise<WorkflowExecution | null>;
24
+ /** Pause a running execution. */
25
+ readonly pause: (reason?: string) => Promise<WorkflowExecution | null>;
26
+ /** Resume a paused execution. */
27
+ readonly resume: () => Promise<WorkflowExecution | null>;
28
+ /** Recover a failed execution from its last checkpoint. */
29
+ readonly recover: (reason?: string) => Promise<WorkflowExecution | null>;
30
+ /** Submit an approval decision for a child agent's tool execution. */
31
+ readonly submitApproval: (
32
+ toolCallId: string,
33
+ action: ApprovalAction,
34
+ comment?: string,
35
+ ) => Promise<WorkflowExecution | null>;
36
+ /** `true` while any action is in flight. */
37
+ readonly isSubmitting: boolean;
38
+ /** Error from the last failed action, or `null`. */
39
+ readonly error: Error | null;
40
+ }
41
+
42
+ /**
43
+ * Behavior hook that encapsulates workflow execution lifecycle actions.
44
+ *
45
+ * Each action calls the corresponding RPC and returns the updated
46
+ * execution, or `null` on failure (with `error` populated).
47
+ *
48
+ * Pass `null` for `executionId` to disable all actions (they become
49
+ * no-ops that return `null`).
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * const actions = useWorkflowExecutionActions(executionId);
54
+ *
55
+ * <button onClick={() => actions.cancel("No longer needed")} disabled={actions.isSubmitting}>
56
+ * Cancel
57
+ * </button>
58
+ * ```
59
+ */
60
+ export function useWorkflowExecutionActions(
61
+ executionId: string | null,
62
+ ): UseWorkflowExecutionActionsReturn {
63
+ const stigmer = useStigmer();
64
+ const [isSubmitting, setIsSubmitting] = useState(false);
65
+ const [error, setError] = useState<Error | null>(null);
66
+
67
+ const executionIdRef = useRef(executionId);
68
+ executionIdRef.current = executionId;
69
+ const stigmerRef = useRef(stigmer);
70
+ stigmerRef.current = stigmer;
71
+
72
+ const wrap = useCallback(
73
+ async (fn: () => Promise<WorkflowExecution>): Promise<WorkflowExecution | null> => {
74
+ if (!executionIdRef.current) return null;
75
+ setIsSubmitting(true);
76
+ setError(null);
77
+ try {
78
+ const result = await fn();
79
+ return result;
80
+ } catch (err) {
81
+ setError(toError(err));
82
+ return null;
83
+ } finally {
84
+ setIsSubmitting(false);
85
+ }
86
+ },
87
+ [],
88
+ );
89
+
90
+ const cancel = useCallback(
91
+ (reason?: string) =>
92
+ wrap(() =>
93
+ stigmerRef.current.workflowExecution.cancel(
94
+ create(CancelWorkflowExecutionInputSchema, {
95
+ id: executionIdRef.current!,
96
+ reason: reason ?? "",
97
+ }),
98
+ ),
99
+ ),
100
+ [wrap],
101
+ );
102
+
103
+ const terminate = useCallback(
104
+ (reason?: string) =>
105
+ wrap(() =>
106
+ stigmerRef.current.workflowExecution.terminate(
107
+ create(TerminateWorkflowExecutionInputSchema, {
108
+ id: executionIdRef.current!,
109
+ reason: reason ?? "",
110
+ }),
111
+ ),
112
+ ),
113
+ [wrap],
114
+ );
115
+
116
+ const pause = useCallback(
117
+ (reason?: string) =>
118
+ wrap(() =>
119
+ stigmerRef.current.workflowExecution.pause(
120
+ create(PauseWorkflowExecutionInputSchema, {
121
+ id: executionIdRef.current!,
122
+ reason: reason ?? "",
123
+ }),
124
+ ),
125
+ ),
126
+ [wrap],
127
+ );
128
+
129
+ const resume = useCallback(
130
+ () =>
131
+ wrap(() =>
132
+ stigmerRef.current.workflowExecution.resume(
133
+ create(ResumeWorkflowExecutionInputSchema, {
134
+ id: executionIdRef.current!,
135
+ }),
136
+ ),
137
+ ),
138
+ [wrap],
139
+ );
140
+
141
+ const recover = useCallback(
142
+ (reason?: string) =>
143
+ wrap(() =>
144
+ stigmerRef.current.workflowExecution.recover(
145
+ create(RecoverWorkflowExecutionInputSchema, {
146
+ id: executionIdRef.current!,
147
+ reason: reason ?? "",
148
+ }),
149
+ ),
150
+ ),
151
+ [wrap],
152
+ );
153
+
154
+ const submitApproval = useCallback(
155
+ (toolCallId: string, action: ApprovalAction, comment?: string) =>
156
+ wrap(() =>
157
+ stigmerRef.current.workflowExecution.submitApproval(
158
+ create(SubmitWorkflowApprovalInputSchema, {
159
+ executionId: executionIdRef.current!,
160
+ toolCallId,
161
+ action,
162
+ comment: comment ?? "",
163
+ }),
164
+ ),
165
+ ),
166
+ [wrap],
167
+ );
168
+
169
+ return {
170
+ cancel,
171
+ terminate,
172
+ pause,
173
+ resume,
174
+ recover,
175
+ submitApproval,
176
+ isSubmitting,
177
+ error,
178
+ };
179
+ }
@@ -0,0 +1,57 @@
1
+ "use client";
2
+
3
+ import type { Artifact } from "@stigmer/protos/ai/stigmer/agentic/artifact/v1/api_pb";
4
+ import { create } from "@bufbuild/protobuf";
5
+ import { ListArtifactsByExecutionRequestSchema } from "@stigmer/protos/ai/stigmer/agentic/artifact/v1/io_pb";
6
+ import { useStigmer } from "../hooks";
7
+ import { useFetch } from "../internal/useFetch";
8
+
9
+ /** Return value of {@link useWorkflowExecutionArtifacts}. */
10
+ export interface UseWorkflowExecutionArtifactsReturn {
11
+ /** Artifacts produced by this execution. */
12
+ readonly artifacts: readonly Artifact[];
13
+ /** `true` while the initial fetch is in flight. */
14
+ readonly isLoading: boolean;
15
+ /** `true` while a background refetch is in flight and stale data is shown. */
16
+ readonly isRefetching: boolean;
17
+ /** Error from the last failed request, or `null` when healthy. */
18
+ readonly error: Error | null;
19
+ /** Discard cached data and re-fetch from the server. */
20
+ readonly refetch: () => void;
21
+ }
22
+
23
+ /**
24
+ * Data hook that fetches artifacts produced by a workflow execution.
25
+ *
26
+ * Pass `null` for `executionId` to skip fetching.
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * const { artifacts, isLoading } = useWorkflowExecutionArtifacts(executionId);
31
+ * ```
32
+ */
33
+ export function useWorkflowExecutionArtifacts(
34
+ executionId: string | null,
35
+ ): UseWorkflowExecutionArtifactsReturn {
36
+ const stigmer = useStigmer();
37
+
38
+ const fetchFn = executionId
39
+ ? async () => {
40
+ const resp = await stigmer.artifact.listByExecution(
41
+ create(ListArtifactsByExecutionRequestSchema, {
42
+ workflowExecutionId: executionId,
43
+ }),
44
+ );
45
+ return [...resp.entries];
46
+ }
47
+ : null;
48
+
49
+ const { data: artifacts, isLoading, isRefetching, error, refetch } = useFetch(
50
+ fetchFn,
51
+ [executionId, stigmer],
52
+ [] as readonly Artifact[],
53
+ { cacheKey: executionId ? `workflow-execution-artifacts:${executionId}` : undefined },
54
+ );
55
+
56
+ return { artifacts, isLoading, isRefetching, error, refetch };
57
+ }
@@ -0,0 +1,111 @@
1
+ "use client";
2
+
3
+ import type { WorkflowExecutionEvent } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
4
+ import type { WorkflowEventType } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/event_pb";
5
+ import { create } from "@bufbuild/protobuf";
6
+ import { GetEventLogRequestSchema } from "@stigmer/protos/ai/stigmer/agentic/workflowexecution/v1/io_pb";
7
+ import { useStigmer } from "../hooks";
8
+ import { useFetch } from "../internal/useFetch";
9
+
10
+ /** Options for {@link useWorkflowExecutionEventLog}. */
11
+ export interface UseWorkflowExecutionEventLogOptions {
12
+ /** Maximum events per page. @default 100 */
13
+ readonly pageSize?: number;
14
+ /** Cursor: return events with sequence_number > this value. @default 0 */
15
+ readonly afterSequence?: bigint;
16
+ /** Filter to specific event types. When empty, all types are returned. */
17
+ readonly eventTypes?: readonly WorkflowEventType[];
18
+ /** Filter to events for a specific task name. */
19
+ readonly taskName?: string;
20
+ }
21
+
22
+ /** Return value of {@link useWorkflowExecutionEventLog}. */
23
+ export interface UseWorkflowExecutionEventLogReturn {
24
+ /** Events in the current page, ordered by sequence_number ascending. */
25
+ readonly events: readonly WorkflowExecutionEvent[];
26
+ /** Whether more events exist after the last event in this response. */
27
+ readonly hasMore: boolean;
28
+ /** Highest sequence_number returned, for cursor-based pagination. */
29
+ readonly latestSequence: bigint;
30
+ /** `true` while the initial fetch is in flight. */
31
+ readonly isLoading: boolean;
32
+ /** `true` while a background refetch is in flight and stale data is shown. */
33
+ readonly isRefetching: boolean;
34
+ /** Error from the last failed request, or `null` when healthy. */
35
+ readonly error: Error | null;
36
+ /** Discard cached data and re-fetch from the server. */
37
+ readonly refetch: () => void;
38
+ }
39
+
40
+ interface EventLogData {
41
+ events: readonly WorkflowExecutionEvent[];
42
+ hasMore: boolean;
43
+ latestSequence: bigint;
44
+ }
45
+
46
+ const INITIAL_DATA: EventLogData = {
47
+ events: [],
48
+ hasMore: false,
49
+ latestSequence: BigInt(0),
50
+ };
51
+
52
+ /**
53
+ * Data hook that fetches the paginated event log for a workflow execution.
54
+ *
55
+ * Pass `null` for `executionId` to skip fetching. Supports cursor-based
56
+ * pagination via `afterSequence` and optional filters by event type or
57
+ * task name.
58
+ *
59
+ * @example
60
+ * ```tsx
61
+ * const { events, hasMore, latestSequence } = useWorkflowExecutionEventLog(
62
+ * executionId,
63
+ * { pageSize: 50 },
64
+ * );
65
+ * ```
66
+ */
67
+ export function useWorkflowExecutionEventLog(
68
+ executionId: string | null,
69
+ options?: UseWorkflowExecutionEventLogOptions,
70
+ ): UseWorkflowExecutionEventLogReturn {
71
+ const stigmer = useStigmer();
72
+ const pageSize = options?.pageSize ?? 100;
73
+ const afterSequence = options?.afterSequence ?? BigInt(0);
74
+ const eventTypes = options?.eventTypes ?? [];
75
+ const taskName = options?.taskName ?? "";
76
+
77
+ const fetchFn = executionId
78
+ ? async () => {
79
+ const resp = await stigmer.workflowExecution.getEventLog(
80
+ create(GetEventLogRequestSchema, {
81
+ executionId,
82
+ afterSequence,
83
+ eventTypes: [...eventTypes],
84
+ taskName,
85
+ pageSize,
86
+ }),
87
+ );
88
+ return {
89
+ events: [...resp.events],
90
+ hasMore: resp.hasMore,
91
+ latestSequence: resp.latestSequence,
92
+ };
93
+ }
94
+ : null;
95
+
96
+ const { data, isLoading, isRefetching, error, refetch } = useFetch<EventLogData>(
97
+ fetchFn,
98
+ [executionId, stigmer, pageSize, afterSequence, taskName, ...eventTypes],
99
+ INITIAL_DATA,
100
+ );
101
+
102
+ return {
103
+ events: data.events,
104
+ hasMore: data.hasMore,
105
+ latestSequence: data.latestSequence,
106
+ isLoading,
107
+ isRefetching,
108
+ error,
109
+ refetch,
110
+ };
111
+ }