@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.
- package/.turbo/turbo-build.log +2 -2
- package/AGENTS.md +4 -3
- package/agentic/standalone-guide.md +1 -1
- package/build.mjs +16 -0
- package/dist/generated/entities/action_log/index.js +2 -0
- package/dist/generated/entities/action_log/index.js.map +2 -2
- package/dist/generated/entities/user/index.js +2 -0
- package/dist/generated/entities/user/index.js.map +2 -2
- package/dist/generated/entities/user_task/index.js +14 -0
- package/dist/generated/entities/user_task/index.js.map +2 -2
- package/dist/generated/entities/workflow_definition/index.js +6 -0
- package/dist/generated/entities/workflow_definition/index.js.map +2 -2
- package/dist/generated/entities/workflow_definition_draft/index.js +25 -0
- package/dist/generated/entities/workflow_definition_draft/index.js.map +7 -0
- package/dist/generated/entities/workflow_definition_metric_rollup/index.js +23 -0
- package/dist/generated/entities/workflow_definition_metric_rollup/index.js.map +7 -0
- package/dist/generated/entities/workflow_instance/index.js +4 -0
- package/dist/generated/entities/workflow_instance/index.js.map +2 -2
- package/dist/generated/entities.ids.generated.js +4 -1
- package/dist/generated/entities.ids.generated.js.map +2 -2
- package/dist/generated/entity-fields-registry.js +39 -0
- package/dist/generated/entity-fields-registry.js.map +2 -2
- package/dist/helpers/integration/workflowsFixtures.js +477 -2
- package/dist/helpers/integration/workflowsFixtures.js.map +2 -2
- package/dist/helpers/integration/workflowsUi.js +148 -0
- package/dist/helpers/integration/workflowsUi.js.map +7 -0
- package/dist/modules/attachments/lib/createFromBuffer.js +79 -0
- package/dist/modules/attachments/lib/createFromBuffer.js.map +7 -0
- package/dist/modules/audit_logs/data/entities.js +5 -0
- package/dist/modules/audit_logs/data/entities.js.map +2 -2
- package/dist/modules/audit_logs/data/validators.js +1 -0
- package/dist/modules/audit_logs/data/validators.js.map +2 -2
- package/dist/modules/audit_logs/lib/projections.js +2 -1
- package/dist/modules/audit_logs/lib/projections.js.map +2 -2
- package/dist/modules/audit_logs/migrations/Migration20260625120000.js +15 -0
- package/dist/modules/audit_logs/migrations/Migration20260625120000.js.map +7 -0
- package/dist/modules/audit_logs/services/actionLogService.js +3 -0
- package/dist/modules/audit_logs/services/actionLogService.js.map +2 -2
- package/dist/modules/auth/data/entities.js +6 -0
- package/dist/modules/auth/data/entities.js.map +2 -2
- package/dist/modules/auth/lib/executionPrincipal.js +140 -0
- package/dist/modules/auth/lib/executionPrincipal.js.map +7 -0
- package/dist/modules/auth/migrations/Migration20260625050000.js +13 -0
- package/dist/modules/auth/migrations/Migration20260625050000.js.map +7 -0
- package/dist/modules/business_rules/components/InlineRuleEditor.js +154 -0
- package/dist/modules/business_rules/components/InlineRuleEditor.js.map +7 -0
- package/dist/modules/business_rules/data/validators.js +6 -0
- package/dist/modules/business_rules/data/validators.js.map +2 -2
- package/dist/modules/business_rules/lib/rule-engine.js +5 -3
- package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
- package/dist/modules/catalog/commands/products.js +5 -0
- package/dist/modules/catalog/commands/products.js.map +2 -2
- package/dist/modules/catalog/workflows.js +19 -0
- package/dist/modules/catalog/workflows.js.map +7 -0
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.js +3 -1
- package/dist/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.js.map +2 -2
- package/dist/modules/customer_accounts/cli.js +80 -0
- package/dist/modules/customer_accounts/cli.js.map +7 -0
- package/dist/modules/customer_accounts/lib/customerRoleAclSync.js +59 -0
- package/dist/modules/customer_accounts/lib/customerRoleAclSync.js.map +7 -0
- package/dist/modules/customer_accounts/setup.js +4 -2
- package/dist/modules/customer_accounts/setup.js.map +2 -2
- package/dist/modules/customers/commands/deals.js +4 -0
- package/dist/modules/customers/commands/deals.js.map +2 -2
- package/dist/modules/customers/components/detail/ChangelogEntryRow.js +1 -1
- package/dist/modules/customers/components/detail/ChangelogEntryRow.js.map +2 -2
- package/dist/modules/customers/components/detail/utils.js +2 -0
- package/dist/modules/customers/components/detail/utils.js.map +2 -2
- package/dist/modules/customers/events.js +13 -2
- package/dist/modules/customers/events.js.map +2 -2
- package/dist/modules/customers/lib/link-workflow-task-handler.js +64 -0
- package/dist/modules/customers/lib/link-workflow-task-handler.js.map +7 -0
- package/dist/modules/customers/lib/todoCompatibility.js +1 -1
- package/dist/modules/customers/lib/todoCompatibility.js.map +2 -2
- package/dist/modules/customers/lib/workflowTaskLink.js +9 -0
- package/dist/modules/customers/lib/workflowTaskLink.js.map +7 -0
- package/dist/modules/customers/subscribers/link-workflow-task.js +12 -0
- package/dist/modules/customers/subscribers/link-workflow-task.js.map +7 -0
- package/dist/modules/customers/workflows.js +29 -0
- package/dist/modules/customers/workflows.js.map +7 -0
- package/dist/modules/entities/api/records.js +13 -33
- package/dist/modules/entities/api/records.js.map +3 -3
- package/dist/modules/entities/lib/entityClassification.js +60 -0
- package/dist/modules/entities/lib/entityClassification.js.map +7 -0
- package/dist/modules/sales/commands/documents.js +31 -0
- package/dist/modules/sales/commands/documents.js.map +2 -2
- package/dist/modules/sales/events.js +12 -1
- package/dist/modules/sales/events.js.map +2 -2
- package/dist/modules/sales/workflows.js +12 -1
- package/dist/modules/sales/workflows.js.map +2 -2
- package/dist/modules/seeds/cli.js +199 -0
- package/dist/modules/seeds/cli.js.map +7 -0
- package/dist/modules/seeds/examples/sample-seed.json +26 -0
- package/dist/modules/seeds/index.js +12 -0
- package/dist/modules/seeds/index.js.map +7 -0
- package/dist/modules/workflows/acl.js +96 -0
- package/dist/modules/workflows/acl.js.map +2 -2
- package/dist/modules/workflows/ai-agents.js +50 -0
- package/dist/modules/workflows/ai-agents.js.map +7 -0
- package/dist/modules/workflows/ai-tools/authoring-pack.js +582 -0
- package/dist/modules/workflows/ai-tools/authoring-pack.js.map +7 -0
- package/dist/modules/workflows/ai-tools/types.js +43 -0
- package/dist/modules/workflows/ai-tools/types.js.map +7 -0
- package/dist/modules/workflows/ai-tools.js +10 -0
- package/dist/modules/workflows/ai-tools.js.map +7 -0
- package/dist/modules/workflows/api/command-settings/route.js +137 -0
- package/dist/modules/workflows/api/command-settings/route.js.map +7 -0
- package/dist/modules/workflows/api/commands/route.js +72 -0
- package/dist/modules/workflows/api/commands/route.js.map +7 -0
- package/dist/modules/workflows/api/definitions/[id]/callers/route.js +76 -0
- package/dist/modules/workflows/api/definitions/[id]/callers/route.js.map +7 -0
- package/dist/modules/workflows/api/definitions/[id]/context-schema/route.js +134 -0
- package/dist/modules/workflows/api/definitions/[id]/context-schema/route.js.map +7 -0
- package/dist/modules/workflows/api/definitions/[id]/customize/route.js +5 -1
- package/dist/modules/workflows/api/definitions/[id]/customize/route.js.map +2 -2
- package/dist/modules/workflows/api/definitions/[id]/draft/route.js +286 -0
- package/dist/modules/workflows/api/definitions/[id]/draft/route.js.map +7 -0
- package/dist/modules/workflows/api/definitions/[id]/publish/route.js +207 -0
- package/dist/modules/workflows/api/definitions/[id]/publish/route.js.map +7 -0
- package/dist/modules/workflows/api/definitions/[id]/reset-to-code/route.js +5 -0
- package/dist/modules/workflows/api/definitions/[id]/reset-to-code/route.js.map +2 -2
- package/dist/modules/workflows/api/definitions/[id]/route.js +93 -9
- package/dist/modules/workflows/api/definitions/[id]/route.js.map +3 -3
- package/dist/modules/workflows/api/definitions/[id]/test-step/route.js +210 -0
- package/dist/modules/workflows/api/definitions/[id]/test-step/route.js.map +7 -0
- package/dist/modules/workflows/api/definitions/generate/route.js +233 -0
- package/dist/modules/workflows/api/definitions/generate/route.js.map +7 -0
- package/dist/modules/workflows/api/definitions/route.js +61 -113
- package/dist/modules/workflows/api/definitions/route.js.map +2 -2
- package/dist/modules/workflows/api/definitions/serialize.js +9 -0
- package/dist/modules/workflows/api/definitions/serialize.js.map +2 -2
- package/dist/modules/workflows/api/endpoints/route.js +69 -0
- package/dist/modules/workflows/api/endpoints/route.js.map +7 -0
- package/dist/modules/workflows/api/functions/route.js +73 -0
- package/dist/modules/workflows/api/functions/route.js.map +7 -0
- package/dist/modules/workflows/api/grantable-features/route.js +75 -0
- package/dist/modules/workflows/api/grantable-features/route.js.map +7 -0
- package/dist/modules/workflows/api/instances/[id]/context/route.js +180 -0
- package/dist/modules/workflows/api/instances/[id]/context/route.js.map +7 -0
- package/dist/modules/workflows/api/instances/[id]/rerun-step/route.js +184 -0
- package/dist/modules/workflows/api/instances/[id]/rerun-step/route.js.map +7 -0
- package/dist/modules/workflows/api/instances/[id]/retry/route.js +12 -2
- package/dist/modules/workflows/api/instances/[id]/retry/route.js.map +2 -2
- package/dist/modules/workflows/api/instances/[id]/step-through/route.js +148 -0
- package/dist/modules/workflows/api/instances/[id]/step-through/route.js.map +7 -0
- package/dist/modules/workflows/api/instances/[id]/steps/route.js +123 -0
- package/dist/modules/workflows/api/instances/[id]/steps/route.js.map +7 -0
- package/dist/modules/workflows/api/instances/[id]/would-do/route.js +172 -0
- package/dist/modules/workflows/api/instances/[id]/would-do/route.js.map +7 -0
- package/dist/modules/workflows/api/instances/bulk-replay/route.js +117 -0
- package/dist/modules/workflows/api/instances/bulk-replay/route.js.map +7 -0
- package/dist/modules/workflows/api/instances/failure-queue/route.js +165 -0
- package/dist/modules/workflows/api/instances/failure-queue/route.js.map +7 -0
- package/dist/modules/workflows/api/instances/route.js +94 -3
- package/dist/modules/workflows/api/instances/route.js.map +2 -2
- package/dist/modules/workflows/api/metrics/definitions/route.js +188 -0
- package/dist/modules/workflows/api/metrics/definitions/route.js.map +7 -0
- package/dist/modules/workflows/api/openapi.js +415 -4
- package/dist/modules/workflows/api/openapi.js.map +2 -2
- package/dist/modules/workflows/api/portal/tasks/[id]/complete/route.js +132 -0
- package/dist/modules/workflows/api/portal/tasks/[id]/complete/route.js.map +7 -0
- package/dist/modules/workflows/api/portal/tasks/[id]/route.js +97 -0
- package/dist/modules/workflows/api/portal/tasks/[id]/route.js.map +7 -0
- package/dist/modules/workflows/api/portal/tasks/route.js +126 -0
- package/dist/modules/workflows/api/portal/tasks/route.js.map +7 -0
- package/dist/modules/workflows/api/rule-usage/route.js +80 -0
- package/dist/modules/workflows/api/rule-usage/route.js.map +7 -0
- package/dist/modules/workflows/api/task-settings/route.js +107 -0
- package/dist/modules/workflows/api/task-settings/route.js.map +7 -0
- package/dist/modules/workflows/api/tasks/[id]/claim/route.js +27 -16
- package/dist/modules/workflows/api/tasks/[id]/claim/route.js.map +2 -2
- package/dist/modules/workflows/api/tasks/[id]/complete/route.js +40 -16
- package/dist/modules/workflows/api/tasks/[id]/complete/route.js.map +2 -2
- package/dist/modules/workflows/api/tasks/[id]/reassign/route.js +150 -0
- package/dist/modules/workflows/api/tasks/[id]/reassign/route.js.map +7 -0
- package/dist/modules/workflows/api/tasks/[id]/route.js +39 -6
- package/dist/modules/workflows/api/tasks/[id]/route.js.map +2 -2
- package/dist/modules/workflows/api/tasks/[id]/unclaim/route.js +100 -0
- package/dist/modules/workflows/api/tasks/[id]/unclaim/route.js.map +7 -0
- package/dist/modules/workflows/api/tasks/route.js +37 -6
- package/dist/modules/workflows/api/tasks/route.js.map +2 -2
- package/dist/modules/workflows/api/tasks/serialize.js +83 -0
- package/dist/modules/workflows/api/tasks/serialize.js.map +7 -0
- package/dist/modules/workflows/api/templates/route.js +69 -0
- package/dist/modules/workflows/api/templates/route.js.map +7 -0
- package/dist/modules/workflows/api/work-inbox/next/route.js +129 -0
- package/dist/modules/workflows/api/work-inbox/next/route.js.map +7 -0
- package/dist/modules/workflows/api/work-inbox/route.js +119 -0
- package/dist/modules/workflows/api/work-inbox/route.js.map +7 -0
- package/dist/modules/workflows/backend/config/workflows/page.js +10 -0
- package/dist/modules/workflows/backend/config/workflows/page.js.map +7 -0
- package/dist/modules/workflows/backend/config/workflows/page.meta.js +35 -0
- package/dist/modules/workflows/backend/config/workflows/page.meta.js.map +7 -0
- package/dist/modules/workflows/backend/definitions/[id]/page.js +6 -271
- package/dist/modules/workflows/backend/definitions/[id]/page.js.map +3 -3
- package/dist/modules/workflows/backend/definitions/create/page.js +7 -56
- package/dist/modules/workflows/backend/definitions/create/page.js.map +2 -2
- package/dist/modules/workflows/backend/definitions/create/page.meta.js +1 -1
- package/dist/modules/workflows/backend/definitions/create/page.meta.js.map +2 -2
- package/dist/modules/workflows/backend/definitions/page.js +131 -51
- package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
- package/dist/modules/workflows/backend/definitions/visual-editor/page.js +2606 -677
- package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +3 -3
- package/dist/modules/workflows/backend/instances/[id]/page.js +532 -421
- package/dist/modules/workflows/backend/instances/[id]/page.js.map +2 -2
- package/dist/modules/workflows/backend/instances/[id]/page.meta.js +1 -1
- package/dist/modules/workflows/backend/instances/[id]/page.meta.js.map +1 -1
- package/dist/modules/workflows/backend/instances/failure-queue/page.js +211 -0
- package/dist/modules/workflows/backend/instances/failure-queue/page.js.map +7 -0
- package/dist/modules/workflows/backend/instances/failure-queue/page.meta.js +20 -0
- package/dist/modules/workflows/backend/instances/failure-queue/page.meta.js.map +7 -0
- package/dist/modules/workflows/backend/instances/page.js +159 -22
- package/dist/modules/workflows/backend/instances/page.js.map +2 -2
- package/dist/modules/workflows/backend/instances/page.meta.js +1 -1
- package/dist/modules/workflows/backend/instances/page.meta.js.map +1 -1
- package/dist/modules/workflows/backend/tasks/[id]/page.js +553 -392
- package/dist/modules/workflows/backend/tasks/[id]/page.js.map +3 -3
- package/dist/modules/workflows/backend/tasks/page.js +8 -250
- package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
- package/dist/modules/workflows/backend/tasks/page.meta.js +1 -0
- package/dist/modules/workflows/backend/tasks/page.meta.js.map +2 -2
- package/dist/modules/workflows/backend/work-inbox/page.js +399 -0
- package/dist/modules/workflows/backend/work-inbox/page.js.map +7 -0
- package/dist/modules/workflows/backend/work-inbox/page.meta.js +19 -0
- package/dist/modules/workflows/backend/work-inbox/page.meta.js.map +7 -0
- package/dist/modules/workflows/cli.js +1 -1
- package/dist/modules/workflows/cli.js.map +2 -2
- package/dist/modules/workflows/commands/tasks.js +81 -0
- package/dist/modules/workflows/commands/tasks.js.map +7 -0
- package/dist/modules/workflows/components/ActivitiesEditor.js +281 -287
- package/dist/modules/workflows/components/ActivitiesEditor.js.map +2 -2
- package/dist/modules/workflows/components/ActivityEditDialog.js +220 -0
- package/dist/modules/workflows/components/ActivityEditDialog.js.map +7 -0
- package/dist/modules/workflows/components/AgentSelector.js +115 -0
- package/dist/modules/workflows/components/AgentSelector.js.map +7 -0
- package/dist/modules/workflows/components/AnnotationEditDialog.js +110 -0
- package/dist/modules/workflows/components/AnnotationEditDialog.js.map +7 -0
- package/dist/modules/workflows/components/BusinessRuleUsagePanel.js +71 -0
- package/dist/modules/workflows/components/BusinessRuleUsagePanel.js.map +7 -0
- package/dist/modules/workflows/components/BusinessRulesSelector.js +151 -93
- package/dist/modules/workflows/components/BusinessRulesSelector.js.map +2 -2
- package/dist/modules/workflows/components/ConfigJsonTextarea.js +85 -0
- package/dist/modules/workflows/components/ConfigJsonTextarea.js.map +7 -0
- package/dist/modules/workflows/components/ContextSchemaEditor.js +150 -0
- package/dist/modules/workflows/components/ContextSchemaEditor.js.map +7 -0
- package/dist/modules/workflows/components/DefinitionErrorHandlerField.js +102 -0
- package/dist/modules/workflows/components/DefinitionErrorHandlerField.js.map +7 -0
- package/dist/modules/workflows/components/DefinitionMetadataDrawer.js +377 -0
- package/dist/modules/workflows/components/DefinitionMetadataDrawer.js.map +7 -0
- package/dist/modules/workflows/components/DefinitionMetricsCells.js +132 -0
- package/dist/modules/workflows/components/DefinitionMetricsCells.js.map +7 -0
- package/dist/modules/workflows/components/DefinitionTriggersEditor.js +307 -216
- package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +2 -2
- package/dist/modules/workflows/components/EdgeEditDialog.js +11 -18
- package/dist/modules/workflows/components/EdgeEditDialog.js.map +2 -2
- package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js +112 -72
- package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js.map +2 -2
- package/dist/modules/workflows/components/InputDataPanel.js +128 -0
- package/dist/modules/workflows/components/InputDataPanel.js.map +7 -0
- package/dist/modules/workflows/components/InspectorPanel.js +161 -0
- package/dist/modules/workflows/components/InspectorPanel.js.map +7 -0
- package/dist/modules/workflows/components/NodeEditDialog.js +363 -41
- package/dist/modules/workflows/components/NodeEditDialog.js.map +2 -2
- package/dist/modules/workflows/components/NodeEditDialogCrudForm.js +714 -159
- package/dist/modules/workflows/components/NodeEditDialogCrudForm.js.map +2 -2
- package/dist/modules/workflows/components/StepsEditor.js.map +2 -2
- package/dist/modules/workflows/components/TemplateGalleryDialog.js +148 -0
- package/dist/modules/workflows/components/TemplateGalleryDialog.js.map +7 -0
- package/dist/modules/workflows/components/TransitionsEditor.js +80 -74
- package/dist/modules/workflows/components/TransitionsEditor.js.map +2 -2
- package/dist/modules/workflows/components/TriggersDialog.js +53 -0
- package/dist/modules/workflows/components/TriggersDialog.js.map +7 -0
- package/dist/modules/workflows/components/TriggersEditor.js +331 -0
- package/dist/modules/workflows/components/TriggersEditor.js.map +7 -0
- package/dist/modules/workflows/components/WorkflowAiDraftDialog.js +278 -0
- package/dist/modules/workflows/components/WorkflowAiDraftDialog.js.map +7 -0
- package/dist/modules/workflows/components/WorkflowCodeView.js +173 -0
- package/dist/modules/workflows/components/WorkflowCodeView.js.map +7 -0
- package/dist/modules/workflows/components/WorkflowCommandPalette.js +62 -0
- package/dist/modules/workflows/components/WorkflowCommandPalette.js.map +7 -0
- package/dist/modules/workflows/components/WorkflowCompensationGhostEdge.js +70 -0
- package/dist/modules/workflows/components/WorkflowCompensationGhostEdge.js.map +7 -0
- package/dist/modules/workflows/components/WorkflowDataMappingEdge.js +36 -0
- package/dist/modules/workflows/components/WorkflowDataMappingEdge.js.map +7 -0
- package/dist/modules/workflows/components/WorkflowGraph.js +4 -2
- package/dist/modules/workflows/components/WorkflowGraph.js.map +2 -2
- package/dist/modules/workflows/components/WorkflowGraphImpl.js +324 -86
- package/dist/modules/workflows/components/WorkflowGraphImpl.js.map +3 -3
- package/dist/modules/workflows/components/WorkflowIconPicker.js +109 -0
- package/dist/modules/workflows/components/WorkflowIconPicker.js.map +7 -0
- package/dist/modules/workflows/components/WorkflowLegend.js +45 -29
- package/dist/modules/workflows/components/WorkflowLegend.js.map +2 -2
- package/dist/modules/workflows/components/WorkflowNodeCard.js +221 -22
- package/dist/modules/workflows/components/WorkflowNodeCard.js.map +2 -2
- package/dist/modules/workflows/components/WorkflowRouteChips.js +111 -0
- package/dist/modules/workflows/components/WorkflowRouteChips.js.map +7 -0
- package/dist/modules/workflows/components/WorkflowSelector.js +108 -88
- package/dist/modules/workflows/components/WorkflowSelector.js.map +2 -2
- package/dist/modules/workflows/components/WorkflowTransitionEdge.js +61 -11
- package/dist/modules/workflows/components/WorkflowTransitionEdge.js.map +2 -2
- package/dist/modules/workflows/components/WorkflowTransitionLabel.js +15 -5
- package/dist/modules/workflows/components/WorkflowTransitionLabel.js.map +2 -2
- package/dist/modules/workflows/components/fields/ActivityArrayEditor.js +88 -21
- package/dist/modules/workflows/components/fields/ActivityArrayEditor.js.map +2 -2
- package/dist/modules/workflows/components/fields/ActivityConfigFields.js +615 -0
- package/dist/modules/workflows/components/fields/ActivityConfigFields.js.map +7 -0
- package/dist/modules/workflows/components/fields/ActivityTestPanel.js +191 -0
- package/dist/modules/workflows/components/fields/ActivityTestPanel.js.map +7 -0
- package/dist/modules/workflows/components/fields/AgentInvokeConfigField.js +488 -0
- package/dist/modules/workflows/components/fields/AgentInvokeConfigField.js.map +7 -0
- package/dist/modules/workflows/components/fields/AgentReviewOnBreachField.js +61 -0
- package/dist/modules/workflows/components/fields/AgentReviewOnBreachField.js.map +7 -0
- package/dist/modules/workflows/components/fields/BranchingRoutesEditor.js +227 -0
- package/dist/modules/workflows/components/fields/BranchingRoutesEditor.js.map +7 -0
- package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js +37 -4
- package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js.map +2 -2
- package/dist/modules/workflows/components/fields/CommandPicker.js +111 -0
- package/dist/modules/workflows/components/fields/CommandPicker.js.map +7 -0
- package/dist/modules/workflows/components/fields/EndpointPicker.js +235 -0
- package/dist/modules/workflows/components/fields/EndpointPicker.js.map +7 -0
- package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js +2 -2
- package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js.map +2 -2
- package/dist/modules/workflows/components/fields/FunctionPicker.js +55 -0
- package/dist/modules/workflows/components/fields/FunctionPicker.js.map +7 -0
- package/dist/modules/workflows/components/fields/MappingArrayEditor.js +38 -15
- package/dist/modules/workflows/components/fields/MappingArrayEditor.js.map +2 -2
- package/dist/modules/workflows/components/fields/PortFieldArrayEditor.js +206 -0
- package/dist/modules/workflows/components/fields/PortFieldArrayEditor.js.map +7 -0
- package/dist/modules/workflows/components/fields/RolesMultiSelect.js +53 -0
- package/dist/modules/workflows/components/fields/RolesMultiSelect.js.map +7 -0
- package/dist/modules/workflows/components/fields/RouteOrderEditor.js +130 -0
- package/dist/modules/workflows/components/fields/RouteOrderEditor.js.map +7 -0
- package/dist/modules/workflows/components/fields/SchemaBuilderDialog.js +104 -0
- package/dist/modules/workflows/components/fields/SchemaBuilderDialog.js.map +7 -0
- package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js +2 -2
- package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js.map +2 -2
- package/dist/modules/workflows/components/fields/TaskAssignmentField.js +210 -0
- package/dist/modules/workflows/components/fields/TaskAssignmentField.js.map +7 -0
- package/dist/modules/workflows/components/fields/TaskDeadlineFields.js +126 -0
- package/dist/modules/workflows/components/fields/TaskDeadlineFields.js.map +7 -0
- package/dist/modules/workflows/components/fields/TaskDecisionsField.js +218 -0
- package/dist/modules/workflows/components/fields/TaskDecisionsField.js.map +7 -0
- package/dist/modules/workflows/components/fields/TaskEntityBindingsField.js +114 -0
- package/dist/modules/workflows/components/fields/TaskEntityBindingsField.js.map +7 -0
- package/dist/modules/workflows/components/fields/TemplateTextControl.js +64 -0
- package/dist/modules/workflows/components/fields/TemplateTextControl.js.map +7 -0
- package/dist/modules/workflows/components/fields/VariablePickerButton.js +121 -0
- package/dist/modules/workflows/components/fields/VariablePickerButton.js.map +7 -0
- package/dist/modules/workflows/components/fields/ledgerDropTarget.js +35 -0
- package/dist/modules/workflows/components/fields/ledgerDropTarget.js.map +7 -0
- package/dist/modules/workflows/components/fields/useActivityTypeOptions.js +16 -0
- package/dist/modules/workflows/components/fields/useActivityTypeOptions.js.map +7 -0
- package/dist/modules/workflows/components/formConfig.js +39 -10
- package/dist/modules/workflows/components/formConfig.js.map +2 -2
- package/dist/modules/workflows/components/mobile/MobileDefinitionDetail.js.map +2 -2
- package/dist/modules/workflows/components/mobile/MobileMetadataSheet.js.map +2 -2
- package/dist/modules/workflows/components/mobile/MobileTaskForm.js +29 -2
- package/dist/modules/workflows/components/mobile/MobileTaskForm.js.map +2 -2
- package/dist/modules/workflows/components/mobile/MobileVisualEditor.js +64 -65
- package/dist/modules/workflows/components/mobile/MobileVisualEditor.js.map +2 -2
- package/dist/modules/workflows/components/nodes/AnnotationGroupNode.js +64 -0
- package/dist/modules/workflows/components/nodes/AnnotationGroupNode.js.map +7 -0
- package/dist/modules/workflows/components/nodes/AutomatedNode.js +24 -16
- package/dist/modules/workflows/components/nodes/AutomatedNode.js.map +2 -2
- package/dist/modules/workflows/components/nodes/EndNode.js +13 -12
- package/dist/modules/workflows/components/nodes/EndNode.js.map +2 -2
- package/dist/modules/workflows/components/nodes/ErrorOutputHandle.js +29 -0
- package/dist/modules/workflows/components/nodes/ErrorOutputHandle.js.map +7 -0
- package/dist/modules/workflows/components/nodes/IfElseNode.js +51 -0
- package/dist/modules/workflows/components/nodes/IfElseNode.js.map +7 -0
- package/dist/modules/workflows/components/nodes/InvokeAgentNode.js +122 -0
- package/dist/modules/workflows/components/nodes/InvokeAgentNode.js.map +7 -0
- package/dist/modules/workflows/components/nodes/NodeOutcomeRows.js +100 -0
- package/dist/modules/workflows/components/nodes/NodeOutcomeRows.js.map +7 -0
- package/dist/modules/workflows/components/nodes/ParallelForkNode.js +18 -14
- package/dist/modules/workflows/components/nodes/ParallelForkNode.js.map +2 -2
- package/dist/modules/workflows/components/nodes/ParallelJoinNode.js +18 -14
- package/dist/modules/workflows/components/nodes/ParallelJoinNode.js.map +2 -2
- package/dist/modules/workflows/components/nodes/StartNode.js +66 -15
- package/dist/modules/workflows/components/nodes/StartNode.js.map +2 -2
- package/dist/modules/workflows/components/nodes/StickyNoteNode.js +54 -0
- package/dist/modules/workflows/components/nodes/StickyNoteNode.js.map +7 -0
- package/dist/modules/workflows/components/nodes/SubWorkflowNode.js +107 -41
- package/dist/modules/workflows/components/nodes/SubWorkflowNode.js.map +2 -2
- package/dist/modules/workflows/components/nodes/SwitchNode.js +51 -0
- package/dist/modules/workflows/components/nodes/SwitchNode.js.map +7 -0
- package/dist/modules/workflows/components/nodes/TriggerCap.js +65 -0
- package/dist/modules/workflows/components/nodes/TriggerCap.js.map +7 -0
- package/dist/modules/workflows/components/nodes/TriggerNode.js +111 -0
- package/dist/modules/workflows/components/nodes/TriggerNode.js.map +7 -0
- package/dist/modules/workflows/components/nodes/UserTaskNode.js +43 -17
- package/dist/modules/workflows/components/nodes/UserTaskNode.js.map +2 -2
- package/dist/modules/workflows/components/nodes/WaitForConditionNode.js +53 -0
- package/dist/modules/workflows/components/nodes/WaitForConditionNode.js.map +7 -0
- package/dist/modules/workflows/components/nodes/WaitForSignalNode.js +21 -15
- package/dist/modules/workflows/components/nodes/WaitForSignalNode.js.map +2 -2
- package/dist/modules/workflows/components/nodes/WaitForTimerNode.js +21 -15
- package/dist/modules/workflows/components/nodes/WaitForTimerNode.js.map +2 -2
- package/dist/modules/workflows/components/nodes/index.js +14 -0
- package/dist/modules/workflows/components/nodes/index.js.map +2 -2
- package/dist/modules/workflows/components/portal/PortalTaskForm.js +196 -0
- package/dist/modules/workflows/components/portal/PortalTaskForm.js.map +7 -0
- package/dist/modules/workflows/components/run/AgentActivityPanel.js +22 -0
- package/dist/modules/workflows/components/run/AgentActivityPanel.js.map +7 -0
- package/dist/modules/workflows/components/run/RerunStepDialog.js +106 -0
- package/dist/modules/workflows/components/run/RerunStepDialog.js.map +7 -0
- package/dist/modules/workflows/components/run/RunEventBadge.js +30 -0
- package/dist/modules/workflows/components/run/RunEventBadge.js.map +7 -0
- package/dist/modules/workflows/components/run/RunGantt.js +130 -0
- package/dist/modules/workflows/components/run/RunGantt.js.map +7 -0
- package/dist/modules/workflows/components/run/RunStatusBadge.js +82 -0
- package/dist/modules/workflows/components/run/RunStatusBadge.js.map +7 -0
- package/dist/modules/workflows/components/run/RunStepInspector.js +116 -0
- package/dist/modules/workflows/components/run/RunStepInspector.js.map +7 -0
- package/dist/modules/workflows/components/run/WouldDoReport.js +52 -0
- package/dist/modules/workflows/components/run/WouldDoReport.js.map +7 -0
- package/dist/modules/workflows/components/run/useAgentLabels.js +28 -0
- package/dist/modules/workflows/components/run/useAgentLabels.js.map +7 -0
- package/dist/modules/workflows/components/run/useLastRunOverlay.js +89 -0
- package/dist/modules/workflows/components/run/useLastRunOverlay.js.map +7 -0
- package/dist/modules/workflows/components/run/useLiveAgentActions.js +41 -0
- package/dist/modules/workflows/components/run/useLiveAgentActions.js.map +7 -0
- package/dist/modules/workflows/components/run/useLiveRunUpdates.js +57 -0
- package/dist/modules/workflows/components/run/useLiveRunUpdates.js.map +7 -0
- package/dist/modules/workflows/components/settings/CommandSettingsPageClient.js +156 -0
- package/dist/modules/workflows/components/settings/CommandSettingsPageClient.js.map +7 -0
- package/dist/modules/workflows/components/work-inbox/EntityContextPanel.js +72 -0
- package/dist/modules/workflows/components/work-inbox/EntityContextPanel.js.map +7 -0
- package/dist/modules/workflows/components/work-inbox/ReassignTaskDialog.js +156 -0
- package/dist/modules/workflows/components/work-inbox/ReassignTaskDialog.js.map +7 -0
- package/dist/modules/workflows/components/work-inbox/StatusChip.js +46 -0
- package/dist/modules/workflows/components/work-inbox/StatusChip.js.map +7 -0
- package/dist/modules/workflows/components/work-inbox/TaskActionNotice.js +53 -0
- package/dist/modules/workflows/components/work-inbox/TaskActionNotice.js.map +7 -0
- package/dist/modules/workflows/components/work-inbox/TaskFormFields.js +261 -0
- package/dist/modules/workflows/components/work-inbox/TaskFormFields.js.map +7 -0
- package/dist/modules/workflows/components/work-inbox/WorkInboxEmptyState.js +27 -0
- package/dist/modules/workflows/components/work-inbox/WorkInboxEmptyState.js.map +7 -0
- package/dist/modules/workflows/data/activity-config-schemas.js +191 -0
- package/dist/modules/workflows/data/activity-config-schemas.js.map +7 -0
- package/dist/modules/workflows/data/activity-config-warnings.js +42 -0
- package/dist/modules/workflows/data/activity-config-warnings.js.map +7 -0
- package/dist/modules/workflows/data/branching-route-warnings.js +65 -0
- package/dist/modules/workflows/data/branching-route-warnings.js.map +7 -0
- package/dist/modules/workflows/data/entities.js +144 -4
- package/dist/modules/workflows/data/entities.js.map +2 -2
- package/dist/modules/workflows/data/metrics-validators.js +35 -0
- package/dist/modules/workflows/data/metrics-validators.js.map +7 -0
- package/dist/modules/workflows/data/task-primitives.js +14 -0
- package/dist/modules/workflows/data/task-primitives.js.map +7 -0
- package/dist/modules/workflows/data/validators.js +504 -61
- package/dist/modules/workflows/data/validators.js.map +3 -3
- package/dist/modules/workflows/di.js +16 -1
- package/dist/modules/workflows/di.js.map +2 -2
- package/dist/modules/workflows/events.js +66 -8
- package/dist/modules/workflows/events.js.map +2 -2
- package/dist/modules/workflows/examples/oze-residential-install-60-nodes.json +1545 -0
- package/dist/modules/workflows/examples/sales-pipeline-definition.json +35 -35
- package/dist/modules/workflows/examples/templates/lead-to-install.json +160 -0
- package/dist/modules/workflows/examples/templates/order-approval.json +230 -0
- package/dist/modules/workflows/examples/templates/task-escalation.json +110 -0
- package/dist/modules/workflows/examples/templates/webhook-integration.json +113 -0
- package/dist/modules/workflows/extension-points.js +1 -1
- package/dist/modules/workflows/extension-points.js.map +2 -2
- package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.js +144 -0
- package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.js.map +7 -0
- package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.meta.js +12 -0
- package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.meta.js.map +7 -0
- package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/page.js +114 -0
- package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/page.js.map +7 -0
- package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/page.meta.js +18 -0
- package/dist/modules/workflows/frontend/[orgSlug]/portal/tasks/page.meta.js.map +7 -0
- package/dist/modules/workflows/lib/activity-executor.js +505 -137
- package/dist/modules/workflows/lib/activity-executor.js.map +3 -3
- package/dist/modules/workflows/lib/activity-queue-types.js +3 -1
- package/dist/modules/workflows/lib/activity-queue-types.js.map +2 -2
- package/dist/modules/workflows/lib/activity-registry-bootstrap.js +2 -0
- package/dist/modules/workflows/lib/activity-registry-bootstrap.js.map +7 -0
- package/dist/modules/workflows/lib/activity-registry.js +27 -0
- package/dist/modules/workflows/lib/activity-registry.js.map +7 -0
- package/dist/modules/workflows/lib/activity-types.js +291 -0
- package/dist/modules/workflows/lib/activity-types.js.map +7 -0
- package/dist/modules/workflows/lib/activity-worker-handler.js +456 -32
- package/dist/modules/workflows/lib/activity-worker-handler.js.map +3 -3
- package/dist/modules/workflows/lib/advanced-config.js +31 -0
- package/dist/modules/workflows/lib/advanced-config.js.map +7 -0
- package/dist/modules/workflows/lib/agent-disposition-task.js +198 -0
- package/dist/modules/workflows/lib/agent-disposition-task.js.map +7 -0
- package/dist/modules/workflows/lib/agent-outcome-paths.js +82 -0
- package/dist/modules/workflows/lib/agent-outcome-paths.js.map +7 -0
- package/dist/modules/workflows/lib/agent-result-mapping.js +54 -0
- package/dist/modules/workflows/lib/agent-result-mapping.js.map +7 -0
- package/dist/modules/workflows/lib/agent-review-inspector.js +61 -0
- package/dist/modules/workflows/lib/agent-review-inspector.js.map +7 -0
- package/dist/modules/workflows/lib/agent-review.js +66 -0
- package/dist/modules/workflows/lib/agent-review.js.map +7 -0
- package/dist/modules/workflows/lib/ai-authoring.js +155 -0
- package/dist/modules/workflows/lib/ai-authoring.js.map +7 -0
- package/dist/modules/workflows/lib/ai-draft-runner.js +43 -0
- package/dist/modules/workflows/lib/ai-draft-runner.js.map +7 -0
- package/dist/modules/workflows/lib/annotation-events.js +10 -0
- package/dist/modules/workflows/lib/annotation-events.js.map +7 -0
- package/dist/modules/workflows/lib/branching-routes.js +182 -0
- package/dist/modules/workflows/lib/branching-routes.js.map +7 -0
- package/dist/modules/workflows/lib/breach-routing.js +50 -0
- package/dist/modules/workflows/lib/breach-routing.js.map +7 -0
- package/dist/modules/workflows/lib/bulk-replay.js +101 -0
- package/dist/modules/workflows/lib/bulk-replay.js.map +7 -0
- package/dist/modules/workflows/lib/business-rule-usage.js +91 -0
- package/dist/modules/workflows/lib/business-rule-usage.js.map +7 -0
- package/dist/modules/workflows/lib/caller-graph.js +53 -0
- package/dist/modules/workflows/lib/caller-graph.js.map +7 -0
- package/dist/modules/workflows/lib/code-view-apply.js +86 -0
- package/dist/modules/workflows/lib/code-view-apply.js.map +7 -0
- package/dist/modules/workflows/lib/collect-validation-issues.js +164 -0
- package/dist/modules/workflows/lib/collect-validation-issues.js.map +7 -0
- package/dist/modules/workflows/lib/compensation-ghosts.js +72 -0
- package/dist/modules/workflows/lib/compensation-ghosts.js.map +7 -0
- package/dist/modules/workflows/lib/component-guard.js +7 -0
- package/dist/modules/workflows/lib/component-guard.js.map +7 -0
- package/dist/modules/workflows/lib/condition-handler.js +443 -0
- package/dist/modules/workflows/lib/condition-handler.js.map +7 -0
- package/dist/modules/workflows/lib/context-ledger.js +448 -0
- package/dist/modules/workflows/lib/context-ledger.js.map +7 -0
- package/dist/modules/workflows/lib/crud-form-dialogs-flag.js +8 -0
- package/dist/modules/workflows/lib/crud-form-dialogs-flag.js.map +7 -0
- package/dist/modules/workflows/lib/data-edge-mapping.js +63 -0
- package/dist/modules/workflows/lib/data-edge-mapping.js.map +7 -0
- package/dist/modules/workflows/lib/definition-context-schema.js +56 -0
- package/dist/modules/workflows/lib/definition-context-schema.js.map +7 -0
- package/dist/modules/workflows/lib/definition-edit-safety.js +123 -0
- package/dist/modules/workflows/lib/definition-edit-safety.js.map +7 -0
- package/dist/modules/workflows/lib/definition-error-body.js +33 -0
- package/dist/modules/workflows/lib/definition-error-body.js.map +7 -0
- package/dist/modules/workflows/lib/definition-evaluation.js +79 -0
- package/dist/modules/workflows/lib/definition-evaluation.js.map +7 -0
- package/dist/modules/workflows/lib/definition-grant.js +90 -0
- package/dist/modules/workflows/lib/definition-grant.js.map +7 -0
- package/dist/modules/workflows/lib/definition-json-locations.js +139 -0
- package/dist/modules/workflows/lib/definition-json-locations.js.map +7 -0
- package/dist/modules/workflows/lib/definition-payload.js +31 -0
- package/dist/modules/workflows/lib/definition-payload.js.map +7 -0
- package/dist/modules/workflows/lib/draft-restore.js +49 -0
- package/dist/modules/workflows/lib/draft-restore.js.map +7 -0
- package/dist/modules/workflows/lib/dry-run.js +106 -0
- package/dist/modules/workflows/lib/dry-run.js.map +7 -0
- package/dist/modules/workflows/lib/duration.js +66 -17
- package/dist/modules/workflows/lib/duration.js.map +2 -2
- package/dist/modules/workflows/lib/edge-reattachment.js +79 -0
- package/dist/modules/workflows/lib/edge-reattachment.js.map +7 -0
- package/dist/modules/workflows/lib/edgeFormTransforms.js +7 -11
- package/dist/modules/workflows/lib/edgeFormTransforms.js.map +2 -2
- package/dist/modules/workflows/lib/editor-annotations.js +195 -0
- package/dist/modules/workflows/lib/editor-annotations.js.map +7 -0
- package/dist/modules/workflows/lib/editor-commands.js +103 -0
- package/dist/modules/workflows/lib/editor-commands.js.map +7 -0
- package/dist/modules/workflows/lib/editor-history.js +51 -0
- package/dist/modules/workflows/lib/editor-history.js.map +7 -0
- package/dist/modules/workflows/lib/endpoint-catalog.js +181 -0
- package/dist/modules/workflows/lib/endpoint-catalog.js.map +7 -0
- package/dist/modules/workflows/lib/endpoint-path.js +90 -0
- package/dist/modules/workflows/lib/endpoint-path.js.map +7 -0
- package/dist/modules/workflows/lib/engine-version.js +42 -0
- package/dist/modules/workflows/lib/engine-version.js.map +7 -0
- package/dist/modules/workflows/lib/error-handler.js +132 -0
- package/dist/modules/workflows/lib/error-handler.js.map +7 -0
- package/dist/modules/workflows/lib/error-routing.js +104 -0
- package/dist/modules/workflows/lib/error-routing.js.map +7 -0
- package/dist/modules/workflows/lib/event-logger.js +23 -0
- package/dist/modules/workflows/lib/event-logger.js.map +2 -2
- package/dist/modules/workflows/lib/expression-refs.js +168 -0
- package/dist/modules/workflows/lib/expression-refs.js.map +7 -0
- package/dist/modules/workflows/lib/failure-grouping.js +62 -0
- package/dist/modules/workflows/lib/failure-grouping.js.map +7 -0
- package/dist/modules/workflows/lib/find-definition.js +1 -0
- package/dist/modules/workflows/lib/find-definition.js.map +2 -2
- package/dist/modules/workflows/lib/flow-logic-warnings.js +338 -0
- package/dist/modules/workflows/lib/flow-logic-warnings.js.map +7 -0
- package/dist/modules/workflows/lib/graph-utils.js +328 -77
- package/dist/modules/workflows/lib/graph-utils.js.map +2 -2
- package/dist/modules/workflows/lib/icon-search.js +32 -0
- package/dist/modules/workflows/lib/icon-search.js.map +7 -0
- package/dist/modules/workflows/lib/insert-at-cursor.js +26 -0
- package/dist/modules/workflows/lib/insert-at-cursor.js.map +7 -0
- package/dist/modules/workflows/lib/instance-date-filter.js +28 -0
- package/dist/modules/workflows/lib/instance-date-filter.js.map +7 -0
- package/dist/modules/workflows/lib/interpolation-pipeline.js +271 -0
- package/dist/modules/workflows/lib/interpolation-pipeline.js.map +7 -0
- package/dist/modules/workflows/lib/ledger-drag.js +28 -0
- package/dist/modules/workflows/lib/ledger-drag.js.map +7 -0
- package/dist/modules/workflows/lib/ledger-entry-display.js +66 -0
- package/dist/modules/workflows/lib/ledger-entry-display.js.map +7 -0
- package/dist/modules/workflows/lib/ledger-schema-flatten.js +82 -0
- package/dist/modules/workflows/lib/ledger-schema-flatten.js.map +7 -0
- package/dist/modules/workflows/lib/metrics/definition-metrics.js +110 -0
- package/dist/modules/workflows/lib/metrics/definition-metrics.js.map +7 -0
- package/dist/modules/workflows/lib/metrics/metrics-display.js +26 -0
- package/dist/modules/workflows/lib/metrics/metrics-display.js.map +7 -0
- package/dist/modules/workflows/lib/metrics/rollup-schedule.js +7 -0
- package/dist/modules/workflows/lib/metrics/rollup-schedule.js.map +7 -0
- package/dist/modules/workflows/lib/metrics/rollup-service.js +160 -0
- package/dist/modules/workflows/lib/metrics/rollup-service.js.map +7 -0
- package/dist/modules/workflows/lib/node-config-summary.js +128 -0
- package/dist/modules/workflows/lib/node-config-summary.js.map +7 -0
- package/dist/modules/workflows/lib/node-geometry.js +53 -0
- package/dist/modules/workflows/lib/node-geometry.js.map +7 -0
- package/dist/modules/workflows/lib/node-nudge.js +44 -0
- package/dist/modules/workflows/lib/node-nudge.js.map +7 -0
- package/dist/modules/workflows/lib/node-outcome-rows.js +88 -0
- package/dist/modules/workflows/lib/node-outcome-rows.js.map +7 -0
- package/dist/modules/workflows/lib/node-placement.js +55 -0
- package/dist/modules/workflows/lib/node-placement.js.map +7 -0
- package/dist/modules/workflows/lib/node-type-icons.js +54 -13
- package/dist/modules/workflows/lib/node-type-icons.js.map +2 -2
- package/dist/modules/workflows/lib/nodeFormTransforms.js +329 -19
- package/dist/modules/workflows/lib/nodeFormTransforms.js.map +2 -2
- package/dist/modules/workflows/lib/outcome-routing.js +158 -0
- package/dist/modules/workflows/lib/outcome-routing.js.map +7 -0
- package/dist/modules/workflows/lib/owned-definition.js +107 -0
- package/dist/modules/workflows/lib/owned-definition.js.map +7 -0
- package/dist/modules/workflows/lib/owned-node-changes.js +10 -0
- package/dist/modules/workflows/lib/owned-node-changes.js.map +7 -0
- package/dist/modules/workflows/lib/palette-drag.js +36 -0
- package/dist/modules/workflows/lib/palette-drag.js.map +7 -0
- package/dist/modules/workflows/lib/palette-drop.js +45 -0
- package/dist/modules/workflows/lib/palette-drop.js.map +7 -0
- package/dist/modules/workflows/lib/parallel-handler.js +57 -2
- package/dist/modules/workflows/lib/parallel-handler.js.map +2 -2
- package/dist/modules/workflows/lib/port-contract.js +54 -0
- package/dist/modules/workflows/lib/port-contract.js.map +7 -0
- package/dist/modules/workflows/lib/portal-task-access.js +89 -0
- package/dist/modules/workflows/lib/portal-task-access.js.map +7 -0
- package/dist/modules/workflows/lib/rerun-from-step.js +65 -0
- package/dist/modules/workflows/lib/rerun-from-step.js.map +7 -0
- package/dist/modules/workflows/lib/route-chip-events.js +23 -0
- package/dist/modules/workflows/lib/route-chip-events.js.map +7 -0
- package/dist/modules/workflows/lib/route-chips.js +91 -0
- package/dist/modules/workflows/lib/route-chips.js.map +7 -0
- package/dist/modules/workflows/lib/route-edge.js +17 -0
- package/dist/modules/workflows/lib/route-edge.js.map +7 -0
- package/dist/modules/workflows/lib/route-kinds.js +67 -0
- package/dist/modules/workflows/lib/route-kinds.js.map +7 -0
- package/dist/modules/workflows/lib/route-priority.js +104 -0
- package/dist/modules/workflows/lib/route-priority.js.map +7 -0
- package/dist/modules/workflows/lib/run-duration.js +44 -0
- package/dist/modules/workflows/lib/run-duration.js.map +7 -0
- package/dist/modules/workflows/lib/run-event-tone.js +25 -0
- package/dist/modules/workflows/lib/run-event-tone.js.map +7 -0
- package/dist/modules/workflows/lib/run-execution.js +305 -0
- package/dist/modules/workflows/lib/run-execution.js.map +7 -0
- package/dist/modules/workflows/lib/run-gantt.js +180 -0
- package/dist/modules/workflows/lib/run-gantt.js.map +7 -0
- package/dist/modules/workflows/lib/run-outcome-evidence.js +33 -0
- package/dist/modules/workflows/lib/run-outcome-evidence.js.map +7 -0
- package/dist/modules/workflows/lib/run-outcome.js +48 -0
- package/dist/modules/workflows/lib/run-outcome.js.map +7 -0
- package/dist/modules/workflows/lib/sample-resolver.js +71 -0
- package/dist/modules/workflows/lib/sample-resolver.js.map +7 -0
- package/dist/modules/workflows/lib/seeds.js +1 -1
- package/dist/modules/workflows/lib/seeds.js.map +2 -2
- package/dist/modules/workflows/lib/server-output-contract.js +65 -0
- package/dist/modules/workflows/lib/server-output-contract.js.map +7 -0
- package/dist/modules/workflows/lib/set-variable.js +47 -0
- package/dist/modules/workflows/lib/set-variable.js.map +7 -0
- package/dist/modules/workflows/lib/signal-handler.js +63 -4
- package/dist/modules/workflows/lib/signal-handler.js.map +2 -2
- package/dist/modules/workflows/lib/start-fixtures.js +42 -0
- package/dist/modules/workflows/lib/start-fixtures.js.map +7 -0
- package/dist/modules/workflows/lib/status-colors.js +153 -22
- package/dist/modules/workflows/lib/status-colors.js.map +2 -2
- package/dist/modules/workflows/lib/step-handler.js +529 -53
- package/dist/modules/workflows/lib/step-handler.js.map +3 -3
- package/dist/modules/workflows/lib/step-presentation.js +147 -0
- package/dist/modules/workflows/lib/step-presentation.js.map +7 -0
- package/dist/modules/workflows/lib/step-through.js +26 -0
- package/dist/modules/workflows/lib/step-through.js.map +7 -0
- package/dist/modules/workflows/lib/step-type-conversion.js +167 -0
- package/dist/modules/workflows/lib/step-type-conversion.js.map +7 -0
- package/dist/modules/workflows/lib/subgraph-clipboard.js +114 -0
- package/dist/modules/workflows/lib/subgraph-clipboard.js.map +7 -0
- package/dist/modules/workflows/lib/task-decision-context.js +38 -0
- package/dist/modules/workflows/lib/task-decision-context.js.map +7 -0
- package/dist/modules/workflows/lib/task-decisions.js +49 -0
- package/dist/modules/workflows/lib/task-decisions.js.map +7 -0
- package/dist/modules/workflows/lib/task-entity-access.js +62 -0
- package/dist/modules/workflows/lib/task-entity-access.js.map +7 -0
- package/dist/modules/workflows/lib/task-entity-aliases.js +39 -0
- package/dist/modules/workflows/lib/task-entity-aliases.js.map +7 -0
- package/dist/modules/workflows/lib/task-entity-types.js +36 -0
- package/dist/modules/workflows/lib/task-entity-types.js.map +7 -0
- package/dist/modules/workflows/lib/task-form-registry.js +33 -0
- package/dist/modules/workflows/lib/task-form-registry.js.map +7 -0
- package/dist/modules/workflows/lib/task-form-schema.js +75 -0
- package/dist/modules/workflows/lib/task-form-schema.js.map +7 -0
- package/dist/modules/workflows/lib/task-handler.js +251 -32
- package/dist/modules/workflows/lib/task-handler.js.map +2 -2
- package/dist/modules/workflows/lib/task-inspector-config.js +182 -0
- package/dist/modules/workflows/lib/task-inspector-config.js.map +7 -0
- package/dist/modules/workflows/lib/task-list-query.js +19 -0
- package/dist/modules/workflows/lib/task-list-query.js.map +7 -0
- package/dist/modules/workflows/lib/task-notifications.js +119 -0
- package/dist/modules/workflows/lib/task-notifications.js.map +7 -0
- package/dist/modules/workflows/lib/task-permission-settings.js +43 -0
- package/dist/modules/workflows/lib/task-permission-settings.js.map +7 -0
- package/dist/modules/workflows/lib/task-presets.js +35 -0
- package/dist/modules/workflows/lib/task-presets.js.map +7 -0
- package/dist/modules/workflows/lib/task-quick-action.js +45 -0
- package/dist/modules/workflows/lib/task-quick-action.js.map +7 -0
- package/dist/modules/workflows/lib/task-resolution.js +120 -0
- package/dist/modules/workflows/lib/task-resolution.js.map +7 -0
- package/dist/modules/workflows/lib/task-sla.js +357 -0
- package/dist/modules/workflows/lib/task-sla.js.map +7 -0
- package/dist/modules/workflows/lib/task-visibility-request.js +266 -0
- package/dist/modules/workflows/lib/task-visibility-request.js.map +7 -0
- package/dist/modules/workflows/lib/task-visibility.js +194 -0
- package/dist/modules/workflows/lib/task-visibility.js.map +7 -0
- package/dist/modules/workflows/lib/timer-handler.js +3 -1
- package/dist/modules/workflows/lib/timer-handler.js.map +2 -2
- package/dist/modules/workflows/lib/transition-handler.js +148 -20
- package/dist/modules/workflows/lib/transition-handler.js.map +2 -2
- package/dist/modules/workflows/lib/trigger-node.js +121 -0
- package/dist/modules/workflows/lib/trigger-node.js.map +7 -0
- package/dist/modules/workflows/lib/visual-editor-navigation.js +14 -0
- package/dist/modules/workflows/lib/visual-editor-navigation.js.map +7 -0
- package/dist/modules/workflows/lib/work-inbox/empty-state.js +52 -0
- package/dist/modules/workflows/lib/work-inbox/empty-state.js.map +7 -0
- package/dist/modules/workflows/lib/work-inbox/entity-links.js +63 -0
- package/dist/modules/workflows/lib/work-inbox/entity-links.js.map +7 -0
- package/dist/modules/workflows/lib/work-inbox/navigation.js +11 -0
- package/dist/modules/workflows/lib/work-inbox/navigation.js.map +7 -0
- package/dist/modules/workflows/lib/work-inbox/presentation.js +90 -0
- package/dist/modules/workflows/lib/work-inbox/presentation.js.map +7 -0
- package/dist/modules/workflows/lib/work-inbox/provider.js +118 -0
- package/dist/modules/workflows/lib/work-inbox/provider.js.map +7 -0
- package/dist/modules/workflows/lib/work-inbox/query.js +70 -0
- package/dist/modules/workflows/lib/work-inbox/query.js.map +7 -0
- package/dist/modules/workflows/lib/work-inbox/service.js +56 -0
- package/dist/modules/workflows/lib/work-inbox/service.js.map +7 -0
- package/dist/modules/workflows/lib/work-inbox/user-task-source.js +149 -0
- package/dist/modules/workflows/lib/work-inbox/user-task-source.js.map +7 -0
- package/dist/modules/workflows/lib/workflow-command-enablement.js +57 -0
- package/dist/modules/workflows/lib/workflow-command-enablement.js.map +7 -0
- package/dist/modules/workflows/lib/workflow-command-settings.js +54 -0
- package/dist/modules/workflows/lib/workflow-command-settings.js.map +7 -0
- package/dist/modules/workflows/lib/workflow-executor.js +658 -6
- package/dist/modules/workflows/lib/workflow-executor.js.map +2 -2
- package/dist/modules/workflows/lib/workflow-function-registry.js +40 -0
- package/dist/modules/workflows/lib/workflow-function-registry.js.map +7 -0
- package/dist/modules/workflows/lib/workflow-safe-commands.js +11 -1
- package/dist/modules/workflows/lib/workflow-safe-commands.js.map +2 -2
- package/dist/modules/workflows/lib/workflow-templates.js +69 -0
- package/dist/modules/workflows/lib/workflow-templates.js.map +7 -0
- package/dist/modules/workflows/migrations/Migration20260626214855_workflows.js +15 -0
- package/dist/modules/workflows/migrations/Migration20260626214855_workflows.js.map +7 -0
- package/dist/modules/workflows/migrations/Migration20260626222424_workflows.js +17 -0
- package/dist/modules/workflows/migrations/Migration20260626222424_workflows.js.map +7 -0
- package/dist/modules/workflows/migrations/Migration20260727074335_workflows.js +15 -0
- package/dist/modules/workflows/migrations/Migration20260727074335_workflows.js.map +7 -0
- package/dist/modules/workflows/migrations/Migration20260728104038_workflows.js +13 -0
- package/dist/modules/workflows/migrations/Migration20260728104038_workflows.js.map +7 -0
- package/dist/modules/workflows/migrations/Migration20260728163001_workflows.js +15 -0
- package/dist/modules/workflows/migrations/Migration20260728163001_workflows.js.map +7 -0
- package/dist/modules/workflows/migrations/Migration20260729061736_workflows.js +13 -0
- package/dist/modules/workflows/migrations/Migration20260729061736_workflows.js.map +7 -0
- package/dist/modules/workflows/migrations/Migration20260729192652_workflows.js +12 -0
- package/dist/modules/workflows/migrations/Migration20260729192652_workflows.js.map +7 -0
- package/dist/modules/workflows/migrations/Migration20260730085000_workflows.js +13 -0
- package/dist/modules/workflows/migrations/Migration20260730085000_workflows.js.map +7 -0
- package/dist/modules/workflows/migrations/Migration20260730092706_workflows.js +13 -0
- package/dist/modules/workflows/migrations/Migration20260730092706_workflows.js.map +7 -0
- package/dist/modules/workflows/notifications.js +38 -10
- package/dist/modules/workflows/notifications.js.map +2 -2
- package/dist/modules/workflows/setup.js +81 -1
- package/dist/modules/workflows/setup.js.map +2 -2
- package/dist/modules/workflows/subscribers/task-assigned-notification.js +19 -27
- package/dist/modules/workflows/subscribers/task-assigned-notification.js.map +2 -2
- package/dist/modules/workflows/subscribers/task-deadline-breached-notification.js +24 -0
- package/dist/modules/workflows/subscribers/task-deadline-breached-notification.js.map +7 -0
- package/dist/modules/workflows/subscribers/task-reminder-notification.js +24 -0
- package/dist/modules/workflows/subscribers/task-reminder-notification.js.map +7 -0
- package/dist/modules/workflows/widgets/injection/pending-work/widget.client.js +73 -0
- package/dist/modules/workflows/widgets/injection/pending-work/widget.client.js.map +7 -0
- package/dist/modules/workflows/widgets/injection/pending-work/widget.js +17 -0
- package/dist/modules/workflows/widgets/injection/pending-work/widget.js.map +7 -0
- package/dist/modules/workflows/widgets/injection-table.js +26 -0
- package/dist/modules/workflows/widgets/injection-table.js.map +2 -2
- package/dist/modules/workflows/workers/workflow-activities.worker.js +61 -39
- package/dist/modules/workflows/workers/workflow-activities.worker.js.map +2 -2
- package/dist/modules/workflows/workers/workflow-definition-metric-rollup.worker.js +40 -0
- package/dist/modules/workflows/workers/workflow-definition-metric-rollup.worker.js.map +7 -0
- package/dist/modules/workflows/workers/workflow-instance-bulk-replay.js +43 -0
- package/dist/modules/workflows/workers/workflow-instance-bulk-replay.js.map +7 -0
- package/dist/modules/workflows/workers/workflow-invoke-agent.worker.js +30 -0
- package/dist/modules/workflows/workers/workflow-invoke-agent.worker.js.map +7 -0
- package/generated/entities/action_log/index.ts +1 -0
- package/generated/entities/user/index.ts +1 -0
- package/generated/entities/user_task/index.ts +7 -0
- package/generated/entities/workflow_definition/index.ts +3 -0
- package/generated/entities/workflow_definition_draft/index.ts +11 -0
- package/generated/entities/workflow_definition_metric_rollup/index.ts +10 -0
- package/generated/entities/workflow_instance/index.ts +2 -0
- package/generated/entities.ids.generated.ts +4 -1
- package/generated/entity-fields-registry.ts +39 -0
- package/jest.setup.ts +13 -0
- package/package.json +8 -7
- package/src/helpers/integration/workflowsFixtures.ts +765 -5
- package/src/helpers/integration/workflowsUi.ts +318 -0
- package/src/modules/attachments/lib/createFromBuffer.ts +120 -0
- package/src/modules/audit_logs/data/entities.ts +12 -0
- package/src/modules/audit_logs/data/validators.ts +1 -0
- package/src/modules/audit_logs/lib/projections.ts +5 -1
- package/src/modules/audit_logs/migrations/.snapshot-open-mercato.json +26 -0
- package/src/modules/audit_logs/migrations/Migration20260625120000.ts +15 -0
- package/src/modules/audit_logs/services/actionLogService.ts +3 -0
- package/src/modules/auth/data/entities.ts +21 -0
- package/src/modules/auth/i18n/de.json +31 -0
- package/src/modules/auth/i18n/en.json +31 -0
- package/src/modules/auth/i18n/es.json +31 -0
- package/src/modules/auth/i18n/ko.json +31 -0
- package/src/modules/auth/i18n/pl.json +31 -0
- package/src/modules/auth/lib/executionPrincipal.ts +235 -0
- package/src/modules/auth/migrations/.snapshot-open-mercato.json +16 -0
- package/src/modules/auth/migrations/Migration20260625050000.ts +21 -0
- package/src/modules/business_rules/components/InlineRuleEditor.tsx +231 -0
- package/src/modules/business_rules/data/validators.ts +6 -0
- package/src/modules/business_rules/i18n/de.json +4 -0
- package/src/modules/business_rules/i18n/en.json +4 -0
- package/src/modules/business_rules/i18n/es.json +4 -0
- package/src/modules/business_rules/i18n/ko.json +4 -0
- package/src/modules/business_rules/i18n/pl.json +4 -0
- package/src/modules/business_rules/lib/rule-engine.ts +15 -1
- package/src/modules/catalog/commands/products.ts +12 -0
- package/src/modules/catalog/i18n/de.json +1 -0
- package/src/modules/catalog/i18n/en.json +1 -0
- package/src/modules/catalog/i18n/es.json +1 -0
- package/src/modules/catalog/i18n/ko.json +1 -0
- package/src/modules/catalog/i18n/pl.json +1 -0
- package/src/modules/catalog/workflows.ts +35 -0
- package/src/modules/customer_accounts/AGENTS.md +11 -0
- package/src/modules/customer_accounts/backend/customer_accounts/roles/[id]/page.tsx +2 -0
- package/src/modules/customer_accounts/cli.ts +96 -0
- package/src/modules/customer_accounts/i18n/de.json +5 -0
- package/src/modules/customer_accounts/i18n/en.json +5 -0
- package/src/modules/customer_accounts/i18n/es.json +5 -0
- package/src/modules/customer_accounts/i18n/ko.json +5 -0
- package/src/modules/customer_accounts/i18n/pl.json +5 -0
- package/src/modules/customer_accounts/lib/customerRoleAclSync.ts +92 -0
- package/src/modules/customer_accounts/setup.ts +15 -3
- package/src/modules/customers/commands/deals.ts +5 -0
- package/src/modules/customers/components/detail/ChangelogEntryRow.tsx +4 -2
- package/src/modules/customers/components/detail/utils.ts +2 -0
- package/src/modules/customers/events.ts +21 -3
- package/src/modules/customers/i18n/de.json +4 -0
- package/src/modules/customers/i18n/en.json +4 -0
- package/src/modules/customers/i18n/es.json +4 -0
- package/src/modules/customers/i18n/ko.json +4 -0
- package/src/modules/customers/i18n/pl.json +4 -0
- package/src/modules/customers/lib/link-workflow-task-handler.ts +136 -0
- package/src/modules/customers/lib/todoCompatibility.ts +4 -1
- package/src/modules/customers/lib/workflowTaskLink.ts +23 -0
- package/src/modules/customers/subscribers/link-workflow-task.ts +19 -0
- package/src/modules/customers/workflows.ts +57 -0
- package/src/modules/entities/api/records.ts +18 -62
- package/src/modules/entities/lib/entityClassification.ts +102 -0
- package/src/modules/sales/commands/documents.ts +46 -0
- package/src/modules/sales/events.ts +20 -2
- package/src/modules/sales/i18n/de.json +2 -1
- package/src/modules/sales/i18n/en.json +2 -1
- package/src/modules/sales/i18n/es.json +2 -1
- package/src/modules/sales/i18n/ko.json +2 -1
- package/src/modules/sales/i18n/pl.json +2 -1
- package/src/modules/sales/workflows.ts +12 -1
- package/src/modules/seeds/README.md +86 -0
- package/src/modules/seeds/cli.ts +220 -0
- package/src/modules/seeds/examples/sample-seed.json +26 -0
- package/src/modules/seeds/index.ts +11 -0
- package/src/modules/workflows/AGENTS.md +851 -10
- package/src/modules/workflows/acl.ts +96 -0
- package/src/modules/workflows/ai-agents.ts +80 -0
- package/src/modules/workflows/ai-tools/authoring-pack.ts +798 -0
- package/src/modules/workflows/ai-tools/types.ts +117 -0
- package/src/modules/workflows/ai-tools.ts +20 -0
- package/src/modules/workflows/api/command-settings/route.ts +171 -0
- package/src/modules/workflows/api/commands/route.ts +109 -0
- package/src/modules/workflows/api/definitions/[id]/callers/route.ts +95 -0
- package/src/modules/workflows/api/definitions/[id]/context-schema/route.ts +187 -0
- package/src/modules/workflows/api/definitions/[id]/customize/route.ts +6 -1
- package/src/modules/workflows/api/definitions/[id]/draft/route.ts +395 -0
- package/src/modules/workflows/api/definitions/[id]/publish/route.ts +250 -0
- package/src/modules/workflows/api/definitions/[id]/reset-to-code/route.ts +5 -0
- package/src/modules/workflows/api/definitions/[id]/route.ts +107 -7
- package/src/modules/workflows/api/definitions/[id]/test-step/route.ts +288 -0
- package/src/modules/workflows/api/definitions/generate/route.ts +335 -0
- package/src/modules/workflows/api/definitions/route.ts +88 -113
- package/src/modules/workflows/api/definitions/serialize.ts +9 -0
- package/src/modules/workflows/api/endpoints/route.ts +88 -0
- package/src/modules/workflows/api/functions/route.ts +91 -0
- package/src/modules/workflows/api/grantable-features/route.ts +102 -0
- package/src/modules/workflows/api/instances/[id]/context/route.ts +214 -0
- package/src/modules/workflows/api/instances/[id]/rerun-step/route.ts +226 -0
- package/src/modules/workflows/api/instances/[id]/retry/route.ts +18 -2
- package/src/modules/workflows/api/instances/[id]/step-through/route.ts +195 -0
- package/src/modules/workflows/api/instances/[id]/steps/route.ts +160 -0
- package/src/modules/workflows/api/instances/[id]/would-do/route.ts +216 -0
- package/src/modules/workflows/api/instances/bulk-replay/route.ts +141 -0
- package/src/modules/workflows/api/instances/failure-queue/route.ts +197 -0
- package/src/modules/workflows/api/instances/route.ts +135 -3
- package/src/modules/workflows/api/metrics/definitions/route.ts +262 -0
- package/src/modules/workflows/api/openapi.ts +549 -2
- package/src/modules/workflows/api/portal/tasks/[id]/complete/route.ts +160 -0
- package/src/modules/workflows/api/portal/tasks/[id]/route.ts +124 -0
- package/src/modules/workflows/api/portal/tasks/route.ts +157 -0
- package/src/modules/workflows/api/rule-usage/route.ts +94 -0
- package/src/modules/workflows/api/task-settings/route.ts +138 -0
- package/src/modules/workflows/api/tasks/[id]/claim/route.ts +42 -17
- package/src/modules/workflows/api/tasks/[id]/complete/route.ts +47 -15
- package/src/modules/workflows/api/tasks/[id]/reassign/route.ts +197 -0
- package/src/modules/workflows/api/tasks/[id]/route.ts +57 -6
- package/src/modules/workflows/api/tasks/[id]/unclaim/route.ts +132 -0
- package/src/modules/workflows/api/tasks/route.ts +60 -5
- package/src/modules/workflows/api/tasks/serialize.ts +119 -0
- package/src/modules/workflows/api/templates/route.ts +87 -0
- package/src/modules/workflows/api/work-inbox/next/route.ts +170 -0
- package/src/modules/workflows/api/work-inbox/route.ts +153 -0
- package/src/modules/workflows/backend/config/workflows/page.meta.ts +33 -0
- package/src/modules/workflows/backend/config/workflows/page.tsx +12 -0
- package/src/modules/workflows/backend/definitions/[id]/page.tsx +19 -343
- package/src/modules/workflows/backend/definitions/create/page.meta.ts +1 -1
- package/src/modules/workflows/backend/definitions/create/page.tsx +19 -59
- package/src/modules/workflows/backend/definitions/page.tsx +156 -76
- package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +3129 -584
- package/src/modules/workflows/backend/instances/[id]/page.meta.ts +1 -1
- package/src/modules/workflows/backend/instances/[id]/page.tsx +711 -539
- package/src/modules/workflows/backend/instances/failure-queue/page.meta.ts +16 -0
- package/src/modules/workflows/backend/instances/failure-queue/page.tsx +311 -0
- package/src/modules/workflows/backend/instances/page.meta.ts +1 -1
- package/src/modules/workflows/backend/instances/page.tsx +218 -38
- package/src/modules/workflows/backend/tasks/[id]/page.tsx +639 -400
- package/src/modules/workflows/backend/tasks/page.meta.ts +7 -0
- package/src/modules/workflows/backend/tasks/page.tsx +20 -333
- package/src/modules/workflows/backend/work-inbox/page.meta.ts +15 -0
- package/src/modules/workflows/backend/work-inbox/page.tsx +506 -0
- package/src/modules/workflows/cli.ts +1 -1
- package/src/modules/workflows/commands/tasks.ts +146 -0
- package/src/modules/workflows/components/ActivitiesEditor.tsx +91 -114
- package/src/modules/workflows/components/ActivityEditDialog.tsx +244 -0
- package/src/modules/workflows/components/AgentSelector.tsx +200 -0
- package/src/modules/workflows/components/AnnotationEditDialog.tsx +157 -0
- package/src/modules/workflows/components/BusinessRuleUsagePanel.tsx +106 -0
- package/src/modules/workflows/components/BusinessRulesSelector.tsx +71 -17
- package/src/modules/workflows/components/ConfigJsonTextarea.tsx +111 -0
- package/src/modules/workflows/components/ContextSchemaEditor.tsx +165 -0
- package/src/modules/workflows/components/DefinitionErrorHandlerField.tsx +133 -0
- package/src/modules/workflows/components/DefinitionMetadataDrawer.tsx +456 -0
- package/src/modules/workflows/components/DefinitionMetricsCells.tsx +212 -0
- package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +196 -95
- package/src/modules/workflows/components/EdgeEditDialog.tsx +15 -16
- package/src/modules/workflows/components/EdgeEditDialogCrudForm.tsx +130 -80
- package/src/modules/workflows/components/InputDataPanel.tsx +177 -0
- package/src/modules/workflows/components/InspectorPanel.tsx +250 -0
- package/src/modules/workflows/components/NodeEditDialog.tsx +444 -38
- package/src/modules/workflows/components/NodeEditDialogCrudForm.tsx +848 -178
- package/src/modules/workflows/components/StepsEditor.tsx +9 -2
- package/src/modules/workflows/components/TemplateGalleryDialog.tsx +205 -0
- package/src/modules/workflows/components/TransitionsEditor.tsx +98 -89
- package/src/modules/workflows/components/TriggersDialog.tsx +83 -0
- package/src/modules/workflows/components/TriggersEditor.tsx +363 -0
- package/src/modules/workflows/components/WorkflowAiDraftDialog.tsx +383 -0
- package/src/modules/workflows/components/WorkflowCodeView.tsx +257 -0
- package/src/modules/workflows/components/WorkflowCommandPalette.tsx +82 -0
- package/src/modules/workflows/components/WorkflowCompensationGhostEdge.tsx +78 -0
- package/src/modules/workflows/components/WorkflowDataMappingEdge.tsx +46 -0
- package/src/modules/workflows/components/WorkflowGraph.tsx +54 -1
- package/src/modules/workflows/components/WorkflowGraphImpl.tsx +463 -37
- package/src/modules/workflows/components/WorkflowIconPicker.tsx +144 -0
- package/src/modules/workflows/components/WorkflowLegend.tsx +59 -33
- package/src/modules/workflows/components/WorkflowNodeCard.tsx +355 -28
- package/src/modules/workflows/components/WorkflowRouteChips.tsx +145 -0
- package/src/modules/workflows/components/WorkflowSelector.tsx +33 -14
- package/src/modules/workflows/components/WorkflowTransitionEdge.tsx +83 -10
- package/src/modules/workflows/components/WorkflowTransitionLabel.tsx +13 -2
- package/src/modules/workflows/components/fields/ActivityArrayEditor.tsx +120 -30
- package/src/modules/workflows/components/fields/ActivityConfigFields.tsx +675 -0
- package/src/modules/workflows/components/fields/ActivityTestPanel.tsx +250 -0
- package/src/modules/workflows/components/fields/AgentInvokeConfigField.tsx +580 -0
- package/src/modules/workflows/components/fields/AgentReviewOnBreachField.tsx +88 -0
- package/src/modules/workflows/components/fields/BranchingRoutesEditor.tsx +323 -0
- package/src/modules/workflows/components/fields/BusinessRuleConditionsEditor.tsx +36 -4
- package/src/modules/workflows/components/fields/CommandPicker.tsx +158 -0
- package/src/modules/workflows/components/fields/EndpointPicker.tsx +330 -0
- package/src/modules/workflows/components/fields/FormFieldArrayEditor.tsx +2 -2
- package/src/modules/workflows/components/fields/FunctionPicker.tsx +68 -0
- package/src/modules/workflows/components/fields/MappingArrayEditor.tsx +46 -12
- package/src/modules/workflows/components/fields/PortFieldArrayEditor.tsx +255 -0
- package/src/modules/workflows/components/fields/RolesMultiSelect.tsx +68 -0
- package/src/modules/workflows/components/fields/RouteOrderEditor.tsx +169 -0
- package/src/modules/workflows/components/fields/SchemaBuilderDialog.tsx +139 -0
- package/src/modules/workflows/components/fields/StartPreConditionsEditor.tsx +2 -2
- package/src/modules/workflows/components/fields/TaskAssignmentField.tsx +355 -0
- package/src/modules/workflows/components/fields/TaskDeadlineFields.tsx +172 -0
- package/src/modules/workflows/components/fields/TaskDecisionsField.tsx +294 -0
- package/src/modules/workflows/components/fields/TaskEntityBindingsField.tsx +156 -0
- package/src/modules/workflows/components/fields/TemplateTextControl.tsx +85 -0
- package/src/modules/workflows/components/fields/VariablePickerButton.tsx +177 -0
- package/src/modules/workflows/components/fields/ledgerDropTarget.ts +55 -0
- package/src/modules/workflows/components/fields/useActivityTypeOptions.ts +19 -0
- package/src/modules/workflows/components/formConfig.tsx +84 -10
- package/src/modules/workflows/components/mobile/MobileDefinitionDetail.tsx +5 -0
- package/src/modules/workflows/components/mobile/MobileMetadataSheet.tsx +10 -0
- package/src/modules/workflows/components/mobile/MobileTaskForm.tsx +55 -19
- package/src/modules/workflows/components/mobile/MobileVisualEditor.tsx +49 -40
- package/src/modules/workflows/components/nodes/AnnotationGroupNode.tsx +81 -0
- package/src/modules/workflows/components/nodes/AutomatedNode.tsx +34 -17
- package/src/modules/workflows/components/nodes/EndNode.tsx +15 -14
- package/src/modules/workflows/components/nodes/ErrorOutputHandle.tsx +32 -0
- package/src/modules/workflows/components/nodes/IfElseNode.tsx +64 -0
- package/src/modules/workflows/components/nodes/InvokeAgentNode.tsx +180 -0
- package/src/modules/workflows/components/nodes/NodeOutcomeRows.tsx +143 -0
- package/src/modules/workflows/components/nodes/ParallelForkNode.tsx +28 -15
- package/src/modules/workflows/components/nodes/ParallelJoinNode.tsx +28 -15
- package/src/modules/workflows/components/nodes/StartNode.tsx +78 -18
- package/src/modules/workflows/components/nodes/StickyNoteNode.tsx +65 -0
- package/src/modules/workflows/components/nodes/SubWorkflowNode.tsx +124 -23
- package/src/modules/workflows/components/nodes/SwitchNode.tsx +64 -0
- package/src/modules/workflows/components/nodes/TriggerCap.tsx +103 -0
- package/src/modules/workflows/components/nodes/TriggerNode.tsx +151 -0
- package/src/modules/workflows/components/nodes/UserTaskNode.tsx +67 -22
- package/src/modules/workflows/components/nodes/WaitForConditionNode.tsx +74 -0
- package/src/modules/workflows/components/nodes/WaitForSignalNode.tsx +31 -17
- package/src/modules/workflows/components/nodes/WaitForTimerNode.tsx +31 -16
- package/src/modules/workflows/components/nodes/index.ts +17 -0
- package/src/modules/workflows/components/portal/PortalTaskForm.tsx +280 -0
- package/src/modules/workflows/components/run/AgentActivityPanel.tsx +48 -0
- package/src/modules/workflows/components/run/RerunStepDialog.tsx +133 -0
- package/src/modules/workflows/components/run/RunEventBadge.tsx +37 -0
- package/src/modules/workflows/components/run/RunGantt.tsx +180 -0
- package/src/modules/workflows/components/run/RunStatusBadge.tsx +112 -0
- package/src/modules/workflows/components/run/RunStepInspector.tsx +176 -0
- package/src/modules/workflows/components/run/WouldDoReport.tsx +93 -0
- package/src/modules/workflows/components/run/useAgentLabels.ts +42 -0
- package/src/modules/workflows/components/run/useLastRunOverlay.ts +150 -0
- package/src/modules/workflows/components/run/useLiveAgentActions.ts +70 -0
- package/src/modules/workflows/components/run/useLiveRunUpdates.ts +89 -0
- package/src/modules/workflows/components/settings/CommandSettingsPageClient.tsx +228 -0
- package/src/modules/workflows/components/work-inbox/EntityContextPanel.tsx +179 -0
- package/src/modules/workflows/components/work-inbox/ReassignTaskDialog.tsx +203 -0
- package/src/modules/workflows/components/work-inbox/StatusChip.tsx +61 -0
- package/src/modules/workflows/components/work-inbox/TaskActionNotice.tsx +77 -0
- package/src/modules/workflows/components/work-inbox/TaskFormFields.tsx +322 -0
- package/src/modules/workflows/components/work-inbox/WorkInboxEmptyState.tsx +43 -0
- package/src/modules/workflows/data/activity-config-schemas.ts +249 -0
- package/src/modules/workflows/data/activity-config-warnings.ts +71 -0
- package/src/modules/workflows/data/branching-route-warnings.ts +129 -0
- package/src/modules/workflows/data/entities.ts +397 -4
- package/src/modules/workflows/data/metrics-validators.ts +51 -0
- package/src/modules/workflows/data/task-primitives.ts +36 -0
- package/src/modules/workflows/data/types.ts +81 -2
- package/src/modules/workflows/data/validators.ts +729 -60
- package/src/modules/workflows/di.ts +22 -0
- package/src/modules/workflows/events.ts +68 -8
- package/src/modules/workflows/examples/oze-residential-install-60-nodes.json +1545 -0
- package/src/modules/workflows/examples/sales-pipeline-definition.json +35 -35
- package/src/modules/workflows/examples/templates/lead-to-install.json +160 -0
- package/src/modules/workflows/examples/templates/order-approval.json +230 -0
- package/src/modules/workflows/examples/templates/task-escalation.json +110 -0
- package/src/modules/workflows/examples/templates/webhook-integration.json +113 -0
- package/src/modules/workflows/extension-points.ts +1 -1
- package/src/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.meta.ts +21 -0
- package/src/modules/workflows/frontend/[orgSlug]/portal/tasks/[id]/page.tsx +212 -0
- package/src/modules/workflows/frontend/[orgSlug]/portal/tasks/page.meta.ts +25 -0
- package/src/modules/workflows/frontend/[orgSlug]/portal/tasks/page.tsx +185 -0
- package/src/modules/workflows/i18n/de.json +1083 -24
- package/src/modules/workflows/i18n/en.json +1081 -22
- package/src/modules/workflows/i18n/es.json +1083 -24
- package/src/modules/workflows/i18n/ko.json +1072 -13
- package/src/modules/workflows/i18n/pl.json +1082 -23
- package/src/modules/workflows/lib/activity-executor.ts +855 -186
- package/src/modules/workflows/lib/activity-queue-types.ts +120 -1
- package/src/modules/workflows/lib/activity-registry-bootstrap.ts +7 -0
- package/src/modules/workflows/lib/activity-registry.ts +89 -0
- package/src/modules/workflows/lib/activity-types.ts +415 -0
- package/src/modules/workflows/lib/activity-worker-handler.ts +744 -35
- package/src/modules/workflows/lib/advanced-config.ts +41 -0
- package/src/modules/workflows/lib/agent-disposition-task.ts +343 -0
- package/src/modules/workflows/lib/agent-outcome-paths.ts +153 -0
- package/src/modules/workflows/lib/agent-result-mapping.ts +88 -0
- package/src/modules/workflows/lib/agent-review-inspector.ts +125 -0
- package/src/modules/workflows/lib/agent-review.ts +171 -0
- package/src/modules/workflows/lib/ai-authoring.ts +402 -0
- package/src/modules/workflows/lib/ai-draft-runner.ts +105 -0
- package/src/modules/workflows/lib/annotation-events.ts +15 -0
- package/src/modules/workflows/lib/branching-routes.ts +280 -0
- package/src/modules/workflows/lib/breach-routing.ts +142 -0
- package/src/modules/workflows/lib/bulk-replay.ts +185 -0
- package/src/modules/workflows/lib/business-rule-usage.ts +154 -0
- package/src/modules/workflows/lib/caller-graph.ts +104 -0
- package/src/modules/workflows/lib/code-view-apply.ts +178 -0
- package/src/modules/workflows/lib/collect-validation-issues.ts +239 -0
- package/src/modules/workflows/lib/compensation-ghosts.ts +134 -0
- package/src/modules/workflows/lib/component-guard.ts +13 -0
- package/src/modules/workflows/lib/condition-handler.ts +658 -0
- package/src/modules/workflows/lib/context-ledger.ts +814 -0
- package/src/modules/workflows/lib/crud-form-dialogs-flag.ts +5 -0
- package/src/modules/workflows/lib/data-edge-mapping.ts +112 -0
- package/src/modules/workflows/lib/definition-context-schema.ts +103 -0
- package/src/modules/workflows/lib/definition-edit-safety.ts +228 -0
- package/src/modules/workflows/lib/definition-error-body.ts +43 -0
- package/src/modules/workflows/lib/definition-evaluation.ts +156 -0
- package/src/modules/workflows/lib/definition-grant.ts +211 -0
- package/src/modules/workflows/lib/definition-json-locations.ts +226 -0
- package/src/modules/workflows/lib/definition-payload.ts +81 -0
- package/src/modules/workflows/lib/draft-restore.ts +72 -0
- package/src/modules/workflows/lib/dry-run.ts +203 -0
- package/src/modules/workflows/lib/duration.ts +138 -24
- package/src/modules/workflows/lib/edge-reattachment.ts +186 -0
- package/src/modules/workflows/lib/edgeFormTransforms.ts +15 -14
- package/src/modules/workflows/lib/editor-annotations.ts +301 -0
- package/src/modules/workflows/lib/editor-commands.ts +205 -0
- package/src/modules/workflows/lib/editor-history.ts +151 -0
- package/src/modules/workflows/lib/endpoint-catalog.ts +283 -0
- package/src/modules/workflows/lib/endpoint-path.ts +134 -0
- package/src/modules/workflows/lib/engine-version.ts +67 -0
- package/src/modules/workflows/lib/error-handler.ts +192 -0
- package/src/modules/workflows/lib/error-routing.ts +236 -0
- package/src/modules/workflows/lib/event-logger.ts +27 -0
- package/src/modules/workflows/lib/expression-refs.ts +291 -0
- package/src/modules/workflows/lib/failure-grouping.ts +134 -0
- package/src/modules/workflows/lib/find-definition.ts +4 -0
- package/src/modules/workflows/lib/flow-logic-warnings.ts +591 -0
- package/src/modules/workflows/lib/graph-utils.ts +620 -110
- package/src/modules/workflows/lib/icon-search.ts +65 -0
- package/src/modules/workflows/lib/insert-at-cursor.ts +53 -0
- package/src/modules/workflows/lib/instance-date-filter.ts +56 -0
- package/src/modules/workflows/lib/interpolation-pipeline.ts +351 -0
- package/src/modules/workflows/lib/ledger-drag.ts +61 -0
- package/src/modules/workflows/lib/ledger-entry-display.ts +89 -0
- package/src/modules/workflows/lib/ledger-schema-flatten.ts +137 -0
- package/src/modules/workflows/lib/metrics/definition-metrics.ts +268 -0
- package/src/modules/workflows/lib/metrics/metrics-display.ts +57 -0
- package/src/modules/workflows/lib/metrics/rollup-schedule.ts +26 -0
- package/src/modules/workflows/lib/metrics/rollup-service.ts +292 -0
- package/src/modules/workflows/lib/node-config-summary.ts +235 -0
- package/src/modules/workflows/lib/node-geometry.ts +168 -0
- package/src/modules/workflows/lib/node-nudge.ts +63 -0
- package/src/modules/workflows/lib/node-outcome-rows.ts +195 -0
- package/src/modules/workflows/lib/node-placement.ts +104 -0
- package/src/modules/workflows/lib/node-type-icons.ts +71 -10
- package/src/modules/workflows/lib/nodeFormTransforms.ts +519 -28
- package/src/modules/workflows/lib/outcome-routing.ts +346 -0
- package/src/modules/workflows/lib/owned-definition.ts +188 -0
- package/src/modules/workflows/lib/owned-node-changes.ts +29 -0
- package/src/modules/workflows/lib/palette-drag.ts +68 -0
- package/src/modules/workflows/lib/palette-drop.ts +114 -0
- package/src/modules/workflows/lib/parallel-handler.ts +79 -2
- package/src/modules/workflows/lib/port-contract.ts +107 -0
- package/src/modules/workflows/lib/portal-task-access.ts +220 -0
- package/src/modules/workflows/lib/rerun-from-step.ts +140 -0
- package/src/modules/workflows/lib/route-chip-events.ts +45 -0
- package/src/modules/workflows/lib/route-chips.ts +177 -0
- package/src/modules/workflows/lib/route-edge.ts +57 -0
- package/src/modules/workflows/lib/route-kinds.ts +166 -0
- package/src/modules/workflows/lib/route-priority.ts +197 -0
- package/src/modules/workflows/lib/run-duration.ts +70 -0
- package/src/modules/workflows/lib/run-event-tone.ts +46 -0
- package/src/modules/workflows/lib/run-execution.ts +598 -0
- package/src/modules/workflows/lib/run-gantt.ts +311 -0
- package/src/modules/workflows/lib/run-outcome-evidence.ts +60 -0
- package/src/modules/workflows/lib/run-outcome.ts +142 -0
- package/src/modules/workflows/lib/sample-resolver.ts +113 -0
- package/src/modules/workflows/lib/seeds.ts +3 -1
- package/src/modules/workflows/lib/server-output-contract.ts +120 -0
- package/src/modules/workflows/lib/set-variable.ts +94 -0
- package/src/modules/workflows/lib/signal-handler.ts +134 -4
- package/src/modules/workflows/lib/start-fixtures.ts +93 -0
- package/src/modules/workflows/lib/status-colors.ts +220 -21
- package/src/modules/workflows/lib/step-handler.ts +744 -68
- package/src/modules/workflows/lib/step-presentation.ts +295 -0
- package/src/modules/workflows/lib/step-through.ts +71 -0
- package/src/modules/workflows/lib/step-type-conversion.ts +263 -0
- package/src/modules/workflows/lib/subgraph-clipboard.ts +214 -0
- package/src/modules/workflows/lib/task-decision-context.ts +76 -0
- package/src/modules/workflows/lib/task-decisions.ts +117 -0
- package/src/modules/workflows/lib/task-entity-access.ts +181 -0
- package/src/modules/workflows/lib/task-entity-aliases.ts +77 -0
- package/src/modules/workflows/lib/task-entity-types.ts +66 -0
- package/src/modules/workflows/lib/task-form-registry.ts +123 -0
- package/src/modules/workflows/lib/task-form-schema.ts +129 -0
- package/src/modules/workflows/lib/task-handler.ts +492 -51
- package/src/modules/workflows/lib/task-inspector-config.ts +348 -0
- package/src/modules/workflows/lib/task-list-query.ts +46 -0
- package/src/modules/workflows/lib/task-notifications.ts +218 -0
- package/src/modules/workflows/lib/task-permission-settings.ts +117 -0
- package/src/modules/workflows/lib/task-presets.ts +95 -0
- package/src/modules/workflows/lib/task-quick-action.ts +111 -0
- package/src/modules/workflows/lib/task-resolution.ts +270 -0
- package/src/modules/workflows/lib/task-sla.ts +628 -0
- package/src/modules/workflows/lib/task-visibility-request.ts +668 -0
- package/src/modules/workflows/lib/task-visibility.ts +627 -0
- package/src/modules/workflows/lib/timer-handler.ts +8 -1
- package/src/modules/workflows/lib/transition-handler.ts +228 -20
- package/src/modules/workflows/lib/trigger-node.ts +272 -0
- package/src/modules/workflows/lib/visual-editor-navigation.ts +29 -0
- package/src/modules/workflows/lib/work-inbox/empty-state.ts +150 -0
- package/src/modules/workflows/lib/work-inbox/entity-links.ts +99 -0
- package/src/modules/workflows/lib/work-inbox/navigation.ts +28 -0
- package/src/modules/workflows/lib/work-inbox/presentation.ts +163 -0
- package/src/modules/workflows/lib/work-inbox/provider.ts +390 -0
- package/src/modules/workflows/lib/work-inbox/query.ts +103 -0
- package/src/modules/workflows/lib/work-inbox/service.ts +122 -0
- package/src/modules/workflows/lib/work-inbox/user-task-source.ts +240 -0
- package/src/modules/workflows/lib/workflow-command-enablement.ts +188 -0
- package/src/modules/workflows/lib/workflow-command-settings.ts +124 -0
- package/src/modules/workflows/lib/workflow-executor.ts +1036 -10
- package/src/modules/workflows/lib/workflow-function-registry.ts +44 -0
- package/src/modules/workflows/lib/workflow-safe-commands.ts +42 -1
- package/src/modules/workflows/lib/workflow-templates.ts +91 -0
- package/src/modules/workflows/migrations/.snapshot-open-mercato.json +2321 -698
- package/src/modules/workflows/migrations/Migration20260626214855_workflows.ts +15 -0
- package/src/modules/workflows/migrations/Migration20260626222424_workflows.ts +17 -0
- package/src/modules/workflows/migrations/Migration20260727074335_workflows.ts +15 -0
- package/src/modules/workflows/migrations/Migration20260728104038_workflows.ts +13 -0
- package/src/modules/workflows/migrations/Migration20260728163001_workflows.ts +36 -0
- package/src/modules/workflows/migrations/Migration20260729061736_workflows.ts +13 -0
- package/src/modules/workflows/migrations/Migration20260729192652_workflows.ts +11 -0
- package/src/modules/workflows/migrations/Migration20260730085000_workflows.ts +13 -0
- package/src/modules/workflows/migrations/Migration20260730092706_workflows.ts +13 -0
- package/src/modules/workflows/notifications.ts +40 -10
- package/src/modules/workflows/setup.ts +128 -0
- package/src/modules/workflows/subscribers/task-assigned-notification.ts +36 -45
- package/src/modules/workflows/subscribers/task-deadline-breached-notification.ts +31 -0
- package/src/modules/workflows/subscribers/task-reminder-notification.ts +31 -0
- package/src/modules/workflows/widgets/injection/pending-work/widget.client.tsx +119 -0
- package/src/modules/workflows/widgets/injection/pending-work/widget.ts +27 -0
- package/src/modules/workflows/widgets/injection-table.ts +52 -2
- package/src/modules/workflows/workers/workflow-activities.worker.ts +95 -42
- package/src/modules/workflows/workers/workflow-definition-metric-rollup.worker.ts +71 -0
- package/src/modules/workflows/workers/workflow-instance-bulk-replay.ts +51 -0
- package/src/modules/workflows/workers/workflow-invoke-agent.worker.ts +72 -0
|
@@ -1,12 +1,41 @@
|
|
|
1
1
|
import {
|
|
2
|
+
WorkflowInstance,
|
|
3
|
+
WorkflowDefinition,
|
|
2
4
|
StepInstance,
|
|
3
5
|
UserTask,
|
|
4
6
|
WorkflowEvent
|
|
5
7
|
} from "../data/entities.js";
|
|
6
|
-
import {
|
|
8
|
+
import { emitWorkflowsEvent } from "../events.js";
|
|
9
|
+
import { calculateDueDate, parseDuration } from "./duration.js";
|
|
10
|
+
import {
|
|
11
|
+
CONDITION_STEP_TYPE,
|
|
12
|
+
conditionReadContext,
|
|
13
|
+
evaluateConditionExpression,
|
|
14
|
+
readWaitForConditionConfig
|
|
15
|
+
} from "./condition-handler.js";
|
|
16
|
+
import { mapAgentResultToContext } from "./agent-result-mapping.js";
|
|
17
|
+
import {
|
|
18
|
+
WORKFLOW_AGENT_OUTCOME_CONTEXT_KEY,
|
|
19
|
+
buildAgentOutcomeContextEntry,
|
|
20
|
+
mapDispositionToAgentOutcome
|
|
21
|
+
} from "./outcome-routing.js";
|
|
7
22
|
import { logWorkflowEvent } from "./event-logger.js";
|
|
23
|
+
import { DRY_RUN_EVENT_TYPES, isDryRunInstance } from "./dry-run.js";
|
|
8
24
|
import { findDefinitionForInstance } from "./find-definition.js";
|
|
25
|
+
import { resolveDefinitionInterpolationMode } from "./interpolation-pipeline.js";
|
|
26
|
+
import {
|
|
27
|
+
collectResolvedEntityTypes,
|
|
28
|
+
flattenTaskText,
|
|
29
|
+
resolveTaskAssignment,
|
|
30
|
+
resolveTaskDeadlineDuration,
|
|
31
|
+
resolveTaskDecisions,
|
|
32
|
+
resolveTaskEntityBindings,
|
|
33
|
+
resolveTaskText
|
|
34
|
+
} from "./task-resolution.js";
|
|
35
|
+
import { scheduleUserTaskSla } from "./task-sla.js";
|
|
9
36
|
import { createLogger } from "@open-mercato/shared/lib/logger";
|
|
37
|
+
import { findWorkflowDefinition } from "./find-definition.js";
|
|
38
|
+
import { validateAgainstPorts } from "./port-contract.js";
|
|
10
39
|
const logger = createLogger("workflows");
|
|
11
40
|
class StepExecutionError extends Error {
|
|
12
41
|
constructor(message, code, details) {
|
|
@@ -66,6 +95,33 @@ async function enterStep(em, instance, stepId, context, branch) {
|
|
|
66
95
|
});
|
|
67
96
|
return stepInstance;
|
|
68
97
|
}
|
|
98
|
+
async function emitStepMilestone(em, stepInstance) {
|
|
99
|
+
try {
|
|
100
|
+
const instance = await em.findOne(WorkflowInstance, { id: stepInstance.workflowInstanceId });
|
|
101
|
+
if (!instance) return;
|
|
102
|
+
const definition = await em.findOne(WorkflowDefinition, { id: instance.definitionId });
|
|
103
|
+
const stepDef = definition?.definition?.steps?.find((step) => step.stepId === stepInstance.stepId);
|
|
104
|
+
const milestoneKey = typeof stepDef?.milestone === "string" ? stepDef.milestone : null;
|
|
105
|
+
if (!milestoneKey) return;
|
|
106
|
+
await emitWorkflowsEvent(
|
|
107
|
+
"workflows.instance.milestone_reached",
|
|
108
|
+
{
|
|
109
|
+
instanceId: instance.id,
|
|
110
|
+
workflowId: instance.workflowId,
|
|
111
|
+
milestoneKey,
|
|
112
|
+
// For the trace only. A consumer matches on `milestoneKey`; matching on
|
|
113
|
+
// the step is exactly the coupling the milestone model removes.
|
|
114
|
+
stepId: stepInstance.stepId,
|
|
115
|
+
occurredAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
116
|
+
data: stepInstance.outputData ?? null,
|
|
117
|
+
tenantId: instance.tenantId,
|
|
118
|
+
organizationId: instance.organizationId
|
|
119
|
+
},
|
|
120
|
+
{ persistent: true }
|
|
121
|
+
);
|
|
122
|
+
} catch {
|
|
123
|
+
}
|
|
124
|
+
}
|
|
69
125
|
async function exitStep(em, stepInstance, outputData) {
|
|
70
126
|
const now = /* @__PURE__ */ new Date();
|
|
71
127
|
let executionTimeMs = null;
|
|
@@ -91,6 +147,29 @@ async function exitStep(em, stepInstance, outputData) {
|
|
|
91
147
|
tenantId: stepInstance.tenantId,
|
|
92
148
|
organizationId: stepInstance.organizationId
|
|
93
149
|
});
|
|
150
|
+
await emitStepMilestone(em, stepInstance);
|
|
151
|
+
}
|
|
152
|
+
async function markStepInstanceFailed(em, stepInstance, failure) {
|
|
153
|
+
if (stepInstance.status === "FAILED") return;
|
|
154
|
+
const now = /* @__PURE__ */ new Date();
|
|
155
|
+
stepInstance.status = "FAILED";
|
|
156
|
+
stepInstance.errorData = {
|
|
157
|
+
error: failure.error,
|
|
158
|
+
details: failure.details ?? void 0
|
|
159
|
+
};
|
|
160
|
+
stepInstance.exitedAt = now;
|
|
161
|
+
stepInstance.updatedAt = now;
|
|
162
|
+
await em.flush();
|
|
163
|
+
await logStepEvent(em, {
|
|
164
|
+
workflowInstanceId: stepInstance.workflowInstanceId,
|
|
165
|
+
stepInstanceId: stepInstance.id,
|
|
166
|
+
...failure.branchInstanceId ? { branchInstanceId: failure.branchInstanceId } : {},
|
|
167
|
+
eventType: "STEP_FAILED",
|
|
168
|
+
eventData: { stepId: stepInstance.stepId, error: failure.error },
|
|
169
|
+
...failure.userId ? { userId: failure.userId } : {},
|
|
170
|
+
tenantId: stepInstance.tenantId,
|
|
171
|
+
organizationId: stepInstance.organizationId
|
|
172
|
+
});
|
|
94
173
|
}
|
|
95
174
|
async function executeStep(em, instance, stepId, context, container, branch) {
|
|
96
175
|
try {
|
|
@@ -116,12 +195,23 @@ async function executeStep(em, instance, stepId, context, container, branch) {
|
|
|
116
195
|
instance,
|
|
117
196
|
stepInstance,
|
|
118
197
|
stepDef,
|
|
119
|
-
|
|
198
|
+
{
|
|
199
|
+
...context,
|
|
200
|
+
interpolationMode: resolveDefinitionInterpolationMode(definition.definition),
|
|
201
|
+
workflowName: definition.workflowName
|
|
202
|
+
},
|
|
120
203
|
container,
|
|
121
204
|
branch
|
|
122
205
|
);
|
|
123
206
|
if (result.status === "COMPLETED") {
|
|
124
207
|
await exitStep(em, stepInstance, result.outputData);
|
|
208
|
+
} else if (result.status === "FAILED") {
|
|
209
|
+
await markStepInstanceFailed(em, stepInstance, {
|
|
210
|
+
error: result.error ?? "Step execution failed",
|
|
211
|
+
details: result.outputData,
|
|
212
|
+
branchInstanceId: branch?.id ?? null,
|
|
213
|
+
userId: context.userId
|
|
214
|
+
});
|
|
125
215
|
}
|
|
126
216
|
return result;
|
|
127
217
|
} catch (error) {
|
|
@@ -133,21 +223,11 @@ async function executeStep(em, instance, stepId, context, container, branch) {
|
|
|
133
223
|
status: "ACTIVE"
|
|
134
224
|
});
|
|
135
225
|
if (failedStepInstance) {
|
|
136
|
-
failedStepInstance
|
|
137
|
-
failedStepInstance.errorData = {
|
|
226
|
+
await markStepInstanceFailed(em, failedStepInstance, {
|
|
138
227
|
error: errorMessage,
|
|
139
|
-
details: error instanceof StepExecutionError ? error.details : void 0
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
failedStepInstance.updatedAt = /* @__PURE__ */ new Date();
|
|
143
|
-
await em.flush();
|
|
144
|
-
await logStepEvent(em, {
|
|
145
|
-
workflowInstanceId: instance.id,
|
|
146
|
-
stepInstanceId: failedStepInstance.id,
|
|
147
|
-
eventType: "STEP_FAILED",
|
|
148
|
-
eventData: { error: errorMessage },
|
|
149
|
-
tenantId: instance.tenantId,
|
|
150
|
-
organizationId: instance.organizationId
|
|
228
|
+
details: error instanceof StepExecutionError ? error.details : void 0,
|
|
229
|
+
branchInstanceId: branch?.id ?? null,
|
|
230
|
+
userId: context.userId
|
|
151
231
|
});
|
|
152
232
|
}
|
|
153
233
|
} catch (updateError) {
|
|
@@ -179,10 +259,15 @@ async function executeStepByType(em, instance, stepInstance, stepDef, context, c
|
|
|
179
259
|
);
|
|
180
260
|
}
|
|
181
261
|
return await handleSubWorkflowStep(em, container, instance, stepInstance, stepDef, context);
|
|
262
|
+
case "IF_ELSE":
|
|
263
|
+
case "SWITCH":
|
|
264
|
+
return handleBranchingStep(stepType);
|
|
182
265
|
case "WAIT_FOR_SIGNAL":
|
|
183
266
|
return await handleWaitForSignalStep(em, instance, stepInstance, stepDef, context, branch);
|
|
184
267
|
case "WAIT_FOR_TIMER":
|
|
185
268
|
return await handleWaitForTimerStep(em, instance, stepInstance, stepDef, context, branch);
|
|
269
|
+
case "WAIT_FOR_CONDITION":
|
|
270
|
+
return await handleWaitForConditionStep(em, instance, stepInstance, stepDef, context, branch);
|
|
186
271
|
case "PARALLEL_FORK": {
|
|
187
272
|
if (branch) {
|
|
188
273
|
throw new StepExecutionError(
|
|
@@ -232,6 +317,15 @@ function handleEndStep(stepDef, context) {
|
|
|
232
317
|
}
|
|
233
318
|
};
|
|
234
319
|
}
|
|
320
|
+
function handleBranchingStep(stepType) {
|
|
321
|
+
return {
|
|
322
|
+
status: "COMPLETED",
|
|
323
|
+
outputData: {
|
|
324
|
+
stepType,
|
|
325
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
}
|
|
235
329
|
async function handleAutomatedStep(em, instance, stepInstance, stepDef, context, container, branch) {
|
|
236
330
|
const activities = stepDef.activities || [];
|
|
237
331
|
if (activities.length === 0) {
|
|
@@ -243,14 +337,34 @@ async function handleAutomatedStep(em, instance, stepInstance, stepDef, context,
|
|
|
243
337
|
}
|
|
244
338
|
};
|
|
245
339
|
}
|
|
246
|
-
const { executeActivities } = await import("./activity-executor.js");
|
|
340
|
+
const { executeActivities, interpolateVariables } = await import("./activity-executor.js");
|
|
341
|
+
const agentActivity = activities.find(
|
|
342
|
+
(activity) => activity.activityType === "INVOKE_AGENT" && activity?.config?.input !== void 0
|
|
343
|
+
);
|
|
344
|
+
if (agentActivity) {
|
|
345
|
+
try {
|
|
346
|
+
const resolvedInput = interpolateVariables(
|
|
347
|
+
agentActivity.config.input,
|
|
348
|
+
context.workflowContext,
|
|
349
|
+
instance,
|
|
350
|
+
{ mode: context.interpolationMode }
|
|
351
|
+
);
|
|
352
|
+
if (resolvedInput !== void 0) {
|
|
353
|
+
stepInstance.inputData = resolvedInput;
|
|
354
|
+
stepInstance.updatedAt = /* @__PURE__ */ new Date();
|
|
355
|
+
await em.flush();
|
|
356
|
+
}
|
|
357
|
+
} catch {
|
|
358
|
+
}
|
|
359
|
+
}
|
|
247
360
|
try {
|
|
248
361
|
const results = await executeActivities(em, container, activities, {
|
|
249
362
|
workflowInstance: instance,
|
|
250
363
|
workflowContext: context.workflowContext,
|
|
251
364
|
stepContext: { stepId: stepDef.stepId, stepName: stepDef.stepName },
|
|
252
365
|
stepInstanceId: stepInstance.id,
|
|
253
|
-
userId: context.userId
|
|
366
|
+
userId: context.userId,
|
|
367
|
+
interpolationMode: context.interpolationMode
|
|
254
368
|
});
|
|
255
369
|
const pendingActivities = results.filter((r) => r.async && !r.success);
|
|
256
370
|
if (pendingActivities.length > 0) {
|
|
@@ -293,6 +407,78 @@ async function handleAutomatedStep(em, instance, stepInstance, stepDef, context,
|
|
|
293
407
|
}
|
|
294
408
|
};
|
|
295
409
|
}
|
|
410
|
+
const parkResult = results.find((r) => r.output && r.output.__park);
|
|
411
|
+
if (parkResult) {
|
|
412
|
+
const signalName = parkResult.output.__park.signalName;
|
|
413
|
+
const proposalId = parkResult.output.proposalId;
|
|
414
|
+
const now = /* @__PURE__ */ new Date();
|
|
415
|
+
await logStepEvent(em, {
|
|
416
|
+
workflowInstanceId: instance.id,
|
|
417
|
+
stepInstanceId: stepInstance.id,
|
|
418
|
+
...branch ? { branchInstanceId: branch.id } : {},
|
|
419
|
+
eventType: "SIGNAL_AWAITING",
|
|
420
|
+
eventData: { signalName, proposalId, reason: "INVOKE_AGENT" },
|
|
421
|
+
userId: context.userId,
|
|
422
|
+
tenantId: instance.tenantId,
|
|
423
|
+
organizationId: instance.organizationId
|
|
424
|
+
});
|
|
425
|
+
if (branch) {
|
|
426
|
+
branch.status = "PAUSED";
|
|
427
|
+
branch.updatedAt = now;
|
|
428
|
+
} else {
|
|
429
|
+
instance.status = "PAUSED";
|
|
430
|
+
instance.pausedAt = now;
|
|
431
|
+
instance.updatedAt = now;
|
|
432
|
+
}
|
|
433
|
+
await em.flush();
|
|
434
|
+
return {
|
|
435
|
+
status: "WAITING",
|
|
436
|
+
waitReason: "SIGNAL",
|
|
437
|
+
outputData: { signalName, proposalId, awaitingSince: now }
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
const inlineAgent = results.find(
|
|
441
|
+
(r) => r.output && typeof r.output.kind === "string" && "agentId" in r.output
|
|
442
|
+
);
|
|
443
|
+
if (inlineAgent && !branch) {
|
|
444
|
+
const out = inlineAgent.output;
|
|
445
|
+
const agentActivity2 = activities.find(
|
|
446
|
+
(a) => a.activityType === "INVOKE_AGENT" && a.activityId === inlineAgent.activityId
|
|
447
|
+
);
|
|
448
|
+
const mappedPatch = mapAgentResultToContext(
|
|
449
|
+
{
|
|
450
|
+
kind: out.kind,
|
|
451
|
+
agentId: out.agentId,
|
|
452
|
+
proposalId: out.proposalId,
|
|
453
|
+
proposalPayload: out.proposalPayload,
|
|
454
|
+
data: out.data,
|
|
455
|
+
artifacts: out.artifacts
|
|
456
|
+
},
|
|
457
|
+
agentActivity2?.config?.outputMapping
|
|
458
|
+
);
|
|
459
|
+
const contextPatch = mappedPatch ?? (out.kind === "auto_approved" ? {
|
|
460
|
+
disposition: "auto_approved",
|
|
461
|
+
agentProposalId: out.proposalId,
|
|
462
|
+
proposalPayload: out.proposalPayload
|
|
463
|
+
} : out.kind === "artifact" ? {
|
|
464
|
+
disposition: "researcher",
|
|
465
|
+
[`${stepInstance.stepId}_agent`]: { artifacts: out.artifacts, summary: out.summary }
|
|
466
|
+
} : null);
|
|
467
|
+
const resolvedOutcome = mapDispositionToAgentOutcome(out.kind);
|
|
468
|
+
const outcomeMarker = resolvedOutcome ? {
|
|
469
|
+
[WORKFLOW_AGENT_OUTCOME_CONTEXT_KEY]: buildAgentOutcomeContextEntry(
|
|
470
|
+
stepInstance.stepId,
|
|
471
|
+
resolvedOutcome,
|
|
472
|
+
out.proposalId
|
|
473
|
+
)
|
|
474
|
+
} : null;
|
|
475
|
+
const nextContext = { ...instance.context, ...contextPatch ?? {}, ...outcomeMarker ?? {} };
|
|
476
|
+
if (contextPatch || outcomeMarker) {
|
|
477
|
+
instance.context = nextContext;
|
|
478
|
+
instance.updatedAt = /* @__PURE__ */ new Date();
|
|
479
|
+
await em.flush();
|
|
480
|
+
}
|
|
481
|
+
}
|
|
296
482
|
const activityOutputs = results.reduce((acc, r) => {
|
|
297
483
|
if (r.output) {
|
|
298
484
|
acc[r.activityId] = r.output;
|
|
@@ -315,27 +501,159 @@ async function handleAutomatedStep(em, instance, stepInstance, stepDef, context,
|
|
|
315
501
|
};
|
|
316
502
|
}
|
|
317
503
|
}
|
|
504
|
+
function resolveUserTaskDeadline(stepId, slaDuration) {
|
|
505
|
+
try {
|
|
506
|
+
return calculateDueDate(slaDuration);
|
|
507
|
+
} catch (error) {
|
|
508
|
+
throw new StepExecutionError(
|
|
509
|
+
`Invalid user task deadline "${slaDuration}": ${error instanceof Error ? error.message : String(error)}`,
|
|
510
|
+
"INVALID_USER_TASK_DEADLINE",
|
|
511
|
+
{ stepId, slaDuration }
|
|
512
|
+
);
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
async function emitTaskAssignedEvent(userTask, instance, context, quickAction) {
|
|
516
|
+
try {
|
|
517
|
+
await emitWorkflowsEvent(
|
|
518
|
+
"workflows.task.assigned",
|
|
519
|
+
{
|
|
520
|
+
// Everything the notification quick-action rule needs, and nothing more.
|
|
521
|
+
// ABSENT means "unknown", and the subscriber falls back to the deep
|
|
522
|
+
// link — a quick action must never be offered on a guess.
|
|
523
|
+
...quickAction ? { quickAction } : {},
|
|
524
|
+
taskId: userTask.id,
|
|
525
|
+
taskName: userTask.taskName,
|
|
526
|
+
workflowInstanceId: instance.id,
|
|
527
|
+
workflowId: instance.workflowId,
|
|
528
|
+
workflowName: context.workflowName ?? instance.workflowId,
|
|
529
|
+
assignedUserId: userTask.assignedTo ?? null,
|
|
530
|
+
assignedToRoles: userTask.assignedToRoles ?? null,
|
|
531
|
+
dueDate: userTask.dueDate ? userTask.dueDate.toISOString() : null,
|
|
532
|
+
// Additive: the records the task is about. Modules that own those
|
|
533
|
+
// records subscribe and surface the task on their own turf — the
|
|
534
|
+
// customers module writes a `CustomerTodoLink` from this. Workflows
|
|
535
|
+
// never reaches into another module's tables to do it itself.
|
|
536
|
+
entityBindings: userTask.entityBindings ?? null,
|
|
537
|
+
tenantId: instance.tenantId,
|
|
538
|
+
organizationId: instance.organizationId ?? null
|
|
539
|
+
},
|
|
540
|
+
{ persistent: true }
|
|
541
|
+
);
|
|
542
|
+
} catch (error) {
|
|
543
|
+
logger.error("Failed to emit workflows.task.assigned", {
|
|
544
|
+
component: "step-handler",
|
|
545
|
+
taskId: userTask.id,
|
|
546
|
+
err: error
|
|
547
|
+
});
|
|
548
|
+
}
|
|
549
|
+
if (userTask.assigneeKind !== "customer" || !userTask.assignedTo) return;
|
|
550
|
+
try {
|
|
551
|
+
await emitWorkflowsEvent(
|
|
552
|
+
"workflows.task.portal_assigned",
|
|
553
|
+
{
|
|
554
|
+
taskId: userTask.id,
|
|
555
|
+
recipientUserId: userTask.assignedTo,
|
|
556
|
+
tenantId: instance.tenantId,
|
|
557
|
+
organizationId: instance.organizationId ?? null
|
|
558
|
+
},
|
|
559
|
+
{ persistent: false }
|
|
560
|
+
);
|
|
561
|
+
} catch (error) {
|
|
562
|
+
logger.error("Failed to emit workflows.task.portal_assigned", {
|
|
563
|
+
component: "step-handler",
|
|
564
|
+
taskId: userTask.id,
|
|
565
|
+
err: error
|
|
566
|
+
});
|
|
567
|
+
}
|
|
568
|
+
}
|
|
318
569
|
async function handleUserTaskStep(em, instance, stepInstance, stepDef, context, branch) {
|
|
319
570
|
const userTaskConfig = stepDef.userTaskConfig || {};
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
571
|
+
const { interpolateVariables } = await import("./activity-executor.js");
|
|
572
|
+
const interpolate = (value) => interpolateVariables(value, context.workflowContext, instance);
|
|
573
|
+
const assignment = resolveTaskAssignment(userTaskConfig, interpolate);
|
|
574
|
+
if (assignment.fellBackToRoles) {
|
|
575
|
+
logger.warn("Dynamic task assignee resolved to nothing; falling back to the role queue", {
|
|
576
|
+
component: "step-handler",
|
|
577
|
+
stepId: stepDef.stepId,
|
|
578
|
+
workflowInstanceId: instance.id,
|
|
579
|
+
assignedToRoles: assignment.assignedToRoles
|
|
580
|
+
});
|
|
325
581
|
}
|
|
582
|
+
if (assignment.fellBackFromCustomer) {
|
|
583
|
+
logger.warn("Portal task assignee resolved to nothing; task created for the backoffice instead", {
|
|
584
|
+
component: "step-handler",
|
|
585
|
+
stepId: stepDef.stepId,
|
|
586
|
+
workflowInstanceId: instance.id
|
|
587
|
+
});
|
|
588
|
+
}
|
|
589
|
+
const { bindings, unresolved } = resolveTaskEntityBindings(userTaskConfig.entityBindings, interpolate);
|
|
590
|
+
if (unresolved.length) {
|
|
591
|
+
logger.warn("Task entity bindings skipped because their ids did not resolve", {
|
|
592
|
+
component: "step-handler",
|
|
593
|
+
stepId: stepDef.stepId,
|
|
594
|
+
workflowInstanceId: instance.id,
|
|
595
|
+
unresolved
|
|
596
|
+
});
|
|
597
|
+
}
|
|
598
|
+
const taskName = String(interpolate(stepDef.stepName) ?? stepDef.stepName);
|
|
599
|
+
const instructions = resolveTaskText(userTaskConfig.instructions, interpolate);
|
|
600
|
+
const decisions = resolveTaskDecisions(userTaskConfig.decisions, interpolate);
|
|
601
|
+
const deadlineDuration = resolveTaskDeadlineDuration(userTaskConfig);
|
|
326
602
|
const now = /* @__PURE__ */ new Date();
|
|
603
|
+
if (isDryRunInstance(instance)) {
|
|
604
|
+
await logStepEvent(em, {
|
|
605
|
+
workflowInstanceId: instance.id,
|
|
606
|
+
stepInstanceId: stepInstance.id,
|
|
607
|
+
...branch ? { branchInstanceId: branch.id } : {},
|
|
608
|
+
eventType: DRY_RUN_EVENT_TYPES.userTaskSimulated,
|
|
609
|
+
eventData: {
|
|
610
|
+
taskName,
|
|
611
|
+
assignedTo: assignment.assignedTo,
|
|
612
|
+
assignedToRoles: assignment.assignedToRoles,
|
|
613
|
+
assigneeKind: assignment.assigneeKind,
|
|
614
|
+
...bindings.length ? { entityBindings: bindings } : {},
|
|
615
|
+
...decisions.length ? { decisions } : {},
|
|
616
|
+
...deadlineDuration ? { deadlineDuration } : {}
|
|
617
|
+
},
|
|
618
|
+
tenantId: instance.tenantId,
|
|
619
|
+
organizationId: instance.organizationId
|
|
620
|
+
});
|
|
621
|
+
if (branch) {
|
|
622
|
+
branch.status = "PAUSED";
|
|
623
|
+
branch.updatedAt = now;
|
|
624
|
+
} else {
|
|
625
|
+
instance.status = "PAUSED";
|
|
626
|
+
instance.updatedAt = now;
|
|
627
|
+
}
|
|
628
|
+
await em.flush();
|
|
629
|
+
return {
|
|
630
|
+
status: "WAITING",
|
|
631
|
+
waitReason: "USER_TASK",
|
|
632
|
+
outputData: { simulated: true, wouldRaiseTask: taskName }
|
|
633
|
+
};
|
|
634
|
+
}
|
|
327
635
|
const userTask = em.create(UserTask, {
|
|
328
636
|
workflowInstanceId: instance.id,
|
|
329
637
|
stepInstanceId: stepInstance.id,
|
|
330
638
|
branchInstanceId: branch ? branch.id : null,
|
|
331
|
-
taskName
|
|
332
|
-
description: stepDef.description
|
|
639
|
+
taskName,
|
|
640
|
+
description: flattenTaskText(instructions) ?? stepDef.description ?? null,
|
|
333
641
|
status: "PENDING",
|
|
334
642
|
formSchema: userTaskConfig.formSchema || null,
|
|
335
643
|
formData: null,
|
|
336
|
-
assignedTo,
|
|
337
|
-
|
|
338
|
-
|
|
644
|
+
assignedTo: assignment.assignedTo,
|
|
645
|
+
// Decided by `resolveTaskAssignment` from the authored `assigneeKind`, and
|
|
646
|
+
// `'customer'` only when an individual assignee actually resolved. Written
|
|
647
|
+
// explicitly rather than left to the column default so the discriminator is
|
|
648
|
+
// a decision at every creation site, not an accident.
|
|
649
|
+
assigneeKind: assignment.assigneeKind,
|
|
650
|
+
assignedToRoles: assignment.assignedToRoles,
|
|
651
|
+
entityBindings: bindings.length ? bindings : null,
|
|
652
|
+
// Denormalized from the SAME resolved bindings, so the two can never drift.
|
|
653
|
+
// Null for a task about nothing, which is what the vacuous-pass rule reads.
|
|
654
|
+
entityTypes: bindings.length ? collectResolvedEntityTypes(bindings) : null,
|
|
655
|
+
priority: userTaskConfig.priority ?? null,
|
|
656
|
+
dueDate: deadlineDuration ? resolveUserTaskDeadline(stepDef.stepId, deadlineDuration) : null,
|
|
339
657
|
tenantId: instance.tenantId,
|
|
340
658
|
organizationId: instance.organizationId,
|
|
341
659
|
createdAt: now,
|
|
@@ -351,11 +669,32 @@ async function handleUserTaskStep(em, instance, stepInstance, stepDef, context,
|
|
|
351
669
|
userTaskId: userTask.id,
|
|
352
670
|
taskName: userTask.taskName,
|
|
353
671
|
assignedTo: userTask.assignedTo,
|
|
354
|
-
assignedToRoles: userTask.assignedToRoles
|
|
672
|
+
assignedToRoles: userTask.assignedToRoles,
|
|
673
|
+
...bindings.length ? { entityBindings: bindings } : {},
|
|
674
|
+
...userTask.priority ? { priority: userTask.priority } : {},
|
|
675
|
+
...decisions.length ? { decisions } : {},
|
|
676
|
+
...assignment.fellBackToRoles ? { assignmentFallback: "roles" } : {}
|
|
355
677
|
},
|
|
356
678
|
tenantId: instance.tenantId,
|
|
357
679
|
organizationId: instance.organizationId
|
|
358
680
|
});
|
|
681
|
+
await emitTaskAssignedEvent(userTask, instance, context, {
|
|
682
|
+
decisions: decisions.map((decision) => ({ id: decision.id })),
|
|
683
|
+
formSchema: userTask.formSchema ?? null,
|
|
684
|
+
editablePrefilled: userTaskConfig.editablePrefilled ?? null
|
|
685
|
+
});
|
|
686
|
+
await scheduleUserTaskSla({
|
|
687
|
+
workflowInstanceId: instance.id,
|
|
688
|
+
stepInstanceId: stepInstance.id,
|
|
689
|
+
branchInstanceId: branch ? branch.id : null,
|
|
690
|
+
userTaskId: userTask.id,
|
|
691
|
+
dueDate: userTask.dueDate ?? null,
|
|
692
|
+
reminders: userTaskConfig.reminders ?? null,
|
|
693
|
+
tenantId: instance.tenantId,
|
|
694
|
+
organizationId: instance.organizationId,
|
|
695
|
+
userId: context.userId,
|
|
696
|
+
now
|
|
697
|
+
});
|
|
359
698
|
if (branch) {
|
|
360
699
|
branch.status = "PAUSED";
|
|
361
700
|
branch.updatedAt = now;
|
|
@@ -380,9 +719,33 @@ async function handleSubWorkflowStep(em, container, instance, stepInstance, step
|
|
|
380
719
|
error: "Sub-workflow ID not specified in step configuration"
|
|
381
720
|
};
|
|
382
721
|
}
|
|
383
|
-
|
|
722
|
+
let childContext = mapInputData(instance.context, inputMapping || {});
|
|
384
723
|
const { startWorkflow, executeWorkflow } = await import("./workflow-executor.js");
|
|
385
724
|
try {
|
|
725
|
+
const childDefinition = await findWorkflowDefinition(em, {
|
|
726
|
+
workflowId: subWorkflowId,
|
|
727
|
+
version,
|
|
728
|
+
tenantId: instance.tenantId,
|
|
729
|
+
organizationId: instance.organizationId
|
|
730
|
+
});
|
|
731
|
+
const ioContract = childDefinition?.definition?.io;
|
|
732
|
+
if (ioContract?.inputs?.length) {
|
|
733
|
+
const { coerced, errors } = validateAgainstPorts(childContext, ioContract.inputs);
|
|
734
|
+
if (errors.length > 0) {
|
|
735
|
+
const message = `Sub-workflow input validation failed: ${errors.map((e) => e.message).join("; ")}`;
|
|
736
|
+
await logStepEvent(em, {
|
|
737
|
+
workflowInstanceId: instance.id,
|
|
738
|
+
stepInstanceId: stepInstance.id,
|
|
739
|
+
eventType: "SUB_WORKFLOW_FAILED",
|
|
740
|
+
eventData: { subWorkflowId, reason: "INPUT_VALIDATION", error: message },
|
|
741
|
+
userId: context.userId,
|
|
742
|
+
tenantId: instance.tenantId,
|
|
743
|
+
organizationId: instance.organizationId
|
|
744
|
+
});
|
|
745
|
+
return { status: "FAILED", error: message };
|
|
746
|
+
}
|
|
747
|
+
childContext = coerced;
|
|
748
|
+
}
|
|
386
749
|
const childInstance = await startWorkflow(em, {
|
|
387
750
|
workflowId: subWorkflowId,
|
|
388
751
|
version,
|
|
@@ -418,7 +781,20 @@ async function handleSubWorkflowStep(em, container, instance, stepInstance, step
|
|
|
418
781
|
userId: context.userId
|
|
419
782
|
});
|
|
420
783
|
if (result.status === "COMPLETED") {
|
|
421
|
-
const
|
|
784
|
+
const mapped = mapSubWorkflowOutput(result.context, outputMapping || {}, ioContract);
|
|
785
|
+
if (mapped.error) {
|
|
786
|
+
await logStepEvent(em, {
|
|
787
|
+
workflowInstanceId: instance.id,
|
|
788
|
+
stepInstanceId: stepInstance.id,
|
|
789
|
+
eventType: "SUB_WORKFLOW_FAILED",
|
|
790
|
+
eventData: { childInstanceId: childInstance.id, reason: "OUTPUT_VALIDATION", error: mapped.error },
|
|
791
|
+
userId: context.userId,
|
|
792
|
+
tenantId: instance.tenantId,
|
|
793
|
+
organizationId: instance.organizationId
|
|
794
|
+
});
|
|
795
|
+
return { status: "FAILED", error: mapped.error };
|
|
796
|
+
}
|
|
797
|
+
const outputData = mapped.outputData;
|
|
422
798
|
await logStepEvent(em, {
|
|
423
799
|
workflowInstanceId: instance.id,
|
|
424
800
|
stepInstanceId: stepInstance.id,
|
|
@@ -453,9 +829,29 @@ async function handleSubWorkflowStep(em, container, instance, stepInstance, step
|
|
|
453
829
|
error: `Sub-workflow failed: ${result.errors?.join(", ")}`
|
|
454
830
|
};
|
|
455
831
|
} else {
|
|
832
|
+
const { SUB_WORKFLOW_SIGNAL_NAME } = await import("./activity-executor.js");
|
|
833
|
+
const now = /* @__PURE__ */ new Date();
|
|
834
|
+
await logStepEvent(em, {
|
|
835
|
+
workflowInstanceId: instance.id,
|
|
836
|
+
stepInstanceId: stepInstance.id,
|
|
837
|
+
eventType: "SIGNAL_AWAITING",
|
|
838
|
+
eventData: {
|
|
839
|
+
signalName: SUB_WORKFLOW_SIGNAL_NAME,
|
|
840
|
+
childInstanceId: childInstance.id,
|
|
841
|
+
reason: "SUB_WORKFLOW"
|
|
842
|
+
},
|
|
843
|
+
userId: context.userId,
|
|
844
|
+
tenantId: instance.tenantId,
|
|
845
|
+
organizationId: instance.organizationId
|
|
846
|
+
});
|
|
847
|
+
instance.status = "PAUSED";
|
|
848
|
+
instance.pausedAt = now;
|
|
849
|
+
instance.updatedAt = now;
|
|
850
|
+
await em.flush();
|
|
456
851
|
return {
|
|
457
|
-
status: "
|
|
458
|
-
|
|
852
|
+
status: "WAITING",
|
|
853
|
+
waitReason: "SIGNAL",
|
|
854
|
+
outputData: { childInstanceId: childInstance.id }
|
|
459
855
|
};
|
|
460
856
|
}
|
|
461
857
|
} catch (error) {
|
|
@@ -601,6 +997,92 @@ async function handleWaitForTimerStep(em, instance, stepInstance, stepDef, conte
|
|
|
601
997
|
}
|
|
602
998
|
};
|
|
603
999
|
}
|
|
1000
|
+
async function handleWaitForConditionStep(em, instance, stepInstance, stepDef, context, branch) {
|
|
1001
|
+
const config = readWaitForConditionConfig(stepDef);
|
|
1002
|
+
const data = {
|
|
1003
|
+
...conditionReadContext(instance, branch ?? null),
|
|
1004
|
+
...context.workflowContext || {}
|
|
1005
|
+
};
|
|
1006
|
+
const met = await evaluateConditionExpression({
|
|
1007
|
+
condition: config.condition,
|
|
1008
|
+
data,
|
|
1009
|
+
instanceId: instance.id,
|
|
1010
|
+
userId: context.userId
|
|
1011
|
+
});
|
|
1012
|
+
const now = /* @__PURE__ */ new Date();
|
|
1013
|
+
if (met) {
|
|
1014
|
+
await logWorkflowEvent(em, {
|
|
1015
|
+
workflowInstanceId: instance.id,
|
|
1016
|
+
stepInstanceId: stepInstance.id,
|
|
1017
|
+
...branch ? { branchInstanceId: branch.id } : {},
|
|
1018
|
+
eventType: "CONDITION_MET",
|
|
1019
|
+
eventData: { stepId: stepDef.stepId, attempts: 1, waitedMs: 0, wokenBy: "immediate" },
|
|
1020
|
+
userId: context.userId,
|
|
1021
|
+
tenantId: instance.tenantId,
|
|
1022
|
+
organizationId: instance.organizationId
|
|
1023
|
+
});
|
|
1024
|
+
return {
|
|
1025
|
+
status: "COMPLETED",
|
|
1026
|
+
outputData: {
|
|
1027
|
+
stepType: CONDITION_STEP_TYPE,
|
|
1028
|
+
conditionMet: true,
|
|
1029
|
+
attempts: 1,
|
|
1030
|
+
waitedMs: 0,
|
|
1031
|
+
wokenBy: "immediate"
|
|
1032
|
+
}
|
|
1033
|
+
};
|
|
1034
|
+
}
|
|
1035
|
+
const deadlineAt = new Date(now.getTime() + config.timeoutMs);
|
|
1036
|
+
const { enqueueConditionCheckJob } = await import("./activity-executor.js");
|
|
1037
|
+
const jobId = await enqueueConditionCheckJob({
|
|
1038
|
+
workflowInstanceId: instance.id,
|
|
1039
|
+
stepInstanceId: stepInstance.id,
|
|
1040
|
+
branchInstanceId: branch ? branch.id : void 0,
|
|
1041
|
+
tenantId: instance.tenantId,
|
|
1042
|
+
organizationId: instance.organizationId,
|
|
1043
|
+
userId: context.userId,
|
|
1044
|
+
deadlineAt: deadlineAt.toISOString(),
|
|
1045
|
+
attempt: 1,
|
|
1046
|
+
delayMs: Math.min(config.pollIntervalMs, config.timeoutMs)
|
|
1047
|
+
});
|
|
1048
|
+
await logWorkflowEvent(em, {
|
|
1049
|
+
workflowInstanceId: instance.id,
|
|
1050
|
+
stepInstanceId: stepInstance.id,
|
|
1051
|
+
...branch ? { branchInstanceId: branch.id } : {},
|
|
1052
|
+
eventType: "CONDITION_AWAITING",
|
|
1053
|
+
eventData: {
|
|
1054
|
+
stepId: stepDef.stepId,
|
|
1055
|
+
condition: config.condition,
|
|
1056
|
+
deadlineAt: deadlineAt.toISOString(),
|
|
1057
|
+
pollIntervalMs: config.pollIntervalMs,
|
|
1058
|
+
onTimeout: config.onTimeout,
|
|
1059
|
+
jobId
|
|
1060
|
+
},
|
|
1061
|
+
userId: context.userId,
|
|
1062
|
+
tenantId: instance.tenantId,
|
|
1063
|
+
organizationId: instance.organizationId
|
|
1064
|
+
});
|
|
1065
|
+
if (branch) {
|
|
1066
|
+
branch.status = "PAUSED";
|
|
1067
|
+
branch.updatedAt = now;
|
|
1068
|
+
} else {
|
|
1069
|
+
instance.status = "PAUSED";
|
|
1070
|
+
instance.pausedAt = now;
|
|
1071
|
+
instance.updatedAt = now;
|
|
1072
|
+
}
|
|
1073
|
+
await em.flush();
|
|
1074
|
+
return {
|
|
1075
|
+
status: "WAITING",
|
|
1076
|
+
waitReason: "CONDITION",
|
|
1077
|
+
outputData: {
|
|
1078
|
+
stepType: CONDITION_STEP_TYPE,
|
|
1079
|
+
deadlineAt: deadlineAt.toISOString(),
|
|
1080
|
+
pollIntervalMs: config.pollIntervalMs,
|
|
1081
|
+
onTimeout: config.onTimeout,
|
|
1082
|
+
jobId
|
|
1083
|
+
}
|
|
1084
|
+
};
|
|
1085
|
+
}
|
|
604
1086
|
async function logStepEvent(em, event) {
|
|
605
1087
|
const workflowEvent = em.create(WorkflowEvent, {
|
|
606
1088
|
...event,
|
|
@@ -609,25 +1091,6 @@ async function logStepEvent(em, event) {
|
|
|
609
1091
|
await em.persist(workflowEvent).flush();
|
|
610
1092
|
return workflowEvent;
|
|
611
1093
|
}
|
|
612
|
-
function calculateDueDate(duration) {
|
|
613
|
-
const now = /* @__PURE__ */ new Date();
|
|
614
|
-
const daysMatch = duration.match(/P(\d+)D/);
|
|
615
|
-
if (daysMatch) {
|
|
616
|
-
const days = parseInt(daysMatch[1], 10);
|
|
617
|
-
return new Date(now.getTime() + days * 24 * 60 * 60 * 1e3);
|
|
618
|
-
}
|
|
619
|
-
const hoursMatch = duration.match(/PT(\d+)H/);
|
|
620
|
-
if (hoursMatch) {
|
|
621
|
-
const hours = parseInt(hoursMatch[1], 10);
|
|
622
|
-
return new Date(now.getTime() + hours * 60 * 60 * 1e3);
|
|
623
|
-
}
|
|
624
|
-
const weeksMatch = duration.match(/P(\d+)W/);
|
|
625
|
-
if (weeksMatch) {
|
|
626
|
-
const weeks = parseInt(weeksMatch[1], 10);
|
|
627
|
-
return new Date(now.getTime() + weeks * 7 * 24 * 60 * 60 * 1e3);
|
|
628
|
-
}
|
|
629
|
-
return new Date(now.getTime() + 24 * 60 * 60 * 1e3);
|
|
630
|
-
}
|
|
631
1094
|
function getNestedValue(obj, path) {
|
|
632
1095
|
return path.split(".").reduce((current, key) => current?.[key], obj);
|
|
633
1096
|
}
|
|
@@ -660,10 +1123,23 @@ function mapOutputData(childContext, mapping) {
|
|
|
660
1123
|
}
|
|
661
1124
|
return Object.keys(result).length > 0 ? result : childContext;
|
|
662
1125
|
}
|
|
1126
|
+
function mapSubWorkflowOutput(childContext, outputMapping, ioContract) {
|
|
1127
|
+
let outputData = mapOutputData(childContext, outputMapping || {});
|
|
1128
|
+
if (ioContract?.outputs?.length) {
|
|
1129
|
+
const { coerced, errors } = validateAgainstPorts(outputData, ioContract.outputs);
|
|
1130
|
+
if (errors.length > 0) {
|
|
1131
|
+
return { error: `Sub-workflow output validation failed: ${errors.map((e) => e.message).join("; ")}` };
|
|
1132
|
+
}
|
|
1133
|
+
outputData = coerced;
|
|
1134
|
+
}
|
|
1135
|
+
return { outputData };
|
|
1136
|
+
}
|
|
663
1137
|
export {
|
|
664
1138
|
StepExecutionError,
|
|
665
1139
|
enterStep,
|
|
666
1140
|
executeStep,
|
|
667
|
-
exitStep
|
|
1141
|
+
exitStep,
|
|
1142
|
+
mapSubWorkflowOutput,
|
|
1143
|
+
markStepInstanceFailed
|
|
668
1144
|
};
|
|
669
1145
|
//# sourceMappingURL=step-handler.js.map
|