@acorex/connectivity 21.0.0-next.45 → 21.0.0-next.46
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-D8bzYltA.mjs → acorex-connectivity-mock-acorex-connectivity-mock-CPvIJXWl.mjs} +160 -213
- package/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-D8bzYltA.mjs.map → acorex-connectivity-mock-acorex-connectivity-mock-CPvIJXWl.mjs.map} +1 -1
- package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-Cr4KK7dn.mjs → acorex-connectivity-mock-assign-to-manager.activity-Bl5qwPIP.mjs} +2 -2
- package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-Cr4KK7dn.mjs.map → acorex-connectivity-mock-assign-to-manager.activity-Bl5qwPIP.mjs.map} +1 -1
- package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-BqnmiAgI.mjs → acorex-connectivity-mock-chat-generate-image.command-B5IoaRXb.mjs} +2 -2
- package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-BqnmiAgI.mjs.map → acorex-connectivity-mock-chat-generate-image.command-B5IoaRXb.mjs.map} +1 -1
- package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-D3NPqs6A.mjs → acorex-connectivity-mock-chat-synthesize-speech.command-C1fGlYi6.mjs} +2 -2
- package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-D3NPqs6A.mjs.map → acorex-connectivity-mock-chat-synthesize-speech.command-C1fGlYi6.mjs.map} +1 -1
- package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-tQbAVOfm.mjs → acorex-connectivity-mock-chat-transcribe-speech.command-Dhe8T9vA.mjs} +2 -2
- package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-tQbAVOfm.mjs.map → acorex-connectivity-mock-chat-transcribe-speech.command-Dhe8T9vA.mjs.map} +1 -1
- package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-BjwkpUBF.mjs → acorex-connectivity-mock-user-roles-for-list-column.query-DOXlY-R3.mjs} +2 -2
- package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-BjwkpUBF.mjs.map → acorex-connectivity-mock-user-roles-for-list-column.query-DOXlY-R3.mjs.map} +1 -1
- package/fesm2022/acorex-connectivity-mock.mjs +1 -1
- package/package.json +2 -2
- package/types/acorex-connectivity-mock.d.ts +5 -10
|
@@ -5,7 +5,7 @@ import { RootConfig as RootConfig$2 } from '@acorex/modules/organization-managem
|
|
|
5
5
|
import { RootConfig as RootConfig$1 } from '@acorex/modules/person-core';
|
|
6
6
|
import { AXPSessionService } from '@acorex/platform/auth';
|
|
7
7
|
import { AXPEntityStorageService } from '@acorex/platform/layout/entity';
|
|
8
|
-
import { c as axcSyncSingleEmployeeDenormalizedOrgFields } from './acorex-connectivity-mock-acorex-connectivity-mock-
|
|
8
|
+
import { c as axcSyncSingleEmployeeDenormalizedOrgFields } from './acorex-connectivity-mock-acorex-connectivity-mock-CPvIJXWl.mjs';
|
|
9
9
|
|
|
10
10
|
const EMPLOYEE_ENTITY = RootConfig.entities.employee.source;
|
|
11
11
|
const PERSON_ENTITY = `${RootConfig$1.module.name}.${RootConfig$1.entities.person.name}`;
|
|
@@ -285,4 +285,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
285
285
|
}] });
|
|
286
286
|
|
|
287
287
|
export { AssignToManagerActivity };
|
|
288
|
-
//# sourceMappingURL=acorex-connectivity-mock-assign-to-manager.activity-
|
|
288
|
+
//# sourceMappingURL=acorex-connectivity-mock-assign-to-manager.activity-Bl5qwPIP.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-connectivity-mock-assign-to-manager.activity-Cr4KK7dn.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 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\ntype EmployeeOutputShape = { displayName: string; [key: string]: unknown };\n\n/**\n * Reads subject employee FK from any aggregate row (leave request, lifecycle process, etc.).\n */\nfunction axcExtractSubjectEmployeeIdFromRecord(record: Record<string, unknown>): {\n subjectEmployeeId: string | null;\n nestedEmployeeHint: EmployeeOutputShape | null;\n nameHint: string | undefined;\n} {\n const scalarFields = [\n 'employeeId',\n 'assigneeEmployeeId',\n 'subjectEmployeeId',\n 'requesterEmployeeId',\n 'ownerEmployeeId',\n ] as const;\n\n for (const field of scalarFields) {\n const id = axcScalarEntityId(record[field]);\n if (id) {\n return { subjectEmployeeId: id, nestedEmployeeHint: null, nameHint: undefined };\n }\n }\n\n const nestedFields = ['employee', 'assignee', 'subject'] as const;\n for (const field of nestedFields) {\n const nested = record[field];\n const id = axcScalarEntityId(nested);\n if (!id) {\n continue;\n }\n let hint: EmployeeOutputShape | null = null;\n if (nested !== null && typeof nested === 'object') {\n const o = nested as {\n displayName?: string;\n person?: { displayName?: string };\n [key: string]: unknown;\n };\n hint = {\n displayName: o.person?.displayName ?? o.displayName ?? '',\n ...o,\n };\n }\n return { subjectEmployeeId: id, nestedEmployeeHint: hint, nameHint: undefined };\n }\n\n const nameHintRaw = record['employeeName'];\n const nameHint =\n typeof nameHintRaw === 'string' && nameHintRaw.trim() !== ''\n ? nameHintRaw.trim()\n : typeof nameHintRaw === 'object' &&\n nameHintRaw !== null &&\n 'en-US' in (nameHintRaw as object)\n ? String((nameHintRaw as { 'en-US'?: unknown })['en-US'] ?? '').trim() || undefined\n : undefined;\n\n return {\n subjectEmployeeId: null,\n nestedEmployeeHint: null,\n nameHint,\n };\n}\n\n//#endregion\n\nexport interface AssignToManagerInput {\n /** When set (scalar or `{ id }`), resolves manager for this employee (highest precedence). */\n employeeId?: unknown;\n /**\n * Full entity source key for the workflow aggregate (e.g. `HumanCapitalManagement.LeaveRequest`).\n * Used with `sourceRecordId` when `employeeId` is not set.\n */\n sourceEntity?: unknown;\n /** Primary key of the record under `sourceEntity`. */\n sourceRecordId?: 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 /** Manager's login **user** id — use for `assignedUserIds` / `candidateUserIds`. */\n managerId: string | null;\n /** HumanCapitalManagement.Employee id for the line manager when resolved from org chart. */\n managerEmployeeId: string | null;\n /** Resolved manager employee row (displayName + stored fields). */\n manager: EmployeeOutputShape;\n /** Subject employee under evaluation (whose manager was resolved). */\n employee: EmployeeOutputShape;\n}\n\n/**\n * Assign To Manager Activity (Backend - Mock)\n *\n * Resolves the line-manager **employee** from org chart storage, then the manager's **login user id**\n * (`Employee.userId` or `Person.userId`). Works for any workflow: pass `employeeId`, or `sourceEntity` + `sourceRecordId`\n * for an aggregate that carries an employee FK / nested employee.\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 //#region ---- Employee / manager resolution ----\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 private mapEmployeeRowToOutput(\n emp:\n | ({\n displayName?: string;\n person?: { displayName?: string };\n [key: string]: unknown;\n } & { id?: string })\n | null,\n ): EmployeeOutputShape {\n if (!emp) {\n return { displayName: '' };\n }\n return {\n displayName: emp.person?.displayName ?? emp.displayName ?? '',\n ...emp,\n };\n }\n\n /**\n * Syncs denormalized manager on the subject employee, loads manager employee, returns ids + row shape.\n */\n private async resolveManagerDetails(employeeId: string): Promise<{\n managerUserId: string | null;\n managerEmployeeId: string | null;\n manager: EmployeeOutputShape;\n }> {\n await axcSyncSingleEmployeeDenormalizedOrgFields(\n this.entityStorage,\n OrgRootConfig,\n HcmRootConfig,\n String(employeeId),\n true,\n );\n\n const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, String(employeeId))) as {\n managerId?: string | null;\n } | null;\n\n const managerEmployeeIdRaw = emp?.managerId != null ? String(emp.managerId).trim() : '';\n if (!managerEmployeeIdRaw) {\n return {\n managerUserId: null,\n managerEmployeeId: null,\n manager: { displayName: '' },\n };\n }\n\n const managerEmp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, managerEmployeeIdRaw)) as {\n userId?: string | null;\n personId?: string | null;\n displayName?: string;\n person?: { displayName?: string };\n [key: string]: unknown;\n } | null;\n\n const managerUserId = await this.resolveLoginUserIdForEmployeeRow(managerEmp);\n\n return {\n managerUserId,\n managerEmployeeId: managerEmployeeIdRaw,\n manager: this.mapEmployeeRowToOutput(managerEmp),\n };\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 private async loadSubjectEmployeeOutput(subjectEmployeeId: string): Promise<EmployeeOutputShape> {\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 [key: string]: unknown;\n } | null;\n return emp ? this.mapEmployeeRowToOutput(emp) : { displayName: '' };\n } catch {\n return { displayName: '' };\n }\n }\n\n //#endregion\n\n async execute(input: AssignToManagerInput): Promise<AXPExecuteCommandResult<AssignToManagerOutput>> {\n const sourceEntity = axcOptionalTrimmedString(input.sourceEntity);\n const sourceRecordId = axcOptionalTrimmedString(input.sourceRecordId);\n\n let managerId: string | null = null;\n let managerEmployeeId: string | null = null;\n let manager: EmployeeOutputShape = { displayName: '' };\n let employee: EmployeeOutputShape = { displayName: '' };\n\n let subjectEmployeeId: string | null = null;\n\n const employeeIdFromInput = axcScalarEntityId(input.employeeId);\n\n const applyManagerResolution = async (empId: string): Promise<void> => {\n subjectEmployeeId = empId;\n employee = await this.loadSubjectEmployeeOutput(empId);\n const details = await this.resolveManagerDetails(empId);\n managerId = details.managerUserId;\n managerEmployeeId = details.managerEmployeeId;\n manager = details.manager;\n };\n\n if (employeeIdFromInput) {\n try {\n await applyManagerResolution(employeeIdFromInput);\n } catch {\n // keep defaults\n }\n } else if (sourceEntity && sourceRecordId) {\n try {\n const record = (await this.entityStorage.getOne(sourceEntity, sourceRecordId)) as Record<string, unknown> | null;\n if (record) {\n const { subjectEmployeeId: fromRecord, nestedEmployeeHint, nameHint } =\n axcExtractSubjectEmployeeIdFromRecord(record);\n\n if (fromRecord) {\n await applyManagerResolution(fromRecord);\n if (!employee.displayName && nestedEmployeeHint) {\n employee = {\n ...nestedEmployeeHint,\n displayName: nestedEmployeeHint.displayName || employee.displayName,\n };\n }\n }\n\n if (!employee.displayName && nameHint) {\n employee = {\n ...employee,\n displayName: nameHint,\n };\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 await applyManagerResolution(initiatorEmployeeId);\n } catch {\n // ignore\n }\n }\n }\n\n const fallbackUserId = axcScalarEntityId(input.fallbackUserId);\n if (managerId == null && fallbackUserId) {\n managerId = fallbackUserId;\n }\n\n console.log('[WFM-LifecycleTaskTrace] assign-to-manager', {\n subjectEmployeeId,\n managerEmployeeId,\n managerId,\n fallbackUserId: fallbackUserId ?? null,\n usedSourceRecordPath: !!(sourceEntity && sourceRecordId) && !employeeIdFromInput,\n sourceEntity: sourceEntity ?? null,\n sourceRecordId: sourceRecordId ?? null,\n });\n\n return {\n success: true,\n data: {\n managerId,\n managerEmployeeId,\n manager,\n employee,\n },\n metadata: {\n outcome: 'done',\n },\n };\n }\n}\n"],"names":["HcmRootConfig","PersonRootConfig","OrgRootConfig"],"mappings":";;;;;;;;;AAUA,MAAM,eAAe,GAAGA,UAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;AAC9D,MAAM,aAAa,GAAG,CAAA,EAAGC,YAAgB,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,EAAIA,YAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;AAEhG;AAEA;;AAEG;AACH,SAAS,iBAAiB,CAAC,KAAc,EAAA;IACvC,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACjC,QAAA,OAAO,IAAI;IACb;IACA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC1D,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE;AAC9B,QAAA,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;IAChC;AACA,IAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE;AAChE,QAAA,MAAM,EAAE,GAAI,KAAyB,CAAC,EAAE;QACxC,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE;AAC3B,YAAA,OAAO,IAAI;QACb;QACA,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;AAC3B,QAAA,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI;IAChC;AACA,IAAA,OAAO,IAAI;AACb;AAEA;AACA,SAAS,wBAAwB,CAAC,GAAY,EAAA;IAC5C,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE;AAC7B,QAAA,OAAO,SAAS;IAClB;IACA,MAAM,CAAC,GAAG,OAAO,GAAG,KAAK,QAAQ,GAAG,GAAG,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;AACnE,IAAA,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS;AACrC;AAIA;;AAEG;AACH,SAAS,qCAAqC,CAAC,MAA+B,EAAA;AAK5E,IAAA,MAAM,YAAY,GAAG;QACnB,YAAY;QACZ,oBAAoB;QACpB,mBAAmB;QACnB,qBAAqB;QACrB,iBAAiB;KACT;AAEV,IAAA,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;QAChC,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,EAAE,EAAE;AACN,YAAA,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;QACjF;IACF;IAEA,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAU;AACjE,IAAA,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;AAChC,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAC5B,QAAA,MAAM,EAAE,GAAG,iBAAiB,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,EAAE,EAAE;YACP;QACF;QACA,IAAI,IAAI,GAA+B,IAAI;QAC3C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YACjD,MAAM,CAAC,GAAG,MAIT;AACD,YAAA,IAAI,GAAG;gBACL,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC,WAAW,IAAI,EAAE;AACzD,gBAAA,GAAG,CAAC;aACL;QACH;AACA,QAAA,OAAO,EAAE,iBAAiB,EAAE,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE;IACjF;AAEA,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC;AAC1C,IAAA,MAAM,QAAQ,GACZ,OAAO,WAAW,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK;AACxD,UAAE,WAAW,CAAC,IAAI;AAClB,UAAE,OAAO,WAAW,KAAK,QAAQ;AAC7B,YAAA,WAAW,KAAK,IAAI;AACpB,YAAA,OAAO,IAAK;AACd,cAAE,MAAM,CAAE,WAAqC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI;cACxE,SAAS;IAEjB,OAAO;AACL,QAAA,iBAAiB,EAAE,IAAI;AACvB,QAAA,kBAAkB,EAAE,IAAI;QACxB,QAAQ;KACT;AACH;AA6BA;;;;;;;;;AASG;MAIU,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;AAImB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAC/C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAoO5D,IAAA;;AAhOC;;AAEG;IACK,MAAM,gCAAgC,CAC5C,UAAuE,EAAA;AAEvE,QAAA,MAAM,MAAM,GACV,UAAU,EAAE,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI;QACjH,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,MAAM;QACf;AACA,QAAA,MAAM,QAAQ,GACZ,UAAU,EAAE,QAAQ,IAAI,IAAI,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK;cACnE,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI;cAChC,IAAI;QACV,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,OAAO,IAAI;QACb;AACA,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAsC;AAC9G,YAAA,MAAM,GAAG,GACP,MAAM,EAAE,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,GAAG,IAAI;AACrG,YAAA,OAAO,GAAG;QACZ;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,IAAI;QACb;IACF;AAEQ,IAAA,sBAAsB,CAC5B,GAMQ,EAAA;QAER,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5B;QACA,OAAO;YACL,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE;AAC7D,YAAA,GAAG,GAAG;SACP;IACH;AAEA;;AAEG;IACK,MAAM,qBAAqB,CAAC,UAAkB,EAAA;AAKpD,QAAA,MAAM,0CAA0C,CAC9C,IAAI,CAAC,aAAa,EAClBC,YAAa,EACbF,UAAa,EACb,MAAM,CAAC,UAAU,CAAC,EAClB,IAAI,CACL;AAED,QAAA,MAAM,GAAG,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAEzE;QAER,MAAM,oBAAoB,GAAG,GAAG,EAAE,SAAS,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE;QACvF,IAAI,CAAC,oBAAoB,EAAE;YACzB,OAAO;AACL,gBAAA,aAAa,EAAE,IAAI;AACnB,gBAAA,iBAAiB,EAAE,IAAI;AACvB,gBAAA,OAAO,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;aAC7B;QACH;AAEA,QAAA,MAAM,UAAU,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAMlF;QAER,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,UAAU,CAAC;QAE7E,OAAO;YACL,aAAa;AACb,YAAA,iBAAiB,EAAE,oBAAoB;AACvC,YAAA,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC;SACjD;IACH;IAEQ,MAAM,sBAAsB,CAAC,MAAc,EAAA;AACjD,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,EAAE;AAC7D,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,MAAM,EAAE;AACN,oBAAA,KAAK,EAAE,QAAQ;AACf,oBAAA,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3B,oBAAA,KAAK,EAAE,MAAM;AACd,iBAAA;AACF,aAAA,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAgC;AAC5D,YAAA,OAAO,GAAG,EAAE,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI;QAChD;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,IAAI;QACb;IACF;IAEQ,MAAM,yBAAyB,CAAC,iBAAyB,EAAA;AAC/D,QAAA,IAAI;AACF,YAAA,MAAM,GAAG,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAMxE;AACR,YAAA,OAAO,GAAG,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE;QACrE;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5B;IACF;;IAIA,MAAM,OAAO,CAAC,KAA2B,EAAA;QACvC,MAAM,YAAY,GAAG,wBAAwB,CAAC,KAAK,CAAC,YAAY,CAAC;QACjE,MAAM,cAAc,GAAG,wBAAwB,CAAC,KAAK,CAAC,cAAc,CAAC;QAErE,IAAI,SAAS,GAAkB,IAAI;QACnC,IAAI,iBAAiB,GAAkB,IAAI;AAC3C,QAAA,IAAI,OAAO,GAAwB,EAAE,WAAW,EAAE,EAAE,EAAE;AACtD,QAAA,IAAI,QAAQ,GAAwB,EAAE,WAAW,EAAE,EAAE,EAAE;QAEvD,IAAI,iBAAiB,GAAkB,IAAI;QAE3C,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC;AAE/D,QAAA,MAAM,sBAAsB,GAAG,OAAO,KAAa,KAAmB;YACpE,iBAAiB,GAAG,KAAK;YACzB,QAAQ,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;YACtD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;AACvD,YAAA,SAAS,GAAG,OAAO,CAAC,aAAa;AACjC,YAAA,iBAAiB,GAAG,OAAO,CAAC,iBAAiB;AAC7C,YAAA,OAAO,GAAG,OAAO,CAAC,OAAO;AAC3B,QAAA,CAAC;QAED,IAAI,mBAAmB,EAAE;AACvB,YAAA,IAAI;AACF,gBAAA,MAAM,sBAAsB,CAAC,mBAAmB,CAAC;YACnD;AAAE,YAAA,MAAM;;YAER;QACF;AAAO,aAAA,IAAI,YAAY,IAAI,cAAc,EAAE;AACzC,YAAA,IAAI;AACF,gBAAA,MAAM,MAAM,IAAI,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAmC;gBAChH,IAAI,MAAM,EAAE;AACV,oBAAA,MAAM,EAAE,iBAAiB,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,GACnE,qCAAqC,CAAC,MAAM,CAAC;oBAE/C,IAAI,UAAU,EAAE;AACd,wBAAA,MAAM,sBAAsB,CAAC,UAAU,CAAC;AACxC,wBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,kBAAkB,EAAE;AAC/C,4BAAA,QAAQ,GAAG;AACT,gCAAA,GAAG,kBAAkB;AACrB,gCAAA,WAAW,EAAE,kBAAkB,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW;6BACpE;wBACH;oBACF;AAEA,oBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,QAAQ,EAAE;AACrC,wBAAA,QAAQ,GAAG;AACT,4BAAA,GAAG,QAAQ;AACX,4BAAA,WAAW,EAAE,QAAQ;yBACtB;oBACH;gBACF;YACF;AAAE,YAAA,MAAM;;YAER;QACF;QAEA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE;QAClD,IAAI,SAAS,IAAI,IAAI,IAAI,aAAa,IAAI,CAAC,iBAAiB,EAAE;AAC5D,YAAA,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACpF,IAAI,mBAAmB,EAAE;AACvB,gBAAA,IAAI;AACF,oBAAA,MAAM,sBAAsB,CAAC,mBAAmB,CAAC;gBACnD;AAAE,gBAAA,MAAM;;gBAER;YACF;QACF;QAEA,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC;AAC9D,QAAA,IAAI,SAAS,IAAI,IAAI,IAAI,cAAc,EAAE;YACvC,SAAS,GAAG,cAAc;QAC5B;AAEA,QAAA,OAAO,CAAC,GAAG,CAAC,4CAA4C,EAAE;YACxD,iBAAiB;YACjB,iBAAiB;YACjB,SAAS;YACT,cAAc,EAAE,cAAc,IAAI,IAAI;YACtC,oBAAoB,EAAE,CAAC,EAAE,YAAY,IAAI,cAAc,CAAC,IAAI,CAAC,mBAAmB;YAChF,YAAY,EAAE,YAAY,IAAI,IAAI;YAClC,cAAc,EAAE,cAAc,IAAI,IAAI;AACvC,SAAA,CAAC;QAEF,OAAO;AACL,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,IAAI,EAAE;gBACJ,SAAS;gBACT,iBAAiB;gBACjB,OAAO;gBACP,QAAQ;AACT,aAAA;AACD,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EAAE,MAAM;AAChB,aAAA;SACF;IACH;8GArOW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,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,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;;2FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;;;"}
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-assign-to-manager.activity-Bl5qwPIP.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 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\ntype EmployeeOutputShape = { displayName: string; [key: string]: unknown };\n\n/**\n * Reads subject employee FK from any aggregate row (leave request, lifecycle process, etc.).\n */\nfunction axcExtractSubjectEmployeeIdFromRecord(record: Record<string, unknown>): {\n subjectEmployeeId: string | null;\n nestedEmployeeHint: EmployeeOutputShape | null;\n nameHint: string | undefined;\n} {\n const scalarFields = [\n 'employeeId',\n 'assigneeEmployeeId',\n 'subjectEmployeeId',\n 'requesterEmployeeId',\n 'ownerEmployeeId',\n ] as const;\n\n for (const field of scalarFields) {\n const id = axcScalarEntityId(record[field]);\n if (id) {\n return { subjectEmployeeId: id, nestedEmployeeHint: null, nameHint: undefined };\n }\n }\n\n const nestedFields = ['employee', 'assignee', 'subject'] as const;\n for (const field of nestedFields) {\n const nested = record[field];\n const id = axcScalarEntityId(nested);\n if (!id) {\n continue;\n }\n let hint: EmployeeOutputShape | null = null;\n if (nested !== null && typeof nested === 'object') {\n const o = nested as {\n displayName?: string;\n person?: { displayName?: string };\n [key: string]: unknown;\n };\n hint = {\n displayName: o.person?.displayName ?? o.displayName ?? '',\n ...o,\n };\n }\n return { subjectEmployeeId: id, nestedEmployeeHint: hint, nameHint: undefined };\n }\n\n const nameHintRaw = record['employeeName'];\n const nameHint =\n typeof nameHintRaw === 'string' && nameHintRaw.trim() !== ''\n ? nameHintRaw.trim()\n : typeof nameHintRaw === 'object' &&\n nameHintRaw !== null &&\n 'en-US' in (nameHintRaw as object)\n ? String((nameHintRaw as { 'en-US'?: unknown })['en-US'] ?? '').trim() || undefined\n : undefined;\n\n return {\n subjectEmployeeId: null,\n nestedEmployeeHint: null,\n nameHint,\n };\n}\n\n//#endregion\n\nexport interface AssignToManagerInput {\n /** When set (scalar or `{ id }`), resolves manager for this employee (highest precedence). */\n employeeId?: unknown;\n /**\n * Full entity source key for the workflow aggregate (e.g. `HumanCapitalManagement.LeaveRequest`).\n * Used with `sourceRecordId` when `employeeId` is not set.\n */\n sourceEntity?: unknown;\n /** Primary key of the record under `sourceEntity`. */\n sourceRecordId?: 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 /** Manager's login **user** id — use for `assignedUserIds` / `candidateUserIds`. */\n managerId: string | null;\n /** HumanCapitalManagement.Employee id for the line manager when resolved from org chart. */\n managerEmployeeId: string | null;\n /** Resolved manager employee row (displayName + stored fields). */\n manager: EmployeeOutputShape;\n /** Subject employee under evaluation (whose manager was resolved). */\n employee: EmployeeOutputShape;\n}\n\n/**\n * Assign To Manager Activity (Backend - Mock)\n *\n * Resolves the line-manager **employee** from org chart storage, then the manager's **login user id**\n * (`Employee.userId` or `Person.userId`). Works for any workflow: pass `employeeId`, or `sourceEntity` + `sourceRecordId`\n * for an aggregate that carries an employee FK / nested employee.\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 //#region ---- Employee / manager resolution ----\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 private mapEmployeeRowToOutput(\n emp:\n | ({\n displayName?: string;\n person?: { displayName?: string };\n [key: string]: unknown;\n } & { id?: string })\n | null,\n ): EmployeeOutputShape {\n if (!emp) {\n return { displayName: '' };\n }\n return {\n displayName: emp.person?.displayName ?? emp.displayName ?? '',\n ...emp,\n };\n }\n\n /**\n * Syncs denormalized manager on the subject employee, loads manager employee, returns ids + row shape.\n */\n private async resolveManagerDetails(employeeId: string): Promise<{\n managerUserId: string | null;\n managerEmployeeId: string | null;\n manager: EmployeeOutputShape;\n }> {\n await axcSyncSingleEmployeeDenormalizedOrgFields(\n this.entityStorage,\n OrgRootConfig,\n HcmRootConfig,\n String(employeeId),\n true,\n );\n\n const emp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, String(employeeId))) as {\n managerId?: string | null;\n } | null;\n\n const managerEmployeeIdRaw = emp?.managerId != null ? String(emp.managerId).trim() : '';\n if (!managerEmployeeIdRaw) {\n return {\n managerUserId: null,\n managerEmployeeId: null,\n manager: { displayName: '' },\n };\n }\n\n const managerEmp = (await this.entityStorage.getOne(EMPLOYEE_ENTITY, managerEmployeeIdRaw)) as {\n userId?: string | null;\n personId?: string | null;\n displayName?: string;\n person?: { displayName?: string };\n [key: string]: unknown;\n } | null;\n\n const managerUserId = await this.resolveLoginUserIdForEmployeeRow(managerEmp);\n\n return {\n managerUserId,\n managerEmployeeId: managerEmployeeIdRaw,\n manager: this.mapEmployeeRowToOutput(managerEmp),\n };\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 private async loadSubjectEmployeeOutput(subjectEmployeeId: string): Promise<EmployeeOutputShape> {\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 [key: string]: unknown;\n } | null;\n return emp ? this.mapEmployeeRowToOutput(emp) : { displayName: '' };\n } catch {\n return { displayName: '' };\n }\n }\n\n //#endregion\n\n async execute(input: AssignToManagerInput): Promise<AXPExecuteCommandResult<AssignToManagerOutput>> {\n const sourceEntity = axcOptionalTrimmedString(input.sourceEntity);\n const sourceRecordId = axcOptionalTrimmedString(input.sourceRecordId);\n\n let managerId: string | null = null;\n let managerEmployeeId: string | null = null;\n let manager: EmployeeOutputShape = { displayName: '' };\n let employee: EmployeeOutputShape = { displayName: '' };\n\n let subjectEmployeeId: string | null = null;\n\n const employeeIdFromInput = axcScalarEntityId(input.employeeId);\n\n const applyManagerResolution = async (empId: string): Promise<void> => {\n subjectEmployeeId = empId;\n employee = await this.loadSubjectEmployeeOutput(empId);\n const details = await this.resolveManagerDetails(empId);\n managerId = details.managerUserId;\n managerEmployeeId = details.managerEmployeeId;\n manager = details.manager;\n };\n\n if (employeeIdFromInput) {\n try {\n await applyManagerResolution(employeeIdFromInput);\n } catch {\n // keep defaults\n }\n } else if (sourceEntity && sourceRecordId) {\n try {\n const record = (await this.entityStorage.getOne(sourceEntity, sourceRecordId)) as Record<string, unknown> | null;\n if (record) {\n const { subjectEmployeeId: fromRecord, nestedEmployeeHint, nameHint } =\n axcExtractSubjectEmployeeIdFromRecord(record);\n\n if (fromRecord) {\n await applyManagerResolution(fromRecord);\n if (!employee.displayName && nestedEmployeeHint) {\n employee = {\n ...nestedEmployeeHint,\n displayName: nestedEmployeeHint.displayName || employee.displayName,\n };\n }\n }\n\n if (!employee.displayName && nameHint) {\n employee = {\n ...employee,\n displayName: nameHint,\n };\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 await applyManagerResolution(initiatorEmployeeId);\n } catch {\n // ignore\n }\n }\n }\n\n const fallbackUserId = axcScalarEntityId(input.fallbackUserId);\n if (managerId == null && fallbackUserId) {\n managerId = fallbackUserId;\n }\n\n console.log('[WFM-LifecycleTaskTrace] assign-to-manager', {\n subjectEmployeeId,\n managerEmployeeId,\n managerId,\n fallbackUserId: fallbackUserId ?? null,\n usedSourceRecordPath: !!(sourceEntity && sourceRecordId) && !employeeIdFromInput,\n sourceEntity: sourceEntity ?? null,\n sourceRecordId: sourceRecordId ?? null,\n });\n\n return {\n success: true,\n data: {\n managerId,\n managerEmployeeId,\n manager,\n employee,\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, a as AXMAiModelStableIds } from './acorex-connectivity-mock-acorex-connectivity-mock-
|
|
6
|
+
import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, a as AXMAiModelStableIds } from './acorex-connectivity-mock-acorex-connectivity-mock-CPvIJXWl.mjs';
|
|
7
7
|
|
|
8
8
|
//#region ---- Imports ----
|
|
9
9
|
function parseGenerateImageInput(args) {
|
|
@@ -105,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
105
105
|
}] });
|
|
106
106
|
|
|
107
107
|
export { AiManagementChatGenerateImageCommand };
|
|
108
|
-
//# sourceMappingURL=acorex-connectivity-mock-chat-generate-image.command-
|
|
108
|
+
//# sourceMappingURL=acorex-connectivity-mock-chat-generate-image.command-B5IoaRXb.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-connectivity-mock-chat-generate-image.command-
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-chat-generate-image.command-B5IoaRXb.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, b as resolveDelegatedAssistOptionString } from './acorex-connectivity-mock-acorex-connectivity-mock-
|
|
6
|
+
import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, b as resolveDelegatedAssistOptionString } from './acorex-connectivity-mock-acorex-connectivity-mock-CPvIJXWl.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-
|
|
130
|
+
//# sourceMappingURL=acorex-connectivity-mock-chat-synthesize-speech.command-C1fGlYi6.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-connectivity-mock-chat-synthesize-speech.command-D3NPqs6A.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-C1fGlYi6.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, b as resolveDelegatedAssistOptionString } from './acorex-connectivity-mock-acorex-connectivity-mock-
|
|
6
|
+
import { A as AXCAiChatRouterService, r as resolveDelegatedAssistOptionModel, b as resolveDelegatedAssistOptionString } from './acorex-connectivity-mock-acorex-connectivity-mock-CPvIJXWl.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-
|
|
110
|
+
//# sourceMappingURL=acorex-connectivity-mock-chat-transcribe-speech.command-Dhe8T9vA.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-connectivity-mock-chat-transcribe-speech.command-
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-chat-transcribe-speech.command-Dhe8T9vA.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,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
|
-
import { m as mockUsers } from './acorex-connectivity-mock-acorex-connectivity-mock-
|
|
3
|
+
import { m as mockUsers } from './acorex-connectivity-mock-acorex-connectivity-mock-CPvIJXWl.mjs';
|
|
4
4
|
|
|
5
5
|
//#endregion
|
|
6
6
|
/**
|
|
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
27
27
|
}] });
|
|
28
28
|
|
|
29
29
|
export { UserRolesForListColumnQuery };
|
|
30
|
-
//# sourceMappingURL=acorex-connectivity-mock-user-roles-for-list-column.query-
|
|
30
|
+
//# sourceMappingURL=acorex-connectivity-mock-user-roles-for-list-column.query-DOXlY-R3.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-connectivity-mock-user-roles-for-list-column.query-
|
|
1
|
+
{"version":3,"file":"acorex-connectivity-mock-user-roles-for-list-column.query-DOXlY-R3.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 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;QACjD,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;8GAXW,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,3 +1,3 @@
|
|
|
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 APPLICATION_CATEGORY_IDS, k as APPLICATION_CATEGORY_MOCKS, l as AXCActivityCategorySeeder, n as AXCActivityDefinitionSeeder, o as AXCAiAssistSeeder, p as AXCAiManagementMockModule, q as AXCAiModelSeeder, s as AXCAppTermDataSeeder, t as AXCAppVersionDataSeeder, u as AXCApplicationCategoryDataSeeder, v as AXCApplicationDataSeeder, w as AXCApplicationManagementMockModule, x as AXCAssessmentManagementMockModule, y as AXCAssetManagementMockModule, z as AXCAuthMockModule, B as AXCCalendarDataSeeder, C as AXCCalendarEventDataSeeder, D as AXCCalendarManagementMockModule, E as AXCCommandRegistryDataSeeder, F as AXCCommonMockModule, G as AXCContactCoreMockModule, H as AXCContentManagementMockModule, I as AXCConversationDataSeeder, J as AXCConversationMockConversationApi, K as AXCConversationMockMessageApi, L as AXCConversationMockModule, M as AXCConversationMockRealtimeApi, N as AXCConversationMockUserApi, O as AXCCustomerManagementMockModule, P as AXCDashboardManagementMockModule, Q as AXCDataManagementMockModule, R as AXCDexieEntityStorageService, S as AXCDocumentManagementMockModule, T as AXCEditionDataSeeder, U as AXCEntityDefinitionSeederService, V as AXCEntityDefinitionsModule, W as AXCEntityStorageInsertCommand, X as AXCEntityStorageModule, Y as AXCEntityStorageQueryQuery, Z as AXCFileStorageServiceDexie, _ as AXCFileStorageServiceFirestore, $ as AXCFinancialCoreMockModule, a0 as AXCFirestoreEntityStorageService, a1 as AXCFormTemplateManagementMockModule, a2 as AXCGoogleStrategyMock, a3 as AXCHealthCoreMockModule, a4 as AXCHelpDeskMockModule, a5 as AXCHumanCapitalManagementMockModule, a6 as AXCIdentifierManagementMockModule, a7 as AXCImageCaptchaChallengeProviderMock, a8 as AXCLearningManagementMockModule, a9 as AXCLocaleManagementMockModule, aa as AXCLocationManagementMockModule, ab as AXCLockService, ac as AXCMeasurementCoreMockModule, ad as AXCMeetingManagementMockModule, ae as AXCMetaDataDefinitionDataSeeder, af as AXCMetadataCategorySeeder, ag as AXCMiddlewaresModule, ah as AXCMockCaptchaChallengeComponent, ai as AXCMockEntityLogListener, aj as AXCMockModule, ak as AXCMockShowMetaDataFormPopupCommand, al as AXCNotificationManagementMockModule, am as AXCOrderManagementMockModule, an as AXCOrganizationManagementMockModule, ao as AXCPersonCoreMockModule, ap as AXCPlatformManagementMockModule, aq as AXCProcurementManagementMockModule, ar as AXCProductCatalogMockModule, as as AXCProjectManagementMockModule, at as AXCQueryRegistryDataSeeder, au as AXCReportManagementMockModule, av as AXCSecurityManagementMockModule, aw as AXCStoredEntityDefinitionLoader, ax as AXCSubscriptionManagementMockModule, ay as AXCSupplierManagementMockModule, az as AXCTaskManagementMockModule, aA as AXCTenantManagementMockModule, aB as AXCTenantSeeder, aC as AXCTextTemplateRenderBackend, aD as AXCTokensDataSeeder, aE as AXCUserPassStrategyMock, aF as AXCVersionDB, aG as AXCVersioningService, aH as AXCWidgetCatalogDataSeeder, aI as AXCWorkflowCategorySeeder, aJ as AXCWorkflowDefinitionDataSeeder, aK as AXCWorkflowEngine, aL as AXCWorkflowExecutionDB, aM as AXCWorkflowExecutionStoreDexie, aN as AXCWorkflowExecutionStoreFirestore, aO as AXCWorkflowInstanceCartableDemoSeeder, aP as AXCWorkflowManagementMockModule, aQ as AXC_ENTITY_STORAGE_BACKEND_TYPE, aR as AXC_FIRESTORE_CONFIG, aS as AXC_FIRESTORE_DB, aT as AXC_WORKFLOW_EXECUTION_STORE, aU as AXMAiDemisAssistantAssistId, a as AXMAiModelStableIds, aV as AXMAiPlatformAssistantAssistId, aW as AXMAutomationDataSeeder, aX as AXMBusinessUnitDataSeeder, aY as AXMCalendarEventTypeSeeder, aZ as AXMDashboardChartDataSourceDefinition, a_ as AXMEmployeeDataSeeder, a$ as AXMEmploymentTypeDataSeeder, b0 as AXMFormDataSourcesProvider, b1 as AXMJobDefinitionDataSeeder, b2 as AXMJobLevelDataSeeder, b3 as AXMLeaveRequestDataSeeder, b4 as AXMMeetingDataSeeder, b5 as AXMMeetingFilesDataSeeder, b6 as AXMMeetingParticipantDataSeeder, b7 as AXMMeetingRoleTypeDataSeeder, b8 as AXMMeetingSessionDataSeeder, b9 as AXMMeetingTypeDataSeeder, ba as AXMMeetingTypeFileTemplateDataSeeder, bb as AXMPositionAssignmentDataSeeder, bc as AXMPositionDataSeeder, bd as AXMQuestionBankItemCategoryDataSeeder, be as AXMQuestionBankItemDataSeeder, bf as AXMQuestionnaireCalculationDataSeeder, bg as AXMQuestionnaireCategoryDataSeeder, bh as AXMQuestionnaireDataSeeder, bi as AXMResponsibilityDataSeeder, bj as AXMTagDataSeeder, bk as AXMTeamBusinessUnitDataSeeder, bl as AXMTeamDataSeeder, bm as AXMTeamMemberDataSeeder, bn as AXMTeamMemberRoleDataSeeder, bo as AXMWorkflowDashboardChartDataSourceDefinition, bp as AXM_AI_REGISTRY_COMMAND_NAME, bq as AXM_AI_REGISTRY_QUERY_NAME, br as AXM_CORPORATE_BUSINESS_UNIT_ID, bs as AXPDashboardDataSeeder, bt as AXPIdentifierDB, bu as AXPMessageDataSeeder, bv as AXPMockChecksumProvider, bw as AXPMockClockProvider, bx as AXPMockIdentifierService, by as AXPMockLookupProvider, bz as AXPMockPolicyProvider, bA as AXPMockSequenceProvider, bB as AXPRoomDataSeeder, bC as AXPSecurityManagementRoleDataSeeder, bD as AXPSecurityManagementUserDataSeeder, bE as AXPTaskBoardPlatformManagementTaskProvider, bF as AXPTaskBoardProjectManagementTaskProvider, bG as AXVChangeType, bH as BCC, bI as BOC, bJ as BUSINESS_UNITS_MOCK, bK as CHAT_LAST_MESSAGE_IDS, bL as COSTMANAGER_ENTERPRISE, bM as COSTMANAGER_PROFESSIONAL, bN as COSTMANAGER_STANDARD, bO as CP, bP as CRM_ENTERPRISE, bQ as DASHBOARDS, bR as EDITIONS, bS as EMPLOYEES_MOCK, bT as EMPLOYMENT_TYPES_MOCK, bU as ENTITY_DEFINITION_MAP, bV as ENTITY_REGISTRY, bW as FINANCE_BASIC, bX as FINANCE_ENTERPRISE, bY as FINANCE_PRO, bZ as G, b_ as HR_ENTERPRISE, b$ as HW, c0 as JOB_DEFINITIONS_CATEGORY_MOCK, c1 as JOB_DEFINITIONS_MOCK, c2 as JOB_DEFINITION_CATEGORY_KEY_TO_ID, c3 as JOB_LEVELS_MOCK, c4 as LASER_PLUMBING_TENANT_ID, c5 as LEAVE_REQUESTS_MOCK, c6 as METADATA_CATEGORY_IDS, c7 as METADATA_GENERAL_CATEGORY_REFS, c8 as METADATA_SYSTEM_CATEGORY_REFS, c9 as MLC, ca as OHR, cb as ORDERING_BASIC, cc as ORDERING_ENTERPRISE, cd as ORDERING_STANDARD, ce as OWNERSHIP_FILTER_BYPASS, cf as PLATFORM_CONSOLE, cg as PLATFORM_TENANT_ID, ch as PM, ci as POSITIONS_CATEGORY_MOCK, cj as POSITIONS_MOCK, ck as POSITION_ASSIGNMENTS_MOCK, cl as QCP, cm as QGEN, cn as QHW, co as QOHR, cp as QPM, cq as QTLE, cr as QUESTIONNAIRE_CATEGORY_MOCK, cs as QUESTION_BANK_ITEM_CATEGORY_MOCK, ct as QWS, cu as RESPONSIBILITIES_CATEGORY_MOCK, cv as RESPONSIBILITIES_MOCK, cw as RESPONSIBILITY_CATEGORY_KEY_TO_ID, cx as SAFETYMINDER_BASIC, cy as SAFETYMINDER_ENTERPRISE, cz as SAFETYMINDER_PROFESSIONAL, cA as SHOP_BASIC, cB as SHOP_ENTERPRISE, cC as SHOP_PRO, cD as TAGS_MOCK, cE as TASKS, cF as TASK_STATUSES, cG as TASK_TEMPLATES, cH as TASK_TYPES, cI as TEAMS_CATEGORY_MOCK, cJ as TEAMS_MOCK, cK as TEAM_BUSINESS_UNITS_MOCK, cL as TEAM_CATEGORY_KEY_TO_ID, cM as TEAM_MEMBERS_MOCK, cN as TEAM_MEMBER_ROLES_MOCK, cO as TIMEPLICITY_TENANT_ID, cP as TLA, cQ as TOKENS, cR as TPC, cS as VISIBILITY_FILTER_BYPASS, cT as WORKFLOW_CATEGORIES, cU as WS, cV as activityCategoryMocks, cW as activityDefinitionEntityMock, cX as applyEntityDefinitionFirestoreSnapshot, cY as automationCommandMiddleware, cZ as automationMock, c_ as avatarInterface, c$ as awaitConversationMockSharedStorage, d0 as axVersionDB, d1 as axWorkflowExecutionDB, d2 as axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows, d3 as axcPatchEmployeeActivePrimaryPositionRefsFromRows, d4 as axcPatchEmployeeManagerRefsFromRows, d5 as axcResolveCommandRegistrySeedId, d6 as axcResolveQueryRegistrySeedId, d7 as axcResolveWidgetCatalogSeedId, d8 as bankCategory, d9 as buildEntityStorageQuickSearchFilter, da as buildWorkflowInstanceCartableDemoRows, db as bypassAllFilters, dc as bypassOwnershipFilter, dd as bypassVisibilityFilter, de as calendarEventMock, df as calendarEventTypeMockData, dg as calendarMock, dh as chatMessageMock, di as chatMock, dj as checkboxInterface, dk as childCountMiddleware, dl as clearEntityDefinitionFirestoreCollections, dm as colorInterface, dn as computeDiff, dp as contactInterface, dq as conversationDemoSeedUserIds, dr as createFileCastMiddleware, ds as createWidgetLayoutConfig, dt as dateInterface, du as dateTimeInterface, dv as descriptionInterface, dw as documentFolderSyncMiddleware, dx as emailInterface, dy as entityDefDb, dz as entityValidationMiddleware, dA as fileUploaderInterface, dB as finalizeActivityCategoryItemCounts, dC as findEmployeeById, dD as folderStorageMiddleware, dE as groupOrderItemCalculatorMiddleware, dF as historyMiddleware, dG as identifierCommitMiddleware, dH as imageInterface, dI as inspectionOkXNaInterface, dJ as loadMockPropertyDefinitions, dK as lockGuardMiddleware, dL as longTextAnswerInterface, dM as lookupInterface, dN as lookupResolverMiddleware, dO as mapInterface, dP as meetingFilesMock, dQ as meetingIds, dR as meetingMock, dS as meetingParticipantMock, dT as meetingRoleTypeMock, dU as meetingSessionMock, dV as meetingTimeSlotMock, dW as meetingTypeFileTemplateMock, dX as meetingTypeMock, dY as mergeDetailRelationMiddleware, dZ as mergeQuickSearchIntoRequest, d_ as metadataCategoryMocks, d$ as mockParticipantIndexForSecurityUserId, e0 as mockQuestionBankItemByName, e1 as mockRoleDefinitions, m as mockUsers, e2 as multipleChoiceInterface, e3 as multipleSelectInterface, e4 as normalizeAnyFileArrayForView, e5 as normalizeSnapshotFileFieldsForView, e6 as numberInterface, e7 as parseEntityStorageInsertData, e8 as parseEntityStorageQueryRequest, e9 as participantIds, ea as participantMock, eb as passwordInterface, ec as personIdentifierTypeMock, ed as personIds, ee as personLegalIds, ef as personMock, eg as personNaturalIds, eh as phoneInterface, ei as primaryMiddleware, ej as provideMockPropertySetups, ek as qrcodeInterface, el as questionBankItemMock, em as questionnaireCalculationMock, en as questionnaireMock, eo as ratingInterface, ep as richTextInterface, eq as scaleInterface, er as selectInterface, es as selectionListInterface, et as sexAtBirthInterface, eu as signatureInterface, ev as signatureLoaderMiddleware, ew as statusDefaultMiddleware, ex as tagInterface, ey as tenantMocks, ez as textAreaInterface, eA as textInterface, eB as timeDurationInterface, eC as titleInterface, eD as toUiRows, eE as toggleInterface, eF as tokenCategoryIds, eG as tokenCategoryMocks, eH as urlInterface, eI as versionInterface, eJ as visibilityFilterMiddleware, eK as workflowDefinitionEntityMock, eL as workflowDefinitionIds, eM as workflowDefinitionMock, eN as yesNoInterface } from './acorex-connectivity-mock-acorex-connectivity-mock-D8bzYltA.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 APPLICATION_CATEGORY_IDS, k as APPLICATION_CATEGORY_MOCKS, l as AXCActivityCategorySeeder, n as AXCActivityDefinitionSeeder, o as AXCAiAssistSeeder, p as AXCAiManagementMockModule, q as AXCAiModelSeeder, s as AXCAppTermDataSeeder, t as AXCAppVersionDataSeeder, u as AXCApplicationCategoryDataSeeder, v as AXCApplicationDataSeeder, w as AXCApplicationManagementMockModule, x as AXCAssessmentManagementMockModule, y as AXCAssetManagementMockModule, z as AXCAuthMockModule, B as AXCCalendarDataSeeder, C as AXCCalendarEventDataSeeder, D as AXCCalendarManagementMockModule, E as AXCCommandRegistryDataSeeder, F as AXCCommonMockModule, G as AXCContactCoreMockModule, H as AXCContentManagementMockModule, I as AXCConversationDataSeeder, J as AXCConversationMockConversationApi, K as AXCConversationMockMessageApi, L as AXCConversationMockModule, M as AXCConversationMockRealtimeApi, N as AXCConversationMockUserApi, O as AXCCustomerManagementMockModule, P as AXCDashboardManagementMockModule, Q as AXCDataManagementMockModule, R as AXCDexieEntityStorageService, S as AXCDocumentManagementMockModule, T as AXCEditionDataSeeder, U as AXCEntityDefinitionSeederService, V as AXCEntityDefinitionsModule, W as AXCEntityStorageInsertCommand, X as AXCEntityStorageModule, Y as AXCEntityStorageQueryQuery, Z as AXCFileStorageServiceDexie, _ as AXCFileStorageServiceFirestore, $ as AXCFinancialCoreMockModule, a0 as AXCFirestoreEntityStorageService, a1 as AXCFormTemplateManagementMockModule, a2 as AXCGoogleStrategyMock, a3 as AXCHealthCoreMockModule, a4 as AXCHelpDeskMockModule, a5 as AXCHumanCapitalManagementMockModule, a6 as AXCIdentifierManagementMockModule, a7 as AXCImageCaptchaChallengeProviderMock, a8 as AXCLearningManagementMockModule, a9 as AXCLocaleManagementMockModule, aa as AXCLocationManagementMockModule, ab as AXCLockService, ac as AXCMeasurementCoreMockModule, ad as AXCMeetingManagementMockModule, ae as AXCMetaDataDefinitionDataSeeder, af as AXCMetadataCategorySeeder, ag as AXCMiddlewaresModule, ah as AXCMockCaptchaChallengeComponent, ai as AXCMockEntityLogListener, aj as AXCMockModule, ak as AXCMockShowMetaDataFormPopupCommand, al as AXCNotificationManagementMockModule, am as AXCOrderManagementMockModule, an as AXCOrganizationManagementMockModule, ao as AXCPersonCoreMockModule, ap as AXCPlatformManagementMockModule, aq as AXCProcurementManagementMockModule, ar as AXCProductCatalogMockModule, as as AXCProjectManagementMockModule, at as AXCQueryRegistryDataSeeder, au as AXCReportManagementMockModule, av as AXCSecurityManagementMockModule, aw as AXCStoredEntityDefinitionLoader, ax as AXCSubscriptionManagementMockModule, ay as AXCSupplierManagementMockModule, az as AXCTaskManagementMockModule, aA as AXCTenantManagementMockModule, aB as AXCTenantSeeder, aC as AXCTextTemplateRenderBackend, aD as AXCTokensDataSeeder, aE as AXCUserPassStrategyMock, aF as AXCVersionDB, aG as AXCVersioningService, aH as AXCWidgetCatalogDataSeeder, aI as AXCWorkflowCategorySeeder, aJ as AXCWorkflowDefinitionDataSeeder, aK as AXCWorkflowEngine, aL as AXCWorkflowExecutionDB, aM as AXCWorkflowExecutionStoreDexie, aN as AXCWorkflowExecutionStoreFirestore, aO as AXCWorkflowInstanceCartableDemoSeeder, aP as AXCWorkflowManagementMockModule, aQ as AXC_ENTITY_STORAGE_BACKEND_TYPE, aR as AXC_FIRESTORE_CONFIG, aS as AXC_FIRESTORE_DB, aT as AXC_WORKFLOW_EXECUTION_STORE, a as AXMAiModelStableIds, aU as AXMAiPlatformAssistantAssistId, aV as AXMAutomationDataSeeder, aW as AXMBusinessUnitDataSeeder, aX as AXMCalendarEventTypeSeeder, aY as AXMDashboardChartDataSourceDefinition, aZ as AXMEmployeeDataSeeder, a_ as AXMEmploymentTypeDataSeeder, a$ as AXMFormDataSourcesProvider, b0 as AXMJobDefinitionDataSeeder, b1 as AXMJobLevelDataSeeder, b2 as AXMLeaveRequestDataSeeder, b3 as AXMMeetingDataSeeder, b4 as AXMMeetingFilesDataSeeder, b5 as AXMMeetingParticipantDataSeeder, b6 as AXMMeetingRoleTypeDataSeeder, b7 as AXMMeetingSessionDataSeeder, b8 as AXMMeetingTypeDataSeeder, b9 as AXMMeetingTypeFileTemplateDataSeeder, ba as AXMPositionAssignmentDataSeeder, bb as AXMPositionDataSeeder, bc as AXMQuestionBankItemCategoryDataSeeder, bd as AXMQuestionBankItemDataSeeder, be as AXMQuestionnaireCalculationDataSeeder, bf as AXMQuestionnaireCategoryDataSeeder, bg as AXMQuestionnaireDataSeeder, bh as AXMResponsibilityDataSeeder, bi as AXMTagDataSeeder, bj as AXMTeamBusinessUnitDataSeeder, bk as AXMTeamDataSeeder, bl as AXMTeamMemberDataSeeder, bm as AXMTeamMemberRoleDataSeeder, bn as AXMWorkflowDashboardChartDataSourceDefinition, bo as AXM_AI_REGISTRY_COMMAND_NAME, bp as AXM_AI_REGISTRY_QUERY_NAME, bq as AXM_CORPORATE_BUSINESS_UNIT_ID, br as AXPDashboardDataSeeder, bs as AXPIdentifierDB, bt as AXPMessageDataSeeder, bu as AXPMockChecksumProvider, bv as AXPMockClockProvider, bw as AXPMockIdentifierService, bx as AXPMockLookupProvider, by as AXPMockPolicyProvider, bz as AXPMockSequenceProvider, bA as AXPRoomDataSeeder, bB as AXPSecurityManagementRoleDataSeeder, bC as AXPSecurityManagementUserDataSeeder, bD as AXPTaskBoardPlatformManagementTaskProvider, bE as AXPTaskBoardProjectManagementTaskProvider, bF as AXVChangeType, bG as BCC, bH as BOC, bI as BUSINESS_UNITS_MOCK, bJ as CHAT_LAST_MESSAGE_IDS, bK as COSTMANAGER_ENTERPRISE, bL as COSTMANAGER_PROFESSIONAL, bM as COSTMANAGER_STANDARD, bN as CP, bO as CRM_ENTERPRISE, bP as DASHBOARDS, bQ as EDITIONS, bR as EMPLOYEES_MOCK, bS as EMPLOYMENT_TYPES_MOCK, bT as ENTITY_DEFINITION_MAP, bU as ENTITY_REGISTRY, bV as FINANCE_BASIC, bW as FINANCE_ENTERPRISE, bX as FINANCE_PRO, bY as G, bZ as HR_ENTERPRISE, b_ as HW, b$ as JOB_DEFINITIONS_CATEGORY_MOCK, c0 as JOB_DEFINITIONS_MOCK, c1 as JOB_DEFINITION_CATEGORY_KEY_TO_ID, c2 as JOB_LEVELS_MOCK, c3 as LASER_PLUMBING_TENANT_ID, c4 as LEAVE_REQUESTS_MOCK, c5 as METADATA_CATEGORY_IDS, c6 as METADATA_GENERAL_CATEGORY_REFS, c7 as METADATA_SYSTEM_CATEGORY_REFS, c8 as MLC, c9 as OHR, ca as ORDERING_BASIC, cb as ORDERING_ENTERPRISE, cc as ORDERING_STANDARD, cd as OWNERSHIP_FILTER_BYPASS, ce as PLATFORM_CONSOLE, cf as PLATFORM_TENANT_ID, cg as PM, ch as POSITIONS_CATEGORY_MOCK, ci as POSITIONS_MOCK, cj as POSITION_ASSIGNMENTS_MOCK, ck as QCP, cl as QGEN, cm as QHW, cn as QOHR, co as QPM, cp as QTLE, cq as QUESTIONNAIRE_CATEGORY_MOCK, cr as QUESTION_BANK_ITEM_CATEGORY_MOCK, cs as QWS, ct as RESPONSIBILITIES_CATEGORY_MOCK, cu as RESPONSIBILITIES_MOCK, cv as RESPONSIBILITY_CATEGORY_KEY_TO_ID, cw as SAFETYMINDER_BASIC, cx as SAFETYMINDER_ENTERPRISE, cy as SAFETYMINDER_PROFESSIONAL, cz as SHOP_BASIC, cA as SHOP_ENTERPRISE, cB as SHOP_PRO, cC as TAGS_MOCK, cD as TASKS, cE as TASK_STATUSES, cF as TASK_TEMPLATES, cG as TASK_TYPES, cH as TEAMS_CATEGORY_MOCK, cI as TEAMS_MOCK, cJ as TEAM_BUSINESS_UNITS_MOCK, cK as TEAM_CATEGORY_KEY_TO_ID, cL as TEAM_MEMBERS_MOCK, cM as TEAM_MEMBER_ROLES_MOCK, cN as TIMEPLICITY_TENANT_ID, cO as TLA, cP as TOKENS, cQ as TPC, cR as VISIBILITY_FILTER_BYPASS, cS as WORKFLOW_CATEGORIES, cT as WS, cU as activityCategoryMocks, cV as activityDefinitionEntityMock, cW as applyEntityDefinitionFirestoreSnapshot, cX as automationCommandMiddleware, cY as automationMock, cZ as avatarInterface, c_ as awaitConversationMockSharedStorage, c$ as axVersionDB, d0 as axWorkflowExecutionDB, d1 as axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows, d2 as axcPatchEmployeeActivePrimaryPositionRefsFromRows, d3 as axcPatchEmployeeManagerRefsFromRows, d4 as axcResolveCommandRegistrySeedId, d5 as axcResolveQueryRegistrySeedId, d6 as axcResolveWidgetCatalogSeedId, d7 as bankCategory, d8 as buildEntityStorageQuickSearchFilter, d9 as buildWorkflowInstanceCartableDemoRows, da as bypassAllFilters, db as bypassOwnershipFilter, dc as bypassVisibilityFilter, dd as calendarEventMock, de as calendarEventTypeMockData, df as calendarMock, dg as chatMessageMock, dh as chatMock, di as checkboxInterface, dj as childCountMiddleware, dk as clearEntityDefinitionFirestoreCollections, dl as colorInterface, dm as computeDiff, dn as contactInterface, dp as conversationDemoSeedUserIds, dq as createFileCastMiddleware, dr as createWidgetLayoutConfig, ds as dateInterface, dt as dateTimeInterface, du as descriptionInterface, dv as documentFolderSyncMiddleware, dw as emailInterface, dx as entityDefDb, dy as entityValidationMiddleware, dz as fileUploaderInterface, dA as finalizeActivityCategoryItemCounts, dB as findEmployeeById, dC as folderStorageMiddleware, dD as groupOrderItemCalculatorMiddleware, dE as historyMiddleware, dF as identifierCommitMiddleware, dG as imageInterface, dH as inspectionOkXNaInterface, dI as loadMockPropertyDefinitions, dJ as lockGuardMiddleware, dK as longTextAnswerInterface, dL as lookupInterface, dM as lookupResolverMiddleware, dN as mapInterface, dO as meetingFilesMock, dP as meetingIds, dQ as meetingMock, dR as meetingParticipantMock, dS as meetingRoleTypeMock, dT as meetingSessionMock, dU as meetingTimeSlotMock, dV as meetingTypeFileTemplateMock, dW as meetingTypeMock, dX as mergeDetailRelationMiddleware, dY as mergeQuickSearchIntoRequest, dZ as metadataCategoryMocks, d_ as mockParticipantIndexForSecurityUserId, d$ as mockQuestionBankItemByName, e0 as mockRoleDefinitions, m as mockUsers, e1 as multipleChoiceInterface, e2 as multipleSelectInterface, e3 as normalizeAnyFileArrayForView, e4 as normalizeSnapshotFileFieldsForView, e5 as numberInterface, e6 as parseEntityStorageInsertData, e7 as parseEntityStorageQueryRequest, e8 as participantIds, e9 as participantMock, ea as passwordInterface, eb as personIdentifierTypeMock, ec as personIds, ed as personLegalIds, ee as personMock, ef as personNaturalIds, eg as phoneInterface, eh as primaryMiddleware, ei as provideMockPropertySetups, ej as qrcodeInterface, ek as questionBankItemMock, el as questionnaireCalculationMock, em as questionnaireMock, en as ratingInterface, eo as richTextInterface, ep as scaleInterface, eq as selectInterface, er as selectionListInterface, es as sexAtBirthInterface, et as signatureInterface, eu as signatureLoaderMiddleware, ev as statusDefaultMiddleware, ew as tagInterface, ex as tenantMocks, ey as textAreaInterface, ez as textInterface, eA as timeDurationInterface, eB as titleInterface, eC as toUiRows, eD as toggleInterface, eE as tokenCategoryIds, eF as tokenCategoryMocks, eG as urlInterface, eH as versionInterface, eI as visibilityFilterMiddleware, eJ as workflowDefinitionEntityMock, eK as workflowDefinitionIds, eL as workflowDefinitionMock, eM as yesNoInterface } from './acorex-connectivity-mock-acorex-connectivity-mock-CPvIJXWl.mjs';
|
|
2
2
|
export { AXC_TEXT_TEMPLATE_RENDER_COMMAND_KEY } from '@acorex/modules/content-management';
|
|
3
3
|
//# 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.
|
|
3
|
+
"version": "21.0.0-next.46",
|
|
4
4
|
"peerDependencies": {
|
|
5
|
-
"@acorex/modules": "21.0.0-next.
|
|
5
|
+
"@acorex/modules": "21.0.0-next.46"
|
|
6
6
|
},
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"module": "fesm2022/acorex-connectivity.mjs",
|
|
@@ -1004,8 +1004,6 @@ interface AXMAiManagementAssistMockModel extends AXMAiManagementAssistEntityMode
|
|
|
1004
1004
|
}
|
|
1005
1005
|
/** Deterministic id for the platform assistant assist row. */
|
|
1006
1006
|
declare const AXMAiPlatformAssistantAssistId = "b0000001-0000-4000-8000-000000000001";
|
|
1007
|
-
/** Deterministic id for the Demis AI assistant assist row (mirror of platform assistant, lighter delegation). */
|
|
1008
|
-
declare const AXMAiDemisAssistantAssistId = "b0000001-0000-4000-8000-000000000004";
|
|
1009
1007
|
declare const AI_ASSIST_MOCK: AXMAiManagementAssistMockModel[];
|
|
1010
1008
|
|
|
1011
1009
|
declare class AXCAiAssistSeeder implements AXPDataSeeder {
|
|
@@ -2647,6 +2645,7 @@ declare class AXCConversationMockMessageApi extends AXMChatMessageApi {
|
|
|
2647
2645
|
private readonly entityService;
|
|
2648
2646
|
private readonly notificationService;
|
|
2649
2647
|
private readonly assistRowData;
|
|
2648
|
+
private readonly agentRowData;
|
|
2650
2649
|
sendMessage(command: AXSendMessageCommand): Promise<AXMessage>;
|
|
2651
2650
|
getMessage(messageId: string): Promise<AXMessage>;
|
|
2652
2651
|
getMessages(conversationId: string, pagination: AXPagination): Promise<AXPaginatedResult<AXMessage>>;
|
|
@@ -2703,11 +2702,11 @@ declare class AXCConversationMockMessageApi extends AXMChatMessageApi {
|
|
|
2703
2702
|
/** Builds a formatted conversation history string for AI context (last 20 messages). */
|
|
2704
2703
|
private buildConversationHistory;
|
|
2705
2704
|
private delay;
|
|
2706
|
-
private
|
|
2705
|
+
private getAiChatTarget;
|
|
2707
2706
|
private shouldGenerateAssistConversationTitle;
|
|
2708
2707
|
private generateAssistConversationTitle;
|
|
2709
2708
|
private normalizeConversationTitle;
|
|
2710
|
-
private
|
|
2709
|
+
private generateAiChatResponse;
|
|
2711
2710
|
private createPlaceholderMessage;
|
|
2712
2711
|
private applyStreamDeltas;
|
|
2713
2712
|
private publishPlaceholderMessage;
|
|
@@ -2727,10 +2726,6 @@ declare class AXCConversationMockMessageApi extends AXMChatMessageApi {
|
|
|
2727
2726
|
private completeDelegatedNestedTool;
|
|
2728
2727
|
private addToolCall;
|
|
2729
2728
|
private completeToolCall;
|
|
2730
|
-
/**
|
|
2731
|
-
* Builds {@link AXPAiChatMessage} lines for the assist bot renderer while streaming.
|
|
2732
|
-
*/
|
|
2733
|
-
private rebuildAiTranscriptDraft;
|
|
2734
2729
|
private finalizeMessage;
|
|
2735
2730
|
/**
|
|
2736
2731
|
* Resolves the AiModel catalog id for engine runs.
|
|
@@ -2742,7 +2737,7 @@ declare class AXCConversationMockMessageApi extends AXMChatMessageApi {
|
|
|
2742
2737
|
/**
|
|
2743
2738
|
* Build chat lines for the AI engine. Only plain user/assistant text from each message
|
|
2744
2739
|
* {@link #extractMessageText} is included — never assist message metadata
|
|
2745
|
-
* (`toolCalls`, `
|
|
2740
|
+
* (`toolCalls`, `transcripts`, `streamDraft*`, `assistUi`, etc.), so the model does not
|
|
2746
2741
|
* see internal trace or UI state.
|
|
2747
2742
|
*/
|
|
2748
2743
|
private buildAiMessages;
|
|
@@ -4107,5 +4102,5 @@ declare function bypassAllFilters<T extends AXPQueryRequest>(request: T): T;
|
|
|
4107
4102
|
|
|
4108
4103
|
declare const AXCMockEntityLogListener: AXPDistributedEventListenerProvider<any>;
|
|
4109
4104
|
|
|
4110
|
-
export { ACTIVITY_CATEGORIES, ACTIVITY_CATEGORY_ID_BY_KEY, ACTIVITY_DEFINITIONS, AI_ASSIST_MOCK, AI_MODEL_MOCK, APPLICATIONS, APPLICATION_CATEGORY_IDS, APPLICATION_CATEGORY_MOCKS, AXCActivityCategorySeeder, AXCActivityDefinitionSeeder, AXCAiAssistSeeder, AXCAiManagementMockModule, AXCAiModelSeeder, AXCAppTermDataSeeder, AXCAppVersionDataSeeder, AXCApplicationCategoryDataSeeder, AXCApplicationDataSeeder, AXCApplicationManagementMockModule, AXCAssessmentManagementMockModule, AXCAssetManagementMockModule, AXCAuthMockModule, AXCCalendarDataSeeder, AXCCalendarEventDataSeeder, AXCCalendarManagementMockModule, AXCCommandRegistryDataSeeder, AXCCommonMockModule, AXCContactCoreMockModule, AXCContentManagementMockModule, AXCConversationDataSeeder, AXCConversationMockConversationApi, AXCConversationMockMessageApi, AXCConversationMockModule, AXCConversationMockRealtimeApi, AXCConversationMockUserApi, AXCCustomerManagementMockModule, AXCDashboardManagementMockModule, AXCDataManagementMockModule, AXCDexieEntityStorageService, AXCDocumentManagementMockModule, AXCEditionDataSeeder, AXCEntityDefinitionSeederService, AXCEntityDefinitionsModule, AXCEntityStorageInsertCommand, AXCEntityStorageModule, AXCEntityStorageQueryQuery, AXCFileStorageServiceDexie, AXCFileStorageServiceFirestore, AXCFinancialCoreMockModule, AXCFirestoreEntityStorageService, AXCFormTemplateManagementMockModule, AXCGoogleStrategyMock, AXCHealthCoreMockModule, AXCHelpDeskMockModule, AXCHumanCapitalManagementMockModule, AXCIdentifierManagementMockModule, AXCImageCaptchaChallengeProviderMock, AXCLearningManagementMockModule, AXCLocaleManagementMockModule, AXCLocationManagementMockModule, AXCLockService, AXCMeasurementCoreMockModule, AXCMeetingManagementMockModule, AXCMetaDataDefinitionDataSeeder, AXCMetadataCategorySeeder, AXCMiddlewaresModule, AXCMockCaptchaChallengeComponent, AXCMockEntityLogListener, AXCMockModule, AXCMockShowMetaDataFormPopupCommand, AXCNotificationManagementMockModule, AXCOrderManagementMockModule, AXCOrganizationManagementMockModule, AXCPersonCoreMockModule, AXCPlatformManagementMockModule, AXCProcurementManagementMockModule, AXCProductCatalogMockModule, AXCProjectManagementMockModule, AXCQueryRegistryDataSeeder, AXCReportManagementMockModule, AXCSecurityManagementMockModule, AXCStoredEntityDefinitionLoader, AXCSubscriptionManagementMockModule, AXCSupplierManagementMockModule, AXCTaskManagementMockModule, AXCTenantManagementMockModule, AXCTenantSeeder, AXCTextTemplateRenderBackend, AXCTokensDataSeeder, AXCUserPassStrategyMock, AXCVersionDB, AXCVersioningService, AXCWidgetCatalogDataSeeder, AXCWorkflowCategorySeeder, AXCWorkflowDefinitionDataSeeder, AXCWorkflowEngine, AXCWorkflowExecutionDB, AXCWorkflowExecutionStoreDexie, AXCWorkflowExecutionStoreFirestore, AXCWorkflowInstanceCartableDemoSeeder, AXCWorkflowManagementMockModule, AXC_ENTITY_STORAGE_BACKEND_TYPE, AXC_FIRESTORE_CONFIG, AXC_FIRESTORE_DB, AXC_WORKFLOW_EXECUTION_STORE,
|
|
4105
|
+
export { ACTIVITY_CATEGORIES, ACTIVITY_CATEGORY_ID_BY_KEY, ACTIVITY_DEFINITIONS, AI_ASSIST_MOCK, AI_MODEL_MOCK, APPLICATIONS, APPLICATION_CATEGORY_IDS, APPLICATION_CATEGORY_MOCKS, AXCActivityCategorySeeder, AXCActivityDefinitionSeeder, AXCAiAssistSeeder, AXCAiManagementMockModule, AXCAiModelSeeder, AXCAppTermDataSeeder, AXCAppVersionDataSeeder, AXCApplicationCategoryDataSeeder, AXCApplicationDataSeeder, AXCApplicationManagementMockModule, AXCAssessmentManagementMockModule, AXCAssetManagementMockModule, AXCAuthMockModule, AXCCalendarDataSeeder, AXCCalendarEventDataSeeder, AXCCalendarManagementMockModule, AXCCommandRegistryDataSeeder, AXCCommonMockModule, AXCContactCoreMockModule, AXCContentManagementMockModule, AXCConversationDataSeeder, AXCConversationMockConversationApi, AXCConversationMockMessageApi, AXCConversationMockModule, AXCConversationMockRealtimeApi, AXCConversationMockUserApi, AXCCustomerManagementMockModule, AXCDashboardManagementMockModule, AXCDataManagementMockModule, AXCDexieEntityStorageService, AXCDocumentManagementMockModule, AXCEditionDataSeeder, AXCEntityDefinitionSeederService, AXCEntityDefinitionsModule, AXCEntityStorageInsertCommand, AXCEntityStorageModule, AXCEntityStorageQueryQuery, AXCFileStorageServiceDexie, AXCFileStorageServiceFirestore, AXCFinancialCoreMockModule, AXCFirestoreEntityStorageService, AXCFormTemplateManagementMockModule, AXCGoogleStrategyMock, AXCHealthCoreMockModule, AXCHelpDeskMockModule, AXCHumanCapitalManagementMockModule, AXCIdentifierManagementMockModule, AXCImageCaptchaChallengeProviderMock, AXCLearningManagementMockModule, AXCLocaleManagementMockModule, AXCLocationManagementMockModule, AXCLockService, AXCMeasurementCoreMockModule, AXCMeetingManagementMockModule, AXCMetaDataDefinitionDataSeeder, AXCMetadataCategorySeeder, AXCMiddlewaresModule, AXCMockCaptchaChallengeComponent, AXCMockEntityLogListener, AXCMockModule, AXCMockShowMetaDataFormPopupCommand, AXCNotificationManagementMockModule, AXCOrderManagementMockModule, AXCOrganizationManagementMockModule, AXCPersonCoreMockModule, AXCPlatformManagementMockModule, AXCProcurementManagementMockModule, AXCProductCatalogMockModule, AXCProjectManagementMockModule, AXCQueryRegistryDataSeeder, AXCReportManagementMockModule, AXCSecurityManagementMockModule, AXCStoredEntityDefinitionLoader, AXCSubscriptionManagementMockModule, AXCSupplierManagementMockModule, AXCTaskManagementMockModule, AXCTenantManagementMockModule, AXCTenantSeeder, AXCTextTemplateRenderBackend, AXCTokensDataSeeder, AXCUserPassStrategyMock, AXCVersionDB, AXCVersioningService, AXCWidgetCatalogDataSeeder, AXCWorkflowCategorySeeder, AXCWorkflowDefinitionDataSeeder, AXCWorkflowEngine, AXCWorkflowExecutionDB, AXCWorkflowExecutionStoreDexie, AXCWorkflowExecutionStoreFirestore, AXCWorkflowInstanceCartableDemoSeeder, AXCWorkflowManagementMockModule, AXC_ENTITY_STORAGE_BACKEND_TYPE, AXC_FIRESTORE_CONFIG, AXC_FIRESTORE_DB, AXC_WORKFLOW_EXECUTION_STORE, AXMAiModelStableIds, AXMAiPlatformAssistantAssistId, AXMAutomationDataSeeder, AXMBusinessUnitDataSeeder, AXMCalendarEventTypeSeeder, AXMDashboardChartDataSourceDefinition, AXMEmployeeDataSeeder, AXMEmploymentTypeDataSeeder, AXMFormDataSourcesProvider, AXMJobDefinitionDataSeeder, AXMJobLevelDataSeeder, AXMLeaveRequestDataSeeder, AXMMeetingDataSeeder, AXMMeetingFilesDataSeeder, AXMMeetingParticipantDataSeeder, AXMMeetingRoleTypeDataSeeder, AXMMeetingSessionDataSeeder, AXMMeetingTypeDataSeeder, AXMMeetingTypeFileTemplateDataSeeder, AXMPositionAssignmentDataSeeder, AXMPositionDataSeeder, AXMQuestionBankItemCategoryDataSeeder, AXMQuestionBankItemDataSeeder, AXMQuestionnaireCalculationDataSeeder, AXMQuestionnaireCategoryDataSeeder, AXMQuestionnaireDataSeeder, AXMResponsibilityDataSeeder, AXMTagDataSeeder, AXMTeamBusinessUnitDataSeeder, AXMTeamDataSeeder, AXMTeamMemberDataSeeder, AXMTeamMemberRoleDataSeeder, AXMWorkflowDashboardChartDataSourceDefinition, AXM_AI_REGISTRY_COMMAND_NAME, AXM_AI_REGISTRY_QUERY_NAME, AXM_CORPORATE_BUSINESS_UNIT_ID, AXPDashboardDataSeeder, AXPIdentifierDB, AXPMessageDataSeeder, AXPMockChecksumProvider, AXPMockClockProvider, AXPMockIdentifierService, AXPMockLookupProvider, AXPMockPolicyProvider, AXPMockSequenceProvider, AXPRoomDataSeeder, AXPSecurityManagementRoleDataSeeder, AXPSecurityManagementUserDataSeeder, AXPTaskBoardPlatformManagementTaskProvider, AXPTaskBoardProjectManagementTaskProvider, AXVChangeType, BCC, BOC, BUSINESS_UNITS_MOCK, CHAT_LAST_MESSAGE_IDS, COSTMANAGER_ENTERPRISE, COSTMANAGER_PROFESSIONAL, COSTMANAGER_STANDARD, CP, CRM_ENTERPRISE, DASHBOARDS, EDITIONS, EMPLOYEES_MOCK, EMPLOYMENT_TYPES_MOCK, ENTITY_DEFINITION_MAP, ENTITY_REGISTRY, FINANCE_BASIC, FINANCE_ENTERPRISE, FINANCE_PRO, G, HR_ENTERPRISE, HW, JOB_DEFINITIONS_CATEGORY_MOCK, JOB_DEFINITIONS_MOCK, JOB_DEFINITION_CATEGORY_KEY_TO_ID, JOB_LEVELS_MOCK, LASER_PLUMBING_TENANT_ID, LEAVE_REQUESTS_MOCK, METADATA_CATEGORY_IDS, METADATA_GENERAL_CATEGORY_REFS, METADATA_SYSTEM_CATEGORY_REFS, MLC, OHR, ORDERING_BASIC, ORDERING_ENTERPRISE, ORDERING_STANDARD, OWNERSHIP_FILTER_BYPASS, PLATFORM_CONSOLE, PLATFORM_TENANT_ID, PM, POSITIONS_CATEGORY_MOCK, POSITIONS_MOCK, POSITION_ASSIGNMENTS_MOCK, QCP, QGEN, QHW, QOHR, QPM, QTLE, QUESTIONNAIRE_CATEGORY_MOCK, QUESTION_BANK_ITEM_CATEGORY_MOCK, QWS, RESPONSIBILITIES_CATEGORY_MOCK, RESPONSIBILITIES_MOCK, RESPONSIBILITY_CATEGORY_KEY_TO_ID, SAFETYMINDER_BASIC, SAFETYMINDER_ENTERPRISE, SAFETYMINDER_PROFESSIONAL, SHOP_BASIC, SHOP_ENTERPRISE, SHOP_PRO, TAGS_MOCK, TASKS, TASK_STATUSES, TASK_TEMPLATES, TASK_TYPES, TEAMS_CATEGORY_MOCK, TEAMS_MOCK, TEAM_BUSINESS_UNITS_MOCK, TEAM_CATEGORY_KEY_TO_ID, TEAM_MEMBERS_MOCK, TEAM_MEMBER_ROLES_MOCK, TIMEPLICITY_TENANT_ID, TLA, TOKENS, TPC, VISIBILITY_FILTER_BYPASS, WORKFLOW_CATEGORIES, WS, activityCategoryMocks, activityDefinitionEntityMock, applyEntityDefinitionFirestoreSnapshot, automationCommandMiddleware, automationMock, avatarInterface, awaitConversationMockSharedStorage, axVersionDB, axWorkflowExecutionDB, axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows, axcPatchEmployeeActivePrimaryPositionRefsFromRows, axcPatchEmployeeManagerRefsFromRows, axcResolveCommandRegistrySeedId, axcResolveQueryRegistrySeedId, axcResolveWidgetCatalogSeedId, bankCategory, buildEntityStorageQuickSearchFilter, buildWorkflowInstanceCartableDemoRows, bypassAllFilters, bypassOwnershipFilter, bypassVisibilityFilter, calendarEventMock, calendarEventTypeMockData, calendarMock, chatMessageMock, chatMock, checkboxInterface, childCountMiddleware, clearEntityDefinitionFirestoreCollections, colorInterface, computeDiff, contactInterface, conversationDemoSeedUserIds, createFileCastMiddleware, createWidgetLayoutConfig, dateInterface, dateTimeInterface, descriptionInterface, documentFolderSyncMiddleware, emailInterface, entityDefDb, entityValidationMiddleware, fileUploaderInterface, finalizeActivityCategoryItemCounts, findEmployeeById, folderStorageMiddleware, groupOrderItemCalculatorMiddleware, historyMiddleware, identifierCommitMiddleware, imageInterface, inspectionOkXNaInterface, loadMockPropertyDefinitions, lockGuardMiddleware, longTextAnswerInterface, lookupInterface, lookupResolverMiddleware, mapInterface, meetingFilesMock, meetingIds, meetingMock, meetingParticipantMock, meetingRoleTypeMock, meetingSessionMock, meetingTimeSlotMock, meetingTypeFileTemplateMock, meetingTypeMock, mergeDetailRelationMiddleware, mergeQuickSearchIntoRequest, metadataCategoryMocks, mockParticipantIndexForSecurityUserId, mockQuestionBankItemByName, mockRoleDefinitions, mockUsers, multipleChoiceInterface, multipleSelectInterface, normalizeAnyFileArrayForView, normalizeSnapshotFileFieldsForView, numberInterface, parseEntityStorageInsertData, parseEntityStorageQueryRequest, participantIds, participantMock, passwordInterface, personIdentifierTypeMock, personIds, personLegalIds, personMock, personNaturalIds, phoneInterface, primaryMiddleware, provideMockPropertySetups, qrcodeInterface, questionBankItemMock, questionnaireCalculationMock, questionnaireMock, ratingInterface, richTextInterface, scaleInterface, selectInterface, selectionListInterface, sexAtBirthInterface, signatureInterface, signatureLoaderMiddleware, statusDefaultMiddleware, tagInterface, tenantMocks, textAreaInterface, textInterface, timeDurationInterface, titleInterface, toUiRows, toggleInterface, tokenCategoryIds, tokenCategoryMocks, urlInterface, versionInterface, visibilityFilterMiddleware, workflowDefinitionEntityMock, workflowDefinitionIds, workflowDefinitionMock, yesNoInterface };
|
|
4111
4106
|
export type { AXCBookmarkEntity, AXCEntityStorageBackendType, AXCEntityStorageInsertInput, AXCEntityStorageInsertOutput, AXCEntityStorageQueryInput, AXCEntityStorageQueryResult, AXCFirestoreConfig, AXCLeaveRequestMockDto, AXCPositionAssignmentMockDto, AXCWorkflowExecutionStore, AXMAiManagementAssistMockModel, AXMAiManagementModelMockModel, AXMApplicationManagementApplicationCategoryMockModel, AXMOrganizationManagementBusinessUnitMockModel, AXMOrganizationManagementJobDefinitionMockModel, AXMOrganizationManagementJobLevelMockModel, AXMOrganizationManagementPositionMockModel, AXMOrganizationManagementResponsibilityMockModel, AXMOrganizationManagementTeamBusinessUnitMockModel, AXMOrganizationManagementTeamMemberMockModel, AXMOrganizationManagementTeamMemberRoleMockModel, AXMOrganizationManagementTeamMockModel, AXMTag, AXPLogRow, AXPRuleRow, AXPSeqRow, AXPTextTemplateRenderRequest, AXPTextTemplateRenderResult, AXPVersionChange, AXPVersionEntry, AXPVersionStream, AutomationCommandDto, AutomationMockDto, CanonicalChange, CanonicalChangeOp, EntityDefinitionFirestoreSnapshotFile, FirestoreSnapshotOperation, MockUserPassCredentials, QuestionBankItemCategoryTitle, QuestionBankItemMockDto, QuestionnaireCalculationMockDto, QuestionnaireCalculationMockResultKind, QuestionnaireCategoryTitle, QuestionnaireMockDto, ShowMetaDataFormPopupMockInput, Task, TaskStatus, TaskTemplate, TaskType, UIDiffRow, VersionedFileInfo, WorkflowInstanceEntityBookmark };
|