@acorex/connectivity 21.0.0-next.39 → 21.0.0-next.41

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 (19) hide show
  1. package/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-Bso6KgSC.mjs → acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs} +10129 -4533
  2. package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs.map +1 -0
  3. package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-Cbm3SNXn.mjs +212 -0
  4. package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-Cbm3SNXn.mjs.map +1 -0
  5. package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-BYNcjNoo.mjs → acorex-connectivity-mock-chat-generate-image.command-OImAZbUq.mjs} +5 -11
  6. package/fesm2022/acorex-connectivity-mock-chat-generate-image.command-OImAZbUq.mjs.map +1 -0
  7. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-82f3G8lC.mjs → acorex-connectivity-mock-chat-synthesize-speech.command-Dieqfce2.mjs} +2 -2
  8. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-82f3G8lC.mjs.map → acorex-connectivity-mock-chat-synthesize-speech.command-Dieqfce2.mjs.map} +1 -1
  9. package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-D6gp3I1V.mjs → acorex-connectivity-mock-chat-transcribe-speech.command-BvZwDms4.mjs} +2 -2
  10. package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-D6gp3I1V.mjs.map → acorex-connectivity-mock-chat-transcribe-speech.command-BvZwDms4.mjs.map} +1 -1
  11. package/fesm2022/acorex-connectivity-mock-user-roles-for-list-column.query-DZlsdoZn.mjs +31 -0
  12. package/fesm2022/acorex-connectivity-mock-user-roles-for-list-column.query-DZlsdoZn.mjs.map +1 -0
  13. package/fesm2022/acorex-connectivity-mock.mjs +1 -1
  14. package/package.json +2 -2
  15. package/types/acorex-connectivity-mock.d.ts +204 -211
  16. package/fesm2022/acorex-connectivity-mock-acorex-connectivity-mock-Bso6KgSC.mjs.map +0 -1
  17. package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-DTPM1eU1.mjs +0 -79
  18. package/fesm2022/acorex-connectivity-mock-assign-to-manager.activity-DTPM1eU1.mjs.map +0 -1
  19. package/fesm2022/acorex-connectivity-mock-chat-generate-image.command-BYNcjNoo.mjs.map +0 -1
