@acorex-platform/module-conversation-client 0.0.28 → 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-DsjrXRZ6.mjs → acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-BP8QEicz.mjs} +7655 -6569
  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-D-DZ9ylV.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-D-DZ9ylV.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-BfjJCQ-e.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-BfjJCQ-e.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-D4go5xbr.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-D4go5xbr.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-Bq4SdK0_.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-Bq4SdK0_.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-BlYDwGVe.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-BlYDwGVe.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-BQLK6F69.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-BQLK6F69.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 +150 -76
  33. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DsjrXRZ6.mjs.map +0 -1
  34. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-DkX4JSbN.mjs +0 -871
  35. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-DkX4JSbN.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-B1Z_gZ6O.mjs +0 -142
  38. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-B1Z_gZ6O.mjs.map +0 -1
@@ -2,14 +2,13 @@ import * as _angular_core from '@angular/core';
2
2
  import { Provider, InjectionToken, Type, Signal, OnInit, ElementRef, OnDestroy } from '@angular/core';
3
3
  import * as i1 from '@acorex-platform/framework-client/layout/widget-core';
4
4
  import { AXPValueWidgetComponent } from '@acorex-platform/framework-client/layout/widget-core';
5
- import * as i2 from '@angular/router';
6
5
  import { AXPBackgroundOperationHandler, AXPBackgroundOperation, AXPFileStorageService } from '@acorex-platform/framework-client/common';
7
6
  import * as _acorex_platform_framework_shared_core from '@acorex-platform/framework-shared/core';
8
7
  import { AXPExecuteCommand, AXPMultiLanguageString, AXPWidgetNode, AXPUserReference, AXPEntityReference } from '@acorex-platform/framework-shared/core';
9
8
  import { AXPDeviceService } from '@acorex-platform/framework-client/core';
