@acorex-platform/module-conversation-client 0.0.30 → 0.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/fesm2022/{acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-C6fmww4a.mjs → acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CDlDFzbl.mjs} +8218 -6974
  2. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-CDlDFzbl.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-CmDyRc1Y.mjs → acorex-platform-module-conversation-client-after-message-sent.command-yzW01skh.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-CmDyRc1Y.mjs.map → acorex-platform-module-conversation-client-after-message-sent.command-yzW01skh.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-CgXdPrQH.mjs → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DhRvuCex.mjs} +6 -6
  6. package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-CgXdPrQH.mjs.map → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DhRvuCex.mjs.map} +1 -1
  7. package/fesm2022/{acorex-platform-module-conversation-client-assist-tool-detail-popup.component-GC58B_n0.mjs → acorex-platform-module-conversation-client-assist-tool-detail-popup.component-BRW1cHN6.mjs} +3 -3
  8. package/fesm2022/{acorex-platform-module-conversation-client-assist-tool-detail-popup.component-GC58B_n0.mjs.map → acorex-platform-module-conversation-client-assist-tool-detail-popup.component-BRW1cHN6.mjs.map} +1 -1
  9. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-C47tt1me.mjs +1386 -0
  10. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-C47tt1me.mjs.map +1 -0
  11. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-CjDlRcZn.mjs → acorex-platform-module-conversation-client-chat-call-start-popup.component-EZjVSlhm.mjs} +4 -4
  12. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-CjDlRcZn.mjs.map → acorex-platform-module-conversation-client-chat-call-start-popup.component-EZjVSlhm.mjs.map} +1 -1
  13. package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-BVJdVPke.mjs → acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-CppNPfqe.mjs} +3 -3
  14. package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-BVJdVPke.mjs.map → acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-CppNPfqe.mjs.map} +1 -1
  15. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-BBL8iEqc.mjs +472 -0
  16. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-BBL8iEqc.mjs.map +1 -0
  17. package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-5wGD4EjK.mjs → acorex-platform-module-conversation-client-comments-page.component-Djn8EikR.mjs} +2 -2
  18. package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-5wGD4EjK.mjs.map → acorex-platform-module-conversation-client-comments-page.component-Djn8EikR.mjs.map} +1 -1
  19. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-message.mjs +274 -0
  20. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-message.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-room.mjs +295 -0
  22. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-room.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs +52 -0
  24. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-Dz7cO1P4.mjs +242 -0
  26. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-Dz7cO1P4.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs +263 -0
  28. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog.mjs +2 -0
  30. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs +39 -6
  32. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs.map +1 -1
  33. package/fesm2022/acorex-platform-module-conversation-client-local-entities.mjs +30 -0
  34. package/fesm2022/acorex-platform-module-conversation-client-local-entities.mjs.map +1 -0
  35. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-xUnxBY_Y.mjs → acorex-platform-module-conversation-client-mark-conversation-unread.command-BoTNaBxS.mjs} +2 -2
  36. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-xUnxBY_Y.mjs.map → acorex-platform-module-conversation-client-mark-conversation-unread.command-BoTNaBxS.mjs.map} +1 -1
  37. package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-B03q60Qx.mjs → acorex-platform-module-conversation-client-open-chat.command-VgeGqj-z.mjs} +16 -1
  38. package/fesm2022/acorex-platform-module-conversation-client-open-chat.command-VgeGqj-z.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-CPpgvLKH.mjs → acorex-platform-module-conversation-client-retry-assist-response.command-DYIpLKDB.mjs} +2 -2
  40. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-CPpgvLKH.mjs.map → acorex-platform-module-conversation-client-retry-assist-response.command-DYIpLKDB.mjs.map} +1 -1
  41. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-D97E8VvL.mjs +50 -0
  42. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-D97E8VvL.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-module-conversation-client.mjs +1 -1
  44. package/package.json +18 -2
  45. package/types/acorex-platform-module-conversation-client-contracts-entities-message.d.ts +5 -0
  46. package/types/acorex-platform-module-conversation-client-contracts-entities-room.d.ts +5 -0
  47. package/types/acorex-platform-module-conversation-client-contracts-entity-catalog.d.ts +10 -0
  48. package/types/acorex-platform-module-conversation-client-contracts.d.ts +28 -18
  49. package/types/acorex-platform-module-conversation-client-local-entities.d.ts +12 -0
  50. package/types/acorex-platform-module-conversation-client.d.ts +149 -74
  51. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-C6fmww4a.mjs.map +0 -1
  52. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-C8b3D66q.mjs +0 -871
  53. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-C8b3D66q.mjs.map +0 -1
  54. package/fesm2022/acorex-platform-module-conversation-client-open-chat.command-B03q60Qx.mjs.map +0 -1
  55. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-B6v_j64v.mjs +0 -142
  56. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-B6v_j64v.mjs.map +0 -1
@@ -187,7 +187,7 @@ interface AXPollPayload {
187
187
  expiresAt?: Date;
188
188
  totalVotes?: number;
189
189
  }
