@open-mercato/core 0.7.1-develop.7193.1.910a5b0a1e → 0.7.1-develop.7194.1.ab4fc81f82

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 (1238) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/AGENTS.md +4 -3
  3. package/agentic/standalone-guide.md +1 -1
  4. package/build.mjs +16 -0
  5. package/dist/generated/entities/action_log/index.js +2 -0
  6. package/dist/generated/entities/action_log/index.js.map +2 -2
  7. package/dist/generated/entities/user/index.js +2 -0
  8. package/dist/generated/entities/user/index.js.map +2 -2
  9. package/dist/generated/entities/user_task/index.js +14 -0
  10. package/dist/generated/entities/user_task/index.js.map +2 -2
  11. package/dist/generated/entities/workflow_definition/index.js +6 -0
  12. package/dist/generated/entities/workflow_definition/index.js.map +2 -2
  13. package/dist/generated/entities/workflow_definition_draft/index.js +25 -0
  14. package/dist/generated/entities/workflow_definition_draft/index.js.map +7 -0
  15. package/dist/generated/entities/workflow_definition_metric_rollup/index.js +23 -0
  16. package/dist/generated/entities/workflow_definition_metric_rollup/index.js.map +7 -0
  17. package/dist/generated/entities/workflow_instance/index.js +4 -0
  18. package/dist/generated/entities/workflow_instance/index.js.map +2 -2
  19. package/dist/generated/entities.ids.generated.js +4 -1
  20. package/dist/generated/entities.ids.generated.js.map +2 -2
  21. package/dist/generated/entity-fields-registry.js +39 -0
  22. package/dist/generated/entity-fields-registry.js.map +2 -2
  23. package/dist/helpers/integration/workflowsFixtures.js +477 -2
  24. package/dist/helpers/integration/workflowsFixtures.js.map +2 -2
  25. package/dist/helpers/integration/workflowsUi.js +148 -0
  26. package/dist/helpers/integration/workflowsUi.js.map +7 -0
  27. package/dist/modules/attachments/lib/createFromBuffer.js +79 -0
  28. package/dist/modules/attachments/lib/createFromBuffer.js.map +7 -0
  29. package/dist/modules/audit_logs/data/entities.js +5 -0
  30. package/dist/modules/audit_logs/data/entities.js.map +2 -2
  31. package/dist/modules/audit_logs/data/validators.js +1 -0
  32. package/dist/modules/audit_logs/data/validators.js.map +2 -2
  33. package/dist/modules/audit_logs/lib/projections.js +2 -1
  34. package/dist/modules/audit_logs/lib/projections.js.map +2 -2
  35. package/dist/modules/audit_logs/migrations/Migration20260625120000.js +15 -0
  36. package/dist/modules/audit_logs/migrations/Migration20260625120000.js.map +7 -0
  37. package/dist/modules/audit_logs/services/actionLogService.js +3 -0
  38. package/dist/modules/audit_logs/services/actionLogService.js.map +2 -2
  39. package/dist/modules/auth/data/entities.js +6 -0
  40. package/dist/modules/auth/data/entities.js.map +2 -2
  41. package/dist/modules/auth/lib/executionPrincipal.js +140 -0
  42. package/dist/modules/auth/lib/executionPrincipal.js.map +7 -0
  43. package/dist/modules/auth/migrations/Migration20260625050000.js +13 -0
  44. package/dist/modules/auth/migrations/Migration20260625050000.js.map +7 -0
  45. package/dist/modules/business_rules/components/InlineRuleEditor.js +154 -0
  46. package/dist/modules/business_rules/components/InlineRuleEditor.js.map +7 -0
  47. package/dist/modules/business_rules/data/validators.js +6 -0
  48. package/dist/modules/business_rules/data/validators.js.map +2 -2
  49. package/dist/modules/business_rules/lib/rule-engine.js +5 -3
  50. package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
  51. package/dist/modules/catalog/commands/products.js +5 -0
  52. package/dist/modules/catalog/commands/products.js.map +2 -2
  53. package/dist/modules/catalog/workflows.js +19 -0
  54. package/dist/modules/catalog/workflows.js.map +7 -0
  55. package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.js +3 -1
  56. package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.js.map +2 -2
  57. package/dist/modules/customer_accounts/cli.js +80 -0
  58. package/dist/modules/customer_accounts/cli.js.map +7 -0
  59. package/dist/modules/customer_accounts/lib/customerRoleAclSync.js +59 -0
  60. package/dist/modules/customer_accounts/lib/customerRoleAclSync.js.map +7 -0
  61. package/dist/modules/customer_accounts/setup.js +4 -2
  62. package/dist/modules/customer_accounts/setup.js.map +2 -2
  63. package/dist/modules/customers/commands/deals.js +4 -0
  64. package/dist/modules/customers/commands/deals.js.map +2 -2
  65. package/dist/modules/customers/components/detail/ChangelogEntryRow.js +1 -1
  66. package/dist/modules/customers/components/detail/ChangelogEntryRow.js.map +2 -2
  67. package/dist/modules/customers/components/detail/utils.js +2 -0
  68. package/dist/modules/customers/components/detail/utils.js.map +2 -2
  69. package/dist/modules/customers/events.js +13 -2
  70. package/dist/modules/customers/events.js.map +2 -2
  71. package/dist/modules/customers/lib/link-workflow-task-handler.js +64 -0
  72. package/dist/modules/customers/lib/link-workflow-task-handler.js.map +7 -0
  73. package/dist/modules/customers/lib/todoCompatibility.js +1 -1
  74. package/dist/modules/customers/lib/todoCompatibility.js.map +2 -2
  75. package/dist/modules/customers/lib/workflowTaskLink.js +9 -0
  76. package/dist/modules/customers/lib/workflowTaskLink.js.map +7 -0
  77. package/dist/modules/customers/subscribers/link-workflow-task.js +12 -0
  78. package/dist/modules/customers/subscribers/link-workflow-task.js.map +7 -0
  79. package/dist/modules/customers/workflows.js +29 -0
  80. package/dist/modules/customers/workflows.js.map +7 -0
  81. package/dist/modules/entities/api/records.js +13 -33
  82. package/dist/modules/entities/api/records.js.map +3 -3
  83. package/dist/modules/entities/lib/entityClassification.js +60 -0
  84. package/dist/modules/entities/lib/entityClassification.js.map +7 -0
  85. package/dist/modules/sales/commands/documents.js +31 -0
  86. package/dist/modules/sales/commands/documents.js.map +2 -2
  87. package/dist/modules/sales/events.js +12 -1
  88. package/dist/modules/sales/events.js.map +2 -2
  89. package/dist/modules/sales/workflows.js +12 -1
  90. package/dist/modules/sales/workflows.js.map +2 -2
  91. package/dist/modules/seeds/cli.js +199 -0
  92. package/dist/modules/seeds/cli.js.map +7 -0
  93. package/dist/modules/seeds/examples/sample-seed.json +26 -0
  94. package/dist/modules/seeds/index.js +12 -0
  95. package/dist/modules/seeds/index.js.map +7 -0
  96. package/dist/modules/workflows/acl.js +96 -0
  97. package/dist/modules/workflows/acl.js.map +2 -2
  98. package/dist/modules/workflows/ai-agents.js +50 -0
  99. package/dist/modules/workflows/ai-agents.js.map +7 -0
  100. package/dist/modules/workflows/ai-tools/authoring-pack.js +582 -0
  101. package/dist/modules/workflows/ai-tools/authoring-pack.js.map +7 -0
  102. package/dist/modules/workflows/ai-tools/types.js +43 -0
  103. package/dist/modules/workflows/ai-tools/types.js.map +7 -0
  104. package/dist/modules/workflows/ai-tools.js +10 -0
  105. package/dist/modules/workflows/ai-tools.js.map +7 -0
  106. package/dist/modules/workflows/api/command-settings/route.js +137 -0
  107. package/dist/modules/workflows/api/command-settings/route.js.map +7 -0
  108. package/dist/modules/workflows/api/commands/route.js +72 -0
  109. package/dist/modules/workflows/api/commands/route.js.map +7 -0
  110. package/dist/modules/workflows/api/definitions/[id]/callers/route.js +76 -0
  111. package/dist/modules/workflows/api/definitions/[id]/callers/route.js.map +7 -0
  112. package/dist/modules/workflows/api/definitions/[id]/context-schema/route.js +134 -0
  113. package/dist/modules/workflows/api/definitions/[id]/context-schema/route.js.map +7 -0
  114. package/dist/modules/workflows/api/definitions/[id]/customize/route.js +5 -1
  115. package/dist/modules/workflows/api/definitions/[id]/customize/route.js.map +2 -2
  116. package/dist/modules/workflows/api/definitions/[id]/draft/route.js +286 -0
  117. package/dist/modules/workflows/api/definitions/[id]/draft/route.js.map +7 -0
  118. package/dist/modules/workflows/api/definitions/[id]/publish/route.js +207 -0
  119. package/dist/modules/workflows/api/definitions/[id]/publish/route.js.map +7 -0
  120. package/dist/modules/workflows/api/definitions/[id]/reset-to-code/route.js +5 -0
  121. package/dist/modules/workflows/api/definitions/[id]/reset-to-code/route.js.map +2 -2
  122. package/dist/modules/workflows/api/definitions/[id]/route.js +93 -9
  123. package/dist/modules/workflows/api/definitions/[id]/route.js.map +3 -3
  124. package/dist/modules/workflows/api/definitions/[id]/test-step/route.js +210 -0
  125. package/dist/modules/workflows/api/definitions/[id]/test-step/route.js.map +7 -0
  126. package/dist/modules/workflows/api/definitions/generate/route.js +233 -0
  127. package/dist/modules/workflows/api/definitions/generate/route.js.map +7 -0
  128. package/dist/modules/workflows/api/definitions/route.js +61 -113
  129. package/dist/modules/workflows/api/definitions/route.js.map +2 -2
  130. package/dist/modules/workflows/api/definitions/serialize.js +9 -0
  131. package/dist/modules/workflows/api/definitions/serialize.js.map +2 -2
  132. package/dist/modules/workflows/api/endpoints/route.js +69 -0
  133. package/dist/modules/workflows/api/endpoints/route.js.map +7 -0
  134. package/dist/modules/workflows/api/functions/route.js +73 -0
  135. package/dist/modules/workflows/api/functions/route.js.map +7 -0
  136. package/dist/modules/workflows/api/grantable-features/route.js +75 -0
  137. package/dist/modules/workflows/api/grantable-features/route.js.map +7 -0
  138. package/dist/modules/workflows/api/instances/[id]/context/route.js +180 -0
  139. package/dist/modules/workflows/api/instances/[id]/context/route.js.map +7 -0
  140. package/dist/modules/workflows/api/instances/[id]/rerun-step/route.js +184 -0
  141. package/dist/modules/workflows/api/instances/[id]/rerun-step/route.js.map +7 -0
  142. package/dist/modules/workflows/api/instances/[id]/retry/route.js +12 -2
  143. package/dist/modules/workflows/api/instances/[id]/retry/route.js.map +2 -2
  144. package/dist/modules/workflows/api/instances/[id]/step-through/route.js +148 -0
  145. package/dist/modules/workflows/api/instances/[id]/step-through/route.js.map +7 -0
  146. package/dist/modules/workflows/api/instances/[id]/steps/route.js +123 -0
  147. package/dist/modules/workflows/api/instances/[id]/steps/route.js.map +7 -0
  148. package/dist/modules/workflows/api/instances/[id]/would-do/route.js +172 -0
  149. package/dist/modules/workflows/api/instances/[id]/would-do/route.js.map +7 -0
  150. package/dist/modules/workflows/api/instances/bulk-replay/route.js +117 -0
  151. package/dist/modules/workflows/api/instances/bulk-replay/route.js.map +7 -0
  152. package/dist/modules/workflows/api/instances/failure-queue/route.js +165 -0
  153. package/dist/modules/workflows/api/instances/failure-queue/route.js.map +7 -0
  154. package/dist/modules/workflows/api/instances/route.js +94 -3
  155. package/dist/modules/workflows/api/instances/route.js.map +2 -2
  156. package/dist/modules/workflows/api/metrics/definitions/route.js +188 -0
  157. package/dist/modules/workflows/api/metrics/definitions/route.js.map +7 -0
  158. package/dist/modules/workflows/api/openapi.js +415 -4
  159. package/dist/modules/workflows/api/openapi.js.map +2 -2
  160. package/dist/modules/workflows/api/portal/tasks/[id]/complete/route.js +132 -0
  161. package/dist/modules/workflows/api/portal/tasks/[id]/complete/route.js.map +7 -0
  162. package/dist/modules/workflows/api/portal/tasks/[id]/route.js +97 -0
  163. package/dist/modules/workflows/api/portal/tasks/[id]/route.js.map +7 -0
  164. package/dist/modules/workflows/api/portal/tasks/route.js +126 -0
  165. package/dist/modules/workflows/api/portal/tasks/route.js.map +7 -0
  166. package/dist/modules/workflows/api/rule-usage/route.js +80 -0
  167. package/dist/modules/workflows/api/rule-usage/route.js.map +7 -0
  168. package/dist/modules/workflows/api/task-settings/route.js +107 -0
  169. package/dist/modules/workflows/api/task-settings/route.js.map +7 -0
  170. package/dist/modules/workflows/api/tasks/[id]/claim/route.js +27 -16
  171. package/dist/modules/workflows/api/tasks/[id]/claim/route.js.map +2 -2
  172. package/dist/modules/workflows/api/tasks/[id]/complete/route.js +40 -16
  173. package/dist/modules/workflows/api/tasks/[id]/complete/route.js.map +2 -2
  174. package/dist/modules/workflows/api/tasks/[id]/reassign/route.js +150 -0
  175. package/dist/modules/workflows/api/tasks/[id]/reassign/route.js.map +7 -0
  176. package/dist/modules/workflows/api/tasks/[id]/route.js +39 -6
  177. package/dist/modules/workflows/api/tasks/[id]/route.js.map +2 -2
  178. package/dist/modules/workflows/api/tasks/[id]/unclaim/route.js +100 -0
  179. package/dist/modules/workflows/api/tasks/[id]/unclaim/route.js.map +7 -0
  180. package/dist/modules/workflows/api/tasks/route.js +37 -6
  181. package/dist/modules/workflows/api/tasks/route.js.map +2 -2
  182. package/dist/modules/workflows/api/tasks/serialize.js +83 -0
  183. package/dist/modules/workflows/api/tasks/serialize.js.map +7 -0
  184. package/dist/modules/workflows/api/templates/route.js +69 -0
  185. package/dist/modules/workflows/api/templates/route.js.map +7 -0
  186. package/dist/modules/workflows/api/work-inbox/next/route.js +129 -0
  187. package/dist/modules/workflows/api/work-inbox/next/route.js.map +7 -0
  188. package/dist/modules/workflows/api/work-inbox/route.js +119 -0
  189. package/dist/modules/workflows/api/work-inbox/route.js.map +7 -0
  190. package/dist/modules/workflows/backend/config/workflows/page.js +10 -0
  191. package/dist/modules/workflows/backend/config/workflows/page.js.map +7 -0
  192. package/dist/modules/workflows/backend/config/workflows/page.meta.js +35 -0
  193. package/dist/modules/workflows/backend/config/workflows/page.meta.js.map +7 -0
  194. package/dist/modules/workflows/backend/definitions/[id]/page.js +6 -271
  195. package/dist/modules/workflows/backend/definitions/[id]/page.js.map +3 -3
  196. package/dist/modules/workflows/backend/definitions/create/page.js +7 -56
  197. package/dist/modules/workflows/backend/definitions/create/page.js.map +2 -2
  198. package/dist/modules/workflows/backend/definitions/create/page.meta.js +1 -1
  199. package/dist/modules/workflows/backend/definitions/create/page.meta.js.map +2 -2
  200. package/dist/modules/workflows/backend/definitions/page.js +131 -51
  201. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  202. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +2606 -677
  203. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +3 -3
  204. package/dist/modules/workflows/backend/instances/[id]/page.js +532 -421
  205. package/dist/modules/workflows/backend/instances/[id]/page.js.map +2 -2
  206. package/dist/modules/workflows/backend/instances/[id]/page.meta.js +1 -1
  207. package/dist/modules/workflows/backend/instances/[id]/page.meta.js.map +1 -1
  208. package/dist/modules/workflows/backend/instances/failure-queue/page.js +211 -0
  209. package/dist/modules/workflows/backend/instances/failure-queue/page.js.map +7 -0
  210. package/dist/modules/workflows/backend/instances/failure-queue/page.meta.js +20 -0
  211. package/dist/modules/workflows/backend/instances/failure-queue/page.meta.js.map +7 -0
  212. package/dist/modules/workflows/backend/instances/page.js +159 -22
  213. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  214. package/dist/modules/workflows/backend/instances/page.meta.js +1 -1
  215. package/dist/modules/workflows/backend/instances/page.meta.js.map +1 -1
  216. package/dist/modules/workflows/backend/tasks/[id]/page.js +553 -392
  217. package/dist/modules/workflows/backend/tasks/[id]/page.js.map +3 -3
  218. package/dist/modules/workflows/backend/tasks/page.js +8 -250
  219. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  220. package/dist/modules/workflows/backend/tasks/page.meta.js +1 -0
  221. package/dist/modules/workflows/backend/tasks/page.meta.js.map +2 -2
  222. package/dist/modules/workflows/backend/work-inbox/page.js +399 -0
  223. package/dist/modules/workflows/backend/work-inbox/page.js.map +7 -0
  224. package/dist/modules/workflows/backend/work-inbox/page.meta.js +19 -0
  225. package/dist/modules/workflows/backend/work-inbox/page.meta.js.map +7 -0
  226. package/dist/modules/workflows/cli.js +1 -1
  227. package/dist/modules/workflows/cli.js.map +2 -2
  228. package/dist/modules/workflows/commands/tasks.js +81 -0
  229. package/dist/modules/workflows/commands/tasks.js.map +7 -0
  230. package/dist/modules/workflows/components/ActivitiesEditor.js +281 -287
  231. package/dist/modules/workflows/components/ActivitiesEditor.js.map +2 -2
  232. package/dist/modules/workflows/components/ActivityEditDialog.js +220 -0
  233. package/dist/modules/workflows/components/ActivityEditDialog.js.map +7 -0
  234. package/dist/modules/workflows/components/AgentSelector.js +115 -0
  235. package/dist/modules/workflows/components/AgentSelector.js.map +7 -0
  236. package/dist/modules/workflows/components/AnnotationEditDialog.js +110 -0
  237. package/dist/modules/workflows/components/AnnotationEditDialog.js.map +7 -0
  238. package/dist/modules/workflows/components/BusinessRuleUsagePanel.js +71 -0
  239. package/dist/modules/workflows/components/BusinessRuleUsagePanel.js.map +7 -0
  240. package/dist/modules/workflows/components/BusinessRulesSelector.js +151 -93
  241. package/dist/modules/workflows/components/BusinessRulesSelector.js.map +2 -2
  242. package/dist/modules/workflows/components/ConfigJsonTextarea.js +85 -0
  243. package/dist/modules/workflows/components/ConfigJsonTextarea.js.map +7 -0
  244. package/dist/modules/workflows/components/ContextSchemaEditor.js +150 -0
  245. package/dist/modules/workflows/components/ContextSchemaEditor.js.map +7 -0
  246. package/dist/modules/workflows/components/DefinitionErrorHandlerField.js +102 -0
  247. package/dist/modules/workflows/components/DefinitionErrorHandlerField.js.map +7 -0
  248. package/dist/modules/workflows/components/DefinitionMetadataDrawer.js +377 -0
  249. package/dist/modules/workflows/components/DefinitionMetadataDrawer.js.map +7 -0
  250. package/dist/modules/workflows/components/DefinitionMetricsCells.js +132 -0
  251. package/dist/modules/workflows/components/DefinitionMetricsCells.js.map +7 -0
  252. package/dist/modules/workflows/components/DefinitionTriggersEditor.js +307 -216
  253. package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +2 -2
  254. package/dist/modules/workflows/components/EdgeEditDialog.js +11 -18
  255. package/dist/modules/workflows/components/EdgeEditDialog.js.map +2 -2
  256. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js +112 -72
  257. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js.map +2 -2
  258. package/dist/modules/workflows/components/InputDataPanel.js +128 -0
  259. package/dist/modules/workflows/components/InputDataPanel.js.map +7 -0
  260. package/dist/modules/workflows/components/InspectorPanel.js +161 -0
  261. package/dist/modules/workflows/components/InspectorPanel.js.map +7 -0
  262. package/dist/modules/workflows/components/NodeEditDialog.js +363 -41
  263. package/dist/modules/workflows/components/NodeEditDialog.js.map +2 -2
  264. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js +714 -159
  265. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js.map +2 -2
  266. package/dist/modules/workflows/components/StepsEditor.js.map +2 -2
  267. package/dist/modules/workflows/components/TemplateGalleryDialog.js +148 -0
  268. package/dist/modules/workflows/components/TemplateGalleryDialog.js.map +7 -0
  269. package/dist/modules/workflows/components/TransitionsEditor.js +80 -74
  270. package/dist/modules/workflows/components/TransitionsEditor.js.map +2 -2
  271. package/dist/modules/workflows/components/TriggersDialog.js +53 -0
  272. package/dist/modules/workflows/components/TriggersDialog.js.map +7 -0
  273. package/dist/modules/workflows/components/TriggersEditor.js +331 -0
  274. package/dist/modules/workflows/components/TriggersEditor.js.map +7 -0
  275. package/dist/modules/workflows/components/WorkflowAiDraftDialog.js +278 -0
  276. package/dist/modules/workflows/components/WorkflowAiDraftDialog.js.map +7 -0
  277. package/dist/modules/workflows/components/WorkflowCodeView.js +173 -0
  278. package/dist/modules/workflows/components/WorkflowCodeView.js.map +7 -0
  279. package/dist/modules/workflows/components/WorkflowCommandPalette.js +62 -0
  280. package/dist/modules/workflows/components/WorkflowCommandPalette.js.map +7 -0
  281. package/dist/modules/workflows/components/WorkflowCompensationGhostEdge.js +70 -0
  282. package/dist/modules/workflows/components/WorkflowCompensationGhostEdge.js.map +7 -0
  283. package/dist/modules/workflows/components/WorkflowDataMappingEdge.js +36 -0
  284. package/dist/modules/workflows/components/WorkflowDataMappingEdge.js.map +7 -0
  285. package/dist/modules/workflows/components/WorkflowGraph.js +4 -2
  286. package/dist/modules/workflows/components/WorkflowGraph.js.map +2 -2
  287. package/dist/modules/workflows/components/WorkflowGraphImpl.js +324 -86
  288. package/dist/modules/workflows/components/WorkflowGraphImpl.js.map +3 -3
  289. package/dist/modules/workflows/components/WorkflowIconPicker.js +109 -0
  290. package/dist/modules/workflows/components/WorkflowIconPicker.js.map +7 -0
  291. package/dist/modules/workflows/components/WorkflowLegend.js +45 -29
  292. package/dist/modules/workflows/components/WorkflowLegend.js.map +2 -2
  293. package/dist/modules/workflows/components/WorkflowNodeCard.js +221 -22
  294. package/dist/modules/workflows/components/WorkflowNodeCard.js.map +2 -2
  295. package/dist/modules/workflows/components/WorkflowRouteChips.js +111 -0
  296. package/dist/modules/workflows/components/WorkflowRouteChips.js.map +7 -0
  297. package/dist/modules/workflows/components/WorkflowSelector.js +108 -88
  298. package/dist/modules/workflows/components/WorkflowSelector.js.map +2 -2
  299. package/dist/modules/workflows/components/WorkflowTransitionEdge.js +61 -11
  300. package/dist/modules/workflows/components/WorkflowTransitionEdge.js.map +2 -2
  301. package/dist/modules/workflows/components/WorkflowTransitionLabel.js +15 -5
  302. package/dist/modules/workflows/components/WorkflowTransitionLabel.js.map +2 -2
  303. package/dist/modules/workflows/components/fields/ActivityArrayEditor.js +88 -21
  304. package/dist/modules/workflows/components/fields/ActivityArrayEditor.js.map +2 -2
  305. package/dist/modules/workflows/components/fields/ActivityConfigFields.js +615 -0
  306. package/dist/modules/workflows/components/fields/ActivityConfigFields.js.map +7 -0
  307. package/dist/modules/workflows/components/fields/ActivityTestPanel.js +191 -0
  308. package/dist/modules/workflows/components/fields/ActivityTestPanel.js.map +7 -0
  309. package/dist/modules/workflows/components/fields/AgentInvokeConfigField.js +488 -0
  310. package/dist/modules/workflows/components/fields/AgentInvokeConfigField.js.map +7 -0
  311. package/dist/modules/workflows/components/fields/AgentReviewOnBreachField.js +61 -0
  312. package/dist/modules/workflows/components/fields/AgentReviewOnBreachField.js.map +7 -0
  313. package/dist/modules/workflows/components/fields/BranchingRoutesEditor.js +227 -0
  314. package/dist/modules/workflows/components/fields/BranchingRoutesEditor.js.map +7 -0
  315. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js +37 -4
  316. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js.map +2 -2
  317. package/dist/modules/workflows/components/fields/CommandPicker.js +111 -0
  318. package/dist/modules/workflows/components/fields/CommandPicker.js.map +7 -0
  319. package/dist/modules/workflows/components/fields/EndpointPicker.js +235 -0
  320. package/dist/modules/workflows/components/fields/EndpointPicker.js.map +7 -0
  321. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js +2 -2
  322. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js.map +2 -2
  323. package/dist/modules/workflows/components/fields/FunctionPicker.js +55 -0
  324. package/dist/modules/workflows/components/fields/FunctionPicker.js.map +7 -0
  325. package/dist/modules/workflows/components/fields/MappingArrayEditor.js +38 -15
  326. package/dist/modules/workflows/components/fields/MappingArrayEditor.js.map +2 -2
  327. package/dist/modules/workflows/components/fields/PortFieldArrayEditor.js +206 -0
  328. package/dist/modules/workflows/components/fields/PortFieldArrayEditor.js.map +7 -0
  329. package/dist/modules/workflows/components/fields/RolesMultiSelect.js +53 -0
  330. package/dist/modules/workflows/components/fields/RolesMultiSelect.js.map +7 -0
  331. package/dist/modules/workflows/components/fields/RouteOrderEditor.js +130 -0
  332. package/dist/modules/workflows/components/fields/RouteOrderEditor.js.map +7 -0
  333. package/dist/modules/workflows/components/fields/SchemaBuilderDialog.js +104 -0
  334. package/dist/modules/workflows/components/fields/SchemaBuilderDialog.js.map +7 -0
  335. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js +2 -2
  336. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js.map +2 -2
  337. package/dist/modules/workflows/components/fields/TaskAssignmentField.js +210 -0
  338. package/dist/modules/workflows/components/fields/TaskAssignmentField.js.map +7 -0
  339. package/dist/modules/workflows/components/fields/TaskDeadlineFields.js +126 -0
  340. package/dist/modules/workflows/components/fields/TaskDeadlineFields.js.map +7 -0
  341. package/dist/modules/workflows/components/fields/TaskDecisionsField.js +218 -0
  342. package/dist/modules/workflows/components/fields/TaskDecisionsField.js.map +7 -0
  343. package/dist/modules/workflows/components/fields/TaskEntityBindingsField.js +114 -0
  344. package/dist/modules/workflows/components/fields/TaskEntityBindingsField.js.map +7 -0
  345. package/dist/modules/workflows/components/fields/TemplateTextControl.js +64 -0
  346. package/dist/modules/workflows/components/fields/TemplateTextControl.js.map +7 -0
  347. package/dist/modules/workflows/components/fields/VariablePickerButton.js +121 -0
  348. package/dist/modules/workflows/components/fields/VariablePickerButton.js.map +7 -0
  349. package/dist/modules/workflows/components/fields/ledgerDropTarget.js +35 -0
  350. package/dist/modules/workflows/components/fields/ledgerDropTarget.js.map +7 -0
  351. package/dist/modules/workflows/components/fields/useActivityTypeOptions.js +16 -0
  352. package/dist/modules/workflows/components/fields/useActivityTypeOptions.js.map +7 -0
  353. package/dist/modules/workflows/components/formConfig.js +39 -10
  354. package/dist/modules/workflows/components/formConfig.js.map +2 -2
  355. package/dist/modules/workflows/components/mobile/MobileDefinitionDetail.js.map +2 -2
  356. package/dist/modules/workflows/components/mobile/MobileMetadataSheet.js.map +2 -2
  357. package/dist/modules/workflows/components/mobile/MobileTaskForm.js +29 -2
  358. package/dist/modules/workflows/components/mobile/MobileTaskForm.js.map +2 -2
  359. package/dist/modules/workflows/components/mobile/MobileVisualEditor.js +64 -65
  360. package/dist/modules/workflows/components/mobile/MobileVisualEditor.js.map +2 -2
  361. package/dist/modules/workflows/components/nodes/AnnotationGroupNode.js +64 -0
  362. package/dist/modules/workflows/components/nodes/AnnotationGroupNode.js.map +7 -0
  363. package/dist/modules/workflows/components/nodes/AutomatedNode.js +24 -16
  364. package/dist/modules/workflows/components/nodes/AutomatedNode.js.map +2 -2
  365. package/dist/modules/workflows/components/nodes/EndNode.js +13 -12
  366. package/dist/modules/workflows/components/nodes/EndNode.js.map +2 -2
  367. package/dist/modules/workflows/components/nodes/ErrorOutputHandle.js +29 -0
  368. package/dist/modules/workflows/components/nodes/ErrorOutputHandle.js.map +7 -0
  369. package/dist/modules/workflows/components/nodes/IfElseNode.js +51 -0
  370. package/dist/modules/workflows/components/nodes/IfElseNode.js.map +7 -0
  371. package/dist/modules/workflows/components/nodes/InvokeAgentNode.js +122 -0
  372. package/dist/modules/workflows/components/nodes/InvokeAgentNode.js.map +7 -0
  373. package/dist/modules/workflows/components/nodes/NodeOutcomeRows.js +100 -0
  374. package/dist/modules/workflows/components/nodes/NodeOutcomeRows.js.map +7 -0
  375. package/dist/modules/workflows/components/nodes/ParallelForkNode.js +18 -14
  376. package/dist/modules/workflows/components/nodes/ParallelForkNode.js.map +2 -2
  377. package/dist/modules/workflows/components/nodes/ParallelJoinNode.js +18 -14
  378. package/dist/modules/workflows/components/nodes/ParallelJoinNode.js.map +2 -2
  379. package/dist/modules/workflows/components/nodes/StartNode.js +66 -15
  380. package/dist/modules/workflows/components/nodes/StartNode.js.map +2 -2
  381. package/dist/modules/workflows/components/nodes/StickyNoteNode.js +54 -0
  382. package/dist/modules/workflows/components/nodes/StickyNoteNode.js.map +7 -0
  383. package/dist/modules/workflows/components/nodes/SubWorkflowNode.js +107 -41
  384. package/dist/modules/workflows/components/nodes/SubWorkflowNode.js.map +2 -2
  385. package/dist/modules/workflows/components/nodes/SwitchNode.js +51 -0
  386. package/dist/modules/workflows/components/nodes/SwitchNode.js.map +7 -0
  387. package/dist/modules/workflows/components/nodes/TriggerCap.js +65 -0
  388. package/dist/modules/workflows/components/nodes/TriggerCap.js.map +7 -0
  389. package/dist/modules/workflows/components/nodes/TriggerNode.js +111 -0
  390. package/dist/modules/workflows/components/nodes/TriggerNode.js.map +7 -0
  391. package/dist/modules/workflows/components/nodes/UserTaskNode.js +43 -17
  392. package/dist/modules/workflows/components/nodes/UserTaskNode.js.map +2 -2
  393. package/dist/modules/workflows/components/nodes/WaitForConditionNode.js +53 -0
  394. package/dist/modules/workflows/components/nodes/WaitForConditionNode.js.map +7 -0
  395. package/dist/modules/workflows/components/nodes/WaitForSignalNode.js +21 -15
  396. package/dist/modules/workflows/components/nodes/WaitForSignalNode.js.map +2 -2
  397. package/dist/modules/workflows/components/nodes/WaitForTimerNode.js +21 -15
  398. package/dist/modules/workflows/components/nodes/WaitForTimerNode.js.map +2 -2
  399. package/dist/modules/workflows/components/nodes/index.js +14 -0
  400. package/dist/modules/workflows/components/nodes/index.js.map +2 -2
  401. package/dist/modules/workflows/components/portal/PortalTaskForm.js +196 -0
  402. package/dist/modules/workflows/components/portal/PortalTaskForm.js.map +7 -0
  403. package/dist/modules/workflows/components/run/AgentActivityPanel.js +22 -0
  404. package/dist/modules/workflows/components/run/AgentActivityPanel.js.map +7 -0
  405. package/dist/modules/workflows/components/run/RerunStepDialog.js +106 -0
  406. package/dist/modules/workflows/components/run/RerunStepDialog.js.map +7 -0
  407. package/dist/modules/workflows/components/run/RunEventBadge.js +30 -0
  408. package/dist/modules/workflows/components/run/RunEventBadge.js.map +7 -0
  409. package/dist/modules/workflows/components/run/RunGantt.js +130 -0
  410. package/dist/modules/workflows/components/run/RunGantt.js.map +7 -0
  411. package/dist/modules/workflows/components/run/RunStatusBadge.js +82 -0
  412. package/dist/modules/workflows/components/run/RunStatusBadge.js.map +7 -0
  413. package/dist/modules/workflows/components/run/RunStepInspector.js +116 -0
  414. package/dist/modules/workflows/components/run/RunStepInspector.js.map +7 -0
  415. package/dist/modules/workflows/components/run/WouldDoReport.js +52 -0
  416. package/dist/modules/workflows/components/run/WouldDoReport.js.map +7 -0
  417. package/dist/modules/workflows/components/run/useAgentLabels.js +28 -0
  418. package/dist/modules/workflows/components/run/useAgentLabels.js.map +7 -0
  419. package/dist/modules/workflows/components/run/useLastRunOverlay.js +89 -0
  420. package/dist/modules/workflows/components/run/useLastRunOverlay.js.map +7 -0
  421. package/dist/modules/workflows/components/run/useLiveAgentActions.js +41 -0
  422. package/dist/modules/workflows/components/run/useLiveAgentActions.js.map +7 -0
  423. package/dist/modules/workflows/components/run/useLiveRunUpdates.js +57 -0
  424. package/dist/modules/workflows/components/run/useLiveRunUpdates.js.map +7 -0
  425. package/dist/modules/workflows/components/settings/CommandSettingsPageClient.js +156 -0
  426. package/dist/modules/workflows/components/settings/CommandSettingsPageClient.js.map +7 -0
  427. package/dist/modules/workflows/components/work-inbox/EntityContextPanel.js +72 -0
  428. package/dist/modules/workflows/components/work-inbox/EntityContextPanel.js.map +7 -0
  429. package/dist/modules/workflows/components/work-inbox/ReassignTaskDialog.js +156 -0
  430. package/dist/modules/workflows/components/work-inbox/ReassignTaskDialog.js.map +7 -0
  431. package/dist/modules/workflows/components/work-inbox/StatusChip.js +46 -0
  432. package/dist/modules/workflows/components/work-inbox/StatusChip.js.map +7 -0
  433. package/dist/modules/workflows/components/work-inbox/TaskActionNotice.js +53 -0
  434. package/dist/modules/workflows/components/work-inbox/TaskActionNotice.js.map +7 -0
  435. package/dist/modules/workflows/components/work-inbox/TaskFormFields.js +261 -0
  436. package/dist/modules/workflows/components/work-inbox/TaskFormFields.js.map +7 -0
  437. package/dist/modules/workflows/components/work-inbox/WorkInboxEmptyState.js +27 -0
  438. package/dist/modules/workflows/components/work-inbox/WorkInboxEmptyState.js.map +7 -0
  439. package/dist/modules/workflows/data/activity-config-schemas.js +191 -0
  440. package/dist/modules/workflows/data/activity-config-schemas.js.map +7 -0
  441. package/dist/modules/workflows/data/activity-config-warnings.js +42 -0
  442. package/dist/modules/workflows/data/activity-config-warnings.js.map +7 -0
  443. package/dist/modules/workflows/data/branching-route-warnings.js +65 -0
  444. package/dist/modules/workflows/data/branching-route-warnings.js.map +7 -0
  445. package/dist/modules/workflows/data/entities.js +144 -4
  446. package/dist/modules/workflows/data/entities.js.map +2 -2
  447. package/dist/modules/workflows/data/metrics-validators.js +35 -0
  448. package/dist/modules/workflows/data/metrics-validators.js.map +7 -0
  449. package/dist/modules/workflows/data/task-primitives.js +14 -0
  450. package/dist/modules/workflows/data/task-primitives.js.map +7 -0
  451. package/dist/modules/workflows/data/validators.js +504 -61
  452. package/dist/modules/workflows/data/validators.js.map +3 -3
  453. package/dist/modules/workflows/di.js +16 -1
  454. package/dist/modules/workflows/di.js.map +2 -2
  455. package/dist/modules/workflows/events.js +66 -8
  456. package/dist/modules/workflows/events.js.map +2 -2
  457. package/dist/modules/workflows/examples/oze-residential-install-60-nodes.json +1545 -0
  458. package/dist/modules/workflows/examples/sales-pipeline-definition.json +35 -35
  459. package/dist/modules/workflows/examples/templates/lead-to-install.json +160 -0
  460. package/dist/modules/workflows/examples/templates/order-approval.json +230 -0
  461. package/dist/modules/workflows/examples/templates/task-escalation.json +110 -0
  462. package/dist/modules/workflows/examples/templates/webhook-integration.json +113 -0
  463. package/dist/modules/workflows/extension-points.js +1 -1
  464. package/dist/modules/workflows/extension-points.js.map +2 -2
  465. package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.js +144 -0
  466. package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.js.map +7 -0
  467. package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.meta.js +12 -0
  468. package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.meta.js.map +7 -0
  469. package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/page.js +114 -0
  470. package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/page.js.map +7 -0
  471. package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/page.meta.js +18 -0
  472. package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/page.meta.js.map +7 -0
  473. package/dist/modules/workflows/lib/activity-executor.js +505 -137
  474. package/dist/modules/workflows/lib/activity-executor.js.map +3 -3
  475. package/dist/modules/workflows/lib/activity-queue-types.js +3 -1
  476. package/dist/modules/workflows/lib/activity-queue-types.js.map +2 -2
  477. package/dist/modules/workflows/lib/activity-registry-bootstrap.js +2 -0
  478. package/dist/modules/workflows/lib/activity-registry-bootstrap.js.map +7 -0
  479. package/dist/modules/workflows/lib/activity-registry.js +27 -0
  480. package/dist/modules/workflows/lib/activity-registry.js.map +7 -0
  481. package/dist/modules/workflows/lib/activity-types.js +291 -0
  482. package/dist/modules/workflows/lib/activity-types.js.map +7 -0
  483. package/dist/modules/workflows/lib/activity-worker-handler.js +456 -32
  484. package/dist/modules/workflows/lib/activity-worker-handler.js.map +3 -3
  485. package/dist/modules/workflows/lib/advanced-config.js +31 -0
  486. package/dist/modules/workflows/lib/advanced-config.js.map +7 -0
  487. package/dist/modules/workflows/lib/agent-disposition-task.js +198 -0
  488. package/dist/modules/workflows/lib/agent-disposition-task.js.map +7 -0
  489. package/dist/modules/workflows/lib/agent-outcome-paths.js +82 -0
  490. package/dist/modules/workflows/lib/agent-outcome-paths.js.map +7 -0
  491. package/dist/modules/workflows/lib/agent-result-mapping.js +54 -0
  492. package/dist/modules/workflows/lib/agent-result-mapping.js.map +7 -0
  493. package/dist/modules/workflows/lib/agent-review-inspector.js +61 -0
  494. package/dist/modules/workflows/lib/agent-review-inspector.js.map +7 -0
  495. package/dist/modules/workflows/lib/agent-review.js +66 -0
  496. package/dist/modules/workflows/lib/agent-review.js.map +7 -0
  497. package/dist/modules/workflows/lib/ai-authoring.js +155 -0
  498. package/dist/modules/workflows/lib/ai-authoring.js.map +7 -0
  499. package/dist/modules/workflows/lib/ai-draft-runner.js +43 -0
  500. package/dist/modules/workflows/lib/ai-draft-runner.js.map +7 -0
  501. package/dist/modules/workflows/lib/annotation-events.js +10 -0
  502. package/dist/modules/workflows/lib/annotation-events.js.map +7 -0
  503. package/dist/modules/workflows/lib/branching-routes.js +182 -0
  504. package/dist/modules/workflows/lib/branching-routes.js.map +7 -0
  505. package/dist/modules/workflows/lib/breach-routing.js +50 -0
  506. package/dist/modules/workflows/lib/breach-routing.js.map +7 -0
  507. package/dist/modules/workflows/lib/bulk-replay.js +101 -0
  508. package/dist/modules/workflows/lib/bulk-replay.js.map +7 -0
  509. package/dist/modules/workflows/lib/business-rule-usage.js +91 -0
  510. package/dist/modules/workflows/lib/business-rule-usage.js.map +7 -0
  511. package/dist/modules/workflows/lib/caller-graph.js +53 -0
  512. package/dist/modules/workflows/lib/caller-graph.js.map +7 -0
  513. package/dist/modules/workflows/lib/code-view-apply.js +86 -0
  514. package/dist/modules/workflows/lib/code-view-apply.js.map +7 -0
  515. package/dist/modules/workflows/lib/collect-validation-issues.js +164 -0
  516. package/dist/modules/workflows/lib/collect-validation-issues.js.map +7 -0
  517. package/dist/modules/workflows/lib/compensation-ghosts.js +72 -0
  518. package/dist/modules/workflows/lib/compensation-ghosts.js.map +7 -0
  519. package/dist/modules/workflows/lib/component-guard.js +7 -0
  520. package/dist/modules/workflows/lib/component-guard.js.map +7 -0
  521. package/dist/modules/workflows/lib/condition-handler.js +443 -0
  522. package/dist/modules/workflows/lib/condition-handler.js.map +7 -0
  523. package/dist/modules/workflows/lib/context-ledger.js +448 -0
  524. package/dist/modules/workflows/lib/context-ledger.js.map +7 -0
  525. package/dist/modules/workflows/lib/crud-form-dialogs-flag.js +8 -0
  526. package/dist/modules/workflows/lib/crud-form-dialogs-flag.js.map +7 -0
  527. package/dist/modules/workflows/lib/data-edge-mapping.js +63 -0
  528. package/dist/modules/workflows/lib/data-edge-mapping.js.map +7 -0
  529. package/dist/modules/workflows/lib/definition-context-schema.js +56 -0
  530. package/dist/modules/workflows/lib/definition-context-schema.js.map +7 -0
  531. package/dist/modules/workflows/lib/definition-edit-safety.js +123 -0
  532. package/dist/modules/workflows/lib/definition-edit-safety.js.map +7 -0
  533. package/dist/modules/workflows/lib/definition-error-body.js +33 -0
  534. package/dist/modules/workflows/lib/definition-error-body.js.map +7 -0
  535. package/dist/modules/workflows/lib/definition-evaluation.js +79 -0
  536. package/dist/modules/workflows/lib/definition-evaluation.js.map +7 -0
  537. package/dist/modules/workflows/lib/definition-grant.js +90 -0
  538. package/dist/modules/workflows/lib/definition-grant.js.map +7 -0
  539. package/dist/modules/workflows/lib/definition-json-locations.js +139 -0
  540. package/dist/modules/workflows/lib/definition-json-locations.js.map +7 -0
  541. package/dist/modules/workflows/lib/definition-payload.js +31 -0
  542. package/dist/modules/workflows/lib/definition-payload.js.map +7 -0
  543. package/dist/modules/workflows/lib/draft-restore.js +49 -0
  544. package/dist/modules/workflows/lib/draft-restore.js.map +7 -0
  545. package/dist/modules/workflows/lib/dry-run.js +106 -0
  546. package/dist/modules/workflows/lib/dry-run.js.map +7 -0
  547. package/dist/modules/workflows/lib/duration.js +66 -17
  548. package/dist/modules/workflows/lib/duration.js.map +2 -2
  549. package/dist/modules/workflows/lib/edge-reattachment.js +79 -0
  550. package/dist/modules/workflows/lib/edge-reattachment.js.map +7 -0
  551. package/dist/modules/workflows/lib/edgeFormTransforms.js +7 -11
  552. package/dist/modules/workflows/lib/edgeFormTransforms.js.map +2 -2
  553. package/dist/modules/workflows/lib/editor-annotations.js +195 -0
  554. package/dist/modules/workflows/lib/editor-annotations.js.map +7 -0
  555. package/dist/modules/workflows/lib/editor-commands.js +103 -0
  556. package/dist/modules/workflows/lib/editor-commands.js.map +7 -0
  557. package/dist/modules/workflows/lib/editor-history.js +51 -0
  558. package/dist/modules/workflows/lib/editor-history.js.map +7 -0
  559. package/dist/modules/workflows/lib/endpoint-catalog.js +181 -0
  560. package/dist/modules/workflows/lib/endpoint-catalog.js.map +7 -0
  561. package/dist/modules/workflows/lib/endpoint-path.js +90 -0
  562. package/dist/modules/workflows/lib/endpoint-path.js.map +7 -0
  563. package/dist/modules/workflows/lib/engine-version.js +42 -0
  564. package/dist/modules/workflows/lib/engine-version.js.map +7 -0
  565. package/dist/modules/workflows/lib/error-handler.js +132 -0
  566. package/dist/modules/workflows/lib/error-handler.js.map +7 -0
  567. package/dist/modules/workflows/lib/error-routing.js +104 -0
  568. package/dist/modules/workflows/lib/error-routing.js.map +7 -0
  569. package/dist/modules/workflows/lib/event-logger.js +23 -0
  570. package/dist/modules/workflows/lib/event-logger.js.map +2 -2
  571. package/dist/modules/workflows/lib/expression-refs.js +168 -0
  572. package/dist/modules/workflows/lib/expression-refs.js.map +7 -0
  573. package/dist/modules/workflows/lib/failure-grouping.js +62 -0
  574. package/dist/modules/workflows/lib/failure-grouping.js.map +7 -0
  575. package/dist/modules/workflows/lib/find-definition.js +1 -0
  576. package/dist/modules/workflows/lib/find-definition.js.map +2 -2
  577. package/dist/modules/workflows/lib/flow-logic-warnings.js +338 -0
  578. package/dist/modules/workflows/lib/flow-logic-warnings.js.map +7 -0
  579. package/dist/modules/workflows/lib/graph-utils.js +328 -77
  580. package/dist/modules/workflows/lib/graph-utils.js.map +2 -2
  581. package/dist/modules/workflows/lib/icon-search.js +32 -0
  582. package/dist/modules/workflows/lib/icon-search.js.map +7 -0
  583. package/dist/modules/workflows/lib/insert-at-cursor.js +26 -0
  584. package/dist/modules/workflows/lib/insert-at-cursor.js.map +7 -0
  585. package/dist/modules/workflows/lib/instance-date-filter.js +28 -0
  586. package/dist/modules/workflows/lib/instance-date-filter.js.map +7 -0
  587. package/dist/modules/workflows/lib/interpolation-pipeline.js +271 -0
  588. package/dist/modules/workflows/lib/interpolation-pipeline.js.map +7 -0
  589. package/dist/modules/workflows/lib/ledger-drag.js +28 -0
  590. package/dist/modules/workflows/lib/ledger-drag.js.map +7 -0
  591. package/dist/modules/workflows/lib/ledger-entry-display.js +66 -0
  592. package/dist/modules/workflows/lib/ledger-entry-display.js.map +7 -0
  593. package/dist/modules/workflows/lib/ledger-schema-flatten.js +82 -0
  594. package/dist/modules/workflows/lib/ledger-schema-flatten.js.map +7 -0
  595. package/dist/modules/workflows/lib/metrics/definition-metrics.js +110 -0
  596. package/dist/modules/workflows/lib/metrics/definition-metrics.js.map +7 -0
  597. package/dist/modules/workflows/lib/metrics/metrics-display.js +26 -0
  598. package/dist/modules/workflows/lib/metrics/metrics-display.js.map +7 -0
  599. package/dist/modules/workflows/lib/metrics/rollup-schedule.js +7 -0
  600. package/dist/modules/workflows/lib/metrics/rollup-schedule.js.map +7 -0
  601. package/dist/modules/workflows/lib/metrics/rollup-service.js +160 -0
  602. package/dist/modules/workflows/lib/metrics/rollup-service.js.map +7 -0
  603. package/dist/modules/workflows/lib/node-config-summary.js +128 -0
  604. package/dist/modules/workflows/lib/node-config-summary.js.map +7 -0
  605. package/dist/modules/workflows/lib/node-geometry.js +53 -0
  606. package/dist/modules/workflows/lib/node-geometry.js.map +7 -0
  607. package/dist/modules/workflows/lib/node-nudge.js +44 -0
  608. package/dist/modules/workflows/lib/node-nudge.js.map +7 -0
  609. package/dist/modules/workflows/lib/node-outcome-rows.js +88 -0
  610. package/dist/modules/workflows/lib/node-outcome-rows.js.map +7 -0
  611. package/dist/modules/workflows/lib/node-placement.js +55 -0
  612. package/dist/modules/workflows/lib/node-placement.js.map +7 -0
  613. package/dist/modules/workflows/lib/node-type-icons.js +54 -13
  614. package/dist/modules/workflows/lib/node-type-icons.js.map +2 -2
  615. package/dist/modules/workflows/lib/nodeFormTransforms.js +329 -19
  616. package/dist/modules/workflows/lib/nodeFormTransforms.js.map +2 -2
  617. package/dist/modules/workflows/lib/outcome-routing.js +158 -0
  618. package/dist/modules/workflows/lib/outcome-routing.js.map +7 -0
  619. package/dist/modules/workflows/lib/owned-definition.js +107 -0
  620. package/dist/modules/workflows/lib/owned-definition.js.map +7 -0
  621. package/dist/modules/workflows/lib/owned-node-changes.js +10 -0
  622. package/dist/modules/workflows/lib/owned-node-changes.js.map +7 -0
  623. package/dist/modules/workflows/lib/palette-drag.js +36 -0
  624. package/dist/modules/workflows/lib/palette-drag.js.map +7 -0
  625. package/dist/modules/workflows/lib/palette-drop.js +45 -0
  626. package/dist/modules/workflows/lib/palette-drop.js.map +7 -0
  627. package/dist/modules/workflows/lib/parallel-handler.js +57 -2
  628. package/dist/modules/workflows/lib/parallel-handler.js.map +2 -2
  629. package/dist/modules/workflows/lib/port-contract.js +54 -0
  630. package/dist/modules/workflows/lib/port-contract.js.map +7 -0
  631. package/dist/modules/workflows/lib/portal-task-access.js +89 -0
  632. package/dist/modules/workflows/lib/portal-task-access.js.map +7 -0
  633. package/dist/modules/workflows/lib/rerun-from-step.js +65 -0
  634. package/dist/modules/workflows/lib/rerun-from-step.js.map +7 -0
  635. package/dist/modules/workflows/lib/route-chip-events.js +23 -0
  636. package/dist/modules/workflows/lib/route-chip-events.js.map +7 -0
  637. package/dist/modules/workflows/lib/route-chips.js +91 -0
  638. package/dist/modules/workflows/lib/route-chips.js.map +7 -0
  639. package/dist/modules/workflows/lib/route-edge.js +17 -0
  640. package/dist/modules/workflows/lib/route-edge.js.map +7 -0
  641. package/dist/modules/workflows/lib/route-kinds.js +67 -0
  642. package/dist/modules/workflows/lib/route-kinds.js.map +7 -0
  643. package/dist/modules/workflows/lib/route-priority.js +104 -0
  644. package/dist/modules/workflows/lib/route-priority.js.map +7 -0
  645. package/dist/modules/workflows/lib/run-duration.js +44 -0
  646. package/dist/modules/workflows/lib/run-duration.js.map +7 -0
  647. package/dist/modules/workflows/lib/run-event-tone.js +25 -0
  648. package/dist/modules/workflows/lib/run-event-tone.js.map +7 -0
  649. package/dist/modules/workflows/lib/run-execution.js +305 -0
  650. package/dist/modules/workflows/lib/run-execution.js.map +7 -0
  651. package/dist/modules/workflows/lib/run-gantt.js +180 -0
  652. package/dist/modules/workflows/lib/run-gantt.js.map +7 -0
  653. package/dist/modules/workflows/lib/run-outcome-evidence.js +33 -0
  654. package/dist/modules/workflows/lib/run-outcome-evidence.js.map +7 -0
  655. package/dist/modules/workflows/lib/run-outcome.js +48 -0
  656. package/dist/modules/workflows/lib/run-outcome.js.map +7 -0
  657. package/dist/modules/workflows/lib/sample-resolver.js +71 -0
  658. package/dist/modules/workflows/lib/sample-resolver.js.map +7 -0
  659. package/dist/modules/workflows/lib/seeds.js +1 -1
  660. package/dist/modules/workflows/lib/seeds.js.map +2 -2
  661. package/dist/modules/workflows/lib/server-output-contract.js +65 -0
  662. package/dist/modules/workflows/lib/server-output-contract.js.map +7 -0
  663. package/dist/modules/workflows/lib/set-variable.js +47 -0
  664. package/dist/modules/workflows/lib/set-variable.js.map +7 -0
  665. package/dist/modules/workflows/lib/signal-handler.js +63 -4
  666. package/dist/modules/workflows/lib/signal-handler.js.map +2 -2
  667. package/dist/modules/workflows/lib/start-fixtures.js +42 -0
  668. package/dist/modules/workflows/lib/start-fixtures.js.map +7 -0
  669. package/dist/modules/workflows/lib/status-colors.js +153 -22
  670. package/dist/modules/workflows/lib/status-colors.js.map +2 -2
  671. package/dist/modules/workflows/lib/step-handler.js +529 -53
  672. package/dist/modules/workflows/lib/step-handler.js.map +3 -3
  673. package/dist/modules/workflows/lib/step-presentation.js +147 -0
  674. package/dist/modules/workflows/lib/step-presentation.js.map +7 -0
  675. package/dist/modules/workflows/lib/step-through.js +26 -0
  676. package/dist/modules/workflows/lib/step-through.js.map +7 -0
  677. package/dist/modules/workflows/lib/step-type-conversion.js +167 -0
  678. package/dist/modules/workflows/lib/step-type-conversion.js.map +7 -0
  679. package/dist/modules/workflows/lib/subgraph-clipboard.js +114 -0
  680. package/dist/modules/workflows/lib/subgraph-clipboard.js.map +7 -0
  681. package/dist/modules/workflows/lib/task-decision-context.js +38 -0
  682. package/dist/modules/workflows/lib/task-decision-context.js.map +7 -0
  683. package/dist/modules/workflows/lib/task-decisions.js +49 -0
  684. package/dist/modules/workflows/lib/task-decisions.js.map +7 -0
  685. package/dist/modules/workflows/lib/task-entity-access.js +62 -0
  686. package/dist/modules/workflows/lib/task-entity-access.js.map +7 -0
  687. package/dist/modules/workflows/lib/task-entity-aliases.js +39 -0
  688. package/dist/modules/workflows/lib/task-entity-aliases.js.map +7 -0
  689. package/dist/modules/workflows/lib/task-entity-types.js +36 -0
  690. package/dist/modules/workflows/lib/task-entity-types.js.map +7 -0
  691. package/dist/modules/workflows/lib/task-form-registry.js +33 -0
  692. package/dist/modules/workflows/lib/task-form-registry.js.map +7 -0
  693. package/dist/modules/workflows/lib/task-form-schema.js +75 -0
  694. package/dist/modules/workflows/lib/task-form-schema.js.map +7 -0
  695. package/dist/modules/workflows/lib/task-handler.js +251 -32
  696. package/dist/modules/workflows/lib/task-handler.js.map +2 -2
  697. package/dist/modules/workflows/lib/task-inspector-config.js +182 -0
  698. package/dist/modules/workflows/lib/task-inspector-config.js.map +7 -0
  699. package/dist/modules/workflows/lib/task-list-query.js +19 -0
  700. package/dist/modules/workflows/lib/task-list-query.js.map +7 -0
  701. package/dist/modules/workflows/lib/task-notifications.js +119 -0
  702. package/dist/modules/workflows/lib/task-notifications.js.map +7 -0
  703. package/dist/modules/workflows/lib/task-permission-settings.js +43 -0
  704. package/dist/modules/workflows/lib/task-permission-settings.js.map +7 -0
  705. package/dist/modules/workflows/lib/task-presets.js +35 -0
  706. package/dist/modules/workflows/lib/task-presets.js.map +7 -0
  707. package/dist/modules/workflows/lib/task-quick-action.js +45 -0
  708. package/dist/modules/workflows/lib/task-quick-action.js.map +7 -0
  709. package/dist/modules/workflows/lib/task-resolution.js +120 -0
  710. package/dist/modules/workflows/lib/task-resolution.js.map +7 -0
  711. package/dist/modules/workflows/lib/task-sla.js +357 -0
  712. package/dist/modules/workflows/lib/task-sla.js.map +7 -0
  713. package/dist/modules/workflows/lib/task-visibility-request.js +266 -0
  714. package/dist/modules/workflows/lib/task-visibility-request.js.map +7 -0
  715. package/dist/modules/workflows/lib/task-visibility.js +194 -0
  716. package/dist/modules/workflows/lib/task-visibility.js.map +7 -0
  717. package/dist/modules/workflows/lib/timer-handler.js +3 -1
  718. package/dist/modules/workflows/lib/timer-handler.js.map +2 -2
  719. package/dist/modules/workflows/lib/transition-handler.js +148 -20
  720. package/dist/modules/workflows/lib/transition-handler.js.map +2 -2
  721. package/dist/modules/workflows/lib/trigger-node.js +121 -0
  722. package/dist/modules/workflows/lib/trigger-node.js.map +7 -0
  723. package/dist/modules/workflows/lib/visual-editor-navigation.js +14 -0
  724. package/dist/modules/workflows/lib/visual-editor-navigation.js.map +7 -0
  725. package/dist/modules/workflows/lib/work-inbox/empty-state.js +52 -0
  726. package/dist/modules/workflows/lib/work-inbox/empty-state.js.map +7 -0
  727. package/dist/modules/workflows/lib/work-inbox/entity-links.js +63 -0
  728. package/dist/modules/workflows/lib/work-inbox/entity-links.js.map +7 -0
  729. package/dist/modules/workflows/lib/work-inbox/navigation.js +11 -0
  730. package/dist/modules/workflows/lib/work-inbox/navigation.js.map +7 -0
  731. package/dist/modules/workflows/lib/work-inbox/presentation.js +90 -0
  732. package/dist/modules/workflows/lib/work-inbox/presentation.js.map +7 -0
  733. package/dist/modules/workflows/lib/work-inbox/provider.js +118 -0
  734. package/dist/modules/workflows/lib/work-inbox/provider.js.map +7 -0
  735. package/dist/modules/workflows/lib/work-inbox/query.js +70 -0
  736. package/dist/modules/workflows/lib/work-inbox/query.js.map +7 -0
  737. package/dist/modules/workflows/lib/work-inbox/service.js +56 -0
  738. package/dist/modules/workflows/lib/work-inbox/service.js.map +7 -0
  739. package/dist/modules/workflows/lib/work-inbox/user-task-source.js +149 -0
  740. package/dist/modules/workflows/lib/work-inbox/user-task-source.js.map +7 -0
  741. package/dist/modules/workflows/lib/workflow-command-enablement.js +57 -0
  742. package/dist/modules/workflows/lib/workflow-command-enablement.js.map +7 -0
  743. package/dist/modules/workflows/lib/workflow-command-settings.js +54 -0
  744. package/dist/modules/workflows/lib/workflow-command-settings.js.map +7 -0
  745. package/dist/modules/workflows/lib/workflow-executor.js +658 -6
  746. package/dist/modules/workflows/lib/workflow-executor.js.map +2 -2
  747. package/dist/modules/workflows/lib/workflow-function-registry.js +40 -0
  748. package/dist/modules/workflows/lib/workflow-function-registry.js.map +7 -0
  749. package/dist/modules/workflows/lib/workflow-safe-commands.js +11 -1
  750. package/dist/modules/workflows/lib/workflow-safe-commands.js.map +2 -2
  751. package/dist/modules/workflows/lib/workflow-templates.js +69 -0
  752. package/dist/modules/workflows/lib/workflow-templates.js.map +7 -0
  753. package/dist/modules/workflows/migrations/Migration20260626214855_workflows.js +15 -0
  754. package/dist/modules/workflows/migrations/Migration20260626214855_workflows.js.map +7 -0
  755. package/dist/modules/workflows/migrations/Migration20260626222424_workflows.js +17 -0
  756. package/dist/modules/workflows/migrations/Migration20260626222424_workflows.js.map +7 -0
  757. package/dist/modules/workflows/migrations/Migration20260727074335_workflows.js +15 -0
  758. package/dist/modules/workflows/migrations/Migration20260727074335_workflows.js.map +7 -0
  759. package/dist/modules/workflows/migrations/Migration20260728104038_workflows.js +13 -0
  760. package/dist/modules/workflows/migrations/Migration20260728104038_workflows.js.map +7 -0
  761. package/dist/modules/workflows/migrations/Migration20260728163001_workflows.js +15 -0
  762. package/dist/modules/workflows/migrations/Migration20260728163001_workflows.js.map +7 -0
  763. package/dist/modules/workflows/migrations/Migration20260729061736_workflows.js +13 -0
  764. package/dist/modules/workflows/migrations/Migration20260729061736_workflows.js.map +7 -0
  765. package/dist/modules/workflows/migrations/Migration20260729192652_workflows.js +12 -0
  766. package/dist/modules/workflows/migrations/Migration20260729192652_workflows.js.map +7 -0
  767. package/dist/modules/workflows/migrations/Migration20260730085000_workflows.js +13 -0
  768. package/dist/modules/workflows/migrations/Migration20260730085000_workflows.js.map +7 -0
  769. package/dist/modules/workflows/migrations/Migration20260730092706_workflows.js +13 -0
  770. package/dist/modules/workflows/migrations/Migration20260730092706_workflows.js.map +7 -0
  771. package/dist/modules/workflows/notifications.js +38 -10
  772. package/dist/modules/workflows/notifications.js.map +2 -2
  773. package/dist/modules/workflows/setup.js +81 -1
  774. package/dist/modules/workflows/setup.js.map +2 -2
  775. package/dist/modules/workflows/subscribers/task-assigned-notification.js +19 -27
  776. package/dist/modules/workflows/subscribers/task-assigned-notification.js.map +2 -2
  777. package/dist/modules/workflows/subscribers/task-deadline-breached-notification.js +24 -0
  778. package/dist/modules/workflows/subscribers/task-deadline-breached-notification.js.map +7 -0
  779. package/dist/modules/workflows/subscribers/task-reminder-notification.js +24 -0
  780. package/dist/modules/workflows/subscribers/task-reminder-notification.js.map +7 -0
  781. package/dist/modules/workflows/widgets/injection/pending-work/widget.client.js +73 -0
  782. package/dist/modules/workflows/widgets/injection/pending-work/widget.client.js.map +7 -0
  783. package/dist/modules/workflows/widgets/injection/pending-work/widget.js +17 -0
  784. package/dist/modules/workflows/widgets/injection/pending-work/widget.js.map +7 -0
  785. package/dist/modules/workflows/widgets/injection-table.js +26 -0
  786. package/dist/modules/workflows/widgets/injection-table.js.map +2 -2
  787. package/dist/modules/workflows/workers/workflow-activities.worker.js +61 -39
  788. package/dist/modules/workflows/workers/workflow-activities.worker.js.map +2 -2
  789. package/dist/modules/workflows/workers/workflow-definition-metric-rollup.worker.js +40 -0
  790. package/dist/modules/workflows/workers/workflow-definition-metric-rollup.worker.js.map +7 -0
  791. package/dist/modules/workflows/workers/workflow-instance-bulk-replay.js +43 -0
  792. package/dist/modules/workflows/workers/workflow-instance-bulk-replay.js.map +7 -0
  793. package/dist/modules/workflows/workers/workflow-invoke-agent.worker.js +30 -0
  794. package/dist/modules/workflows/workers/workflow-invoke-agent.worker.js.map +7 -0
  795. package/generated/entities/action_log/index.ts +1 -0
  796. package/generated/entities/user/index.ts +1 -0
  797. package/generated/entities/user_task/index.ts +7 -0
  798. package/generated/entities/workflow_definition/index.ts +3 -0
  799. package/generated/entities/workflow_definition_draft/index.ts +11 -0
  800. package/generated/entities/workflow_definition_metric_rollup/index.ts +10 -0
  801. package/generated/entities/workflow_instance/index.ts +2 -0
  802. package/generated/entities.ids.generated.ts +4 -1
  803. package/generated/entity-fields-registry.ts +39 -0
  804. package/jest.setup.ts +13 -0
  805. package/package.json +8 -7
  806. package/src/helpers/integration/workflowsFixtures.ts +765 -5
  807. package/src/helpers/integration/workflowsUi.ts +318 -0
  808. package/src/modules/attachments/lib/createFromBuffer.ts +120 -0
  809. package/src/modules/audit_logs/data/entities.ts +12 -0
  810. package/src/modules/audit_logs/data/validators.ts +1 -0
  811. package/src/modules/audit_logs/lib/projections.ts +5 -1
  812. package/src/modules/audit_logs/migrations/.snapshot-open-mercato.json +26 -0
  813. package/src/modules/audit_logs/migrations/Migration20260625120000.ts +15 -0
  814. package/src/modules/audit_logs/services/actionLogService.ts +3 -0
  815. package/src/modules/auth/data/entities.ts +21 -0
  816. package/src/modules/auth/i18n/de.json +31 -0
  817. package/src/modules/auth/i18n/en.json +31 -0
  818. package/src/modules/auth/i18n/es.json +31 -0
  819. package/src/modules/auth/i18n/ko.json +31 -0
  820. package/src/modules/auth/i18n/pl.json +31 -0
  821. package/src/modules/auth/lib/executionPrincipal.ts +235 -0
  822. package/src/modules/auth/migrations/.snapshot-open-mercato.json +16 -0
  823. package/src/modules/auth/migrations/Migration20260625050000.ts +21 -0
  824. package/src/modules/business_rules/components/InlineRuleEditor.tsx +231 -0
  825. package/src/modules/business_rules/data/validators.ts +6 -0
  826. package/src/modules/business_rules/i18n/de.json +4 -0
  827. package/src/modules/business_rules/i18n/en.json +4 -0
  828. package/src/modules/business_rules/i18n/es.json +4 -0
  829. package/src/modules/business_rules/i18n/ko.json +4 -0
  830. package/src/modules/business_rules/i18n/pl.json +4 -0
  831. package/src/modules/business_rules/lib/rule-engine.ts +15 -1
  832. package/src/modules/catalog/commands/products.ts +12 -0
  833. package/src/modules/catalog/i18n/de.json +1 -0
  834. package/src/modules/catalog/i18n/en.json +1 -0
  835. package/src/modules/catalog/i18n/es.json +1 -0
  836. package/src/modules/catalog/i18n/ko.json +1 -0
  837. package/src/modules/catalog/i18n/pl.json +1 -0
  838. package/src/modules/catalog/workflows.ts +35 -0
  839. package/src/modules/customer_accounts/AGENTS.md +11 -0
  840. package/src/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.tsx +2 -0
  841. package/src/modules/customer_accounts/cli.ts +96 -0
  842. package/src/modules/customer_accounts/i18n/de.json +5 -0
  843. package/src/modules/customer_accounts/i18n/en.json +5 -0
  844. package/src/modules/customer_accounts/i18n/es.json +5 -0
  845. package/src/modules/customer_accounts/i18n/ko.json +5 -0
  846. package/src/modules/customer_accounts/i18n/pl.json +5 -0
  847. package/src/modules/customer_accounts/lib/customerRoleAclSync.ts +92 -0
  848. package/src/modules/customer_accounts/setup.ts +15 -3
  849. package/src/modules/customers/commands/deals.ts +5 -0
  850. package/src/modules/customers/components/detail/ChangelogEntryRow.tsx +4 -2
  851. package/src/modules/customers/components/detail/utils.ts +2 -0
  852. package/src/modules/customers/events.ts +21 -3
  853. package/src/modules/customers/i18n/de.json +4 -0
  854. package/src/modules/customers/i18n/en.json +4 -0
  855. package/src/modules/customers/i18n/es.json +4 -0
  856. package/src/modules/customers/i18n/ko.json +4 -0
  857. package/src/modules/customers/i18n/pl.json +4 -0
  858. package/src/modules/customers/lib/link-workflow-task-handler.ts +136 -0
  859. package/src/modules/customers/lib/todoCompatibility.ts +4 -1
  860. package/src/modules/customers/lib/workflowTaskLink.ts +23 -0
  861. package/src/modules/customers/subscribers/link-workflow-task.ts +19 -0
  862. package/src/modules/customers/workflows.ts +57 -0
  863. package/src/modules/entities/api/records.ts +18 -62
  864. package/src/modules/entities/lib/entityClassification.ts +102 -0
  865. package/src/modules/sales/commands/documents.ts +46 -0
  866. package/src/modules/sales/events.ts +20 -2
  867. package/src/modules/sales/i18n/de.json +2 -1
  868. package/src/modules/sales/i18n/en.json +2 -1
  869. package/src/modules/sales/i18n/es.json +2 -1
  870. package/src/modules/sales/i18n/ko.json +2 -1
  871. package/src/modules/sales/i18n/pl.json +2 -1
  872. package/src/modules/sales/workflows.ts +12 -1
  873. package/src/modules/seeds/README.md +86 -0
  874. package/src/modules/seeds/cli.ts +220 -0
  875. package/src/modules/seeds/examples/sample-seed.json +26 -0
  876. package/src/modules/seeds/index.ts +11 -0
  877. package/src/modules/workflows/AGENTS.md +851 -10
  878. package/src/modules/workflows/acl.ts +96 -0
  879. package/src/modules/workflows/ai-agents.ts +80 -0
  880. package/src/modules/workflows/ai-tools/authoring-pack.ts +798 -0
  881. package/src/modules/workflows/ai-tools/types.ts +117 -0
  882. package/src/modules/workflows/ai-tools.ts +20 -0
  883. package/src/modules/workflows/api/command-settings/route.ts +171 -0
  884. package/src/modules/workflows/api/commands/route.ts +109 -0
  885. package/src/modules/workflows/api/definitions/[id]/callers/route.ts +95 -0
  886. package/src/modules/workflows/api/definitions/[id]/context-schema/route.ts +187 -0
  887. package/src/modules/workflows/api/definitions/[id]/customize/route.ts +6 -1
  888. package/src/modules/workflows/api/definitions/[id]/draft/route.ts +395 -0
  889. package/src/modules/workflows/api/definitions/[id]/publish/route.ts +250 -0
  890. package/src/modules/workflows/api/definitions/[id]/reset-to-code/route.ts +5 -0
  891. package/src/modules/workflows/api/definitions/[id]/route.ts +107 -7
  892. package/src/modules/workflows/api/definitions/[id]/test-step/route.ts +288 -0
  893. package/src/modules/workflows/api/definitions/generate/route.ts +335 -0
  894. package/src/modules/workflows/api/definitions/route.ts +88 -113
  895. package/src/modules/workflows/api/definitions/serialize.ts +9 -0
  896. package/src/modules/workflows/api/endpoints/route.ts +88 -0
  897. package/src/modules/workflows/api/functions/route.ts +91 -0
  898. package/src/modules/workflows/api/grantable-features/route.ts +102 -0
  899. package/src/modules/workflows/api/instances/[id]/context/route.ts +214 -0
  900. package/src/modules/workflows/api/instances/[id]/rerun-step/route.ts +226 -0
  901. package/src/modules/workflows/api/instances/[id]/retry/route.ts +18 -2
  902. package/src/modules/workflows/api/instances/[id]/step-through/route.ts +195 -0
  903. package/src/modules/workflows/api/instances/[id]/steps/route.ts +160 -0
  904. package/src/modules/workflows/api/instances/[id]/would-do/route.ts +216 -0
  905. package/src/modules/workflows/api/instances/bulk-replay/route.ts +141 -0
  906. package/src/modules/workflows/api/instances/failure-queue/route.ts +197 -0
  907. package/src/modules/workflows/api/instances/route.ts +135 -3
  908. package/src/modules/workflows/api/metrics/definitions/route.ts +262 -0
  909. package/src/modules/workflows/api/openapi.ts +549 -2
  910. package/src/modules/workflows/api/portal/tasks/[id]/complete/route.ts +160 -0
  911. package/src/modules/workflows/api/portal/tasks/[id]/route.ts +124 -0
  912. package/src/modules/workflows/api/portal/tasks/route.ts +157 -0
  913. package/src/modules/workflows/api/rule-usage/route.ts +94 -0
  914. package/src/modules/workflows/api/task-settings/route.ts +138 -0
  915. package/src/modules/workflows/api/tasks/[id]/claim/route.ts +42 -17
  916. package/src/modules/workflows/api/tasks/[id]/complete/route.ts +47 -15
  917. package/src/modules/workflows/api/tasks/[id]/reassign/route.ts +197 -0
  918. package/src/modules/workflows/api/tasks/[id]/route.ts +57 -6
  919. package/src/modules/workflows/api/tasks/[id]/unclaim/route.ts +132 -0
  920. package/src/modules/workflows/api/tasks/route.ts +60 -5
  921. package/src/modules/workflows/api/tasks/serialize.ts +119 -0
  922. package/src/modules/workflows/api/templates/route.ts +87 -0
  923. package/src/modules/workflows/api/work-inbox/next/route.ts +170 -0
  924. package/src/modules/workflows/api/work-inbox/route.ts +153 -0
  925. package/src/modules/workflows/backend/config/workflows/page.meta.ts +33 -0
  926. package/src/modules/workflows/backend/config/workflows/page.tsx +12 -0
  927. package/src/modules/workflows/backend/definitions/[id]/page.tsx +19 -343
  928. package/src/modules/workflows/backend/definitions/create/page.meta.ts +1 -1
  929. package/src/modules/workflows/backend/definitions/create/page.tsx +19 -59
  930. package/src/modules/workflows/backend/definitions/page.tsx +156 -76
  931. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +3129 -584
  932. package/src/modules/workflows/backend/instances/[id]/page.meta.ts +1 -1
  933. package/src/modules/workflows/backend/instances/[id]/page.tsx +711 -539
  934. package/src/modules/workflows/backend/instances/failure-queue/page.meta.ts +16 -0
  935. package/src/modules/workflows/backend/instances/failure-queue/page.tsx +311 -0
  936. package/src/modules/workflows/backend/instances/page.meta.ts +1 -1
  937. package/src/modules/workflows/backend/instances/page.tsx +218 -38
  938. package/src/modules/workflows/backend/tasks/[id]/page.tsx +639 -400
  939. package/src/modules/workflows/backend/tasks/page.meta.ts +7 -0
  940. package/src/modules/workflows/backend/tasks/page.tsx +20 -333
  941. package/src/modules/workflows/backend/work-inbox/page.meta.ts +15 -0
  942. package/src/modules/workflows/backend/work-inbox/page.tsx +506 -0
  943. package/src/modules/workflows/cli.ts +1 -1
  944. package/src/modules/workflows/commands/tasks.ts +146 -0
  945. package/src/modules/workflows/components/ActivitiesEditor.tsx +91 -114
  946. package/src/modules/workflows/components/ActivityEditDialog.tsx +244 -0
  947. package/src/modules/workflows/components/AgentSelector.tsx +200 -0
  948. package/src/modules/workflows/components/AnnotationEditDialog.tsx +157 -0
  949. package/src/modules/workflows/components/BusinessRuleUsagePanel.tsx +106 -0
  950. package/src/modules/workflows/components/BusinessRulesSelector.tsx +71 -17
  951. package/src/modules/workflows/components/ConfigJsonTextarea.tsx +111 -0
  952. package/src/modules/workflows/components/ContextSchemaEditor.tsx +165 -0
  953. package/src/modules/workflows/components/DefinitionErrorHandlerField.tsx +133 -0
  954. package/src/modules/workflows/components/DefinitionMetadataDrawer.tsx +456 -0
  955. package/src/modules/workflows/components/DefinitionMetricsCells.tsx +212 -0
  956. package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +196 -95
  957. package/src/modules/workflows/components/EdgeEditDialog.tsx +15 -16
  958. package/src/modules/workflows/components/EdgeEditDialogCrudForm.tsx +130 -80
  959. package/src/modules/workflows/components/InputDataPanel.tsx +177 -0
  960. package/src/modules/workflows/components/InspectorPanel.tsx +250 -0
  961. package/src/modules/workflows/components/NodeEditDialog.tsx +444 -38
  962. package/src/modules/workflows/components/NodeEditDialogCrudForm.tsx +848 -178
  963. package/src/modules/workflows/components/StepsEditor.tsx +9 -2
  964. package/src/modules/workflows/components/TemplateGalleryDialog.tsx +205 -0
  965. package/src/modules/workflows/components/TransitionsEditor.tsx +98 -89
  966. package/src/modules/workflows/components/TriggersDialog.tsx +83 -0
  967. package/src/modules/workflows/components/TriggersEditor.tsx +363 -0
  968. package/src/modules/workflows/components/WorkflowAiDraftDialog.tsx +383 -0
  969. package/src/modules/workflows/components/WorkflowCodeView.tsx +257 -0
  970. package/src/modules/workflows/components/WorkflowCommandPalette.tsx +82 -0
  971. package/src/modules/workflows/components/WorkflowCompensationGhostEdge.tsx +78 -0
  972. package/src/modules/workflows/components/WorkflowDataMappingEdge.tsx +46 -0
  973. package/src/modules/workflows/components/WorkflowGraph.tsx +54 -1
  974. package/src/modules/workflows/components/WorkflowGraphImpl.tsx +463 -37
  975. package/src/modules/workflows/components/WorkflowIconPicker.tsx +144 -0
  976. package/src/modules/workflows/components/WorkflowLegend.tsx +59 -33
  977. package/src/modules/workflows/components/WorkflowNodeCard.tsx +355 -28
  978. package/src/modules/workflows/components/WorkflowRouteChips.tsx +145 -0
  979. package/src/modules/workflows/components/WorkflowSelector.tsx +33 -14
  980. package/src/modules/workflows/components/WorkflowTransitionEdge.tsx +83 -10
  981. package/src/modules/workflows/components/WorkflowTransitionLabel.tsx +13 -2
  982. package/src/modules/workflows/components/fields/ActivityArrayEditor.tsx +120 -30
  983. package/src/modules/workflows/components/fields/ActivityConfigFields.tsx +675 -0
  984. package/src/modules/workflows/components/fields/ActivityTestPanel.tsx +250 -0
  985. package/src/modules/workflows/components/fields/AgentInvokeConfigField.tsx +580 -0
  986. package/src/modules/workflows/components/fields/AgentReviewOnBreachField.tsx +88 -0
  987. package/src/modules/workflows/components/fields/BranchingRoutesEditor.tsx +323 -0
  988. package/src/modules/workflows/components/fields/BusinessRuleConditionsEditor.tsx +36 -4
  989. package/src/modules/workflows/components/fields/CommandPicker.tsx +158 -0
  990. package/src/modules/workflows/components/fields/EndpointPicker.tsx +330 -0
  991. package/src/modules/workflows/components/fields/FormFieldArrayEditor.tsx +2 -2
  992. package/src/modules/workflows/components/fields/FunctionPicker.tsx +68 -0
  993. package/src/modules/workflows/components/fields/MappingArrayEditor.tsx +46 -12
  994. package/src/modules/workflows/components/fields/PortFieldArrayEditor.tsx +255 -0
  995. package/src/modules/workflows/components/fields/RolesMultiSelect.tsx +68 -0
  996. package/src/modules/workflows/components/fields/RouteOrderEditor.tsx +169 -0
  997. package/src/modules/workflows/components/fields/SchemaBuilderDialog.tsx +139 -0
  998. package/src/modules/workflows/components/fields/StartPreConditionsEditor.tsx +2 -2
  999. package/src/modules/workflows/components/fields/TaskAssignmentField.tsx +355 -0
  1000. package/src/modules/workflows/components/fields/TaskDeadlineFields.tsx +172 -0
  1001. package/src/modules/workflows/components/fields/TaskDecisionsField.tsx +294 -0
  1002. package/src/modules/workflows/components/fields/TaskEntityBindingsField.tsx +156 -0
  1003. package/src/modules/workflows/components/fields/TemplateTextControl.tsx +85 -0
  1004. package/src/modules/workflows/components/fields/VariablePickerButton.tsx +177 -0
  1005. package/src/modules/workflows/components/fields/ledgerDropTarget.ts +55 -0
  1006. package/src/modules/workflows/components/fields/useActivityTypeOptions.ts +19 -0
  1007. package/src/modules/workflows/components/formConfig.tsx +84 -10
  1008. package/src/modules/workflows/components/mobile/MobileDefinitionDetail.tsx +5 -0
  1009. package/src/modules/workflows/components/mobile/MobileMetadataSheet.tsx +10 -0
  1010. package/src/modules/workflows/components/mobile/MobileTaskForm.tsx +55 -19
  1011. package/src/modules/workflows/components/mobile/MobileVisualEditor.tsx +49 -40
  1012. package/src/modules/workflows/components/nodes/AnnotationGroupNode.tsx +81 -0
  1013. package/src/modules/workflows/components/nodes/AutomatedNode.tsx +34 -17
  1014. package/src/modules/workflows/components/nodes/EndNode.tsx +15 -14
  1015. package/src/modules/workflows/components/nodes/ErrorOutputHandle.tsx +32 -0
  1016. package/src/modules/workflows/components/nodes/IfElseNode.tsx +64 -0
  1017. package/src/modules/workflows/components/nodes/InvokeAgentNode.tsx +180 -0
  1018. package/src/modules/workflows/components/nodes/NodeOutcomeRows.tsx +143 -0
  1019. package/src/modules/workflows/components/nodes/ParallelForkNode.tsx +28 -15
  1020. package/src/modules/workflows/components/nodes/ParallelJoinNode.tsx +28 -15
  1021. package/src/modules/workflows/components/nodes/StartNode.tsx +78 -18
  1022. package/src/modules/workflows/components/nodes/StickyNoteNode.tsx +65 -0
  1023. package/src/modules/workflows/components/nodes/SubWorkflowNode.tsx +124 -23
  1024. package/src/modules/workflows/components/nodes/SwitchNode.tsx +64 -0
  1025. package/src/modules/workflows/components/nodes/TriggerCap.tsx +103 -0
  1026. package/src/modules/workflows/components/nodes/TriggerNode.tsx +151 -0
  1027. package/src/modules/workflows/components/nodes/UserTaskNode.tsx +67 -22
  1028. package/src/modules/workflows/components/nodes/WaitForConditionNode.tsx +74 -0
  1029. package/src/modules/workflows/components/nodes/WaitForSignalNode.tsx +31 -17
  1030. package/src/modules/workflows/components/nodes/WaitForTimerNode.tsx +31 -16
  1031. package/src/modules/workflows/components/nodes/index.ts +17 -0
  1032. package/src/modules/workflows/components/portal/PortalTaskForm.tsx +280 -0
  1033. package/src/modules/workflows/components/run/AgentActivityPanel.tsx +48 -0
  1034. package/src/modules/workflows/components/run/RerunStepDialog.tsx +133 -0
  1035. package/src/modules/workflows/components/run/RunEventBadge.tsx +37 -0
  1036. package/src/modules/workflows/components/run/RunGantt.tsx +180 -0
  1037. package/src/modules/workflows/components/run/RunStatusBadge.tsx +112 -0
  1038. package/src/modules/workflows/components/run/RunStepInspector.tsx +176 -0
  1039. package/src/modules/workflows/components/run/WouldDoReport.tsx +93 -0
  1040. package/src/modules/workflows/components/run/useAgentLabels.ts +42 -0
  1041. package/src/modules/workflows/components/run/useLastRunOverlay.ts +150 -0
  1042. package/src/modules/workflows/components/run/useLiveAgentActions.ts +70 -0
  1043. package/src/modules/workflows/components/run/useLiveRunUpdates.ts +89 -0
  1044. package/src/modules/workflows/components/settings/CommandSettingsPageClient.tsx +228 -0
  1045. package/src/modules/workflows/components/work-inbox/EntityContextPanel.tsx +179 -0
  1046. package/src/modules/workflows/components/work-inbox/ReassignTaskDialog.tsx +203 -0
  1047. package/src/modules/workflows/components/work-inbox/StatusChip.tsx +61 -0
  1048. package/src/modules/workflows/components/work-inbox/TaskActionNotice.tsx +77 -0
  1049. package/src/modules/workflows/components/work-inbox/TaskFormFields.tsx +322 -0
  1050. package/src/modules/workflows/components/work-inbox/WorkInboxEmptyState.tsx +43 -0
  1051. package/src/modules/workflows/data/activity-config-schemas.ts +249 -0
  1052. package/src/modules/workflows/data/activity-config-warnings.ts +71 -0
  1053. package/src/modules/workflows/data/branching-route-warnings.ts +129 -0
  1054. package/src/modules/workflows/data/entities.ts +397 -4
  1055. package/src/modules/workflows/data/metrics-validators.ts +51 -0
  1056. package/src/modules/workflows/data/task-primitives.ts +36 -0
  1057. package/src/modules/workflows/data/types.ts +81 -2
  1058. package/src/modules/workflows/data/validators.ts +729 -60
  1059. package/src/modules/workflows/di.ts +22 -0
  1060. package/src/modules/workflows/events.ts +68 -8
  1061. package/src/modules/workflows/examples/oze-residential-install-60-nodes.json +1545 -0
  1062. package/src/modules/workflows/examples/sales-pipeline-definition.json +35 -35
  1063. package/src/modules/workflows/examples/templates/lead-to-install.json +160 -0
  1064. package/src/modules/workflows/examples/templates/order-approval.json +230 -0
  1065. package/src/modules/workflows/examples/templates/task-escalation.json +110 -0
  1066. package/src/modules/workflows/examples/templates/webhook-integration.json +113 -0
  1067. package/src/modules/workflows/extension-points.ts +1 -1
  1068. package/src/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.meta.ts +21 -0
  1069. package/src/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.tsx +212 -0
  1070. package/src/modules/workflows/frontend/[orgSlug]/portal/tasks/page.meta.ts +25 -0
  1071. package/src/modules/workflows/frontend/[orgSlug]/portal/tasks/page.tsx +185 -0
  1072. package/src/modules/workflows/i18n/de.json +1083 -24
  1073. package/src/modules/workflows/i18n/en.json +1081 -22
  1074. package/src/modules/workflows/i18n/es.json +1083 -24
  1075. package/src/modules/workflows/i18n/ko.json +1072 -13
  1076. package/src/modules/workflows/i18n/pl.json +1082 -23
  1077. package/src/modules/workflows/lib/activity-executor.ts +855 -186
  1078. package/src/modules/workflows/lib/activity-queue-types.ts +120 -1
  1079. package/src/modules/workflows/lib/activity-registry-bootstrap.ts +7 -0
  1080. package/src/modules/workflows/lib/activity-registry.ts +89 -0
  1081. package/src/modules/workflows/lib/activity-types.ts +415 -0
  1082. package/src/modules/workflows/lib/activity-worker-handler.ts +744 -35
  1083. package/src/modules/workflows/lib/advanced-config.ts +41 -0
  1084. package/src/modules/workflows/lib/agent-disposition-task.ts +343 -0
  1085. package/src/modules/workflows/lib/agent-outcome-paths.ts +153 -0
  1086. package/src/modules/workflows/lib/agent-result-mapping.ts +88 -0
  1087. package/src/modules/workflows/lib/agent-review-inspector.ts +125 -0
  1088. package/src/modules/workflows/lib/agent-review.ts +171 -0
  1089. package/src/modules/workflows/lib/ai-authoring.ts +402 -0
  1090. package/src/modules/workflows/lib/ai-draft-runner.ts +105 -0
  1091. package/src/modules/workflows/lib/annotation-events.ts +15 -0
  1092. package/src/modules/workflows/lib/branching-routes.ts +280 -0
  1093. package/src/modules/workflows/lib/breach-routing.ts +142 -0
  1094. package/src/modules/workflows/lib/bulk-replay.ts +185 -0
  1095. package/src/modules/workflows/lib/business-rule-usage.ts +154 -0
  1096. package/src/modules/workflows/lib/caller-graph.ts +104 -0
  1097. package/src/modules/workflows/lib/code-view-apply.ts +178 -0
  1098. package/src/modules/workflows/lib/collect-validation-issues.ts +239 -0
  1099. package/src/modules/workflows/lib/compensation-ghosts.ts +134 -0
  1100. package/src/modules/workflows/lib/component-guard.ts +13 -0
  1101. package/src/modules/workflows/lib/condition-handler.ts +658 -0
  1102. package/src/modules/workflows/lib/context-ledger.ts +814 -0
  1103. package/src/modules/workflows/lib/crud-form-dialogs-flag.ts +5 -0
  1104. package/src/modules/workflows/lib/data-edge-mapping.ts +112 -0
  1105. package/src/modules/workflows/lib/definition-context-schema.ts +103 -0
  1106. package/src/modules/workflows/lib/definition-edit-safety.ts +228 -0
  1107. package/src/modules/workflows/lib/definition-error-body.ts +43 -0
  1108. package/src/modules/workflows/lib/definition-evaluation.ts +156 -0
  1109. package/src/modules/workflows/lib/definition-grant.ts +211 -0
  1110. package/src/modules/workflows/lib/definition-json-locations.ts +226 -0
  1111. package/src/modules/workflows/lib/definition-payload.ts +81 -0
  1112. package/src/modules/workflows/lib/draft-restore.ts +72 -0
  1113. package/src/modules/workflows/lib/dry-run.ts +203 -0
  1114. package/src/modules/workflows/lib/duration.ts +138 -24
  1115. package/src/modules/workflows/lib/edge-reattachment.ts +186 -0
  1116. package/src/modules/workflows/lib/edgeFormTransforms.ts +15 -14
  1117. package/src/modules/workflows/lib/editor-annotations.ts +301 -0
  1118. package/src/modules/workflows/lib/editor-commands.ts +205 -0
  1119. package/src/modules/workflows/lib/editor-history.ts +151 -0
  1120. package/src/modules/workflows/lib/endpoint-catalog.ts +283 -0
  1121. package/src/modules/workflows/lib/endpoint-path.ts +134 -0
  1122. package/src/modules/workflows/lib/engine-version.ts +67 -0
  1123. package/src/modules/workflows/lib/error-handler.ts +192 -0
  1124. package/src/modules/workflows/lib/error-routing.ts +236 -0
  1125. package/src/modules/workflows/lib/event-logger.ts +27 -0
  1126. package/src/modules/workflows/lib/expression-refs.ts +291 -0
  1127. package/src/modules/workflows/lib/failure-grouping.ts +134 -0
  1128. package/src/modules/workflows/lib/find-definition.ts +4 -0
  1129. package/src/modules/workflows/lib/flow-logic-warnings.ts +591 -0
  1130. package/src/modules/workflows/lib/graph-utils.ts +620 -110
  1131. package/src/modules/workflows/lib/icon-search.ts +65 -0
  1132. package/src/modules/workflows/lib/insert-at-cursor.ts +53 -0
  1133. package/src/modules/workflows/lib/instance-date-filter.ts +56 -0
  1134. package/src/modules/workflows/lib/interpolation-pipeline.ts +351 -0
  1135. package/src/modules/workflows/lib/ledger-drag.ts +61 -0
  1136. package/src/modules/workflows/lib/ledger-entry-display.ts +89 -0
  1137. package/src/modules/workflows/lib/ledger-schema-flatten.ts +137 -0
  1138. package/src/modules/workflows/lib/metrics/definition-metrics.ts +268 -0
  1139. package/src/modules/workflows/lib/metrics/metrics-display.ts +57 -0
  1140. package/src/modules/workflows/lib/metrics/rollup-schedule.ts +26 -0
  1141. package/src/modules/workflows/lib/metrics/rollup-service.ts +292 -0
  1142. package/src/modules/workflows/lib/node-config-summary.ts +235 -0
  1143. package/src/modules/workflows/lib/node-geometry.ts +168 -0
  1144. package/src/modules/workflows/lib/node-nudge.ts +63 -0
  1145. package/src/modules/workflows/lib/node-outcome-rows.ts +195 -0
  1146. package/src/modules/workflows/lib/node-placement.ts +104 -0
  1147. package/src/modules/workflows/lib/node-type-icons.ts +71 -10
  1148. package/src/modules/workflows/lib/nodeFormTransforms.ts +519 -28
  1149. package/src/modules/workflows/lib/outcome-routing.ts +346 -0
  1150. package/src/modules/workflows/lib/owned-definition.ts +188 -0
  1151. package/src/modules/workflows/lib/owned-node-changes.ts +29 -0
  1152. package/src/modules/workflows/lib/palette-drag.ts +68 -0
  1153. package/src/modules/workflows/lib/palette-drop.ts +114 -0
  1154. package/src/modules/workflows/lib/parallel-handler.ts +79 -2
  1155. package/src/modules/workflows/lib/port-contract.ts +107 -0
  1156. package/src/modules/workflows/lib/portal-task-access.ts +220 -0
  1157. package/src/modules/workflows/lib/rerun-from-step.ts +140 -0
  1158. package/src/modules/workflows/lib/route-chip-events.ts +45 -0
  1159. package/src/modules/workflows/lib/route-chips.ts +177 -0
  1160. package/src/modules/workflows/lib/route-edge.ts +57 -0
  1161. package/src/modules/workflows/lib/route-kinds.ts +166 -0
  1162. package/src/modules/workflows/lib/route-priority.ts +197 -0
  1163. package/src/modules/workflows/lib/run-duration.ts +70 -0
  1164. package/src/modules/workflows/lib/run-event-tone.ts +46 -0
  1165. package/src/modules/workflows/lib/run-execution.ts +598 -0
  1166. package/src/modules/workflows/lib/run-gantt.ts +311 -0
  1167. package/src/modules/workflows/lib/run-outcome-evidence.ts +60 -0
  1168. package/src/modules/workflows/lib/run-outcome.ts +142 -0
  1169. package/src/modules/workflows/lib/sample-resolver.ts +113 -0
  1170. package/src/modules/workflows/lib/seeds.ts +3 -1
  1171. package/src/modules/workflows/lib/server-output-contract.ts +120 -0
  1172. package/src/modules/workflows/lib/set-variable.ts +94 -0
  1173. package/src/modules/workflows/lib/signal-handler.ts +134 -4
  1174. package/src/modules/workflows/lib/start-fixtures.ts +93 -0
  1175. package/src/modules/workflows/lib/status-colors.ts +220 -21
  1176. package/src/modules/workflows/lib/step-handler.ts +744 -68
  1177. package/src/modules/workflows/lib/step-presentation.ts +295 -0
  1178. package/src/modules/workflows/lib/step-through.ts +71 -0
  1179. package/src/modules/workflows/lib/step-type-conversion.ts +263 -0
  1180. package/src/modules/workflows/lib/subgraph-clipboard.ts +214 -0
  1181. package/src/modules/workflows/lib/task-decision-context.ts +76 -0
  1182. package/src/modules/workflows/lib/task-decisions.ts +117 -0
  1183. package/src/modules/workflows/lib/task-entity-access.ts +181 -0
  1184. package/src/modules/workflows/lib/task-entity-aliases.ts +77 -0
  1185. package/src/modules/workflows/lib/task-entity-types.ts +66 -0
  1186. package/src/modules/workflows/lib/task-form-registry.ts +123 -0
  1187. package/src/modules/workflows/lib/task-form-schema.ts +129 -0
  1188. package/src/modules/workflows/lib/task-handler.ts +492 -51
  1189. package/src/modules/workflows/lib/task-inspector-config.ts +348 -0
  1190. package/src/modules/workflows/lib/task-list-query.ts +46 -0
  1191. package/src/modules/workflows/lib/task-notifications.ts +218 -0
  1192. package/src/modules/workflows/lib/task-permission-settings.ts +117 -0
  1193. package/src/modules/workflows/lib/task-presets.ts +95 -0
  1194. package/src/modules/workflows/lib/task-quick-action.ts +111 -0
  1195. package/src/modules/workflows/lib/task-resolution.ts +270 -0
  1196. package/src/modules/workflows/lib/task-sla.ts +628 -0
  1197. package/src/modules/workflows/lib/task-visibility-request.ts +668 -0
  1198. package/src/modules/workflows/lib/task-visibility.ts +627 -0
  1199. package/src/modules/workflows/lib/timer-handler.ts +8 -1
  1200. package/src/modules/workflows/lib/transition-handler.ts +228 -20
  1201. package/src/modules/workflows/lib/trigger-node.ts +272 -0
  1202. package/src/modules/workflows/lib/visual-editor-navigation.ts +29 -0
  1203. package/src/modules/workflows/lib/work-inbox/empty-state.ts +150 -0
  1204. package/src/modules/workflows/lib/work-inbox/entity-links.ts +99 -0
  1205. package/src/modules/workflows/lib/work-inbox/navigation.ts +28 -0
  1206. package/src/modules/workflows/lib/work-inbox/presentation.ts +163 -0
  1207. package/src/modules/workflows/lib/work-inbox/provider.ts +390 -0
  1208. package/src/modules/workflows/lib/work-inbox/query.ts +103 -0
  1209. package/src/modules/workflows/lib/work-inbox/service.ts +122 -0
  1210. package/src/modules/workflows/lib/work-inbox/user-task-source.ts +240 -0
  1211. package/src/modules/workflows/lib/workflow-command-enablement.ts +188 -0
  1212. package/src/modules/workflows/lib/workflow-command-settings.ts +124 -0
  1213. package/src/modules/workflows/lib/workflow-executor.ts +1036 -10
  1214. package/src/modules/workflows/lib/workflow-function-registry.ts +44 -0
  1215. package/src/modules/workflows/lib/workflow-safe-commands.ts +42 -1
  1216. package/src/modules/workflows/lib/workflow-templates.ts +91 -0
  1217. package/src/modules/workflows/migrations/.snapshot-open-mercato.json +2321 -698
  1218. package/src/modules/workflows/migrations/Migration20260626214855_workflows.ts +15 -0
  1219. package/src/modules/workflows/migrations/Migration20260626222424_workflows.ts +17 -0
  1220. package/src/modules/workflows/migrations/Migration20260727074335_workflows.ts +15 -0
  1221. package/src/modules/workflows/migrations/Migration20260728104038_workflows.ts +13 -0
  1222. package/src/modules/workflows/migrations/Migration20260728163001_workflows.ts +36 -0
  1223. package/src/modules/workflows/migrations/Migration20260729061736_workflows.ts +13 -0
  1224. package/src/modules/workflows/migrations/Migration20260729192652_workflows.ts +11 -0
  1225. package/src/modules/workflows/migrations/Migration20260730085000_workflows.ts +13 -0
  1226. package/src/modules/workflows/migrations/Migration20260730092706_workflows.ts +13 -0
  1227. package/src/modules/workflows/notifications.ts +40 -10
  1228. package/src/modules/workflows/setup.ts +128 -0
  1229. package/src/modules/workflows/subscribers/task-assigned-notification.ts +36 -45
  1230. package/src/modules/workflows/subscribers/task-deadline-breached-notification.ts +31 -0
  1231. package/src/modules/workflows/subscribers/task-reminder-notification.ts +31 -0
  1232. package/src/modules/workflows/widgets/injection/pending-work/widget.client.tsx +119 -0
  1233. package/src/modules/workflows/widgets/injection/pending-work/widget.ts +27 -0
  1234. package/src/modules/workflows/widgets/injection-table.ts +52 -2
  1235. package/src/modules/workflows/workers/workflow-activities.worker.ts +95 -42
  1236. package/src/modules/workflows/workers/workflow-definition-metric-rollup.worker.ts +71 -0
  1237. package/src/modules/workflows/workers/workflow-instance-bulk-replay.ts +51 -0
  1238. package/src/modules/workflows/workers/workflow-invoke-agent.worker.ts +72 -0