@@ -0,0 +1,212 @@
1
+ import * as i0 from '@angular/core';
2
+ import { inject, Injectable } from '@angular/core';
3
+ import { RootConfig } from '@acorex/modules/human-capital-management';
4
+ import { RootConfig as RootConfig$2 } from '@acorex/modules/organization-management';
5
+ import { RootConfig as RootConfig$1 } from '@acorex/modules/person-core';
6
+ import { AXPSessionService } from '@acorex/platform/auth';
7
+ import { AXPEntityStorageService } from '@acorex/platform/layout/entity';
8
+ import { c as axcSyncSingleEmployeeDenormalizedOrgFields } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
9
+
10
+ const LEAVE_REQUEST_ENTITY = RootConfig.entities.leaveRequest.source;
11
+ const EMPLOYEE_ENTITY = RootConfig.entities.employee.source;
12
+ const PERSON_ENTITY = `${RootConfig$1.module.name}.${RootConfig$1.entities.person.name}`;
13
+ //#region ---- Helpers ----
14
+ /**
15
+ * Resolves a persisted FK or lookup snapshot to a scalar id (avoids `String([object Object])` from expanded rows).
16
+ */
17
+ function axcScalarEntityId(value) {
18
+ if (value == null || value === '') {
19
+ return null;
20
+ }
21
+ if (typeof value === 'string' || typeof value === 'number') {
22
+ const s = String(value).trim();
23
+ return s.length > 0 ? s : null;
24
+ }
25
+ if (typeof value === 'object' && value !== null && 'id' in value) {
26
+ const id = value.id;
27
+ if (id == null || id === '') {
28
+ return null;
29
+ }
30
+ const s = String(id).trim();
31
+ return s.length > 0 ? s : null;
32
+ }
33
+ return null;
34
+ }
35
+ /** Non-empty trimmed string or undefined (for optional workflow command inputs). */
36
+ function axcOptionalTrimmedString(raw) {
37
+ if (raw == null || raw === '') {
38
+ return undefined;
39
+ }
40
+ const s = typeof raw === 'string' ? raw.trim() : String(raw).trim();
41
+ return s.length > 0 ? s : undefined;
42
+ }
43
+ /**
44
+ * Assign To Manager Activity (Backend - Mock)
45
+ *
46
+ * Resolves the manager from `employeeId`, or from a leave request, or from the current user's employee when neither is set,
47
+ * recomputing `managerId` from position assignments / org chart in storage when the denormalized field is stale.
48
+ * Outputs the manager's **login user id** (from Employee or Person) for cartable `candidateUserIds` / human-task assignment.
49
+ *
50
+ * Execution Mode: backend
51
+ * Activity Type: workflow-activity:assign-to-manager
52
+ */
53
+ class AssignToManagerActivity {
54
+ constructor() {
55
+ this.entityStorage = inject(AXPEntityStorageService);
56
+ this.sessionService = inject(AXPSessionService);
57
+ }
58
+ /**
59
+ * Resolves login user id for an employee row (storage may omit `userId` while Person still links the account).
60
+ */
61
+ async resolveLoginUserIdForEmployeeRow(managerEmp) {
62
+ const direct = managerEmp?.userId != null && String(managerEmp.userId).trim() !== '' ? String(managerEmp.userId).trim() : null;
63
+ if (direct) {
64
+ return direct;
65
+ }
66
+ const personId = managerEmp?.personId != null && String(managerEmp.personId).trim() !== ''
67
+ ? String(managerEmp.personId).trim()
68
+ : null;
69
+ if (!personId) {
70
+ return null;
71
+ }
72
+ try {
73
+ const person = (await this.entityStorage.getOne(PERSON_ENTITY, personId));
74
+ const uid = person?.userId != null && String(person.userId).trim() !== '' ? String(person.userId).trim() : null;
75
+ return uid;
76
+ }
77
+ catch {
78
+ return null;
79
+ }
80
+ }
81
+ /**
82
+ * Persists org-derived manager + primary position for one employee, then returns the manager's user id when set.
83
+ */
84
+ async resolveManagerUserId(employeeId) {
85
+ await axcSyncSingleEmployeeDenormalizedOrgFields(this.entityStorage, RootConfig$2, RootConfig, String(employeeId), true);
86
+ const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, String(employeeId)));
87
+ const managerEmployeeId = emp?.managerId != null ? String(emp.managerId).trim() : '';
88
+ if (!managerEmployeeId) {
89
+ return null;
90
+ }
91
+ const managerEmp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, managerEmployeeId));
92
+ return this.resolveLoginUserIdForEmployeeRow(managerEmp);
93
+ }
94
+ async findEmployeeIdByUserId(userId) {
95
+ try {
96
+ const result = await this.entityStorage.query(EMPLOYEE_ENTITY, {
97
+ skip: 0,
98
+ take: 1,
99
+ filter: {
100
+ field: 'userId',
101
+ operator: { type: 'equal' },
102
+ value: userId,
103
+ },
104
+ });
105
+ const row = result.items?.[0];
106
+ return row?.id != null ? String(row.id) : null;
107
+ }
108
+ catch {
109
+ return null;
110
+ }
111
+ }
112
+ async execute(input) {
113
+ const leaveRequestId = axcOptionalTrimmedString(input.leaveRequestId);
114
+ let managerId = null;
115
+ let employee = { displayName: '' };
116
+ let subjectEmployeeId = null;
117
+ const employeeIdFromInput = axcScalarEntityId(input.employeeId);
118
+ if (employeeIdFromInput) {
119
+ subjectEmployeeId = employeeIdFromInput;
120
+ try {
121
+ const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, subjectEmployeeId));
122
+ if (emp) {
123
+ employee = {
124
+ displayName: emp.person?.displayName ?? emp.displayName ?? '',
125
+ ...emp,
126
+ };
127
+ }
128
+ managerId = await this.resolveManagerUserId(subjectEmployeeId);
129
+ }
130
+ catch {
131
+ // keep defaults
132
+ }
133
+ }
134
+ else if (leaveRequestId) {
135
+ try {
136
+ const leaveRequest = (await this.entityStorage.getOne(LEAVE_REQUEST_ENTITY, leaveRequestId));
137
+ subjectEmployeeId =
138
+ axcScalarEntityId(leaveRequest?.employeeId) ??
139
+ axcScalarEntityId(leaveRequest.employee) ??
140
+ null;
141
+ if (subjectEmployeeId) {
142
+ const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, subjectEmployeeId));
143
+ if (emp) {
144
+ employee = {
145
+ displayName: emp.person?.displayName ?? emp.displayName ?? '',
146
+ ...emp,
147
+ };
148
+ }
149
+ managerId = await this.resolveManagerUserId(subjectEmployeeId);
150
+ }
151
+ if (!employee.displayName && leaveRequest) {
152
+ employee = {
153
+ displayName: leaveRequest.employeeName ??
154
+ leaveRequest.employee
155
+ ?.person?.displayName ??
156
+ leaveRequest.employee?.displayName ??
157
+ '',
158
+ ...(leaveRequest.employee ?? {}),
159
+ };
160
+ }
161
+ }
162
+ catch {
163
+ // keep defaults
164
+ }
165
+ }
166
+ const sessionUserId = this.sessionService.user?.id;
167
+ if (managerId == null && sessionUserId && !subjectEmployeeId) {
168
+ const initiatorEmployeeId = await this.findEmployeeIdByUserId(String(sessionUserId));
169
+ if (initiatorEmployeeId) {
170
+ try {
171
+ const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, initiatorEmployeeId));
172
+ if (emp) {
173
+ employee = {
174
+ displayName: emp.person?.displayName ?? emp.displayName ?? '',
175
+ ...emp,
176
+ };
177
+ }
178
+ }
179
+ catch {
180
+ // ignore
181
+ }
182
+ managerId = await this.resolveManagerUserId(initiatorEmployeeId);
183
+ }
184
+ }
185
+ const fallbackUserId = axcScalarEntityId(input.fallbackUserId);
186
+ if (managerId == null && fallbackUserId) {
187
+ managerId = fallbackUserId;
188
+ }
189
+ return {
190
+ success: true,
191
+ data: {
192
+ managerId,
193
+ employee,
194
+ leaveRequestId: leaveRequestId ?? undefined,
195
+ },
196
+ metadata: {
197
+ outcome: 'done',
198
+ },
199
+ };
200
+ }
201
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AssignToManagerActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
202
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AssignToManagerActivity, providedIn: 'root' }); }
203
+ }
204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: AssignToManagerActivity, decorators: [{
205
+ type: Injectable,
206
+ args: [{
207
+ providedIn: 'root',
208
+ }]
209
+ }] });
210
+
211
+ export { AssignToManagerActivity };
212
+ //# sourceMappingURL=acorex-connectivity-mock-assign-to-manager.activity-Cbm3SNXn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-connectivity-mock-assign-to-manager.activity-Cbm3SNXn.mjs","sources":["../../../../libs/connectivity/mock/src/lib/workflow-management/activities/assign-to-manager.activity.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { RootConfig as HcmRootConfig } from '@acorex/modules/human-capital-management';\nimport { RootConfig as OrgRootConfig } from '@acorex/modules/organization-management';\nimport { RootConfig as PersonRootConfig } from '@acorex/modules/person-core';\nimport { AXPSessionService } from '@acorex/platform/auth';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPEntityStorageService } from '@acorex/platform/layout/entity';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { axcSyncSingleEmployeeDenormalizedOrgFields } from '../../organization-management/org-chart/employee-manager-resolution';\n\nconst LEAVE_REQUEST_ENTITY = HcmRootConfig.entities.leaveRequest.source;\nconst EMPLOYEE_ENTITY = HcmRootConfig.entities.employee.source;\nconst PERSON_ENTITY = `${PersonRootConfig.module.name}.${PersonRootConfig.entities.person.name}`;\n\n//#region ---- Helpers ----\n\n/**\n * Resolves a persisted FK or lookup snapshot to a scalar id (avoids `String([object Object])` from expanded rows).\n */\nfunction axcScalarEntityId(value: unknown): string | null {\n if (value == null || value === '') {\n return null;\n }\n if (typeof value === 'string' || typeof value === 'number') {\n const s = String(value).trim();\n return s.length > 0 ? s : null;\n }\n if (typeof value === 'object' && value !== null && 'id' in value) {\n const id = (value as { id: unknown }).id;\n if (id == null || id === '') {\n return null;\n }\n const s = String(id).trim();\n return s.length > 0 ? s : null;\n }\n return null;\n}\n\n/** Non-empty trimmed string or undefined (for optional workflow command inputs). */\nfunction axcOptionalTrimmedString(raw: unknown): string | undefined {\n if (raw == null || raw === '') {\n return undefined;\n }\n const s = typeof raw === 'string' ? raw.trim() : String(raw).trim();\n return s.length > 0 ? s : undefined;\n}\n\n//#endregion\n\nexport interface AssignToManagerInput {\n /** When set, resolves the subject employee from HumanCapitalManagement.LeaveRequest. */\n leaveRequestId?: string;\n /** When set (scalar or `{ id }`), resolves manager for this employee directly (takes precedence over `leaveRequestId`). */\n employeeId?: unknown;\n /** When org manager cannot be resolved, this platform user id is returned as `managerId` (e.g. initiator for review fallback). */\n fallbackUserId?: unknown;\n}\n\nexport interface AssignToManagerOutput {\n managerId: string | null;\n employee: { displayName: string; [key: string]: unknown };\n leaveRequestId?: string;\n}\n\n/**\n * Assign To Manager Activity (Backend - Mock)\n *\n * Resolves the manager from `employeeId`, or from a leave request, or from the current user's employee when neither is set,\n * recomputing `managerId` from position assignments / org chart in storage when the denormalized field is stale.\n * Outputs the manager's **login user id** (from Employee or Person) for cartable `candidateUserIds` / human-task assignment.\n *\n * Execution Mode: backend\n * Activity Type: workflow-activity:assign-to-manager\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AssignToManagerActivity implements AXPCommand<AssignToManagerInput, AssignToManagerOutput> {\n private readonly entityStorage = inject(AXPEntityStorageService);\n private readonly sessionService = inject(AXPSessionService);\n\n /**\n * Resolves login user id for an employee row (storage may omit `userId` while Person still links the account).\n */\n private async resolveLoginUserIdForEmployeeRow(\n managerEmp: { userId?: string | null; personId?: string | null } | null,\n ): Promise<string | null> {\n const direct =\n managerEmp?.userId != null && String(managerEmp.userId).trim() !== '' ? String(managerEmp.userId).trim() : null;\n if (direct) {\n return direct;\n }\n const personId =\n managerEmp?.personId != null && String(managerEmp.personId).trim() !== ''\n ? String(managerEmp.personId).trim()\n : null;\n if (!personId) {\n return null;\n }\n try {\n const person = (await this.entityStorage.getOne(PERSON_ENTITY, personId)) as { userId?: string | null } | null;\n const uid =\n person?.userId != null && String(person.userId).trim() !== '' ? String(person.userId).trim() : null;\n return uid;\n } catch {\n return null;\n }\n }\n\n /**\n * Persists org-derived manager + primary position for one employee, then returns the manager's user id when set.\n */\n private async resolveManagerUserId(employeeId: string): Promise<string | null> {\n await axcSyncSingleEmployeeDenormalizedOrgFields(\n this.entityStorage,\n OrgRootConfig,\n HcmRootConfig,\n String(employeeId),\n true,\n );\n const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, String(employeeId))) as {\n managerId?: string | null;\n } | null;\n const managerEmployeeId = emp?.managerId != null ? String(emp.managerId).trim() : '';\n if (!managerEmployeeId) {\n return null;\n }\n const managerEmp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, managerEmployeeId)) as {\n userId?: string | null;\n personId?: string | null;\n } | null;\n return this.resolveLoginUserIdForEmployeeRow(managerEmp);\n }\n\n private async findEmployeeIdByUserId(userId: string): Promise<string | null> {\n try {\n const result = await this.entityStorage.query(EMPLOYEE_ENTITY, {\n skip: 0,\n take: 1,\n filter: {\n field: 'userId',\n operator: { type: 'equal' },\n value: userId,\n },\n });\n const row = result.items?.[0] as { id?: string } | undefined;\n return row?.id != null ? String(row.id) : null;\n } catch {\n return null;\n }\n }\n\n async execute(input: AssignToManagerInput): Promise<AXPExecuteCommandResult<AssignToManagerOutput>> {\n const leaveRequestId = axcOptionalTrimmedString(input.leaveRequestId);\n\n let managerId: string | null = null;\n let employee: AssignToManagerOutput['employee'] = { displayName: '' };\n\n let subjectEmployeeId: string | null = null;\n\n const employeeIdFromInput = axcScalarEntityId(input.employeeId);\n\n if (employeeIdFromInput) {\n subjectEmployeeId = employeeIdFromInput;\n try {\n const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, subjectEmployeeId)) as {\n managerId?: string;\n userId?: string;\n displayName?: string;\n person?: { displayName?: string };\n } | null;\n if (emp) {\n employee = {\n displayName: emp.person?.displayName ?? emp.displayName ?? '',\n ...emp,\n };\n }\n managerId = await this.resolveManagerUserId(subjectEmployeeId);\n } catch {\n // keep defaults\n }\n } else if (leaveRequestId) {\n try {\n const leaveRequest = (await this.entityStorage.getOne(LEAVE_REQUEST_ENTITY, leaveRequestId)) as {\n employeeId?: string;\n employee?: unknown;\n employeeName?: string;\n } | null;\n\n subjectEmployeeId =\n axcScalarEntityId(leaveRequest?.employeeId) ??\n axcScalarEntityId((leaveRequest as { employee?: unknown }).employee) ??\n null;\n\n if (subjectEmployeeId) {\n const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, subjectEmployeeId)) as {\n managerId?: string;\n userId?: string;\n displayName?: string;\n person?: { displayName?: string };\n } | null;\n if (emp) {\n employee = {\n displayName: emp.person?.displayName ?? emp.displayName ?? '',\n ...emp,\n };\n }\n managerId = await this.resolveManagerUserId(subjectEmployeeId);\n }\n\n if (!employee.displayName && leaveRequest) {\n employee = {\n displayName:\n (leaveRequest as { employeeName?: string }).employeeName ??\n (leaveRequest as { employee?: { person?: { displayName?: string }; displayName?: string } }).employee\n ?.person?.displayName ??\n (leaveRequest as { employee?: { displayName?: string } }).employee?.displayName ??\n '',\n ...((leaveRequest as { employee?: object }).employee ?? {}),\n };\n }\n } catch {\n // keep defaults\n }\n }\n\n const sessionUserId = this.sessionService.user?.id;\n if (managerId == null && sessionUserId && !subjectEmployeeId) {\n const initiatorEmployeeId = await this.findEmployeeIdByUserId(String(sessionUserId));\n if (initiatorEmployeeId) {\n try {\n const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, initiatorEmployeeId)) as {\n displayName?: string;\n person?: { displayName?: string };\n } | null;\n if (emp) {\n employee = {\n displayName: emp.person?.displayName ?? emp.displayName ?? '',\n ...emp,\n };\n }\n } catch {\n // ignore\n }\n managerId = await this.resolveManagerUserId(initiatorEmployeeId);\n }\n }\n\n const fallbackUserId = axcScalarEntityId(input.fallbackUserId);\n if (managerId == null && fallbackUserId) {\n managerId = fallbackUserId;\n }\n\n return {\n success: true,\n data: {\n managerId,\n employee,\n leaveRequestId: leaveRequestId ?? undefined,\n },\n metadata: {\n outcome: 'done',\n },\n };\n }\n}\n"],"names":["HcmRootConfig","PersonRootConfig","OrgRootConfig"],"mappings":"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"}
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
3
3
  import { inject, Injectable } from '@angular/core';