190
- type AXSystemEventType = 'user_joined' | 'user_left' | 'title_changed' | 'avatar_changed' | 'call_declined' | 'call_missed' | 'call_cancelled' | 'custom';
190
+ type AXSystemEventType = 'user_joined' | 'user_left' | 'title_changed' | 'avatar_changed' | 'call_declined' | 'call_missed' | 'call_cancelled' | 'call_completed' | 'custom';
191
191
  interface AXSystemPayload {
192
192
  type: 'system';
193
193
  eventType: AXSystemEventType;
@@ -203,7 +203,7 @@ interface AXNodePayload {
203
203
  /** Aligned with `@acorex/components/conversation` — node payloads use {@link AXNodePayload} at runtime with an explicit cast. */
204
204
  type AXMessagePayload = AXTextPayload | AXImagePayload | AXVideoPayload | AXAudioPayload | AXVoicePayload | AXFilePayload | AXLocationPayload | AXStickerPayload | AXPollPayload | AXSystemPayload;
205
205
  type AXMessageStatus = 'sending' | 'sent' | 'delivered' | 'read' | 'failed';
206
- type AXMessageType = 'text' | 'image' | 'video' | 'audio' | 'voice' | 'file' | 'location' | 'sticker' | 'poll' | 'system' | 'node' | 'assist-response' | string;
206
+ type AXMessageType = 'text' | 'image' | 'video' | 'audio' | 'voice' | 'file' | 'location' | 'sticker' | 'poll' | 'call-log' | 'system' | 'node' | 'assist-response' | string;
207
207
  /** Reaction on a message. */
208
208
  interface AXReaction {
209
209
  /** Emoji character */
@@ -270,8 +270,9 @@ interface AXMConversationMessage extends AXPEntityModel<string> {
270
270
  name?: string;
271
271
  }
272
272
 
273
- type AXParticipantRole = 'admin' | 'moderator' | 'member';
274
- type AXParticipantStatus = 'online' | 'offline' | 'away';
273
+ type AXParticipantRole = 'owner' | 'admin' | 'moderator' | 'member' | 'guest';
274
+ /** @deprecated Presence lives on the user store, not the participant snapshot. */
275
+ type AXParticipantStatus = 'online' | 'offline' | 'away' | 'busy';
275
276
  /** Extended profile fields shown in private-chat info panels. */
276
277
  interface AXUserProfile {
277
278
  bio?: string;
@@ -282,7 +283,7 @@ interface AXUserProfile {
282
283
  company?: string;
283
284
  title?: string;
284
285
  }
285
- /** Represents a user/member in a conversation. */
286
+ /** Represents a user/member in a conversation (identity snapshot; live presence is per-user). */
286
287
  interface AXParticipant {
287
288
  /** Unique identifier for the participant */
288
289
  id: string;
@@ -303,26 +304,26 @@ interface AXParticipant {
303
304
  icon?: string;
304
305
  /** Role in the conversation (for groups/channels) */
305
306
  role?: AXParticipantRole;
306
- /** Current online status */
307
- status?: AXParticipantStatus;
308
- /** Last seen timestamp (when offline/away) */
309
- lastSeen?: Date;
310
307
  /** Custom metadata */
311
308
  metadata?: Record<string, unknown>;
312
309
  }
313
310
  type AXConversationType = 'private' | 'group' | 'channel' | 'bot';
314
- /** Conversation status information. */
311
+ /**
312
+ * @deprecated Typing and presence are ephemeral (service + realtime), not stored on the room.
313
+ */
315
314
  interface AXConversationStatus {
316
315
  /** Whether someone is typing */
317
316
  isTyping: boolean;
318
317
  /** User IDs currently typing */
319
318
  typingUsers: string[];
320
319
  /** Online presence (for private chats) */
321
- presence?: 'online' | 'offline' | 'away';
320
+ presence?: 'online' | 'offline' | 'away' | 'busy';
322
321
  /** Last seen timestamp (for private chats when offline) */
323
322
  lastSeen?: Date;
324
323
  }
325
- /** Conversation settings. */
324
+ /**
325
+ * @deprecated Mute/notifications are per-user room preferences (`AXConversationRoomPreferences`), not room fields.
326
+ */
326
327
  interface AXConversationSettings {
327
328
  /** Muted until timestamp */
328
329
  mutedUntil?: Date;
@@ -355,6 +356,8 @@ interface AXConversationMetadata extends Record<string, unknown> {
355
356
  * Defaults to `true` when omitted.
356
357
  */
357
358
  reactionsEnabled?: boolean;
359
+ /** Optional composer draft for REST backends (not a canonical room field). */
360
+ draft?: string;
358
361
  }
359
362
 
360
363
  /** Distinguishes chat inbox rooms from entity comment threads in the unified store. */
@@ -387,10 +390,6 @@ interface AXMConversationRoom extends AXPEntityModel<string> {
387
390
  unreadCount: number;
388
391
  /** Number of unread mentions */
389
392
  unreadMentions?: number;
390
- /** Current status (typing, presence, etc.) */
391
- status: AXConversationStatus;
392
- /** User-specific settings */
393
- settings: AXConversationSettings;
394
393
  /** Pinned messages IDs */
395
394
  pinnedMessageIds?: string[];
396
395
  /** Conversation creation timestamp */
@@ -403,7 +402,10 @@ interface AXMConversationRoom extends AXPEntityModel<string> {
403
402
  pinned?: boolean;
404
403
  /** Whether conversation is archived */
405
404
  archived?: boolean;
406
- /** Draft message text */
405
+ /**
406
+ * Composer draft persisted on the room for REST backends.
407
+ * Not part of the `@acorex/components/conversation` room model.
408
+ */
407
409
  draft?: string;
408
410
  /** Custom metadata */
409
411
  metadata?: AXConversationMetadata;
@@ -453,7 +455,15 @@ type ConversationAssistWireEvent = {
453
455
  };
454
456
 
455
457
  declare function axmExtractAssistIdFromMetadata(metadata: Record<string, unknown> | undefined): string | undefined;
458
+ /**
459
+ * Legacy detector for unsupported agent-as-chat rooms. Not an engine targeting API.
460
+ */
456
461
  declare function axmExtractDirectAgentIdFromMetadata(metadata: Record<string, unknown> | undefined): string | undefined;
462
+ /**
463
+ * True when the room is a leftover agent-as-chat conversation with no Assist id.
464
+ * Callers must fail explicitly; do not map these rooms onto the default Assist.
465
+ */
466
+ declare function axmIsUnsupportedLegacyAgentAssistConversation(metadata: Record<string, unknown> | undefined): boolean;
457
467
  declare function axmConversationHasAiChat(metadata: Record<string, unknown> | undefined): boolean;
458
468
  declare function axmChatAiPeerParticipantId(catalogId: string): string;
459
469
  declare function axmReadAssistResponseStatus(metadata: Record<string, unknown> | undefined): string | undefined;
@@ -493,5 +503,5 @@ interface AXMConversationAssistMessageHandler {
493
503
  }
494
504
  declare const AXM_CONVERSATION_ASSIST_MESSAGE_HANDLER: unique symbol;
495
505
 
496
- export { AXMPermissionsKeys, AXM_ASSIST_CONVERSATION_TITLE_SYSTEM_PROMPT, AXM_COMMENT_LIKE_EMOJI, AXM_CONVERSATION_ASSIST_MESSAGE_HANDLER, AXPCollaborationPermissionKeys, AXPConversationMenuKeys, RootConfig, axmBuildHeuristicConversationTitleFallback, axmChatAiPeerParticipantId, axmCoerceMessageTimestampMs, axmCompareMessagesChronologically, axmConversationHasAiChat, axmEnsureAssistMessageSortsAfterReplyTarget, axmExtractAssistIdFromMetadata, axmExtractDirectAgentIdFromMetadata, axmNormalizeConversationTitle, axmReadAssistResponseStatus, axmReadReplyToUserMessageId, axmResolveAssistMessageTimestamp, axmSanitizeAiGeneratedConversationTitle, extractMessageTextFromPayload };
506
+ export { AXMPermissionsKeys, AXM_ASSIST_CONVERSATION_TITLE_SYSTEM_PROMPT, AXM_COMMENT_LIKE_EMOJI, AXM_CONVERSATION_ASSIST_MESSAGE_HANDLER, AXPCollaborationPermissionKeys, AXPConversationMenuKeys, RootConfig, axmBuildHeuristicConversationTitleFallback, axmChatAiPeerParticipantId, axmCoerceMessageTimestampMs, axmCompareMessagesChronologically, axmConversationHasAiChat, axmEnsureAssistMessageSortsAfterReplyTarget, axmExtractAssistIdFromMetadata, axmExtractDirectAgentIdFromMetadata, axmIsUnsupportedLegacyAgentAssistConversation, axmNormalizeConversationTitle, axmReadAssistResponseStatus, axmReadReplyToUserMessageId, axmResolveAssistMessageTimestamp, axmSanitizeAiGeneratedConversationTitle, extractMessageTextFromPayload };
497
507
  export type { AXAudioMediaItem, AXAudioPayload, AXConversationMessageListBackground, AXConversationMessageListThemeBackground, AXConversationMetadata, AXConversationSettings, AXConversationStatus, AXConversationType, AXFileMediaItem, AXFilePayload, AXImageMediaItem, AXImagePayload, AXLink, AXLinkPreview, AXLocationPayload, AXMCommentEntityData, AXMConversationAssistMessageHandler, AXMConversationMessage, AXMConversationReaction, AXMConversationRoom, AXMConversationRoomKind, AXMReactionType, AXMediaItemFields, AXMention, AXMessagePayload, AXMessageStatus, AXMessageType, AXNodePayload, AXParticipant, AXParticipantRole, AXParticipantStatus, AXPollOption, AXPollPayload, AXReaction, AXStickerPayload, AXSystemEventType, AXSystemPayload, AXTextFormat, AXTextPayload, AXUserProfile, AXVideoMediaItem, AXVideoPayload, AXVoicePayload, ConversationAssistFrontendToolCall, ConversationAssistWireEvent };
@@ -0,0 +1,12 @@
1
+ import * as _angular_core from '@angular/core';
2
+ export { conversationLocalEntityCatalog } from '@acorex-platform/module-conversation-client/contracts/entity-catalog';
3
+
4
+ /**
5
+ * Registers conversation layouts on the client from packaged factories.
6
+ * Each `import()` targets a secondary entry so unused entities stay out of the
7
+ * bundle. Do not add this to the demo app; demo continues to load layouts via
8
+ * `Domain:GetEntityLayout`.
9
+ */
10
+ declare function provideConversationLocalEntities(): _angular_core.EnvironmentProviders;
11
+
12
+ export { provideConversationLocalEntities };
@@ -8,7 +8,7 @@ import { AXPExecuteCommand, AXPMultiLanguageString, AXPWidgetNode, AXPUserRefere
8
8
  import { AXPDeviceService } from '@acorex-platform/framework-client/core';
9
9
  import { AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';
10
10
  import * as _acorex_components_conversation from '@acorex/components/conversation';
11
- import { AXConversationApi, AXConversation, AXConversationMessageApi, AXConversationMessage, AXConversationRealtimeApi, AXConversationUserApi, AXConversationCreateData, AXConversationPagination, AXConversationFilters, AXConversationPaginatedResult, AXConversationUpdateData, AXConversationParticipant, AXConversationParticipantUpdate, AXConversationSettingsUpdate, AXConversationSendMessageCommand, AXConversationMessagePayload, AXConversationMessageSearchFilters, AXConversationReadReceipt, AXConversationMessageForwardData, AXConversationPinnedMessage, AXConversationConnectionStatus, AXConversationConnectionOptions, AXConversationConnectionEvent, AXConversationTypingIndicator, AXConversationNotificationEvent, AXConversationCallEvent, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationPresenceUpdate, AXConversationPresenceStatus, AXConversationBlockReportReason, AXConversationTab, AXConversationService } from '@acorex/components/conversation';
11
+ import { AXConversationApi, AXConversation, AXConversationMessageApi, AXConversationMessage, AXConversationRealtimeApi, AXConversationUserApi, AXConversationCreateData, AXConversationPagination, AXConversationFilters, AXConversationPaginatedResult, AXConversationUpdateData, AXConversationParticipant, AXConversationParticipantUpdate, AXConversationSendMessageCommand, AXConversationMessagePayload, AXConversationMessageSearchFilters, AXConversationReadReceipt, AXConversationMessageForwardData, AXConversationPinnedMessage, AXConversationTypingIndicator, AXConversationUser, AXConversationUserProfileUpdate, AXConversationUserSearchFilters, AXConversationPresenceUpdate, AXConversationPresenceStatus, AXConversationBlockReportReason, AXConversationRoomPreferencesMap, AXConversationRoomPreferences, AXConversationTab, AXConversationConnectionStatus, AXConversationService } from '@acorex/components/conversation';
12
12
  import { AXMConversationRoom, AXMConversationMessage, AXMCommentEntityData, AXReaction, AXMessagePayload, AXMReactionType } from '@acorex-platform/module-conversation-client/contracts';
13
13
  import { Observable } from 'rxjs';
14
14
  import { AXClickEvent, AXStyleLookType, AXPlacement } from '@acorex/cdk/common';
@@ -19,6 +19,8 @@ import { AXWysiwygContainerComponent } from '@acorex/components/wysiwyg';
19
19
  import { AXPCommand, AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';
20
20
  import { AXBasePageComponent } from '@acorex/components/page';
21
21
  import { AXPWidgetConfig } from '@acorex-platform/framework-shared/widget-core';
22
+ import * as _ngrx_signals from '@ngrx/signals';
23
+ import * as _acorex_platform_framework_client_themes_shared from '@acorex-platform/framework-client/themes/shared';
22
24
 
23
25
  declare class AXMConversationModule {
24
26
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMConversationModule, never>;
@@ -44,7 +46,6 @@ declare class AXMChatComponent extends AXPPageLayoutBaseComponent {
44
46
  #private;
45
47
  private readonly conversationService;
46
48
  private readonly chatConversationApi;
47
- private readonly assistResponse;
48
49
  private readonly miniChatPanelService;
49
50
  private readonly composerService;
50
51
  private readonly infoBarService;
@@ -52,10 +53,11 @@ declare class AXMChatComponent extends AXPPageLayoutBaseComponent {
52
53
  private readonly _assistChatDebugModeInit;
53
54
  private readonly activatedRoute;
54
55
  private readonly dialogService;
55
- private readonly popupService;
56
56
  private readonly badgeService;
57
57
  protected readonly deviceService: AXPDeviceService;
58
+ private readonly destroyRef;
58
59
  private readonly routeConversationId;
60
+ private readonly routerUrl;
59
61
  ngOnInit(): Promise<void>;
60
62
  /**
61
63
  * Computed signal to check if there is an active conversation selected.
@@ -69,32 +71,21 @@ declare class AXMChatComponent extends AXPPageLayoutBaseComponent {
69
71
  /**
70
72
  * Handles conversation selection from the sidebar.
71
73
  * Navigates to the selected conversation route.
72
- * On mobile, closes the sidebar after selection.
73
74
  * @param conversationId - The ID of the selected conversation.
74
75
  */
75
76
  onConversationSelected(conversationId: string): void;
76
- /**
77
- * Navigates back to the conversation list (mobile view).
78
- * Removes the route param and clears the active conversation.
79
- * Opens the sidebar to show the conversation list.
80
- */
77
+ /** Mobile back: return to the full-screen conversation list (no layout sidebar). */
81
78
  openChatList(): void;
82
79
  /**
83
80
  * Opens the platform conversation info panel when the info-bar title/avatar area is clicked.
84
81
  */
85
82
  onInfoBarClick(): void;
86
- /** Composer Stop — abort server-side assist generation and SSE stream updates. */
87
- onComposerGenerationCancelled(): void;
88
83
  /**
89
84
  * Handles Escape key from chat container.
90
85
  * Replicates conversation source behavior by closing active conversation here.
91
86
  * Also keeps URL and chat state in sync.
92
87
  */
93
88
  onContainerEscape(): void;
94
- /**
95
- * Toggles the start side (sidebar) visibility.
96
- */
97
- protected toggleStartSide(): void;
98
89
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChatComponent, never>;
99
90
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMChatComponent, "axm-chat", never, {}, {}, never, never, true, never>;
100
91
  }
@@ -170,7 +161,6 @@ declare class AXMChatEntityConversationApi extends AXMChatConversationApi {
170
161
  pinConversation(conversationId: string): Promise<void>;
171
162
  unpinConversation(conversationId: string): Promise<void>;
172
163
  markConversationAsRead(conversationId: string): Promise<void>;
173
- markConversationAsUnread(conversationId: string): Promise<void>;
174
164
  searchConversations(query: string): Promise<AXConversation[]>;
175
165
  filterConversations(filters: AXConversationFilters, pagination?: AXConversationPagination): Promise<AXConversationPaginatedResult<AXConversation>>;
176
166
  findEntityConversations(entityType: string, entityId: string): Promise<AXConversation[]>;
@@ -179,10 +169,6 @@ declare class AXMChatEntityConversationApi extends AXMChatConversationApi {
179
169
  removeParticipant(conversationId: string, userId: string): Promise<AXConversation>;
180
170
  leaveConversation(conversationId: string): Promise<void>;
181
171
  updateParticipant(conversationId: string, update: AXConversationParticipantUpdate): Promise<AXConversation>;
182
- getConversationSettings(conversationId: string): Promise<AXConversationSettingsUpdate>;
183
- updateConversationSettings(conversationId: string, settings: AXConversationSettingsUpdate): Promise<void>;
184
- muteConversation(conversationId: string, duration?: number): Promise<void>;
185
- unmuteConversation(conversationId: string): Promise<void>;
186
172
  uploadConversationAvatar(_conversationId: string, _file: File): Promise<string>;
187
173
  getConversationMedia(_conversationId: string, pagination?: AXConversationPagination): Promise<AXConversationPaginatedResult<unknown>>;
188
174
  addConversationTags(_conversationId: string, _tags: string[]): Promise<void>;
@@ -201,14 +187,20 @@ declare class AXMChatEntityConversationApi extends AXMChatConversationApi {
201
187
  declare class AXMChatEntityConversationFocusHandler {
202
188
  private readonly userApi;
203
189
  private readonly commandService;
190
+ private readonly session;
204
191
  private readonly focusService;
192
+ private readonly inAppSync;
205
193
  private readonly assistResponse;
206
194
  private readonly realtimeConnection;
195
+ private readonly document;
196
+ private readonly destroyRef;
207
197
  private subscribedConversationId;
208
198
  private focusSyncTimer;
209
199
  private pendingFocusConversationId;
200
+ constructor();
210
201
  reportFocusedConversation(conversationId: string | null): void;
211
202
  private runFocusedConversationSync;
203
+ private dismissInboxForVisibleFocus;
212
204
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChatEntityConversationFocusHandler, never>;
213
205
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMChatEntityConversationFocusHandler>;
214
206
  }
@@ -240,6 +232,11 @@ declare function axmRoomEntityToConversation(room: AXMConversationRoom, currentU
240
232
  * Maps a persisted message entity to the conversation {@link AXConversationMessage} contract.
241
233
  */
242
234
  declare function axmMessageEntityToMessage(message: AXMConversationMessage): AXConversationMessage;
235
+ /**
236
+ * Builds a UI message from a realtime envelope, filling id/conversationId when
237
+ * the snapshot omitted them (Mongo `_id`, partial payloads).
238
+ */
239
+ declare function axmHydrateRealtimeConversationMessage(snapshot: Record<string, unknown> | undefined, messageId: string, conversationId: string): AXConversationMessage | null;
243
240
  /**
244
241
  * Maps a security-management user row to {@link AXConversationParticipant}.
245
242
  */
@@ -247,6 +244,7 @@ declare function axmUserRowToParticipant(user: {
247
244
  id: string;
248
245
  displayName?: string;
249
246
  username?: string;
247
+ avatar?: string | null;
250
248
  }): AXConversationParticipant;
251
249
 
252
250
  /**
@@ -263,6 +261,9 @@ declare class AXMChatEntityMessageApi extends AXMChatMessageApi {
263
261
  private readonly conversationStore;
264
262
  private readonly realtime;
265
263
  private readonly typingStopTimers;
264
+ private readonly typingEmitState;
265
+ private static readonly TYPING_EMIT_THROTTLE_MS;
266
+ private static readonly TYPING_STOP_IDLE_MS;
266
267
  private readonly messageData;
267
268
  private readonly roomData;
268
269
  private requireConversationParticipant;
@@ -316,57 +317,27 @@ declare class AXMChatEntityMessageApi extends AXMChatMessageApi {
316
317
  */
317
318
  declare class AXMChatEntityRealtimeApi extends AXMChatRealtimeApi {
318
319
  private readonly bus;
319
- private readonly realtimeConnection;
320
320
  private readonly presence;
321
- readonly connectionStatus$: Observable<AXConversationConnectionStatus>;
322
- connect(_options?: AXConversationConnectionOptions): Promise<void>;
323
- disconnect(): Promise<void>;
324
- isConnected(): boolean;
325
- reconnect(): Promise<void>;
326
- subscribeToConnectionEvents(): Observable<AXConversationConnectionEvent>;
321
+ private readonly chatLastSeen;
327
322
  subscribeToMessages(conversationId: string): Observable<AXConversationMessage>;
328
323
  subscribeToMessageUpdates(conversationId?: string): Observable<AXConversationMessage>;
329
324
  subscribeToMessageDeletions(_conversationId?: string): Observable<string>;
330
- subscribeToMessageReactions(conversationId?: string): Observable<AXConversationMessage>;
331
- subscribeToConversationUpdates(): Observable<AXConversation>;
332
- subscribeToConversationCreated(): Observable<AXConversation>;
333
- subscribeToConversationDeleted(): Observable<string>;
334
- subscribeToTypingIndicators(conversationId: string): Observable<AXConversationTypingIndicator>;
335
- subscribeToPresenceUpdates(userIds?: string[]): Observable<_acorex_components_conversation.AXConversationPresenceUpdate>;
336
- subscribeToReadReceipts(conversationId?: string): Observable<{
337
- messageId: string;
338
- userId: string;
339
- readAt: Date;
340
- }>;
341
- subscribeToNotifications(): Observable<AXConversationNotificationEvent>;
342
- subscribeToCallEvents(): Observable<AXConversationCallEvent>;
343
- subscribeToUserBlockEvents(): Observable<{
344
- userId: string;
345
- blocked: boolean;
346
- }>;
347
- subscribeToParticipantEvents(_conversationId?: string): Observable<{
348
- conversationId: string;
349
- userId: string;
350
- action: 'added' | 'removed';
351
- }>;
352
- subscribeToSystemEvents(): Observable<{
353
- type: string;
354
- message: string;
355
- data?: unknown;
356
- }>;
357
325
  subscribeToMessageStatusChanges(conversationId?: string): Observable<{
358
326
  messageId: string;
359
327
  status: 'sending' | 'sent' | 'delivered' | 'read' | 'failed';
360
328
  timestamp: Date;
361
329
  }>;
362
- subscribeToConversationSettingsChanges(_conversationId?: string): Observable<{
363
- conversationId: string;
364
- settings: Record<string, unknown>;
365
- }>;
366
- subscribeToDraftChanges(_conversationId?: string): Observable<{
367
- conversationId: string;
368
- draft: string | null;
330
+ subscribeToReadReceipts(conversationId?: string): Observable<{
331
+ messageId: string;
332
+ userId: string;
333
+ readAt: Date;
369
334
  }>;
335
+ subscribeToConversationUpdates(): Observable<AXConversation>;
336
+ subscribeToConversationCreated(): Observable<AXConversation>;
337
+ subscribeToConversationDeleted(): Observable<string>;
338
+ subscribeToTypingIndicators(conversationId: string): Observable<AXConversationTypingIndicator>;
339
+ subscribeToPresenceUpdates(userIds?: string[]): Observable<_acorex_components_conversation.AXConversationPresenceUpdate>;
340
+ private hydratePresenceLastSeen;
370
341
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChatEntityRealtimeApi, never>;
371
342
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMChatEntityRealtimeApi>;
372
343
  }
@@ -380,14 +351,17 @@ declare class AXMChatEntityUserApi extends AXMChatUserApi {
380
351
  private readonly entityService;
381
352
  private readonly usersData;
382
353
  private readonly presence;
383
- getCurrentUser(): Promise<AXConversationParticipant>;
384
- updateProfile(updates: AXConversationUserProfileUpdate): Promise<AXConversationParticipant>;
354
+ private readonly chatLastSeen;
355
+ private readonly preferencesByUserId;
356
+ getCurrentUser(): Promise<AXConversationUser>;
357
+ updateProfile(updates: AXConversationUserProfileUpdate): Promise<AXConversationUser>;
385
358
  uploadAvatar(_file: File): Promise<string>;
386
359
  getUsers(pagination?: AXConversationPagination, filters?: AXConversationUserSearchFilters): Promise<AXConversationPaginatedResult<AXConversationParticipant>>;
387
360
  searchUsers(query: string): Promise<AXConversationParticipant[]>;
388
361
  getUserById(userId: string): Promise<AXConversationParticipant>;
389
362
  getUsersByIds(userIds: string[]): Promise<AXConversationParticipant[]>;
390
363
  getUserPresence(userId: string): Promise<AXConversationPresenceUpdate>;
364
+ getUsersPresence(userIds: string[]): Promise<AXConversationPresenceUpdate[]>;
391
365
  updatePresence(status: AXConversationPresenceStatus, _statusText?: string): Promise<void>;
392
366
  blockUser(_userId: string, _reason?: AXConversationBlockReportReason): Promise<void>;
393
367
  unblockUser(_userId: string): Promise<void>;
@@ -395,6 +369,9 @@ declare class AXMChatEntityUserApi extends AXMChatUserApi {
395
369
  reportUser(_userId: string, _reason: AXConversationBlockReportReason): Promise<void>;
396
370
  getUserSettings(): Promise<Record<string, unknown>>;
397
371
  updateUserSettings(_settings: Record<string, unknown>): Promise<void>;
372
+ getConversationPreferences(): Promise<AXConversationRoomPreferencesMap>;
373
+ getConversationPreferencesForRoom(conversationId: string): Promise<AXConversationRoomPreferences>;
374
+ updateConversationPreferences(conversationId: string, preferences: Partial<AXConversationRoomPreferences>): Promise<AXConversationRoomPreferences>;
398
375
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChatEntityUserApi, never>;
399
376
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMChatEntityUserApi>;
400
377
  }
@@ -612,10 +589,15 @@ declare function axmAssistFollowUpItemsFromUnknown(raw: unknown): AXPAiChatFollo
612
589
  */
613
590
  declare function axmExtractAssistIdFromMetadata(metadata: Record<string, unknown> | undefined): string | undefined;
614
591
  /**
615
- * Resolves direct agent id from conversation metadata (agent-as-assist chat).
592
+ * Legacy detector for unsupported agent-as-chat rooms. Not an engine targeting API.
616
593
  */
617
594
  declare function axmExtractDirectAgentIdFromMetadata(metadata: Record<string, unknown> | undefined): string | undefined;
618
- /** True when the conversation targets an assist catalog row or a direct agent-as-assist chat. */
595
+ /**
596
+ * True when the room is a leftover agent-as-chat conversation with no Assist id.
597
+ * Callers must fail explicitly; do not map these rooms onto the default Assist.
598
+ */
599
+ declare function axmIsUnsupportedLegacyAgentAssistConversation(metadata: Record<string, unknown> | undefined): boolean;
600
+ /** True when the conversation targets an assist catalog row or a leftover unsupported agent-as-chat room. */
619
601
  declare function axmConversationHasAiChat(metadata: Record<string, unknown> | undefined): boolean;
620
602
  /** Reads embedded assist welcome/model fields stamped at conversation create. */
621
603
  declare function axmExtractAssistSnapshotFromMetadata(metadata: Record<string, unknown> | undefined): AXMAssistConversationSnapshotLite | null;
@@ -743,7 +725,9 @@ declare const AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT: InjectionToken<AXMConver
743
725
  declare class AXMConversationEntityStoreService {
744
726
  private readonly entityService;
745
727
  private readonly filterService;
728
+ private readonly session;
746
729
  private readonly bus;
730
+ private readonly userApi;
747
731
  private readonly messageData;
748
732
  private readonly roomData;
749
733
  /** Serializes entity writes per message id so streaming deltas persist in order. */
@@ -758,13 +742,18 @@ declare class AXMConversationEntityStoreService {
758
742
  private readonly conversationFetchChains;
759
743
  /** Dedupes concurrent message list queries (page 0). */
760
744
  private readonly messageListFetchChains;
745
+ private readonly unreadTotalSignal;
746
+ /** Telegram-style total unread across cached rooms — drives the Conversations menu badge. */
747
+ readonly unreadTotal: _angular_core.Signal<number>;
761
748
  getCachedConversation(conversationId: string): AXConversation | null;
762
749
  getCachedMessageList(conversationId: string): AXConversationMessage[] | null;
763
750
  cacheConversation(conversation: AXConversation): void;
751
+ clearSessionCaches(): void;
764
752
  cacheConversationFromRoom(room: AXMConversationRoom, currentUserId?: string): AXConversation;
765
753
  getConversation(conversationId: string, options?: {
766
754
  force?: boolean;
767
755
  }): Promise<AXConversation | null>;
756
+ refreshConversation(conversationId: string): Promise<AXConversation | null>;
768
757
  private fetchConversationFromEntity;
769
758
  /** Persists auto-generated title after assist completes (never during streaming). */
770
759
  persistAssistTitlePatch(room: AXMConversationRoom): Promise<void>;
@@ -798,15 +787,27 @@ declare class AXMConversationEntityStoreService {
798
787
  touchLastMessage(conversationId: string, message: AXConversationMessage): Promise<void>;
799
788
  updateConversation(conversation: AXConversation): Promise<AXConversation>;
800
789
  updateConversationMetadata(conversationId: string, metadata: Record<string, unknown>): Promise<void>;
790
+ /**
791
+ * Increments unread for an incoming message that is not currently focused.
792
+ * Stays in-memory so a shared room.unreadCount is not written to the sender.
793
+ */
794
+ applyIncomingMessageUnread(message: AXConversationMessage, currentUserId: string): Promise<void>;
801
795
  setUnreadCount(conversationId: string, unreadCount: number): Promise<void>;
802
796
  syncConversationUnreadCount(conversationId: string, currentUserId: string): Promise<void>;
797
+ private recomputeUnreadTotal;
803
798
  private isAssistResponseEntity;
804
799
  messageToEntityFields(message: AXConversationMessage): Partial<AXMConversationMessage>;
805
800
  axMessageFromCommand(command: AXConversationSendMessageCommand, senderId: string): AXConversationMessage;
806
801
  publishNewMessage(message: AXConversationMessage): void;
807
802
  publishMessageUpdate(message: AXConversationMessage): void;
808
- publishConversationUpdate(conversation: AXConversation): void;
809
- publishConversationCreated(conversation: AXConversation): void;
803
+ publishMessageDeletion(messageId: string): void;
804
+ publishConversationUpdate(conversation: AXConversation, markLocal?: boolean): void;
805
+ publishConversationCreated(conversation: AXConversation, markLocal?: boolean): void;
806
+ /** Persists inbox last-message when the edited/deleted bubble is the current preview. */
807
+ syncPersistedLastMessage(message: AXConversationMessage): Promise<void>;
808
+ publishConversationDeleted(conversationId: string): void;
809
+ /** Keeps inbox last-message preview in sync when the last bubble is edited or deleted. */
810
+ syncConversationPreviewFromMessage(message: AXConversationMessage): void;
810
811
  publishTypingIndicator(indicator: _acorex_components_conversation.AXConversationTypingIndicator): void;
811
812
  publishPresenceUpdate(update: _acorex_components_conversation.AXConversationPresenceUpdate): void;
812
813
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMConversationEntityStoreService, never>;
@@ -818,6 +819,7 @@ declare class AXMConversationEntityStoreService {
818
819
  */
819
820
  declare class AXMConversationFocusService {
820
821
  private readonly store;
822
+ private readonly document;
821
823
  private focusedConversationId;
822
824
  /** Reactive focus id for computed UI (retry screen, etc.). */
823
825
  readonly focusedConversationIdSignal: _angular_core.WritableSignal<string | null>;
@@ -848,8 +850,10 @@ declare class AXMConversationRealtimeBus {
848
850
  readonly messageDeletions$: Observable<string>;
849
851
  private readonly conversationUpdateSubject;
850
852
  private readonly conversationCreatedSubject;
853
+ private readonly conversationDeletedSubject;
851
854
  readonly conversationUpdates$: Observable<AXConversation>;
852
855
  readonly conversationCreated$: Observable<AXConversation>;
856
+ readonly conversationDeleted$: Observable<string>;
853
857
  private readonly typingIndicatorSubject;
854
858
  private readonly presenceUpdateSubject;
855
859
  readonly typingIndicators$: Observable<AXConversationTypingIndicator>;
@@ -863,8 +867,9 @@ declare class AXMConversationRealtimeBus {
863
867
  private static readonly LOCAL_ROOM_MUTATION_SUPPRESS_MS;
864
868
  markLocalRoomMutation(conversationId: string): void;
865
869
  shouldSuppressRemoteRoomRefetch(conversationId: string): boolean;
866
- publishConversationUpdate(conversation: AXConversation): void;
867
- publishConversationCreated(conversation: AXConversation): void;
870
+ publishConversationUpdate(conversation: AXConversation, markLocal?: boolean): void;
871
+ publishConversationCreated(conversation: AXConversation, markLocal?: boolean): void;
872
+ publishConversationDeleted(conversationId: string): void;
868
873
  publishTypingIndicator(indicator: AXConversationTypingIndicator): void;
869
874
  publishPresenceUpdate(update: AXConversationPresenceUpdate): void;
870
875
  messagesForConversation(conversationId: string): Observable<AXConversationMessage>;
@@ -893,8 +898,8 @@ declare const AXM_CHAT_ASSIST_CATALOG_PORT: InjectionToken<AXMChatAssistCatalogP
893
898
  * Centralize the cast here so feature code does not repeat it.
894
899
  */
895
900
  interface AXMConversationServiceSessionAdapter {
896
- readonly currentUser: Signal<AXConversationParticipant | null>;
897
- setCurrentUser(participant: AXConversationParticipant | null): void;
901
+ readonly currentUser: Signal<AXConversationUser | null>;
902
+ setCurrentUser(user: AXConversationUser | null): void;
898
903
  closeActiveConversation(): void;
899
904
  resetConversationsPagination(): void;
900
905
  loadConversations(): Promise<void>;
@@ -1405,6 +1410,78 @@ declare class AXMMiniChatInboxPanelHostComponent {
1405
1410
  */
1406
1411
  declare class AXMMiniChatHeaderSlotComponent {
1407
1412
  private readonly panelService;
1413
+ protected readonly themeStore: {
1414
+ currentMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPThemeMode>;
1415
+ currentPalette: _angular_core.Signal<string>;
1416
+ systemThemeMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPThemeMode>;
1417
+ font: _ngrx_signals.DeepSignal<{
1418
+ family: string;
1419
+ size: string;
1420
+ }>;
1421
+ overlayLoading: _angular_core.Signal<boolean>;
1422
+ navigationLoading: _angular_core.Signal<boolean>;
1423
+ overlayLoadingTaskCount: _angular_core.Signal<number>;
1424
+ navigationLoadingTaskCount: _angular_core.Signal<number>;
1425
+ sideMenuState: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPSideMenuState>;
1426
+ overlaySideMenuOpen: _angular_core.Signal<boolean>;
1427
+ sideMenuWidth: _angular_core.Signal<number>;
1428
+ sideMenuCompactWidth: _angular_core.Signal<number>;
1429
+ menuVerticalMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode>;
1430
+ menuOrientation: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuOrientation>;
1431
+ menuAppearance: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuAppearance>;
1432
+ headerAppearance: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPHeaderAppearance>;
1433
+ mainFooterFullWidth: _angular_core.Signal<boolean>;
1434
+ isPrinting: _angular_core.Signal<boolean>;
1435
+ isDarkMode: _angular_core.Signal<boolean>;
1436
+ isLightMode: _angular_core.Signal<boolean>;
1437
+ isSystemMode: _angular_core.Signal<boolean>;
1438
+ isSideMenuOpen: _angular_core.Signal<boolean>;
1439
+ isOverlayLoading: _angular_core.Signal<boolean>;
1440
+ overlayTaskCount: _angular_core.Signal<number>;
1441
+ isNavigationLoading: _angular_core.Signal<boolean>;
1442
+ isMenuHorizontal: _angular_core.Signal<boolean>;
1443
+ effectiveMenuVerticalMode: _angular_core.Signal<_acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode>;
1444
+ sideMenuDrawerWidth: _angular_core.Signal<number>;
1445
+ menuDarkEnabled: _angular_core.Signal<boolean>;
1446
+ menuBrandEnabled: _angular_core.Signal<boolean>;
1447
+ effectiveMainFooterFullWidth: _angular_core.Signal<boolean>;
1448
+ headerBrandEnabled: _angular_core.Signal<boolean>;
1449
+ headerButtonColor: _angular_core.Signal<"default" | "primary">;
1450
+ headerButtonLook: _angular_core.Signal<"default" | "blank">;
1451
+ changeThemeMode: (theme: _acorex_platform_framework_client_themes_shared.AXPThemeMode) => void;
1452
+ openSideMenu: () => void;
1453
+ closeSideMenu: () => void;
1454
+ setSideMenuWidth: (width: number) => void;
1455
+ setSideMenuCompactWidth: (width: number) => void;
1456
+ setSideMenuDrawerWidth: (width: number) => void;
1457
+ toggleSideMenu: () => void;
1458
+ setNavigationLoading: (value: boolean, delay?: number) => void;
1459
+ setOverlayLoading: (value: boolean, delay?: number) => void;
1460
+ clearOverlayLoading: () => void;
1461
+ loadSettings: () => Promise<void>;
1462
+ } & _ngrx_signals.StateSource<{
1463
+ currentMode: _acorex_platform_framework_client_themes_shared.AXPThemeMode;
1464
+ currentPalette: string;
1465
+ systemThemeMode: _acorex_platform_framework_client_themes_shared.AXPThemeMode;
1466
+ font: {
1467
+ family: string;
1468
+ size: string;
1469
+ };
1470
+ overlayLoading: boolean;
1471
+ navigationLoading: boolean;
1472
+ overlayLoadingTaskCount: number;
1473
+ navigationLoadingTaskCount: number;
1474
+ sideMenuState: _acorex_platform_framework_client_themes_shared.AXPSideMenuState;
1475
+ overlaySideMenuOpen: boolean;
1476
+ sideMenuWidth: number;
1477
+ sideMenuCompactWidth: number;
1478
+ menuVerticalMode: _acorex_platform_framework_client_themes_shared.AXPMenuVerticalMode;
1479
+ menuOrientation: _acorex_platform_framework_client_themes_shared.AXPMenuOrientation;
1480
+ menuAppearance: _acorex_platform_framework_client_themes_shared.AXPMenuAppearance;
1481
+ headerAppearance: _acorex_platform_framework_client_themes_shared.AXPHeaderAppearance;
1482
+ mainFooterFullWidth: boolean;
1483
+ isPrinting: boolean;
1484
+ }>;
1408
1485
  private readonly chatButtonRef;
1409
1486
  protected onToggleClick(): void;
1410
1487
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMMiniChatHeaderSlotComponent, never>;
@@ -1568,7 +1645,6 @@ declare class AXMMiniChatComponent {
1568
1645
  #private;
1569
1646
  private readonly conversationService;
1570
1647
  private readonly conversationApi;
1571
- private readonly assistResponse;
1572
1648
  private readonly destroyRef;
1573
1649
  /** Existing conversation id to open. When omitted (and no conversation is active), the new-chat composer is shown. */
1574
1650
  readonly chatId: _angular_core.InputSignal<string | undefined>;
@@ -1585,7 +1661,6 @@ declare class AXMMiniChatComponent {
1585
1661
  constructor();
1586
1662
  /** New-chat composer created and selected a conversation; surface it to the host. */
1587
1663
  onConversationCreated(conversationId: string): void;
1588
- onComposerGenerationCancelled(): void;
1589
1664
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMMiniChatComponent, never>;
1590
1665
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMMiniChatComponent, "axm-mini-chat", never, { "chatId": { "alias": "chatId"; "required": false; "isSignal": true; }; "entityId": { "alias": "entityId"; "required": false; "isSignal": true; }; "entityType": { "alias": "entityType"; "required": false; "isSignal": true; }; "assistId": { "alias": "assistId"; "required": false; "isSignal": true; }; "showInfoBar": { "alias": "showInfoBar"; "required": false; "isSignal": true; }; "showComposer": { "alias": "showComposer"; "required": false; "isSignal": true; }; }, { "conversationOpened": "conversationOpened"; }, never, never, true, never>;
1591
1666
  }
@@ -1609,5 +1684,5 @@ declare const CONVERSATION_START_DIRECT_CHAT_COMMAND = "Conversation:StartDirect
1609
1684
  /** Opens an existing conversation in the chat app. */
1610
1685
  declare const CONVERSATION_OPEN_CHAT_COMMAND = "Conversation:OpenChat";
1611
1686
 
1612
- export { AXMAddReactionCommand, AXMAssistSuggestionChipsComponent, AXMChatComponent, AXMChatConversationApi, AXMChatEntityConversationApi, AXMChatEntityConversationFocusHandler, AXMChatEntityConversationRoomQueryService, AXMChatEntityMessageApi, AXMChatEntityRealtimeApi, AXMChatEntityUserApi, AXMChatMessageApi, AXMChatRealtimeApi, AXMChatUserApi, AXMCommentComponent, AXMCommentManagementService, AXMCommentPopupComponent, AXMCommentRealtimeService, AXMCommentRealtimeServiceImpl, AXMCommentService, AXMCommentServiceImpl, AXMCommentWidgetViewComponent, AXMConversationAssistBackgroundOperationHandler, AXMConversationEntityStoreService, AXMConversationFocusService, AXMConversationModule, AXMConversationRealtimeBus, AXMEntityChatService, AXMMiniChatComponent, AXMMiniChatHeaderSlotComponent, AXMMiniChatHistoryComponent, AXMMiniChatInboxHistoryComponent, AXMMiniChatInboxPanelHostComponent, AXMMiniChatLauncherComponent, AXMMiniChatPanelComponent, AXMMiniChatPanelService, AXMShowCommentPopupCommand, AXM_AI_MANAGEMENT_AGENT_ENTITY_NAME, AXM_AI_MANAGEMENT_ASSIST_ENTITY_NAME, AXM_AI_MANAGEMENT_MODULE_NAME, AXM_ASSIST_DEFAULT_RESOLVER_PORT, AXM_ASSIST_TRANSCRIPT_LINE_PAYLOAD_TYPE, AXM_CHAT_ASSIST_CATALOG_PORT, AXM_CHAT_EMPTY_STATE_COMPONENT, AXM_CHAT_SIDEBAR_ACTION_PROVIDER, AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_HANDLERS, AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_KEY, AXM_CONVERSATION_ASSIST_RESPONSE_PORT, AXM_CONVERSATION_CHAT_ATTACHMENT_CATEGORY, AXM_CONVERSATION_CHAT_ATTACHMENT_REF_TYPE, AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT, AXM_CONVERSATION_TAB_BOT, AXM_MINI_CHAT_INBOX_CONVERSATION_FILTER, AXM_MINI_CHAT_INBOX_SESSION_KEY, AXPCommentWidget, COMMENTS_PAGE_COMPONENT_KEY, CONVERSATION_AFTER_MESSAGE_SENT_COMMAND, CONVERSATION_EMIT_TYPING_INDICATOR_COMMAND, CONVERSATION_MARK_CONVERSATION_UNREAD_COMMAND, CONVERSATION_OPEN_CHAT_COMMAND, CONVERSATION_RETRY_ASSIST_RESPONSE_COMMAND, CONVERSATION_SEND_ASSIST_CHAT_MESSAGE_COMMAND, CONVERSATION_START_ASSIST_CHAT_COMMAND, CONVERSATION_START_DIRECT_CHAT_COMMAND, CONVERSATION_SYNC_READ_STATE_COMMAND, axmApplyAnswerTextToAssistPayloadLine, axmAssistFollowUpItemsFromUnknown, axmAssistHasFinalizeMetadata, axmAssistLastTranscriptLine, axmAssistNormalizeFollowUpItemForConversation, axmAssistNormalizeFollowUpItemsForConversation, axmAssistPersistedMessageLooksComplete, axmAssistResolveFollowUpCommandName, axmAssistStarterPromptChipItems, axmAssistUserFacingPayloadLine, axmAssistUserVisibleItemsForLine, axmAssistWidgetNodeDedupeKey, axmAssistWidgetNodeFromUnknown, axmBuildAiChatConversationMetadata, axmBuildAssistPeerParticipantFromCreateData, axmBuildAssistPeerParticipantFromId, axmBuildAssistTranscriptLinePayload, axmBuildAutoTitleFromUserText, axmBuildEntityChatConversationMetadata, axmChatAiPeerParticipantId, axmChatAiTargetAvatarUrl, axmChatAiTargetDisplayDescription, axmChatAiTargetDisplayName, axmChatAiTargetShortcutDescriptionKey, axmCoerceDate, axmCoerceTimestampMs, axmComputeConversationUnreadCount, axmConversationHasAiChat, axmConversationIsEntityChat, axmConversationMatchesEntity, axmExtractAssistIdFromMetadata, axmExtractAssistSnapshotFromMetadata, axmExtractDirectAgentIdFromMetadata, axmExtractEntityRefFromMetadata, axmExtractModelEntityIdFromMetadata, axmExtractTextFromPayload, axmFilterChatAiTargets, axmIsAssistBotConversation, axmIsAssistPeerParticipant, axmIsAssistRetryableStatus, axmIsAssistStreamingMessage, axmIsAssistStreamingStatus, axmIsAssistTerminalStatus, axmLoadChatAiTargets, axmMessageCountsTowardUnread, axmMessageEntityToMessage, axmNormalizeAssistTranscriptForChatUi, axmNormalizeAssistTranscriptLineResponses, axmParseAssistTranscriptLinePayload, axmParseAssistTranscriptTextEnvelope, axmPartitionAssistAnswerText, axmReadAssistAiTranscript, axmReadAssistAiTranscriptRaw, axmReadAssistResponseError, axmReadAssistResponseStatus, axmReadPlainTextMessagePayload, axmReadReplyToUserMessageId, axmResolveAssistFinalAnswerText, axmResolveChatAiTargetText, axmRoomEntityToConversation, axmRoomWithAssistPeerDisplayName, axmSanitizeAssistUserAnswerText, axmShouldPreferPersistedAssistOverLiveCache, axmShowCommentPopupCommandDefinition, axmSortMessagesNewestFirst, axmSyncAssistPeerDisplayName, axmSyntheticEmbedMessage, axmUserRowToParticipant, commentsPlugin, createConversationServiceSessionAdapter, persistChatAttachment };
1687
+ export { AXMAddReactionCommand, AXMAssistSuggestionChipsComponent, AXMChatComponent, AXMChatConversationApi, AXMChatEntityConversationApi, AXMChatEntityConversationFocusHandler, AXMChatEntityConversationRoomQueryService, AXMChatEntityMessageApi, AXMChatEntityRealtimeApi, AXMChatEntityUserApi, AXMChatMessageApi, AXMChatRealtimeApi, AXMChatUserApi, AXMCommentComponent, AXMCommentManagementService, AXMCommentPopupComponent, AXMCommentRealtimeService, AXMCommentRealtimeServiceImpl, AXMCommentService, AXMCommentServiceImpl, AXMCommentWidgetViewComponent, AXMConversationAssistBackgroundOperationHandler, AXMConversationEntityStoreService, AXMConversationFocusService, AXMConversationModule, AXMConversationRealtimeBus, AXMEntityChatService, AXMMiniChatComponent, AXMMiniChatHeaderSlotComponent, AXMMiniChatHistoryComponent, AXMMiniChatInboxHistoryComponent, AXMMiniChatInboxPanelHostComponent, AXMMiniChatLauncherComponent, AXMMiniChatPanelComponent, AXMMiniChatPanelService, AXMShowCommentPopupCommand, AXM_AI_MANAGEMENT_AGENT_ENTITY_NAME, AXM_AI_MANAGEMENT_ASSIST_ENTITY_NAME, AXM_AI_MANAGEMENT_MODULE_NAME, AXM_ASSIST_DEFAULT_RESOLVER_PORT, AXM_ASSIST_TRANSCRIPT_LINE_PAYLOAD_TYPE, AXM_CHAT_ASSIST_CATALOG_PORT, AXM_CHAT_EMPTY_STATE_COMPONENT, AXM_CHAT_SIDEBAR_ACTION_PROVIDER, AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_HANDLERS, AXM_CONVERSATION_ASSIST_BACKGROUND_OPERATION_KEY, AXM_CONVERSATION_ASSIST_RESPONSE_PORT, AXM_CONVERSATION_CHAT_ATTACHMENT_CATEGORY, AXM_CONVERSATION_CHAT_ATTACHMENT_REF_TYPE, AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT, AXM_CONVERSATION_TAB_BOT, AXM_MINI_CHAT_INBOX_CONVERSATION_FILTER, AXM_MINI_CHAT_INBOX_SESSION_KEY, AXPCommentWidget, COMMENTS_PAGE_COMPONENT_KEY, CONVERSATION_AFTER_MESSAGE_SENT_COMMAND, CONVERSATION_EMIT_TYPING_INDICATOR_COMMAND, CONVERSATION_MARK_CONVERSATION_UNREAD_COMMAND, CONVERSATION_OPEN_CHAT_COMMAND, CONVERSATION_RETRY_ASSIST_RESPONSE_COMMAND, CONVERSATION_SEND_ASSIST_CHAT_MESSAGE_COMMAND, CONVERSATION_START_ASSIST_CHAT_COMMAND, CONVERSATION_START_DIRECT_CHAT_COMMAND, CONVERSATION_SYNC_READ_STATE_COMMAND, axmApplyAnswerTextToAssistPayloadLine, axmAssistFollowUpItemsFromUnknown, axmAssistHasFinalizeMetadata, axmAssistLastTranscriptLine, axmAssistNormalizeFollowUpItemForConversation, axmAssistNormalizeFollowUpItemsForConversation, axmAssistPersistedMessageLooksComplete, axmAssistResolveFollowUpCommandName, axmAssistStarterPromptChipItems, axmAssistUserFacingPayloadLine, axmAssistUserVisibleItemsForLine, axmAssistWidgetNodeDedupeKey, axmAssistWidgetNodeFromUnknown, axmBuildAiChatConversationMetadata, axmBuildAssistPeerParticipantFromCreateData, axmBuildAssistPeerParticipantFromId, axmBuildAssistTranscriptLinePayload, axmBuildAutoTitleFromUserText, axmBuildEntityChatConversationMetadata, axmChatAiPeerParticipantId, axmChatAiTargetAvatarUrl, axmChatAiTargetDisplayDescription, axmChatAiTargetDisplayName, axmChatAiTargetShortcutDescriptionKey, axmCoerceDate, axmCoerceTimestampMs, axmComputeConversationUnreadCount, axmConversationHasAiChat, axmConversationIsEntityChat, axmConversationMatchesEntity, axmExtractAssistIdFromMetadata, axmExtractAssistSnapshotFromMetadata, axmExtractDirectAgentIdFromMetadata, axmExtractEntityRefFromMetadata, axmExtractModelEntityIdFromMetadata, axmExtractTextFromPayload, axmFilterChatAiTargets, axmHydrateRealtimeConversationMessage, axmIsAssistBotConversation, axmIsAssistPeerParticipant, axmIsAssistRetryableStatus, axmIsAssistStreamingMessage, axmIsAssistStreamingStatus, axmIsAssistTerminalStatus, axmIsUnsupportedLegacyAgentAssistConversation, axmLoadChatAiTargets, axmMessageCountsTowardUnread, axmMessageEntityToMessage, axmNormalizeAssistTranscriptForChatUi, axmNormalizeAssistTranscriptLineResponses, axmParseAssistTranscriptLinePayload, axmParseAssistTranscriptTextEnvelope, axmPartitionAssistAnswerText, axmReadAssistAiTranscript, axmReadAssistAiTranscriptRaw, axmReadAssistResponseError, axmReadAssistResponseStatus, axmReadPlainTextMessagePayload, axmReadReplyToUserMessageId, axmResolveAssistFinalAnswerText, axmResolveChatAiTargetText, axmRoomEntityToConversation, axmRoomWithAssistPeerDisplayName, axmSanitizeAssistUserAnswerText, axmShouldPreferPersistedAssistOverLiveCache, axmShowCommentPopupCommandDefinition, axmSortMessagesNewestFirst, axmSyncAssistPeerDisplayName, axmSyntheticEmbedMessage, axmUserRowToParticipant, commentsPlugin, createConversationServiceSessionAdapter, persistChatAttachment };
1613
1688
  export type { AXMAddReactionCommandInput, AXMAssistConversationSnapshotLite, AXMAssistDefaultResolverPort, AXMAssistStarterPromptChipOptions, AXMChatAiTargetRow, AXMChatAssistCatalogPort, AXMChatSidebarAction, AXMComment, AXMCommentEvent, AXMCommentEventType, AXMCommentThread, AXMConversationAssistResponsePort, AXMConversationRegularAutoReplyPort, AXMConversationServiceSessionAdapter, AXMEntityChatCreateData, AXMEntityChatRef, AXMMiniChatInboxConversationFilter, AXMMiniChatPanelAnchor, AXMMiniChatPanelOpenOptions, AXMMiniChatPanelPosition, AXMMiniChatPanelScope, AXMMiniChatPanelSessionState, AXMMiniChatPanelSide, AXMSendAssistChatMessageOptions, AXMShowCommentPopupCommandInput, AXMThreadEvent, AXMThreadEventType, AXPAiChatFollowUpCommandLite, AXPAiChatFollowUpItemLite, AXPAiChatMessageLite, AXPAiChatNodeOrFollowUpResponseLite, AXPAiChatTextResponseLite, AXPAiEffectiveAssistRowLite, AxmAssistPartitionedAnswerText, AxmAssistResponseStatus, AxmAssistTranscriptLinePayload, AxmAssistUserVisibleItem, CommentsDisplayMode, CommentsPluginOptions };