@@ -0,0 +1,196 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { Button } from "@open-mercato/ui/primitives/button";
5
+ import { Input } from "@open-mercato/ui/primitives/input";
6
+ import { Textarea } from "@open-mercato/ui/primitives/textarea";
7
+ import { Checkbox } from "@open-mercato/ui/primitives/checkbox";
8
+ import { Label } from "@open-mercato/ui/primitives/label";
9
+ import {
10
+ Select,
11
+ SelectContent,
12
+ SelectItem,
13
+ SelectTrigger,
14
+ SelectValue
15
+ } from "@open-mercato/ui/primitives/select";
16
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
17
+ import { normalizeTaskFormSchema, readRequiredFormFields } from "../../lib/task-form-schema.js";
18
+ import { resolveTaskForm } from "../../lib/task-form-registry.js";
19
+ function RequiredMark({ required }) {
20
+ const t = useT();
21
+ if (!required) return null;
22
+ return /* @__PURE__ */ jsx("span", { className: "ml-1 text-status-error-text", "aria-label": t("workflows.portal.tasks.form.required", "Required"), children: "*" });
23
+ }
24
+ function PortalTaskForm(props) {
25
+ const t = useT();
26
+ const {
27
+ taskId,
28
+ taskName,
29
+ formSchema,
30
+ formKey,
31
+ entityBindings,
32
+ decisions,
33
+ values,
34
+ comments,
35
+ submitting,
36
+ onFieldChange,
37
+ onValuesChange,
38
+ onCommentsChange,
39
+ onSubmit
40
+ } = props;
41
+ const schema = React.useMemo(() => normalizeTaskFormSchema(formSchema), [formSchema]);
42
+ const required = React.useMemo(() => readRequiredFormFields(formSchema), [formSchema]);
43
+ const resolution = React.useMemo(() => resolveTaskForm(formKey), [formKey]);
44
+ const handleSubmit = React.useCallback(
45
+ (event) => {
46
+ event.preventDefault();
47
+ if (decisions.length === 0) onSubmit();
48
+ },
49
+ [decisions.length, onSubmit]
50
+ );
51
+ const renderField = (name, field) => {
52
+ const label = field.title || name;
53
+ const isRequired = required.includes(name);
54
+ const raw = values[name];
55
+ const options = Array.isArray(field.enum) ? field.enum : null;
56
+ if (options?.length) {
57
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
58
+ /* @__PURE__ */ jsxs(Label, { htmlFor: name, children: [
59
+ label,
60
+ /* @__PURE__ */ jsx(RequiredMark, { required: isRequired })
61
+ ] }),
62
+ /* @__PURE__ */ jsxs(
63
+ Select,
64
+ {
65
+ value: typeof raw === "string" ? raw : "",
66
+ onValueChange: (value) => onFieldChange(name, value),
67
+ disabled: submitting,
68
+ children: [
69
+ /* @__PURE__ */ jsx(SelectTrigger, { id: name, className: "w-full", children: /* @__PURE__ */ jsx(SelectValue, { placeholder: t("workflows.portal.tasks.form.select", "Select\u2026") }) }),
70
+ /* @__PURE__ */ jsx(SelectContent, { children: options.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: String(option), children: String(option) }, String(option))) })
71
+ ]
72
+ }
73
+ ),
74
+ field.description ? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: field.description }) : null
75
+ ] }, name);
76
+ }
77
+ if (field.type === "boolean") {
78
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
79
+ /* @__PURE__ */ jsx(
80
+ Checkbox,
81
+ {
82
+ id: name,
83
+ checked: raw === true,
84
+ onCheckedChange: (checked) => onFieldChange(name, checked === true),
85
+ disabled: submitting,
86
+ className: "mt-0.5"
87
+ }
88
+ ),
89
+ /* @__PURE__ */ jsxs(Label, { htmlFor: name, className: "font-normal", children: [
90
+ label,
91
+ /* @__PURE__ */ jsx(RequiredMark, { required: isRequired }),
92
+ field.description ? /* @__PURE__ */ jsx("span", { className: "mt-0.5 block text-sm text-muted-foreground", children: field.description }) : null
93
+ ] })
94
+ ] }, name);
95
+ }
96
+ const isLongText = field.type === "string" && (field.description ?? "").length > 0 && !field.format;
97
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
98
+ /* @__PURE__ */ jsxs(Label, { htmlFor: name, children: [
99
+ label,
100
+ /* @__PURE__ */ jsx(RequiredMark, { required: isRequired })
101
+ ] }),
102
+ isLongText ? /* @__PURE__ */ jsx(
103
+ Textarea,
104
+ {
105
+ id: name,
106
+ value: typeof raw === "boolean" ? "" : raw ?? "",
107
+ onChange: (event) => onFieldChange(name, event.target.value),
108
+ disabled: submitting,
109
+ rows: 4
110
+ }
111
+ ) : /* @__PURE__ */ jsx(
112
+ Input,
113
+ {
114
+ id: name,
115
+ type: field.type === "number" || field.type === "integer" ? "number" : "text",
116
+ value: typeof raw === "boolean" ? "" : raw ?? "",
117
+ onChange: (event) => onFieldChange(
118
+ name,
119
+ field.type === "number" || field.type === "integer" ? Number(event.target.value) : event.target.value
120
+ ),
121
+ disabled: submitting
122
+ }
123
+ ),
124
+ field.description && !isLongText ? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: field.description }) : null
125
+ ] }, name);
126
+ };
127
+ const properties = schema?.properties ?? {};
128
+ const fieldNames = Object.keys(properties);
129
+ return /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, className: "flex flex-col gap-6", children: [
130
+ resolution.kind === "missing" ? (
131
+ // The author asked for a renderer nobody loaded. Falling back silently
132
+ // would render a form that is not the one they designed, and the person
133
+ // who can notice is the one looking at the screen — so say it out loud.
134
+ /* @__PURE__ */ jsx(
135
+ "div",
136
+ {
137
+ role: "status",
138
+ className: "rounded-lg border border-status-warning-border bg-status-warning-bg p-4 text-sm text-status-warning-text",
139
+ children: t(
140
+ "workflows.portal.tasks.form.rendererMissing",
141
+ 'This task asks for the "{formKey}" form, which is not available here. The standard form is shown instead.',
142
+ { formKey: resolution.formKey }
143
+ )
144
+ }
145
+ )
146
+ ) : null,
147
+ resolution.kind === "registered" ? /* @__PURE__ */ jsx(
148
+ resolution.entry.Renderer,
149
+ {
150
+ context: {
151
+ taskId,
152
+ taskName,
153
+ formKey: resolution.entry.formKey,
154
+ formSchema,
155
+ entityBindings,
156
+ decisions: decisions.map((decision) => ({ id: decision.id })),
157
+ values,
158
+ disabled: submitting
159
+ },
160
+ onChange: (next) => onValuesChange(next)
161
+ }
162
+ ) : /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-5", children: fieldNames.length > 0 ? fieldNames.map((name) => renderField(name, properties[name])) : /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t(
163
+ "workflows.portal.tasks.form.noFields",
164
+ "This task has nothing to fill in \u2014 confirm it below when you are done."
165
+ ) }) }),
166
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
167
+ /* @__PURE__ */ jsx(Label, { htmlFor: "portal-task-comments", children: t("workflows.portal.tasks.form.comments", "Comments") }),
168
+ /* @__PURE__ */ jsx(
169
+ Textarea,
170
+ {
171
+ id: "portal-task-comments",
172
+ value: comments,
173
+ onChange: (event) => onCommentsChange(event.target.value),
174
+ disabled: submitting,
175
+ rows: 3,
176
+ placeholder: t("workflows.portal.tasks.form.commentsPlaceholder", "Anything to add? (optional)")
177
+ }
178
+ )
179
+ ] }),
180
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 sm:flex-row sm:flex-wrap", children: decisions.length > 0 ? decisions.map((decision) => /* @__PURE__ */ jsx(
181
+ Button,
182
+ {
183
+ type: "button",
184
+ disabled: submitting,
185
+ onClick: () => onSubmit(decision.id),
186
+ className: "w-full sm:w-auto",
187
+ children: decision.label
188
+ },
189
+ decision.id
190
+ )) : /* @__PURE__ */ jsx(Button, { type: "submit", disabled: submitting, className: "w-full sm:w-auto", children: submitting ? t("workflows.portal.tasks.form.submitting", "Submitting\u2026") : t("workflows.portal.tasks.form.submit", "Complete task") }) })
191
+ ] });
192
+ }
193
+ export {
194
+ PortalTaskForm
195
+ };
196
+ //# sourceMappingURL=PortalTaskForm.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/modules/workflows/components/portal/PortalTaskForm.tsx"],
4
+ "sourcesContent": ["'use client'\n\n/**\n * The portal's task form.\n *\n * `components/mobile/MobileTaskForm.tsx` is the LAYOUT reference \u2014 it is a\n * backoffice component, it takes a backoffice `UserTaskResponse` and renders\n * backoffice chrome, so it is read and not imported. What is shared is the part\n * that must not diverge: the schema normalizer (`lib/task-form-schema.ts`) and\n * the external renderer registry (`lib/task-form-registry.ts`), so a form\n * authored once renders the same fields on both surfaces.\n *\n * Mobile-first: one column, full-width controls, stacked actions; the two-column\n * arrangement is the `sm:` enhancement, not the base.\n */\n\nimport * as React from 'react'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Input } from '@open-mercato/ui/primitives/input'\nimport { Textarea } from '@open-mercato/ui/primitives/textarea'\nimport { Checkbox } from '@open-mercato/ui/primitives/checkbox'\nimport { Label } from '@open-mercato/ui/primitives/label'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@open-mercato/ui/primitives/select'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { normalizeTaskFormSchema, readRequiredFormFields } from '../../lib/task-form-schema'\nimport { resolveTaskForm } from '../../lib/task-form-registry'\nimport type { JsonSchemaField } from '../../data/types'\n\nexport type PortalTaskFormValue = string | number | boolean\n\nexport type PortalTaskDecision = { id: string; label: string }\n\nexport type PortalTaskFormProps = {\n taskId: string\n taskName: string\n formSchema: unknown\n formKey: string | null\n entityBindings: unknown[] | null\n decisions: PortalTaskDecision[]\n values: Record<string, PortalTaskFormValue>\n comments: string\n submitting: boolean\n onFieldChange: (name: string, value: PortalTaskFormValue) => void\n onValuesChange: (values: Record<string, PortalTaskFormValue>) => void\n onCommentsChange: (value: string) => void\n onSubmit: (decisionId?: string) => void\n}\n\nfunction RequiredMark({ required }: { required: boolean }) {\n const t = useT()\n if (!required) return null\n return (\n <span className=\"ml-1 text-status-error-text\" aria-label={t('workflows.portal.tasks.form.required', 'Required')}>\n *\n </span>\n )\n}\n\nexport function PortalTaskForm(props: PortalTaskFormProps) {\n const t = useT()\n const {\n taskId,\n taskName,\n formSchema,\n formKey,\n entityBindings,\n decisions,\n values,\n comments,\n submitting,\n onFieldChange,\n onValuesChange,\n onCommentsChange,\n onSubmit,\n } = props\n\n const schema = React.useMemo(() => normalizeTaskFormSchema(formSchema), [formSchema])\n const required = React.useMemo(() => readRequiredFormFields(formSchema), [formSchema])\n const resolution = React.useMemo(() => resolveTaskForm(formKey), [formKey])\n\n const handleSubmit = React.useCallback(\n (event: React.FormEvent) => {\n event.preventDefault()\n // A step that offers named outcomes must not also offer an unnamed one, or\n // the recorded decision becomes optional.\n if (decisions.length === 0) onSubmit()\n },\n [decisions.length, onSubmit],\n )\n\n const renderField = (name: string, field: JsonSchemaField) => {\n const label = field.title || name\n const isRequired = required.includes(name)\n const raw = values[name]\n const options = Array.isArray(field.enum) ? field.enum : null\n\n if (options?.length) {\n return (\n <div key={name} className=\"flex flex-col gap-2\">\n <Label htmlFor={name}>\n {label}\n <RequiredMark required={isRequired} />\n </Label>\n <Select\n value={typeof raw === 'string' ? raw : ''}\n onValueChange={(value) => onFieldChange(name, value)}\n disabled={submitting}\n >\n <SelectTrigger id={name} className=\"w-full\">\n <SelectValue placeholder={t('workflows.portal.tasks.form.select', 'Select\u2026')} />\n </SelectTrigger>\n <SelectContent>\n {options.map((option) => (\n <SelectItem key={String(option)} value={String(option)}>\n {String(option)}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n {field.description ? (\n <p className=\"text-sm text-muted-foreground\">{field.description}</p>\n ) : null}\n </div>\n )\n }\n\n if (field.type === 'boolean') {\n return (\n <div key={name} className=\"flex items-start gap-3\">\n <Checkbox\n id={name}\n checked={raw === true}\n onCheckedChange={(checked) => onFieldChange(name, checked === true)}\n disabled={submitting}\n className=\"mt-0.5\"\n />\n <Label htmlFor={name} className=\"font-normal\">\n {label}\n <RequiredMark required={isRequired} />\n {field.description ? (\n <span className=\"mt-0.5 block text-sm text-muted-foreground\">{field.description}</span>\n ) : null}\n </Label>\n </div>\n )\n }\n\n const isLongText = field.type === 'string' && (field.description ?? '').length > 0 && !field.format\n\n return (\n <div key={name} className=\"flex flex-col gap-2\">\n <Label htmlFor={name}>\n {label}\n <RequiredMark required={isRequired} />\n </Label>\n {isLongText ? (\n <Textarea\n id={name}\n value={typeof raw === 'boolean' ? '' : (raw ?? '')}\n onChange={(event) => onFieldChange(name, event.target.value)}\n disabled={submitting}\n rows={4}\n />\n ) : (\n <Input\n id={name}\n type={field.type === 'number' || field.type === 'integer' ? 'number' : 'text'}\n value={typeof raw === 'boolean' ? '' : (raw ?? '')}\n onChange={(event) =>\n onFieldChange(\n name,\n field.type === 'number' || field.type === 'integer'\n ? Number(event.target.value)\n : event.target.value,\n )\n }\n disabled={submitting}\n />\n )}\n {field.description && !isLongText ? (\n <p className=\"text-sm text-muted-foreground\">{field.description}</p>\n ) : null}\n </div>\n )\n }\n\n const properties = schema?.properties ?? {}\n const fieldNames = Object.keys(properties)\n\n return (\n <form onSubmit={handleSubmit} className=\"flex flex-col gap-6\">\n {resolution.kind === 'missing' ? (\n // The author asked for a renderer nobody loaded. Falling back silently\n // would render a form that is not the one they designed, and the person\n // who can notice is the one looking at the screen \u2014 so say it out loud.\n <div\n role=\"status\"\n className=\"rounded-lg border border-status-warning-border bg-status-warning-bg p-4 text-sm text-status-warning-text\"\n >\n {t(\n 'workflows.portal.tasks.form.rendererMissing',\n 'This task asks for the \"{formKey}\" form, which is not available here. The standard form is shown instead.',\n { formKey: resolution.formKey },\n )}\n </div>\n ) : null}\n\n {resolution.kind === 'registered' ? (\n <resolution.entry.Renderer\n context={{\n taskId,\n taskName,\n formKey: resolution.entry.formKey,\n formSchema,\n entityBindings,\n decisions: decisions.map((decision) => ({ id: decision.id })),\n values,\n disabled: submitting,\n }}\n onChange={(next) => onValuesChange(next as Record<string, PortalTaskFormValue>)}\n />\n ) : (\n <div className=\"flex flex-col gap-5\">\n {fieldNames.length > 0 ? (\n fieldNames.map((name) => renderField(name, properties[name] as JsonSchemaField))\n ) : (\n <p className=\"text-sm text-muted-foreground\">\n {t(\n 'workflows.portal.tasks.form.noFields',\n 'This task has nothing to fill in \u2014 confirm it below when you are done.',\n )}\n </p>\n )}\n </div>\n )}\n\n <div className=\"flex flex-col gap-2\">\n <Label htmlFor=\"portal-task-comments\">\n {t('workflows.portal.tasks.form.comments', 'Comments')}\n </Label>\n <Textarea\n id=\"portal-task-comments\"\n value={comments}\n onChange={(event) => onCommentsChange(event.target.value)}\n disabled={submitting}\n rows={3}\n placeholder={t('workflows.portal.tasks.form.commentsPlaceholder', 'Anything to add? (optional)')}\n />\n </div>\n\n <div className=\"flex flex-col gap-2 sm:flex-row sm:flex-wrap\">\n {decisions.length > 0 ? (\n decisions.map((decision) => (\n <Button\n key={decision.id}\n type=\"button\"\n disabled={submitting}\n onClick={() => onSubmit(decision.id)}\n className=\"w-full sm:w-auto\"\n >\n {decision.label}\n </Button>\n ))\n ) : (\n <Button type=\"submit\" disabled={submitting} className=\"w-full sm:w-auto\">\n {submitting\n ? t('workflows.portal.tasks.form.submitting', 'Submitting\u2026')\n : t('workflows.portal.tasks.form.submit', 'Complete task')}\n </Button>\n )}\n </div>\n </form>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,22 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
4
+ import { Badge } from "@open-mercato/ui/primitives/badge";
5
+ import { useLiveAgentActions } from "./useLiveAgentActions.js";
6
+ function AgentActivityPanel({ instanceId, enabled = true }) {
7
+ const t = useT();
8
+ const actions = useLiveAgentActions({ instanceId, enabled });
9
+ if (actions.length === 0) return null;
10
+ return /* @__PURE__ */ jsxs("section", { className: "rounded-md border border-border p-3", "aria-live": "polite", children: [
11
+ /* @__PURE__ */ jsx("h3", { className: "text-sm font-medium text-foreground", children: t("run.agentActivity.title") }),
12
+ /* @__PURE__ */ jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: t("run.agentActivity.subtitle") }),
13
+ /* @__PURE__ */ jsx("ul", { className: "mt-2 space-y-1", children: actions.map((action) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
14
+ /* @__PURE__ */ jsx(Badge, { size: "sm", children: action.kind === "tool_call" ? t("run.agentActivity.toolCall") : t("run.agentActivity.step") }),
15
+ /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: action.name ?? `${t("run.agentActivity.step")} ${action.stepIndex + 1}` })
16
+ ] }, action.key)) })
17
+ ] });
18
+ }
19
+ export {
20
+ AgentActivityPanel
21
+ };
22
+ //# sourceMappingURL=AgentActivityPanel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/modules/workflows/components/run/AgentActivityPanel.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { Badge } from '@open-mercato/ui/primitives/badge'\nimport { useLiveAgentActions } from './useLiveAgentActions'\n\n/**\n * Live \"Agent activity\" section for the run detail (workflows spec Phase 2).\n *\n * Renders the append-only stream of agent actions (steps + tool calls) from\n * `useLiveAgentActions` while an INVOKE_AGENT step runs. Ephemeral by design:\n * it shows nothing until the first action arrives and keeps nothing after the\n * run \u2014 so it renders `null` when idle and is safe to always mount. No token\n * text (the tool loop uses `generateText`, which does not stream tokens).\n */\nexport type AgentActivityPanelProps = {\n instanceId?: string | null\n enabled?: boolean\n}\n\nexport function AgentActivityPanel({ instanceId, enabled = true }: AgentActivityPanelProps) {\n const t = useT()\n const actions = useLiveAgentActions({ instanceId, enabled })\n\n if (actions.length === 0) return null\n\n return (\n <section className=\"rounded-md border border-border p-3\" aria-live=\"polite\">\n <h3 className=\"text-sm font-medium text-foreground\">{t('run.agentActivity.title')}</h3>\n <p className=\"mt-0.5 text-xs text-muted-foreground\">{t('run.agentActivity.subtitle')}</p>\n <ul className=\"mt-2 space-y-1\">\n {actions.map((action) => (\n <li key={action.key} className=\"flex items-center gap-2 text-sm\">\n <Badge size=\"sm\">\n {action.kind === 'tool_call'\n ? t('run.agentActivity.toolCall')\n : t('run.agentActivity.step')}\n </Badge>\n <span className=\"text-muted-foreground\">\n {action.name ?? `${t('run.agentActivity.step')} ${action.stepIndex + 1}`}\n </span>\n </li>\n ))}\n </ul>\n </section>\n )\n}\n"],
5
+ "mappings": ";AA6BM,cAII,YAJJ;AA1BN,SAAS,YAAY;AACrB,SAAS,aAAa;AACtB,SAAS,2BAA2B;AAgB7B,SAAS,mBAAmB,EAAE,YAAY,UAAU,KAAK,GAA4B;AAC1F,QAAM,IAAI,KAAK;AACf,QAAM,UAAU,oBAAoB,EAAE,YAAY,QAAQ,CAAC;AAE3D,MAAI,QAAQ,WAAW,EAAG,QAAO;AAEjC,SACE,qBAAC,aAAQ,WAAU,uCAAsC,aAAU,UACjE;AAAA,wBAAC,QAAG,WAAU,uCAAuC,YAAE,yBAAyB,GAAE;AAAA,IAClF,oBAAC,OAAE,WAAU,wCAAwC,YAAE,4BAA4B,GAAE;AAAA,IACrF,oBAAC,QAAG,WAAU,kBACX,kBAAQ,IAAI,CAAC,WACZ,qBAAC,QAAoB,WAAU,mCAC7B;AAAA,0BAAC,SAAM,MAAK,MACT,iBAAO,SAAS,cACb,EAAE,4BAA4B,IAC9B,EAAE,wBAAwB,GAChC;AAAA,MACA,oBAAC,UAAK,WAAU,yBACb,iBAAO,QAAQ,GAAG,EAAE,wBAAwB,CAAC,IAAI,OAAO,YAAY,CAAC,IACxE;AAAA,SARO,OAAO,GAShB,CACD,GACH;AAAA,KACF;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,106 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import {
5
+ Drawer,
6
+ DrawerBody,
7
+ DrawerContent,
8
+ DrawerDescription,
9
+ DrawerFooter,
10
+ DrawerHeader,
11
+ DrawerTitle
12
+ } from "@open-mercato/ui/primitives/drawer";
13
+ import { Button } from "@open-mercato/ui/primitives/button";
14
+ import { Textarea } from "@open-mercato/ui/primitives/textarea";
15
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
16
+ function RerunStepDialog({
17
+ open,
18
+ onOpenChange,
19
+ stepId,
20
+ stepLabel,
21
+ isSubmitting = false,
22
+ onConfirm
23
+ }) {
24
+ const t = useT();
25
+ const [patchText, setPatchText] = React.useState("");
26
+ const [parseError, setParseError] = React.useState(null);
27
+ React.useEffect(() => {
28
+ if (!open) {
29
+ setPatchText("");
30
+ setParseError(null);
31
+ }
32
+ }, [open]);
33
+ const submit = React.useCallback(() => {
34
+ const trimmed = patchText.trim();
35
+ if (!trimmed) {
36
+ setParseError(null);
37
+ onConfirm(void 0);
38
+ return;
39
+ }
40
+ try {
41
+ const parsed = JSON.parse(trimmed);
42
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
43
+ setParseError(
44
+ t("workflows.rerunStep.patchNotAnObject", "The context patch must be a JSON object.")
45
+ );
46
+ return;
47
+ }
48
+ setParseError(null);
49
+ onConfirm(parsed);
50
+ } catch {
51
+ setParseError(t("workflows.rerunStep.patchInvalid", "The context patch is not valid JSON."));
52
+ }
53
+ }, [patchText, onConfirm, t]);
54
+ return /* @__PURE__ */ jsx(Drawer, { open, onOpenChange, children: /* @__PURE__ */ jsxs(
55
+ DrawerContent,
56
+ {
57
+ "data-testid": "workflow-rerun-step-drawer",
58
+ onKeyDown: (event) => {
59
+ if ((event.metaKey || event.ctrlKey) && event.key === "Enter") {
60
+ event.preventDefault();
61
+ submit();
62
+ }
63
+ },
64
+ closeAriaLabel: t("workflows.rerunStep.close", "Close rerun panel"),
65
+ children: [
66
+ /* @__PURE__ */ jsxs(DrawerHeader, { children: [
67
+ /* @__PURE__ */ jsx(DrawerTitle, { children: t("workflows.rerunStep.title", "Rerun from this step") }),
68
+ /* @__PURE__ */ jsx(DrawerDescription, { children: t(
69
+ "workflows.rerunStep.description",
70
+ "The run continues from {step}. The previous attempt is kept in the history, and the rerun is recorded in the audit log.",
71
+ { step: stepLabel || stepId || "" }
72
+ ) })
73
+ ] }),
74
+ /* @__PURE__ */ jsxs(DrawerBody, { className: "space-y-2", children: [
75
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-foreground", htmlFor: "workflow-rerun-context-patch", children: t("workflows.rerunStep.patchLabel", "Context patch (optional JSON)") }),
76
+ /* @__PURE__ */ jsx(
77
+ Textarea,
78
+ {
79
+ id: "workflow-rerun-context-patch",
80
+ value: patchText,
81
+ onChange: (event) => setPatchText(event.target.value),
82
+ rows: 6,
83
+ className: "font-mono text-xs",
84
+ placeholder: '{\n "amount": 250\n}'
85
+ }
86
+ ),
87
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: t(
88
+ "workflows.rerunStep.patchHint",
89
+ "Merged over the run context. Only the keys you provide change."
90
+ ) }),
91
+ parseError ? /* @__PURE__ */ jsx("p", { className: "text-xs text-status-error-text", children: parseError }) : null
92
+ ] }),
93
+ /* @__PURE__ */ jsxs(DrawerFooter, { children: [
94
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: () => onOpenChange(false), disabled: isSubmitting, children: t("common.cancel") }),
95
+ /* @__PURE__ */ jsx(Button, { type: "button", onClick: submit, disabled: isSubmitting || !stepId, children: t("workflows.rerunStep.confirm", "Rerun step") })
96
+ ] })
97
+ ]
98
+ }
99
+ ) });
100
+ }
101
+ var RerunStepDialog_default = RerunStepDialog;
102
+ export {
103
+ RerunStepDialog,
104
+ RerunStepDialog_default as default
105
+ };
106
+ //# sourceMappingURL=RerunStepDialog.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/modules/workflows/components/run/RerunStepDialog.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport {\n Drawer,\n DrawerBody,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n} from '@open-mercato/ui/primitives/drawer'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Textarea } from '@open-mercato/ui/primitives/textarea'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\n\nexport type RerunStepDialogProps = {\n open: boolean\n onOpenChange: (open: boolean) => void\n stepId: string | null\n stepLabel?: string | null\n isSubmitting?: boolean\n /** Resolves once the rerun has been requested; the host closes the dialog. */\n onConfirm: (contextPatch: Record<string, unknown> | undefined) => void\n}\n\n/**\n * Rerun-from-step confirmation (spec \u00A78.4: \"optionally with edited context\").\n *\n * The patch is authored as JSON and MERGED over the run context \u2014 only the keys\n * present are changed, and the `STEP_RERUN` event records exactly which ones\n * moved. Parsing happens here so an unparseable patch never reaches the API as\n * a silently-dropped edit.\n */\nexport function RerunStepDialog({\n open,\n onOpenChange,\n stepId,\n stepLabel,\n isSubmitting = false,\n onConfirm,\n}: RerunStepDialogProps) {\n const t = useT()\n const [patchText, setPatchText] = React.useState('')\n const [parseError, setParseError] = React.useState<string | null>(null)\n\n React.useEffect(() => {\n if (!open) {\n setPatchText('')\n setParseError(null)\n }\n }, [open])\n\n const submit = React.useCallback(() => {\n const trimmed = patchText.trim()\n if (!trimmed) {\n setParseError(null)\n onConfirm(undefined)\n return\n }\n try {\n const parsed = JSON.parse(trimmed)\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n setParseError(\n t('workflows.rerunStep.patchNotAnObject', 'The context patch must be a JSON object.')\n )\n return\n }\n setParseError(null)\n onConfirm(parsed as Record<string, unknown>)\n } catch {\n setParseError(t('workflows.rerunStep.patchInvalid', 'The context patch is not valid JSON.'))\n }\n }, [patchText, onConfirm, t])\n\n return (\n <Drawer open={open} onOpenChange={onOpenChange}>\n <DrawerContent\n data-testid=\"workflow-rerun-step-drawer\"\n onKeyDown={(event) => {\n if ((event.metaKey || event.ctrlKey) && event.key === 'Enter') {\n event.preventDefault()\n submit()\n }\n }}\n closeAriaLabel={t('workflows.rerunStep.close', 'Close rerun panel')}\n >\n <DrawerHeader>\n <DrawerTitle>{t('workflows.rerunStep.title', 'Rerun from this step')}</DrawerTitle>\n <DrawerDescription>\n {t(\n 'workflows.rerunStep.description',\n 'The run continues from {step}. The previous attempt is kept in the history, and the rerun is recorded in the audit log.',\n { step: stepLabel || stepId || '' }\n )}\n </DrawerDescription>\n </DrawerHeader>\n\n <DrawerBody className=\"space-y-2\">\n <label className=\"text-sm font-medium text-foreground\" htmlFor=\"workflow-rerun-context-patch\">\n {t('workflows.rerunStep.patchLabel', 'Context patch (optional JSON)')}\n </label>\n <Textarea\n id=\"workflow-rerun-context-patch\"\n value={patchText}\n onChange={(event) => setPatchText(event.target.value)}\n rows={6}\n className=\"font-mono text-xs\"\n placeholder={'{\\n \"amount\": 250\\n}'}\n />\n <p className=\"text-xs text-muted-foreground\">\n {t(\n 'workflows.rerunStep.patchHint',\n 'Merged over the run context. Only the keys you provide change.'\n )}\n </p>\n {parseError ? <p className=\"text-xs text-status-error-text\">{parseError}</p> : null}\n </DrawerBody>\n\n <DrawerFooter>\n <Button type=\"button\" variant=\"outline\" onClick={() => onOpenChange(false)} disabled={isSubmitting}>\n {t('common.cancel')}\n </Button>\n <Button type=\"button\" onClick={submit} disabled={isSubmitting || !stepId}>\n {t('workflows.rerunStep.confirm', 'Rerun step')}\n </Button>\n </DrawerFooter>\n </DrawerContent>\n </Drawer>\n )\n}\n\nexport default RerunStepDialog\n"],
5
+ "mappings": ";AAuFQ,SACE,KADF;AArFR,YAAY,WAAW;AACvB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AACvB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AAoBd,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AACF,GAAyB;AACvB,QAAM,IAAI,KAAK;AACf,QAAM,CAAC,WAAW,YAAY,IAAI,MAAM,SAAS,EAAE;AACnD,QAAM,CAAC,YAAY,aAAa,IAAI,MAAM,SAAwB,IAAI;AAEtE,QAAM,UAAU,MAAM;AACpB,QAAI,CAAC,MAAM;AACT,mBAAa,EAAE;AACf,oBAAc,IAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAC,IAAI,CAAC;AAET,QAAM,SAAS,MAAM,YAAY,MAAM;AACrC,UAAM,UAAU,UAAU,KAAK;AAC/B,QAAI,CAAC,SAAS;AACZ,oBAAc,IAAI;AAClB,gBAAU,MAAS;AACnB;AAAA,IACF;AACA,QAAI;AACF,YAAM,SAAS,KAAK,MAAM,OAAO;AACjC,UAAI,CAAC,UAAU,OAAO,WAAW,YAAY,MAAM,QAAQ,MAAM,GAAG;AAClE;AAAA,UACE,EAAE,wCAAwC,0CAA0C;AAAA,QACtF;AACA;AAAA,MACF;AACA,oBAAc,IAAI;AAClB,gBAAU,MAAiC;AAAA,IAC7C,QAAQ;AACN,oBAAc,EAAE,oCAAoC,sCAAsC,CAAC;AAAA,IAC7F;AAAA,EACF,GAAG,CAAC,WAAW,WAAW,CAAC,CAAC;AAE5B,SACE,oBAAC,UAAO,MAAY,cAClB;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,WAAW,CAAC,UAAU;AACpB,aAAK,MAAM,WAAW,MAAM,YAAY,MAAM,QAAQ,SAAS;AAC7D,gBAAM,eAAe;AACrB,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,MACA,gBAAgB,EAAE,6BAA6B,mBAAmB;AAAA,MAElE;AAAA,6BAAC,gBACC;AAAA,8BAAC,eAAa,YAAE,6BAA6B,sBAAsB,GAAE;AAAA,UACrE,oBAAC,qBACE;AAAA,YACC;AAAA,YACA;AAAA,YACA,EAAE,MAAM,aAAa,UAAU,GAAG;AAAA,UACpC,GACF;AAAA,WACF;AAAA,QAEA,qBAAC,cAAW,WAAU,aACpB;AAAA,8BAAC,WAAM,WAAU,uCAAsC,SAAQ,gCAC5D,YAAE,kCAAkC,+BAA+B,GACtE;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACC,IAAG;AAAA,cACH,OAAO;AAAA,cACP,UAAU,CAAC,UAAU,aAAa,MAAM,OAAO,KAAK;AAAA,cACpD,MAAM;AAAA,cACN,WAAU;AAAA,cACV,aAAa;AAAA;AAAA,UACf;AAAA,UACA,oBAAC,OAAE,WAAU,iCACV;AAAA,YACC;AAAA,YACA;AAAA,UACF,GACF;AAAA,UACC,aAAa,oBAAC,OAAE,WAAU,kCAAkC,sBAAW,IAAO;AAAA,WACjF;AAAA,QAEA,qBAAC,gBACC;AAAA,8BAAC,UAAO,MAAK,UAAS,SAAQ,WAAU,SAAS,MAAM,aAAa,KAAK,GAAG,UAAU,cACnF,YAAE,eAAe,GACpB;AAAA,UACA,oBAAC,UAAO,MAAK,UAAS,SAAS,QAAQ,UAAU,gBAAgB,CAAC,QAC/D,YAAE,+BAA+B,YAAY,GAChD;AAAA,WACF;AAAA;AAAA;AAAA,EACF,GACF;AAEJ;AAEA,IAAO,0BAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,30 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
4
+ import { classifyRunEventType } from "../../lib/run-event-tone.js";
5
+ const TONE_CLASSES = {
6
+ success: "bg-status-success-bg text-status-success-text",
7
+ error: "bg-status-error-bg text-status-error-text",
8
+ warning: "bg-status-warning-bg text-status-warning-text",
9
+ info: "bg-status-info-bg text-status-info-text",
10
+ neutral: "bg-status-neutral-bg text-status-neutral-text"
11
+ };
12
+ function runEventBadgeClass(eventType) {
13
+ return TONE_CLASSES[classifyRunEventType(eventType)];
14
+ }
15
+ function RunEventBadge({ eventType, className = "" }) {
16
+ const t = useT();
17
+ const tone = classifyRunEventType(eventType);
18
+ return /* @__PURE__ */ jsx(
19
+ "span",
20
+ {
21
+ className: `inline-flex items-center rounded px-2 py-0.5 text-xs font-medium ${TONE_CLASSES[tone]} ${className}`,
22
+ children: t(`workflows.events.types.${eventType}`, eventType)
23
+ }
24
+ );
25
+ }
26
+ export {
27
+ RunEventBadge,
28
+ runEventBadgeClass
29
+ };
30
+ //# sourceMappingURL=RunEventBadge.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/modules/workflows/components/run/RunEventBadge.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { classifyRunEventType, type RunEventTone } from '../../lib/run-event-tone'\n\nconst TONE_CLASSES: Record<RunEventTone, string> = {\n success: 'bg-status-success-bg text-status-success-text',\n error: 'bg-status-error-bg text-status-error-text',\n warning: 'bg-status-warning-bg text-status-warning-text',\n info: 'bg-status-info-bg text-status-info-text',\n neutral: 'bg-status-neutral-bg text-status-neutral-text',\n}\n\n/**\n * Class-only form, for the mobile overview which takes a class callback rather\n * than a component. Same classification, so the two never disagree.\n */\nexport function runEventBadgeClass(eventType: string): string {\n return TONE_CLASSES[classifyRunEventType(eventType)]\n}\n\n/**\n * The event type IS the label, so this badge is never colour-only by\n * construction \u2014 the tone only reinforces text the reader can already see.\n */\nexport function RunEventBadge({ eventType, className = '' }: { eventType: string; className?: string }) {\n const t = useT()\n const tone = classifyRunEventType(eventType)\n return (\n <span\n className={`inline-flex items-center rounded px-2 py-0.5 text-xs font-medium ${TONE_CLASSES[tone]} ${className}`}\n >\n {t(`workflows.events.types.${eventType}`, eventType)}\n </span>\n )\n}\n"],
5
+ "mappings": ";AA8BI;AA3BJ,SAAS,YAAY;AACrB,SAAS,4BAA+C;AAExD,MAAM,eAA6C;AAAA,EACjD,SAAS;AAAA,EACT,OAAO;AAAA,EACP,SAAS;AAAA,EACT,MAAM;AAAA,EACN,SAAS;AACX;AAMO,SAAS,mBAAmB,WAA2B;AAC5D,SAAO,aAAa,qBAAqB,SAAS,CAAC;AACrD;AAMO,SAAS,cAAc,EAAE,WAAW,YAAY,GAAG,GAA8C;AACtG,QAAM,IAAI,KAAK;AACf,QAAM,OAAO,qBAAqB,SAAS;AAC3C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,oEAAoE,aAAa,IAAI,CAAC,IAAI,SAAS;AAAA,MAE7G,YAAE,0BAA0B,SAAS,IAAI,SAAS;AAAA;AAAA,EACrD;AAEJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,130 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
5
+ import { STATUS_COLORS } from "../../lib/status-colors.js";
6
+ import { formatDurationMs } from "../../lib/run-duration.js";
7
+ import { buildRunGantt } from "../../lib/run-gantt.js";
8
+ import { stepStatusLabelKey } from "./RunStatusBadge.js";
9
+ const BAR_TONES = {
10
+ completed: "completed",
11
+ active: "in_progress",
12
+ failed: "failed",
13
+ skipped: "pending",
14
+ paused: "paused",
15
+ pending: "not_started"
16
+ };
17
+ const LANE_HEIGHT_CLASS = "h-8";
18
+ function BarRow({
19
+ bar,
20
+ label,
21
+ selected,
22
+ onSelect
23
+ }) {
24
+ const colors = STATUS_COLORS[BAR_TONES[bar.status]];
25
+ const widthPercent = Math.max(bar.widthRatio * 100, 0.6);
26
+ const offsetPercent = Math.min(bar.offsetRatio * 100, 100 - widthPercent);
27
+ return /* @__PURE__ */ jsx(
28
+ "button",
29
+ {
30
+ type: "button",
31
+ onClick: onSelect,
32
+ title: label,
33
+ "aria-label": label,
34
+ className: `relative block w-full ${LANE_HEIGHT_CLASS} rounded ${selected ? "ring-2 ring-primary" : ""} focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`,
35
+ children: /* @__PURE__ */ jsx(
36
+ "span",
37
+ {
38
+ className: `absolute top-1/2 flex -translate-y-1/2 items-center justify-start overflow-hidden rounded border px-1 ${colors.bg} ${colors.border} h-5`,
39
+ style: { left: `${offsetPercent}%`, width: `${widthPercent}%` },
40
+ children: bar.spansCollapsedWait ? (
41
+ // Never colour-only: a collapsed bar carries its own hatch pattern.
42
+ /* @__PURE__ */ jsx(
43
+ "span",
44
+ {
45
+ "aria-hidden": "true",
46
+ className: "absolute inset-0 opacity-40",
47
+ style: {
48
+ backgroundImage: "repeating-linear-gradient(45deg, currentColor 0, currentColor 2px, transparent 2px, transparent 6px)"
49
+ }
50
+ }
51
+ )
52
+ ) : null
53
+ }
54
+ )
55
+ }
56
+ );
57
+ }
58
+ function RunGantt({
59
+ stepInstances,
60
+ instanceStartedAt,
61
+ instanceCompletedAt,
62
+ now,
63
+ onSelectStep,
64
+ selectedStepId
65
+ }) {
66
+ const t = useT();
67
+ const model = React.useMemo(
68
+ () => buildRunGantt({ stepInstances, instanceStartedAt, instanceCompletedAt, now }),
69
+ [stepInstances, instanceStartedAt, instanceCompletedAt, now]
70
+ );
71
+ if (model.bars.length === 0) {
72
+ return /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: t("workflows.instances.run.gantt.empty", "No step executions have been recorded for this run yet.") });
73
+ }
74
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
75
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-baseline gap-x-4 gap-y-1 text-xs text-muted-foreground", children: [
76
+ /* @__PURE__ */ jsxs("span", { children: [
77
+ t("workflows.instances.run.gantt.span", "Wall-clock span"),
78
+ ": ",
79
+ formatDurationMs(model.totalDurationMs)
80
+ ] }),
81
+ /* @__PURE__ */ jsxs("span", { children: [
82
+ t("workflows.instances.run.gantt.steps", "Step executions"),
83
+ ": ",
84
+ model.bars.length
85
+ ] }),
86
+ model.collapsedDurationMs > 0 ? /* @__PURE__ */ jsx("span", { className: "text-status-warning-text", children: t("workflows.instances.run.gantt.collapsed", "Waiting time collapsed: {duration}", {
87
+ duration: formatDurationMs(model.collapsedDurationMs)
88
+ }) }) : null
89
+ ] }),
90
+ /* @__PURE__ */ jsx("div", { className: "overflow-x-auto", children: /* @__PURE__ */ jsx("div", { style: { minWidth: "40rem" }, children: model.bars.map((bar) => {
91
+ const durationLabel = formatDurationMs(bar.durationMs);
92
+ const statusKey = stepStatusLabelKey(bar.status);
93
+ const statusLabel = t(statusKey.key, statusKey.fallback);
94
+ const label = t(
95
+ "workflows.instances.run.gantt.barLabel",
96
+ "{step} \u2014 {status}, {duration}",
97
+ { step: bar.stepName, status: statusLabel, duration: durationLabel }
98
+ );
99
+ return /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 border-b border-border/60 py-0.5 last:border-b-0", children: [
100
+ /* @__PURE__ */ jsxs("div", { className: "w-48 shrink-0 truncate text-xs", title: bar.stepName, children: [
101
+ /* @__PURE__ */ jsx("span", { className: "text-foreground", children: bar.stepName }),
102
+ bar.branchInstanceId ? /* @__PURE__ */ jsx("span", { className: "ml-1 text-muted-foreground", children: t("workflows.instances.run.gantt.lane", "lane {lane}", { lane: String(bar.lane + 1) }) }) : null
103
+ ] }),
104
+ /* @__PURE__ */ jsx("div", { className: "min-w-0 flex-1", children: /* @__PURE__ */ jsx(
105
+ BarRow,
106
+ {
107
+ bar,
108
+ label,
109
+ selected: selectedStepId === bar.stepId,
110
+ onSelect: onSelectStep ? () => onSelectStep(bar.stepId) : void 0
111
+ }
112
+ ) }),
113
+ /* @__PURE__ */ jsxs("div", { className: "w-24 shrink-0 text-right text-xs tabular-nums text-muted-foreground", children: [
114
+ durationLabel,
115
+ bar.running ? /* @__PURE__ */ jsx("span", { className: "ml-1 text-status-info-text", children: t("workflows.instances.run.gantt.running", "(running)") }) : null
116
+ ] })
117
+ ] }, bar.key);
118
+ }) }) }),
119
+ model.collapsedSegments.length > 0 ? /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: t(
120
+ "workflows.instances.run.gantt.collapsedHint",
121
+ "Hatched bars span a collapsed waiting period. Durations shown are always the real elapsed time."
122
+ ) }) : null
123
+ ] });
124
+ }
125
+ var RunGantt_default = RunGantt;
126
+ export {
127
+ RunGantt,
128
+ RunGantt_default as default
129
+ };
130
+ //# sourceMappingURL=RunGantt.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/modules/workflows/components/run/RunGantt.tsx"],
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { STATUS_COLORS, type WorkflowStatus, type StepRunStatus } from '../../lib/status-colors'\nimport { formatDurationMs } from '../../lib/run-duration'\nimport { buildRunGantt, type GanttBar } from '../../lib/run-gantt'\nimport { stepStatusLabelKey } from './RunStatusBadge'\nimport type { RunStepInstanceInput } from '../../lib/run-execution'\n\nconst BAR_TONES: Record<StepRunStatus, WorkflowStatus> = {\n completed: 'completed',\n active: 'in_progress',\n failed: 'failed',\n skipped: 'pending',\n paused: 'paused',\n pending: 'not_started',\n}\n\nconst LANE_HEIGHT_CLASS = 'h-8'\n\nexport type RunGanttProps = {\n stepInstances: readonly RunStepInstanceInput[]\n instanceStartedAt?: string | Date | null\n instanceCompletedAt?: string | Date | null\n /** Injected by tests for determinism; production reads the clock. */\n now?: number\n onSelectStep?: (stepId: string) => void\n selectedStepId?: string | null\n}\n\nfunction BarRow({\n bar,\n label,\n selected,\n onSelect,\n}: {\n bar: GanttBar\n label: string\n selected: boolean\n onSelect?: () => void\n}) {\n const colors = STATUS_COLORS[BAR_TONES[bar.status]]\n // A zero-width bar is a real measurement (a step that took under a\n // millisecond), not missing data \u2014 give it a visible minimum so it does not\n // disappear from the chart it is meant to explain.\n const widthPercent = Math.max(bar.widthRatio * 100, 0.6)\n const offsetPercent = Math.min(bar.offsetRatio * 100, 100 - widthPercent)\n\n return (\n <button\n type=\"button\"\n onClick={onSelect}\n title={label}\n aria-label={label}\n className={`relative block w-full ${LANE_HEIGHT_CLASS} rounded ${\n selected ? 'ring-2 ring-primary' : ''\n } focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary`}\n >\n <span\n className={`absolute top-1/2 flex -translate-y-1/2 items-center justify-start overflow-hidden rounded border px-1 ${colors.bg} ${colors.border} h-5`}\n style={{ left: `${offsetPercent}%`, width: `${widthPercent}%` }}\n >\n {bar.spansCollapsedWait ? (\n // Never colour-only: a collapsed bar carries its own hatch pattern.\n <span\n aria-hidden=\"true\"\n className=\"absolute inset-0 opacity-40\"\n style={{\n backgroundImage:\n 'repeating-linear-gradient(45deg, currentColor 0, currentColor 2px, transparent 2px, transparent 6px)',\n }}\n />\n ) : null}\n </span>\n </button>\n )\n}\n\n/**\n * Clock-time Gantt for one run (spec \u00A78.3). The axis is piecewise-linear \u2014\n * see `lib/run-gantt.ts` for why \u2014 and every bar keeps its TRUE duration in\n * its label, so the compression never becomes a reported number.\n */\nexport function RunGantt({\n stepInstances,\n instanceStartedAt,\n instanceCompletedAt,\n now,\n onSelectStep,\n selectedStepId,\n}: RunGanttProps) {\n const t = useT()\n const model = React.useMemo(\n () => buildRunGantt({ stepInstances, instanceStartedAt, instanceCompletedAt, now }),\n [stepInstances, instanceStartedAt, instanceCompletedAt, now]\n )\n\n if (model.bars.length === 0) {\n return (\n <p className=\"text-sm text-muted-foreground\">\n {t('workflows.instances.run.gantt.empty', 'No step executions have been recorded for this run yet.')}\n </p>\n )\n }\n\n return (\n <div className=\"space-y-3\">\n <div className=\"flex flex-wrap items-baseline gap-x-4 gap-y-1 text-xs text-muted-foreground\">\n <span>\n {t('workflows.instances.run.gantt.span', 'Wall-clock span')}: {formatDurationMs(model.totalDurationMs)}\n </span>\n <span>\n {t('workflows.instances.run.gantt.steps', 'Step executions')}: {model.bars.length}\n </span>\n {model.collapsedDurationMs > 0 ? (\n <span className=\"text-status-warning-text\">\n {t('workflows.instances.run.gantt.collapsed', 'Waiting time collapsed: {duration}', {\n duration: formatDurationMs(model.collapsedDurationMs),\n })}\n </span>\n ) : null}\n </div>\n\n <div className=\"overflow-x-auto\">\n <div style={{ minWidth: '40rem' }}>\n {model.bars.map((bar) => {\n const durationLabel = formatDurationMs(bar.durationMs)\n const statusKey = stepStatusLabelKey(bar.status)\n const statusLabel = t(statusKey.key, statusKey.fallback)\n const label = t(\n 'workflows.instances.run.gantt.barLabel',\n '{step} \u2014 {status}, {duration}',\n { step: bar.stepName, status: statusLabel, duration: durationLabel }\n )\n return (\n <div key={bar.key} className=\"flex items-center gap-3 border-b border-border/60 py-0.5 last:border-b-0\">\n <div className=\"w-48 shrink-0 truncate text-xs\" title={bar.stepName}>\n <span className=\"text-foreground\">{bar.stepName}</span>\n {bar.branchInstanceId ? (\n <span className=\"ml-1 text-muted-foreground\">\n {t('workflows.instances.run.gantt.lane', 'lane {lane}', { lane: String(bar.lane + 1) })}\n </span>\n ) : null}\n </div>\n <div className=\"min-w-0 flex-1\">\n <BarRow\n bar={bar}\n label={label}\n selected={selectedStepId === bar.stepId}\n onSelect={onSelectStep ? () => onSelectStep(bar.stepId) : undefined}\n />\n </div>\n <div className=\"w-24 shrink-0 text-right text-xs tabular-nums text-muted-foreground\">\n {durationLabel}\n {bar.running ? (\n <span className=\"ml-1 text-status-info-text\">\n {t('workflows.instances.run.gantt.running', '(running)')}\n </span>\n ) : null}\n </div>\n </div>\n )\n })}\n </div>\n </div>\n\n {model.collapsedSegments.length > 0 ? (\n <p className=\"text-xs text-muted-foreground\">\n {t(\n 'workflows.instances.run.gantt.collapsedHint',\n 'Hatched bars span a collapsed waiting period. Durations shown are always the real elapsed time.'\n )}\n </p>\n ) : null}\n </div>\n )\n}\n\nexport default RunGantt\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }