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

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 (38) 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-BP8QEicz.mjs} +8059 -6966
  2. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BP8QEicz.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-CpMGuSU1.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-CpMGuSU1.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-Dgs6fpN3.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-Dgs6fpN3.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-BStKnruT.mjs +1379 -0
  10. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-BStKnruT.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-eKYhjy91.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-eKYhjy91.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-DLYtqFLi.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-DLYtqFLi.mjs.map} +1 -1
  15. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-CE40xbl9.mjs +472 -0
  16. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-CE40xbl9.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-VOuN3y_8.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-VOuN3y_8.mjs.map} +1 -1
  19. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs +39 -6
  20. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs.map +1 -1
  21. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-xUnxBY_Y.mjs → acorex-platform-module-conversation-client-mark-conversation-unread.command-9tbWXMsa.mjs} +2 -2
  22. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-xUnxBY_Y.mjs.map → acorex-platform-module-conversation-client-mark-conversation-unread.command-9tbWXMsa.mjs.map} +1 -1
  23. package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-B03q60Qx.mjs → acorex-platform-module-conversation-client-open-chat.command-CdMsYHwG.mjs} +16 -1
  24. package/fesm2022/acorex-platform-module-conversation-client-open-chat.command-CdMsYHwG.mjs.map +1 -0
  25. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-CPpgvLKH.mjs → acorex-platform-module-conversation-client-retry-assist-response.command-DvOeezMD.mjs} +2 -2
  26. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-CPpgvLKH.mjs.map → acorex-platform-module-conversation-client-retry-assist-response.command-DvOeezMD.mjs.map} +1 -1
  27. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-CmJAjrZb.mjs +50 -0
  28. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-CmJAjrZb.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-module-conversation-client.mjs +1 -1
  30. package/package.json +2 -2
  31. package/types/acorex-platform-module-conversation-client-contracts.d.ts +28 -18
  32. package/types/acorex-platform-module-conversation-client.d.ts +149 -74
  33. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-C6fmww4a.mjs.map +0 -1
  34. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-C8b3D66q.mjs +0 -871
  35. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-C8b3D66q.mjs.map +0 -1
  36. package/fesm2022/acorex-platform-module-conversation-client-open-chat.command-B03q60Qx.mjs.map +0 -1
  37. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-B6v_j64v.mjs +0 -142
  38. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-B6v_j64v.mjs.map +0 -1
@@ -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 };