@acorex/platform 21.0.0-next.24 → 21.0.0-next.33

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 (118) hide show
  1. package/fesm2022/acorex-platform-auth.mjs +121 -27
  2. package/fesm2022/acorex-platform-auth.mjs.map +1 -1
  3. package/fesm2022/{acorex-platform-common-common-settings.provider-gyb6ohAE.mjs → acorex-platform-common-common-settings.provider-G9XcXXOG.mjs} +46 -4
  4. package/fesm2022/acorex-platform-common-common-settings.provider-G9XcXXOG.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-common.mjs +677 -267
  6. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-core.mjs +393 -111
  8. package/fesm2022/acorex-platform-core.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-domain.mjs +554 -826
  10. package/fesm2022/acorex-platform-domain.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-layout-builder.mjs +345 -59
  12. package/fesm2022/acorex-platform-layout-builder.mjs.map +1 -1
  13. package/fesm2022/{acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs → acorex-platform-layout-components-binding-expression-editor-popup.component-CXEdvDTf.mjs} +9 -9
  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 +3373 -872
  16. package/fesm2022/acorex-platform-layout-components.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-layout-designer.mjs +169 -154
  18. package/fesm2022/acorex-platform-layout-designer.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-layout-entity.mjs +14645 -11533
  20. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  21. package/fesm2022/acorex-platform-layout-views.mjs +244 -170
  22. package/fesm2022/acorex-platform-layout-views.mjs.map +1 -1
  23. package/fesm2022/acorex-platform-layout-widget-core.mjs +367 -408
  24. package/fesm2022/acorex-platform-layout-widget-core.mjs.map +1 -1
  25. package/fesm2022/{acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs → acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs} +10 -10
  26. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dy7jF-oD.mjs.map +1 -0
  27. package/fesm2022/{acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs → acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs} +30 -22
  28. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-9uCkMxcc.mjs.map +1 -0
  29. package/fesm2022/{acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs → acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs} +6 -7
  30. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-C_EPAvCU.mjs.map +1 -0
  31. package/fesm2022/{acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs → acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs} +12 -12
  32. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-D10yO28c.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs +111 -0
  34. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-BGQqY5Mw.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs → acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs} +7 -7
  36. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-DmzNTYiS.mjs.map +1 -0
  37. package/fesm2022/{acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs → acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs} +5 -5
  38. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component-BNG_588B.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs → acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs} +6 -6
  40. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-Vo4fWHtX.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-layout-widgets.mjs +5924 -4049
  42. package/fesm2022/acorex-platform-layout-widgets.mjs.map +1 -1
  43. package/fesm2022/acorex-platform-native.mjs +8 -7
  44. package/fesm2022/acorex-platform-native.mjs.map +1 -1
  45. package/fesm2022/acorex-platform-runtime.mjs +220 -169
  46. package/fesm2022/acorex-platform-runtime.mjs.map +1 -1
  47. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs +160 -0
  48. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-Cvvr4HnL.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs +120 -0
  50. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-TYoLN1Jq.mjs.map +1 -0
  51. package/fesm2022/{acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs → acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs} +15 -22
  52. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-C2z5Lq9y.mjs.map +1 -0
  53. package/fesm2022/{acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs → acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs} +4 -4
  54. package/fesm2022/acorex-platform-themes-default-error-401.component-C7EYJzSr.mjs.map +1 -0
  55. package/fesm2022/{acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs → acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs} +4 -4
  56. package/fesm2022/acorex-platform-themes-default-error-404.component-7MVLMwIa.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs +19 -0
  58. package/fesm2022/acorex-platform-themes-default-error-offline.component-DR6G8gPC.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-themes-default.mjs +1667 -61
  60. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  61. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs → acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs} +6 -6
  62. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-CqkWJYdv.mjs.map +1 -0
  63. package/fesm2022/{acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs → acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs} +6 -6
  64. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-BOTuLdWN.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-themes-shared-settings.provider-DSs1o1M6.mjs.map +1 -1
  66. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs → acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs} +4 -4
  67. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-CHfrTtol.mjs.map +1 -0
  68. package/fesm2022/{acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs → acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs} +9 -9
  69. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-BSmvnUVq.mjs.map +1 -0
  70. package/fesm2022/acorex-platform-themes-shared.mjs +231 -227
  71. package/fesm2022/acorex-platform-themes-shared.mjs.map +1 -1
  72. package/fesm2022/acorex-platform-workflow.mjs +208 -91
  73. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  74. package/fesm2022/acorex-platform.mjs.map +1 -1
  75. package/package.json +34 -34
  76. package/{auth/index.d.ts → types/acorex-platform-auth.d.ts} +14 -2
  77. package/{common/index.d.ts → types/acorex-platform-common.d.ts} +189 -16
  78. package/{core/index.d.ts → types/acorex-platform-core.d.ts} +178 -15
  79. package/{domain/index.d.ts → types/acorex-platform-domain.d.ts} +719 -413
  80. package/{layout/builder/index.d.ts → types/acorex-platform-layout-builder.d.ts} +91 -42
  81. package/{layout/components/index.d.ts → types/acorex-platform-layout-components.d.ts} +893 -138
  82. package/{layout/designer/index.d.ts → types/acorex-platform-layout-designer.d.ts} +9 -3
  83. package/{layout/entity/index.d.ts → types/acorex-platform-layout-entity.d.ts} +515 -26
  84. package/{layout/views/index.d.ts → types/acorex-platform-layout-views.d.ts} +44 -9
  85. package/{layout/widget-core/index.d.ts → types/acorex-platform-layout-widget-core.d.ts} +146 -95
  86. package/{layout/widgets/index.d.ts → types/acorex-platform-layout-widgets.d.ts} +506 -98
  87. package/{native/index.d.ts → types/acorex-platform-native.d.ts} +0 -7
  88. package/{runtime/index.d.ts → types/acorex-platform-runtime.d.ts} +237 -74
  89. package/{themes/default/index.d.ts → types/acorex-platform-themes-default.d.ts} +104 -4
  90. package/{workflow/index.d.ts → types/acorex-platform-workflow.d.ts} +33 -30
  91. package/fesm2022/acorex-platform-common-common-settings.provider-gyb6ohAE.mjs.map +0 -1
  92. package/fesm2022/acorex-platform-layout-components-binding-expression-editor-popup.component-Cb6Lk4Ch.mjs.map +0 -1
  93. package/fesm2022/acorex-platform-layout-widgets-button-widget-designer.component-Dnbx_uY7.mjs.map +0 -1
  94. package/fesm2022/acorex-platform-layout-widgets-file-list-popup.component-B0omAUil.mjs.map +0 -1
  95. package/fesm2022/acorex-platform-layout-widgets-image-preview.popup-D-HFZHNZ.mjs.map +0 -1
  96. package/fesm2022/acorex-platform-layout-widgets-page-widget-designer.component-q30grR3z.mjs.map +0 -1
  97. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs +0 -111
  98. package/fesm2022/acorex-platform-layout-widgets-repeater-widget-column.component-fcCirNxz.mjs.map +0 -1
  99. package/fesm2022/acorex-platform-layout-widgets-tabular-data-edit-popup.component-BJh1QJqp.mjs.map +0 -1
  100. package/fesm2022/acorex-platform-layout-widgets-tabular-data-view-popup.component--rzP7scF.mjs.map +0 -1
  101. package/fesm2022/acorex-platform-layout-widgets-text-block-widget-designer.component-DHlgsHa7.mjs.map +0 -1
  102. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs +0 -160
  103. package/fesm2022/acorex-platform-themes-default-entity-master-create-view.component-D_ex0nL2.mjs.map +0 -1
  104. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs +0 -1611
  105. package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-BhDLyC5P.mjs.map +0 -1
  106. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs +0 -99
  107. package/fesm2022/acorex-platform-themes-default-entity-master-modify-view.component-CgLUnYRq.mjs.map +0 -1
  108. package/fesm2022/acorex-platform-themes-default-entity-master-single-view.component-di5w_3K2.mjs.map +0 -1
  109. package/fesm2022/acorex-platform-themes-default-error-401.component-D9NZ-6L_.mjs.map +0 -1
  110. package/fesm2022/acorex-platform-themes-default-error-404.component-CgB_tlPU.mjs.map +0 -1
  111. package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs +0 -19
  112. package/fesm2022/acorex-platform-themes-default-error-offline.component-DlUrqVmj.mjs.map +0 -1
  113. package/fesm2022/acorex-platform-themes-shared-icon-chooser-column.component-Cmju9l91.mjs.map +0 -1
  114. package/fesm2022/acorex-platform-themes-shared-icon-chooser-view.component-Cp5Th57U.mjs.map +0 -1
  115. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-column.component-BQxoUmYL.mjs.map +0 -1
  116. package/fesm2022/acorex-platform-themes-shared-theme-color-chooser-view.component-CTGy2kjJ.mjs.map +0 -1
  117. /package/{themes/shared/index.d.ts → types/acorex-platform-themes-shared.d.ts} +0 -0
  118. /package/{index.d.ts → types/acorex-platform.d.ts} +0 -0
