@acorex/connectivity 21.0.0-next.53 → 21.0.0-next.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (16) hide show
  1. package/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-DYj9f3l9.mjs → acorex-connectivity-mock-acorex-connectivity-mock-CUAaMdpu.mjs} +424 -38
  2. package/fesm2022/{acorex-connectivity-mock-acorex-connectivity-mock-DYj9f3l9.mjs.map → acorex-connectivity-mock-acorex-connectivity-mock-CUAaMdpu.mjs.map} +1 -1
  3. package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-6uYh64Bk.mjs → acorex-connectivity-mock-assign-to-manager.activity-lfVbw9kv.mjs} +2 -2
  4. package/fesm2022/{acorex-connectivity-mock-assign-to-manager.activity-6uYh64Bk.mjs.map → acorex-connectivity-mock-assign-to-manager.activity-lfVbw9kv.mjs.map} +1 -1
  5. package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-BL_DN7ws.mjs → acorex-connectivity-mock-chat-generate-image.command-BZXvtuoh.mjs} +2 -2
  6. package/fesm2022/{acorex-connectivity-mock-chat-generate-image.command-BL_DN7ws.mjs.map → acorex-connectivity-mock-chat-generate-image.command-BZXvtuoh.mjs.map} +1 -1
  7. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-BJDFyBbg.mjs → acorex-connectivity-mock-chat-synthesize-speech.command-CLH4eZ7f.mjs} +2 -2
  8. package/fesm2022/{acorex-connectivity-mock-chat-synthesize-speech.command-BJDFyBbg.mjs.map → acorex-connectivity-mock-chat-synthesize-speech.command-CLH4eZ7f.mjs.map} +1 -1
  9. package/fesm2022/{acorex-connectivity-mock-chat-transcribe-speech.command-OytOFkmT.mjs → acorex-connectivity-mock-chat-transcribe-speech.command-C_pnNqAd.mjs} +6 -3
  10. package/fesm2022/acorex-connectivity-mock-chat-transcribe-speech.command-C_pnNqAd.mjs.map +1 -0
  11. package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-CnRfCNy7.mjs → acorex-connectivity-mock-user-roles-for-list-column.query-CdZXCFH8.mjs} +2 -2
  12. package/fesm2022/{acorex-connectivity-mock-user-roles-for-list-column.query-CnRfCNy7.mjs.map → acorex-connectivity-mock-user-roles-for-list-column.query-CdZXCFH8.mjs.map} +1 -1
  13. package/fesm2022/acorex-connectivity-mock.mjs +1 -1
  14. package/package.json +2 -2
  15. package/types/acorex-connectivity-mock.d.ts +17 -0
  16. package/fesm2022/acorex-connectivity-mock-chat-transcribe-speech.command-OytOFkmT.mjs.map +0 -1