4
4
  import { AXPFileStorageService } from '@acorex/platform/common';
5
5
  import { AXPEntityService } from '@acorex/platform/layout/entity';
6
- import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel } from './acorex-connectivity-mock-acorex-connectivity-mock-Bso6KgSC.mjs';
6
+ import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, a as AXMAiModelStableIds } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
7
7
 
8
8
  //#region ---- Imports ----
9
9
  function parseGenerateImageInput(args) {
@@ -60,15 +60,9 @@ class AiManagementChatGenerateImageCommand {
60
60
  message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },
61
61
  };
62
62
  }
63
- const modelEntityId = parsed.model?.trim() || resolveDelegatedAssistOptionModel(assist, ctx.agentId) || '';
64
- if (!modelEntityId) {
65
- return {
66
- success: false,
67
- message: {
68
- text: 'No image model: pass "model" (catalog id) or set options.model on the image-generation delegated specialist row for this assist.',
69
- },
70
- };
71
- }
63
+ const modelEntityId = parsed.model?.trim() ||
64
+ resolveDelegatedAssistOptionModel(assist, ctx.agentId) ||
65
+ AXMAiModelStableIds.openaiGptImage1;
72
66
  let composedPrompt = parsed.prompt;
73
67
  if (parsed.style?.trim()) {
74
68
  composedPrompt = `${composedPrompt}\nStyle: ${parsed.style.trim()}`;
@@ -111,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
111
105
  }] });
112
106
 
113
107
  export { AiManagementChatGenerateImageCommand };
114
- //# sourceMappingURL=acorex-connectivity-mock-chat-generate-image.command-BYNcjNoo.mjs.map
108
+ //# sourceMappingURL=acorex-connectivity-mock-chat-generate-image.command-OImAZbUq.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-connectivity-mock-chat-generate-image.command-OImAZbUq.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/chat-generate-image.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport {\n AI_CHAT_GENERATED_IMAGE_REF_TYPE,\n AI_GENERATED_IMAGE_MAX_REMOTE_URL_IN_TOOL,\n AXPAiChatToolRunContextService,\n blobOrFileFromImageResult,\n persistAiGeneratedImage,\n RootConfig,\n} from '@acorex/modules/ai-management';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\n\nimport type { AXMAiAssistRow } from '../ai-agent-engine.types';\nimport { resolveDelegatedAssistOptionModel } from '../ai-delegated-agent-parameters.util';\nimport { AXCAiChatRouterService } from '../chat/ai-chat-router.service';\nimport { AXMAiModelStableIds } from '../model/model.mock';\n\n//#endregion\n\n//#region ---- Command: AiManagement:ChatGenerateImage ----\n\nexport interface AiManagementChatGenerateImageInput {\n /**\n * Catalog `AiModel` row id for an image-purpose model. When omitted, uses\n * `delegatedAgents[].options.model` for the active delegated specialist (`agentId` in run context),\n * then falls back to the mock catalog default (OpenAI gpt-image-1).\n */\n model?: string;\n prompt?: string;\n size?: string;\n style?: string;\n}\n\nfunction parseGenerateImageInput(args: unknown):\n | { ok: true; model?: string; prompt: string; size?: string; style?: string }\n | { ok: false; error: string } {\n const obj =\n args != null && typeof args === 'object' && !Array.isArray(args)\n ? (args as Record<string, unknown>)\n : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const prompt = typeof obj['prompt'] === 'string' ? obj['prompt'].trim() : '';\n if (!prompt) {\n return { ok: false, error: 'Invalid arguments: \"prompt\" is required and must be non-empty.' };\n }\n const model = typeof obj['model'] === 'string' ? obj['model'].trim() : undefined;\n const size = typeof obj['size'] === 'string' ? obj['size'].trim() : undefined;\n const style = typeof obj['style'] === 'string' ? obj['style'].trim() : undefined;\n return {\n ok: true,\n prompt,\n ...(model ? { model } : {}),\n ...(size ? { size } : {}),\n ...(style ? { style } : {}),\n };\n}\n\n@Injectable()\nexport class AiManagementChatGenerateImageCommand\n implements AXPCommand<AiManagementChatGenerateImageInput, { fileId?: string; prompt: string; imageUrl?: string }>\n{\n private readonly aiChatRouter = inject(AXCAiChatRouterService);\n private readonly runContext = inject(AXPAiChatToolRunContextService);\n private readonly fileStorage = inject(AXPFileStorageService);\n private readonly entityService = inject(AXPEntityService);\n\n private readonly assistData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assist.name)\n .data<string, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow>();\n\n async execute(\n input: AiManagementChatGenerateImageInput,\n ): Promise<AXPExecuteCommandResult<{ fileId?: string; prompt: string; imageUrl?: string }>> {\n const ctx = this.runContext.getContext();\n if (!ctx?.assistId?.trim()) {\n return {\n success: false,\n message: {\n text: 'Image generation requires an active AI chat run context (assist id).',\n },\n };\n }\n\n const parsed = parseGenerateImageInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n\n try {\n const assist = await this.assistData.byKey(ctx.assistId.trim());\n if (!assist) {\n return {\n success: false,\n message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },\n };\n }\n\n const modelEntityId =\n parsed.model?.trim() ||\n resolveDelegatedAssistOptionModel(assist, ctx.agentId) ||\n AXMAiModelStableIds.openaiGptImage1;\n\n let composedPrompt = parsed.prompt;\n if (parsed.style?.trim()) {\n composedPrompt = `${composedPrompt}\\nStyle: ${parsed.style.trim()}`;\n }\n\n const { imageUrl } = await this.aiChatRouter.generateImage({\n modelEntityId,\n prompt: composedPrompt,\n size: parsed.size?.trim() || undefined,\n });\n\n try {\n const file = await blobOrFileFromImageResult(imageUrl);\n const { fileId } = await persistAiGeneratedImage(this.fileStorage, file, {\n refId: assist.id,\n refType: AI_CHAT_GENERATED_IMAGE_REF_TYPE,\n });\n return { success: true, data: { fileId, prompt: parsed.prompt } };\n } catch (persistErr) {\n const u = imageUrl.trim();\n if (u.startsWith('https://') && u.length <= AI_GENERATED_IMAGE_MAX_REMOTE_URL_IN_TOOL) {\n return {\n success: true,\n data: { prompt: parsed.prompt, imageUrl: u },\n };\n }\n const pmsg = persistErr instanceof Error ? persistErr.message : String(persistErr);\n throw new Error(`Could not store generated image for chat replay. ${pmsg}`);\n }\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { success: false, message: { text: msg } };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
3
3
  import { inject, Injectable } from '@angular/core';
4
4
  import { AXPFileStorageService } from '@acorex/platform/common';
5
5
  import { AXPEntityService } from '@acorex/platform/layout/entity';
6
- import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, a as resolveDelegatedAssistOptionString } from './acorex-connectivity-mock-acorex-connectivity-mock-Bso6KgSC.mjs';
6
+ import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, b as resolveDelegatedAssistOptionString } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
7
7
 
8
8
  //#region ---- Imports ----
9
9
  function extForMime(mime) {
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
127
127
  }] });
128
128
 
129
129
  export { AiManagementChatSynthesizeSpeechCommand };