10
9
  import { AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';
11
10
  import * as _acorex_components_conversation from '@acorex/components/conversation';
12
- 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';
13
12
  import { AXMConversationRoom, AXMConversationMessage, AXMCommentEntityData, AXReaction, AXMessagePayload, AXMReactionType } from '@acorex-platform/module-conversation-client/contracts';
14
13
  import { Observable } from 'rxjs';
15
14
  import { AXClickEvent, AXStyleLookType, AXPlacement } from '@acorex/cdk/common';
@@ -20,10 +19,12 @@ import { AXWysiwygContainerComponent } from '@acorex/components/wysiwyg';
20
19
  import { AXPCommand, AXPCommandExecuteResultPromise } from '@acorex-platform/framework-shared/runtime';
21
20
  import { AXBasePageComponent } from '@acorex/components/page';
22
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';
23
24
 
24
25
  declare class AXMConversationModule {
25
26
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMConversationModule, never>;
26
- static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXMConversationModule, never, [typeof i1.AXPWidgetCoreModule], [typeof i2.RouterModule]>;
27
+ static ɵmod: _angular_core.ɵɵNgModuleDeclaration<AXMConversationModule, never, [typeof i1.AXPWidgetCoreModule], never>;
27
28
  static ɵinj: _angular_core.ɵɵInjectorDeclaration<AXMConversationModule>;
28
29
  }
29
30
 
@@ -45,7 +46,6 @@ declare class AXMChatComponent extends AXPPageLayoutBaseComponent {
45
46
  #private;
46
47
  private readonly conversationService;
47
48
  private readonly chatConversationApi;
48
- private readonly assistResponse;
49
49
  private readonly miniChatPanelService;
50
50
  private readonly composerService;
51
51
  private readonly infoBarService;
@@ -53,10 +53,11 @@ declare class AXMChatComponent extends AXPPageLayoutBaseComponent {
53
53
  private readonly _assistChatDebugModeInit;
54
54
  private readonly activatedRoute;
55
55
  private readonly dialogService;
56
- private readonly popupService;
57
56
  private readonly badgeService;
58
57
  protected readonly deviceService: AXPDeviceService;
58
+ private readonly destroyRef;
59
59
  private readonly routeConversationId;
60
+ private readonly routerUrl;
60
61
  ngOnInit(): Promise<void>;
61
62
  /**
62
63
  * Computed signal to check if there is an active conversation selected.
@@ -70,32 +71,21 @@ declare class AXMChatComponent extends AXPPageLayoutBaseComponent {
70
71
  /**
71
72
  * Handles conversation selection from the sidebar.
72
73
  * Navigates to the selected conversation route.
73
- * On mobile, closes the sidebar after selection.
74
74
  * @param conversationId - The ID of the selected conversation.
75
75
  */
76
76
  onConversationSelected(conversationId: string): void;
77
- /**
78
- * Navigates back to the conversation list (mobile view).
79
- * Removes the route param and clears the active conversation.
80
- * Opens the sidebar to show the conversation list.
81
- */
77
+ /** Mobile back: return to the full-screen conversation list (no layout sidebar). */
82
78
  openChatList(): void;
83
79
  /**
84
80
  * Opens the platform conversation info panel when the info-bar title/avatar area is clicked.
85
81
  */
86
82
  onInfoBarClick(): void;
87
- /** Composer Stop — abort server-side assist generation and SSE stream updates. */
88
- onComposerGenerationCancelled(): void;
89
83
  /**
90
84
  * Handles Escape key from chat container.
91
85
  * Replicates conversation source behavior by closing active conversation here.
92
86
  * Also keeps URL and chat state in sync.
93
87
  */
94
88
  onContainerEscape(): void;
95
- /**
96
- * Toggles the start side (sidebar) visibility.
97
- */
98
- protected toggleStartSide(): void;
99
89
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChatComponent, never>;
100
90
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMChatComponent, "axm-chat", never, {}, {}, never, never, true, never>;
101
91
  }
@@ -171,7 +161,6 @@ declare class AXMChatEntityConversationApi extends AXMChatConversationApi {
171
161
  pinConversation(conversationId: string): Promise<void>;
172
162
  unpinConversation(conversationId: string): Promise<void>;
173
163
  markConversationAsRead(conversationId: string): Promise<void>;
174
- markConversationAsUnread(conversationId: string): Promise<void>;
175
164
  searchConversations(query: string): Promise<AXConversation[]>;
176
165
  filterConversations(filters: AXConversationFilters, pagination?: AXConversationPagination): Promise<AXConversationPaginatedResult<AXConversation>>;
177
166
  findEntityConversations(entityType: string, entityId: string): Promise<AXConversation[]>;
@@ -180,10 +169,6 @@ declare class AXMChatEntityConversationApi extends AXMChatConversationApi {
180
169
  removeParticipant(conversationId: string, userId: string): Promise<AXConversation>;
181
170
  leaveConversation(conversationId: string): Promise<void>;
182
171
  updateParticipant(conversationId: string, update: AXConversationParticipantUpdate): Promise<AXConversation>;
183
- getConversationSettings(conversationId: string): Promise<AXConversationSettingsUpdate>;
184
- updateConversationSettings(conversationId: string, settings: AXConversationSettingsUpdate): Promise<void>;
185
- muteConversation(conversationId: string, duration?: number): Promise<void>;
186
- unmuteConversation(conversationId: string): Promise<void>;
187
172
  uploadConversationAvatar(_conversationId: string, _file: File): Promise<string>;
188
173
  getConversationMedia(_conversationId: string, pagination?: AXConversationPagination): Promise<AXConversationPaginatedResult<unknown>>;
189
174
  addConversationTags(_conversationId: string, _tags: string[]): Promise<void>;
@@ -202,14 +187,20 @@ declare class AXMChatEntityConversationApi extends AXMChatConversationApi {
202
187
  declare class AXMChatEntityConversationFocusHandler {
203
188
  private readonly userApi;
204
189
  private readonly commandService;
190
+ private readonly session;
205
191
  private readonly focusService;
192
+ private readonly inAppSync;
206
193
  private readonly assistResponse;
207
194
  private readonly realtimeConnection;
195
+ private readonly document;
196
+ private readonly destroyRef;
208
197
  private subscribedConversationId;
209
198
  private focusSyncTimer;
210
199
  private pendingFocusConversationId;
200
+ constructor();
211
201
  reportFocusedConversation(conversationId: string | null): void;
212
202
  private runFocusedConversationSync;
203
+ private dismissInboxForVisibleFocus;
213
204
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChatEntityConversationFocusHandler, never>;
214
205
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMChatEntityConversationFocusHandler>;
215
206
  }
@@ -241,6 +232,11 @@ declare function axmRoomEntityToConversation(room: AXMConversationRoom, currentU
241
232
  * Maps a persisted message entity to the conversation {@link AXConversationMessage} contract.
242
233
  */
243
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;
244
240
  /**
245
241
  * Maps a security-management user row to {@link AXConversationParticipant}.
246
242
  */
@@ -248,6 +244,7 @@ declare function axmUserRowToParticipant(user: {
248
244
  id: string;
249
245
  displayName?: string;
250
246
  username?: string;
247
+ avatar?: string | null;
251
248
  }): AXConversationParticipant;
252
249
 
253
250
  /**
@@ -264,6 +261,9 @@ declare class AXMChatEntityMessageApi extends AXMChatMessageApi {
264
261
  private readonly conversationStore;
265
262
  private readonly realtime;
266
263
  private readonly typingStopTimers;
264
+ private readonly typingEmitState;
265
+ private static readonly TYPING_EMIT_THROTTLE_MS;
266
+ private static readonly TYPING_STOP_IDLE_MS;
267
267
  private readonly messageData;
268
268
  private readonly roomData;
269
269
  private requireConversationParticipant;
@@ -317,57 +317,27 @@ declare class AXMChatEntityMessageApi extends AXMChatMessageApi {
317
317
  */
318
318
  declare class AXMChatEntityRealtimeApi extends AXMChatRealtimeApi {
319
319
  private readonly bus;
320
- private readonly realtimeConnection;
321
320
  private readonly presence;
322
- readonly connectionStatus$: Observable<AXConversationConnectionStatus>;
323
- connect(_options?: AXConversationConnectionOptions): Promise<void>;
324
- disconnect(): Promise<void>;
325
- isConnected(): boolean;
326
- reconnect(): Promise<void>;
327
- subscribeToConnectionEvents(): Observable<AXConversationConnectionEvent>;
321
+ private readonly chatLastSeen;
328
322
  subscribeToMessages(conversationId: string): Observable<AXConversationMessage>;
329
323
  subscribeToMessageUpdates(conversationId?: string): Observable<AXConversationMessage>;
330
324
  subscribeToMessageDeletions(_conversationId?: string): Observable<string>;
331
- subscribeToMessageReactions(conversationId?: string): Observable<AXConversationMessage>;
332
- subscribeToConversationUpdates(): Observable<AXConversation>;
333
- subscribeToConversationCreated(): Observable<AXConversation>;
334
- subscribeToConversationDeleted(): Observable<string>;
335
- subscribeToTypingIndicators(conversationId: string): Observable<AXConversationTypingIndicator>;
336
- subscribeToPresenceUpdates(userIds?: string[]): Observable<_acorex_components_conversation.AXConversationPresenceUpdate>;
337
- subscribeToReadReceipts(conversationId?: string): Observable<{
338
- messageId: string;
339
- userId: string;
340
- readAt: Date;
341
- }>;
342
- subscribeToNotifications(): Observable<AXConversationNotificationEvent>;
343
- subscribeToCallEvents(): Observable<AXConversationCallEvent>;
344
- subscribeToUserBlockEvents(): Observable<{
345
- userId: string;
346
- blocked: boolean;
347
- }>;
348
- subscribeToParticipantEvents(_conversationId?: string): Observable<{
349
- conversationId: string;
350
- userId: string;
351
- action: 'added' | 'removed';
352
- }>;
353
- subscribeToSystemEvents(): Observable<{
354
- type: string;
355
- message: string;
356
- data?: unknown;
357
- }>;
358
325
  subscribeToMessageStatusChanges(conversationId?: string): Observable<{
359
326
  messageId: string;
360
327
  status: 'sending' | 'sent' | 'delivered' | 'read' | 'failed';
361
328
  timestamp: Date;
362
329
  }>;
363
- subscribeToConversationSettingsChanges(_conversationId?: string): Observable<{
364
- conversationId: string;
365
- settings: Record<string, unknown>;
366
- }>;
367
- subscribeToDraftChanges(_conversationId?: string): Observable<{
368
- conversationId: string;
369
- draft: string | null;
330
+ subscribeToReadReceipts(conversationId?: string): Observable<{
331
+ messageId: string;
332
+ userId: string;
333
+ readAt: Date;
370
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;
371
341
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChatEntityRealtimeApi, never>;
372
342
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMChatEntityRealtimeApi>;
373
343
  }
@@ -381,14 +351,17 @@ declare class AXMChatEntityUserApi extends AXMChatUserApi {
381
351
  private readonly entityService;
382
352
  private readonly usersData;
383
353
  private readonly presence;
384
- getCurrentUser(): Promise<AXConversationParticipant>;
385
- updateProfile(updates: AXConversationUserProfileUpdate): Promise<AXConversationParticipant>;
354
+ private readonly chatLastSeen;
355
+ private readonly preferencesByUserId;
356
+ getCurrentUser(): Promise<AXConversationUser>;
357
+ updateProfile(updates: AXConversationUserProfileUpdate): Promise<AXConversationUser>;
386
358
  uploadAvatar(_file: File): Promise<string>;
387
359
  getUsers(pagination?: AXConversationPagination, filters?: AXConversationUserSearchFilters): Promise<AXConversationPaginatedResult<AXConversationParticipant>>;
388
360
  searchUsers(query: string): Promise<AXConversationParticipant[]>;
389
361
  getUserById(userId: string): Promise<AXConversationParticipant>;
390
362
  getUsersByIds(userIds: string[]): Promise<AXConversationParticipant[]>;
391
363
  getUserPresence(userId: string): Promise<AXConversationPresenceUpdate>;
364
+ getUsersPresence(userIds: string[]): Promise<AXConversationPresenceUpdate[]>;
392
365
  updatePresence(status: AXConversationPresenceStatus, _statusText?: string): Promise<void>;
393
366
  blockUser(_userId: string, _reason?: AXConversationBlockReportReason): Promise<void>;
394
367
  unblockUser(_userId: string): Promise<void>;
@@ -396,6 +369,9 @@ declare class AXMChatEntityUserApi extends AXMChatUserApi {
396
369
  reportUser(_userId: string, _reason: AXConversationBlockReportReason): Promise<void>;
397
370
  getUserSettings(): Promise<Record<string, unknown>>;
398
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>;
399
375
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChatEntityUserApi, never>;
400
376
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMChatEntityUserApi>;
401
377
  }
@@ -613,10 +589,15 @@ declare function axmAssistFollowUpItemsFromUnknown(raw: unknown): AXPAiChatFollo
613
589
  */
614
590
  declare function axmExtractAssistIdFromMetadata(metadata: Record<string, unknown> | undefined): string | undefined;
615
591
  /**
616
- * 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.
617
593
  */
618
594
  declare function axmExtractDirectAgentIdFromMetadata(metadata: Record<string, unknown> | undefined): string | undefined;
619
- /** 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. */
620
601
  declare function axmConversationHasAiChat(metadata: Record<string, unknown> | undefined): boolean;
621
602
  /** Reads embedded assist welcome/model fields stamped at conversation create. */
622
603
  declare function axmExtractAssistSnapshotFromMetadata(metadata: Record<string, unknown> | undefined): AXMAssistConversationSnapshotLite | null;
@@ -744,7 +725,9 @@ declare const AXM_CONVERSATION_REGULAR_AUTO_REPLY_PORT: InjectionToken<AXMConver
744
725
  declare class AXMConversationEntityStoreService {
745
726
  private readonly entityService;
746
727
  private readonly filterService;
728
+ private readonly session;
747
729
  private readonly bus;
730
+ private readonly userApi;
748
731
  private readonly messageData;
749
732
  private readonly roomData;
750
733
  /** Serializes entity writes per message id so streaming deltas persist in order. */
@@ -759,13 +742,18 @@ declare class AXMConversationEntityStoreService {
759
742
  private readonly conversationFetchChains;
760
743
  /** Dedupes concurrent message list queries (page 0). */
761
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>;
762
748
  getCachedConversation(conversationId: string): AXConversation | null;
763
749
  getCachedMessageList(conversationId: string): AXConversationMessage[] | null;
764
750
  cacheConversation(conversation: AXConversation): void;
751
+ clearSessionCaches(): void;
765
752
  cacheConversationFromRoom(room: AXMConversationRoom, currentUserId?: string): AXConversation;
766
753
  getConversation(conversationId: string, options?: {
767
754
  force?: boolean;
768
755
  }): Promise<AXConversation | null>;
756
+ refreshConversation(conversationId: string): Promise<AXConversation | null>;
769
757
  private fetchConversationFromEntity;
770
758
  /** Persists auto-generated title after assist completes (never during streaming). */
771
759
  persistAssistTitlePatch(room: AXMConversationRoom): Promise<void>;
@@ -799,15 +787,27 @@ declare class AXMConversationEntityStoreService {
799
787
  touchLastMessage(conversationId: string, message: AXConversationMessage): Promise<void>;
800
788
  updateConversation(conversation: AXConversation): Promise<AXConversation>;
801
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>;
802
795
  setUnreadCount(conversationId: string, unreadCount: number): Promise<void>;
803
796
  syncConversationUnreadCount(conversationId: string, currentUserId: string): Promise<void>;
797
+ private recomputeUnreadTotal;
804
798
  private isAssistResponseEntity;
805
799
  messageToEntityFields(message: AXConversationMessage): Partial<AXMConversationMessage>;
806
800
  axMessageFromCommand(command: AXConversationSendMessageCommand, senderId: string): AXConversationMessage;
807
801
  publishNewMessage(message: AXConversationMessage): void;
808
802
  publishMessageUpdate(message: AXConversationMessage): void;
809
- publishConversationUpdate(conversation: AXConversation): void;
810
- 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;
811
811
  publishTypingIndicator(indicator: _acorex_components_conversation.AXConversationTypingIndicator): void;
812
812
  publishPresenceUpdate(update: _acorex_components_conversation.AXConversationPresenceUpdate): void;
813
813
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMConversationEntityStoreService, never>;
@@ -819,6 +819,7 @@ declare class AXMConversationEntityStoreService {
819
819
  */
820
820
  declare class AXMConversationFocusService {
821
821
  private readonly store;
822
+ private readonly document;
822
823
  private focusedConversationId;
823
824
  /** Reactive focus id for computed UI (retry screen, etc.). */
824
825
  readonly focusedConversationIdSignal: _angular_core.WritableSignal<string | null>;
@@ -849,8 +850,10 @@ declare class AXMConversationRealtimeBus {
849
850
  readonly messageDeletions$: Observable<string>;
850
851
  private readonly conversationUpdateSubject;
851
852
  private readonly conversationCreatedSubject;
853
+ private readonly conversationDeletedSubject;
852
854
  readonly conversationUpdates$: Observable<AXConversation>;
853
855
  readonly conversationCreated$: Observable<AXConversation>;
856
+ readonly conversationDeleted$: Observable<string>;
854
857
  private readonly typingIndicatorSubject;
855
858
  private readonly presenceUpdateSubject;
856
859
  readonly typingIndicators$: Observable<AXConversationTypingIndicator>;
@@ -864,8 +867,9 @@ declare class AXMConversationRealtimeBus {
864
867
  private static readonly LOCAL_ROOM_MUTATION_SUPPRESS_MS;
865
868
  markLocalRoomMutation(conversationId: string): void;
866
869
  shouldSuppressRemoteRoomRefetch(conversationId: string): boolean;
867
- publishConversationUpdate(conversation: AXConversation): void;
868
- publishConversationCreated(conversation: AXConversation): void;
870
+ publishConversationUpdate(conversation: AXConversation, markLocal?: boolean): void;
871
+ publishConversationCreated(conversation: AXConversation, markLocal?: boolean): void;
872
+ publishConversationDeleted(conversationId: string): void;
869
873
  publishTypingIndicator(indicator: AXConversationTypingIndicator): void;
870
874
  publishPresenceUpdate(update: AXConversationPresenceUpdate): void;
871
875
  messagesForConversation(conversationId: string): Observable<AXConversationMessage>;
@@ -894,8 +898,8 @@ declare const AXM_CHAT_ASSIST_CATALOG_PORT: InjectionToken<AXMChatAssistCatalogP
894
898
  * Centralize the cast here so feature code does not repeat it.
895
899
  */
896
900
  interface AXMConversationServiceSessionAdapter {
897
- readonly currentUser: Signal<AXConversationParticipant | null>;
898
- setCurrentUser(participant: AXConversationParticipant | null): void;
901
+ readonly currentUser: Signal<AXConversationUser | null>;
902
+ setCurrentUser(user: AXConversationUser | null): void;
899
903
  closeActiveConversation(): void;
900
904
  resetConversationsPagination(): void;
901
905
  loadConversations(): Promise<void>;
@@ -1406,6 +1410,78 @@ declare class AXMMiniChatInboxPanelHostComponent {
1406
1410
  */
1407
1411
  declare class AXMMiniChatHeaderSlotComponent {
1408
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
+ }>;
1409
1485
  private readonly chatButtonRef;
1410
1486
  protected onToggleClick(): void;
1411
1487
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMMiniChatHeaderSlotComponent, never>;
@@ -1569,7 +1645,6 @@ declare class AXMMiniChatComponent {
1569
1645
  #private;
1570
1646
  private readonly conversationService;
1571
1647
  private readonly conversationApi;
1572
- private readonly assistResponse;
1573
1648
  private readonly destroyRef;
1574
1649
  /** Existing conversation id to open. When omitted (and no conversation is active), the new-chat composer is shown. */
1575
1650
  readonly chatId: _angular_core.InputSignal<string | undefined>;
@@ -1586,7 +1661,6 @@ declare class AXMMiniChatComponent {
1586
1661
  constructor();
1587
1662
  /** New-chat composer created and selected a conversation; surface it to the host. */
1588
1663
  onConversationCreated(conversationId: string): void;
1589
- onComposerGenerationCancelled(): void;
1590
1664
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMMiniChatComponent, never>;
1591
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>;
1592
1666
  }
@@ -1610,5 +1684,5 @@ declare const CONVERSATION_START_DIRECT_CHAT_COMMAND = "Conversation:StartDirect
1610
1684
  /** Opens an existing conversation in the chat app. */
1611
1685
  declare const CONVERSATION_OPEN_CHAT_COMMAND = "Conversation:OpenChat";
1612
1686
 
1613
- 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 };
1614
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 };