@acorex/platform 21.0.0-next.7 → 21.0.0-next.70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +281 -23
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs +163 -0
  4. package/fesm2022/acorex-platform-common-common-settings.provider-Bi1RYif5.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +1370 -276
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +1185 -514
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +557 -826
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +832 -189
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs +121 -0
  14. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-layout-components.mjs +6309 -1956
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +456 -204
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs +371 -0
  20. package/fesm2022/acorex-platform-layout-entity-attachments-page.component-D8iQnT-R.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs +100 -0
  22. package/fesm2022/acorex-platform-layout-entity-file-list-popup.component-_yrP5SQe.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-layout-entity.mjs +22488 -10232
  24. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  25. package/fesm2022/acorex-platform-layout-views.mjs +564 -170
  26. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  27. package/fesm2022/acorex-platform-layout-widget-core.mjs +2084 -481
  28. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  29. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  30. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  32. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  33. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  34. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs +116 -0
  36. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-J0zcGKBX.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs} +6 -6
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BcpRkpJp.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs} +5 -5
  40. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-DQtK4lxl.mjs.map +1 -0
  41. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  42. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-layout-widgets.mjs +10326 -7981
  44. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-native.mjs +8 -7
  46. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-runtime.mjs +391 -166
  48. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  49. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs +160 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-CWLfNqV0.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs +120 -0
  52. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-C7cT82K2.mjs.map +1 -0
  53. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs → acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs} +21 -28
  54. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-Br9p5aXT.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-themes-default-error-401.component-cfREo88K.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  57. package/fesm2022/{acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
  58. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  60. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  61. package/fesm2022/acorex-platform-themes-default.mjs +2283 -83
  62. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  65. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  66. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  67. package/fesm2022/{acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs → acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs} +52 -33
  68. package/fesm2022/acorex-platform-themes-shared-settings.provider-BjuzSe0T.mjs.map +1 -0
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs +94 -0
  70. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-D566Kdvy.mjs.map +1 -0
  71. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs +86 -0
  72. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-D7-rCGl7.mjs.map +1 -0
  73. package/fesm2022/acorex-platform-themes-shared.mjs +767 -609
  74. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  75. package/fesm2022/acorex-platform-workflow.mjs +978 -238
  76. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  77. package/fesm2022/acorex-platform.mjs.map +1 -1
  78. package/package.json +40 -38
  79. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +241 -4
  80. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +822 -89
  81. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +658 -133
  82. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +744 -412
  83. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +194 -49
  84. package/types/acorex-platform-layout-components.d.ts +3253 -0
  85. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +96 -18
  86. package/types/acorex-platform-layout-entity.d.ts +4439 -0
  87. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +179 -56
  88. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +398 -127
  89. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +1120 -501
  90. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  91. package/types/acorex-platform-runtime.d.ts +571 -0
  92. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +233 -6
  93. package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +24 -2
  94. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +620 -617
  95. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs +0 -71
  96. package/fesm2022/acorex-platform-common-common-settings.provider-zhqNP3xb.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-C3VoBb_b.mjs.map +0 -1
  98. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs +0 -135
  99. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-CxrsI6Hn.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-V31OpYah.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-BtZMBxYp.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-Ck7-wpT2.mjs.map +0 -1
  103. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-y8vjUiVs.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Df1BFkSa.mjs.map +0 -1
  105. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs +0 -157
  106. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-VIGuU5M4.mjs.map +0 -1
  107. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DfJEx_bs.mjs +0 -1542
  108. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DfJEx_bs.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs +0 -101
  110. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-Ua3ZA5hk.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-eMBby9k4.mjs.map +0 -1
  112. package/fesm2022/acorex-platform-themes-default-error-401.component-cfREo88K.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-default-error-404.component-CdCV5ZoA.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs +0 -19
  115. package/fesm2022/acorex-platform-themes-default-error-offline.component-E7SzBcAt.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-C0EpfU2k.mjs.map +0 -1
  117. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-9W52W6Nu.mjs.map +0 -1
  118. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +0 -1
  119. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs +0 -65
  120. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-DTnfRy5f.mjs.map +0 -1
  121. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs +0 -64
  122. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-DY0JtT1v.mjs.map +0 -1
  123. package/layout/components/index.d.ts +0 -1669
  124. package/layout/entity/index.d.ts +0 -2287
  125. package/runtime/index.d.ts +0 -307
  126. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -2,9 +2,7 @@ import * as rxjs from 'rxjs';
2
2
  import { Observable } from 'rxjs';
3
3
  import * as i0 from '@angular/core';
4
4
  import { Type, ModuleWithProviders, Injector, InjectionToken } from '@angular/core';
5
- import { AXPCommand, AXPExecuteCommandResultPromise } from '@acorex/platform/runtime';
6
- import { AXPCategoryEntity, AXPValidationRules } from '@acorex/platform/core';
7
- import { AXPWidgetTypesMap } from '@acorex/platform/layout/widget-core';
5
+ import { AXPProperty, AXPOptionsData, AXPMetaData, AXPEntityOp, AXPMultiLanguageString, AXPCategoryEntity, AXPExpressionEvaluatorScope } from '@acorex/platform/core';
8
6
 
9
7
  declare class AXPWorkflowError extends Error {
10
8
  inner: Error | null;
@@ -147,494 +145,170 @@ declare class AXPWorkflowService {
147
145
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPWorkflowService>;
148
146
  }
149
147
 
150
- /**
151
- * Base entity with versioning support.
152
- */
153
- interface AXPVersionedEntity {
154
- version: number;
155
- isLatest: boolean;
156
- isPublished: boolean;
157
- }
158
- /**
159
- * Workflow definition stored in database.
160
- * This is the stored format that matches Elsa backend structure.
161
- */
162
- interface AXPStoredWorkflowDefinition extends AXPVersionedEntity {
163
- /**
164
- * Unique ID of this workflow definition version.
165
- */
166
- id: string;
167
- /**
168
- * Unique workflow name (same across all versions).
169
- * This is the primary identifier (replaces definitionId).
170
- */
171
- name: string;
172
- /**
173
- * Tenant ID (nullable).
174
- */
175
- tenantId?: string | null;
176
- /**
177
- * Description of what the workflow does.
178
- */
179
- description?: string | null;
180
- /**
181
- * Creation timestamp (ISO date-time).
182
- */
183
- createdAt: string;
184
- /**
185
- * Version of the tool that produced this definition (e.g. "3.2.0.0").
186
- */
187
- toolVersion?: string | null;
188
- /**
189
- * Materializer name for deserialization.
190
- */
191
- materializerName?: string;
192
- /**
193
- * JSON data (for simple workflows).
194
- */
195
- stringData?: string;
196
- /**
197
- * Binary data (for complex workflows).
198
- */
199
- binaryData?: Uint8Array;
200
- }
201
- /**
202
- * Variable definition.
203
- * Matches VariableDefinition from workflow definition schema.
204
- */
205
- interface AXPVariableDefinition {
206
- /**
207
- * Variable ID.
208
- */
209
- id?: string;
210
- /**
211
- * Variable name.
212
- */
213
- name: string;
214
- /**
215
- * Type name (e.g., "String", "Int32", "Boolean").
216
- */
217
- typeName: string;
218
- /**
219
- * Whether this is an array type.
220
- */
221
- isArray?: boolean;
222
- /**
223
- * Variable value (as string expression or literal).
224
- */
225
- value?: string | null;
226
- /**
227
- * Storage driver type name (for custom storage).
228
- */
229
- storageDriverTypeName?: string | null;
230
- }
231
- /**
232
- * Workflow input definition.
233
- * Matches WorkflowInputDefinition from workflow definition schema.
234
- */
235
- interface AXPWorkflowInputDefinition {
236
- /**
237
- * Input type (e.g., "String", "Int32", "Object").
238
- */
239
- type: string;
240
- /**
241
- * Input name.
242
- */
148
+ interface AXPWorkflowDefinition {
149
+ schemaVersion: 'acorex-platform-workflow/v1';
243
150
  name: string;
244
- /**
245
- * Display name.
246
- */
247
- displayName?: string;
248
- /**
249
- * Description.
250
- */
251
- description?: string;
252
- /**
253
- * Category for grouping.
254
- */
255
- category?: string;
256
- /**
257
- * UI hint (widget type).
258
- */
259
- uiHint?: string;
260
- /**
261
- * Storage driver type (for custom storage).
262
- */
263
- storageDriverType?: string | null;
151
+ title?: AXPMultiLanguageString | null;
152
+ description?: AXPMultiLanguageString | null;
153
+ variables?: AXPProperty[];
154
+ inputs?: AXPProperty[];
155
+ outputs?: AXPWorkflowOutputProperty[];
156
+ graph: AXPWorkflowGraph;
157
+ customProperties?: Record<string, any>;
158
+ /** engine specific (Elsa, ...) */
159
+ extensions?: AXPWorkflowExtensions;
160
+ /**
161
+ * Workflow bindings configuration.
162
+ * Defines which entities and events should trigger this workflow.
163
+ */
164
+ bindings?: AXPWorkflowBinding[];
165
+ }
166
+ interface AXPWorkflowGraph {
167
+ startActivityId: string;
168
+ activities: AXPWorkflowActivityInstance[];
169
+ connections: AXPConnection[];
170
+ /** purely designer */
171
+ designer?: {
172
+ nodes?: Record<string, {
173
+ x: number;
174
+ y: number;
175
+ nodeId?: string;
176
+ width?: number;
177
+ height?: number;
178
+ }>;
179
+ edges?: Array<{
180
+ from: string;
181
+ to: string;
182
+ vertices?: Array<{
183
+ x: number;
184
+ y: number;
185
+ }>;
186
+ }>;
187
+ /**
188
+ * When true, the Activities page has applied its initial auto-arrange (or the graph already had
189
+ * persisted node positions). Prevents re-running automatic layout on subsequent visits.
190
+ */
191
+ layoutArranged?: boolean;
192
+ };
264
193
  }
265
- /**
266
- * Workflow output definition.
267
- * Matches WorkflowOutputDefinition from workflow definition schema.
268
- */
269
- interface AXPWorkflowOutputDefinition {
270
- /**
271
- * Output type (e.g., "String", "Int32", "Object").
272
- */
273
- type: string;
194
+ interface AXPWorkflowActivityInstance {
195
+ id: string;
196
+ nodeId?: string;
274
197
  /**
275
- * Output name.
198
+ * Activity name - references AXPActivityDefinition.name
199
+ * Used to lookup activity definition for metadata (executionMode, title, etc.)
276
200
  */
277
201
  name: string;
278
202
  /**
279
- * Display name.
280
- */
281
- displayName?: string;
282
- /**
283
- * Description.
284
- */
285
- description?: string;
286
- /**
287
- * Category for grouping.
288
- */
289
- category?: string;
290
- }
291
- /**
292
- * Expression.
293
- * Used for dynamic values in activities.
294
- */
295
- interface AXPExpression {
296
- /**
297
- * Expression type (e.g., "Literal", "JavaScript", "Liquid").
298
- */
299
- type: string;
300
- /**
301
- * Expression value.
302
- */
303
- value?: any;
304
- }
305
- /**
306
- * Input value wrapper.
307
- * Wraps an expression with type information.
308
- */
309
- interface AXPInputValue {
310
- /**
311
- * Type name.
312
- */
313
- typeName: string;
314
- /**
315
- * Expression (or null).
316
- */
317
- expression?: AXPExpression | null;
318
- }
319
- /**
320
- * Output value wrapper.
321
- * References memory location.
322
- */
323
- interface AXPOutputValue {
324
- /**
325
- * Type name.
326
- */
327
- typeName: string;
328
- /**
329
- * Memory reference (or null).
203
+ * Input values for this activity instance.
204
+ * Key-value pairs where keys match {@link AXPProperty.name} from AXPActivityDefinition.inputs
205
+ * Example: { "message": "Hello", "duration": 5000 }
330
206
  */
331
- memoryReference?: {
332
- id: string;
333
- } | null;
334
- }
335
- /**
336
- * Position (for visual layout).
337
- */
338
- interface AXPPosition {
339
- x: number;
340
- y: number;
341
- }
342
- /**
343
- * Endpoint (connection point).
344
- */
345
- interface AXPEndpoint {
346
- /**
347
- * Activity ID.
348
- */
349
- activity: string;
207
+ inputs?: AXPOptionsData;
208
+ title?: string;
350
209
  /**
351
- * Port name (nullable).
210
+ * Output mapping: process variable name → path in this activity's output (BPMN-style: activity → variable).
211
+ * When this activity completes, each entry sets variables[variableName] = output[outputPath].
212
+ * Example: { leaveRequestId: 'id' } → variables.leaveRequestId = activityOutput.id
352
213
  */
353
- port?: string | null;
214
+ outputToVariables?: AXPOptionsData;
215
+ metadata?: AXPMetaData;
216
+ /** engine-specific override */
217
+ extensions?: Record<string, any>;
354
218
  }
355
- /**
356
- * Connection between activities.
357
- */
358
219
  interface AXPConnection {
359
- /**
360
- * Source endpoint.
361
- */
362
- source: AXPEndpoint;
363
- /**
364
- * Target endpoint.
365
- */
366
- target: AXPEndpoint;
367
- /**
368
- * Connection vertices (for curved paths).
369
- */
370
- vertices?: AXPPosition[];
371
- }
372
- /**
373
- * Variable model (for flowchart variables).
374
- */
375
- interface AXPVariableModel {
376
- id: string;
377
- name: string;
378
- typeName: string;
379
- value?: string | null;
380
- storageDriverTypeName?: string | null;
381
- }
382
- /**
383
- * Metadata (designer annotations).
384
- */
385
- interface AXPMetadata {
386
- [key: string]: any;
387
- }
388
- /**
389
- * Custom properties (free-form bag).
390
- */
391
- interface AXPCustomProperties {
392
- /**
393
- * Connections that reference non-existent activities.
394
- */
395
- notFoundConnections?: AXPConnection[];
396
- /**
397
- * Additional custom properties.
398
- */
399
- [key: string]: any;
400
- }
401
- /**
402
- * Base activity (workflow definition format).
403
- * Matches Activity from workflow definition schema.
404
- * Note: This is the workflow definition format, not the frontend Activity class.
405
- */
406
- interface AXPActivity$1 {
407
- /**
408
- * Activity ID.
409
- */
410
- id: string;
411
- /**
412
- * Node ID (for visual designer).
413
- */
414
- nodeId: string;
415
- /**
416
- * Activity name.
417
- */
418
- name?: string | null;
419
- /**
420
- * Activity type (e.g., "workflow-activity:write-line", "workflow-activity:if").
421
- */
422
- type: string;
423
- /**
424
- * Activity version.
425
- */
426
- version: number;
427
- /**
428
- * Execution mode for this activity instance.
429
- * Determines where this activity should be executed:
430
- * - 'frontend': Execute in browser (UI activities like dialogs, toasts, navigation)
431
- * - 'backend': Execute in backend (business logic, database operations, API calls)
432
- * - 'both': Execute in both frontend and backend (hybrid activities)
433
- *
434
- * If not specified, falls back to AXPActivity's executionMode.
435
- * This allows per-instance override of the default execution mode.
436
- *
437
- * @example
438
- * ```json
439
- * {
440
- * "id": "show-dialog",
441
- * "type": "workflow-activity:show-dialog",
442
- * "executionMode": "frontend"
443
- * }
444
- * ```
445
- */
446
- executionMode?: 'frontend' | 'backend' | 'both';
447
- /**
448
- * Custom properties.
449
- */
450
- customProperties?: AXPCustomProperties;
451
- /**
452
- * Metadata (designer annotations).
453
- */
454
- metadata?: AXPMetadata;
455
- /**
456
- * Additional type-specific properties.
457
- */
458
- [key: string]: any;
220
+ source: {
221
+ activtyName: string;
222
+ port?: string | null;
223
+ };
224
+ target: {
225
+ activtyName: string;
226
+ port?: string | null;
227
+ };
228
+ vertices?: Array<{
229
+ x: number;
230
+ y: number;
231
+ }>;
459
232
  }
460
233
  /**
461
- * Flowchart activity (workflow definition format).
462
- * This is the root activity that contains all other activities.
234
+ * Workflow output: same as {@link AXPProperty} with optional source path and engine metadata.
463
235
  */
464
- interface AXPFlowchart extends AXPActivity$1 {
465
- /**
466
- * Type must be "workflow-activity:flowchart".
467
- */
468
- type: "workflow-activity:flowchart";
469
- /**
470
- * Activities in this flowchart.
471
- */
472
- activities: AXPActivity$1[];
473
- /**
474
- * Variables in this flowchart.
475
- */
476
- variables?: AXPVariableModel[];
236
+ interface AXPWorkflowOutputProperty extends AXPProperty {
477
237
  /**
478
- * Connections between activities.
238
+ * Optional: where this output comes from in your context/memory.
239
+ * Example: "$.result.orderId" or "vars.orderId"
479
240
  */
480
- connections: AXPConnection[];
241
+ path?: string;
242
+ metadata?: Record<string, any>;
481
243
  }
482
244
  /**
483
- * Simplified workflow definition for JSON files.
484
- * This is what developers write - system fields are added automatically.
245
+ * Engine-specific extension bag for a workflow.
246
+ * Keep ALL engine-only fields here (Elsa, StepFunctions adapter, etc).
485
247
  */
486
- interface AXPWorkflowDefinitionJson {
487
- /**
488
- * Unique workflow name (used as key/identifier).
489
- * This is the only required field for identification.
490
- * Similar to entity system where 'name' is the unique key.
491
- */
492
- name: string;
493
- /**
494
- * Display title (human-readable name shown in UI).
495
- * Similar to entity system where 'title' is the display name.
496
- */
497
- title?: string | null;
498
- /**
499
- * Description.
500
- */
501
- description?: string | null;
502
- /**
503
- * Workflow variables.
504
- */
505
- variables?: AXPVariableDefinition[];
506
- /**
507
- * Workflow inputs.
508
- */
509
- inputs?: AXPWorkflowInputDefinition[];
510
- /**
511
- * Workflow outputs.
512
- */
513
- outputs?: AXPWorkflowOutputDefinition[];
248
+ interface AXPWorkflowExtensions {
514
249
  /**
515
- * Workflow outcomes.
250
+ * Elsa-specific extensions (optional).
516
251
  */
517
- outcomes?: string[];
518
- /**
519
- * Custom properties.
520
- */
521
- customProperties?: AXPCustomProperties;
522
- /**
523
- * Workflow options.
524
- */
525
- options?: AXPWorkflowOptions;
252
+ elsa?: AXPElsaWorkflowExtensions;
526
253
  /**
527
- * Root activity (Flowchart).
254
+ * Other engines (future-proof).
255
+ * Example: stepFunctions, logicApps, temporal, ...
528
256
  */
529
- root: AXPFlowchart;
257
+ [engine: string]: any;
530
258
  }
531
259
  /**
532
- * Complete workflow definition (v3.0.0 format).
533
- * This is the core workflow definition without system fields.
534
- * System fields ($schema, tenantId, createdAt, toolVersion, isPublished, id, version, isLatest, isReadonly, isSystem)
535
- * are managed by the entity system and stored in entity model.
260
+ * Elsa-only fields (Optional).
261
+ * Put strategy/tool/schema/raw payload here to keep Core model global.
536
262
  */
537
- interface AXPWorkflowDefinition {
538
- /**
539
- * Unique workflow name (used as key/identifier, same across all versions).
540
- * This is the primary identifier for the workflow.
541
- */
542
- name: string;
543
- /**
544
- * Display title (human-readable name shown in UI).
545
- */
546
- title?: string | null;
547
- /**
548
- * Description.
549
- */
550
- description?: string | null;
551
- /**
552
- * Workflow variables.
553
- */
554
- variables?: AXPVariableDefinition[];
263
+ interface AXPElsaWorkflowExtensions {
555
264
  /**
556
- * Workflow inputs.
265
+ * Elsa schema URL (if you want to round-trip exact docs).
266
+ * Example: "https://elsaworkflows.io/schemas/workflow-definition/v3.0.0/schema.json"
557
267
  */
558
- inputs?: AXPWorkflowInputDefinition[];
559
- /**
560
- * Workflow outputs.
561
- */
562
- outputs?: AXPWorkflowOutputDefinition[];
563
- /**
564
- * Workflow outcomes.
565
- */
566
- outcomes?: string[];
567
- /**
568
- * Custom properties.
569
- */
570
- customProperties?: AXPCustomProperties;
571
- /**
572
- * Workflow options.
573
- */
574
- options?: AXPWorkflowOptions;
268
+ schema?: string;
269
+ toolVersion?: string;
270
+ materializerName?: string;
575
271
  /**
576
- * @deprecated Use options.usableAsActivity instead.
272
+ * Elsa strategy/options (engine-level concerns).
577
273
  */
578
- usableAsActivity?: boolean | null;
274
+ options?: {
275
+ activationStrategyType?: string | null;
276
+ incidentStrategyType?: string | null;
277
+ commitStrategyName?: string | null;
278
+ autoUpdateConsumingWorkflows?: boolean;
279
+ usableAsActivity?: boolean | null;
280
+ activityCategory?: string | null;
281
+ };
579
282
  /**
580
- * Root activity (Flowchart).
283
+ * If you want lossless Elsa round-trip, keep the raw Elsa definition here.
581
284
  */
582
- root: AXPFlowchart;
285
+ rawDefinition?: any;
583
286
  }
584
287
  /**
585
- * Workflow configuration options.
288
+ * Workflow binding configuration.
289
+ * Defines which entities and events should trigger a workflow.
586
290
  */
587
- interface AXPWorkflowOptions {
588
- /**
589
- * Activation strategy type.
590
- */
591
- activationStrategyType?: string | null;
592
- /**
593
- * Whether workflow can be used as an activity.
594
- */
595
- usableAsActivity?: boolean | null;
291
+ interface AXPWorkflowBinding {
596
292
  /**
597
- * Auto-update consuming workflows.
293
+ * Entity types this workflow applies to (e.g., ['ContentManagement.Promotion', 'ContentManagement.Article'])
294
+ * Empty array means applies to all entities with workflow plugin enabled.
598
295
  */
599
- autoUpdateConsumingWorkflows?: boolean;
296
+ entityTypes: string[];
600
297
  /**
601
- * Activity category (if usable as activity).
298
+ * Event types that trigger this workflow (e.g., ['create', 'update'])
299
+ * Uses AXPEntityOp directly (create, update, delete, etc.)
602
300
  */
603
- activityCategory?: string | null;
301
+ eventTypes: AXPEntityOp[];
604
302
  /**
605
- * Incident strategy type.
303
+ * Whether this binding is enabled
606
304
  */
607
- incidentStrategyType?: string | null;
305
+ enabled: boolean;
608
306
  /**
609
- * Commit strategy name.
307
+ * Optional conditions for when to trigger (future enhancement)
610
308
  */
611
- commitStrategyName?: string | null;
309
+ conditions?: any;
612
310
  }
613
311
 
614
- /**
615
- * Workflow definition loader interface.
616
- * Implement this to provide workflow definitions from various sources (JSON files, database, etc.).
617
- */
618
- interface AXPWorkflowDefinitionLoader {
619
- /**
620
- * Get workflow definition by name (unique key).
621
- * @param name - The workflow name (unique key)
622
- * @returns Workflow definition or null if not found
623
- */
624
- get(name: string): Promise<AXPWorkflowDefinition | null>;
625
- /**
626
- * Get all available workflow names.
627
- * Used for preloading and discovery.
628
- * @returns Array of workflow names
629
- */
630
- getAllNames?(): Promise<string[]>;
631
- }
632
- /**
633
- * Injection token for workflow definition loaders.
634
- * Multiple loaders can be provided (multi: true).
635
- */
636
- declare const AXP_WORKFLOW_DEFINITION_LOADER: InjectionToken<AXPWorkflowDefinitionLoader>;
637
-
638
312
  /**
639
313
  * Workflow status.
640
314
  */
@@ -930,6 +604,10 @@ interface AXPWorkflowState {
930
604
  * Finished at timestamp (ISO date-time, nullable).
931
605
  */
932
606
  finishedAt?: string | null;
607
+ /**
608
+ * Total number of activities/steps in the workflow (for progress display).
609
+ */
610
+ totalSteps?: number;
933
611
  }
934
612
  /**
935
613
  * Workflow instance (stored in database).
@@ -996,8 +674,36 @@ interface AXPWorkflowInstance {
996
674
  * Finished at timestamp (ISO date-time, nullable).
997
675
  */
998
676
  finishedAt?: string | null;
677
+ /**
678
+ * Entity reference ID (for linking workflow instances to business entities).
679
+ */
680
+ entityRefId?: string | null;
681
+ /**
682
+ * Entity reference type (e.g., 'HumanCapitalManagement.LeaveRequest').
683
+ */
684
+ entityRefType?: string | null;
999
685
  }
1000
686
 
687
+ /**
688
+ * Type of task for inbox handling.
689
+ * - 'human-task': Requires inbox - needs human interaction
690
+ * - 'ui-activity': UI-only activity (no inbox) - immediate execution
691
+ * - 'system-activity': System/backend activity (no inbox) - automated execution
692
+ */
693
+ type AXPTaskType = 'human-task' | 'ui-activity' | 'system-activity';
694
+ /**
695
+ * How the workflow engine should offer "continue to next step?" before an inline frontend activity.
696
+ * Declared on {@link AXPActivityDefinition} and copied onto {@link AXPWorkflowTask} at runtime.
697
+ */
698
+ type AXPWorkflowContinuationBeforeInteractive = 'default'
699
+ /** Skip when opened from a task-board human-task primary action (e.g. start-fill, review). */
700
+ | 'skip-when-chained-from-human-task'
701
+ /** Skip for the natural assignee; initiator / reassign users still get the prompt (workflow-management). */
702
+ | 'skip-for-assignee';
703
+ /** Optional continuation UX metadata for an activity definition. */
704
+ interface AXPWorkflowContinuationMetadata {
705
+ beforeInteractive?: AXPWorkflowContinuationBeforeInteractive;
706
+ }
1001
707
  /**
1002
708
  * Activity Category - Extends AXPCategoryEntity for consistency and performance
1003
709
  *
@@ -1008,14 +714,18 @@ interface AXPWorkflowInstance {
1008
714
  * - parentId?: string - Parent category ID
1009
715
  * - childrenCount: number - Direct child categories count (enables lazy loading)
1010
716
  * - itemsCount?: number - Direct activities count
1011
- * - totalChildren?: number - Total nested categories (optional, for analytics)
1012
- * - totalItems?: number - Total activities in tree (optional, for analytics)
717
+ * - totalChildrenCount?: number - Total nested categories (optional, for analytics)
718
+ * - totalItemsCount?: number - Total activities in tree (optional, for analytics)
1013
719
  */
1014
720
  interface AXPActivityCategory extends AXPCategoryEntity {
1015
721
  }
1016
- interface ActivityPropertyWidget {
1017
- type: AXPWidgetTypesMap[keyof AXPWidgetTypesMap] | string;
1018
- options?: Record<string, any>;
722
+ /**
723
+ * Lightweight category snapshot embedded in activity-definition records.
724
+ */
725
+ interface AXPActivityDefinitionCategoryRef {
726
+ id: string;
727
+ name: string;
728
+ title: AXPMultiLanguageString;
1019
729
  }
1020
730
  /**
1021
731
  * Activity Definition - Metadata for UI and tooling.
@@ -1033,17 +743,18 @@ interface AXPActivityDefinition {
1033
743
  */
1034
744
  type: string;
1035
745
  /**
1036
- * Display name for UI.
746
+ * Display name for UI (plain or per-locale map).
1037
747
  */
1038
- title?: string;
748
+ title?: AXPMultiLanguageString;
749
+ instanceTitle?: string;
1039
750
  /**
1040
- * Description of what the activity does.
751
+ * Description of what the activity does (plain or per-locale map).
1041
752
  */
1042
- description?: string;
753
+ description?: AXPMultiLanguageString;
1043
754
  /**
1044
755
  * Category for grouping in toolbox.
1045
756
  */
1046
- category?: string;
757
+ category?: AXPActivityDefinitionCategoryRef;
1047
758
  /**
1048
759
  * Icon name or class.
1049
760
  */
@@ -1058,13 +769,22 @@ interface AXPActivityDefinition {
1058
769
  */
1059
770
  executionMode?: 'frontend' | 'backend' | 'both';
1060
771
  /**
1061
- * Input descriptors.
772
+ * Type of task for inbox handling.
773
+ * - 'human-task': Requires inbox - needs human interaction
774
+ * - 'ui-activity': UI-only activity (no inbox) - immediate execution
775
+ * - 'system-activity': System/backend activity (no inbox) - automated execution
776
+ *
777
+ * Default: 'ui-activity' (for backward compatibility)
1062
778
  */
1063
- inputs?: InputDescriptor[];
779
+ taskType?: AXPTaskType;
1064
780
  /**
1065
- * Output descriptors.
781
+ * Input properties (form/schema for activity parameters).
1066
782
  */
1067
- outputs?: OutputDescriptor[];
783
+ inputs?: AXPProperty[];
784
+ /**
785
+ * Output properties (result shape + optional path/metadata).
786
+ */
787
+ outputs?: AXPWorkflowOutputProperty[];
1068
788
  /**
1069
789
  * Static outcomes (exit points).
1070
790
  * Example: ['Done', 'Success', 'Failed']
@@ -1080,54 +800,17 @@ interface AXPActivityDefinition {
1080
800
  * Default: false
1081
801
  */
1082
802
  isContainer?: boolean;
1083
- }
1084
- /**
1085
- * Activity - Command with specific TResult structure.
1086
- * Extends AXPCommand with a fixed TResult that includes output and outcomes.
1087
- * No additional properties beyond AXPCommand - pure command interface.
1088
- */
1089
- interface AXPActivity<TInput = any, TOutput = any> extends AXPCommand<TInput, {
1090
- output: TOutput;
1091
- outcomes: Record<string, any>;
1092
- }> {
1093
803
  /**
1094
- * Execute the activity as a command.
1095
- * @param input - Activity input data
1096
- * @returns Promise with output and outcomes
804
+ * Continuation prompt behavior when this activity runs inline in the workflow manager.
1097
805
  */
1098
- execute(input: TInput): AXPExecuteCommandResultPromise<{
1099
- output: TOutput;
1100
- outcomes: Record<string, any>;
1101
- }>;
806
+ workflowContinuation?: AXPWorkflowContinuationMetadata;
1102
807
  }
1103
808
  /**
1104
- * Input property descriptor.
1105
- * Similar to AXPEntityProperty structure.
809
+ * Query result shape for activity-definition catalog endpoints.
1106
810
  */
1107
- interface InputDescriptor {
1108
- name: string;
1109
- title: string;
1110
- description?: string;
1111
- schema: {
1112
- dataType: string;
1113
- nullable?: boolean;
1114
- readonly?: boolean;
1115
- hidden?: boolean | string;
1116
- defaultValue?: any | string | ((context: any | null) => any);
1117
- interface?: ActivityPropertyWidget;
1118
- };
1119
- validations?: AXPValidationRules;
1120
- }
1121
- /**
1122
- * Output property descriptor.
1123
- */
1124
- interface OutputDescriptor {
1125
- name: string;
1126
- title: string;
1127
- description?: string;
1128
- schema: {
1129
- dataType: string;
1130
- };
811
+ interface AXPActivityDefinitionQueryResult {
812
+ total: number;
813
+ items: AXPActivityDefinition[];
1131
814
  }
1132
815
 
1133
816
  type AXPActivityProviderToken = AXPActivityProvider | Promise<AXPActivityProvider>;
@@ -1228,6 +911,11 @@ declare class AXPActivityDefinitionService {
1228
911
  * @returns Activity definition or undefined if not found
1229
912
  */
1230
913
  getActivityByName(name: string): Promise<AXPActivityDefinition | undefined>;
914
+ /**
915
+ * Get all activity definitions (flat list) by loading root categories and their activities.
916
+ * Used by activity selector UIs (e.g. automation command configurator).
917
+ */
918
+ getAllActivities(): Promise<AXPActivityDefinition[]>;
1231
919
  /**
1232
920
  * Get category ID containing a specific activity definition
1233
921
  *
@@ -1319,6 +1007,10 @@ interface AXPWorkflowTask {
1319
1007
  * - 'both': Execute in both frontend and backend (hybrid activities)
1320
1008
  */
1321
1009
  executionMode: 'frontend' | 'backend' | 'both';
1010
+ /**
1011
+ * Type of task for inbox handling.
1012
+ */
1013
+ taskType?: 'human-task' | 'ui-activity' | 'system-activity';
1322
1014
  /**
1323
1015
  * Input data for the activity (for frontend activities).
1324
1016
  */
@@ -1327,6 +1019,10 @@ interface AXPWorkflowTask {
1327
1019
  * Configuration for the activity (for frontend activities).
1328
1020
  */
1329
1021
  config?: Record<string, any>;
1022
+ /**
1023
+ * Continuation UX copied from the activity definition at task creation time.
1024
+ */
1025
+ continuation?: AXPWorkflowContinuationMetadata;
1330
1026
  }
1331
1027
  /**
1332
1028
  * Request to start a workflow instance.
@@ -1358,6 +1054,16 @@ interface AXPStartWorkflowResponse {
1358
1054
  * Client should execute this task based on executionMode.
1359
1055
  */
1360
1056
  pendingTask?: AXPWorkflowTask | null;
1057
+ /**
1058
+ * Activity outputs map (activityId -> output).
1059
+ * Returned for expression evaluation in subsequent activities.
1060
+ */
1061
+ activityOutputs?: Record<string, any>;
1062
+ /**
1063
+ * Last activity output (convenience).
1064
+ * Prefer using `activityOutputs[activityId]` when possible.
1065
+ */
1066
+ lastActivityOutput?: any;
1361
1067
  }
1362
1068
  /**
1363
1069
  * Request to resume a suspended workflow.
@@ -1379,7 +1085,7 @@ interface AXPResumeWorkflowRequest {
1379
1085
  /**
1380
1086
  * User action outcome (e.g., 'Confirmed', 'Cancelled').
1381
1087
  */
1382
- outcome: string;
1088
+ outcome?: string;
1383
1089
  /**
1384
1090
  * Optional user input data.
1385
1091
  */
@@ -1439,6 +1145,16 @@ interface AXPWorkflowInstanceState {
1439
1145
  * Workflow variables (state).
1440
1146
  */
1441
1147
  variables: Record<string, any>;
1148
+ /**
1149
+ * Activity outputs map (activityId -> output).
1150
+ * Used by expression evaluation scope as `outputs.activityId`.
1151
+ */
1152
+ activityOutputs?: Record<string, any>;
1153
+ /**
1154
+ * Last activity output (convenience).
1155
+ * Useful when the next activity needs a quick access to the previous result.
1156
+ */
1157
+ lastActivityOutput?: any;
1442
1158
  /**
1443
1159
  * Initial input data.
1444
1160
  */
@@ -1452,6 +1168,79 @@ interface AXPWorkflowInstanceState {
1452
1168
  */
1453
1169
  lastUpdated: Date;
1454
1170
  }
1171
+ interface AXPFrontActivityCompleteRequest {
1172
+ /**
1173
+ * Instance ID.
1174
+ */
1175
+ instanceId: string;
1176
+ activityNode: string;
1177
+ output: Record<string, any>;
1178
+ outcome?: string;
1179
+ }
1180
+ interface AXPFrontActivityCompleteResponse {
1181
+ /**
1182
+ * Activity execution output.
1183
+ */
1184
+ output?: any;
1185
+ /**
1186
+ * Activity execution outcomes.
1187
+ */
1188
+ outcomes?: Record<string, any>;
1189
+ /**
1190
+ * Next task to execute (if any).
1191
+ */
1192
+ nextTask?: AXPWorkflowTask | null;
1193
+ /**
1194
+ * Updated workflow state.
1195
+ */
1196
+ state?: AXPWorkflowInstanceState;
1197
+ }
1198
+ /**
1199
+ * Activity types that use the task board (suspend until user acts via inbox), not inline interactive execution.
1200
+ */
1201
+ declare const AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES: readonly string[];
1202
+ declare function axpIsWorkflowTaskBoardActivityType(activityType: string | undefined | null): boolean;
1203
+ /**
1204
+ * Claim a pooled workflow task (updates bookmark assignee without resuming the workflow).
1205
+ */
1206
+ interface AXPClaimWorkflowTaskRequest {
1207
+ instanceId: string;
1208
+ bookmarkId: string;
1209
+ stepId: string;
1210
+ }
1211
+ interface AXPClaimWorkflowTaskResponse {
1212
+ success: boolean;
1213
+ error?: string;
1214
+ errorCode?: string;
1215
+ }
1216
+ /**
1217
+ * Reassign a human-task bookmark to the current user without resuming the workflow.
1218
+ */
1219
+ interface AXPReassignWorkflowTaskToSelfRequest {
1220
+ instanceId: string;
1221
+ bookmarkId: string;
1222
+ stepId: string;
1223
+ }
1224
+ interface AXPReassignWorkflowTaskToSelfResponse {
1225
+ success: boolean;
1226
+ error?: string;
1227
+ errorCode?: string;
1228
+ }
1229
+ /** Restore task-board visibility after the user declines a pre-interactive continuation prompt. */
1230
+ interface AXPRevertResumeAfterDeclinedInteractiveContinuationRequest {
1231
+ instanceId: string;
1232
+ /** Human-task / cartable step that was resumed from the task board. */
1233
+ suspendedStepId: string;
1234
+ /** Inline frontend step that was about to run when the user declined. */
1235
+ abortedStepId?: string;
1236
+ /** Bookmark id of the suspended step (when known). */
1237
+ bookmarkId?: string;
1238
+ }
1239
+ interface AXPRevertResumeAfterDeclinedInteractiveContinuationResponse {
1240
+ success: boolean;
1241
+ state?: AXPWorkflowInstanceState;
1242
+ error?: string;
1243
+ }
1455
1244
 
1456
1245
  /**
1457
1246
  * Interface for workflow engine operations.
@@ -1487,6 +1276,24 @@ interface AXPWorkflowEngine {
1487
1276
  *
1488
1277
  */
1489
1278
  getState(request: AXPGetWorkflowStateRequest): Promise<AXPWorkflowInstanceState>;
1279
+ frontActivtyComplete(request: AXPFrontActivityCompleteRequest): Promise<AXPFrontActivityCompleteResponse>;
1280
+ /**
1281
+ * Optional: claim a pooled task (e.g. cartable) without consuming the bookmark.
1282
+ * Engines that do not support pooling should omit this method.
1283
+ */
1284
+ claimTask?(request: AXPClaimWorkflowTaskRequest): Promise<AXPClaimWorkflowTaskResponse>;
1285
+ /**
1286
+ * Optional: reassign a human-task bookmark to the current user (requires permission on the engine).
1287
+ */
1288
+ reassignTaskToSelf?(request: AXPReassignWorkflowTaskToSelfRequest): Promise<AXPReassignWorkflowTaskToSelfResponse>;
1289
+ /**
1290
+ * Optional: restore a suspended task-board step when the user declines a pre-interactive continuation prompt.
1291
+ */
1292
+ revertResumeAfterDeclinedInteractiveContinuation?(request: AXPRevertResumeAfterDeclinedInteractiveContinuationRequest): Promise<AXPRevertResumeAfterDeclinedInteractiveContinuationResponse>;
1293
+ /**
1294
+ * Optional: terminate a non-finished instance (e.g. superseded lifecycle run).
1295
+ */
1296
+ cancelInstance?(instanceId: string, reason?: string): Promise<void>;
1490
1297
  }
1491
1298
  /**
1492
1299
  * Injection token for workflow engine.
@@ -1495,44 +1302,33 @@ interface AXPWorkflowEngine {
1495
1302
  declare const AXP_WORKFLOW_ENGINE: InjectionToken<AXPWorkflowEngine>;
1496
1303
 
1497
1304
  /**
1498
- * Result of executing a frontend task.
1305
+ * Stable workflow engine error codes for UI branching (toasts, take-over flow, etc.).
1499
1306
  */
1500
- interface FrontendTaskExecutionResult {
1501
- /**
1502
- * Task execution output.
1503
- */
1504
- output: any;
1505
- /**
1506
- * Task execution outcome (e.g., 'Done', 'Confirmed', 'Cancelled', 'Failed').
1507
- */
1508
- outcome: string;
1509
- }
1307
+ declare const AXP_WORKFLOW_ERROR_CODES: {
1308
+ readonly TASK_NOT_ASSIGNEE: "WORKFLOW_TASK_NOT_ASSIGNEE";
1309
+ readonly CLAIM_REQUIRED: "WORKFLOW_CLAIM_REQUIRED";
1310
+ readonly REASSIGN_NOT_ALLOWED: "WORKFLOW_REASSIGN_NOT_ALLOWED";
1311
+ };
1312
+ type AXPWorkflowErrorCode = (typeof AXP_WORKFLOW_ERROR_CODES)[keyof typeof AXP_WORKFLOW_ERROR_CODES];
1510
1313
  /**
1511
- * Service responsible for executing frontend workflow tasks.
1512
- *
1513
- * This service handles the execution of frontend or hybrid tasks using
1514
- * the command infrastructure. It translates command results into
1515
- * workflow-compatible output and outcome format.
1516
- *
1517
- * This service is replaceable per platform and contains all execution logic.
1314
+ * Business-rule failure from {@link AXPWorkflowEngine} (expected, user-facing).
1518
1315
  */
1519
- declare class FrontendTaskExecutor {
1520
- private readonly commandService;
1521
- /**
1522
- * Execute a frontend workflow task.
1523
- *
1524
- * Only executes tasks with executionMode 'frontend' or 'both'.
1525
- * Backend tasks should not be passed to this executor.
1526
- *
1527
- * @param task - Task to execute
1528
- * @returns Execution result with output and outcome
1529
- *
1530
- * @throws Error if task is not a frontend task
1531
- */
1532
- execute(task: AXPWorkflowTask): Promise<FrontendTaskExecutionResult>;
1533
- static ɵfac: i0.ɵɵFactoryDeclaration<FrontendTaskExecutor, never>;
1534
- static ɵprov: i0.ɵɵInjectableDeclaration<FrontendTaskExecutor>;
1316
+ declare class AXPWorkflowEngineError extends Error {
1317
+ readonly code: AXPWorkflowErrorCode;
1318
+ readonly details?: Record<string, unknown> | undefined;
1319
+ constructor(message: string, code: AXPWorkflowErrorCode, details?: Record<string, unknown> | undefined);
1535
1320
  }
1321
+ /**
1322
+ * Resolves a stable error code from an unknown thrown value.
1323
+ */
1324
+ declare function getWorkflowEngineErrorCode(error: unknown): AXPWorkflowErrorCode | undefined;
1325
+ /**
1326
+ * Resolves a user-facing message and optional code from an unknown thrown value.
1327
+ */
1328
+ declare function getWorkflowEngineErrorInfo(error: unknown): {
1329
+ message: string;
1330
+ code?: AXPWorkflowErrorCode;
1331
+ };
1536
1332
 
1537
1333
  /**
1538
1334
  * Result of starting a workflow.
@@ -1620,6 +1416,28 @@ interface WorkflowResumeResult {
1620
1416
  * Error message (if failed).
1621
1417
  */
1622
1418
  error?: string;
1419
+ /**
1420
+ * Stable engine error code when available (e.g. WORKFLOW_TASK_NOT_ASSIGNEE).
1421
+ */
1422
+ errorCode?: string;
1423
+ }
1424
+ /**
1425
+ * Result of claiming a pooled workflow task (cartable / candidate pool).
1426
+ */
1427
+ interface WorkflowClaimTaskResult {
1428
+ success: boolean;
1429
+ instanceId: string;
1430
+ error?: string;
1431
+ errorCode?: string;
1432
+ }
1433
+ /**
1434
+ * Result of reassigning a human-task bookmark to the current user.
1435
+ */
1436
+ interface WorkflowReassignTaskToSelfResult {
1437
+ success: boolean;
1438
+ instanceId: string;
1439
+ error?: string;
1440
+ errorCode?: string;
1623
1441
  }
1624
1442
  /**
1625
1443
  * Workflow Manager - Facade for workflow lifecycle orchestration.
@@ -1629,20 +1447,21 @@ interface WorkflowResumeResult {
1629
1447
  *
1630
1448
  * Responsibilities:
1631
1449
  * - Orchestrate workflow lifecycle (start, execute, complete, resume)
1632
- * - Delegate execution to FrontendTaskExecutor
1450
+ * - Delegate execution to ActivityExecutor
1633
1451
  * - Cache workflow state in memory
1634
1452
  * - Expose a stable API for UI
1635
1453
  *
1636
1454
  * Rules:
1637
1455
  * - No HTTP calls (delegates to AXPWorkflowEngine)
1638
- * - No CommandBus / Command execution (delegates to FrontendTaskExecutor)
1456
+ * - No CommandBus / Command execution (delegates to ActivityExecutor)
1639
1457
  * - No workflow branching logic (backend decides)
1640
1458
  * - No business validation (backend validates)
1641
1459
  * - No backend assumptions (uses abstract runtime service)
1642
1460
  */
1643
1461
  declare class AXPWorkflowManager {
1644
1462
  private readonly workflowEngine;
1645
- private readonly frontendTaskExecutor;
1463
+ private readonly activityExecutor;
1464
+ private readonly continuationHook;
1646
1465
  /**
1647
1466
  * Cache workflow states in memory for quick access.
1648
1467
  * Key: instanceId
@@ -1653,6 +1472,29 @@ declare class AXPWorkflowManager {
1653
1472
  * Cache TTL in milliseconds (5 minutes).
1654
1473
  */
1655
1474
  private readonly CACHE_TTL;
1475
+ /**
1476
+ * Execute frontend activities interactively until reaching workflow-activity:human-task or completion.
1477
+ *
1478
+ * Interactive = show form/popup immediately (user sees and acts). Only workflow-activity:human-task
1479
+ * is not interactive (goes to task board). Other frontend activities (show-layout-popup, show-toast, etc.)
1480
+ * even with taskType human-task in definition are executed here.
1481
+ *
1482
+ * @param instanceId - Workflow instance ID
1483
+ * @param task - Current task to execute
1484
+ * @param state - Current workflow state
1485
+ * @param lastActivityOutput - Last activity output (for expression evaluation)
1486
+ * @returns Final result with nextTask (if workflow-activity:human-task) or completion status
1487
+ */
1488
+ private executeInteractiveFlow;
1489
+ /**
1490
+ * Runs inline interactive activities when allowed, with an optional pre-flow continuation prompt.
1491
+ */
1492
+ private runInteractiveFlowWithContinuation;
1493
+ private invokeWorkflowContinuationAfterStep;
1494
+ /**
1495
+ * Restores the suspended task-board step when the user declines a pre-interactive continuation prompt.
1496
+ */
1497
+ private revertResumeAfterDeclinedInteractiveContinuation;
1656
1498
  /**
1657
1499
  * Start a new workflow instance.
1658
1500
  *
@@ -1677,31 +1519,6 @@ declare class AXPWorkflowManager {
1677
1519
  * ```
1678
1520
  */
1679
1521
  start(workflowId: string, input?: Record<string, any>): Promise<WorkflowStartResult>;
1680
- /**
1681
- * Execute a frontend task.
1682
- *
1683
- * Delegates to FrontendTaskExecutor for actual execution.
1684
- * Only executes tasks with executionMode 'frontend' or 'both'.
1685
- *
1686
- * @param task - Task to execute
1687
- * @returns Execution result with output and outcome
1688
- *
1689
- * @throws Error if task is not a frontend task
1690
- */
1691
- execute(task: AXPWorkflowTask): Promise<FrontendTaskExecutionResult>;
1692
- /**
1693
- * Complete a task and get next task from backend.
1694
- *
1695
- * Sends task result to backend API.
1696
- * Backend decides: next task, fail, or complete workflow.
1697
- *
1698
- * @param instanceId - Workflow instance ID
1699
- * @param task - Completed task
1700
- * @param outcome - Task outcome (e.g., 'Done', 'Confirmed', 'Cancelled')
1701
- * @param output - Task output/result (optional)
1702
- * @returns Complete result with next task (if any)
1703
- */
1704
- complete(instanceId: string, task: AXPWorkflowTask, outcome: string, output?: any): Promise<WorkflowCompleteResult>;
1705
1522
  /**
1706
1523
  * Resume a suspended workflow (e.g., after user interaction).
1707
1524
  *
@@ -1725,6 +1542,16 @@ declare class AXPWorkflowManager {
1725
1542
  * @returns Workflow instance state or null if not found
1726
1543
  */
1727
1544
  getState(instanceId: string): Promise<AXPWorkflowInstanceState | null>;
1545
+ /**
1546
+ * Claim a pooled workflow task (assign current user on the bookmark without advancing the workflow).
1547
+ * Supported only when the injected workflow engine implements {@link AXPWorkflowEngine.claimTask}.
1548
+ */
1549
+ claimTask(instanceId: string, bookmarkId: string, stepId: string): Promise<WorkflowClaimTaskResult>;
1550
+ /**
1551
+ * Reassign a human-task bookmark to the current user without advancing the workflow.
1552
+ * Supported only when the injected workflow engine implements {@link AXPWorkflowEngine.reassignTaskToSelf}.
1553
+ */
1554
+ reassignTaskToSelf(instanceId: string, bookmarkId: string, stepId: string): Promise<WorkflowReassignTaskToSelfResult>;
1728
1555
  static ɵfac: i0.ɵɵFactoryDeclaration<AXPWorkflowManager, never>;
1729
1556
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPWorkflowManager>;
1730
1557
  }
@@ -1738,15 +1565,16 @@ declare class AXPWorkflowManager {
1738
1565
  * - Maintains workflow state in memory
1739
1566
  * - Does not require backend API calls
1740
1567
  *
1741
- * Execution of frontend tasks is handled by AXPWorkflowManager via FrontendTaskExecutor.
1568
+ * Execution of frontend tasks is handled by AXPWorkflowManager via ActivityExecutor.
1742
1569
  * This engine only manages workflow progression and state storage.
1743
1570
  *
1744
1571
  * This is the DEFAULT engine provider. Applications can override it with
1745
1572
  * an API-based engine implementation.
1746
1573
  */
1747
1574
  declare class AXPWorkflowLocalEngine implements AXPWorkflowEngine {
1748
- private readonly definitionLoaders;
1749
- constructor(definitionLoaders?: AXPWorkflowDefinitionLoader[] | null);
1575
+ private readonly activityDefinitionService;
1576
+ private readonly workflowProviders;
1577
+ private readonly multiLanguageResolver;
1750
1578
  /**
1751
1579
  * In-memory storage for workflow instances.
1752
1580
  * Key: instanceId
@@ -1779,7 +1607,7 @@ declare class AXPWorkflowLocalEngine implements AXPWorkflowEngine {
1779
1607
  */
1780
1608
  getState(request: AXPGetWorkflowStateRequest): Promise<AXPWorkflowInstanceState>;
1781
1609
  /**
1782
- * Get workflow definition from available loaders.
1610
+ * Get workflow definition from available providers.
1783
1611
  */
1784
1612
  private getDefinition;
1785
1613
  /**
@@ -1795,65 +1623,239 @@ declare class AXPWorkflowLocalEngine implements AXPWorkflowEngine {
1795
1623
  * Get next activity ID based on connections and outcomes.
1796
1624
  */
1797
1625
  private getNextActivityId;
1798
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPWorkflowLocalEngine, [{ optional: true; }]>;
1626
+ frontActivtyComplete(request: AXPFrontActivityCompleteRequest): Promise<AXPFrontActivityCompleteResponse>;
1627
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPWorkflowLocalEngine, never>;
1799
1628
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPWorkflowLocalEngine>;
1800
1629
  }
1801
1630
 
1802
1631
  /**
1803
- * Workflow Category - Extends AXPCategoryEntity for consistency and performance
1804
- *
1805
- * Inherited properties from AXPCategoryEntity:
1806
- * - id: string - Unique identifier
1807
- * - title: string - Display name
1808
- * - description?: string - Category description
1809
- * - parentId?: string - Parent category ID
1810
- * - childrenCount: number - Direct child categories count (enables lazy loading)
1811
- * - itemsCount?: number - Direct workflows count
1812
- * - totalChildren?: number - Total nested categories (optional, for analytics)
1813
- * - totalItems?: number - Total workflows in tree (optional, for analytics)
1632
+ * Result of executing a workflow activity.
1814
1633
  */
1815
- interface AXPWorkflowCategory extends AXPCategoryEntity {
1634
+ interface ActivityExecutionResult {
1635
+ /**
1636
+ * Activity execution output.
1637
+ */
1638
+ output: any;
1639
+ /**
1640
+ * Activity execution outcome (e.g., 'Done', 'Confirmed', 'Cancelled', 'Failed').
1641
+ */
1642
+ outcome: string;
1816
1643
  }
1817
1644
  /**
1818
- * Workflow Definition - Metadata for UI and tooling.
1819
- * Contains all metadata needed for displaying workflows in toolbox and designer.
1820
- * The `name` property is used as the workflow identifier.
1645
+ * Activity Executor Service
1646
+ *
1647
+ * Service for executing workflow activities via CommandBus.
1648
+ * Automatically evaluates expressions in activity inputs before execution.
1649
+ *
1650
+ * @example
1651
+ * ```typescript
1652
+ * const executor = inject(ActivityExecutor);
1653
+ *
1654
+ * // Execute activity with task and workflow state (expressions will be evaluated)
1655
+ * const result = await executor.execute(task, workflowState, activityOutputs);
1656
+ * ```
1821
1657
  */
1822
- interface AXPWorkflowDefinitionMetadata {
1658
+ declare class ActivityExecutor {
1659
+ private readonly commandService;
1660
+ private readonly expressionEvaluator;
1661
+ private readonly expressionScopeService;
1662
+ private readonly translateService;
1823
1663
  /**
1824
- * Workflow name - used as unique identifier.
1825
- * This is the unique identifier for the workflow.
1664
+ * Execute a workflow activity with expression evaluation.
1665
+ *
1666
+ * Evaluates expressions in activity inputs using workflow state,
1667
+ * then executes the activity via CommandBus.
1668
+ *
1669
+ * @param task - Workflow task containing activity information
1670
+ * @param workflowState - Current workflow instance state (for expression evaluation)
1671
+ * @param activityOutputs - Map of previous activity outputs (for expression evaluation)
1672
+ * @returns Execution result with output and outcome
1826
1673
  */
1827
- name: string;
1674
+ execute(task: AXPWorkflowTask, workflowState?: AXPWorkflowInstanceState, activityOutputs?: Map<string, any> | Record<string, any>): Promise<ActivityExecutionResult>;
1828
1675
  /**
1829
- * Display name for UI.
1676
+ * Resolves command failure message text for workflow output: `@` keys via translate, MLS maps via resolve.
1830
1677
  */
1831
- title?: string;
1678
+ private resolveCommandMessageTextForError;
1679
+ static ɵfac: i0.ɵɵFactoryDeclaration<ActivityExecutor, never>;
1680
+ static ɵprov: i0.ɵɵInjectableDeclaration<ActivityExecutor>;
1681
+ }
1682
+
1683
+ /**
1684
+ * Workflow expression evaluation context.
1685
+ * Contains workflow state data needed for expression evaluation.
1686
+ */
1687
+ interface WorkflowExpressionContext {
1688
+ /** Workflow input values */
1689
+ inputs: Record<string, any>;
1690
+ /** Workflow state variables */
1691
+ variables: Record<string, any>;
1692
+ /** Previous activity outputs (activityId -> output) */
1693
+ outputs: Record<string, any>;
1694
+ }
1695
+ /**
1696
+ * Workflow Expression Scope Service
1697
+ *
1698
+ * Shared service for building expression evaluation scope from workflow data.
1699
+ * Used by both Local Engine and Mock Runtime to manage workflow data (inputs, variables, outputs).
1700
+ *
1701
+ * Responsibilities:
1702
+ * - Build expression evaluation scope from workflow state
1703
+ * - Provide context.eval() function for accessing workflow data
1704
+ * - Manage workflow data structure (inputs, variables, outputs)
1705
+ *
1706
+ * This service does NOT:
1707
+ * - Execute activities
1708
+ * - Evaluate expressions (delegates to AXPExpressionEvaluatorService)
1709
+ * - Manage workflow state (handled by runtime)
1710
+ *
1711
+ * @example
1712
+ * ```typescript
1713
+ * const scopeService = inject(WorkflowExpressionScopeService);
1714
+ *
1715
+ * // Build scope from workflow state
1716
+ * const scope = scopeService.buildScope({
1717
+ * inputs: state.input || {},
1718
+ * variables: state.variables || {},
1719
+ * outputs: activityOutputs
1720
+ * });
1721
+ *
1722
+ * // Or build from state directly
1723
+ * const scope = scopeService.buildScopeFromState(state, activityOutputs);
1724
+ * ```
1725
+ */
1726
+ declare class WorkflowExpressionScopeService {
1832
1727
  /**
1833
- * Description of what the workflow does.
1728
+ * Collect dot-notation key-value pairs from nested objects so that e.g.
1729
+ * { metadata: { "metadata.questionnaire.id": "x" } } becomes { "metadata.questionnaire.id": "x" } at root.
1730
+ * Top-level non-dot keys are kept as-is.
1834
1731
  */
1835
- description?: string;
1732
+ private flattenDotKeysFromTree;
1836
1733
  /**
1837
- * Category for grouping in toolbox.
1734
+ * Expand flat keys with dots into nested objects.
1735
+ * e.g. { "metadata.questionnaire.id": "x" } -> { metadata: { questionnaire: { id: "x" } } }.
1838
1736
  */
1839
- category?: string;
1737
+ private expandDotKeys;
1840
1738
  /**
1841
- * Icon name or class.
1739
+ * Normalize workflow input so that flat dot-notation keys (e.g. from form schema
1740
+ * "metadata.questionnaire.id") become nested for expression access (inputs.metadata.questionnaire.id).
1842
1741
  */
1843
- icon?: string;
1742
+ private normalizeInputs;
1844
1743
  /**
1845
- * Whether this workflow is browsable in the toolbox.
1846
- * Default: true
1744
+ * Build expression evaluation scope for workflow activities.
1745
+ *
1746
+ * Provides workflow-specific data (inputs, variables, outputs) and context.eval() function.
1747
+ * Other data (session, current user, etc.) are provided by expression evaluator scope providers.
1748
+ *
1749
+ * Scope includes:
1750
+ * - inputs: Workflow input values (accessible as inputs.propertyName)
1751
+ * - variables: Workflow state variables (accessible as variables.propertyName or vars.propertyName)
1752
+ * - outputs: Previous activity outputs (accessible as outputs.activityId)
1753
+ * - context.eval(path): Function to access nested properties from workflow data
1754
+ *
1755
+ * Expressions can use:
1756
+ * - {{inputs.userName}} - Direct access to workflow input
1757
+ * - {{variables.someVar}} or {{vars.someVar}} - Direct access to workflow variable
1758
+ * - {{outputs.activityId.property}} - Direct access to previous activity output
1759
+ * - {{context.eval("inputs.userName")}} - Access via context.eval (supports nested paths)
1760
+ * - {{context.eval("variables.someVar")}} - Access variables via context.eval
1761
+ * - {{context.eval("outputs.activityId.property")}} - Access outputs via context.eval
1762
+ * - {{session.currentUser().name}} - Access current user via expression evaluator scope providers
1763
+ *
1764
+ * The context.eval() function provides a unified way to access all workflow data,
1765
+ * similar to how entity-detail-list uses context.eval() to access parent data.
1766
+ *
1767
+ * @param context - Workflow expression context containing inputs, variables, and outputs
1768
+ * @returns Expression evaluator scope with workflow data and context.eval() function
1847
1769
  */
1848
- isBrowsable?: boolean;
1770
+ buildScope(context: WorkflowExpressionContext): AXPExpressionEvaluatorScope;
1849
1771
  /**
1850
- * Version number.
1772
+ * Build expression evaluation scope from workflow instance state.
1773
+ *
1774
+ * Convenience method that extracts data from AXPWorkflowInstanceState.
1775
+ *
1776
+ * @param state - Workflow instance state
1777
+ * @param activityOutputs - Map of activity outputs (activityId -> output)
1778
+ * @returns Expression evaluator scope with workflow data and context.eval() function
1851
1779
  */
1852
- version?: number;
1780
+ buildScopeFromState(state: AXPWorkflowInstanceState, activityOutputs?: Map<string, any> | Record<string, any>): AXPExpressionEvaluatorScope;
1781
+ static ɵfac: i0.ɵɵFactoryDeclaration<WorkflowExpressionScopeService, never>;
1782
+ static ɵprov: i0.ɵɵInjectableDeclaration<WorkflowExpressionScopeService>;
1783
+ }
1784
+
1785
+ /** Context passed after a workflow step completes (resume, start, or interactive chain). */
1786
+ interface AXPWorkflowContinuationStepContext {
1787
+ instanceId: string;
1788
+ /** Consumed bookmark id from the task board (when known). */
1789
+ completedBookmarkId?: string;
1790
+ /** Activity id that just completed (human-task or interactive step). */
1791
+ completedActivityId?: string;
1792
+ /** Resume outcome that completed the step (e.g. start-fill, Submitted, Saved). */
1793
+ resumeOutcome?: string;
1794
+ /** Next pending task returned by the engine / workflow manager (when known). */
1795
+ pendingNextTask?: AXPWorkflowTask | null;
1796
+ }
1797
+ /**
1798
+ * Result of a continuation prompt in the current start/resume cycle.
1799
+ * Used by {@link AXPWorkflowManager} to avoid duplicate dialogs in the same cycle.
1800
+ */
1801
+ type AXPWorkflowContinuationOfferResult = 'not-offered' | 'confirmed' | 'declined';
1802
+ /**
1803
+ * Optional hook: offer the current user to continue to the next workflow step.
1804
+ * Implemented by workflow-management (task board UX); invoked from {@link AXPWorkflowManager}.
1805
+ */
1806
+ interface AXPWorkflowContinuationHook {
1853
1807
  /**
1854
- * Whether this workflow is published.
1808
+ * Before running an inline interactive activity chain (sign-off, forms, etc.).
1809
+ * Return `declined` to skip executing that chain in this resume/start call.
1855
1810
  */
1856
- isPublished?: boolean;
1811
+ offerBeforeInteractiveFlow?(context: AXPWorkflowContinuationStepContext): Promise<AXPWorkflowContinuationOfferResult>;
1812
+ /** After resume/start when the next human-task is on the task board, or no before-offer ran. */
1813
+ offerAfterWorkflowStep?(context: AXPWorkflowContinuationStepContext): Promise<AXPWorkflowContinuationOfferResult | void>;
1814
+ }
1815
+ declare const AXP_WORKFLOW_CONTINUATION_HOOK: InjectionToken<AXPWorkflowContinuationHook>;
1816
+ /** When true on resume `userInput`, skips the post-step continuation dialog (auto-advance). */
1817
+ declare const AXP_WORKFLOW_SUPPRESS_CONTINUATION_INPUT_KEY = "_suppressWorkflowContinuation";
1818
+ declare function isWorkflowContinuationSuppressed(userInput: unknown): boolean;
1819
+
1820
+ /**
1821
+ * Frontend step executed inline (dialog/popup), not suspended on the task board.
1822
+ * Derived from execution mode and task-board activity types — no per-activity hardcoding.
1823
+ */
1824
+ declare function axpIsWorkflowInlineFrontendTask(task: AXPWorkflowTask | null | undefined): boolean;
1825
+ /** @deprecated Use {@link axpIsWorkflowInlineFrontendTask}. */
1826
+ declare function axpIsWorkflowInteractiveFrontendTask(task: AXPWorkflowTask | null | undefined): boolean;
1827
+ /** Resolved before-interactive behavior from task metadata (set by engine from activity definition). */
1828
+ declare function axpResolveWorkflowContinuationBeforeInteractive(task: AXPWorkflowTask | null | undefined): AXPWorkflowContinuationBeforeInteractive;
1829
+ /**
1830
+ * Whether to skip the pre-interactive "continue?" prompt based on activity metadata.
1831
+ * Assignee-specific rules are applied in workflow-management (needs session).
1832
+ */
1833
+ declare function axpShouldSkipBeforeInteractiveFromMetadata(behavior: AXPWorkflowContinuationBeforeInteractive, completedWasHumanTask: boolean): boolean;
1834
+ /**
1835
+ * Whether to show a "continue?" prompt before running inline frontend activities.
1836
+ * Skips when the user already resumed a task-board step (primary action / resume).
1837
+ */
1838
+ declare function axpShouldOfferBeforeInteractiveFlow(context: AXPWorkflowContinuationStepContext): boolean;
1839
+ /**
1840
+ * Whether the workflow advanced enough to consider a continuation prompt.
1841
+ * Includes pending interactive steps when inbox bookmarks are already consumed.
1842
+ */
1843
+ declare function axpShouldOfferWorkflowContinuationAfterStep(context: AXPWorkflowContinuationStepContext, activeBookmarkActivityIds: string[]): boolean;
1844
+
1845
+ /**
1846
+ * Workflow Category - Extends AXPCategoryEntity for consistency and performance
1847
+ *
1848
+ * Inherited properties from AXPCategoryEntity:
1849
+ * - id: string - Unique identifier
1850
+ * - title: string - Display name
1851
+ * - description?: string - Category description
1852
+ * - parentId?: string - Parent category ID
1853
+ * - childrenCount: number - Direct child categories count (enables lazy loading)
1854
+ * - itemsCount?: number - Direct workflows count
1855
+ * - totalChildrenCount?: number - Total nested categories (optional, for analytics)
1856
+ * - totalItemsCount?: number - Total workflows in tree (optional, for analytics)
1857
+ */
1858
+ interface AXPWorkflowCategory extends AXPCategoryEntity {
1857
1859
  }
1858
1860
  type AXPWorkflowProviderToken = AXPWorkflowProvider | Promise<AXPWorkflowProvider>;
1859
1861
  declare const AXP_WORKFLOW_PROVIDER: InjectionToken<AXPWorkflowProviderToken[]>;
@@ -1861,15 +1863,16 @@ interface AXPWorkflowProvider {
1861
1863
  /**
1862
1864
  * Get list of workflow definitions for a category.
1863
1865
  * @param categoryId - Category ID to filter workflows
1864
- * @returns Promise of workflow definition metadata array
1866
+ * @returns Promise of workflow definition array
1865
1867
  */
1866
- getList(categoryId: string): Promise<AXPWorkflowDefinitionMetadata[]>;
1868
+ getList(categoryId: string): Promise<AXPWorkflowDefinition[]>;
1867
1869
  /**
1868
- * Get workflow definition metadata by name (unique identifier).
1870
+ * Get full workflow definition by name (unique identifier).
1871
+ * Used by workflow engines for execution and UI for metadata.
1869
1872
  * @param name - Workflow name (unique identifier)
1870
- * @returns Promise of workflow definition metadata or undefined if not found
1873
+ * @returns Promise of full workflow definition or null if not found
1871
1874
  */
1872
- getById(name: string): Promise<AXPWorkflowDefinitionMetadata | undefined>;
1875
+ getByName(name: string): Promise<AXPWorkflowDefinition | null>;
1873
1876
  }
1874
1877
  type AXPWorkflowCategoryProviderToken = AXPWorkflowCategoryProvider | Promise<AXPWorkflowCategoryProvider>;
1875
1878
  declare const AXP_WORKFLOW_CATEGORY_PROVIDER: InjectionToken<AXPWorkflowCategoryProviderToken[]>;
@@ -1940,18 +1943,18 @@ declare class AXPWorkflowDefinitionService {
1940
1943
  * - Returns cached result on subsequent calls
1941
1944
  *
1942
1945
  * @param categoryId - Category ID to get workflow definitions from
1943
- * @returns Array of workflow definition metadata
1946
+ * @returns Array of workflow definitions
1944
1947
  */
1945
- getWorkflowsByCategoryId(categoryId: string): Promise<AXPWorkflowDefinitionMetadata[]>;
1948
+ getWorkflowsByCategoryId(categoryId: string): Promise<AXPWorkflowDefinition[]>;
1946
1949
  /**
1947
- * Get single workflow definition metadata by name with O(1) lookup
1950
+ * Get single workflow definition by name with O(1) lookup
1948
1951
  *
1949
1952
  * Optimization: Uses Map for instant retrieval
1950
1953
  *
1951
1954
  * @param name - Workflow name (unique identifier)
1952
- * @returns Workflow definition metadata or undefined if not found
1955
+ * @returns Workflow definition or undefined if not found
1953
1956
  */
1954
- getWorkflowByName(name: string): Promise<AXPWorkflowDefinitionMetadata | undefined>;
1957
+ getWorkflowByName(name: string): Promise<AXPWorkflowDefinition | undefined>;
1955
1958
  /**
1956
1959
  * Get category ID containing a specific workflow definition
1957
1960
  *
@@ -2015,5 +2018,5 @@ declare class AXPWorkflowDefinitionService {
2015
2018
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPWorkflowDefinitionService>;
2016
2019
  }
2017
2020
 
2018
- export { AXPActivityDefinitionService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowDefinitionService, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowLocalEngine, AXPWorkflowManager, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_DEFINITION_LOADER, AXP_WORKFLOW_ENGINE, AXP_WORKFLOW_PROVIDER, FrontendTaskExecutor, createWorkFlowEvent, ofType };
2019
- export type { AXPActivity, AXPActivityCategory, AXPActivityCategoryProvider, AXPActivityCategoryProviderToken, AXPActivityDefinition, AXPActivityExecutionContextState, AXPActivityIncident, AXPActivityProvider, AXPActivityProviderToken, AXPActivityStatus, AXPActivityVariable, AXPBookmark, AXPCompletionCallbackState, AXPConnection, AXPCustomProperties, AXPEndpoint, AXPExceptionState, AXPExpression, AXPFlowchart, AXPGetWorkflowStateRequest, AXPInputValue, AXPMetadata, AXPOutputValue, AXPPosition, AXPResumeWorkflowRequest, AXPResumeWorkflowResponse, AXPStartWorkflowRequest, AXPStartWorkflowResponse, AXPStoredWorkflowDefinition, AXPVariableDefinition, AXPVariableModel, AXPVersionedEntity, AXPWorkflow, AXPWorkflowActionInput, AXPActivity$1 as AXPWorkflowActivity, AXPWorkflowCategory, AXPWorkflowCategoryProvider, AXPWorkflowCategoryProviderToken, AXPWorkflowCondition, AXPWorkflowConditionType, AXPWorkflowDefinition, AXPWorkflowDefinitionJson, AXPWorkflowDefinitionLoader, AXPWorkflowDefinitionMetadata, AXPWorkflowEngine, AXPWorkflowEvent, AXPWorkflowFaultState, AXPWorkflowInputDefinition, AXPWorkflowInstance, AXPWorkflowInstanceState, AXPWorkflowModuleConfigs, AXPWorkflowNextStep, AXPWorkflowOptions, AXPWorkflowOutputDefinition, AXPWorkflowProvider, AXPWorkflowProviderToken, AXPWorkflowState, AXPWorkflowStatus, AXPWorkflowStep, AXPWorkflowSubStatus, AXPWorkflowTask, ActivityPropertyWidget, FrontendTaskExecutionResult, InputDescriptor, OutputDescriptor, WorkflowCompleteResult, WorkflowResumeResult, WorkflowStartResult };
2021
+ export { AXPActivityDefinitionService, AXPWorkflowAction, AXPWorkflowContext, AXPWorkflowDefinitionService, AXPWorkflowEngineError, AXPWorkflowError, AXPWorkflowEventService, AXPWorkflowFunction, AXPWorkflowLocalEngine, AXPWorkflowManager, AXPWorkflowModule, AXPWorkflowRegistryService, AXPWorkflowService, AXP_ACTIVITY_CATEGORY_PROVIDER, AXP_ACTIVITY_PROVIDER, AXP_WORKFLOW_CATEGORY_PROVIDER, AXP_WORKFLOW_CONTINUATION_HOOK, AXP_WORKFLOW_ENGINE, AXP_WORKFLOW_ERROR_CODES, AXP_WORKFLOW_PROVIDER, AXP_WORKFLOW_SUPPRESS_CONTINUATION_INPUT_KEY, AXP_WORKFLOW_TASK_BOARD_ACTIVITY_TYPES, ActivityExecutor, WorkflowExpressionScopeService, axpIsWorkflowInlineFrontendTask, axpIsWorkflowInteractiveFrontendTask, axpIsWorkflowTaskBoardActivityType, axpResolveWorkflowContinuationBeforeInteractive, axpShouldOfferBeforeInteractiveFlow, axpShouldOfferWorkflowContinuationAfterStep, axpShouldSkipBeforeInteractiveFromMetadata, createWorkFlowEvent, getWorkflowEngineErrorCode, getWorkflowEngineErrorInfo, isWorkflowContinuationSuppressed, ofType };
2022
+ export type { AXPActivityCategory, AXPActivityCategoryProvider, AXPActivityCategoryProviderToken, AXPActivityDefinition, AXPActivityDefinitionCategoryRef, AXPActivityDefinitionQueryResult, AXPActivityExecutionContextState, AXPActivityIncident, AXPActivityProvider, AXPActivityProviderToken, AXPActivityStatus, AXPActivityVariable, AXPBookmark, AXPClaimWorkflowTaskRequest, AXPClaimWorkflowTaskResponse, AXPCompletionCallbackState, AXPConnection, AXPElsaWorkflowExtensions, AXPExceptionState, AXPFrontActivityCompleteRequest, AXPFrontActivityCompleteResponse, AXPGetWorkflowStateRequest, AXPReassignWorkflowTaskToSelfRequest, AXPReassignWorkflowTaskToSelfResponse, AXPResumeWorkflowRequest, AXPResumeWorkflowResponse, AXPRevertResumeAfterDeclinedInteractiveContinuationRequest, AXPRevertResumeAfterDeclinedInteractiveContinuationResponse, AXPStartWorkflowRequest, AXPStartWorkflowResponse, AXPTaskType, AXPWorkflow, AXPWorkflowActionInput, AXPWorkflowActivityInstance, AXPWorkflowBinding, AXPWorkflowCategory, AXPWorkflowCategoryProvider, AXPWorkflowCategoryProviderToken, AXPWorkflowCondition, AXPWorkflowConditionType, AXPWorkflowContinuationBeforeInteractive, AXPWorkflowContinuationHook, AXPWorkflowContinuationMetadata, AXPWorkflowContinuationOfferResult, AXPWorkflowContinuationStepContext, AXPWorkflowDefinition, AXPWorkflowEngine, AXPWorkflowErrorCode, AXPWorkflowEvent, AXPWorkflowExtensions, AXPWorkflowFaultState, AXPWorkflowGraph, AXPWorkflowInstance, AXPWorkflowInstanceState, AXPWorkflowModuleConfigs, AXPWorkflowNextStep, AXPWorkflowOutputProperty, AXPWorkflowProvider, AXPWorkflowProviderToken, AXPWorkflowState, AXPWorkflowStatus, AXPWorkflowStep, AXPWorkflowSubStatus, AXPWorkflowTask, ActivityExecutionResult, WorkflowClaimTaskResult, WorkflowCompleteResult, WorkflowExpressionContext, WorkflowReassignTaskToSelfResult, WorkflowResumeResult, WorkflowStartResult };