@@ -6,13 +6,6 @@ declare class AXPNativeModule {
6
6
  static ɵinj: i0.ɵɵInjectorDeclaration<AXPNativeModule>;
7
7
  }
8
8
 
9
- declare global {
10
- interface Window {
11
- FlutterChannel?: {
12
- postMessage: (message: string) => void;
13
- };
14
- }
15
- }
16
9
  declare class AXPNativeService {
17
10
  private isDark;
18
11
  constructor();
@@ -1,11 +1,171 @@
1
1
  import { AXPExecuteCommandResult, AXPViewDefinition, AXPMetaData } from '@acorex/platform/core';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, Type, EnvironmentProviders, Provider } from '@angular/core';
3
+ import { InjectionToken, EnvironmentProviders, Type, Provider } from '@angular/core';
4
4
  import { AXComponent } from '@acorex/cdk/common';
5
5
 
6
- type AXPExecuteCommandResultPromise<TResult = any> = Promise<AXPExecuteCommandResult<TResult>>;
7
- interface AXPCommand<TInput = any, TResult = any> {
8
- execute(input: TInput): AXPExecuteCommandResultPromise<TResult>;
6
+ /**
7
+ * Shared build-time metadata shapes for command and query catalog definitions.
8
+ * Lives under `shared/` so secondary ng-packagr entries under `commands/` or `queries/` share a common `src/lib` compilation root.
9
+ */
10
+ /** Command metadata validation: rule key + optional rule options only. */
11
+ interface AXPCommandValidationRuleValue {
12
+ rule: string;
13
+ options?: Record<string, unknown>;
14
+ }
15
+ /**
16
+ * Widget/interface reference for a schema property (name + optional widget options).
17
+ */
18
+ interface AXPCommandInterfaceDefinitionValue {
19
+ name: string;
20
+ options?: Record<string, unknown>;
21
+ }
22
+ /**
23
+ * One input/output property description (same structural role as AXPPropertyDefinition).
24
+ */
25
+ interface AXPCommandSchemaPropertyDefinition {
26
+ name: string;
27
+ title: string;
28
+ description?: string;
29
+ icon?: string;
30
+ defaultValue?: unknown;
31
+ disabled?: boolean;
32
+ interface: AXPCommandInterfaceDefinitionValue;
33
+ validations?: AXPCommandValidationRuleValue[];
34
+ }
35
+ /** Structured usage hints for planners and assistants (prefer over duplicating rules only in `description`). */
36
+ interface AXPCommandAiUsageMetadata {
37
+ whenToUse?: string[];
38
+ avoidWhen?: string[];
39
+ /** Registry keys or tool names that commonly follow this command/query. */
40
+ followUpTools?: string[];
41
+ }
42
+ /** Declarative contracts: what the tool provides, who depends on it, and guarantees (not workflow `outcomes`). */
43
+ interface AXPCommandAiContractsMetadata {
44
+ provides?: string[];
45
+ requiredBy?: string[];
46
+ guarantees?: string[];
47
+ }
48
+ type AXPCommandAiSafetyKind = 'read-only' | 'mutating';
49
+ interface AXPCommandAiSafetyMetadata {
50
+ kind?: AXPCommandAiSafetyKind;
51
+ sideEffects?: boolean;
52
+ requiresConfirmation?: boolean;
53
+ }
54
+ type AXPCommandAiPerformanceCost = 'low' | 'medium' | 'high';
55
+ interface AXPCommandAiPerformanceMetadata {
56
+ cost?: AXPCommandAiPerformanceCost;
57
+ cacheable?: boolean;
58
+ }
59
+ interface AXPCommandAiNextStepMetadata {
60
+ when: string;
61
+ action: string;
62
+ }
63
+ /**
64
+ * How to interpret a successful payload for agents (documentation only; not command workflow outcomes).
65
+ */
66
+ interface AXPCommandAiResultSemanticsMetadata {
67
+ noMatch?: string;
68
+ exactMatch?: string;
69
+ multipleMatches?: string;
70
+ failed?: string;
71
+ /** Full catalog listing (e.g. no entity filter). */
72
+ catalog?: string;
73
+ }
74
+ interface AXPCommandAiMetadata {
75
+ shortDescription?: string;
76
+ tags?: string[];
77
+ usage?: AXPCommandAiUsageMetadata;
78
+ contracts?: AXPCommandAiContractsMetadata;
79
+ safety?: AXPCommandAiSafetyMetadata;
80
+ performance?: AXPCommandAiPerformanceMetadata;
81
+ nextSteps?: AXPCommandAiNextStepMetadata[];
82
+ resultSemantics?: AXPCommandAiResultSemanticsMetadata;
83
+ /**
84
+ * Default input fragment merged for AI/tool invocations (catalog & tooling).
85
+ * Runtime merge for a given command is applied in the AI module (not the generic command executor).
86
+ */
87
+ toolInputDefaults?: Record<string, unknown>;
88
+ /**
89
+ * Optional JSON Schema fragment for LLM tool `parameters` (OpenAI-style function calling).
90
+ * Merged over the auto-generated schema from catalog `inputs` (`properties` / `required` deep-merged).
91
+ * Use when widget-to-type inference is insufficient (e.g. `object`, `array`, `enum`, `format`).
92
+ */
93
+ toolParametersSchema?: Record<string, unknown>;
94
+ }
95
+ type AXPCommandExecutionMode = 'frontend' | 'backend' | 'both';
96
+ /**
97
+ * Where this command is intended to appear in product tooling (AI agents, workflow automation pickers, etc.).
98
+ * Omitted = not declared here; runtimes may fall back to other metadata (e.g. `ai.tags`).
99
+ */
100
+ type AXPCommandCapability = 'ai' | 'workflow';
101
+
102
+ /**
103
+ * Build-time command metadata for AXPCommand implementations.
104
+ * `inputs` / `outputs` are schema rows (same family as entity optionDefinitions).
105
+ * Validation entries: only `rule` name and optional `options` (no title/message on rules).
106
+ * Do not import from Angular templates; sidecars may import `defineCommand` from `@acorex/platform/runtime`.
107
+ *
108
+ * Query metadata (fetch-only, no outcomes) is defined in `../queries/query-definition.types.ts` with `defineQuery`.
109
+ */
110
+
111
+ type AXPCommandOutcomeDefinition = {
112
+ mode: 'static';
113
+ values: string[];
114
+ } | {
115
+ mode: 'dynamic';
116
+ summary: string;
117
+ derivesFrom: string;
118
+ examples?: string[];
119
+ };
120
+ interface AXPCommandMetadataDefinition {
121
+ /** Runtime registration key (provideCommand / provideCommandSetups). */
122
+ key: string;
123
+ title: string;
124
+ description: string;
125
+ executionMode: AXPCommandExecutionMode;
126
+ /** Input parameters as schema rows. */
127
+ inputs?: AXPCommandSchemaPropertyDefinition[];
128
+ /** Output shape as schema rows. */
129
+ outputs?: AXPCommandSchemaPropertyDefinition[];
130
+ outcomes: AXPCommandOutcomeDefinition;
131
+ ai?: AXPCommandAiMetadata;
132
+ /** Optional list of surfaces that may list or invoke this command as a tool/activity. */
133
+ capabilities?: AXPCommandCapability[];
134
+ }
135
+
136
+ /**
137
+ * Typed identity helper for command metadata sidecars.
138
+ */
139
+ declare function defineCommand<T extends AXPCommandMetadataDefinition>(definition: T): T;
140
+
141
+ type AXPCommandExecutionStage = 'before' | 'after';
142
+ interface AXPCommandExecutionEvent<TInput = unknown, TResult = unknown> {
143
+ stage: AXPCommandExecutionStage;
144
+ key: string;
145
+ input: TInput;
146
+ success?: boolean;
147
+ result?: AXPExecuteCommandResult<TResult> | null;
148
+ error?: unknown;
149
+ }
150
+ type CommandExecutionHandler<TInput, TResult> = (event: AXPCommandExecutionEvent<TInput, TResult>) => void;
151
+ declare class AXPCommandEventsService {
152
+ private readonly broadcast;
153
+ private readonly distributedEvents;
154
+ listen<TInput = unknown, TResult = unknown>(handler: CommandExecutionHandler<TInput, TResult>): () => void;
155
+ emit<TInput = unknown, TResult = unknown>(event: AXPCommandExecutionEvent<TInput, TResult>): Promise<void>;
156
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommandEventsService, never>;
157
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPCommandEventsService>;
158
+ }
159
+
160
+ declare class AXPCommandExecutor {
161
+ private readonly injector;
162
+ private readonly registry;
163
+ private readonly extensions;
164
+ private readonly commandEvents;
165
+ execute<TInput = any, TResult = any>(key: string, input: TInput): Promise<AXPExecuteCommandResult<TResult> | null>;
166
+ private getPluginMiddlewares;
167
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommandExecutor, never>;
168
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPCommandExecutor>;
9
169
  }
10
170
 
11
171
  /**
@@ -17,6 +177,17 @@ type AXPCommandMiddleware<TInput = any, TResult = any> = (input: TInput, next: (
17
177
  */
18
178
  declare function composeCommandMiddlewares<TInput, TResult>(middlewares: AXPCommandMiddleware<TInput, TResult>[]): (handler: (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>) => (input: TInput) => Promise<AXPExecuteCommandResult<TResult>>;
19
179
 
180
+ interface AXPCommandExtension {
181
+ target: string | RegExp;
182
+ middleware: AXPCommandMiddleware;
183
+ }
184
+ declare const AXP_COMMAND_EXTENSION: InjectionToken<AXPCommandExtension[]>;
185
+
186
+ type AXPExecuteCommandResultPromise<TResult = any> = Promise<AXPExecuteCommandResult<TResult>>;
187
+ interface AXPCommand<TInput = any, TResult = any> {
188
+ execute(input: TInput): AXPExecuteCommandResultPromise<TResult>;
189
+ }
190
+
20
191
  declare class AXPCommandRegistry {
21
192
  private registry;
22
193
  private middlewares;
@@ -32,17 +203,6 @@ declare class AXPCommandRegistry {
32
203
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPCommandRegistry>;
33
204
  }
34
205
 
35
- declare class AXPCommandExecutor {
36
- private readonly injector;
37
- private readonly registry;
38
- private readonly extensions;
39
- private readonly commandEvents;
40
- execute<TInput = any, TResult = any>(key: string, input: TInput): Promise<AXPExecuteCommandResult<TResult> | null>;
41
- private getPluginMiddlewares;
42
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommandExecutor, never>;
43
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPCommandExecutor>;
44
- }
45
-
46
206
  declare class AXPCommandService {
47
207
  private readonly registry;
48
208
  private readonly executor;
@@ -57,11 +217,12 @@ declare class AXPCommandService {
57
217
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPCommandService>;
58
218
  }
59
219
 
60
- interface AXPCommandExtension {
220
+ declare const AXP_COMMAND_MIDDLEWARE_SETUP: InjectionToken<void>;
221
+ type AXPCommandMiddlewareEntry = (AXPCommandMiddleware | {
61
222
  target: string | RegExp;
62
223
  middleware: AXPCommandMiddleware;
63
- }
64
- declare const AXP_COMMAND_EXTENSION: InjectionToken<AXPCommandExtension[]>;
224
+ })[];
225
+ declare function provideCommandMiddleware(entries: AXPCommandMiddlewareEntry): EnvironmentProviders;
65
226
 
66
227
  declare const AXP_COMMAND_SETUP: InjectionToken<void>;
67
228
  type AXPCommandLoader = {
@@ -71,38 +232,70 @@ type AXPCommandLoader = {
71
232
  declare function provideCommandSetups(entries: AXPCommandLoader[]): EnvironmentProviders;
72
233
  declare function provideCommand(key: string, loader: () => Type<AXPCommand> | Promise<Type<AXPCommand>>): EnvironmentProviders;
73
234
 
74
- declare const AXP_COMMAND_MIDDLEWARE_SETUP: InjectionToken<void>;
75
- type AXPCommandMiddlewareEntry = (AXPCommandMiddleware | {
76
- target: string | RegExp;
77
- middleware: AXPCommandMiddleware;
78
- })[];
79
- declare function provideCommandMiddleware(entries: AXPCommandMiddlewareEntry): EnvironmentProviders;
235
+ /**
236
+ * Build-time query metadata for AXPQuery implementations.
237
+ * Mirrors command metadata shape except there are no `outcomes` (queries only `fetch`).
238
+ * `inputs` / `outputs` are schema rows (same family as entity optionDefinitions).
239
+ */
80
240
 
81
- type AXPCommandExecutionStage = 'before' | 'after';
82
- interface AXPCommandExecutionEvent<TInput = unknown, TResult = unknown> {
83
- stage: AXPCommandExecutionStage;
241
+ /** One input/output property description for query definitions (same as command schema rows). */
242
+ type AXPQuerySchemaPropertyDefinition = AXPCommandSchemaPropertyDefinition;
243
+ interface AXPQueryMetadataDefinition {
244
+ /** Runtime registration key (provideQuerySetups). */
84
245
  key: string;
85
- input: TInput;
86
- success?: boolean;
87
- result?: AXPExecuteCommandResult<TResult> | null;
88
- error?: unknown;
89
- }
90
- type CommandExecutionHandler<TInput, TResult> = (event: AXPCommandExecutionEvent<TInput, TResult>) => void;
91
- declare class AXPCommandEventsService {
92
- private readonly broadcast;
93
- private readonly distributedEvents;
94
- listen<TInput = unknown, TResult = unknown>(handler: CommandExecutionHandler<TInput, TResult>): () => void;
95
- emit<TInput = unknown, TResult = unknown>(event: AXPCommandExecutionEvent<TInput, TResult>): Promise<void>;
96
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPCommandEventsService, never>;
97
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPCommandEventsService>;
246
+ title: string;
247
+ description: string;
248
+ executionMode: AXPCommandExecutionMode;
249
+ /** Query input / filter parameters as schema rows. */
250
+ inputs?: AXPQuerySchemaPropertyDefinition[];
251
+ /** Documented result shape as schema rows. */
252
+ outputs?: AXPQuerySchemaPropertyDefinition[];
253
+ ai?: AXPCommandAiMetadata;
254
+ /** Optional list of surfaces that may list or invoke this query as a tool (e.g. AI assistants). */
255
+ capabilities?: AXPCommandCapability[];
98
256
  }
99
257
 
258
+ /**
259
+ * Typed identity helper for query metadata sidecars.
260
+ */
261
+ declare function defineQuery<T extends AXPQueryMetadataDefinition>(definition: T): T;
262
+
263
+ type AXPQueryMiddleware<TInput = any, TResult = any> = (input: TInput, next: (input: TInput) => Promise<TResult>) => Promise<TResult>;
264
+ declare function composeQueryMiddlewares<TInput, TResult>(middlewares: AXPQueryMiddleware<TInput, TResult>[]): (handler: (input: TInput) => Promise<TResult>) => (input: TInput) => Promise<TResult>;
265
+
266
+ declare const AXP_QUERY_MIDDLEWARE_SETUP: InjectionToken<void>;
267
+ type AXPQueryMiddlewareEntry = (AXPQueryMiddleware | {
268
+ key: string;
269
+ middleware: AXPQueryMiddleware;
270
+ })[];
271
+ declare function provideQueryMiddleware(entries: AXPQueryMiddlewareEntry): EnvironmentProviders;
272
+
100
273
  interface AXPQuery<TInput = any, TResult = any> {
101
274
  fetch(input: TInput): Promise<TResult>;
102
275
  }
103
276
 
104
- type AXPQueryMiddleware<TInput = any, TResult = any> = (input: TInput, next: (input: TInput) => Promise<TResult>) => Promise<TResult>;
105
- declare function composeQueryMiddlewares<TInput, TResult>(middlewares: AXPQueryMiddleware<TInput, TResult>[]): (handler: (input: TInput) => Promise<TResult>) => (input: TInput) => Promise<TResult>;
277
+ declare const AXP_QUERY_SETUP: InjectionToken<void>;
278
+ type AXPQueryLoaderEntry = {
279
+ key: string;
280
+ loader: () => Type<AXPQuery> | Promise<Type<AXPQuery>>;
281
+ };
282
+ declare function provideQuerySetups(entries: AXPQueryLoaderEntry[]): EnvironmentProviders;
283
+
284
+ declare class AXPQueryExecutor {
285
+ private readonly injector;
286
+ private readonly registry;
287
+ private readonly extensions;
288
+ fetch<TInput = any, TResult = any>(key: string, input: TInput): Promise<TResult | null>;
289
+ private getPluginMiddlewares;
290
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXPQueryExecutor, never>;
291
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXPQueryExecutor>;
292
+ }
293
+
294
+ interface AXPQueryExtension {
295
+ target: string | RegExp;
296
+ middleware: AXPQueryMiddleware;
297
+ }
298
+ declare const AXP_QUERY_EXTENSION: InjectionToken<AXPQueryExtension[]>;
106
299
 
107
300
  declare class AXPQueryRegistry {
108
301
  private registry;
@@ -119,16 +312,6 @@ declare class AXPQueryRegistry {
119
312
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPQueryRegistry>;
120
313
  }
121
314
 
122
- declare class AXPQueryExecutor {
123
- private readonly injector;
124
- private readonly registry;
125
- private readonly extensions;
126
- fetch<TInput = any, TResult = any>(key: string, input: TInput): Promise<TResult | null>;
127
- private getPluginMiddlewares;
128
- static ɵfac: i0.ɵɵFactoryDeclaration<AXPQueryExecutor, never>;
129
- static ɵprov: i0.ɵɵInjectableDeclaration<AXPQueryExecutor>;
130
- }
131
-
132
315
  declare class AXPQueryService {
133
316
  private readonly registry;
134
317
  private readonly executor;
@@ -143,26 +326,6 @@ declare class AXPQueryService {
143
326
  static ɵprov: i0.ɵɵInjectableDeclaration<AXPQueryService>;
144
327
  }
145
328
 
146
- interface AXPQueryExtension {
147
- target: string | RegExp;
148
- middleware: AXPQueryMiddleware;
149
- }
150
- declare const AXP_QUERY_EXTENSION: InjectionToken<AXPQueryExtension[]>;
151
-
152
- declare const AXP_QUERY_SETUP: InjectionToken<void>;
153
- type AXPQueryLoaderEntry = {
154
- key: string;
155
- loader: () => Type<AXPQuery> | Promise<Type<AXPQuery>>;
156
- };
157
- declare function provideQuerySetups(entries: AXPQueryLoaderEntry[]): EnvironmentProviders;
158
-
159
- declare const AXP_QUERY_MIDDLEWARE_SETUP: InjectionToken<void>;
160
- type AXPQueryMiddlewareEntry = (AXPQueryMiddleware | {
161
- key: string;
162
- middleware: AXPQueryMiddleware;
163
- })[];
164
- declare function provideQueryMiddleware(entries: AXPQueryMiddlewareEntry): EnvironmentProviders;
165
-
166
329
  interface AXPViewProvider<TInput = any> {
167
330
  provide(input: TInput): Promise<AXPViewDefinition>;
168
331
  }
@@ -303,5 +466,5 @@ declare class AXPRuntimeModule {
303
466
  static ɵinj: i0.ɵɵInjectorDeclaration<AXPRuntimeModule>;
304
467
  }
305
468
 
306
- export { AXPCommandEventsService, AXPCommandExecutor, AXPCommandRegistry, AXPCommandService, AXPPolicyEngineContext, AXPPolicyEngineDirective, AXPPolicyEngineRegistry, AXPPolicyEngineService, AXPQueryExecutor, AXPQueryRegistry, AXPQueryService, AXPRuntimeModule, AXPViewExecutor, AXPViewRegistry, AXPViewService, AXP_COMMAND_EXTENSION, AXP_COMMAND_MIDDLEWARE_SETUP, AXP_COMMAND_SETUP, AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, AXP_POLICY_EXTENSION, AXP_QUERY_EXTENSION, AXP_QUERY_MIDDLEWARE_SETUP, AXP_QUERY_SETUP, AXP_VIEW_EXTENSION, AXP_VIEW_SETUP, composeCommandMiddlewares, composePolicyEngineMiddlewares, composeQueryMiddlewares, composeViewMiddlewares, provideCommand, provideCommandMiddleware, provideCommandSetups, providePolicySetups, provideQueryMiddleware, provideQuerySetups, provideViewSetup, provideViewSetups };
307
- export type { AXPCommand, AXPCommandExecutionEvent, AXPCommandExecutionStage, AXPCommandExtension, AXPCommandMiddleware, AXPExecuteCommandResultPromise, AXPPolicy, AXPPolicyEngineMiddleware, AXPPolicyExtension, AXPQuery, AXPQueryExtension, AXPQueryMiddleware, AXPViewExtension, AXPViewMiddleware, AXPViewProvider };
469
+ export { AXPCommandEventsService, AXPCommandExecutor, AXPCommandRegistry, AXPCommandService, AXPPolicyEngineContext, AXPPolicyEngineDirective, AXPPolicyEngineRegistry, AXPPolicyEngineService, AXPQueryExecutor, AXPQueryRegistry, AXPQueryService, AXPRuntimeModule, AXPViewExecutor, AXPViewRegistry, AXPViewService, AXP_COMMAND_EXTENSION, AXP_COMMAND_MIDDLEWARE_SETUP, AXP_COMMAND_SETUP, AXP_POLICY_ENGINE_MIDDLEWARE_SETUP, AXP_POLICY_EXTENSION, AXP_QUERY_EXTENSION, AXP_QUERY_MIDDLEWARE_SETUP, AXP_QUERY_SETUP, AXP_VIEW_EXTENSION, AXP_VIEW_SETUP, composeCommandMiddlewares, composePolicyEngineMiddlewares, composeQueryMiddlewares, composeViewMiddlewares, defineCommand, defineQuery, provideCommand, provideCommandMiddleware, provideCommandSetups, providePolicySetups, provideQueryMiddleware, provideQuerySetups, provideViewSetup, provideViewSetups };
470
+ export type { AXPCommand, AXPCommandAiContractsMetadata, AXPCommandAiMetadata, AXPCommandAiNextStepMetadata, AXPCommandAiPerformanceCost, AXPCommandAiPerformanceMetadata, AXPCommandAiResultSemanticsMetadata, AXPCommandAiSafetyKind, AXPCommandAiSafetyMetadata, AXPCommandAiUsageMetadata, AXPCommandCapability, AXPCommandExecutionEvent, AXPCommandExecutionMode, AXPCommandExecutionStage, AXPCommandExtension, AXPCommandInterfaceDefinitionValue, AXPCommandMetadataDefinition, AXPCommandMiddleware, AXPCommandOutcomeDefinition, AXPCommandSchemaPropertyDefinition, AXPCommandValidationRuleValue, AXPExecuteCommandResultPromise, AXPPolicy, AXPPolicyEngineMiddleware, AXPPolicyExtension, AXPQuery, AXPQueryExtension, AXPQueryMetadataDefinition, AXPQueryMiddleware, AXPQuerySchemaPropertyDefinition, AXPViewExtension, AXPViewMiddleware, AXPViewProvider };
@@ -4,11 +4,14 @@ import { Signal } from '@angular/core';
4
4
  import * as _acorex_platform_themes_shared from '@acorex/platform/themes/shared';
5
5
  import { AXValueChangedEvent } from '@acorex/cdk/common';
6
6
  import { AXActionSheetService } from '@acorex/components/action-sheet';
7
- import { AXDataTableComponent, AXRowCommandItem, AXDataTableRowDbClick, AXRowCommandItemClickEvent } from '@acorex/components/data-table';
7
+ import { AXDataTableComponent, AXRowCommandItem, AXDataTableRowDbClick, AXRowCommandItemClickEvent, onColumnSizeChangedEvent, AXColumnsOrderChangedEvent } from '@acorex/components/data-table';
8
8
  import { AXUnsubscriber } from '@acorex/core/utils';
9
9
  import * as _acorex_platform_core from '@acorex/platform/core';
10
- import { AXPDeviceService } from '@acorex/platform/core';
11
- import { AXPEntityCommandTriggerViewModel, AXPEntityDetailListViewModel } from '@acorex/platform/layout/entity';
10
+ import { AXPDeviceService, AXPBreadcrumbItem, AXPActionMenuItem, AXPExecuteCommand } from '@acorex/platform/core';
11
+ import { AXPEntityCommandTriggerViewModel, AXPEntityDetailListViewModel, AXPEntityMasterListViewModel } from '@acorex/platform/layout/entity';
12
+ import { AXPlatform } from '@acorex/core/platform';
13
+ import { AXDataPagerChangedEvent } from '@acorex/components/data-pager';
14
+ import { AXPPageLayoutBaseComponent } from '@acorex/platform/layout/views';
12
15
  import * as _acorex_platform_common from '@acorex/platform/common';
13
16
  import { AXPMenuItem, AXPSettingsService, AXPMenuVisibilityService } from '@acorex/platform/common';
14
17
  import { AXPTaskBadgeService } from '@acorex/platform/layout/components';
@@ -92,6 +95,103 @@ declare class AXPEntityDetailListViewComponent {
92
95
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityDetailListViewComponent, "axp-entity-detail-list-view", never, { "vm": { "alias": "viewModel"; "required": false; }; }, {}, never, never, true, never>;
93
96
  }
94
97
 
98
+ declare class AXPEntityMasterListViewComponent extends AXPPageLayoutBaseComponent {
99
+ protected platform: AXPlatform;
100
+ private activeRoute;
101
+ private router;
102
+ protected readonly vm: AXPEntityMasterListViewModel;
103
+ protected store: {
104
+ currentMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
105
+ currentPalette: _angular_core.Signal<string>;
106
+ systemThemeMode: _angular_core.Signal<_acorex_platform_themes_shared.AXPThemeMode>;
107
+ font: _ngrx_signals.DeepSignal<{
108
+ family: string;
109
+ size: string;
110
+ }>;
111
+ overlayLoading: _angular_core.Signal<boolean>;
112
+ navigationLoading: _angular_core.Signal<boolean>;
113
+ overlayLoadingTaskCount: _angular_core.Signal<number>;
114
+ navigationLoadingTaskCount: _angular_core.Signal<number>;
115
+ sideMenuState: _angular_core.Signal<_acorex_platform_themes_shared.AXPSideMenuState>;
116
+ sideMenuWidth: _angular_core.Signal<number>;
117
+ menuOrientation: _angular_core.Signal<_acorex_platform_themes_shared.AXPMenuOrientation>;
118
+ isPrinting: _angular_core.Signal<boolean>;
119
+ isDarkMode: _angular_core.Signal<boolean>;
120
+ isLightMode: _angular_core.Signal<boolean>;
121
+ isSystemMode: _angular_core.Signal<boolean>;
122
+ isSideMenuOpen: _angular_core.Signal<boolean>;
123
+ isOverlayLoading: _angular_core.Signal<boolean>;
124
+ isNavigationLoading: _angular_core.Signal<boolean>;
125
+ isMenuHorizontal: _angular_core.Signal<boolean>;
126
+ changeThemeMode: (theme: _acorex_platform_themes_shared.AXPThemeMode) => void;
127
+ openSideMenu: () => void;
128
+ closeSideMenu: () => void;
129
+ setSideMenuWidth: (width: number) => void;
130
+ toggleSideMenu: () => void;
131
+ setNavigationLoading: (value: boolean, delay?: number) => void;
132
+ setOverlayLoading: (value: boolean, delay?: number) => void;
133
+ loadSettings: () => Promise<void>;
134
+ } & _ngrx_signals.StateSource<{
135
+ currentMode: _acorex_platform_themes_shared.AXPThemeMode;
136
+ currentPalette: string;
137
+ systemThemeMode: _acorex_platform_themes_shared.AXPThemeMode;
138
+ font: {
139
+ family: string;
140
+ size: string;
141
+ };
142
+ overlayLoading: boolean;
143
+ navigationLoading: boolean;
144
+ overlayLoadingTaskCount: number;
145
+ navigationLoadingTaskCount: number;
146
+ sideMenuState: _acorex_platform_themes_shared.AXPSideMenuState;
147
+ sideMenuWidth: number;
148
+ menuOrientation: _acorex_platform_themes_shared.AXPMenuOrientation;
149
+ isPrinting: boolean;
150
+ }>;
151
+ protected searchBarShown: _angular_core.WritableSignal<boolean>;
152
+ protected activeEndSideView: _angular_core.WritableSignal<"sort" | "filter" | "column">;
153
+ protected categorySearchValue: _angular_core.WritableSignal<string>;
154
+ protected grid: _angular_core.Signal<AXDataTableComponent | undefined>;
155
+ private queryParamSub?;
156
+ private initializedFromRoute;
157
+ constructor(platform: AXPlatform);
158
+ ngOnInit(): Promise<void>;
159
+ ngAfterViewInit(): Promise<void>;
160
+ protected onColumnSizeChanged(e: onColumnSizeChangedEvent): void;
161
+ protected onPageChanged(e: AXDataPagerChangedEvent): void;
162
+ protected onColumnsOrderChanged(e: AXColumnsOrderChangedEvent): void;
163
+ protected dropdownRowItems(rowData: any): Promise<AXRowCommandItem[]>;
164
+ private commandRowItems;
165
+ protected handleRowDbClick(e: AXDataTableRowDbClick): Promise<void>;
166
+ protected getDropdownRowItems: (rowData: unknown) => Promise<AXRowCommandItem[]>;
167
+ protected getCommandRowItems: () => AXRowCommandItem[];
168
+ protected handleRowCommandClick(e: AXRowCommandItemClickEvent): Promise<void>;
169
+ protected handleSelectedRowsChange(rows: unknown[]): Promise<void>;
170
+ /**
171
+ * After refreshing a row's children (e.g. when a new child was created), update the parent row's
172
+ * hasChild so the expand icon is shown. The list query sets hasChild from childrenCount only on
173
+ * initial load; refreshItemChildren does not re-fetch the parent, so we patch it here.
174
+ */
175
+ private updateParentHasChildAfterRefresh;
176
+ private findItemById;
177
+ protected makeResponsive<t>(value: t): t | string;
178
+ protected toggleSideBar(sideBar?: 'column' | 'filter' | 'sort'): void;
179
+ protected toggleSearchBar(): void;
180
+ protected handleResetClick(sideBar: 'filter' | 'sort' | 'column'): void;
181
+ protected handleApplyClick(sideBar: 'filter' | 'sort' | 'column'): void;
182
+ ngOnDestroy(): void;
183
+ toggleCategoryDrawer(): void;
184
+ getPageTitle(): string;
185
+ getPageDescription(): Promise<string>;
186
+ getPageBreadcrumbs(): AXPBreadcrumbItem[];
187
+ getPrimaryMenuItems(): Promise<AXPActionMenuItem[]>;
188
+ getSecondaryMenuItems(): Promise<AXPActionMenuItem[]>;
189
+ execute(command: AXPExecuteCommand): Promise<void>;
190
+ protected handleUnselectAll(): void;
191
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPEntityMasterListViewComponent, never>;
192
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPEntityMasterListViewComponent, "axp-entity-master-list", never, {}, {}, never, never, true, never>;
193
+ }
194
+
95
195
  declare class AXPRootLayoutFooterComponent {
96
196
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXPRootLayoutFooterComponent, never>;
97
197
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXPRootLayoutFooterComponent, "axp-dashboard-admin-footer", never, {}, {}, never, never, true, never>;
@@ -470,4 +570,4 @@ declare class AXPDefaultThemeModule {
470
570
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXPDefaultThemeModule>;
471
571
  }
472
572
 
473
- export { AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPRootHorizontalLayoutComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPRootVerticalLayoutComponent };
573
+ export { AXPDefaultThemeModule, AXPEntityDetailListViewComponent, AXPEntityMasterListViewComponent, AXPRootHorizontalLayoutComponent, AXPRootLayoutComponent, AXPRootLayoutFooterComponent, AXPRootLayoutHeaderComponent, AXPRootLayoutMenuComponent, AXPRootVerticalLayoutComponent };
@@ -4,7 +4,6 @@ import * as i0 from '@angular/core';
4
4
  import { Type, ModuleWithProviders, Injector, InjectionToken } from '@angular/core';
5
5
  import { AXPValidationRules, AXPEntityOp, AXPCategoryEntity, AXPExpressionEvaluatorScope } from '@acorex/platform/core';
6
6
  import { AXPWidgetTypesMap } from '@acorex/platform/layout/widget-core';
7
- import { AXPCommand, AXPExecuteCommandResultPromise } from '@acorex/platform/runtime';
8
7
 
9
8
  declare class AXPWorkflowError extends Error {
10
9
  inner: Error | null;
@@ -626,6 +625,10 @@ interface AXPWorkflowState {
626
625
  * Finished at timestamp (ISO date-time, nullable).
627
626
  */
628
627
  finishedAt?: string | null;
628
+ /**
629
+ * Total number of activities/steps in the workflow (for progress display).
630
+ */
631
+ totalSteps?: number;
629
632
  }
630
633
  /**
631
634
  * Workflow instance (stored in database).
@@ -797,25 +800,6 @@ interface AXPActivityDefinition {
797
800
  */
798
801
  isContainer?: boolean;
799
802
  }
800
- /**
801
- * Activity - Command with specific TResult structure.
802
- * Extends AXPCommand with a fixed TResult that includes output and outcomes.
803
- * No additional properties beyond AXPCommand - pure command interface.
804
- */
805
- interface AXPActivity<TInput = any, TOutput = any> extends AXPCommand<TInput, {
806
- output: TOutput;
807
- outcomes: Record<string, any>;
808
- }> {
809
- /**
810
- * Execute the activity as a command.
811
- * @param input - Activity input data
812
- * @returns Promise with output and outcomes
813
- */
814
- execute(input: TInput): AXPExecuteCommandResultPromise<{
815
- output: TOutput;
816
- outcomes: Record<string, any>;
817
- }>;
818
- }
819
803
 
820
804
  type AXPActivityProviderToken = AXPActivityProvider | Promise<AXPActivityProvider>;
821
805
  declare const AXP_ACTIVITY_PROVIDER: InjectionToken<AXPActivityProviderToken[]>;
@@ -915,6 +899,11 @@ declare class AXPActivityDefinitionService {
915
899
  * @returns Activity definition or undefined if not found
916
900
  */
917
901
  getActivityByName(name: string): Promise<AXPActivityDefinition | undefined>;
902
+ /**
903
+ * Get all activity definitions (flat list) by loading root categories and their activities.
904
+ * Used by activity selector UIs (e.g. automation command configurator).
905
+ */
906
+ getAllActivities(): Promise<AXPActivityDefinition[]>;
918
907
  /**
919
908
  * Get category ID containing a specific activity definition
920
909
  *
@@ -1080,7 +1069,7 @@ interface AXPResumeWorkflowRequest {
1080
1069
  /**
1081
1070
  * User action outcome (e.g., 'Confirmed', 'Cancelled').
1082
1071
  */
1083
- outcome: string;
1072
+ outcome?: string;
1084
1073
  /**
1085
1074
  * Optional user input data.
1086
1075
  */
@@ -1170,7 +1159,7 @@ interface AXPFrontActivityCompleteRequest {
1170
1159
  instanceId: string;
1171
1160
  activityNode: string;
1172
1161
  output: Record<string, any>;
1173
- outcome: string;
1162
+ outcome?: string;
1174
1163
  }
1175
1164
  interface AXPFrontActivityCompleteResponse {
1176
1165
  /**
@@ -1353,19 +1342,17 @@ declare class AXPWorkflowManager {
1353
1342
  */
1354
1343
  private readonly CACHE_TTL;
1355
1344
  /**
1356
- * Execute frontend activities interactively until reaching human-task or completion.
1345
+ * Execute frontend activities interactively until reaching workflow-activity:human-task or completion.
1357
1346
  *
1358
- * This method handles the interactive flow between frontend and backend:
1359
- * 1. Executes frontend activity (ui-activity)
1360
- * 2. Sends result to backend via frontActivtyComplete
1361
- * 3. If backend returns nextTask (frontend activity), repeats the process
1362
- * 4. Continues until workflow completes or reaches human-task
1347
+ * Interactive = show form/popup immediately (user sees and acts). Only workflow-activity:human-task
1348
+ * is not interactive (goes to task board). Other frontend activities (show-layout-popup, show-toast, etc.)
1349
+ * even with taskType human-task in definition are executed here.
1363
1350
  *
1364
1351
  * @param instanceId - Workflow instance ID
1365
1352
  * @param task - Current task to execute
1366
1353
  * @param state - Current workflow state
1367
1354
  * @param lastActivityOutput - Last activity output (for expression evaluation)
1368
- * @returns Final result with nextTask (if human-task) or completion status
1355
+ * @returns Final result with nextTask (if workflow-activity:human-task) or completion status
1369
1356
  */
1370
1357
  private executeInteractiveFlow;
1371
1358
  /**
@@ -1581,6 +1568,22 @@ interface WorkflowExpressionContext {
1581
1568
  * ```
1582
1569
  */
1583
1570
  declare class WorkflowExpressionScopeService {
1571
+ /**
1572
+ * Collect dot-notation key-value pairs from nested objects so that e.g.
1573
+ * { metadata: { "metadata.questionnaire.id": "x" } } becomes { "metadata.questionnaire.id": "x" } at root.
1574
+ * Top-level non-dot keys are kept as-is.
1575
+ */
1576
+ private flattenDotKeysFromTree;
1577
+ /**
1578
+ * Expand flat keys with dots into nested objects.
1579
+ * e.g. { "metadata.questionnaire.id": "x" } -> { metadata: { questionnaire: { id: "x" } } }.
1580
+ */
1581
+ private expandDotKeys;
1582
+ /**
1583
+ * Normalize workflow input so that flat dot-notation keys (e.g. from form schema
1584
+ * "metadata.questionnaire.id") become nested for expression access (inputs.metadata.questionnaire.id).
1585
+ */
1586
+ private normalizeInputs;
1584
1587
  /**
1585
1588
  * Build expression evaluation scope for workflow activities.
1586
1589
  *
@@ -1800,4 +1803,4 @@ declare class AXPWorkflowDefinitionService {
1800
1803
  }
1801
1804
 
1802
1805
  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_ENGINE, AXP_WORKFLOW_PROVIDER, ActivityExecutor, WorkflowExpressionScopeService, createWorkFlowEvent, ofType };
1803
- export type { AXPActivity, AXPActivityCategory, AXPActivityCategoryProvider, AXPActivityCategoryProviderToken, AXPActivityDefinition, AXPActivityExecutionContextState, AXPActivityIncident, AXPActivityProvider, AXPActivityProviderToken, AXPActivityStatus, AXPActivityVariable, AXPBookmark, AXPCompletionCallbackState, AXPConnection, AXPElsaWorkflowExtensions, AXPExceptionState, AXPFrontActivityCompleteRequest, AXPFrontActivityCompleteResponse, AXPGetWorkflowStateRequest, AXPResumeWorkflowRequest, AXPResumeWorkflowResponse, AXPStartWorkflowRequest, AXPStartWorkflowResponse, AXPTaskType, AXPVariableDefinition, AXPWorkflow, AXPWorkflowActionInput, AXPWorkflowActivityInstance, AXPWorkflowBinding, AXPWorkflowCategory, AXPWorkflowCategoryProvider, AXPWorkflowCategoryProviderToken, AXPWorkflowCondition, AXPWorkflowConditionType, AXPWorkflowDefinition, AXPWorkflowDescriptorBase, AXPWorkflowDescriptorSchemaBase, AXPWorkflowEngine, AXPWorkflowEvent, AXPWorkflowExtensions, AXPWorkflowFaultState, AXPWorkflowGraph, AXPWorkflowInputDescriptor, AXPWorkflowInstance, AXPWorkflowInstanceState, AXPWorkflowModuleConfigs, AXPWorkflowNextStep, AXPWorkflowOutputDescriptor, AXPWorkflowProvider, AXPWorkflowProviderToken, AXPWorkflowState, AXPWorkflowStatus, AXPWorkflowStep, AXPWorkflowSubStatus, AXPWorkflowTask, ActivityExecutionResult, WorkflowCompleteResult, WorkflowExpressionContext, WorkflowResumeResult, WorkflowStartResult };
1806
+ export type { AXPActivityCategory, AXPActivityCategoryProvider, AXPActivityCategoryProviderToken, AXPActivityDefinition, AXPActivityExecutionContextState, AXPActivityIncident, AXPActivityProvider, AXPActivityProviderToken, AXPActivityStatus, AXPActivityVariable, AXPBookmark, AXPCompletionCallbackState, AXPConnection, AXPElsaWorkflowExtensions, AXPExceptionState, AXPFrontActivityCompleteRequest, AXPFrontActivityCompleteResponse, AXPGetWorkflowStateRequest, AXPResumeWorkflowRequest, AXPResumeWorkflowResponse, AXPStartWorkflowRequest, AXPStartWorkflowResponse, AXPTaskType, AXPVariableDefinition, AXPWorkflow, AXPWorkflowActionInput, AXPWorkflowActivityInstance, AXPWorkflowBinding, AXPWorkflowCategory, AXPWorkflowCategoryProvider, AXPWorkflowCategoryProviderToken, AXPWorkflowCondition, AXPWorkflowConditionType, AXPWorkflowDefinition, AXPWorkflowDescriptorBase, AXPWorkflowDescriptorSchemaBase, AXPWorkflowEngine, AXPWorkflowEvent, AXPWorkflowExtensions, AXPWorkflowFaultState, AXPWorkflowGraph, AXPWorkflowInputDescriptor, AXPWorkflowInstance, AXPWorkflowInstanceState, AXPWorkflowModuleConfigs, AXPWorkflowNextStep, AXPWorkflowOutputDescriptor, AXPWorkflowProvider, AXPWorkflowProviderToken, AXPWorkflowState, AXPWorkflowStatus, AXPWorkflowStep, AXPWorkflowSubStatus, AXPWorkflowTask, ActivityExecutionResult, WorkflowCompleteResult, WorkflowExpressionContext, WorkflowResumeResult, WorkflowStartResult };