130
- //# sourceMappingURL=acorex-connectivity-mock-chat-synthesize-speech.command-82f3G8lC.mjs.map
130
+ //# sourceMappingURL=acorex-connectivity-mock-chat-synthesize-speech.command-Dieqfce2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-connectivity-mock-chat-synthesize-speech.command-82f3G8lC.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/chat-synthesize-speech.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport {\n AI_CHAT_GENERATED_SPEECH_REF_TYPE,\n AXPAiChatToolRunContextService,\n persistAiGeneratedSpeech,\n RootConfig,\n} from '@acorex/modules/ai-management';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\n\nimport type { AXMAiAssistRow } from '../ai-agent-engine.types';\nimport {\n resolveDelegatedAssistOptionModel,\n resolveDelegatedAssistOptionString,\n} from '../ai-delegated-agent-parameters.util';\nimport { AXCAiChatRouterService } from '../chat/ai-chat-router.service';\n\n//#endregion\n\n//#region ---- Command: AiManagement:ChatSynthesizeSpeech ----\n\nexport interface AiManagementChatSynthesizeSpeechInput {\n /** Catalog `AiModel` row id (purpose `tts`). When omitted, uses `delegatedAgents[].options.model` for the active delegated specialist. */\n model?: string;\n text?: string;\n voice?: string;\n responseFormat?: string;\n}\n\nfunction extForMime(mime: string): string {\n const m = mime.toLowerCase();\n if (m.includes('mpeg') || m.includes('mp3')) {\n return 'mp3';\n }\n if (m.includes('wav')) {\n return 'wav';\n }\n if (m.includes('opus')) {\n return 'opus';\n }\n if (m.includes('ogg')) {\n return 'ogg';\n }\n if (m.includes('aac')) {\n return 'aac';\n }\n if (m.includes('flac')) {\n return 'flac';\n }\n return 'bin';\n}\n\nfunction parseSynthesizeInput(args: unknown):\n | { ok: true; model?: string; text: string; voice?: string; responseFormat?: string }\n | { ok: false; error: string } {\n const obj =\n args != null && typeof args === 'object' && !Array.isArray(args)\n ? (args as Record<string, unknown>)\n : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const text = typeof obj['text'] === 'string' ? obj['text'].trim() : '';\n if (!text) {\n return { ok: false, error: 'Invalid arguments: \"text\" is required and must be non-empty.' };\n }\n const model = typeof obj['model'] === 'string' ? obj['model'].trim() : undefined;\n const voice = typeof obj['voice'] === 'string' ? obj['voice'].trim() : undefined;\n const responseFormat =\n typeof obj['responseFormat'] === 'string' ? obj['responseFormat'].trim() : undefined;\n return {\n ok: true,\n text,\n ...(model ? { model } : {}),\n ...(voice ? { voice } : {}),\n ...(responseFormat ? { responseFormat } : {}),\n };\n}\n\n@Injectable()\nexport class AiManagementChatSynthesizeSpeechCommand\n implements\n AXPCommand<\n AiManagementChatSynthesizeSpeechInput,\n { fileId?: string; text: string; mimeType?: string }\n >\n{\n private readonly aiChatRouter = inject(AXCAiChatRouterService);\n private readonly runContext = inject(AXPAiChatToolRunContextService);\n private readonly fileStorage = inject(AXPFileStorageService);\n private readonly entityService = inject(AXPEntityService);\n\n private readonly assistData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assist.name)\n .data<string, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow>();\n\n async execute(\n input: AiManagementChatSynthesizeSpeechInput,\n ): Promise<AXPExecuteCommandResult<{ fileId?: string; text: string; mimeType?: string }>> {\n const ctx = this.runContext.getContext();\n if (!ctx?.assistId?.trim()) {\n return {\n success: false,\n message: {\n text: 'Text-to-speech requires an active AI chat run context (assist id).',\n },\n };\n }\n\n const parsed = parseSynthesizeInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n\n try {\n const assist = await this.assistData.byKey(ctx.assistId.trim());\n if (!assist) {\n return {\n success: false,\n message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },\n };\n }\n\n const modelEntityId =\n parsed.model?.trim() || resolveDelegatedAssistOptionModel(assist, ctx.agentId) || '';\n if (!modelEntityId) {\n return {\n success: false,\n message: {\n text:\n 'No TTS model: pass \"model\" (catalog id) or set options.model on the text-to-speech delegated specialist row for this assist.',\n },\n };\n }\n\n const voiceFromAssist =\n resolveDelegatedAssistOptionString(assist, ctx.agentId, 'voice') || undefined;\n const voice = parsed.voice?.trim() || voiceFromAssist || 'alloy';\n\n const { audioBytes, mimeType } = await this.aiChatRouter.synthesizeSpeech({\n modelEntityId,\n text: parsed.text,\n voice,\n ...(parsed.responseFormat?.trim() ? { responseFormat: parsed.responseFormat.trim() } : {}),\n });\n\n const mt = mimeType?.trim() || 'application/octet-stream';\n const ext = extForMime(mt);\n const file = new File([audioBytes], `ai-tts.${ext}`, { type: mt });\n\n try {\n const { fileId } = await persistAiGeneratedSpeech(this.fileStorage, file, {\n refId: assist.id,\n refType: AI_CHAT_GENERATED_SPEECH_REF_TYPE,\n });\n return { success: true, data: { fileId, text: parsed.text, mimeType: mt } };\n } catch (persistErr) {\n const pmsg = persistErr instanceof Error ? persistErr.message : String(persistErr);\n throw new Error(`Could not store synthesized speech for chat replay. ${pmsg}`);\n }\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { success: false, message: { text: msg } };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-connectivity-mock-chat-synthesize-speech.command-Dieqfce2.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/chat-synthesize-speech.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport {\n AI_CHAT_GENERATED_SPEECH_REF_TYPE,\n AXPAiChatToolRunContextService,\n persistAiGeneratedSpeech,\n RootConfig,\n} from '@acorex/modules/ai-management';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\n\nimport type { AXMAiAssistRow } from '../ai-agent-engine.types';\nimport {\n resolveDelegatedAssistOptionModel,\n resolveDelegatedAssistOptionString,\n} from '../ai-delegated-agent-parameters.util';\nimport { AXCAiChatRouterService } from '../chat/ai-chat-router.service';\n\n//#endregion\n\n//#region ---- Command: AiManagement:ChatSynthesizeSpeech ----\n\nexport interface AiManagementChatSynthesizeSpeechInput {\n /** Catalog `AiModel` row id (purpose `tts`). When omitted, uses `delegatedAgents[].options.model` for the active delegated specialist. */\n model?: string;\n text?: string;\n voice?: string;\n responseFormat?: string;\n}\n\nfunction extForMime(mime: string): string {\n const m = mime.toLowerCase();\n if (m.includes('mpeg') || m.includes('mp3')) {\n return 'mp3';\n }\n if (m.includes('wav')) {\n return 'wav';\n }\n if (m.includes('opus')) {\n return 'opus';\n }\n if (m.includes('ogg')) {\n return 'ogg';\n }\n if (m.includes('aac')) {\n return 'aac';\n }\n if (m.includes('flac')) {\n return 'flac';\n }\n return 'bin';\n}\n\nfunction parseSynthesizeInput(args: unknown):\n | { ok: true; model?: string; text: string; voice?: string; responseFormat?: string }\n | { ok: false; error: string } {\n const obj =\n args != null && typeof args === 'object' && !Array.isArray(args)\n ? (args as Record<string, unknown>)\n : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const text = typeof obj['text'] === 'string' ? obj['text'].trim() : '';\n if (!text) {\n return { ok: false, error: 'Invalid arguments: \"text\" is required and must be non-empty.' };\n }\n const model = typeof obj['model'] === 'string' ? obj['model'].trim() : undefined;\n const voice = typeof obj['voice'] === 'string' ? obj['voice'].trim() : undefined;\n const responseFormat =\n typeof obj['responseFormat'] === 'string' ? obj['responseFormat'].trim() : undefined;\n return {\n ok: true,\n text,\n ...(model ? { model } : {}),\n ...(voice ? { voice } : {}),\n ...(responseFormat ? { responseFormat } : {}),\n };\n}\n\n@Injectable()\nexport class AiManagementChatSynthesizeSpeechCommand\n implements\n AXPCommand<\n AiManagementChatSynthesizeSpeechInput,\n { fileId?: string; text: string; mimeType?: string }\n >\n{\n private readonly aiChatRouter = inject(AXCAiChatRouterService);\n private readonly runContext = inject(AXPAiChatToolRunContextService);\n private readonly fileStorage = inject(AXPFileStorageService);\n private readonly entityService = inject(AXPEntityService);\n\n private readonly assistData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assist.name)\n .data<string, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow>();\n\n async execute(\n input: AiManagementChatSynthesizeSpeechInput,\n ): Promise<AXPExecuteCommandResult<{ fileId?: string; text: string; mimeType?: string }>> {\n const ctx = this.runContext.getContext();\n if (!ctx?.assistId?.trim()) {\n return {\n success: false,\n message: {\n text: 'Text-to-speech requires an active AI chat run context (assist id).',\n },\n };\n }\n\n const parsed = parseSynthesizeInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n\n try {\n const assist = await this.assistData.byKey(ctx.assistId.trim());\n if (!assist) {\n return {\n success: false,\n message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },\n };\n }\n\n const modelEntityId =\n parsed.model?.trim() || resolveDelegatedAssistOptionModel(assist, ctx.agentId) || '';\n if (!modelEntityId) {\n return {\n success: false,\n message: {\n text:\n 'No TTS model: pass \"model\" (catalog id) or set options.model on the text-to-speech delegated specialist row for this assist.',\n },\n };\n }\n\n const voiceFromAssist =\n resolveDelegatedAssistOptionString(assist, ctx.agentId, 'voice') || undefined;\n const voice = parsed.voice?.trim() || voiceFromAssist || 'alloy';\n\n const { audioBytes, mimeType } = await this.aiChatRouter.synthesizeSpeech({\n modelEntityId,\n text: parsed.text,\n voice,\n ...(parsed.responseFormat?.trim() ? { responseFormat: parsed.responseFormat.trim() } : {}),\n });\n\n const mt = mimeType?.trim() || 'application/octet-stream';\n const ext = extForMime(mt);\n const file = new File([audioBytes], `ai-tts.${ext}`, { type: mt });\n\n try {\n const { fileId } = await persistAiGeneratedSpeech(this.fileStorage, file, {\n refId: assist.id,\n refType: AI_CHAT_GENERATED_SPEECH_REF_TYPE,\n });\n return { success: true, data: { fileId, text: parsed.text, mimeType: mt } };\n } catch (persistErr) {\n const pmsg = persistErr instanceof Error ? persistErr.message : String(persistErr);\n throw new Error(`Could not store synthesized speech for chat replay. ${pmsg}`);\n }\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { success: false, message: { text: msg } };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ import * as i0 from '@angular/core';
3
3
  import { inject, Injectable } from '@angular/core';
4
4
  import { AXPFileStorageService } from '@acorex/platform/common';
5
5
  import { AXPEntityService } from '@acorex/platform/layout/entity';
6
- import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, a as resolveDelegatedAssistOptionString } from './acorex-connectivity-mock-acorex-connectivity-mock-Bso6KgSC.mjs';
6
+ import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, b as resolveDelegatedAssistOptionString } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
7
7
 
8
8
  //#region ---- Imports ----
9
9
  function parseTranscribeInput(args) {
@@ -107,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
107
107
  }] });
108
108
 
109
109
  export { AiManagementChatTranscribeSpeechCommand };