@@ -32,7 +32,7 @@ import { AXMTenantManagementPermissionsKeys, AXMTenantService, AXMTenantManageme
32
32
  import { AXMPermissionsKeys as AXMPermissionsKeys$5, RootConfig as RootConfig$e, AXMDocumentTypeServiceImpl, AXPDocumentManagementService } from '@acorex/modules/document-management';
33
33
  import { AXMSettingsManagementPermissionKeys } from '@acorex/modules/settings-management';
34
34
  import { AXMPermissionsKeys as AXMPermissionsKeys$3, RootConfig as RootConfig$z, AXPWorkflowTaskProvider, matchesTaskBoardAssigneeFilter } from '@acorex/modules/task-management';
35
- import { AXMPermissionsKeys as AXMPermissionsKeys$4, AXMChatConversationApi, AXMChatMessageApi, axmAssistUserFacingPayloadLine, axmBuildAssistTranscriptLinePayload, AXM_ASSIST_TRANSCRIPT_LINE_PAYLOAD_TYPE, AXMChatRealtimeApi, AXMChatUserApi, axmIsAssistPeerParticipant, AXMChatManagementService, AXMChatRealtimeService, AXMCommentManagementService, AXMCommentRealtimeService, RootConfig as RootConfig$a } from '@acorex/modules/conversation';
35
+ import { AXMPermissionsKeys as AXMPermissionsKeys$4, AXMChatConversationApi, AXMChatMessageApi, axmAssistFollowUpItemsFromUnknown, axmAssistUserFacingPayloadLine, axmBuildAssistTranscriptLinePayload, AXM_ASSIST_TRANSCRIPT_LINE_PAYLOAD_TYPE, AXMChatRealtimeApi, AXMChatUserApi, axmIsAssistPeerParticipant, AXMChatManagementService, AXMChatRealtimeService, AXMCommentManagementService, AXMCommentRealtimeService, RootConfig as RootConfig$a } from '@acorex/modules/conversation';
36
36
  import { RootConfig as RootConfig$7 } from '@acorex/modules/business-core';
37
37
  import { RootConfig as RootConfig$8 } from '@acorex/modules/calendar-management';
38
38
  import { AXFileService } from '@acorex/core/file';
@@ -13489,6 +13489,8 @@ const AXMAiModelStableIds = {
13489
13489
  ollamaQwen3_4b: 'a0000001-0000-4000-8000-000000000036',
13490
13490
  ollamaGemma3_4b: 'a0000001-0000-4000-8000-000000000037',
13491
13491
  openaiWhisper1: 'a0000001-0000-4000-8000-000000000040',
13492
+ /** Demisco `/core/transcribe/` (voice_file + language). */
13493
+ demisTranscribe: 'a0000001-0000-4000-8000-000000000043',
13492
13494
  /** OpenAI audio/speech API (`tts-1`). */
13493
13495
  openaiTts1: 'a0000001-0000-4000-8000-000000000042',
13494
13496
  };
@@ -13599,6 +13601,14 @@ const AI_MODEL_MOCK = [
13599
13601
  openAiEndpoint: mockOpenAiEndpointSnapshot(AXMAiOpenAiEndpointStableIds.openAiDirect),
13600
13602
  modelPurposes: ['image'],
13601
13603
  },
13604
+ {
13605
+ id: AXMAiModelStableIds.demisTranscribe,
13606
+ name: 'demis-transcribe',
13607
+ title: M$1b('Demis speech-to-text', 'دیمیس گفتار به متن'),
13608
+ description: M$1b('Audio transcription via Demisco /core/transcribe/', 'رونویسی صوت از طریق Demisco /core/transcribe/'),
13609
+ chatTransport: 'demis',
13610
+ modelPurposes: ['speech'],
13611
+ },
13602
13612
  {
13603
13613
  id: AXMAiModelStableIds.openaiWhisper1,
13604
13614
  name: 'whisper-1',
@@ -14865,6 +14875,14 @@ function resolveDelegatedAssistOptionString(assist, agentId, key) {
14865
14875
  function resolveDelegatedAssistOptionModel(assist, agentId) {
14866
14876
  return resolveDelegatedAssistOptionString(assist, agentId, 'model');
14867
14877
  }
14878
+ /** Optional assist-level speech catalog id (mock seed / custom rows). */
14879
+ function resolveAssistSpeechModelId(assist) {
14880
+ if (assist == null || typeof assist !== 'object') {
14881
+ return undefined;
14882
+ }
14883
+ const v = assist['speechModelId'];
14884
+ return typeof v === 'string' && v.trim() ? v.trim() : undefined;
14885
+ }
14868
14886
  //#endregion
14869
14887
 
14870
14888
  //#region ---- Imports ----
@@ -17535,6 +17553,7 @@ function sanitizeGeminiParameters(schema) {
17535
17553
  //#endregion
17536
17554
  //#region ---- Constants ----
17537
17555
  const DEMIS_CHAT_URL_DEFAULT = 'https://api.demisco.ai/core/agent/chat/';
17556
+ const DEMIS_TRANSCRIBE_URL_DEFAULT = 'https://api.demisco.ai/core/transcribe/';
17538
17557
  /**
17539
17558
  * Optional bearer token for local runs when tenant setting is empty.
17540
17559
  * Do not commit production secrets; use AI Management → Demis settings in real deployments.
@@ -17731,6 +17750,61 @@ async function readDemisSseStream(response, onStreamDelta) {
17731
17750
  });
17732
17751
  return { fullText, chunks };
17733
17752
  }
17753
+ /** Demisco `/core/transcribe/` expects uppercase language codes (e.g. `FA`, `EN`). */
17754
+ function mapDemisTranscribeLanguage(language) {
17755
+ const raw = language?.trim();
17756
+ if (!raw) {
17757
+ return 'FA';
17758
+ }
17759
+ const lower = raw.toLowerCase();
17760
+ if (lower === 'fa' || lower.startsWith('fa-')) {
17761
+ return 'FA';
17762
+ }
17763
+ if (lower === 'en' || lower.startsWith('en-')) {
17764
+ return 'EN';
17765
+ }
17766
+ if (/^[a-z]{2}$/i.test(raw)) {
17767
+ return raw.toUpperCase();
17768
+ }
17769
+ return raw.slice(0, 2).toUpperCase();
17770
+ }
17771
+ function extractTextFromDemisTranscribePayload(data) {
17772
+ if (typeof data === 'string') {
17773
+ return data.trim();
17774
+ }
17775
+ if (!data || typeof data !== 'object') {
17776
+ return '';
17777
+ }
17778
+ const o = data;
17779
+ const directKeys = ['text', 'transcript', 'transcription', 'result', 'output', 'message', 'content'];
17780
+ for (const k of directKeys) {
17781
+ const v = o[k];
17782
+ if (typeof v === 'string' && v.trim()) {
17783
+ return v.trim();
17784
+ }
17785
+ }
17786
+ const nested = ['data', 'result', 'payload', 'body', 'response'];
17787
+ for (const k of nested) {
17788
+ const inner = extractTextFromDemisTranscribePayload(o[k]);
17789
+ if (inner) {
17790
+ return inner;
17791
+ }
17792
+ }
17793
+ return '';
17794
+ }
17795
+ function demisTranscribeAudioFileName(mimeType, fileName) {
17796
+ const mime = mimeType.trim().toLowerCase() || 'application/octet-stream';
17797
+ const ext = mime.includes('webm')
17798
+ ? 'webm'
17799
+ : mime.includes('wav')
17800
+ ? 'wav'
17801
+ : mime.includes('mp4') || mime.includes('mpeg')
17802
+ ? 'mp3'
17803
+ : mime.includes('ogg')
17804
+ ? 'ogg'
17805
+ : 'bin';
17806
+ return (fileName?.trim() || `audio.${ext}`).replace(/[^\w.\-()\s]+/g, '_');
17807
+ }
17734
17808
  function tryParseAssistantTextFromUnknown(fallback, chunks) {
17735
17809
  if (fallback) {
17736
17810
  return fallback;
@@ -17744,8 +17818,9 @@ function tryParseAssistantTextFromUnknown(fallback, chunks) {
17744
17818
  //#endregion
17745
17819
  //#region ---- Provider ----
17746
17820
  /**
17747
- * Demisco agent chat API (`/core/agent/chat/`). Streaming chat + document/file multipart when `stream` is true.
17748
- * Image/voice/TTS and tool calling are not supported on this transport.
17821
+ * Demisco APIs: agent chat (`/core/agent/chat/`), speech-to-text (`/core/transcribe/`).
17822
+ * Streaming chat + document/file multipart when `stream` is true. Audio attachments are transcribed via `/core/transcribe/` before chat.
17823
+ * Image/TTS and tool calling are not supported on this transport.
17749
17824
  */
17750
17825
  class AXCAiChatDemisProvider {
17751
17826
  constructor() {
@@ -17759,17 +17834,7 @@ class AXCAiChatDemisProvider {
17759
17834
  if (options.tools && options.tools.length > 0) {
17760
17835
  throw new Error('Demis (Demisco) chat transport does not support tool/function calling. Use an OpenAI or Gemini model for tool-enabled assists.');
17761
17836
  }
17762
- for (const m of options.messages) {
17763
- if (m.role !== 'user') {
17764
- continue;
17765
- }
17766
- for (const r of m.responses) {
17767
- if (r.type === 'file' && r.content.mimeType?.trim().toLowerCase().startsWith('audio/')) {
17768
- throw new Error('Demis (Demisco) chat transport does not support audio attachments.');
17769
- }
17770
- }
17771
- }
17772
- const bearer = await this.resolveBearerToken(options);
17837
+ const bearer = await this.resolveBearerToken(options.demis);
17773
17838
  if (!bearer) {
17774
17839
  throw new Error('Demis bearer token is not configured. Set it under AI Management settings (Demis) or local test constant.');
17775
17840
  }
@@ -17781,9 +17846,10 @@ class AXCAiChatDemisProvider {
17781
17846
  if (!agentUuid) {
17782
17847
  throw new Error('Demis chat requires `agent_uuid` (Assist or AiAgent catalog `name`, i.e. Demisco agent_uuid). Set assist.name or pass demis.agentUuid.');
17783
17848
  }
17784
- const userMessage = buildDemisTranscriptUserMessage(options.messages);
17849
+ const messagesForChat = await this.preprocessAudioAttachments(options.messages, options);
17850
+ const userMessage = buildDemisTranscriptUserMessage(messagesForChat);
17785
17851
  const useStream = options.stream !== false;
17786
- const media = await this.collectLatestUserMediaFiles(options.messages);
17852
+ const media = await this.collectLatestUserMediaFiles(messagesForChat);
17787
17853
  const sessionUuid = options.demis?.sessionUuid?.trim() ||
17788
17854
  this.chatToolRunContext.getContext()?.demisSessionUuid?.trim() ||
17789
17855
  '';
@@ -17813,8 +17879,45 @@ class AXCAiChatDemisProvider {
17813
17879
  async generateImage(_options) {
17814
17880
  throw new Error('Demis (Demisco) chat transport does not support image generation.');
17815
17881
  }
17816
- async transcribeSpeech(_options) {
17817
- throw new Error('Demis (Demisco) chat transport does not support speech transcription.');
17882
+ async transcribeSpeech(options) {
17883
+ const bearer = await this.resolveBearerToken();
17884
+ if (!bearer) {
17885
+ throw new Error('Demis bearer token is not configured. Set it under AI Management settings (Demis) or local test constant.');
17886
+ }
17887
+ const mime = options.mimeType?.trim() || 'application/octet-stream';
17888
+ const blob = new Blob([options.audioBytes], { type: mime });
17889
+ const fname = demisTranscribeAudioFileName(mime, options.fileName);
17890
+ const form = new FormData();
17891
+ form.append('language', mapDemisTranscribeLanguage(options.language));
17892
+ form.append('voice_file', blob, fname);
17893
+ const res = await fetch(DEMIS_TRANSCRIBE_URL_DEFAULT, {
17894
+ method: 'POST',
17895
+ headers: {
17896
+ accept: 'application/json',
17897
+ authorization: `Bearer ${bearer}`,
17898
+ },
17899
+ body: form,
17900
+ });
17901
+ const raw = await res.text();
17902
+ if (!res.ok) {
17903
+ throw new Error(`Demisco transcribe API ${res.status}: ${raw}`);
17904
+ }
17905
+ let data;
17906
+ try {
17907
+ data = JSON.parse(raw);
17908
+ }
17909
+ catch {
17910
+ const trimmed = raw.trim();
17911
+ if (trimmed) {
17912
+ return { text: trimmed };
17913
+ }
17914
+ throw new Error('Demisco transcribe API returned an empty response.');
17915
+ }
17916
+ const textOut = extractTextFromDemisTranscribePayload(data);
17917
+ if (!textOut) {
17918
+ throw new Error('Demisco transcribe API returned no transcription text.');
17919
+ }
17920
+ return { text: textOut };
17818
17921
  }
17819
17922
  async synthesizeSpeech(_options) {
17820
17923
  throw new Error('Demis (Demisco) chat transport does not support text-to-speech.');
@@ -17912,8 +18015,53 @@ class AXCAiChatDemisProvider {
17912
18015
  }
17913
18016
  //#endregion
17914
18017
  //#region ---- Resolvers ----
17915
- async resolveBearerToken(options) {
17916
- const fromOptions = options.demis?.bearerToken?.trim();
18018
+ async preprocessAudioAttachments(messages, options) {
18019
+ const hasAudio = messages.some((m) => m.role === 'user' &&
18020
+ m.responses.some((r) => r.type === 'file' && r.content.mimeType?.trim().toLowerCase().startsWith('audio/')));
18021
+ if (!hasAudio) {
18022
+ return messages;
18023
+ }
18024
+ const speechModelEntityId = options.demis?.speechModelEntityId?.trim();
18025
+ if (!speechModelEntityId) {
18026
+ throw new Error('Demis chat requires a speech catalog model on the assist (speechModelId) to transcribe audio attachments.');
18027
+ }
18028
+ const out = [];
18029
+ for (const m of messages) {
18030
+ if (m.role !== 'user') {
18031
+ out.push(m);
18032
+ continue;
18033
+ }
18034
+ const newResponses = [];
18035
+ for (const r of m.responses) {
18036
+ if (r.type === 'file' && r.content.mimeType?.trim().toLowerCase().startsWith('audio/')) {
18037
+ const fileId = r.content.fileId?.trim();
18038
+ if (!fileId) {
18039
+ continue;
18040
+ }
18041
+ const info = await this.fileStorage.getInfo(fileId);
18042
+ const audioBytes = await info.binary.arrayBuffer();
18043
+ const mimeType = info.mimeType?.trim() || info.binary.type?.trim() || 'application/octet-stream';
18044
+ const { text } = await this.transcribeSpeech({
18045
+ modelEntityId: speechModelEntityId,
18046
+ audioBytes,
18047
+ mimeType,
18048
+ fileName: r.content.name,
18049
+ language: options.demis?.transcribeLanguage,
18050
+ });
18051
+ const name = r.content.name?.trim();
18052
+ const prefix = name ? `[Voice: ${name}]\n` : '[Voice]\n';
18053
+ newResponses.push({ type: 'text', content: `${prefix}${text}` });
18054
+ }
18055
+ else {
18056
+ newResponses.push(r);
18057
+ }
18058
+ }
18059
+ out.push({ ...m, responses: newResponses });
18060
+ }
18061
+ return out;
18062
+ }
18063
+ async resolveBearerToken(demis) {
18064
+ const fromOptions = demis?.bearerToken?.trim();
17917
18065
  if (fromOptions) {
17918
18066
  return fromOptions;
17919
18067
  }
@@ -19510,7 +19658,7 @@ class AXCAiManagementMockModule {
19510
19658
  provideCommandSetups([
19511
19659
  {
19512
19660
  key: 'AiManagement:ChatGenerateImage',
19513
- command: () => import('./acorex-connectivity-mock-chat-generate-image.command-BL_DN7ws.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
19661
+ command: () => import('./acorex-connectivity-mock-chat-generate-image.command-BZXvtuoh.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
19514
19662
  },
19515
19663
  {
19516
19664
  key: 'AiManagement:ExtractDocumentText',
@@ -19522,11 +19670,11 @@ class AXCAiManagementMockModule {
19522
19670
  },
19523
19671
  {
19524
19672
  key: 'AiManagement:ChatTranscribeSpeech',
19525
- command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-OytOFkmT.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
19673
+ command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-C_pnNqAd.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
19526
19674
  },
19527
19675
  {
19528
19676
  key: 'AiManagement:ChatSynthesizeSpeech',
19529
- command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-BJDFyBbg.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
19677
+ command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-CLH4eZ7f.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
19530
19678
  },
19531
19679
  ]),
19532
19680
  ] }); }
@@ -19574,7 +19722,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
19574
19722
  provideCommandSetups([
19575
19723
  {
19576
19724
  key: 'AiManagement:ChatGenerateImage',
19577
- command: () => import('./acorex-connectivity-mock-chat-generate-image.command-BL_DN7ws.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
19725
+ command: () => import('./acorex-connectivity-mock-chat-generate-image.command-BZXvtuoh.mjs').then((c) => c.AiManagementChatGenerateImageCommand),
19578
19726
  },
19579
19727
  {
19580
19728
  key: 'AiManagement:ExtractDocumentText',
@@ -19586,11 +19734,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
19586
19734
  },
19587
19735
  {
19588
19736
  key: 'AiManagement:ChatTranscribeSpeech',
19589
- command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-OytOFkmT.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
19737
+ command: () => import('./acorex-connectivity-mock-chat-transcribe-speech.command-C_pnNqAd.mjs').then((c) => c.AiManagementChatTranscribeSpeechCommand),
19590
19738
  },
19591
19739
  {
19592
19740
  key: 'AiManagement:ChatSynthesizeSpeech',
19593
- command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-BJDFyBbg.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
19741
+ command: () => import('./acorex-connectivity-mock-chat-synthesize-speech.command-CLH4eZ7f.mjs').then((c) => c.AiManagementChatSynthesizeSpeechCommand),
19594
19742
  },
19595
19743
  ]),
19596
19744
  ],
@@ -39230,20 +39378,26 @@ class AXCConversationMockMessageApi extends AXMChatMessageApi {
39230
39378
  }
39231
39379
  },
39232
39380
  });
39233
- const responseTranscript = runResult.messages.slice(contextAiMessageCount);
39381
+ let responseTranscript = runResult.messages.slice(contextAiMessageCount);
39382
+ let usageTotals = runResult.usageTotals;
39383
+ if (target.assistId === AXMAiDemisAssistId) {
39384
+ const demisFollowUp = await this.maybeAppendDemisAssistFollowUp(runResult.messages, responseTranscript, placeholderMsg);
39385
+ responseTranscript = demisFollowUp.turnTranscript;
39386
+ usageTotals = this.mergeAssistRunUsageTotals(usageTotals, demisFollowUp.usageTotals);
39387
+ }
39234
39388
  const finalContent = this.extractLatestAssistantContent(responseTranscript);
39235
39389
  const streamCombined = [streamThinkAccumulator, streamTextAccumulator]
39236
39390
  .map((s) => s.trim())
39237
39391
  .filter((s) => s.length > 0)
39238
39392
  .join('\n\n');
39239
39393
  this.finalizeMessage(placeholderMsg, finalContent || streamCombined, conversationId, responseTranscript, {
39240
- usageTotals: runResult.usageTotals,
39394
+ usageTotals,
39241
39395
  durationMs: Date.now() - runStartedAt,
39242
39396
  modelEntityId,
39243
39397
  modelTitle,
39244
39398
  lastProviderResult: runResult.lastProviderResult,
39245
39399
  delegatedTranscriptsByCallId: runResult.delegatedTranscriptsByCallId,
39246
- });
39400
+ }, target.assistId === AXMAiDemisAssistId ? runResult.messages : undefined);
39247
39401
  }
39248
39402
  catch (err) {
39249
39403
  const friendlyError = this.buildUserFriendlyError(err);
@@ -39257,6 +39411,236 @@ class AXCConversationMockMessageApi extends AXMChatMessageApi {
39257
39411
  this.setConversationTyping(conversationId, assistParticipantId, false);
39258
39412
  }
39259
39413
  }
39414
+ /**
39415
+ * Demis transport has no tool calling, so the engine cannot auto-invoke the follow-up specialist.
39416
+ * Run it manually on a Gemini model and merge {@code followUp} chips onto the Demis answer.
39417
+ */
39418
+ async maybeAppendDemisAssistFollowUp(fullTranscript, turnTranscript, placeholderMsg) {
39419
+ const followUpAgentId = AXMAiAgentWidgetFollowUpChipsLayoutId;
39420
+ if (axpAiTranscriptAlreadyHasFollowUpInTurn(fullTranscript, followUpAgentId)) {
39421
+ return { turnTranscript };
39422
+ }
39423
+ if (!axpAiShouldAutoInvokeFollowUpAgent(fullTranscript)) {
39424
+ return { turnTranscript };
39425
+ }
39426
+ const callId = `call_demis_followup_${Date.now()}`;
39427
+ const toolName = axpAiSupervisorAgentToolName(followUpAgentId);
39428
+ const followUpQuery = axpAiBuildAutoFollowUpAgentQuery(fullTranscript);
39429
+ const call = {
39430
+ id: callId,
39431
+ name: toolName,
39432
+ arguments: { query: followUpQuery },
39433
+ };
39434
+ this.addToolCall(placeholderMsg, call);
39435
+ try {
39436
+ const followUpResult = await this.aiEngine.run({
39437
+ directAgentId: followUpAgentId,
39438
+ modelEntityId: AXMAiModelStableIds.gpt54,
39439
+ maxSteps: 4,
39440
+ messages: [axpAiChatTextMessage('user', followUpQuery)],
39441
+ });
39442
+ const followUpSegment = this.extractFollowUpResponseFromEngineMessages(followUpResult.messages);
39443
+ const outcomeSegments = followUpSegment
39444
+ ? [followUpSegment, ...axpAiCollectDelegatedAgentOutcomeResponses(followUpResult.messages).filter((s) => s.type !== 'followUp')]
39445
+ : axpAiCollectDelegatedAgentOutcomeResponses(followUpResult.messages);
39446
+ const toolPayload = followUpSegment
39447
+ ? {
39448
+ success: true,
39449
+ data: {
39450
+ agentId: followUpAgentId,
39451
+ agentName: 'follow-up-prompt-generator',
39452
+ responses: outcomeSegments,
39453
+ },
39454
+ }
39455
+ : {
39456
+ success: false,
39457
+ error: 'Follow-up specialist produced no parseable followUp chips.',
39458
+ };
39459
+ const toolMsg = axpAiChatAgentResultMessage(callId, toolPayload, toolName);
39460
+ this.completeToolCall(placeholderMsg, call, axpAiChatToolOrAgentResultBodyJson(toolMsg));
39461
+ if (!followUpSegment) {
39462
+ return { turnTranscript, usageTotals: followUpResult.usageTotals };
39463
+ }
39464
+ const withDelegation = [
39465
+ ...turnTranscript,
39466
+ {
39467
+ role: 'assistant',
39468
+ responses: [
39469
+ {
39470
+ type: 'agent',
39471
+ content: { command: toolName, arguments: { query: followUpQuery } },
39472
+ callId,
39473
+ },
39474
+ ],
39475
+ },
39476
+ toolMsg,
39477
+ ];
39478
+ let mergedTurn = axpAiReconcileSupervisorFinalAssistantWithDelegatedOutcomes(withDelegation);
39479
+ if (!this.turnTranscriptHasFollowUpSegment(mergedTurn)) {
39480
+ mergedTurn = this.appendFollowUpToDemisAssistantTurn(mergedTurn, followUpSegment);
39481
+ }
39482
+ return {
39483
+ turnTranscript: mergedTurn,
39484
+ usageTotals: followUpResult.usageTotals,
39485
+ };
39486
+ }
39487
+ catch (err) {
39488
+ const message = err instanceof Error ? err.message : 'Follow-up generation failed.';
39489
+ this.completeToolCall(placeholderMsg, call, JSON.stringify({ success: false, error: message }));
39490
+ return { turnTranscript };
39491
+ }
39492
+ }
39493
+ extractFollowUpResponseFromEngineMessages(messages) {
39494
+ for (const seg of axpAiCollectDelegatedAgentOutcomeResponses(messages)) {
39495
+ if (seg.type === 'followUp' && seg.content.length > 0) {
39496
+ return seg;
39497
+ }
39498
+ }
39499
+ for (let i = messages.length - 1; i >= 0; i--) {
39500
+ const m = messages[i];
39501
+ if (m.role !== 'assistant' || axpAiChatMessageIsDelegatedReflectionExcluded(m)) {
39502
+ continue;
39503
+ }
39504
+ for (const r of m.responses) {
39505
+ if (r.type === 'followUp' && r.content.length > 0) {
39506
+ return r;
39507
+ }
39508
+ if (r.type === 'text') {
39509
+ const items = this.parseFollowUpItemsFromAssistantText(r.content);
39510
+ if (items && items.length > 0) {
39511
+ return { type: 'followUp', content: items };
39512
+ }
39513
+ }
39514
+ }
39515
+ const plain = axpAiChatMessageGetText(m).trim();
39516
+ const fromPlain = this.parseFollowUpItemsFromAssistantText(plain);
39517
+ if (fromPlain && fromPlain.length > 0) {
39518
+ return { type: 'followUp', content: fromPlain };
39519
+ }
39520
+ }
39521
+ return null;
39522
+ }
39523
+ parseFollowUpItemsFromAssistantText(text) {
39524
+ const trimmed = text.trim();
39525
+ if (!trimmed.includes('followUp')) {
39526
+ return null;
39527
+ }
39528
+ const brace = trimmed.indexOf('{');
39529
+ if (brace < 0) {
39530
+ return null;
39531
+ }
39532
+ try {
39533
+ const parsed = JSON.parse(trimmed.slice(brace));
39534
+ const items = axmAssistFollowUpItemsFromUnknown(parsed);
39535
+ return items.length > 0 ? items : null;
39536
+ }
39537
+ catch {
39538
+ return null;
39539
+ }
39540
+ }
39541
+ turnTranscriptHasFollowUpSegment(transcript) {
39542
+ for (const m of transcript) {
39543
+ if (m.role === 'assistant' && m.responses.some((r) => r.type === 'followUp' && r.content.length > 0)) {
39544
+ return true;
39545
+ }
39546
+ if (m.role !== 'tool') {
39547
+ continue;
39548
+ }
39549
+ for (const r of m.responses) {
39550
+ if (r.type !== 'agent_result') {
39551
+ continue;
39552
+ }
39553
+ const payload = r.content;
39554
+ if (payload.success !== true || payload.data?.responses == null) {
39555
+ continue;
39556
+ }
39557
+ if (axpAiParseDelegatedAgentResultSegmentsFromUnknown(payload.data.responses).some((s) => s.type === 'followUp' && s.content.length > 0)) {
39558
+ return true;
39559
+ }
39560
+ }
39561
+ }
39562
+ return false;
39563
+ }
39564
+ appendFollowUpToDemisAssistantTurn(transcript, followUp) {
39565
+ const out = transcript.map((m) => ({ ...m, responses: [...m.responses] }));
39566
+ for (let i = 0; i < out.length; i++) {
39567
+ const m = out[i];
39568
+ if (m.role !== 'assistant' || axpAiChatMessageIsDelegatedReflectionExcluded(m)) {
39569
+ continue;
39570
+ }
39571
+ if (m.responses.some((r) => r.type === 'agent')) {
39572
+ continue;
39573
+ }
39574
+ const hasUserText = m.responses.some((r) => r.type === 'text' && r.content.trim().length > 0);
39575
+ if (!hasUserText) {
39576
+ continue;
39577
+ }
39578
+ if (m.responses.some((r) => r.type === 'followUp')) {
39579
+ return out;
39580
+ }
39581
+ out[i] = { ...m, responses: [...m.responses, followUp] };
39582
+ return out;
39583
+ }
39584
+ return out;
39585
+ }
39586
+ /**
39587
+ * Non-debug UI reads {@link axmParseAssistTranscriptLinePayload} before metadata transcripts;
39588
+ * merge follow-up chips from completed delegated tool output when the payload line missed them.
39589
+ */
39590
+ enrichAssistPayloadLineWithFollowUpFromToolCalls(line, meta) {
39591
+ if (!line || line.responses.some((r) => r.type === 'followUp' && r.content.length > 0)) {
39592
+ return line;
39593
+ }
39594
+ const toolCalls = meta['toolCalls'];
39595
+ if (!Array.isArray(toolCalls)) {
39596
+ return line;
39597
+ }
39598
+ for (const raw of toolCalls) {
39599
+ if (raw == null || typeof raw !== 'object' || Array.isArray(raw)) {
39600
+ continue;
39601
+ }
39602
+ const tc = raw;
39603
+ if (tc.state !== 'done' || typeof tc.output !== 'string' || !tc.output.trim()) {
39604
+ continue;
39605
+ }
39606
+ if (axpAiParseSupervisorAgentToolName(tc.name) == null) {
39607
+ continue;
39608
+ }
39609
+ try {
39610
+ const parsed = JSON.parse(tc.output);
39611
+ if (parsed['success'] !== true) {
39612
+ continue;
39613
+ }
39614
+ const data = parsed['data'];
39615
+ if (data == null || typeof data !== 'object' || Array.isArray(data)) {
39616
+ continue;
39617
+ }
39618
+ const followUpSeg = axpAiParseDelegatedAgentResultSegmentsFromUnknown(data['responses']).find((s) => s.type === 'followUp' && s.content.length > 0);
39619
+ if (followUpSeg) {
39620
+ return { ...line, responses: [...line.responses, followUpSeg] };
39621
+ }
39622
+ }
39623
+ catch {
39624
+ continue;
39625
+ }
39626
+ }
39627
+ return line;
39628
+ }
39629
+ mergeAssistRunUsageTotals(acc, next) {
39630
+ if (!acc && !next) {
39631
+ return undefined;
39632
+ }
39633
+ const promptTokens = (acc?.promptTokens ?? 0) + (next?.promptTokens ?? 0);
39634
+ const completionTokens = (acc?.completionTokens ?? 0) + (next?.completionTokens ?? 0);
39635
+ const totalTokens = (acc?.totalTokens ?? 0) + (next?.totalTokens ?? 0);
39636
+ const cachedPromptTokens = (acc?.cachedPromptTokens ?? 0) + (next?.cachedPromptTokens ?? 0);
39637
+ return {
39638
+ promptTokens,
39639
+ completionTokens,
39640
+ totalTokens,
39641
+ ...(cachedPromptTokens > 0 ? { cachedPromptTokens } : {}),
39642
+ };
39643
+ }
39260
39644
  //#endregion
39261
39645
  //#region ---- Placeholder & Streaming ----
39262
39646
  createPlaceholderMessage(conversationId, senderId, target) {
@@ -39424,15 +39808,17 @@ class AXCConversationMockMessageApi extends AXMChatMessageApi {
39424
39808
  meta['toolCalls'] = toolCalls;
39425
39809
  this.emitMessageUpdate(next);
39426
39810
  }
39427
- finalizeMessage(message, text, conversationId, transcript, runDebug) {
39811
+ finalizeMessage(message, text, conversationId, transcript, runDebug, payloadTranscript) {
39428
39812
  const base = this.resolveStreamingAssistMessage(message);
39429
39813
  const next = this.snapshotStreamingAssistMessage(base);
39814
+ const meta = next.metadata;
39430
39815
  const transcriptLines = transcript ?? [];
39431
- const lastLine = axmAssistUserFacingPayloadLine(transcriptLines);
39816
+ const payloadSource = payloadTranscript && payloadTranscript.length > 0 ? payloadTranscript : transcriptLines;
39817
+ let lastLine = axmAssistUserFacingPayloadLine(payloadSource);
39818
+ lastLine = this.enrichAssistPayloadLineWithFollowUpFromToolCalls(lastLine, meta);
39432
39819
  if (lastLine) {
39433
39820
  next.payload = axmBuildAssistTranscriptLinePayload(lastLine);
39434
39821
  }
39435
- const meta = next.metadata;
39436
39822
  meta['isStreaming'] = false;
39437
39823
  delete meta['transcriptDraft'];
39438
39824
  delete meta['streamDraftText'];
@@ -65192,7 +65578,7 @@ class AXCSecurityManagementMockModule {
65192
65578
  provideQuerySetups([
65193
65579
  {
65194
65580
  key: 'SecurityManagement:User:RolesForListColumn',
65195
- loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-CnRfCNy7.mjs').then((m) => m.UserRolesForListColumnQuery),
65581
+ loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-CdZXCFH8.mjs').then((m) => m.UserRolesForListColumnQuery),
65196
65582
  },
65197
65583
  ]),
65198
65584
  ] }); }
@@ -65236,7 +65622,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
65236
65622
  provideQuerySetups([
65237
65623
  {
65238
65624
  key: 'SecurityManagement:User:RolesForListColumn',
65239
- loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-CnRfCNy7.mjs').then((m) => m.UserRolesForListColumnQuery),
65625
+ loader: () => import('./acorex-connectivity-mock-user-roles-for-list-column.query-CdZXCFH8.mjs').then((m) => m.UserRolesForListColumnQuery),
65240
65626
  },
65241
65627
  ]),
65242
65628
  ],
@@ -75183,7 +75569,7 @@ class AXCWorkflowManagementMockModule {
75183
75569
  provideCommandSetups([
75184
75570
  {
75185
75571
  key: 'workflow-activity:assign-to-manager',
75186
- command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-6uYh64Bk.mjs').then((c) => c.AssignToManagerActivity),
75572
+ command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-lfVbw9kv.mjs').then((c) => c.AssignToManagerActivity),
75187
75573
  },
75188
75574
  {
75189
75575
  key: 'workflow-activity:get-current-user-manager',
@@ -75294,7 +75680,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
75294
75680
  provideCommandSetups([
75295
75681
  {
75296
75682
  key: 'workflow-activity:assign-to-manager',
75297
- command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-6uYh64Bk.mjs').then((c) => c.AssignToManagerActivity),
75683
+ command: () => import('./acorex-connectivity-mock-assign-to-manager.activity-lfVbw9kv.mjs').then((c) => c.AssignToManagerActivity),
75298
75684
  },
75299
75685
  {
75300
75686
  key: 'workflow-activity:get-current-user-manager',
@@ -79631,5 +80017,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
79631
80017
  * Generated bundle index. Do not edit.
79632
80018
  */
79633
80019
 
79634
- export { AXCFinancialCoreMockModule as $, AXCAiChatRouterService as A, AXCCalendarDataSeeder as B, AXCCalendarEventDataSeeder as C, AXCCalendarManagementMockModule as D, AXCCommandRegistryDataSeeder as E, AXCCommonMockModule as F, AXCContactCoreMockModule as G, AXCContentManagementMockModule as H, AXCConversationDataSeeder as I, AXCConversationMockConversationApi as J, AXCConversationMockMessageApi as K, AXCConversationMockModule as L, AXCConversationMockRealtimeApi as M, AXCConversationMockUserApi as N, AXCCustomerManagementMockModule as O, AXCDashboardManagementMockModule as P, AXCDataManagementMockModule as Q, AXCDexieEntityStorageService as R, AXCDocumentManagementMockModule as S, AXCEditionDataSeeder as T, AXCEntityDefinitionSeederService as U, AXCEntityDefinitionsModule as V, AXCEntityStorageInsertCommand as W, AXCEntityStorageModule as X, AXCEntityStorageQueryQuery as Y, AXCFileStorageServiceDexie as Z, AXCFileStorageServiceFirestore as _, AXMAiModelStableIds as a, AXMEmployeeDataSeeder as a$, AXCFirestoreEntityStorageService as a0, AXCFormTemplateManagementMockModule as a1, AXCGoogleStrategyMock as a2, AXCHealthCoreMockModule as a3, AXCHelpDeskMockModule as a4, AXCHumanCapitalManagementMockModule as a5, AXCIdentifierManagementMockModule as a6, AXCImageCaptchaChallengeProviderMock as a7, AXCLearningManagementMockModule as a8, AXCLocaleManagementMockModule as a9, AXCTenantManagementMockModule as aA, AXCTenantSeeder as aB, AXCTextTemplateRenderBackend as aC, AXCTokensDataSeeder as aD, AXCUserPassStrategyMock as aE, AXCVersionDB as aF, AXCVersioningService as aG, AXCWidgetCatalogDataSeeder as aH, AXCWorkflowCategorySeeder as aI, AXCWorkflowDefinitionDataSeeder as aJ, AXCWorkflowEngine as aK, AXCWorkflowExecutionDB as aL, AXCWorkflowExecutionStoreDexie as aM, AXCWorkflowExecutionStoreFirestore as aN, AXCWorkflowInstanceCartableDemoSeeder as aO, AXCWorkflowManagementMockModule as aP, AXC_ENTITY_STORAGE_BACKEND_TYPE as aQ, AXC_FIRESTORE_CONFIG as aR, AXC_FIRESTORE_DB as aS, AXC_WORKFLOW_EXECUTION_STORE as aT, AXMAiDemisAssistAgentUuid as aU, AXMAiDemisAssistId as aV, AXMAiPlatformAssistantAssistId as aW, AXMAutomationDataSeeder as aX, AXMBusinessUnitDataSeeder as aY, AXMCalendarEventTypeSeeder as aZ, AXMDashboardChartDataSourceDefinition as a_, AXCLocationManagementMockModule as aa, AXCLockService as ab, AXCMeasurementCoreMockModule as ac, AXCMeetingManagementMockModule as ad, AXCMetaDataDefinitionDataSeeder as ae, AXCMetadataCategorySeeder as af, AXCMiddlewaresModule as ag, AXCMockCaptchaChallengeComponent as ah, AXCMockEntityLogListener as ai, AXCMockModule as aj, AXCMockShowMetaDataFormPopupCommand as ak, AXCNotificationManagementMockModule as al, AXCOrderManagementMockModule as am, AXCOrganizationManagementMockModule as an, AXCPersonCoreMockModule as ao, AXCPlatformManagementMockModule as ap, AXCProcurementManagementMockModule as aq, AXCProductCatalogMockModule as ar, AXCProjectManagementMockModule as as, AXCQueryRegistryDataSeeder as at, AXCReportManagementMockModule as au, AXCSecurityManagementMockModule as av, AXCStoredEntityDefinitionLoader as aw, AXCSubscriptionManagementMockModule as ax, AXCSupplierManagementMockModule as ay, AXCTaskManagementMockModule as az, resolveDelegatedAssistOptionString as b, G as b$, AXMEmploymentTypeDataSeeder as b0, AXMFormDataSourcesProvider as b1, AXMJobDefinitionDataSeeder as b2, AXMJobLevelDataSeeder as b3, AXMLeaveRequestDataSeeder as b4, AXMMeetingDataSeeder as b5, AXMMeetingFilesDataSeeder as b6, AXMMeetingParticipantDataSeeder as b7, AXMMeetingRoleTypeDataSeeder as b8, AXMMeetingSessionDataSeeder as b9, AXPMockPolicyProvider as bA, AXPMockSequenceProvider as bB, AXPRoomDataSeeder as bC, AXPSecurityManagementRoleDataSeeder as bD, AXPSecurityManagementUserDataSeeder as bE, AXPTaskBoardPlatformManagementTaskProvider as bF, AXPTaskBoardProjectManagementTaskProvider as bG, AXVChangeType as bH, BCC as bI, BOC as bJ, BUSINESS_UNITS_MOCK as bK, CHAT_LAST_MESSAGE_IDS as bL, COLLABORATION_STANDARD as bM, COSTMANAGER_ENTERPRISE as bN, COSTMANAGER_PROFESSIONAL as bO, COSTMANAGER_STANDARD as bP, CP as bQ, CRM_ENTERPRISE as bR, DASHBOARDS as bS, EDITIONS as bT, EMPLOYEES_MOCK as bU, EMPLOYMENT_TYPES_MOCK as bV, ENTITY_DEFINITION_MAP as bW, ENTITY_REGISTRY as bX, FINANCE_BASIC as bY, FINANCE_ENTERPRISE as bZ, FINANCE_PRO as b_, AXMMeetingTypeDataSeeder as ba, AXMMeetingTypeFileTemplateDataSeeder as bb, AXMPositionAssignmentDataSeeder as bc, AXMPositionDataSeeder as bd, AXMQuestionBankItemCategoryDataSeeder as be, AXMQuestionBankItemDataSeeder as bf, AXMQuestionnaireCalculationDataSeeder as bg, AXMQuestionnaireCategoryDataSeeder as bh, AXMQuestionnaireDataSeeder as bi, AXMResponsibilityDataSeeder as bj, AXMTagDataSeeder as bk, AXMTeamBusinessUnitDataSeeder as bl, AXMTeamDataSeeder as bm, AXMTeamMemberDataSeeder as bn, AXMTeamMemberRoleDataSeeder as bo, AXMWorkflowDashboardChartDataSourceDefinition as bp, AXM_AI_REGISTRY_COMMAND_NAME as bq, AXM_AI_REGISTRY_QUERY_NAME as br, AXM_CORPORATE_BUSINESS_UNIT_ID as bs, AXPDashboardDataSeeder as bt, AXPIdentifierDB as bu, AXPMessageDataSeeder as bv, AXPMockChecksumProvider as bw, AXPMockClockProvider as bx, AXPMockIdentifierService as by, AXPMockLookupProvider as bz, axcSyncSingleEmployeeDenormalizedOrgFields as c, activityDefinitionEntityMock as c$, HR_ENTERPRISE as c0, HW as c1, JOB_DEFINITIONS_CATEGORY_MOCK as c2, JOB_DEFINITIONS_MOCK as c3, JOB_DEFINITION_CATEGORY_KEY_TO_ID as c4, JOB_LEVELS_MOCK as c5, LASER_PLUMBING_TENANT_ID as c6, LEAVE_REQUESTS_MOCK as c7, MAGFA_COMMERCE_STANDARD as c8, MAGFA_CONVERSATION_DASHBOARD as c9, RESPONSIBILITIES_MOCK as cA, RESPONSIBILITY_CATEGORY_KEY_TO_ID as cB, SAFETYMINDER_BASIC as cC, SAFETYMINDER_ENTERPRISE as cD, SAFETYMINDER_PROFESSIONAL as cE, SHOP_BASIC as cF, SHOP_ENTERPRISE as cG, SHOP_PRO as cH, TAGS_MOCK as cI, TASKS as cJ, TASK_STATUSES as cK, TASK_TEMPLATES as cL, TASK_TYPES as cM, TEAMS_CATEGORY_MOCK as cN, TEAMS_MOCK as cO, TEAM_BUSINESS_UNITS_MOCK as cP, TEAM_CATEGORY_KEY_TO_ID as cQ, TEAM_MEMBERS_MOCK as cR, TEAM_MEMBER_ROLES_MOCK as cS, TIMEPLICITY_TENANT_ID as cT, TLA as cU, TOKENS as cV, TPC as cW, VISIBILITY_FILTER_BYPASS as cX, WORKFLOW_CATEGORIES as cY, WS as cZ, activityCategoryMocks as c_, MAGFA_TENANT_ID as ca, METADATA_CATEGORY_IDS as cb, METADATA_GENERAL_CATEGORY_REFS as cc, METADATA_SYSTEM_CATEGORY_REFS as cd, MLC as ce, OHR as cf, ORDERING_BASIC as cg, ORDERING_ENTERPRISE as ch, ORDERING_STANDARD as ci, OWNERSHIP_FILTER_BYPASS as cj, PLATFORM_CONSOLE as ck, PLATFORM_TENANT_ID as cl, PM as cm, POSITIONS_CATEGORY_MOCK as cn, POSITIONS_MOCK as co, POSITION_ASSIGNMENTS_MOCK as cp, QCP as cq, QGEN as cr, QHW as cs, QOHR as ct, QPM as cu, QTLE as cv, QUESTIONNAIRE_CATEGORY_MOCK as cw, QUESTION_BANK_ITEM_CATEGORY_MOCK as cx, QWS as cy, RESPONSIBILITIES_CATEGORY_MOCK as cz, ACTIVITY_CATEGORIES as d, meetingTimeSlotMock as d$, applyEntityDefinitionFirestoreSnapshot as d0, automationCommandMiddleware as d1, automationMock as d2, avatarInterface as d3, awaitConversationMockSharedStorage as d4, axVersionDB as d5, axWorkflowExecutionDB as d6, axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows as d7, axcPatchEmployeeActivePrimaryPositionRefsFromRows as d8, axcPatchEmployeeManagerRefsFromRows as d9, dateTimeInterface as dA, descriptionInterface as dB, documentFolderSyncMiddleware as dC, emailInterface as dD, entityDefDb as dE, entityValidationMiddleware as dF, fileUploaderInterface as dG, finalizeActivityCategoryItemCounts as dH, findEmployeeById as dI, folderStorageMiddleware as dJ, groupOrderItemCalculatorMiddleware as dK, historyMiddleware as dL, identifierCommitMiddleware as dM, imageInterface as dN, inspectionOkXNaInterface as dO, loadMockPropertyDefinitions as dP, lockGuardMiddleware as dQ, longTextAnswerInterface as dR, lookupInterface as dS, lookupResolverMiddleware as dT, mapInterface as dU, meetingFilesMock as dV, meetingIds as dW, meetingMock as dX, meetingParticipantMock as dY, meetingRoleTypeMock as dZ, meetingSessionMock as d_, axcResolveCommandRegistrySeedId as da, axcResolveQueryRegistrySeedId as db, axcResolveWidgetCatalogSeedId as dc, bankCategory as dd, buildEntityStorageQuickSearchFilter as de, buildWorkflowInstanceCartableDemoRows as df, bypassAllFilters as dg, bypassOwnershipFilter as dh, bypassVisibilityFilter as di, calendarEventMock as dj, calendarEventTypeMockData as dk, calendarMock as dl, chatMessageMock as dm, chatMock as dn, checkboxInterface as dp, childCountMiddleware as dq, clearEntityDefinitionFirestoreCollections as dr, colorInterface as ds, computeDiff as dt, contactInterface as du, conversationDemoSeedUserIds as dv, createFileCastMiddleware as dw, createWidgetLayoutConfig as dx, createWorkflowDefinitionEntityMock as dy, dateInterface as dz, ACTIVITY_CATEGORY_ID_BY_KEY as e, meetingTypeFileTemplateMock as e0, meetingTypeMock as e1, mergeDetailRelationMiddleware as e2, mergeQuickSearchIntoRequest as e3, metadataCategoryMocks as e4, mockParticipantIndexForSecurityUserId as e5, mockQuestionBankItemByName as e6, mockRoleDefinitions as e7, multipleChoiceInterface as e8, multipleSelectInterface as e9, signatureInterface as eA, signatureLoaderMiddleware as eB, statusDefaultMiddleware as eC, tagInterface as eD, tenantMocks as eE, textAreaInterface as eF, textInterface as eG, timeDurationInterface as eH, titleInterface as eI, toUiRows as eJ, toggleInterface as eK, tokenCategoryIds as eL, tokenCategoryMocks as eM, urlInterface as eN, versionInterface as eO, visibilityFilterMiddleware as eP, workflowDefinitionEntityMock as eQ, workflowDefinitionIds as eR, workflowDefinitionMock as eS, yesNoInterface as eT, normalizeAnyFileArrayForView as ea, normalizeSnapshotFileFieldsForView as eb, numberInterface as ec, parseEntityStorageInsertData as ed, parseEntityStorageQueryRequest as ee, participantIds as ef, participantMock as eg, passwordInterface as eh, personIdentifierTypeMock as ei, personIds as ej, personLegalIds as ek, personMock as el, personNaturalIds as em, phoneInterface as en, primaryMiddleware as eo, provideMockPropertySetups as ep, qrcodeInterface as eq, questionBankItemMock as er, questionnaireCalculationMock as es, questionnaireMock as et, ratingInterface as eu, richTextInterface as ev, scaleInterface as ew, selectInterface as ex, selectionListInterface as ey, sexAtBirthInterface as ez, ACTIVITY_DEFINITIONS as f, AI_ASSIST_MOCK as g, AI_MODEL_MOCK as h, APPLICATIONS as i, APPLICATION_CATEGORY_IDS as j, APPLICATION_CATEGORY_MOCKS as k, AXCActivityCategorySeeder as l, mockUsers as m, AXCActivityDefinitionSeeder as n, AXCAiAssistSeeder as o, AXCAiManagementMockModule as p, AXCAiModelSeeder as q, resolveDelegatedAssistOptionModel as r, AXCAppTermDataSeeder as s, AXCAppVersionDataSeeder as t, AXCApplicationCategoryDataSeeder as u, AXCApplicationDataSeeder as v, AXCApplicationManagementMockModule as w, AXCAssessmentManagementMockModule as x, AXCAssetManagementMockModule as y, AXCAuthMockModule as z };
79635
- //# sourceMappingURL=acorex-connectivity-mock-acorex-connectivity-mock-DYj9f3l9.mjs.map
80020
+ export { AXCFileStorageServiceFirestore as $, AXCAiChatRouterService as A, AXCAuthMockModule as B, AXCCalendarDataSeeder as C, AXCCalendarEventDataSeeder as D, AXCCalendarManagementMockModule as E, AXCCommandRegistryDataSeeder as F, AXCCommonMockModule as G, AXCContactCoreMockModule as H, AXCContentManagementMockModule as I, AXCConversationDataSeeder as J, AXCConversationMockConversationApi as K, AXCConversationMockMessageApi as L, AXCConversationMockModule as M, AXCConversationMockRealtimeApi as N, AXCConversationMockUserApi as O, AXCCustomerManagementMockModule as P, AXCDashboardManagementMockModule as Q, AXCDataManagementMockModule as R, AXCDexieEntityStorageService as S, AXCDocumentManagementMockModule as T, AXCEditionDataSeeder as U, AXCEntityDefinitionSeederService as V, AXCEntityDefinitionsModule as W, AXCEntityStorageInsertCommand as X, AXCEntityStorageModule as Y, AXCEntityStorageQueryQuery as Z, AXCFileStorageServiceDexie as _, AXMAiModelStableIds as a, AXMDashboardChartDataSourceDefinition as a$, AXCFinancialCoreMockModule as a0, AXCFirestoreEntityStorageService as a1, AXCFormTemplateManagementMockModule as a2, AXCGoogleStrategyMock as a3, AXCHealthCoreMockModule as a4, AXCHelpDeskMockModule as a5, AXCHumanCapitalManagementMockModule as a6, AXCIdentifierManagementMockModule as a7, AXCImageCaptchaChallengeProviderMock as a8, AXCLearningManagementMockModule as a9, AXCTaskManagementMockModule as aA, AXCTenantManagementMockModule as aB, AXCTenantSeeder as aC, AXCTextTemplateRenderBackend as aD, AXCTokensDataSeeder as aE, AXCUserPassStrategyMock as aF, AXCVersionDB as aG, AXCVersioningService as aH, AXCWidgetCatalogDataSeeder as aI, AXCWorkflowCategorySeeder as aJ, AXCWorkflowDefinitionDataSeeder as aK, AXCWorkflowEngine as aL, AXCWorkflowExecutionDB as aM, AXCWorkflowExecutionStoreDexie as aN, AXCWorkflowExecutionStoreFirestore as aO, AXCWorkflowInstanceCartableDemoSeeder as aP, AXCWorkflowManagementMockModule as aQ, AXC_ENTITY_STORAGE_BACKEND_TYPE as aR, AXC_FIRESTORE_CONFIG as aS, AXC_FIRESTORE_DB as aT, AXC_WORKFLOW_EXECUTION_STORE as aU, AXMAiDemisAssistAgentUuid as aV, AXMAiDemisAssistId as aW, AXMAiPlatformAssistantAssistId as aX, AXMAutomationDataSeeder as aY, AXMBusinessUnitDataSeeder as aZ, AXMCalendarEventTypeSeeder as a_, AXCLocaleManagementMockModule as aa, AXCLocationManagementMockModule as ab, AXCLockService as ac, AXCMeasurementCoreMockModule as ad, AXCMeetingManagementMockModule as ae, AXCMetaDataDefinitionDataSeeder as af, AXCMetadataCategorySeeder as ag, AXCMiddlewaresModule as ah, AXCMockCaptchaChallengeComponent as ai, AXCMockEntityLogListener as aj, AXCMockModule as ak, AXCMockShowMetaDataFormPopupCommand as al, AXCNotificationManagementMockModule as am, AXCOrderManagementMockModule as an, AXCOrganizationManagementMockModule as ao, AXCPersonCoreMockModule as ap, AXCPlatformManagementMockModule as aq, AXCProcurementManagementMockModule as ar, AXCProductCatalogMockModule as as, AXCProjectManagementMockModule as at, AXCQueryRegistryDataSeeder as au, AXCReportManagementMockModule as av, AXCSecurityManagementMockModule as aw, AXCStoredEntityDefinitionLoader as ax, AXCSubscriptionManagementMockModule as ay, AXCSupplierManagementMockModule as az, resolveAssistSpeechModelId as b, FINANCE_PRO as b$, AXMEmployeeDataSeeder as b0, AXMEmploymentTypeDataSeeder as b1, AXMFormDataSourcesProvider as b2, AXMJobDefinitionDataSeeder as b3, AXMJobLevelDataSeeder as b4, AXMLeaveRequestDataSeeder as b5, AXMMeetingDataSeeder as b6, AXMMeetingFilesDataSeeder as b7, AXMMeetingParticipantDataSeeder as b8, AXMMeetingRoleTypeDataSeeder as b9, AXPMockLookupProvider as bA, AXPMockPolicyProvider as bB, AXPMockSequenceProvider as bC, AXPRoomDataSeeder as bD, AXPSecurityManagementRoleDataSeeder as bE, AXPSecurityManagementUserDataSeeder as bF, AXPTaskBoardPlatformManagementTaskProvider as bG, AXPTaskBoardProjectManagementTaskProvider as bH, AXVChangeType as bI, BCC as bJ, BOC as bK, BUSINESS_UNITS_MOCK as bL, CHAT_LAST_MESSAGE_IDS as bM, COLLABORATION_STANDARD as bN, COSTMANAGER_ENTERPRISE as bO, COSTMANAGER_PROFESSIONAL as bP, COSTMANAGER_STANDARD as bQ, CP as bR, CRM_ENTERPRISE as bS, DASHBOARDS as bT, EDITIONS as bU, EMPLOYEES_MOCK as bV, EMPLOYMENT_TYPES_MOCK as bW, ENTITY_DEFINITION_MAP as bX, ENTITY_REGISTRY as bY, FINANCE_BASIC as bZ, FINANCE_ENTERPRISE as b_, AXMMeetingSessionDataSeeder as ba, AXMMeetingTypeDataSeeder as bb, AXMMeetingTypeFileTemplateDataSeeder as bc, AXMPositionAssignmentDataSeeder as bd, AXMPositionDataSeeder as be, AXMQuestionBankItemCategoryDataSeeder as bf, AXMQuestionBankItemDataSeeder as bg, AXMQuestionnaireCalculationDataSeeder as bh, AXMQuestionnaireCategoryDataSeeder as bi, AXMQuestionnaireDataSeeder as bj, AXMResponsibilityDataSeeder as bk, AXMTagDataSeeder as bl, AXMTeamBusinessUnitDataSeeder as bm, AXMTeamDataSeeder as bn, AXMTeamMemberDataSeeder as bo, AXMTeamMemberRoleDataSeeder as bp, AXMWorkflowDashboardChartDataSourceDefinition as bq, AXM_AI_REGISTRY_COMMAND_NAME as br, AXM_AI_REGISTRY_QUERY_NAME as bs, AXM_CORPORATE_BUSINESS_UNIT_ID as bt, AXPDashboardDataSeeder as bu, AXPIdentifierDB as bv, AXPMessageDataSeeder as bw, AXPMockChecksumProvider as bx, AXPMockClockProvider as by, AXPMockIdentifierService as bz, resolveDelegatedAssistOptionString as c, activityCategoryMocks as c$, G as c0, HR_ENTERPRISE as c1, HW as c2, JOB_DEFINITIONS_CATEGORY_MOCK as c3, JOB_DEFINITIONS_MOCK as c4, JOB_DEFINITION_CATEGORY_KEY_TO_ID as c5, JOB_LEVELS_MOCK as c6, LASER_PLUMBING_TENANT_ID as c7, LEAVE_REQUESTS_MOCK as c8, MAGFA_COMMERCE_STANDARD as c9, RESPONSIBILITIES_CATEGORY_MOCK as cA, RESPONSIBILITIES_MOCK as cB, RESPONSIBILITY_CATEGORY_KEY_TO_ID as cC, SAFETYMINDER_BASIC as cD, SAFETYMINDER_ENTERPRISE as cE, SAFETYMINDER_PROFESSIONAL as cF, SHOP_BASIC as cG, SHOP_ENTERPRISE as cH, SHOP_PRO as cI, TAGS_MOCK as cJ, TASKS as cK, TASK_STATUSES as cL, TASK_TEMPLATES as cM, TASK_TYPES as cN, TEAMS_CATEGORY_MOCK as cO, TEAMS_MOCK as cP, TEAM_BUSINESS_UNITS_MOCK as cQ, TEAM_CATEGORY_KEY_TO_ID as cR, TEAM_MEMBERS_MOCK as cS, TEAM_MEMBER_ROLES_MOCK as cT, TIMEPLICITY_TENANT_ID as cU, TLA as cV, TOKENS as cW, TPC as cX, VISIBILITY_FILTER_BYPASS as cY, WORKFLOW_CATEGORIES as cZ, WS as c_, MAGFA_CONVERSATION_DASHBOARD as ca, MAGFA_TENANT_ID as cb, METADATA_CATEGORY_IDS as cc, METADATA_GENERAL_CATEGORY_REFS as cd, METADATA_SYSTEM_CATEGORY_REFS as ce, MLC as cf, OHR as cg, ORDERING_BASIC as ch, ORDERING_ENTERPRISE as ci, ORDERING_STANDARD as cj, OWNERSHIP_FILTER_BYPASS as ck, PLATFORM_CONSOLE as cl, PLATFORM_TENANT_ID as cm, PM as cn, POSITIONS_CATEGORY_MOCK as co, POSITIONS_MOCK as cp, POSITION_ASSIGNMENTS_MOCK as cq, QCP as cr, QGEN as cs, QHW as ct, QOHR as cu, QPM as cv, QTLE as cw, QUESTIONNAIRE_CATEGORY_MOCK as cx, QUESTION_BANK_ITEM_CATEGORY_MOCK as cy, QWS as cz, axcSyncSingleEmployeeDenormalizedOrgFields as d, meetingSessionMock as d$, activityDefinitionEntityMock as d0, applyEntityDefinitionFirestoreSnapshot as d1, automationCommandMiddleware as d2, automationMock as d3, avatarInterface as d4, awaitConversationMockSharedStorage as d5, axVersionDB as d6, axWorkflowExecutionDB as d7, axcPatchEmployeeActivePrimaryBusinessUnitRefsFromRows as d8, axcPatchEmployeeActivePrimaryPositionRefsFromRows as d9, dateInterface as dA, dateTimeInterface as dB, descriptionInterface as dC, documentFolderSyncMiddleware as dD, emailInterface as dE, entityDefDb as dF, entityValidationMiddleware as dG, fileUploaderInterface as dH, finalizeActivityCategoryItemCounts as dI, findEmployeeById as dJ, folderStorageMiddleware as dK, groupOrderItemCalculatorMiddleware as dL, historyMiddleware as dM, identifierCommitMiddleware as dN, imageInterface as dO, inspectionOkXNaInterface as dP, loadMockPropertyDefinitions as dQ, lockGuardMiddleware as dR, longTextAnswerInterface as dS, lookupInterface as dT, lookupResolverMiddleware as dU, mapInterface as dV, meetingFilesMock as dW, meetingIds as dX, meetingMock as dY, meetingParticipantMock as dZ, meetingRoleTypeMock as d_, axcPatchEmployeeManagerRefsFromRows as da, axcResolveCommandRegistrySeedId as db, axcResolveQueryRegistrySeedId as dc, axcResolveWidgetCatalogSeedId as dd, bankCategory as de, buildEntityStorageQuickSearchFilter as df, buildWorkflowInstanceCartableDemoRows as dg, bypassAllFilters as dh, bypassOwnershipFilter as di, bypassVisibilityFilter as dj, calendarEventMock as dk, calendarEventTypeMockData as dl, calendarMock as dm, chatMessageMock as dn, chatMock as dp, checkboxInterface as dq, childCountMiddleware as dr, clearEntityDefinitionFirestoreCollections as ds, colorInterface as dt, computeDiff as du, contactInterface as dv, conversationDemoSeedUserIds as dw, createFileCastMiddleware as dx, createWidgetLayoutConfig as dy, createWorkflowDefinitionEntityMock as dz, ACTIVITY_CATEGORIES as e, meetingTimeSlotMock as e0, meetingTypeFileTemplateMock as e1, meetingTypeMock as e2, mergeDetailRelationMiddleware as e3, mergeQuickSearchIntoRequest as e4, metadataCategoryMocks as e5, mockParticipantIndexForSecurityUserId as e6, mockQuestionBankItemByName as e7, mockRoleDefinitions as e8, multipleChoiceInterface as e9, sexAtBirthInterface as eA, signatureInterface as eB, signatureLoaderMiddleware as eC, statusDefaultMiddleware as eD, tagInterface as eE, tenantMocks as eF, textAreaInterface as eG, textInterface as eH, timeDurationInterface as eI, titleInterface as eJ, toUiRows as eK, toggleInterface as eL, tokenCategoryIds as eM, tokenCategoryMocks as eN, urlInterface as eO, versionInterface as eP, visibilityFilterMiddleware as eQ, workflowDefinitionEntityMock as eR, workflowDefinitionIds as eS, workflowDefinitionMock as eT, yesNoInterface as eU, multipleSelectInterface as ea, normalizeAnyFileArrayForView as eb, normalizeSnapshotFileFieldsForView as ec, numberInterface as ed, parseEntityStorageInsertData as ee, parseEntityStorageQueryRequest as ef, participantIds as eg, participantMock as eh, passwordInterface as ei, personIdentifierTypeMock as ej, personIds as ek, personLegalIds as el, personMock as em, personNaturalIds as en, phoneInterface as eo, primaryMiddleware as ep, provideMockPropertySetups as eq, qrcodeInterface as er, questionBankItemMock as es, questionnaireCalculationMock as et, questionnaireMock as eu, ratingInterface as ev, richTextInterface as ew, scaleInterface as ex, selectInterface as ey, selectionListInterface as ez, ACTIVITY_CATEGORY_ID_BY_KEY as f, ACTIVITY_DEFINITIONS as g, AI_ASSIST_MOCK as h, AI_MODEL_MOCK as i, APPLICATIONS as j, APPLICATION_CATEGORY_IDS as k, APPLICATION_CATEGORY_MOCKS as l, mockUsers as m, AXCActivityCategorySeeder as n, AXCActivityDefinitionSeeder as o, AXCAiAssistSeeder as p, AXCAiManagementMockModule as q, resolveDelegatedAssistOptionModel as r, AXCAiModelSeeder as s, AXCAppTermDataSeeder as t, AXCAppVersionDataSeeder as u, AXCApplicationCategoryDataSeeder as v, AXCApplicationDataSeeder as w, AXCApplicationManagementMockModule as x, AXCAssessmentManagementMockModule as y, AXCAssetManagementMockModule as z };
80021
+ //# sourceMappingURL=acorex-connectivity-mock-acorex-connectivity-mock-CUAaMdpu.mjs.map