@stigmer/react 0.5.1 → 1.0.1

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,80 @@
1
+ /**
2
+ * TypeScript representation of a TaskKindDescriptor from the task kind registry.
3
+ *
4
+ * Each descriptor provides complete metadata for a single workflow task kind,
5
+ * enabling UI form generation, YAML editor autocomplete, task palette
6
+ * rendering, and client-side pre-validation.
7
+ *
8
+ * @since T04 (Task Schema Registry)
9
+ */
10
+ export interface TaskKindDescriptor {
11
+ /** Workflow task kind identifier (e.g., "llm_call", "human_input"). */
12
+ readonly kind: string;
13
+ /** Human-readable display name (e.g., "LLM Call", "Human Input"). */
14
+ readonly displayName: string;
15
+ /** One-line description of what this task kind does. */
16
+ readonly description: string;
17
+ /** Functional category for palette grouping and filtering. */
18
+ readonly category: TaskKindCategory;
19
+ /** Lucide icon name for UI rendering. */
20
+ readonly icon: string;
21
+ /** Fully-qualified proto message type for the task config. */
22
+ readonly configProtoType: string;
23
+ /** Ordered field descriptors for form rendering. */
24
+ readonly fields: readonly TaskFieldDescriptor[];
25
+ /** Logical field groups for form section rendering. */
26
+ readonly fieldGroups: readonly TaskFieldGroup[];
27
+ /** JSON Schema (draft 2020-12) for the task_config payload. */
28
+ readonly configJsonSchema: Record<string, unknown>;
29
+ /** JSON Schema describing the task's output shape. */
30
+ readonly outputJsonSchema?: Record<string, unknown>;
31
+ /** YAML code examples demonstrating common usage patterns. */
32
+ readonly yamlExamples?: readonly string[];
33
+ /** Documentation URL path (relative to docs root). */
34
+ readonly documentationUrl: string;
35
+ /** Whether this task kind invokes AI models. */
36
+ readonly isAiNative: boolean;
37
+ /** Whether this task kind requires external service connectivity. */
38
+ readonly requiresExternalService: boolean;
39
+ }
40
+ /** Functional category for grouping task kinds in the UI. */
41
+ export type TaskKindCategory = "control_flow" | "invocation" | "ai" | "data" | "governance" | "event" | "unspecified";
42
+ /** Describes a single field in a task configuration message. */
43
+ export interface TaskFieldDescriptor {
44
+ /** Proto field name (snake_case). */
45
+ readonly name: string;
46
+ /** Human-readable label for form rendering. */
47
+ readonly displayName: string;
48
+ /** Field description from proto comments. */
49
+ readonly description: string;
50
+ /** Data type for rendering the appropriate form control. */
51
+ readonly type: TaskFieldType;
52
+ /** Whether the field is required. */
53
+ readonly required: boolean;
54
+ /** Whether the field accepts ${ } expression interpolation. */
55
+ readonly isExpression?: boolean;
56
+ /** Default value as a JSON-encoded string. */
57
+ readonly defaultValue?: string;
58
+ /** Valid enum values when type is "enum". */
59
+ readonly enumValues?: readonly string[];
60
+ /** Group this field belongs to for form section rendering. */
61
+ readonly groupId?: string;
62
+ /** Proto field number for stable identification. */
63
+ readonly fieldNumber: number;
64
+ /** For repeated: the element type. For message: the nested type name. */
65
+ readonly elementType?: string;
66
+ /** Human-readable validation constraint descriptions. */
67
+ readonly validationHints?: readonly string[];
68
+ }
69
+ /** Data type of a task configuration field. */
70
+ export type TaskFieldType = "string" | "int32" | "float" | "bool" | "enum" | "struct" | "repeated" | "map" | "message";
71
+ /** Logical grouping of fields for form section rendering. */
72
+ export interface TaskFieldGroup {
73
+ /** Group identifier. */
74
+ readonly id: string;
75
+ /** Human-readable label for the group section header. */
76
+ readonly displayName: string;
77
+ /** Optional description shown below the group header. */
78
+ readonly description?: string;
79
+ }
80
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wDAAwD;IACxD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,oDAAoD;IACpD,QAAQ,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAChD,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,SAAS,cAAc,EAAE,CAAC;IAChD,+DAA+D;IAC/D,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnD,sDAAsD;IACtD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpD,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,sDAAsD;IACtD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,gDAAgD;IAChD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,qEAAqE;IACrE,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;CAC3C;AAED,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GACxB,cAAc,GACd,YAAY,GACZ,IAAI,GACJ,MAAM,GACN,YAAY,GACZ,OAAO,GACP,aAAa,CAAC;AAElB,gEAAgE;AAChE,MAAM,WAAW,mBAAmB;IAClC,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,qCAAqC;IACrC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,8CAA8C;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,oDAAoD;IACpD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GACrB,QAAQ,GACR,OAAO,GACP,OAAO,GACP,MAAM,GACN,MAAM,GACN,QAAQ,GACR,UAAU,GACV,KAAK,GACL,SAAS,CAAC;AAEd,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,yDAAyD;IACzD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import type { RefObject } from "react";
2
+ import type { CanvasSelection } from "./useWorkflowCanvas";
3
+ /** Options for {@link useCanvasKeyboardShortcuts}. */
4
+ export interface UseCanvasKeyboardShortcutsOptions {
5
+ readonly containerRef: RefObject<HTMLDivElement | null>;
6
+ readonly selection: CanvasSelection | null;
7
+ readonly duplicateNode: (nodeId: string) => void;
8
+ readonly selectAll: () => void;
9
+ readonly clearSelection: () => void;
10
+ readonly onRequestTaskPicker: (position: {
11
+ x: number;
12
+ y: number;
13
+ }, sourceNodeId?: string) => void;
14
+ readonly onDismiss: () => void;
15
+ }
16
+ /**
17
+ * Canvas-scoped keyboard shortcuts for the workflow editor.
18
+ *
19
+ * Binds shortcuts that are only active when focus is inside the canvas
20
+ * container, using the same capture-phase listener pattern as
21
+ * {@link useGraphHistory} (undo/redo). Bare-key shortcuts (N, Escape)
22
+ * are suppressed when a text input has focus.
23
+ *
24
+ * | Shortcut | Action |
25
+ * |-------------------|---------------------------------------|
26
+ * | `Ctrl/Cmd+D` | Duplicate selected node |
27
+ * | `Ctrl/Cmd+A` | Select all non-sentinel nodes |
28
+ * | `N` (bare key) | Open task picker |
29
+ * | `Escape` | Clear selection / close open overlays |
30
+ *
31
+ * @internal Not exported from the SDK barrel.
32
+ */
33
+ export declare function useCanvasKeyboardShortcuts({ containerRef, selection, duplicateNode, selectAll, clearSelection, onRequestTaskPicker, onDismiss, }: UseCanvasKeyboardShortcutsOptions): void;
34
+ //# sourceMappingURL=useCanvasKeyboardShortcuts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCanvasKeyboardShortcuts.d.ts","sourceRoot":"","sources":["../../src/workflow/useCanvasKeyboardShortcuts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,sDAAsD;AACtD,MAAM,WAAW,iCAAiC;IAChD,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,CAC5B,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAClC,YAAY,CAAC,EAAE,MAAM,KAClB,IAAI,CAAC;IACV,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;CAChC;AAgBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,YAAY,EACZ,SAAS,EACT,aAAa,EACb,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,SAAS,GACV,EAAE,iCAAiC,GAAG,IAAI,CA0E1C"}
@@ -0,0 +1,108 @@
1
+ "use client";
2
+ import { useEffect } from "react";
3
+ function isTextInput(target) {
4
+ if (!(target instanceof HTMLElement))
5
+ return false;
6
+ const tag = target.tagName;
7
+ if (tag === "INPUT" || tag === "TEXTAREA" || tag === "SELECT")
8
+ return true;
9
+ if (target.isContentEditable)
10
+ return true;
11
+ if (target.getAttribute("role") === "textbox")
12
+ return true;
13
+ return false;
14
+ }
15
+ function isFocusInsideContainer(container) {
16
+ const active = document.activeElement;
17
+ return active === container || container.contains(active);
18
+ }
19
+ /**
20
+ * Canvas-scoped keyboard shortcuts for the workflow editor.
21
+ *
22
+ * Binds shortcuts that are only active when focus is inside the canvas
23
+ * container, using the same capture-phase listener pattern as
24
+ * {@link useGraphHistory} (undo/redo). Bare-key shortcuts (N, Escape)
25
+ * are suppressed when a text input has focus.
26
+ *
27
+ * | Shortcut | Action |
28
+ * |-------------------|---------------------------------------|
29
+ * | `Ctrl/Cmd+D` | Duplicate selected node |
30
+ * | `Ctrl/Cmd+A` | Select all non-sentinel nodes |
31
+ * | `N` (bare key) | Open task picker |
32
+ * | `Escape` | Clear selection / close open overlays |
33
+ *
34
+ * @internal Not exported from the SDK barrel.
35
+ */
36
+ export function useCanvasKeyboardShortcuts({ containerRef, selection, duplicateNode, selectAll, clearSelection, onRequestTaskPicker, onDismiss, }) {
37
+ useEffect(() => {
38
+ const container = containerRef.current;
39
+ if (!container)
40
+ return;
41
+ function handleKeyDown(e) {
42
+ if (!container || !isFocusInsideContainer(container))
43
+ return;
44
+ const isMod = e.metaKey || e.ctrlKey;
45
+ // Ctrl/Cmd+D — duplicate selected node
46
+ if (isMod && !e.shiftKey && !e.altKey && e.key.toLowerCase() === "d") {
47
+ e.preventDefault();
48
+ e.stopPropagation();
49
+ if (selection?.type === "node") {
50
+ duplicateNode(selection.id);
51
+ }
52
+ return;
53
+ }
54
+ // Ctrl/Cmd+A — select all
55
+ if (isMod && !e.shiftKey && !e.altKey && e.key.toLowerCase() === "a") {
56
+ if (isTextInput(e.target))
57
+ return;
58
+ e.preventDefault();
59
+ e.stopPropagation();
60
+ selectAll();
61
+ return;
62
+ }
63
+ // Bare-key shortcuts — skip when typing in a text field
64
+ if (isMod || e.altKey)
65
+ return;
66
+ // Escape — clear selection, close menus/pickers
67
+ if (e.key === "Escape") {
68
+ e.preventDefault();
69
+ e.stopPropagation();
70
+ onDismiss();
71
+ clearSelection();
72
+ return;
73
+ }
74
+ // N — open task picker
75
+ if (!e.shiftKey && e.key.toLowerCase() === "n") {
76
+ if (isTextInput(e.target))
77
+ return;
78
+ e.preventDefault();
79
+ e.stopPropagation();
80
+ if (selection?.type === "node") {
81
+ // Position below the selected node — the editor resolves
82
+ // the actual screen coordinates from the node's React Flow position.
83
+ onRequestTaskPicker({ x: 0, y: 0 }, selection.id);
84
+ }
85
+ else {
86
+ // Viewport center
87
+ const rect = container.getBoundingClientRect();
88
+ onRequestTaskPicker({
89
+ x: rect.left + rect.width / 2,
90
+ y: rect.top + rect.height / 2,
91
+ });
92
+ }
93
+ return;
94
+ }
95
+ }
96
+ document.addEventListener("keydown", handleKeyDown, true);
97
+ return () => document.removeEventListener("keydown", handleKeyDown, true);
98
+ }, [
99
+ containerRef,
100
+ selection,
101
+ duplicateNode,
102
+ selectAll,
103
+ clearSelection,
104
+ onRequestTaskPicker,
105
+ onDismiss,
106
+ ]);
107
+ }
108
+ //# sourceMappingURL=useCanvasKeyboardShortcuts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCanvasKeyboardShortcuts.js","sourceRoot":"","sources":["../../src/workflow/useCanvasKeyboardShortcuts.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAkBlC,SAAS,WAAW,CAAC,MAA0B;IAC7C,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;IAC3B,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3E,IAAI,MAAM,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAsB;IACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC;IACtC,OAAO,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,0BAA0B,CAAC,EACzC,YAAY,EACZ,SAAS,EACT,aAAa,EACb,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,SAAS,GACyB;IAClC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACvC,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,SAAS,aAAa,CAAC,CAAgB;YACrC,IAAI,CAAC,SAAS,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC;gBAAE,OAAO;YAE7D,MAAM,KAAK,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC;YAErC,uCAAuC;YACvC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBACrE,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,IAAI,SAAS,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC/B,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC9B,CAAC;gBACD,OAAO;YACT,CAAC;YAED,0BAA0B;YAC1B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBACrE,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;oBAAE,OAAO;gBAClC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,SAAS,EAAE,CAAC;gBACZ,OAAO;YACT,CAAC;YAED,wDAAwD;YACxD,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM;gBAAE,OAAO;YAE9B,gDAAgD;YAChD,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACvB,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,SAAS,EAAE,CAAC;gBACZ,cAAc,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YAED,uBAAuB;YACvB,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,GAAG,EAAE,CAAC;gBAC/C,IAAI,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;oBAAE,OAAO;gBAClC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;gBAEpB,IAAI,SAAS,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;oBAC/B,yDAAyD;oBACzD,qEAAqE;oBACrE,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;gBACpD,CAAC;qBAAM,CAAC;oBACN,kBAAkB;oBAClB,MAAM,IAAI,GAAG,SAAS,CAAC,qBAAqB,EAAE,CAAC;oBAC/C,mBAAmB,CAAC;wBAClB,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;wBAC7B,CAAC,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO;YACT,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1D,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAC5E,CAAC,EAAE;QACD,YAAY;QACZ,SAAS;QACT,aAAa;QACb,SAAS;QACT,cAAc;QACd,mBAAmB;QACnB,SAAS;KACV,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,87 @@
1
+ import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
2
+ /**
3
+ * Lifecycle phases for the workflow execution diagnosis flow.
4
+ *
5
+ * - `idle` — mounted, waiting for auto-start or manual trigger
6
+ * - `starting` — creating session + execution
7
+ * - `streaming` — agent is analyzing (tool calls, reasoning visible)
8
+ * - `complete` — agent finished, YAML fix extracted (diff available)
9
+ * - `ready` — agent finished without YAML (runtime error explanation),
10
+ * or user accepted/discarded a fix; follow-up available
11
+ * - `error` — a failure occurred (RPC, stream)
12
+ */
13
+ export type DiagnosePhase = "idle" | "starting" | "streaming" | "complete" | "ready" | "error";
14
+ /** Options for {@link useDiagnoseExecutionFlow}. */
15
+ export interface UseDiagnoseExecutionFlowOptions {
16
+ /** ID of the failed workflow execution to diagnose. */
17
+ readonly executionId: string;
18
+ /** Organization slug for session and execution creation. */
19
+ readonly org: string;
20
+ /** Current workflow YAML for diff computation (optional). */
21
+ readonly currentWorkflowYaml?: string;
22
+ /**
23
+ * Whether to start diagnosis automatically on mount.
24
+ * @default true
25
+ */
26
+ readonly autoStart?: boolean;
27
+ /** Called when any step fails. Also available via the `error` return. */
28
+ readonly onError?: (message: string) => void;
29
+ }
30
+ /** Return value of {@link useDiagnoseExecutionFlow}. */
31
+ export interface UseDiagnoseExecutionFlowReturn {
32
+ /** Current lifecycle phase. */
33
+ readonly phase: DiagnosePhase;
34
+ /** Completed execution snapshots for MessageThread (chronological). */
35
+ readonly completedExecutions: readonly AgentExecution[];
36
+ /** Currently streaming execution, or null when idle/between turns. */
37
+ readonly activeExecution: AgentExecution | null;
38
+ /** `true` while the agent execution is actively streaming. */
39
+ readonly isStreaming: boolean;
40
+ /** Extracted YAML fix from the latest turn (null unless phase is `complete`). */
41
+ readonly extractedYaml: string | null;
42
+ /** Agent's explanation prose from the latest turn. */
43
+ readonly explanation: string | null;
44
+ /** Human-readable error message, or `null` when healthy. */
45
+ readonly error: string | null;
46
+ /** Start or restart the diagnosis. Callable from `idle` or `error` phases. */
47
+ readonly diagnose: () => Promise<void>;
48
+ /** Send a follow-up question within the same session. */
49
+ readonly sendFollowUp: (message: string) => Promise<void>;
50
+ /** Accept the extracted YAML fix. Returns the YAML string. Transitions to `ready`. */
51
+ readonly acceptFix: () => string | null;
52
+ /** Discard the extracted YAML without applying. Transitions to `ready`. */
53
+ readonly discardFix: () => void;
54
+ /** Reset all state to initial values. Does not delete the server-side session. */
55
+ readonly reset: () => void;
56
+ }
57
+ /**
58
+ * Behavior hook that orchestrates agent-powered workflow execution
59
+ * diagnosis using the built-in Workflow Architect system agent.
60
+ *
61
+ * Manages a multi-turn conversation within a single Session:
62
+ * - First turn creates a Session + AgentExecution with diagnosis context
63
+ * - Subsequent turns reuse the Session (conversational context)
64
+ * - Each turn streams agent messages via {@link useExecutionStream}
65
+ * - YAML is extracted from agent responses via {@link extractWorkflowYaml}
66
+ * — presence of YAML indicates a definition fix; absence indicates a
67
+ * runtime error with explanation only
68
+ *
69
+ * Auto-starts diagnosis on mount by default (AD-B5-002). The agent uses
70
+ * `get_workflow_execution` and `get_workflow_execution_events` MCP tools
71
+ * to inspect the failure autonomously.
72
+ *
73
+ * Framework-agnostic (DD-004), referentially stable returns (DD-010).
74
+ *
75
+ * @example
76
+ * ```tsx
77
+ * const flow = useDiagnoseExecutionFlow({
78
+ * executionId: "wex_abc123",
79
+ * org: "acme",
80
+ * onError: (msg) => toast.error(msg),
81
+ * });
82
+ *
83
+ * <WorkflowRepairCard flow={flow} onApplyFix={...} onClose={...} />
84
+ * ```
85
+ */
86
+ export declare function useDiagnoseExecutionFlow(options: UseDiagnoseExecutionFlowOptions): UseDiagnoseExecutionFlowReturn;
87
+ //# sourceMappingURL=useDiagnoseExecutionFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDiagnoseExecutionFlow.d.ts","sourceRoot":"","sources":["../../src/workflow/useDiagnoseExecutionFlow.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAalG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,UAAU,GACV,WAAW,GACX,UAAU,GACV,OAAO,GACP,OAAO,CAAC;AAEZ,oDAAoD;AACpD,MAAM,WAAW,+BAA+B;IAC9C,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,yEAAyE;IACzE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,wDAAwD;AACxD,MAAM,WAAW,8BAA8B;IAC7C,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,mBAAmB,EAAE,SAAS,cAAc,EAAE,CAAC;IACxD,sEAAsE;IACtE,QAAQ,CAAC,eAAe,EAAE,cAAc,GAAG,IAAI,CAAC;IAChD,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,iFAAiF;IACjF,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,sDAAsD;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,yDAAyD;IACzD,QAAQ,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,sFAAsF;IACtF,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC;IAChC,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;CAC5B;AAKD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,+BAA+B,GACvC,8BAA8B,CAuQhC"}
@@ -0,0 +1,257 @@
1
+ "use client";
2
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
3
+ import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
4
+ import { getUserMessage } from "@stigmer/sdk";
5
+ import { useCreateSession } from "../session/useCreateSession";
6
+ import { useCreateAgentExecution } from "../execution/useCreateAgentExecution";
7
+ import { useExecutionStream } from "../execution/useExecutionStream";
8
+ import { isTerminalPhase } from "../execution/execution-phases";
9
+ import { useConversationStoreRef } from "../internal/store";
10
+ import { extractWorkflowYaml, } from "./extract-workflow-yaml";
11
+ const AGENT_REF = { org: "", slug: "workflow-architect" };
12
+ const MIN_FOLLOWUP_LENGTH = 5;
13
+ /**
14
+ * Behavior hook that orchestrates agent-powered workflow execution
15
+ * diagnosis using the built-in Workflow Architect system agent.
16
+ *
17
+ * Manages a multi-turn conversation within a single Session:
18
+ * - First turn creates a Session + AgentExecution with diagnosis context
19
+ * - Subsequent turns reuse the Session (conversational context)
20
+ * - Each turn streams agent messages via {@link useExecutionStream}
21
+ * - YAML is extracted from agent responses via {@link extractWorkflowYaml}
22
+ * — presence of YAML indicates a definition fix; absence indicates a
23
+ * runtime error with explanation only
24
+ *
25
+ * Auto-starts diagnosis on mount by default (AD-B5-002). The agent uses
26
+ * `get_workflow_execution` and `get_workflow_execution_events` MCP tools
27
+ * to inspect the failure autonomously.
28
+ *
29
+ * Framework-agnostic (DD-004), referentially stable returns (DD-010).
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * const flow = useDiagnoseExecutionFlow({
34
+ * executionId: "wex_abc123",
35
+ * org: "acme",
36
+ * onError: (msg) => toast.error(msg),
37
+ * });
38
+ *
39
+ * <WorkflowRepairCard flow={flow} onApplyFix={...} onClose={...} />
40
+ * ```
41
+ */
42
+ export function useDiagnoseExecutionFlow(options) {
43
+ const { executionId, org, autoStart = true, onError } = options;
44
+ const [phase, setPhase] = useState("idle");
45
+ const [activeExecutionId, setActiveExecutionId] = useState(null);
46
+ const [completedExecutions, setCompletedExecutions] = useState([]);
47
+ const [extracted, setExtracted] = useState(null);
48
+ const [error, setError] = useState(null);
49
+ const orgRef = useRef(org);
50
+ orgRef.current = org;
51
+ const executionIdRef = useRef(executionId);
52
+ executionIdRef.current = executionId;
53
+ const onErrorRef = useRef(onError);
54
+ onErrorRef.current = onError;
55
+ const sessionIdRef = useRef(null);
56
+ const prevTerminalRef = useRef(false);
57
+ const autoStartedRef = useRef(false);
58
+ const { create: createSession } = useCreateSession();
59
+ const { create: createExecution } = useCreateAgentExecution();
60
+ const conversationStore = useConversationStoreRef();
61
+ const stream = useExecutionStream(activeExecutionId, {
62
+ store: conversationStore,
63
+ });
64
+ // ---------------------------------------------------------------------------
65
+ // Build the initial diagnosis message
66
+ // ---------------------------------------------------------------------------
67
+ const buildDiagnosisMessage = useCallback(() => {
68
+ return (`Diagnose the failed workflow execution \`${executionIdRef.current}\`.\n\n` +
69
+ "Analyze the failure root cause using the execution status and event log.\n" +
70
+ "If this is a workflow definition error, generate a validated fix.\n" +
71
+ "If this is a runtime error, explain the root cause and suggest operational remediation.");
72
+ }, []);
73
+ // ---------------------------------------------------------------------------
74
+ // Terminal phase detection — extract YAML or transition to ready
75
+ // ---------------------------------------------------------------------------
76
+ useEffect(() => {
77
+ if (phase !== "streaming")
78
+ return;
79
+ const isTerminal = stream.phase !== ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED &&
80
+ isTerminalPhase(stream.phase);
81
+ if (isTerminal && !prevTerminalRef.current) {
82
+ prevTerminalRef.current = true;
83
+ if (stream.execution) {
84
+ setCompletedExecutions((prev) => [...prev, stream.execution]);
85
+ }
86
+ const result = extractWorkflowYaml(stream.execution);
87
+ if (result) {
88
+ setExtracted(result);
89
+ setPhase("complete");
90
+ }
91
+ else {
92
+ setPhase("ready");
93
+ }
94
+ setActiveExecutionId(null);
95
+ }
96
+ }, [phase, stream.phase, stream.execution]);
97
+ // ---------------------------------------------------------------------------
98
+ // Stream error surfacing
99
+ // ---------------------------------------------------------------------------
100
+ useEffect(() => {
101
+ if (stream.error && phase === "streaming") {
102
+ const msg = getUserMessage(stream.error, "Agent stream interrupted");
103
+ setPhase("error");
104
+ setError(msg);
105
+ onErrorRef.current?.(msg);
106
+ }
107
+ }, [stream.error, phase]);
108
+ // ---------------------------------------------------------------------------
109
+ // Start diagnosis (initial turn)
110
+ // ---------------------------------------------------------------------------
111
+ const diagnose = useCallback(async () => {
112
+ if (phase !== "idle" && phase !== "error")
113
+ return;
114
+ setPhase("starting");
115
+ setError(null);
116
+ setExtracted(null);
117
+ prevTerminalRef.current = false;
118
+ try {
119
+ let activeSessionId = sessionIdRef.current;
120
+ if (!activeSessionId) {
121
+ const { sessionId: newSessionId } = await createSession({
122
+ org: orgRef.current,
123
+ agentRef: { ...AGENT_REF, org: orgRef.current },
124
+ });
125
+ sessionIdRef.current = newSessionId;
126
+ activeSessionId = newSessionId;
127
+ }
128
+ const message = buildDiagnosisMessage();
129
+ const { executionId: newExecutionId } = await createExecution({
130
+ org: orgRef.current,
131
+ sessionId: activeSessionId,
132
+ message,
133
+ });
134
+ setActiveExecutionId(newExecutionId);
135
+ setPhase("streaming");
136
+ }
137
+ catch (err) {
138
+ const msg = getUserMessage(err, "Failed to start the Workflow Architect agent");
139
+ setPhase("error");
140
+ setError(msg);
141
+ onErrorRef.current?.(msg);
142
+ }
143
+ }, [phase, createSession, createExecution, buildDiagnosisMessage]);
144
+ // ---------------------------------------------------------------------------
145
+ // Send a follow-up question
146
+ // ---------------------------------------------------------------------------
147
+ const sendFollowUp = useCallback(async (message) => {
148
+ const trimmed = message.trim();
149
+ if (trimmed.length < MIN_FOLLOWUP_LENGTH) {
150
+ setError(`Follow-up must be at least ${MIN_FOLLOWUP_LENGTH} characters`);
151
+ return;
152
+ }
153
+ if (phase !== "ready" &&
154
+ phase !== "complete" &&
155
+ phase !== "error") {
156
+ return;
157
+ }
158
+ setPhase("starting");
159
+ setError(null);
160
+ setExtracted(null);
161
+ prevTerminalRef.current = false;
162
+ try {
163
+ let activeSessionId = sessionIdRef.current;
164
+ if (!activeSessionId) {
165
+ const { sessionId: newSessionId } = await createSession({
166
+ org: orgRef.current,
167
+ agentRef: { ...AGENT_REF, org: orgRef.current },
168
+ });
169
+ sessionIdRef.current = newSessionId;
170
+ activeSessionId = newSessionId;
171
+ }
172
+ const { executionId: newExecutionId } = await createExecution({
173
+ org: orgRef.current,
174
+ sessionId: activeSessionId,
175
+ message: trimmed,
176
+ });
177
+ setActiveExecutionId(newExecutionId);
178
+ setPhase("streaming");
179
+ }
180
+ catch (err) {
181
+ const msg = getUserMessage(err, "Failed to send follow-up to the Workflow Architect agent");
182
+ setPhase("error");
183
+ setError(msg);
184
+ onErrorRef.current?.(msg);
185
+ }
186
+ }, [phase, createSession, createExecution]);
187
+ // ---------------------------------------------------------------------------
188
+ // Accept / discard extracted YAML fix
189
+ // ---------------------------------------------------------------------------
190
+ const acceptFix = useCallback(() => {
191
+ if (phase !== "complete" || !extracted)
192
+ return null;
193
+ const yaml = extracted.yaml;
194
+ setExtracted(null);
195
+ setPhase("ready");
196
+ return yaml;
197
+ }, [phase, extracted]);
198
+ const discardFix = useCallback(() => {
199
+ if (phase !== "complete")
200
+ return;
201
+ setExtracted(null);
202
+ setPhase("ready");
203
+ }, [phase]);
204
+ // ---------------------------------------------------------------------------
205
+ // Reset all state
206
+ // ---------------------------------------------------------------------------
207
+ const reset = useCallback(() => {
208
+ setPhase("idle");
209
+ setActiveExecutionId(null);
210
+ setCompletedExecutions([]);
211
+ setExtracted(null);
212
+ setError(null);
213
+ sessionIdRef.current = null;
214
+ prevTerminalRef.current = false;
215
+ autoStartedRef.current = false;
216
+ }, []);
217
+ // ---------------------------------------------------------------------------
218
+ // Auto-start on mount (AD-B5-002)
219
+ // ---------------------------------------------------------------------------
220
+ useEffect(() => {
221
+ if (autoStart && phase === "idle" && !autoStartedRef.current) {
222
+ autoStartedRef.current = true;
223
+ diagnose();
224
+ }
225
+ }, [autoStart, phase, diagnose]);
226
+ // ---------------------------------------------------------------------------
227
+ // Referentially stable return (DD-010)
228
+ // ---------------------------------------------------------------------------
229
+ return useMemo(() => ({
230
+ phase,
231
+ completedExecutions,
232
+ activeExecution: stream.execution,
233
+ isStreaming: stream.isStreaming || stream.isConnecting,
234
+ extractedYaml: extracted?.yaml ?? null,
235
+ explanation: extracted?.explanation ?? null,
236
+ error,
237
+ diagnose,
238
+ sendFollowUp,
239
+ acceptFix,
240
+ discardFix,
241
+ reset,
242
+ }), [
243
+ phase,
244
+ completedExecutions,
245
+ stream.execution,
246
+ stream.isStreaming,
247
+ stream.isConnecting,
248
+ extracted,
249
+ error,
250
+ diagnose,
251
+ sendFollowUp,
252
+ acceptFix,
253
+ discardFix,
254
+ reset,
255
+ ]);
256
+ }
257
+ //# sourceMappingURL=useDiagnoseExecutionFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDiagnoseExecutionFlow.js","sourceRoot":"","sources":["../../src/workflow/useDiagnoseExecutionFlow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { RefObject } from "react";
2
+ import type { WorkflowGraphModel } from "./workflow-graph-model";
3
+ import type { GraphCommand } from "./graph-commands";
4
+ /** Return value of {@link useGraphHistory}. */
5
+ export interface UseGraphHistoryReturn {
6
+ readonly currentModel: WorkflowGraphModel;
7
+ readonly canUndo: boolean;
8
+ readonly canRedo: boolean;
9
+ readonly dispatch: (command: GraphCommand) => WorkflowGraphModel;
10
+ readonly undo: () => void;
11
+ readonly redo: () => void;
12
+ readonly reset: (model: WorkflowGraphModel) => void;
13
+ }
14
+ /**
15
+ * React wrapper around {@link GraphHistory} providing undo/redo state
16
+ * management and keyboard shortcut binding.
17
+ *
18
+ * Keyboard shortcuts (Ctrl/Cmd+Z, Ctrl/Cmd+Shift+Z) are only active
19
+ * when the referenced container element contains the active focus target,
20
+ * preventing conflicts with other editors on the page.
21
+ *
22
+ * @param initialModel - The starting graph model (from YAML parse).
23
+ * @param containerRef - Ref to the DOM element that scopes keyboard shortcuts.
24
+ *
25
+ * @since T15 Batch 2 (Node Authoring)
26
+ */
27
+ export declare function useGraphHistory(initialModel: WorkflowGraphModel | null, containerRef: RefObject<HTMLDivElement | null>): UseGraphHistoryReturn;
28
+ //# sourceMappingURL=useGraphHistory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useGraphHistory.d.ts","sourceRoot":"","sources":["../../src/workflow/useGraphHistory.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,kBAAkB,CAAC;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACrD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,YAAY,EAAE,kBAAkB,GAAG,IAAI,EACvC,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,GAC7C,qBAAqB,CAsGvB"}