110
- //# sourceMappingURL=acorex-connectivity-mock-chat-transcribe-speech.command-D6gp3I1V.mjs.map
110
+ //# sourceMappingURL=acorex-connectivity-mock-chat-transcribe-speech.command-BvZwDms4.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-connectivity-mock-chat-transcribe-speech.command-D6gp3I1V.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/chat-transcribe-speech.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPAiChatToolRunContextService, RootConfig } from '@acorex/modules/ai-management';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\n\nimport type { AXMAiAssistRow } from '../ai-agent-engine.types';\nimport {\n resolveDelegatedAssistOptionModel,\n resolveDelegatedAssistOptionString,\n} from '../ai-delegated-agent-parameters.util';\nimport { AXCAiChatRouterService } from '../chat/ai-chat-router.service';\n\n//#endregion\n\n//#region ---- Command: AiManagement:ChatTranscribeSpeech ----\n\nexport interface AiManagementChatTranscribeSpeechInput {\n /** Catalog `AiModel` row id for a speech-purpose model. When omitted, uses `delegatedAgents[].options.model` for the active delegated specialist (`agentId` in run context). */\n model?: string;\n fileId?: string;\n language?: string;\n}\n\nfunction parseTranscribeInput(args: unknown):\n | { ok: true; model?: string; fileId: string; language?: string }\n | { ok: false; error: string } {\n const obj =\n args != null && typeof args === 'object' && !Array.isArray(args)\n ? (args as Record<string, unknown>)\n : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const fileId = typeof obj['fileId'] === 'string' ? obj['fileId'].trim() : '';\n if (!fileId) {\n return { ok: false, error: 'Invalid arguments: \"fileId\" is required and must be non-empty.' };\n }\n const model = typeof obj['model'] === 'string' ? obj['model'].trim() : undefined;\n const language = typeof obj['language'] === 'string' ? obj['language'].trim() : undefined;\n return {\n ok: true,\n fileId,\n ...(model ? { model } : {}),\n ...(language ? { language } : {}),\n };\n}\n\n@Injectable()\nexport class AiManagementChatTranscribeSpeechCommand\n implements AXPCommand<AiManagementChatTranscribeSpeechInput, { text: string }>\n{\n private readonly aiChatRouter = inject(AXCAiChatRouterService);\n private readonly runContext = inject(AXPAiChatToolRunContextService);\n private readonly fileStorage = inject(AXPFileStorageService);\n private readonly entityService = inject(AXPEntityService);\n\n private readonly assistData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assist.name)\n .data<string, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow>();\n\n async execute(\n input: AiManagementChatTranscribeSpeechInput,\n ): Promise<AXPExecuteCommandResult<{ text: string }>> {\n const ctx = this.runContext.getContext();\n if (!ctx?.assistId?.trim()) {\n return {\n success: false,\n message: {\n text: 'Speech transcription requires an active AI chat run context (assist id).',\n },\n };\n }\n\n const parsed = parseTranscribeInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n\n try {\n const assist = await this.assistData.byKey(ctx.assistId.trim());\n if (!assist) {\n return {\n success: false,\n message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },\n };\n }\n\n const modelEntityId =\n parsed.model?.trim() || resolveDelegatedAssistOptionModel(assist, ctx.agentId) || '';\n if (!modelEntityId) {\n return {\n success: false,\n message: {\n text:\n 'No speech model: pass \"model\" (catalog id) or set options.model on the speech-to-text delegated specialist row for this assist.',\n },\n };\n }\n\n let mimeType = 'application/octet-stream';\n let audioBytes: ArrayBuffer;\n try {\n const info = await this.fileStorage.getInfo(parsed.fileId);\n const file = info.binary;\n mimeType = info.mimeType?.trim() || file.type?.trim() || mimeType;\n audioBytes = await file.arrayBuffer();\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return {\n success: false,\n message: { text: `Could not read audio file (fileId: ${parsed.fileId}). ${msg}` },\n };\n }\n\n const language =\n parsed.language?.trim() ||\n resolveDelegatedAssistOptionString(assist, ctx.agentId, 'language') ||\n undefined;\n\n const { text } = await this.aiChatRouter.transcribeSpeech({\n modelEntityId,\n audioBytes,\n mimeType,\n fileName: parsed.fileId,\n ...(language ? { language } : {}),\n });\n\n return { success: true, data: { text } };\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { success: false, message: { text: msg } };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-connectivity-mock-chat-transcribe-speech.command-BvZwDms4.mjs","sources":["../../../../libs/connectivity/mock/src/lib/ai-management/commands/chat-transcribe-speech.command.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPAiChatToolRunContextService, RootConfig } from '@acorex/modules/ai-management';\nimport { Injectable, inject } from '@angular/core';\nimport { AXPExecuteCommandResult } from '@acorex/platform/core';\nimport { AXPCommand } from '@acorex/platform/runtime';\nimport { AXPFileStorageService } from '@acorex/platform/common';\nimport { AXPEntityService } from '@acorex/platform/layout/entity';\n\nimport type { AXMAiAssistRow } from '../ai-agent-engine.types';\nimport {\n resolveDelegatedAssistOptionModel,\n resolveDelegatedAssistOptionString,\n} from '../ai-delegated-agent-parameters.util';\nimport { AXCAiChatRouterService } from '../chat/ai-chat-router.service';\n\n//#endregion\n\n//#region ---- Command: AiManagement:ChatTranscribeSpeech ----\n\nexport interface AiManagementChatTranscribeSpeechInput {\n /** Catalog `AiModel` row id for a speech-purpose model. When omitted, uses `delegatedAgents[].options.model` for the active delegated specialist (`agentId` in run context). */\n model?: string;\n fileId?: string;\n language?: string;\n}\n\nfunction parseTranscribeInput(args: unknown):\n | { ok: true; model?: string; fileId: string; language?: string }\n | { ok: false; error: string } {\n const obj =\n args != null && typeof args === 'object' && !Array.isArray(args)\n ? (args as Record<string, unknown>)\n : null;\n if (!obj) {\n return { ok: false, error: 'Invalid arguments: expected an object.' };\n }\n const fileId = typeof obj['fileId'] === 'string' ? obj['fileId'].trim() : '';\n if (!fileId) {\n return { ok: false, error: 'Invalid arguments: \"fileId\" is required and must be non-empty.' };\n }\n const model = typeof obj['model'] === 'string' ? obj['model'].trim() : undefined;\n const language = typeof obj['language'] === 'string' ? obj['language'].trim() : undefined;\n return {\n ok: true,\n fileId,\n ...(model ? { model } : {}),\n ...(language ? { language } : {}),\n };\n}\n\n@Injectable()\nexport class AiManagementChatTranscribeSpeechCommand\n implements AXPCommand<AiManagementChatTranscribeSpeechInput, { text: string }>\n{\n private readonly aiChatRouter = inject(AXCAiChatRouterService);\n private readonly runContext = inject(AXPAiChatToolRunContextService);\n private readonly fileStorage = inject(AXPFileStorageService);\n private readonly entityService = inject(AXPEntityService);\n\n private readonly assistData = this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.assist.name)\n .data<string, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow, AXMAiAssistRow>();\n\n async execute(\n input: AiManagementChatTranscribeSpeechInput,\n ): Promise<AXPExecuteCommandResult<{ text: string }>> {\n const ctx = this.runContext.getContext();\n if (!ctx?.assistId?.trim()) {\n return {\n success: false,\n message: {\n text: 'Speech transcription requires an active AI chat run context (assist id).',\n },\n };\n }\n\n const parsed = parseTranscribeInput(input);\n if (!parsed.ok) {\n return { success: false, message: { text: parsed.error } };\n }\n\n try {\n const assist = await this.assistData.byKey(ctx.assistId.trim());\n if (!assist) {\n return {\n success: false,\n message: { text: `Assist row was not found (id: ${ctx.assistId.trim()}).` },\n };\n }\n\n const modelEntityId =\n parsed.model?.trim() || resolveDelegatedAssistOptionModel(assist, ctx.agentId) || '';\n if (!modelEntityId) {\n return {\n success: false,\n message: {\n text:\n 'No speech model: pass \"model\" (catalog id) or set options.model on the speech-to-text delegated specialist row for this assist.',\n },\n };\n }\n\n let mimeType = 'application/octet-stream';\n let audioBytes: ArrayBuffer;\n try {\n const info = await this.fileStorage.getInfo(parsed.fileId);\n const file = info.binary;\n mimeType = info.mimeType?.trim() || file.type?.trim() || mimeType;\n audioBytes = await file.arrayBuffer();\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return {\n success: false,\n message: { text: `Could not read audio file (fileId: ${parsed.fileId}). ${msg}` },\n };\n }\n\n const language =\n parsed.language?.trim() ||\n resolveDelegatedAssistOptionString(assist, ctx.agentId, 'language') ||\n undefined;\n\n const { text } = await this.aiChatRouter.transcribeSpeech({\n modelEntityId,\n audioBytes,\n mimeType,\n fileName: parsed.fileId,\n ...(language ? { language } : {}),\n });\n\n return { success: true, data: { text } };\n } catch (e) {\n const msg = e instanceof Error ? e.message : String(e);\n return { success: false, message: { text: msg } };\n }\n }\n}\n\n//#endregion\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable } from '@angular/core';
3
+ import { m as mockUsers } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
4
+
5
+ //#endregion
6
+ /**
7
+ * Resolves role rows for the user list lookup column when using {@link countOnly} column resolve.
8
+ */
9
+ class UserRolesForListColumnQuery {
10
+ async fetch(input) {
11
+ debugger;
12
+ const userId = input?.userId?.trim();
13
+ if (!userId) {
14
+ return { items: [] };
15
+ }
16
+ const user = mockUsers.find((u) => u.id === userId);
17
+ if (!user?.roles?.length) {
18
+ return { items: [] };
19
+ }
20
+ return { items: user.roles };
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserRolesForListColumnQuery, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
23
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserRolesForListColumnQuery, providedIn: 'root' }); }
24
+ }
25
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: UserRolesForListColumnQuery, decorators: [{
26
+ type: Injectable,
27
+ args: [{ providedIn: 'root' }]
28
+ }] });
29
+
30
+ export { UserRolesForListColumnQuery };
31
+ //# sourceMappingURL=acorex-connectivity-mock-user-roles-for-list-column.query-DZlsdoZn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-connectivity-mock-user-roles-for-list-column.query-DZlsdoZn.mjs","sources":["../../../../libs/connectivity/mock/src/lib/security-management/user/user-roles-for-list-column.query.ts"],"sourcesContent":["import { AXPQuery } from '@acorex/platform/runtime';\nimport { Injectable } from '@angular/core';\nimport { mockUsers } from './user.mock';\n\n//#region ---- Types ----\n\nexport interface UserRolesForListColumnQueryInput {\n userId?: string;\n}\n\nexport interface UserRolesForListColumnQueryResult {\n items: { id: string; title: unknown }[];\n}\n\n//#endregion\n\n/**\n * Resolves role rows for the user list lookup column when using {@link countOnly} column resolve.\n */\n@Injectable({ providedIn: 'root' })\nexport class UserRolesForListColumnQuery implements AXPQuery<UserRolesForListColumnQueryInput, UserRolesForListColumnQueryResult> {\n async fetch(input: UserRolesForListColumnQueryInput): Promise<UserRolesForListColumnQueryResult> {\n debugger\n const userId = input?.userId?.trim();\n if (!userId) {\n return { items: [] };\n }\n const user = mockUsers.find((u) => u.id === userId);\n if (!user?.roles?.length) {\n return { items: [] };\n }\n return { items: user.roles };\n }\n}\n"],"names":[],"mappings":";;;;AAcA;AAEA;;AAEG;MAEU,2BAA2B,CAAA;IACtC,MAAM,KAAK,CAAC,KAAuC,EAAA;AACjD,QAAA;QACA,MAAM,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;QACpC,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACtB;AACA,QAAA,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;AACnD,QAAA,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE;AACxB,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;QACtB;AACA,QAAA,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;IAC9B;8GAZW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cADd,MAAM,EAAA,CAAA,CAAA;;2FACnB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;;;"}
@@ -1,2 +1,2 @@
1
- export { b as ACTIVITY_CATEGORIES, c as ACTIVITY_CATEGORY_ID_BY_KEY, d as ACTIVITY_DEFINITIONS, e as AI_ASSIST_MOCK, f as AI_MODEL_MOCK, g as APPLICATIONS, h as AXCActivityCategorySeeder, i as AXCActivityDefinitionSeeder, j as AXCAiAssistSeeder, k as AXCAiManagementMockModule, l as AXCAiModelSeeder, m as AXCAppTermDataSeeder, n as AXCAppVersionDataSeeder, o as AXCApplicationDataSeeder, p as AXCApplicationManagementMockModule, q as AXCAssessmentManagementMockModule, s as AXCAssetManagementMockModule, t as AXCAuthMockModule, u as AXCCalendarDataSeeder, v as AXCCalendarEventDataSeeder, w as AXCCalendarManagementMockModule, x as AXCCommandRegistryDataSeeder, y as AXCCommonMockModule, z as AXCContactCoreMockModule, B as AXCContentManagementMockModule, C as AXCConversationDataSeeder, D as AXCConversationMockConversationApi, E as AXCConversationMockMessageApi, F as AXCConversationMockModule, G as AXCConversationMockRealtimeApi, H as AXCConversationMockUserApi, I as AXCCustomerManagementMockModule, J as AXCDashboardManagementMockModule, K as AXCDataManagementMockModule, L as AXCDexieEntityStorageService, M as AXCDocumentManagementMockModule, N as AXCEditionDataSeeder, O as AXCEntityDefinitionSeederService, P as AXCEntityDefinitionsModule, Q as AXCEntityStorageInsertCommand, R as AXCEntityStorageModule, S as AXCEntityStorageQueryQuery, T as AXCFileStorageServiceDexie, U as AXCFileStorageServiceFirestore, V as AXCFinancialCoreMockModule, W as AXCFirestoreEntityStorageService, X as AXCFormTemplateManagementMockModule, Y as AXCGoogleStrategyMock, Z as AXCHealthCoreMockModule, _ as AXCHelpDeskMockModule, $ as AXCHumanCapitalManagementMockModule, a0 as AXCIdentifierManagementMockModule, a1 as AXCImageCaptchaChallengeProviderMock, a2 as AXCLearningManagementMockModule, a3 as AXCLocaleManagementMockModule, a4 as AXCLocationManagementMockModule, a5 as AXCLockService, a6 as AXCMeasurementCoreMockModule, a7 as AXCMeetingManagementMockModule, a8 as AXCMetaDataDefinitionDataSeeder, a9 as AXCMetadataCategorySeeder, aa as AXCMiddlewaresModule, ab as AXCMockCaptchaChallengeComponent, ac as AXCMockEntityLogListener, ad as AXCMockModule, ae as AXCMockShowMetaDataFormPopupCommand, af as AXCNotificationManagementMockModule, ag as AXCOrderManagementMockModule, ah as AXCOrganizationManagementMockModule, ai as AXCPersonCoreMockModule, aj as AXCPlatformManagementMockModule, ak as AXCProcurementManagementMockModule, al as AXCProductCatalogMockModule, am as AXCProjectManagementMockModule, an as AXCQueryRegistryDataSeeder, ao as AXCReportManagementMockModule, ap as AXCSecurityManagementMockModule, aq as AXCStoredEntityDefinitionLoader, ar as AXCSubscriptionManagementMockModule, as as AXCSupplierManagementMockModule, at as AXCTaskManagementMockModule, au as AXCTenantManagementMockModule, av as AXCTenantSeeder, aw as AXCTokensDataSeeder, ax as AXCUserPassStrategyMock, ay as AXCVersionDB, az as AXCVersioningService, aA as AXCWorkflowCategorySeeder, aB as AXCWorkflowDefinitionDataSeeder, aC as AXCWorkflowEngine, aD as AXCWorkflowExecutionDB, aE as AXCWorkflowExecutionStoreDexie, aF as AXCWorkflowExecutionStoreFirestore, aG as AXCWorkflowManagementMockModule, aH as AXC_ENTITY_STORAGE_BACKEND_TYPE, aI as AXC_FIRESTORE_CONFIG, aJ as AXC_FIRESTORE_DB, aK as AXC_WORKFLOW_EXECUTION_STORE, aL as AXMAiDemisDefaultAssistId, aM as AXMAiModelStableIds, aN as AXMAiPlatformDefaultAssistId, aO as AXMAutomationDataSeeder, aP as AXMBusinessUnitDataSeeder, aQ as AXMCalendarEventTypeSeeder, aR as AXMDashboardChartDataSourceDefinition, aS as AXMEmployeeDataSeeder, aT as AXMEmploymentTypeDataSeeder, aU as AXMFormDataSourcesProvider, aV as AXMJobDefinitionDataSeeder, aW as AXMJobLevelDataSeeder, aX as AXMLeaveRequestDataSeeder, aY as AXMMeetingDataSeeder, aZ as AXMMeetingFilesDataSeeder, a_ as AXMMeetingParticipantDataSeeder, a$ as AXMMeetingRoleTypeDataSeeder, b0 as AXMMeetingSessionDataSeeder, b1 as AXMMeetingTypeDataSeeder, b2 as AXMMeetingTypeFileTemplateDataSeeder, b3 as AXMPositionAssignmentDataSeeder, b4 as AXMPositionDataSeeder, b5 as AXMQuestionBankItemCategoryDataSeeder, b6 as AXMQuestionBankItemDataSeeder, b7 as AXMQuestionnaireCalculationDataSeeder, b8 as AXMQuestionnaireCategoryDataSeeder, b9 as AXMQuestionnaireDataSeeder, ba as AXMResponsibilityDataSeeder, bb as AXMTagDataSeeder, bc as AXMTeamDataSeeder, bd as AXMTeamMemberDataSeeder, be as AXMTeamMemberRoleDataSeeder, bf as AXMWorkflowDashboardChartDataSourceDefinition, bg as AXM_AI_REGISTRY_COMMAND_NAME, bh as AXM_AI_REGISTRY_QUERY_NAME, bi as AXM_CORPORATE_BUSINESS_UNIT_ID, bj as AXPDashboardDataSeeder, bk as AXPIdentifierDB, bl as AXPMessageDataSeeder, bm as AXPMockChecksumProvider, bn as AXPMockClockProvider, bo as AXPMockIdentifierService, bp as AXPMockLookupProvider, bq as AXPMockPolicyProvider, br as AXPMockSequenceProvider, bs as AXPRoomDataSeeder, bt as AXPSecurityManagementRoleDataSeeder, bu as AXPSecurityManagementUserDataSeeder, bv as AXPTaskBoardPlatformManagementTaskProvider, bw as AXPTaskBoardProjectManagementTaskProvider, bx as AXVChangeType, by as BCC, bz as BOC, bA as BUSINESS_UNITS_MOCK, bB as CHAT_LAST_MESSAGE_IDS, bC as COSTMANAGER_ENTERPRISE, bD as COSTMANAGER_PROFESSIONAL, bE as COSTMANAGER_STANDARD, bF as CP, bG as CRM_ENTERPRISE, bH as DASHBOARDS, bI as EDITIONS, bJ as EMPLOYEES_MOCK, bK as EMPLOYMENT_TYPES_MOCK, bL as ENTITY_DEFINITION_MAP, bM as ENTITY_REGISTRY, bN as FINANCE_BASIC, bO as FINANCE_ENTERPRISE, bP as FINANCE_PRO, bQ as G, bR as HR_ENTERPRISE, bS as HW, bT as JOB_DEFINITIONS_CATEGORY_MOCK, bU as JOB_DEFINITIONS_MOCK, bV as JOB_DEFINITION_CATEGORY_KEY_TO_ID, bW as JOB_LEVELS_MOCK, bX as LASER_PLUMBING_TENANT_ID, bY as LEAVE_REQUESTS_MOCK, bZ as METADATA_CATEGORY_IDS, b_ as METADATA_GENERAL_CATEGORY_REFS, b$ as METADATA_SYSTEM_CATEGORY_REFS, c0 as MLC, c1 as OHR, c2 as ORDERING_BASIC, c3 as ORDERING_ENTERPRISE, c4 as ORDERING_STANDARD, c5 as OWNERSHIP_FILTER_BYPASS, c6 as PLATFORM_CONSOLE, c7 as PLATFORM_TENANT_ID, c8 as PM, c9 as POSITIONS_CATEGORY_MOCK, ca as POSITIONS_MOCK, cb as POSITION_ASSIGNMENTS_MOCK, cc as QCP, cd as QGEN, ce as QHW, cf as QOHR, cg as QPM, ch as QTLE, ci as QUESTIONNAIRE_CATEGORY_MOCK, cj as QUESTION_BANK_ITEM_CATEGORY_MOCK, ck as QWS, cl as RESPONSIBILITIES_CATEGORY_MOCK, cm as RESPONSIBILITIES_MOCK, cn as RESPONSIBILITY_CATEGORY_KEY_TO_ID, co as SAFETYMINDER_BASIC, cp as SAFETYMINDER_ENTERPRISE, cq as SAFETYMINDER_PROFESSIONAL, cr as SHOP_BASIC, cs as SHOP_ENTERPRISE, ct as SHOP_PRO, cu as TAGS_MOCK, cv as TASKS, cw as TASK_STATUSES, cx as TASK_TEMPLATES, cy as TASK_TYPES, cz as TEAMS_MOCK, cA as TEAM_MEMBERS_MOCK, cB as TEAM_MEMBER_ROLES_MOCK, cC as TIMEPLICITY_TENANT_ID, cD as TLA, cE as TOKENS, cF as TPC, cG as VISIBILITY_FILTER_BYPASS, cH as WORKFLOW_CATEGORIES, cI as WS, cJ as activityCategoryMocks, cK as activityDefinitionEntityMock, cL as applyEntityDefinitionFirestoreSnapshot, cM as automationCommandMiddleware, cN as automationMock, cO as avatarInterface, cP as axVersionDB, cQ as axWorkflowExecutionDB, cR as axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows, cS as axcPatchEmployeeActivePrimaryPositionRefsFromRows, cT as axcPatchEmployeeManagerRefsFromRows, cU as axcResolveCommandRegistrySeedId, cV as axcResolveQueryRegistrySeedId, cW as bankCategory, cX as buildEntityStorageQuickSearchFilter, cY as bypassAllFilters, cZ as bypassOwnershipFilter, c_ as bypassVisibilityFilter, c$ as calendarEventMock, d0 as calendarEventTypeMockData, d1 as calendarMock, d2 as chatMessageMock, d3 as chatMock, d4 as checkboxInterface, d5 as childCountMiddleware, d6 as clearEntityDefinitionFirestoreCollections, d7 as collectQuickSearchFieldPathsFromEntityDefinition, d8 as colorInterface, d9 as computeDiff, da as contactInterface, db as createAndSaveDashboardForUser, dc as createDashboardForUser, dd as createFileCastMiddleware, de as createWidgetLayoutConfig, df as dateInterface, dg as dateTimeInterface, dh as descriptionInterface, di as documentFolderSyncMiddleware, dj as emailInterface, dk as entityDefDb, dl as entityValidationMiddleware, dm as fileUploaderInterface, dn as finalizeActivityCategoryItemCounts, dp as findEmployeeById, dq as folderStorageMiddleware, dr as generateUserDashboard, ds as groupOrderItemCalculatorMiddleware, dt as historyMiddleware, du as identifierCommitMiddleware, dv as imageInterface, dw as inspectionOkXNaInterface, dx as loadMockPropertyDefinitions, dy as lockGuardMiddleware, dz as longTextAnswerInterface, dA as lookupInterface, dB as lookupResolverMiddleware, dC as mapInterface, dD as meetingFilesMock, dE as meetingIds, dF as meetingMock, dG as meetingParticipantMock, dH as meetingRoleTypeMock, dI as meetingSessionMock, dJ as meetingTimeSlotMock, dK as meetingTypeFileTemplateMock, dL as meetingTypeMock, dM as mergeDetailRelationMiddleware, dN as mergeQuickSearchIntoRequest, dO as metadataCategoryMocks, dP as mockQuestionBankItemByName, dQ as mockRoleDefinitions, dR as mockUsers, dS as multipleChoiceInterface, dT as multipleSelectInterface, dU as normalizeAnyFileArrayForView, dV as normalizeSnapshotFileFieldsForView, dW as numberInterface, dX as parseEntityStorageInsertData, dY as parseEntityStorageQueryRequest, dZ as participantIds, d_ as participantMock, d$ as passwordInterface, e0 as personIdentifierTypeMock, e1 as personIds, e2 as personLegalIds, e3 as personMock, e4 as personNaturalIds, e5 as phoneInterface, e6 as primaryMiddleware, e7 as provideMockPropertySetups, e8 as qrcodeInterface, e9 as questionBankItemMock, ea as questionnaireCalculationMock, eb as questionnaireMock, ec as ratingInterface, ed as richTextInterface, ee as scaleInterface, ef as selectInterface, eg as selectionListInterface, eh as sexAtBirthInterface, ei as signatureInterface, ej as signatureLoaderMiddleware, ek as statusDefaultMiddleware, el as tagInterface, em as tenantMocks, en as textAreaInterface, eo as textInterface, ep as timeDurationInterface, eq as titleInterface, er as toUiRows, es as toggleInterface, et as tokenCategoryIds, eu as tokenCategoryMocks, ev as urlInterface, ew as versionInterface, ex as visibilityFilterMiddleware, ey as workflowDefinitionEntityMock, ez as workflowDefinitionIds, eA as workflowDefinitionMock, eB as yesNoInterface } from './acorex-connectivity-mock-acorex-connectivity-mock-Bso6KgSC.mjs';
1
+ export { d as ACTIVITY_CATEGORIES, e as ACTIVITY_CATEGORY_ID_BY_KEY, f as ACTIVITY_DEFINITIONS, g as AI_ASSIST_MOCK, h as AI_MODEL_MOCK, i as APPLICATIONS, j as AXCActivityCategorySeeder, k as AXCActivityDefinitionSeeder, l as AXCAiAssistSeeder, n as AXCAiManagementMockModule, o as AXCAiModelSeeder, p as AXCAppTermDataSeeder, q as AXCAppVersionDataSeeder, s as AXCApplicationDataSeeder, t as AXCApplicationManagementMockModule, u as AXCAssessmentManagementMockModule, v as AXCAssetManagementMockModule, w as AXCAuthMockModule, x as AXCCalendarDataSeeder, y as AXCCalendarEventDataSeeder, z as AXCCalendarManagementMockModule, B as AXCCommandRegistryDataSeeder, C as AXCCommonMockModule, D as AXCContactCoreMockModule, E as AXCContentManagementMockModule, F as AXCConversationDataSeeder, G as AXCConversationMockConversationApi, H as AXCConversationMockMessageApi, I as AXCConversationMockModule, J as AXCConversationMockRealtimeApi, K as AXCConversationMockUserApi, L as AXCCustomerManagementMockModule, M as AXCDashboardManagementMockModule, N as AXCDataManagementMockModule, O as AXCDexieEntityStorageService, P as AXCDocumentManagementMockModule, Q as AXCEditionDataSeeder, R as AXCEntityDefinitionSeederService, S as AXCEntityDefinitionsModule, T as AXCEntityStorageInsertCommand, U as AXCEntityStorageModule, V as AXCEntityStorageQueryQuery, W as AXCFileStorageServiceDexie, X as AXCFileStorageServiceFirestore, Y as AXCFinancialCoreMockModule, Z as AXCFirestoreEntityStorageService, _ as AXCFormTemplateManagementMockModule, $ as AXCGoogleStrategyMock, a0 as AXCHealthCoreMockModule, a1 as AXCHelpDeskMockModule, a2 as AXCHumanCapitalManagementMockModule, a3 as AXCIdentifierManagementMockModule, a4 as AXCImageCaptchaChallengeProviderMock, a5 as AXCLearningManagementMockModule, a6 as AXCLocaleManagementMockModule, a7 as AXCLocationManagementMockModule, a8 as AXCLockService, a9 as AXCMeasurementCoreMockModule, aa as AXCMeetingManagementMockModule, ab as AXCMetaDataDefinitionDataSeeder, ac as AXCMetadataCategorySeeder, ad as AXCMiddlewaresModule, ae as AXCMockCaptchaChallengeComponent, af as AXCMockEntityLogListener, ag as AXCMockModule, ah as AXCMockShowMetaDataFormPopupCommand, ai as AXCNotificationManagementMockModule, aj as AXCOrderManagementMockModule, ak as AXCOrganizationManagementMockModule, al as AXCPersonCoreMockModule, am as AXCPlatformManagementMockModule, an as AXCProcurementManagementMockModule, ao as AXCProductCatalogMockModule, ap as AXCProjectManagementMockModule, aq as AXCQueryRegistryDataSeeder, ar as AXCReportManagementMockModule, as as AXCSecurityManagementMockModule, at as AXCStoredEntityDefinitionLoader, au as AXCSubscriptionManagementMockModule, av as AXCSupplierManagementMockModule, aw as AXCTaskManagementMockModule, ax as AXCTenantManagementMockModule, ay as AXCTenantSeeder, az as AXCTokensDataSeeder, aA as AXCUserPassStrategyMock, aB as AXCVersionDB, aC as AXCVersioningService, aD as AXCWidgetCatalogDataSeeder, aE as AXCWorkflowCategorySeeder, aF as AXCWorkflowDefinitionDataSeeder, aG as AXCWorkflowEngine, aH as AXCWorkflowExecutionDB, aI as AXCWorkflowExecutionStoreDexie, aJ as AXCWorkflowExecutionStoreFirestore, aK as AXCWorkflowInstanceCartableDemoSeeder, aL as AXCWorkflowManagementMockModule, aM as AXC_ENTITY_STORAGE_BACKEND_TYPE, aN as AXC_FIRESTORE_CONFIG, aO as AXC_FIRESTORE_DB, aP as AXC_WORKFLOW_EXECUTION_STORE, aQ as AXMAiDemisDefaultAssistId, a as AXMAiModelStableIds, aR as AXMAiPlatformDefaultAssistId, aS as AXMAutomationDataSeeder, aT as AXMBusinessUnitDataSeeder, aU as AXMCalendarEventTypeSeeder, aV as AXMDashboardChartDataSourceDefinition, aW as AXMEmployeeDataSeeder, aX as AXMEmploymentTypeDataSeeder, aY as AXMFormDataSourcesProvider, aZ as AXMJobDefinitionDataSeeder, a_ as AXMJobLevelDataSeeder, a$ as AXMLeaveRequestDataSeeder, b0 as AXMMeetingDataSeeder, b1 as AXMMeetingFilesDataSeeder, b2 as AXMMeetingParticipantDataSeeder, b3 as AXMMeetingRoleTypeDataSeeder, b4 as AXMMeetingSessionDataSeeder, b5 as AXMMeetingTypeDataSeeder, b6 as AXMMeetingTypeFileTemplateDataSeeder, b7 as AXMPositionAssignmentDataSeeder, b8 as AXMPositionDataSeeder, b9 as AXMQuestionBankItemCategoryDataSeeder, ba as AXMQuestionBankItemDataSeeder, bb as AXMQuestionnaireCalculationDataSeeder, bc as AXMQuestionnaireCategoryDataSeeder, bd as AXMQuestionnaireDataSeeder, be as AXMResponsibilityDataSeeder, bf as AXMTagDataSeeder, bg as AXMTeamBusinessUnitDataSeeder, bh as AXMTeamDataSeeder, bi as AXMTeamMemberDataSeeder, bj as AXMTeamMemberRoleDataSeeder, bk as AXMWorkflowDashboardChartDataSourceDefinition, bl as AXM_AI_REGISTRY_COMMAND_NAME, bm as AXM_AI_REGISTRY_QUERY_NAME, bn as AXM_CORPORATE_BUSINESS_UNIT_ID, bo as AXPDashboardDataSeeder, bp as AXPIdentifierDB, bq as AXPMessageDataSeeder, br as AXPMockChecksumProvider, bs as AXPMockClockProvider, bt as AXPMockIdentifierService, bu as AXPMockLookupProvider, bv as AXPMockPolicyProvider, bw as AXPMockSequenceProvider, bx as AXPRoomDataSeeder, by as AXPSecurityManagementRoleDataSeeder, bz as AXPSecurityManagementUserDataSeeder, bA as AXPTaskBoardPlatformManagementTaskProvider, bB as AXPTaskBoardProjectManagementTaskProvider, bC as AXVChangeType, bD as BCC, bE as BOC, bF as BUSINESS_UNITS_MOCK, bG as CHAT_LAST_MESSAGE_IDS, bH as COSTMANAGER_ENTERPRISE, bI as COSTMANAGER_PROFESSIONAL, bJ as COSTMANAGER_STANDARD, bK as CP, bL as CRM_ENTERPRISE, bM as DASHBOARDS, bN as EDITIONS, bO as EMPLOYEES_MOCK, bP as EMPLOYMENT_TYPES_MOCK, bQ as ENTITY_DEFINITION_MAP, bR as ENTITY_REGISTRY, bS as FINANCE_BASIC, bT as FINANCE_ENTERPRISE, bU as FINANCE_PRO, bV as G, bW as HR_ENTERPRISE, bX as HW, bY as JOB_DEFINITIONS_CATEGORY_MOCK, bZ as JOB_DEFINITIONS_MOCK, b_ as JOB_DEFINITION_CATEGORY_KEY_TO_ID, b$ as JOB_LEVELS_MOCK, c0 as LASER_PLUMBING_TENANT_ID, c1 as LEAVE_REQUESTS_MOCK, c2 as METADATA_CATEGORY_IDS, c3 as METADATA_GENERAL_CATEGORY_REFS, c4 as METADATA_SYSTEM_CATEGORY_REFS, c5 as MLC, c6 as OHR, c7 as ORDERING_BASIC, c8 as ORDERING_ENTERPRISE, c9 as ORDERING_STANDARD, ca as OWNERSHIP_FILTER_BYPASS, cb as PLATFORM_CONSOLE, cc as PLATFORM_TENANT_ID, cd as PM, ce as POSITIONS_CATEGORY_MOCK, cf as POSITIONS_MOCK, cg as POSITION_ASSIGNMENTS_MOCK, ch as QCP, ci as QGEN, cj as QHW, ck as QOHR, cl as QPM, cm as QTLE, cn as QUESTIONNAIRE_CATEGORY_MOCK, co as QUESTION_BANK_ITEM_CATEGORY_MOCK, cp as QWS, cq as RESPONSIBILITIES_CATEGORY_MOCK, cr as RESPONSIBILITIES_MOCK, cs as RESPONSIBILITY_CATEGORY_KEY_TO_ID, ct as SAFETYMINDER_BASIC, cu as SAFETYMINDER_ENTERPRISE, cv as SAFETYMINDER_PROFESSIONAL, cw as SHOP_BASIC, cx as SHOP_ENTERPRISE, cy as SHOP_PRO, cz as TAGS_MOCK, cA as TASKS, cB as TASK_STATUSES, cC as TASK_TEMPLATES, cD as TASK_TYPES, cE as TEAMS_MOCK, cF as TEAM_BUSINESS_UNITS_MOCK, cG as TEAM_MEMBERS_MOCK, cH as TEAM_MEMBER_ROLES_MOCK, cI as TIMEPLICITY_TENANT_ID, cJ as TLA, cK as TOKENS, cL as TPC, cM as VISIBILITY_FILTER_BYPASS, cN as WORKFLOW_CATEGORIES, cO as WS, cP as activityCategoryMocks, cQ as activityDefinitionEntityMock, cR as applyEntityDefinitionFirestoreSnapshot, cS as automationCommandMiddleware, cT as automationMock, cU as avatarInterface, cV as axVersionDB, cW as axWorkflowExecutionDB, cX as axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows, cY as axcPatchEmployeeActivePrimaryPositionRefsFromRows, cZ as axcPatchEmployeeManagerRefsFromRows, c_ as axcResolveCommandRegistrySeedId, c$ as axcResolveQueryRegistrySeedId, d0 as axcResolveWidgetCatalogSeedId, d1 as bankCategory, d2 as buildEntityStorageQuickSearchFilter, d3 as buildWorkflowInstanceCartableDemoRows, d4 as bypassAllFilters, d5 as bypassOwnershipFilter, d6 as bypassVisibilityFilter, d7 as calendarEventMock, d8 as calendarEventTypeMockData, d9 as calendarMock, da as chatMessageMock, db as chatMock, dc as checkboxInterface, dd as childCountMiddleware, de as clearEntityDefinitionFirestoreCollections, df as collectQuickSearchFieldPathsFromEntityDefinition, dg as colorInterface, dh as computeDiff, di as contactInterface, dj as conversationDemoSeedUserIds, dk as createFileCastMiddleware, dl as createWidgetLayoutConfig, dm as dateInterface, dn as dateTimeInterface, dp as descriptionInterface, dq as documentFolderSyncMiddleware, dr as emailInterface, ds as entityDefDb, dt as entityValidationMiddleware, du as fileUploaderInterface, dv as finalizeActivityCategoryItemCounts, dw as findEmployeeById, dx as folderStorageMiddleware, dy as groupOrderItemCalculatorMiddleware, dz as historyMiddleware, dA as identifierCommitMiddleware, dB as imageInterface, dC as inspectionOkXNaInterface, dD as loadMockPropertyDefinitions, dE as lockGuardMiddleware, dF as longTextAnswerInterface, dG as lookupInterface, dH as lookupResolverMiddleware, dI as mapInterface, dJ as meetingFilesMock, dK as meetingIds, dL as meetingMock, dM as meetingParticipantMock, dN as meetingRoleTypeMock, dO as meetingSessionMock, dP as meetingTimeSlotMock, dQ as meetingTypeFileTemplateMock, dR as meetingTypeMock, dS as mergeDetailRelationMiddleware, dT as mergeQuickSearchIntoRequest, dU as metadataCategoryMocks, dV as mockParticipantIndexForSecurityUserId, dW as mockQuestionBankItemByName, dX as mockRoleDefinitions, m as mockUsers, dY as multipleChoiceInterface, dZ as multipleSelectInterface, d_ as normalizeAnyFileArrayForView, d$ as normalizeSnapshotFileFieldsForView, e0 as numberInterface, e1 as parseEntityStorageInsertData, e2 as parseEntityStorageQueryRequest, e3 as participantIds, e4 as participantMock, e5 as passwordInterface, e6 as personIdentifierTypeMock, e7 as personIds, e8 as personLegalIds, e9 as personMock, ea as personNaturalIds, eb as phoneInterface, ec as primaryMiddleware, ed as provideMockPropertySetups, ee as qrcodeInterface, ef as questionBankItemMock, eg as questionnaireCalculationMock, eh as questionnaireMock, ei as ratingInterface, ej as richTextInterface, ek as scaleInterface, el as selectInterface, em as selectionListInterface, en as sexAtBirthInterface, eo as signatureInterface, ep as signatureLoaderMiddleware, eq as statusDefaultMiddleware, er as tagInterface, es as tenantMocks, et as textAreaInterface, eu as textInterface, ev as timeDurationInterface, ew as titleInterface, ex as toUiRows, ey as toggleInterface, ez as tokenCategoryIds, eA as tokenCategoryMocks, eB as urlInterface, eC as versionInterface, eD as visibilityFilterMiddleware, eE as workflowDefinitionEntityMock, eF as workflowDefinitionIds, eG as workflowDefinitionMock, eH as yesNoInterface } from './acorex-connectivity-mock-acorex-connectivity-mock-BTiDjsTG.mjs';
2
2
  //# sourceMappingURL=acorex-connectivity-mock.mjs.map
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@acorex/connectivity",
3
- "version": "21.0.0-next.39",
3
+ "version": "21.0.0-next.41",
4
4
  "peerDependencies": {
5
- "@acorex/modules": "21.0.0-next.39"
5
+ "@acorex/modules": "21.0.0-next.41"
6
6
  },
7
7
  "sideEffects": false,
8
8
  "module": "fesm2022/acorex-connectivity.mjs",