@acorex-platform/module-conversation-client 0.0.46 → 0.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DUR2oyfP.mjs → acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DcdPViNy.mjs} +1677 -515
- package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DcdPViNy.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-qTWATpgC.mjs → acorex-platform-module-conversation-client-after-message-sent.command-Cf1zPn3u.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-qTWATpgC.mjs.map → acorex-platform-module-conversation-client-after-message-sent.command-Cf1zPn3u.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DQWhOmBE.mjs → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-R40vR1C3.mjs} +5 -5
- package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DQWhOmBE.mjs.map → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-R40vR1C3.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-assist-message-renderer.component-DyVepuaW.mjs → acorex-platform-module-conversation-client-assist-message-renderer.component-CUlLCsF6.mjs} +6 -6
- package/fesm2022/{acorex-platform-module-conversation-client-assist-message-renderer.component-DyVepuaW.mjs.map → acorex-platform-module-conversation-client-assist-message-renderer.component-CUlLCsF6.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-assist-tool-detail-popup.component-D8na_1QJ.mjs → acorex-platform-module-conversation-client-assist-tool-detail-popup.component-B7LW5ie9.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-conversation-client-assist-tool-detail-popup.component-D8na_1QJ.mjs.map → acorex-platform-module-conversation-client-assist-tool-detail-popup.component-B7LW5ie9.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-chat-call-session-page.component-BeS4Duip.mjs → acorex-platform-module-conversation-client-chat-call-session-page.component-DiA01mpJ.mjs} +3 -3
- package/fesm2022/{acorex-platform-module-conversation-client-chat-call-session-page.component-BeS4Duip.mjs.map → acorex-platform-module-conversation-client-chat-call-session-page.component-DiA01mpJ.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-BbEhkLLh.mjs → acorex-platform-module-conversation-client-chat-call-start-popup.component-nLVRg9HK.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-BbEhkLLh.mjs.map → acorex-platform-module-conversation-client-chat-call-start-popup.component-nLVRg9HK.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-BxUz9jTX.mjs → acorex-platform-module-conversation-client-comments-page.component-C0JLE_oX.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-BxUz9jTX.mjs.map → acorex-platform-module-conversation-client-comments-page.component-C0JLE_oX.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs +15 -1
- package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs.map +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-juoWxu7I.mjs → acorex-platform-module-conversation-client-mark-conversation-unread.command-CIT6UHfK.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-juoWxu7I.mjs.map → acorex-platform-module-conversation-client-mark-conversation-unread.command-CIT6UHfK.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-ridcdmj7.mjs → acorex-platform-module-conversation-client-open-chat.command-kTWhndd2.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-ridcdmj7.mjs.map → acorex-platform-module-conversation-client-open-chat.command-kTWhndd2.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-BsYxaH3g.mjs → acorex-platform-module-conversation-client-retry-assist-response.command-pKO5UqyB.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-BsYxaH3g.mjs.map → acorex-platform-module-conversation-client-retry-assist-response.command-pKO5UqyB.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-conversation-client-sync-read-state.command-DsCyIdEk.mjs → acorex-platform-module-conversation-client-sync-read-state.command-BbQHG28M.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-conversation-client-sync-read-state.command-DsCyIdEk.mjs.map → acorex-platform-module-conversation-client-sync-read-state.command-BbQHG28M.mjs.map} +1 -1
- package/fesm2022/acorex-platform-module-conversation-client.mjs +2 -1
- package/fesm2022/acorex-platform-module-conversation-client.mjs.map +1 -1
- package/package.json +2 -2
- package/types/acorex-platform-module-conversation-client-contracts.d.ts +21 -2
- package/types/acorex-platform-module-conversation-client.d.ts +356 -184
- package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DUR2oyfP.mjs.map +0 -1
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { Provider, InjectionToken, Type, Signal, OnInit,
|
|
2
|
+
import { Provider, ElementRef, InjectionToken, Type, Signal, OnInit, DestroyRef, 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
5
|
import { AXPBackgroundOperationHandler, AXPBackgroundOperation, AXPFileStorageService } from '@acorex-platform/framework-client/common';
|
|
6
6
|
import * as _acorex_platform_framework_shared_core from '@acorex-platform/framework-shared/core';
|
|
7
7
|
import { AXPExecuteCommand, AXPFilterDefinition, AXPFilterQuery, AXPActionMenuItem, AXPMultiLanguageString, AXPWidgetNode, AXPUserReference, AXPEntityReference } from '@acorex-platform/framework-shared/core';
|
|
8
8
|
import { AXPPageLayoutBaseComponent } from '@acorex-platform/framework-client/layout/views';
|
|
9
|
-
import { AXMChannelFeedItem, AXMConversationRoom, AXMConversationMessage, AXMCommentEntityData, AXReaction, AXMessagePayload, AXMReactionType } from '@acorex-platform/module-conversation-client/contracts';
|
|
9
|
+
import { AXMChannelFeedItem, AXMConversationRoom, AXMConversationMessage, AXMCommentEntityData as AXMCommentEntityData$1, AXReaction, AXMessagePayload, AXMReactionType } from '@acorex-platform/module-conversation-client/contracts';
|
|
10
10
|
import { Routes } from '@angular/router';
|
|
11
|
-
import { AXClickEvent,
|
|
11
|
+
import { AXClickEvent, AXPlacement, AXStyleLookType } from '@acorex/cdk/common';
|
|
12
12
|
import { AXPDeviceService } from '@acorex-platform/framework-client/core';
|
|
13
13
|
import * as _acorex_components_conversation from '@acorex/components/conversation';
|
|
14
14
|
import { AXConversationApi, AXConversation, AXConversationMessageApi, AXConversationMessage, AXConversationRealtimeApi, AXConversationUserApi, AXConversationPagination, AXConversationPaginatedResult, AXConversationCreateData, AXConversationFilters, 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';
|
|
15
|
+
import { AXMCommentEntityData, AXMContextualAssistContext } from '@acorex-platform/module-conversation-client/contracts';
|
|
16
|
+
export { AXMContextualAssistContext, AXM_CONTEXTUAL_ASSIST_KIND_ENTITY_RECORD } from '@acorex-platform/module-conversation-client/contracts';
|
|
15
17
|
import { Observable } from 'rxjs';
|
|
16
|
-
import { AXMContextualAssistContext, AXMCommentEntityData as AXMCommentEntityData$1 } from '@acorex-platform/module-conversation-client/contracts';
|
|
17
18
|
import { AXPEntityDefinitionRegistryService, AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';
|
|
18
19
|
import { AXPopupRef, AXPopupComponentBase } from '@acorex/components/popup';
|
|
19
20
|
import { AXPAiChatResponse, AXPAiChatMessage, AXPAiChatFollowUpItem } from '@acorex-platform/module-ai-management-client';
|
|
@@ -230,6 +231,232 @@ declare function persistChatAttachment(fileStorage: AXPFileStorageService, file:
|
|
|
230
231
|
fileId: string;
|
|
231
232
|
}>;
|
|
232
233
|
|
|
234
|
+
/** Entity reference an entity-scoped chat is bound to (stored in conversation metadata). */
|
|
235
|
+
interface AXMEntityChatRef {
|
|
236
|
+
entityId: string;
|
|
237
|
+
entityType: string;
|
|
238
|
+
}
|
|
239
|
+
/** Room fields used to decide whether a chat belongs on the main inbox. */
|
|
240
|
+
interface AXMEntityChatRoomRef {
|
|
241
|
+
metadata?: Record<string, unknown>;
|
|
242
|
+
entityRef?: Pick<AXMCommentEntityData, 'entityId' | 'entityTypeId'> | null;
|
|
243
|
+
}
|
|
244
|
+
/** Room metadata flag: entity mini-chats stay off `/chat/`; header inbox chats omit this. */
|
|
245
|
+
declare const AXM_MINI_CHAT_SCOPE_METADATA_KEY = "miniChatScope";
|
|
246
|
+
declare const AXM_MINI_CHAT_SCOPE_ENTITY = "entity";
|
|
247
|
+
/**
|
|
248
|
+
* Synthetic record id for Ask AI on an entity **list** (no row id).
|
|
249
|
+
* Keeps list history on that page and out of the main chat sidebar.
|
|
250
|
+
*/
|
|
251
|
+
declare const AXM_ENTITY_LIST_CHAT_ID = "__entity-list__";
|
|
252
|
+
/**
|
|
253
|
+
* Conversation metadata for an entity-scoped assist chat.
|
|
254
|
+
* Keeps `assistId` so the existing assist reply pipeline still answers in entity chats.
|
|
255
|
+
*/
|
|
256
|
+
declare function axmBuildEntityChatConversationMetadata(args: {
|
|
257
|
+
entityId: string;
|
|
258
|
+
entityType: string;
|
|
259
|
+
assistId: string;
|
|
260
|
+
}): Record<string, unknown>;
|
|
261
|
+
/**
|
|
262
|
+
* `AXConversationService.createConversation` stores the whole UI options object as
|
|
263
|
+
* `room.metadata`, nesting real keys under `metadata.metadata`. Flatten so entity
|
|
264
|
+
* flags sit at the top level for inbox filters and `entityRef`.
|
|
265
|
+
*/
|
|
266
|
+
declare function axmFlattenConversationCreateMetadata(metadata: Record<string, unknown> | undefined): Record<string, unknown> | undefined;
|
|
267
|
+
/**
|
|
268
|
+
* Resolves the entity reference from conversation metadata.
|
|
269
|
+
* `AXConversationService.createConversation` may nest the UI object, so values
|
|
270
|
+
* are also probed at `metadata.metadata.*`.
|
|
271
|
+
*/
|
|
272
|
+
declare function axmExtractEntityRefFromMetadata(metadata: Record<string, unknown> | undefined): AXMEntityChatRef | undefined;
|
|
273
|
+
/** Entity id/type from a contextual-assist launch payload (entity row / details). */
|
|
274
|
+
declare function axmEntityRefFromLaunchContext(launch: AXMContextualAssistContext | undefined): AXMEntityChatRef | undefined;
|
|
275
|
+
/** True when the conversation is bound to an entity page (not the site-header inbox). */
|
|
276
|
+
declare function axmConversationIsEntityChat(metadata: Record<string, unknown> | undefined): boolean;
|
|
277
|
+
/** True when conversation metadata targets the given entity reference. */
|
|
278
|
+
declare function axmConversationMatchesEntity(metadata: Record<string, unknown> | undefined, ref: AXMEntityChatRef): boolean;
|
|
279
|
+
/**
|
|
280
|
+
* True when a persisted room is an entity-scoped chat (metadata and/or `entityRef`).
|
|
281
|
+
* Header / inbox AI chats have neither; they belong on `/chat/`.
|
|
282
|
+
*/
|
|
283
|
+
declare function axmRoomIsEntityChat(room: AXMEntityChatRoomRef | null | undefined): boolean;
|
|
284
|
+
/** True when a room is bound to the given entity via metadata or `entityRef`. */
|
|
285
|
+
declare function axmRoomMatchesEntity(room: AXMEntityChatRoomRef | null | undefined, ref: AXMEntityChatRef): boolean;
|
|
286
|
+
/**
|
|
287
|
+
* Persisted `entityRef` for an entity-scoped chat room so history can query by record
|
|
288
|
+
* and the main inbox can exclude the room (comment threads use `kind: 'comment'`).
|
|
289
|
+
*/
|
|
290
|
+
declare function axmBuildEntityChatRoomEntityRef(metadata: Record<string, unknown> | undefined): AXMCommentEntityData | undefined;
|
|
291
|
+
/** Launch context stored on a chat room, including the nested metadata shape. */
|
|
292
|
+
declare function axmRoomLaunchContext(room: AXMEntityChatRoomRef | null | undefined): AXMContextualAssistContext | undefined;
|
|
293
|
+
|
|
294
|
+
type AXMMiniChatContextChipKind = 'entity' | 'view' | 'record';
|
|
295
|
+
interface AXMMiniChatContextChip {
|
|
296
|
+
id: string;
|
|
297
|
+
kind: AXMMiniChatContextChipKind;
|
|
298
|
+
label: string;
|
|
299
|
+
}
|
|
300
|
+
interface AXMMiniChatPageContextDraft {
|
|
301
|
+
moduleName: string;
|
|
302
|
+
entityName: string;
|
|
303
|
+
entityTitle: string;
|
|
304
|
+
entityKey: string;
|
|
305
|
+
viewName?: string;
|
|
306
|
+
viewTitle?: string;
|
|
307
|
+
viewKey: string;
|
|
308
|
+
includeView: boolean;
|
|
309
|
+
records: Array<{
|
|
310
|
+
id: string;
|
|
311
|
+
title: string;
|
|
312
|
+
}>;
|
|
313
|
+
selectionKey: string;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/** Anchor element for overlay positioning. */
|
|
317
|
+
type AXMMiniChatPanelAnchor = Element | ElementRef<HTMLElement>;
|
|
318
|
+
/**
|
|
319
|
+
* Common placement aliases mapped to {@link AXPlacement}.
|
|
320
|
+
* Examples: `top-right` → `top-end`, `bottom-left` → `bottom-start`.
|
|
321
|
+
*/
|
|
322
|
+
type AXMMiniChatPanelSide = AXPlacement | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'left' | 'right';
|
|
323
|
+
/** Fixed viewport coordinates (px). Ignored when `anchor` is set. */
|
|
324
|
+
interface AXMMiniChatPanelPosition {
|
|
325
|
+
x: number;
|
|
326
|
+
y: number;
|
|
327
|
+
}
|
|
328
|
+
/** Mini chat panel scope: entity-bound threads or main inbox (non-entity chats). */
|
|
329
|
+
type AXMMiniChatPanelScope = 'entity' | 'inbox';
|
|
330
|
+
/**
|
|
331
|
+
* Who picks the assist on a new mini-chat thread.
|
|
332
|
+
* `ask` prompts before the first message (header inbox).
|
|
333
|
+
* `locked` keeps the caller assist and hides the picker (form designer).
|
|
334
|
+
* `optional` preselects the tenant default and still allows a change.
|
|
335
|
+
*/
|
|
336
|
+
type AXMMiniChatAssistSelection = 'ask' | 'locked' | 'optional';
|
|
337
|
+
/**
|
|
338
|
+
* How the shared panel is hosted.
|
|
339
|
+
* `overlay` is the floating window (header / entity pages).
|
|
340
|
+
* `embedded` fills the host (entity record details, later).
|
|
341
|
+
*/
|
|
342
|
+
type AXMMiniChatPanelPresentation = 'overlay' | 'embedded';
|
|
343
|
+
/** Session key used for the global inbox mini chat (non-entity conversations). */
|
|
344
|
+
declare const AXM_MINI_CHAT_INBOX_SESSION_KEY = "__inbox__";
|
|
345
|
+
/** Popup dock name for minimized mini-chat tabs in the root footer. */
|
|
346
|
+
declare const AXM_MINI_CHAT_POPUP_DOCK = "mini-chat";
|
|
347
|
+
/** Persisted panel state for a mini chat session. */
|
|
348
|
+
interface AXMMiniChatPanelSessionState {
|
|
349
|
+
view: 'thread' | 'history';
|
|
350
|
+
selectedChatId?: string;
|
|
351
|
+
hasOpened: boolean;
|
|
352
|
+
/** Page the thread belongs to (`Module.Entity:id`, `Module.Entity:list`, or `global`). */
|
|
353
|
+
pageKey?: string;
|
|
354
|
+
}
|
|
355
|
+
/** Options passed to {@link AXMMiniChatPanelService.open}. */
|
|
356
|
+
interface AXMMiniChatPanelOpenOptions {
|
|
357
|
+
/** Default: `entity`. Use `inbox` for regular (non-entity) chats shown in the main chat sidebar. */
|
|
358
|
+
scope?: AXMMiniChatPanelScope;
|
|
359
|
+
entityId?: string;
|
|
360
|
+
entityType?: string;
|
|
361
|
+
assistId?: string;
|
|
362
|
+
/** Default: `optional`. Header inbox uses `ask`; form designer uses `locked`. */
|
|
363
|
+
assistSelection?: AXMMiniChatAssistSelection;
|
|
364
|
+
title?: string;
|
|
365
|
+
showInfoBar?: boolean;
|
|
366
|
+
showComposer?: boolean;
|
|
367
|
+
/** Default: `overlay`. Use `embedded` when the panel is inlined in a page. */
|
|
368
|
+
presentation?: AXMMiniChatPanelPresentation;
|
|
369
|
+
/** Fixed viewport position (px). Ignored when `anchor` is set. */
|
|
370
|
+
position?: AXMMiniChatPanelPosition;
|
|
371
|
+
/** Anchor element for popover placement. */
|
|
372
|
+
anchor?: AXMMiniChatPanelAnchor;
|
|
373
|
+
/** Placement relative to anchor. Default: `top-end` when anchored. */
|
|
374
|
+
placement?: AXMMiniChatPanelSide;
|
|
375
|
+
offsetX?: number;
|
|
376
|
+
offsetY?: number;
|
|
377
|
+
autoFlip?: boolean;
|
|
378
|
+
/** When true, always opens a fresh conversation thread. */
|
|
379
|
+
forceNewChat?: boolean;
|
|
380
|
+
/** Default: true. Form-designer assist hides this control. */
|
|
381
|
+
minimizable?: boolean;
|
|
382
|
+
/**
|
|
383
|
+
* When true, the close button hides the live window instead of destroying it.
|
|
384
|
+
* The next open for the same session shows that same instance.
|
|
385
|
+
*/
|
|
386
|
+
retainOnClose?: boolean;
|
|
387
|
+
/**
|
|
388
|
+
* Record/surface context for a new assist thread (entity-row assist).
|
|
389
|
+
* Stored on the room and used to generate contextual starter chips.
|
|
390
|
+
*/
|
|
391
|
+
launchContext?: AXMContextualAssistContext;
|
|
392
|
+
}
|
|
393
|
+
/** Window controls exposed by the mini-chat popup host to {@link AXMMiniChatPanelService}. */
|
|
394
|
+
interface AXMMiniChatPopupWindowApi {
|
|
395
|
+
close(): void;
|
|
396
|
+
restore(): void;
|
|
397
|
+
minimize(): void;
|
|
398
|
+
maximize(): void;
|
|
399
|
+
hide(): void;
|
|
400
|
+
show(): void;
|
|
401
|
+
isMinimized(): boolean;
|
|
402
|
+
isMaximized(): boolean;
|
|
403
|
+
isHidden(): boolean;
|
|
404
|
+
}
|
|
405
|
+
/** Assigned onto {@link AXMMiniChatPopupWindowComponent} via popup `data`. */
|
|
406
|
+
interface AXMMiniChatPopupWindowData {
|
|
407
|
+
scope: AXMMiniChatPanelScope;
|
|
408
|
+
entityId?: string;
|
|
409
|
+
entityType?: string;
|
|
410
|
+
assistId?: string;
|
|
411
|
+
assistSelection: AXMMiniChatAssistSelection;
|
|
412
|
+
panelTitle?: string;
|
|
413
|
+
showInfoBar: boolean;
|
|
414
|
+
showComposer: boolean;
|
|
415
|
+
initialView: 'thread' | 'history';
|
|
416
|
+
initialConversationId?: string;
|
|
417
|
+
startWithNewChat: boolean;
|
|
418
|
+
launchContext?: AXMContextualAssistContext;
|
|
419
|
+
minimizable: boolean;
|
|
420
|
+
retainOnClose: boolean;
|
|
421
|
+
onSessionChange?: (state: Pick<AXMMiniChatPanelSessionState, 'view' | 'selectedChatId'>) => void;
|
|
422
|
+
onVisibilityChange?: (visible: boolean) => void;
|
|
423
|
+
registerWindow?: (api: AXMMiniChatPopupWindowApi | null) => void;
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
/** Whose chats a mini-chat history list is allowed to show. */
|
|
427
|
+
type AXMMiniChatHistoryScope = {
|
|
428
|
+
mode: 'global';
|
|
429
|
+
} | {
|
|
430
|
+
mode: 'entity';
|
|
431
|
+
entityType: string;
|
|
432
|
+
entityIds: string[];
|
|
433
|
+
} | {
|
|
434
|
+
mode: 'launch';
|
|
435
|
+
kind: string;
|
|
436
|
+
actionName: string;
|
|
437
|
+
recordId: string;
|
|
438
|
+
};
|
|
439
|
+
/** Header chips: a record chip binds that record, an entity chip binds the list, neither is global. */
|
|
440
|
+
declare function axmMiniChatHistoryScopeFromDraft(draft: AXMMiniChatPageContextDraft | null, chips: readonly AXMMiniChatContextChip[]): AXMMiniChatHistoryScope;
|
|
441
|
+
/**
|
|
442
|
+
* Fixed surfaces (form designer, entity window).
|
|
443
|
+
* Plain header inbox returns null so the live chips decide.
|
|
444
|
+
*/
|
|
445
|
+
declare function axmMiniChatHistoryScopeFromOpen(options: {
|
|
446
|
+
scope: AXMMiniChatPanelScope;
|
|
447
|
+
entityId?: string;
|
|
448
|
+
entityType?: string;
|
|
449
|
+
launchContext?: AXMContextualAssistContext;
|
|
450
|
+
}): AXMMiniChatHistoryScope | null;
|
|
451
|
+
/** Entity binding stamped on a new header chat so it stays out of global history. */
|
|
452
|
+
declare function axmEntityRefForMiniChatPageContext(launch: AXMContextualAssistContext | undefined): AXMEntityChatRef | undefined;
|
|
453
|
+
declare function axmMiniChatHistoryScopeKey(scope: AXMMiniChatHistoryScope): string;
|
|
454
|
+
/** Chats with no entity and no surface context. These are the only rooms on `/chat/`. */
|
|
455
|
+
declare function axmConversationIsGlobalChat(room: AXMEntityChatRoomRef | null | undefined): boolean;
|
|
456
|
+
declare function axmConversationMatchesHistoryScope(room: AXMEntityChatRoomRef | null | undefined, scope: AXMMiniChatHistoryScope): boolean;
|
|
457
|
+
/** True when this open window still belongs to the route the user is on. Header inbox follows every route. */
|
|
458
|
+
declare function axmMiniChatWindowOwnsRoute(options: Pick<AXMMiniChatPanelOpenOptions, 'scope' | 'entityId' | 'entityType' | 'launchContext'>, params: Record<string, string>): boolean;
|
|
459
|
+
|
|
233
460
|
/** User profile, discovery, and presence for conversation chat. */
|
|
234
461
|
declare abstract class AXMChatUserApi extends AXConversationUserApi {
|
|
235
462
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChatUserApi, never>;
|
|
@@ -244,6 +471,8 @@ declare abstract class AXMChatConversationApi extends AXConversationApi {
|
|
|
244
471
|
* Bypasses the regular inbox filtering so entity chats remain discoverable per entity.
|
|
245
472
|
*/
|
|
246
473
|
abstract findEntityConversations(entityType: string, entityId: string): Promise<AXConversation[]>;
|
|
474
|
+
/** Chat rooms that belong to one mini-chat history scope (global, entity, or a surface such as form designer). */
|
|
475
|
+
abstract findHistoryConversations(scope: AXMMiniChatHistoryScope): Promise<AXConversation[]>;
|
|
247
476
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMChatConversationApi, never>;
|
|
248
477
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMChatConversationApi>;
|
|
249
478
|
}
|
|
@@ -335,6 +564,7 @@ declare class AXMChatEntityConversationApi extends AXMChatConversationApi {
|
|
|
335
564
|
searchConversations(query: string): Promise<AXConversation[]>;
|
|
336
565
|
filterConversations(filters: AXConversationFilters, pagination?: AXConversationPagination): Promise<AXConversationPaginatedResult<AXConversation>>;
|
|
337
566
|
findEntityConversations(entityType: string, entityId: string): Promise<AXConversation[]>;
|
|
567
|
+
findHistoryConversations(scope: AXMMiniChatHistoryScope): Promise<AXConversation[]>;
|
|
338
568
|
getParticipants(conversationId: string): Promise<AXConversationParticipant[]>;
|
|
339
569
|
addParticipants(conversationId: string, userIds: string[]): Promise<AXConversation>;
|
|
340
570
|
/**
|
|
@@ -396,6 +626,8 @@ declare class AXMChatEntityConversationRoomQueryService {
|
|
|
396
626
|
private readonly roomData;
|
|
397
627
|
private readonly messageData;
|
|
398
628
|
loadChatRooms(): Promise<AXMConversationRoom[]>;
|
|
629
|
+
/** Every chat room the current user can open, including entity and surface mini chats. */
|
|
630
|
+
loadAccessibleChatRooms(): Promise<AXMConversationRoom[]>;
|
|
399
631
|
enrichRoom(room: AXMConversationRoom, options?: {
|
|
400
632
|
probeLastMessage?: boolean;
|
|
401
633
|
currentUserId?: string;
|
|
@@ -584,9 +816,9 @@ declare const AXM_CHAT_SIDEBAR_ACTION_PROVIDER: InjectionToken<AXMChatSidebarAct
|
|
|
584
816
|
|
|
585
817
|
/** True when the conversation is an assist / AI bot chat. */
|
|
586
818
|
declare function axmIsAssistBotConversation(conversation: AXConversation): boolean;
|
|
587
|
-
/** Inbox (`/chat/`)
|
|
819
|
+
/** Inbox (`/chat/`) lists only global chats: no entity, record, or surface such as form designer. */
|
|
588
820
|
declare function axmExcludeEntityChatConversations(conversations: AXConversation[]): AXConversation[];
|
|
589
|
-
/** Wraps a sidebar tab so
|
|
821
|
+
/** Wraps a sidebar tab so only global chats stay on the main chat list. */
|
|
590
822
|
declare function axmInboxConversationTab(tab: AXConversationTab): AXConversationTab;
|
|
591
823
|
/** Sidebar tab for AI assist conversations (`type: 'bot'` or assist metadata). */
|
|
592
824
|
declare const AXM_CONVERSATION_TAB_BOT: AXConversationTab;
|
|
@@ -666,6 +898,7 @@ interface AXMChatEmptyAssistSessionBind {
|
|
|
666
898
|
entityId?: string;
|
|
667
899
|
entityType?: string;
|
|
668
900
|
launchContext?: AXMContextualAssistContext;
|
|
901
|
+
assistSelection?: AXMMiniChatAssistSelection;
|
|
669
902
|
}
|
|
670
903
|
/**
|
|
671
904
|
* Shared new-chat assist selection for the empty-state welcome UI and the real
|
|
@@ -687,6 +920,7 @@ declare class AXMChatEmptyAssistSessionService {
|
|
|
687
920
|
readonly entityId: _angular_core.WritableSignal<string | undefined>;
|
|
688
921
|
readonly entityType: _angular_core.WritableSignal<string | undefined>;
|
|
689
922
|
readonly launchContext: _angular_core.WritableSignal<AXMContextualAssistContext | undefined>;
|
|
923
|
+
readonly assistSelection: _angular_core.WritableSignal<AXMMiniChatAssistSelection>;
|
|
690
924
|
readonly assistPickerOpen: _angular_core.WritableSignal<boolean>;
|
|
691
925
|
private ensurePromise;
|
|
692
926
|
bind(input: AXMChatEmptyAssistSessionBind): void;
|
|
@@ -1288,14 +1522,14 @@ declare class AXMCommentManagementService {
|
|
|
1288
1522
|
private formatComment;
|
|
1289
1523
|
private buildCommentTree;
|
|
1290
1524
|
private formatThread;
|
|
1291
|
-
createThread(entityRef: AXMCommentEntityData, topic: string, title?: string): Promise<AXMCommentThread>;
|
|
1292
|
-
getThread(entityRef: AXMCommentEntityData, topic: string): Promise<AXMCommentThread | null>;
|
|
1293
|
-
countCommentsForEntity(entityRef: AXMCommentEntityData): Promise<number>;
|
|
1294
|
-
listThreads(entityRef: AXMCommentEntityData, topic: string): Promise<AXMCommentThread[]>;
|
|
1295
|
-
updateThread(entityRef: AXMCommentEntityData, topic: string, data: Partial<{
|
|
1525
|
+
createThread(entityRef: AXMCommentEntityData$1, topic: string, title?: string): Promise<AXMCommentThread>;
|
|
1526
|
+
getThread(entityRef: AXMCommentEntityData$1, topic: string): Promise<AXMCommentThread | null>;
|
|
1527
|
+
countCommentsForEntity(entityRef: AXMCommentEntityData$1): Promise<number>;
|
|
1528
|
+
listThreads(entityRef: AXMCommentEntityData$1, topic: string): Promise<AXMCommentThread[]>;
|
|
1529
|
+
updateThread(entityRef: AXMCommentEntityData$1, topic: string, data: Partial<{
|
|
1296
1530
|
title: string;
|
|
1297
1531
|
}>): Promise<AXMCommentThread>;
|
|
1298
|
-
deleteThread(entityRef: AXMCommentEntityData, topic: string): Promise<boolean>;
|
|
1532
|
+
deleteThread(entityRef: AXMCommentEntityData$1, topic: string): Promise<boolean>;
|
|
1299
1533
|
addComment(threadId: string, content: string, parentCommentId?: string, contentType?: string, userId?: string): Promise<AXMComment>;
|
|
1300
1534
|
getComments(threadId: string, nested: boolean): Promise<AXMComment[]>;
|
|
1301
1535
|
getComment(commentId: string): Promise<AXMComment>;
|
|
@@ -1417,13 +1651,13 @@ declare class AXMCommentComponent implements OnInit {
|
|
|
1417
1651
|
declare function axmExtractTextFromPayload(payload: AXMessagePayload | undefined): string;
|
|
1418
1652
|
|
|
1419
1653
|
declare abstract class AXMCommentService {
|
|
1420
|
-
abstract createThread(entityRef: AXMCommentEntityData, topic: string, title?: string): Promise<AXMCommentThread>;
|
|
1421
|
-
abstract getThread(entityRef: AXMCommentEntityData, topic: string): Promise<AXMCommentThread | null>;
|
|
1422
|
-
abstract listThreads(entityRef: AXMCommentEntityData, topic: string): Promise<AXMCommentThread[]>;
|
|
1423
|
-
abstract updateThread(entityRef: AXMCommentEntityData, topic: string, data: Partial<{
|
|
1654
|
+
abstract createThread(entityRef: AXMCommentEntityData$1, topic: string, title?: string): Promise<AXMCommentThread>;
|
|
1655
|
+
abstract getThread(entityRef: AXMCommentEntityData$1, topic: string): Promise<AXMCommentThread | null>;
|
|
1656
|
+
abstract listThreads(entityRef: AXMCommentEntityData$1, topic: string): Promise<AXMCommentThread[]>;
|
|
1657
|
+
abstract updateThread(entityRef: AXMCommentEntityData$1, topic: string, data: Partial<{
|
|
1424
1658
|
title: string;
|
|
1425
1659
|
}>): Promise<AXMCommentThread>;
|
|
1426
|
-
abstract deleteThread(entityRef: AXMCommentEntityData, topic: string): Promise<boolean>;
|
|
1660
|
+
abstract deleteThread(entityRef: AXMCommentEntityData$1, topic: string): Promise<boolean>;
|
|
1427
1661
|
abstract addComment(threadId: string, content: string, parentCommentId?: string, contentType?: string, userId?: string): Promise<AXMComment>;
|
|
1428
1662
|
abstract getComments(threadId: string, nested: boolean): Promise<AXMComment[]>;
|
|
1429
1663
|
abstract getComment(commentId: string): Promise<AXMComment>;
|
|
@@ -1443,10 +1677,10 @@ declare class AXMCommentServiceImpl {
|
|
|
1443
1677
|
private readonly messageService;
|
|
1444
1678
|
private readonly filterService;
|
|
1445
1679
|
private readonly translationService;
|
|
1446
|
-
createThread(creatorUser: AXPUserReference, entityRef: AXMCommentEntityData, topic: string, title?: string): Promise<AXMConversationRoom>;
|
|
1447
|
-
getThread(entityRef: AXMCommentEntityData, topic: string): Promise<AXMConversationRoom | null>;
|
|
1448
|
-
listRoomsForEntity(entityRef: AXMCommentEntityData): Promise<AXMConversationRoom[]>;
|
|
1449
|
-
listThreads(entityRef: AXMCommentEntityData, topic: string): Promise<AXMConversationRoom[]>;
|
|
1680
|
+
createThread(creatorUser: AXPUserReference, entityRef: AXMCommentEntityData$1, topic: string, title?: string): Promise<AXMConversationRoom>;
|
|
1681
|
+
getThread(entityRef: AXMCommentEntityData$1, topic: string): Promise<AXMConversationRoom | null>;
|
|
1682
|
+
listRoomsForEntity(entityRef: AXMCommentEntityData$1): Promise<AXMConversationRoom[]>;
|
|
1683
|
+
listThreads(entityRef: AXMCommentEntityData$1, topic: string): Promise<AXMConversationRoom[]>;
|
|
1450
1684
|
updateThread(threadId: string, data: Partial<{
|
|
1451
1685
|
title: string;
|
|
1452
1686
|
}>): Promise<AXMConversationRoom>;
|
|
@@ -1561,64 +1795,6 @@ declare class AXMCommentWidgetViewComponent extends AXPValueWidgetComponent<AXPE
|
|
|
1561
1795
|
|
|
1562
1796
|
declare const AXPCommentWidget: AXPWidgetConfig;
|
|
1563
1797
|
|
|
1564
|
-
/** Entity reference an entity-scoped chat is bound to (stored in conversation metadata). */
|
|
1565
|
-
interface AXMEntityChatRef {
|
|
1566
|
-
entityId: string;
|
|
1567
|
-
entityType: string;
|
|
1568
|
-
}
|
|
1569
|
-
/** Room fields used to decide whether a chat belongs on the main inbox. */
|
|
1570
|
-
interface AXMEntityChatRoomRef {
|
|
1571
|
-
metadata?: Record<string, unknown>;
|
|
1572
|
-
entityRef?: Pick<AXMCommentEntityData$1, 'entityId' | 'entityTypeId'> | null;
|
|
1573
|
-
}
|
|
1574
|
-
/** Room metadata flag: entity mini-chats stay off `/chat/`; header inbox chats omit this. */
|
|
1575
|
-
declare const AXM_MINI_CHAT_SCOPE_METADATA_KEY = "miniChatScope";
|
|
1576
|
-
declare const AXM_MINI_CHAT_SCOPE_ENTITY = "entity";
|
|
1577
|
-
/**
|
|
1578
|
-
* Synthetic record id for Ask AI on an entity **list** (no row id).
|
|
1579
|
-
* Keeps list history on that page and out of the main chat sidebar.
|
|
1580
|
-
*/
|
|
1581
|
-
declare const AXM_ENTITY_LIST_CHAT_ID = "__entity-list__";
|
|
1582
|
-
/**
|
|
1583
|
-
* Conversation metadata for an entity-scoped assist chat.
|
|
1584
|
-
* Keeps `assistId` so the existing assist reply pipeline still answers in entity chats.
|
|
1585
|
-
*/
|
|
1586
|
-
declare function axmBuildEntityChatConversationMetadata(args: {
|
|
1587
|
-
entityId: string;
|
|
1588
|
-
entityType: string;
|
|
1589
|
-
assistId: string;
|
|
1590
|
-
}): Record<string, unknown>;
|
|
1591
|
-
/**
|
|
1592
|
-
* `AXConversationService.createConversation` stores the whole UI options object as
|
|
1593
|
-
* `room.metadata`, nesting real keys under `metadata.metadata`. Flatten so entity
|
|
1594
|
-
* flags sit at the top level for inbox filters and `entityRef`.
|
|
1595
|
-
*/
|
|
1596
|
-
declare function axmFlattenConversationCreateMetadata(metadata: Record<string, unknown> | undefined): Record<string, unknown> | undefined;
|
|
1597
|
-
/**
|
|
1598
|
-
* Resolves the entity reference from conversation metadata.
|
|
1599
|
-
* `AXConversationService.createConversation` may nest the UI object, so values
|
|
1600
|
-
* are also probed at `metadata.metadata.*`.
|
|
1601
|
-
*/
|
|
1602
|
-
declare function axmExtractEntityRefFromMetadata(metadata: Record<string, unknown> | undefined): AXMEntityChatRef | undefined;
|
|
1603
|
-
/** Entity id/type from a contextual-assist launch payload (entity row / details). */
|
|
1604
|
-
declare function axmEntityRefFromLaunchContext(launch: AXMContextualAssistContext | undefined): AXMEntityChatRef | undefined;
|
|
1605
|
-
/** True when the conversation is bound to an entity page (not the site-header inbox). */
|
|
1606
|
-
declare function axmConversationIsEntityChat(metadata: Record<string, unknown> | undefined): boolean;
|
|
1607
|
-
/** True when conversation metadata targets the given entity reference. */
|
|
1608
|
-
declare function axmConversationMatchesEntity(metadata: Record<string, unknown> | undefined, ref: AXMEntityChatRef): boolean;
|
|
1609
|
-
/**
|
|
1610
|
-
* True when a persisted room is an entity-scoped chat (metadata and/or `entityRef`).
|
|
1611
|
-
* Header / inbox AI chats have neither; they belong on `/chat/`.
|
|
1612
|
-
*/
|
|
1613
|
-
declare function axmRoomIsEntityChat(room: AXMEntityChatRoomRef | null | undefined): boolean;
|
|
1614
|
-
/** True when a room is bound to the given entity via metadata or `entityRef`. */
|
|
1615
|
-
declare function axmRoomMatchesEntity(room: AXMEntityChatRoomRef | null | undefined, ref: AXMEntityChatRef): boolean;
|
|
1616
|
-
/**
|
|
1617
|
-
* Persisted `entityRef` for an entity-scoped chat room so history can query by record
|
|
1618
|
-
* and the main inbox can exclude the room (comment threads use `kind: 'comment'`).
|
|
1619
|
-
*/
|
|
1620
|
-
declare function axmBuildEntityChatRoomEntityRef(metadata: Record<string, unknown> | undefined): AXMCommentEntityData$1 | undefined;
|
|
1621
|
-
|
|
1622
1798
|
/** Arguments accepted by `AXConversationService.createConversation`, prebuilt for an entity chat. */
|
|
1623
1799
|
interface AXMEntityChatCreateData {
|
|
1624
1800
|
participantIds: string[];
|
|
@@ -1651,6 +1827,8 @@ declare class AXMEntityChatService {
|
|
|
1651
1827
|
private get conversationApi();
|
|
1652
1828
|
/** Returns every conversation bound to the given entity reference. */
|
|
1653
1829
|
findEntityConversations(ref: AXMEntityChatRef): Promise<AXConversation[]>;
|
|
1830
|
+
/** History for one mini-chat surface: global, an entity or record, or a launch such as form designer. */
|
|
1831
|
+
findHistoryConversations(scope: AXMMiniChatHistoryScope): Promise<AXConversation[]>;
|
|
1654
1832
|
/**
|
|
1655
1833
|
* Creates a new entity-scoped assist conversation and selects it.
|
|
1656
1834
|
* Must go through {@link AXConversationService.createConversation} so the open mini-chat
|
|
@@ -1674,19 +1852,23 @@ declare class AXMEntityChatService {
|
|
|
1674
1852
|
* Compact scrollable list of inbox AI-assist chats (non-entity bot / assist conversations).
|
|
1675
1853
|
*/
|
|
1676
1854
|
declare class AXMMiniChatInboxHistoryComponent implements OnInit {
|
|
1677
|
-
private readonly
|
|
1855
|
+
private readonly entityChatService;
|
|
1678
1856
|
private readonly conversationFilter;
|
|
1679
1857
|
private readonly realtimeBus;
|
|
1680
1858
|
private readonly destroyRef;
|
|
1859
|
+
/** Which chats to list. Defaults to global (no entity and no surface). */
|
|
1860
|
+
readonly scope: _angular_core.InputSignal<AXMMiniChatHistoryScope>;
|
|
1681
1861
|
/** Emits when the user picks a conversation from the list. */
|
|
1682
1862
|
readonly conversationSelected: _angular_core.OutputEmitterRef<string>;
|
|
1683
1863
|
/** Emits whether the loaded history contains at least one conversation. */
|
|
1684
1864
|
readonly hasConversationsChange: _angular_core.OutputEmitterRef<boolean>;
|
|
1685
1865
|
readonly conversations: _angular_core.WritableSignal<AXConversation[]>;
|
|
1686
1866
|
readonly loading: _angular_core.WritableSignal<boolean>;
|
|
1867
|
+
private refreshGeneration;
|
|
1868
|
+
constructor();
|
|
1687
1869
|
ngOnInit(): void;
|
|
1688
|
-
/** Reloads
|
|
1689
|
-
refresh(): Promise<void>;
|
|
1870
|
+
/** Reloads conversations for the current history scope. */
|
|
1871
|
+
refresh(scope?: AXMMiniChatHistoryScope): Promise<void>;
|
|
1690
1872
|
private bindRealtimeHistory;
|
|
1691
1873
|
private matchesInbox;
|
|
1692
1874
|
protected resolveListAvatar(conversation: AXConversation): {
|
|
@@ -1696,7 +1878,7 @@ declare class AXMMiniChatInboxHistoryComponent implements OnInit {
|
|
|
1696
1878
|
};
|
|
1697
1879
|
protected onSelect(conversationId: string): void;
|
|
1698
1880
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMMiniChatInboxHistoryComponent, never>;
|
|
1699
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMMiniChatInboxHistoryComponent, "axm-mini-chat-inbox-history", never, {}, { "conversationSelected": "conversationSelected"; "hasConversationsChange": "hasConversationsChange"; }, never, never, true, never>;
|
|
1881
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMMiniChatInboxHistoryComponent, "axm-mini-chat-inbox-history", never, { "scope": { "alias": "scope"; "required": false; "isSignal": true; }; }, { "conversationSelected": "conversationSelected"; "hasConversationsChange": "hasConversationsChange"; }, never, never, true, never>;
|
|
1700
1882
|
}
|
|
1701
1883
|
|
|
1702
1884
|
type AXMMiniChatInboxConversationFilter = (conversation: AXConversation) => boolean;
|
|
@@ -1826,9 +2008,11 @@ declare class AXMMiniChatHistoryComponent implements OnInit {
|
|
|
1826
2008
|
readonly hasConversationsChange: _angular_core.OutputEmitterRef<boolean>;
|
|
1827
2009
|
readonly conversations: _angular_core.WritableSignal<AXConversation[]>;
|
|
1828
2010
|
readonly loading: _angular_core.WritableSignal<boolean>;
|
|
2011
|
+
private refreshGeneration;
|
|
2012
|
+
constructor();
|
|
1829
2013
|
ngOnInit(): void;
|
|
1830
2014
|
/** Reloads the entity conversation list (call when the history panel becomes visible). */
|
|
1831
|
-
refresh(): Promise<void>;
|
|
2015
|
+
refresh(entityId?: string, entityType?: string): Promise<void>;
|
|
1832
2016
|
private bindRealtimeHistory;
|
|
1833
2017
|
protected resolveListAvatar(conversation: AXConversation): {
|
|
1834
2018
|
title: string;
|
|
@@ -1845,118 +2029,52 @@ declare function axmUpsertMiniChatHistoryItem(items: AXConversation[], next: AXC
|
|
|
1845
2029
|
/** Removes a conversation from a mini-chat history list. */
|
|
1846
2030
|
declare function axmRemoveMiniChatHistoryItem(items: AXConversation[], conversationId: string): AXConversation[];
|
|
1847
2031
|
|
|
1848
|
-
/** Anchor element for overlay positioning. */
|
|
1849
|
-
type AXMMiniChatPanelAnchor = Element | ElementRef<HTMLElement>;
|
|
1850
|
-
/**
|
|
1851
|
-
* Common placement aliases mapped to {@link AXPlacement}.
|
|
1852
|
-
* Examples: `top-right` → `top-end`, `bottom-left` → `bottom-start`.
|
|
1853
|
-
*/
|
|
1854
|
-
type AXMMiniChatPanelSide = AXPlacement | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'left' | 'right';
|
|
1855
|
-
/** Fixed viewport coordinates (px). Ignored when `anchor` is set. */
|
|
1856
|
-
interface AXMMiniChatPanelPosition {
|
|
1857
|
-
x: number;
|
|
1858
|
-
y: number;
|
|
1859
|
-
}
|
|
1860
|
-
/** Mini chat panel scope: entity-bound threads or main inbox (non-entity chats). */
|
|
1861
|
-
type AXMMiniChatPanelScope = 'entity' | 'inbox';
|
|
1862
|
-
/**
|
|
1863
|
-
* How the shared panel is hosted.
|
|
1864
|
-
* `overlay` is the floating window (header / entity pages).
|
|
1865
|
-
* `embedded` fills the host (entity record details, later).
|
|
1866
|
-
*/
|
|
1867
|
-
type AXMMiniChatPanelPresentation = 'overlay' | 'embedded';
|
|
1868
|
-
/** Session key used for the global inbox mini chat (non-entity conversations). */
|
|
1869
|
-
declare const AXM_MINI_CHAT_INBOX_SESSION_KEY = "__inbox__";
|
|
1870
|
-
/** Popup dock name for minimized mini-chat tabs in the root footer. */
|
|
1871
|
-
declare const AXM_MINI_CHAT_POPUP_DOCK = "mini-chat";
|
|
1872
|
-
/** Persisted panel state for a mini chat session. */
|
|
1873
|
-
interface AXMMiniChatPanelSessionState {
|
|
1874
|
-
view: 'thread' | 'history';
|
|
1875
|
-
selectedChatId?: string;
|
|
1876
|
-
hasOpened: boolean;
|
|
1877
|
-
}
|
|
1878
|
-
/** Options passed to {@link AXMMiniChatPanelService.open}. */
|
|
1879
|
-
interface AXMMiniChatPanelOpenOptions {
|
|
1880
|
-
/** Default: `entity`. Use `inbox` for regular (non-entity) chats shown in the main chat sidebar. */
|
|
1881
|
-
scope?: AXMMiniChatPanelScope;
|
|
1882
|
-
entityId?: string;
|
|
1883
|
-
entityType?: string;
|
|
1884
|
-
assistId?: string;
|
|
1885
|
-
title?: string;
|
|
1886
|
-
showInfoBar?: boolean;
|
|
1887
|
-
showComposer?: boolean;
|
|
1888
|
-
/** Default: `overlay`. Use `embedded` when the panel is inlined in a page. */
|
|
1889
|
-
presentation?: AXMMiniChatPanelPresentation;
|
|
1890
|
-
/** Fixed viewport position (px). Ignored when `anchor` is set. */
|
|
1891
|
-
position?: AXMMiniChatPanelPosition;
|
|
1892
|
-
/** Anchor element for popover placement. */
|
|
1893
|
-
anchor?: AXMMiniChatPanelAnchor;
|
|
1894
|
-
/** Placement relative to anchor. Default: `top-end` when anchored. */
|
|
1895
|
-
placement?: AXMMiniChatPanelSide;
|
|
1896
|
-
offsetX?: number;
|
|
1897
|
-
offsetY?: number;
|
|
1898
|
-
autoFlip?: boolean;
|
|
1899
|
-
/** When true, always opens a fresh conversation thread. */
|
|
1900
|
-
forceNewChat?: boolean;
|
|
1901
|
-
/**
|
|
1902
|
-
* Record/surface context for a new assist thread (entity-row assist).
|
|
1903
|
-
* Stored on the room and used to generate contextual starter chips.
|
|
1904
|
-
*/
|
|
1905
|
-
launchContext?: AXMContextualAssistContext;
|
|
1906
|
-
}
|
|
1907
|
-
/** Window controls exposed by the mini-chat popup host to {@link AXMMiniChatPanelService}. */
|
|
1908
|
-
interface AXMMiniChatPopupWindowApi {
|
|
1909
|
-
close(): void;
|
|
1910
|
-
restore(): void;
|
|
1911
|
-
minimize(): void;
|
|
1912
|
-
maximize(): void;
|
|
1913
|
-
isMinimized(): boolean;
|
|
1914
|
-
isMaximized(): boolean;
|
|
1915
|
-
}
|
|
1916
|
-
/** Assigned onto {@link AXMMiniChatPopupWindowComponent} via popup `data`. */
|
|
1917
|
-
interface AXMMiniChatPopupWindowData {
|
|
1918
|
-
scope: AXMMiniChatPanelScope;
|
|
1919
|
-
entityId?: string;
|
|
1920
|
-
entityType?: string;
|
|
1921
|
-
assistId?: string;
|
|
1922
|
-
panelTitle?: string;
|
|
1923
|
-
showInfoBar: boolean;
|
|
1924
|
-
showComposer: boolean;
|
|
1925
|
-
initialView: 'thread' | 'history';
|
|
1926
|
-
initialConversationId?: string;
|
|
1927
|
-
startWithNewChat: boolean;
|
|
1928
|
-
launchContext?: AXMContextualAssistContext;
|
|
1929
|
-
onSessionChange?: (state: Pick<AXMMiniChatPanelSessionState, 'view' | 'selectedChatId'>) => void;
|
|
1930
|
-
registerWindow?: (api: AXMMiniChatPopupWindowApi | null) => void;
|
|
1931
|
-
}
|
|
1932
|
-
|
|
1933
2032
|
/**
|
|
1934
2033
|
* Opens the shared mini chat window via {@link AXPopupService} (header inbox, entity FAB, contextual assist).
|
|
1935
2034
|
* Uses the module {@link AXConversationService} so assist SSE patches stream live.
|
|
1936
|
-
* Stays mounted across route changes
|
|
2035
|
+
* Stays mounted across route changes and returns to that page's home thread.
|
|
2036
|
+
* Minimize hides the overlay and docks a tab in the footer.
|
|
1937
2037
|
* Restores the last conversation per session on reopen; use {@link forceNewChat} for an explicit new thread.
|
|
1938
2038
|
*/
|
|
1939
2039
|
declare class AXMMiniChatPanelService {
|
|
1940
2040
|
private readonly popupService;
|
|
2041
|
+
private readonly settingsService;
|
|
2042
|
+
private readonly document;
|
|
1941
2043
|
private readonly translation;
|
|
1942
2044
|
private readonly conversationService;
|
|
1943
2045
|
private readonly conversationApi;
|
|
1944
2046
|
private readonly focusService;
|
|
2047
|
+
private readonly router;
|
|
2048
|
+
private readonly routeHome;
|
|
1945
2049
|
private windowApi;
|
|
1946
2050
|
private closePromise;
|
|
1947
2051
|
private windowGeneration;
|
|
2052
|
+
private anchorPlacementCleanup;
|
|
1948
2053
|
/** Active conversation before the panel took over selection (entity scope; restored on close). */
|
|
1949
2054
|
private savedActiveConversationId;
|
|
1950
2055
|
/** Root focus id before the panel opened (restored so assist/realtime keep the right thread). */
|
|
1951
2056
|
private savedFocusedConversationId;
|
|
1952
2057
|
/** Per-entity session (view, selected conversation) restored when the panel reopens. */
|
|
1953
2058
|
private readonly sessions;
|
|
1954
|
-
|
|
2059
|
+
private retainOnClose;
|
|
2060
|
+
private retainedHidden;
|
|
2061
|
+
private retainedSessionKey;
|
|
2062
|
+
private activeOpenOptions;
|
|
2063
|
+
private boundRouteKey;
|
|
2064
|
+
private activePageKey;
|
|
2065
|
+
private retargeting;
|
|
2066
|
+
private popupFrameReady;
|
|
2067
|
+
/** Reactive open state for launcher UI (true while the window exists, including minimized or hidden). */
|
|
1955
2068
|
readonly panelOpen: _angular_core.WritableSignal<boolean>;
|
|
1956
|
-
|
|
2069
|
+
constructor();
|
|
2070
|
+
/** True while the mini chat window is mounted (visible, minimized, or retained-hidden). */
|
|
1957
2071
|
isOpen(): boolean;
|
|
2072
|
+
/** True while the window is on screen. */
|
|
2073
|
+
isVisible(): boolean;
|
|
1958
2074
|
/** Closes the window when it is open. */
|
|
1959
2075
|
close(): void;
|
|
2076
|
+
/** Hides a retained window. Destroys the window when retention is off. */
|
|
2077
|
+
dismiss(): void;
|
|
1960
2078
|
/** Toggles the inbox mini chat window (regular non-entity conversations). */
|
|
1961
2079
|
toggleInbox(options?: Omit<AXMMiniChatPanelOpenOptions, 'scope' | 'entityId' | 'entityType'>): void;
|
|
1962
2080
|
/**
|
|
@@ -1971,8 +2089,17 @@ declare class AXMMiniChatPanelService {
|
|
|
1971
2089
|
private resolveWindowTitle;
|
|
1972
2090
|
private buildSessionKey;
|
|
1973
2091
|
private buildEntityKey;
|
|
2092
|
+
/** List and record of the same entity are different chats. */
|
|
2093
|
+
private currentPageChatKey;
|
|
1974
2094
|
private abandonOpenWindow;
|
|
2095
|
+
private onNavigation;
|
|
1975
2096
|
private finishWindowClose;
|
|
2097
|
+
/** Pins the popup beside its opener, or restores the last header-drag position. */
|
|
2098
|
+
private watchAnchorPlacement;
|
|
2099
|
+
private ensurePopupFrameLoaded;
|
|
2100
|
+
private loadPopupFrame;
|
|
2101
|
+
private persistPopupFrame;
|
|
2102
|
+
private clearAnchorPlacement;
|
|
1976
2103
|
private captureActiveConversation;
|
|
1977
2104
|
private captureFocusedConversation;
|
|
1978
2105
|
private restoreFocusedConversation;
|
|
@@ -2002,13 +2129,6 @@ declare class AXMMiniChatLauncherComponent {
|
|
|
2002
2129
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMMiniChatLauncherComponent, "axm-mini-chat-launcher", never, { "entityId": { "alias": "entityId"; "required": true; "isSignal": true; }; "entityType": { "alias": "entityType"; "required": true; "isSignal": true; }; "assistId": { "alias": "assistId"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "offsetX": { "alias": "offsetX"; "required": false; "isSignal": true; }; "offsetY": { "alias": "offsetY"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2003
2130
|
}
|
|
2004
2131
|
|
|
2005
|
-
type AXMMiniChatContextChipKind = 'entity' | 'view' | 'record';
|
|
2006
|
-
interface AXMMiniChatContextChip {
|
|
2007
|
-
id: string;
|
|
2008
|
-
kind: AXMMiniChatContextChipKind;
|
|
2009
|
-
label: string;
|
|
2010
|
-
}
|
|
2011
|
-
|
|
2012
2132
|
/**
|
|
2013
2133
|
* Live entity/view/record chips for the header mini chat.
|
|
2014
2134
|
* Chips stay editable until the first message pins them on the conversation.
|
|
@@ -2021,6 +2141,7 @@ declare class AXMMiniChatPageContextChipsService {
|
|
|
2021
2141
|
private readonly translation;
|
|
2022
2142
|
readonly chips: _angular_core.WritableSignal<AXMMiniChatContextChip[]>;
|
|
2023
2143
|
readonly locked: _angular_core.WritableSignal<boolean>;
|
|
2144
|
+
readonly historyScope: _angular_core.WritableSignal<AXMMiniChatHistoryScope>;
|
|
2024
2145
|
private capturing;
|
|
2025
2146
|
private pinnedId;
|
|
2026
2147
|
private readonly dismissed;
|
|
@@ -2052,6 +2173,7 @@ declare class AXMMiniChatPageContextChipsService {
|
|
|
2052
2173
|
private ensureDetailDraft;
|
|
2053
2174
|
private fetchDetail;
|
|
2054
2175
|
private applyDraft;
|
|
2176
|
+
private publishHistoryScope;
|
|
2055
2177
|
private readDetailRoute;
|
|
2056
2178
|
private readRecordTitle;
|
|
2057
2179
|
private resolveText;
|
|
@@ -2065,18 +2187,23 @@ declare class AXMMiniChatPageContextChipsService {
|
|
|
2065
2187
|
*/
|
|
2066
2188
|
declare class AXMMiniChatPanelComponent implements OnInit, OnDestroy {
|
|
2067
2189
|
private readonly conversationService;
|
|
2190
|
+
private readonly composerService;
|
|
2191
|
+
private readonly fileDrop;
|
|
2192
|
+
private fileDragDepth;
|
|
2068
2193
|
private readonly conversationApi;
|
|
2069
2194
|
private readonly pageContext;
|
|
2070
2195
|
private readonly localeService;
|
|
2071
2196
|
private readonly device;
|
|
2072
2197
|
private readonly destroyRef;
|
|
2073
2198
|
protected readonly pageContextChips: AXMMiniChatPageContextChipsService;
|
|
2199
|
+
private readonly routeHome;
|
|
2074
2200
|
private readonly localeProfile;
|
|
2075
2201
|
readonly scope: _angular_core.InputSignal<AXMMiniChatPanelScope>;
|
|
2076
2202
|
readonly presentation: _angular_core.InputSignal<AXMMiniChatPanelPresentation>;
|
|
2077
2203
|
readonly entityId: _angular_core.InputSignal<string | undefined>;
|
|
2078
2204
|
readonly entityType: _angular_core.InputSignal<string | undefined>;
|
|
2079
2205
|
readonly assistId: _angular_core.InputSignal<string | undefined>;
|
|
2206
|
+
readonly assistSelection: _angular_core.InputSignal<AXMMiniChatAssistSelection>;
|
|
2080
2207
|
readonly title: _angular_core.InputSignal<string | undefined>;
|
|
2081
2208
|
readonly showInfoBar: _angular_core.InputSignal<boolean>;
|
|
2082
2209
|
readonly showComposer: _angular_core.InputSignal<boolean>;
|
|
@@ -2092,13 +2219,16 @@ declare class AXMMiniChatPanelComponent implements OnInit, OnDestroy {
|
|
|
2092
2219
|
readonly onSessionChange: _angular_core.InputSignal<((state: Pick<AXMMiniChatPanelSessionState, "view" | "selectedChatId">) => void) | undefined>;
|
|
2093
2220
|
protected readonly view: _angular_core.WritableSignal<"thread" | "history">;
|
|
2094
2221
|
protected readonly selectedChatId: _angular_core.WritableSignal<string | undefined>;
|
|
2095
|
-
protected readonly
|
|
2222
|
+
protected readonly fileDragOver: _angular_core.WritableSignal<boolean>;
|
|
2223
|
+
protected readonly historyScope: _angular_core.Signal<AXMMiniChatHistoryScope>;
|
|
2096
2224
|
protected readonly isEmbedded: _angular_core.Signal<boolean>;
|
|
2097
2225
|
protected readonly isRtl: _angular_core.Signal<boolean>;
|
|
2098
2226
|
protected readonly canDragWindow: _angular_core.Signal<boolean>;
|
|
2099
2227
|
protected readonly canMinimize: _angular_core.Signal<boolean>;
|
|
2100
2228
|
protected readonly canMaximize: _angular_core.Signal<boolean>;
|
|
2101
2229
|
protected readonly canClose: _angular_core.Signal<boolean>;
|
|
2230
|
+
/** Home is already a new chat; the plus action is for history and open threads. */
|
|
2231
|
+
protected readonly showNewChatAction: _angular_core.Signal<boolean>;
|
|
2102
2232
|
protected readonly isRecordAssist: _angular_core.Signal<boolean>;
|
|
2103
2233
|
protected readonly workingInEntityTitle: _angular_core.Signal<string | null>;
|
|
2104
2234
|
protected readonly workingInViewTitle: _angular_core.Signal<string | null>;
|
|
@@ -2111,6 +2241,11 @@ declare class AXMMiniChatPanelComponent implements OnInit, OnDestroy {
|
|
|
2111
2241
|
protected closePanel(): void;
|
|
2112
2242
|
protected minimizePanel(): void;
|
|
2113
2243
|
protected toggleMaximizePanel(): void;
|
|
2244
|
+
protected onFileDragEnter(event: DragEvent): void;
|
|
2245
|
+
protected onFileDragOver(event: DragEvent): void;
|
|
2246
|
+
protected onFileDragLeave(event: DragEvent): void;
|
|
2247
|
+
protected onFileDragEnd(): void;
|
|
2248
|
+
protected onFileDrop(event: DragEvent): Promise<void>;
|
|
2114
2249
|
protected backToThread(): void;
|
|
2115
2250
|
protected openHistory(): void;
|
|
2116
2251
|
protected selectChat(conversationId: string): void;
|
|
@@ -2121,9 +2256,12 @@ declare class AXMMiniChatPanelComponent implements OnInit, OnDestroy {
|
|
|
2121
2256
|
private bindPageContextChips;
|
|
2122
2257
|
private pinPageContextConversation;
|
|
2123
2258
|
private readRecordTitle;
|
|
2259
|
+
private canAcceptFileDrop;
|
|
2260
|
+
private isFileDrag;
|
|
2261
|
+
private resetFileDrag;
|
|
2124
2262
|
private syncSession;
|
|
2125
2263
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMMiniChatPanelComponent, never>;
|
|
2126
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMMiniChatPanelComponent, "axm-mini-chat-panel", never, { "scope": { "alias": "scope"; "required": false; "isSignal": true; }; "presentation": { "alias": "presentation"; "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; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "showInfoBar": { "alias": "showInfoBar"; "required": false; "isSignal": true; }; "showComposer": { "alias": "showComposer"; "required": false; "isSignal": true; }; "requestClose": { "alias": "requestClose"; "required": true; "isSignal": true; }; "requestMinimize": { "alias": "requestMinimize"; "required": false; "isSignal": true; }; "requestMaximize": { "alias": "requestMaximize"; "required": false; "isSignal": true; }; "requestRestore": { "alias": "requestRestore"; "required": false; "isSignal": true; }; "isMaximized": { "alias": "isMaximized"; "required": false; "isSignal": true; }; "initialView": { "alias": "initialView"; "required": false; "isSignal": true; }; "initialConversationId": { "alias": "initialConversationId"; "required": false; "isSignal": true; }; "startWithNewChat": { "alias": "startWithNewChat"; "required": false; "isSignal": true; }; "launchContext": { "alias": "launchContext"; "required": false; "isSignal": true; }; "onSessionChange": { "alias": "onSessionChange"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2264
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMMiniChatPanelComponent, "axm-mini-chat-panel", never, { "scope": { "alias": "scope"; "required": false; "isSignal": true; }; "presentation": { "alias": "presentation"; "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; }; "assistSelection": { "alias": "assistSelection"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "showInfoBar": { "alias": "showInfoBar"; "required": false; "isSignal": true; }; "showComposer": { "alias": "showComposer"; "required": false; "isSignal": true; }; "requestClose": { "alias": "requestClose"; "required": true; "isSignal": true; }; "requestMinimize": { "alias": "requestMinimize"; "required": false; "isSignal": true; }; "requestMaximize": { "alias": "requestMaximize"; "required": false; "isSignal": true; }; "requestRestore": { "alias": "requestRestore"; "required": false; "isSignal": true; }; "isMaximized": { "alias": "isMaximized"; "required": false; "isSignal": true; }; "initialView": { "alias": "initialView"; "required": false; "isSignal": true; }; "initialConversationId": { "alias": "initialConversationId"; "required": false; "isSignal": true; }; "startWithNewChat": { "alias": "startWithNewChat"; "required": false; "isSignal": true; }; "launchContext": { "alias": "launchContext"; "required": false; "isSignal": true; }; "onSessionChange": { "alias": "onSessionChange"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2127
2265
|
}
|
|
2128
2266
|
|
|
2129
2267
|
/**
|
|
@@ -2132,18 +2270,23 @@ declare class AXMMiniChatPanelComponent implements OnInit, OnDestroy {
|
|
|
2132
2270
|
*/
|
|
2133
2271
|
declare class AXMMiniChatPopupWindowComponent extends AXPopupComponentBase {
|
|
2134
2272
|
private readonly destroyRef;
|
|
2273
|
+
private readonly hostElement;
|
|
2135
2274
|
scope: AXMMiniChatPanelScope;
|
|
2136
2275
|
entityId?: string;
|
|
2137
2276
|
entityType?: string;
|
|
2138
2277
|
assistId?: string;
|
|
2278
|
+
assistSelection: AXMMiniChatAssistSelection;
|
|
2139
2279
|
panelTitle?: string;
|
|
2140
2280
|
showInfoBar: boolean;
|
|
2141
2281
|
showComposer: boolean;
|
|
2282
|
+
minimizable: boolean;
|
|
2283
|
+
retainOnClose: boolean;
|
|
2142
2284
|
initialView: 'thread' | 'history';
|
|
2143
2285
|
initialConversationId?: string;
|
|
2144
2286
|
startWithNewChat: boolean;
|
|
2145
2287
|
launchContext?: AXMContextualAssistContext;
|
|
2146
2288
|
onSessionChange?: (state: Pick<AXMMiniChatPanelSessionState, 'view' | 'selectedChatId'>) => void;
|
|
2289
|
+
onVisibilityChange?: (visible: boolean) => void;
|
|
2147
2290
|
registerWindow?: (api: AXMMiniChatPopupWindowApi | null) => void;
|
|
2148
2291
|
protected readonly closeFn: () => void;
|
|
2149
2292
|
protected readonly minimizeFn: () => void;
|
|
@@ -2151,10 +2294,37 @@ declare class AXMMiniChatPopupWindowComponent extends AXPopupComponentBase {
|
|
|
2151
2294
|
protected readonly restoreFn: () => void;
|
|
2152
2295
|
private readonly windowApi;
|
|
2153
2296
|
constructor();
|
|
2297
|
+
/**
|
|
2298
|
+
* Escape uses the popup close path. A retained window stays mounted and only hides.
|
|
2299
|
+
*/
|
|
2300
|
+
onClosing(event: {
|
|
2301
|
+
cancel: boolean;
|
|
2302
|
+
}): void;
|
|
2303
|
+
private hideRetained;
|
|
2304
|
+
private showRetained;
|
|
2305
|
+
private overlayElement;
|
|
2154
2306
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMMiniChatPopupWindowComponent, never>;
|
|
2155
2307
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AXMMiniChatPopupWindowComponent, "axm-mini-chat-popup-window", never, {}, {}, never, never, true, never>;
|
|
2156
2308
|
}
|
|
2157
2309
|
|
|
2310
|
+
/**
|
|
2311
|
+
* Lets the mini-chat window add files to the empty-state composer
|
|
2312
|
+
* the same way its attachment button does.
|
|
2313
|
+
*/
|
|
2314
|
+
declare class AXMMiniChatFileDropService {
|
|
2315
|
+
private emptyDraftAdder;
|
|
2316
|
+
private pendingEmptyDraft;
|
|
2317
|
+
/** Compact empty composer registers while it is the visible new-chat surface. */
|
|
2318
|
+
registerEmptyDraftAdder(add: (files: File[]) => void): () => void;
|
|
2319
|
+
/**
|
|
2320
|
+
* Adds files to the empty composer when it is mounted.
|
|
2321
|
+
* Queues them when the thread is about to show that composer.
|
|
2322
|
+
*/
|
|
2323
|
+
addEmptyDraftFiles(files: File[]): void;
|
|
2324
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMMiniChatFileDropService, never>;
|
|
2325
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<AXMMiniChatFileDropService>;
|
|
2326
|
+
}
|
|
2327
|
+
|
|
2158
2328
|
/**
|
|
2159
2329
|
* Root-footer dock for minimized mini-chat windows (`mini-chat` dock name).
|
|
2160
2330
|
*/
|
|
@@ -2188,6 +2358,8 @@ declare class AXMMiniChatComponent {
|
|
|
2188
2358
|
readonly entityType: _angular_core.InputSignal<string | undefined>;
|
|
2189
2359
|
/** Assist used as the bot peer when creating a new entity chat (falls back to the tenant default). */
|
|
2190
2360
|
readonly assistId: _angular_core.InputSignal<string | undefined>;
|
|
2361
|
+
/** `ask` prompts in the header inbox. `locked` hides the picker (form designer). */
|
|
2362
|
+
readonly assistSelection: _angular_core.InputSignal<AXMMiniChatAssistSelection>;
|
|
2191
2363
|
/** Surface context for a new assist thread (entity-row assist chips and room metadata). */
|
|
2192
2364
|
readonly launchContext: _angular_core.InputSignal<AXMContextualAssistContext | undefined>;
|
|
2193
2365
|
readonly showInfoBar: _angular_core.InputSignal<boolean>;
|
|
@@ -2204,7 +2376,7 @@ declare class AXMMiniChatComponent {
|
|
|
2204
2376
|
/** Composer Stop — abort the in-flight assist stream for the active conversation. */
|
|
2205
2377
|
onComposerGenerationCancelled(): void;
|
|
2206
2378
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AXMMiniChatComponent, never>;
|
|
2207
|
-
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; }; "launchContext": { "alias": "launchContext"; "required": false; "isSignal": true; }; "showInfoBar": { "alias": "showInfoBar"; "required": false; "isSignal": true; }; "showComposer": { "alias": "showComposer"; "required": false; "isSignal": true; }; }, { "conversationOpened": "conversationOpened"; }, never, never, true, never>;
|
|
2379
|
+
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; }; "assistSelection": { "alias": "assistSelection"; "required": false; "isSignal": true; }; "launchContext": { "alias": "launchContext"; "required": false; "isSignal": true; }; "showInfoBar": { "alias": "showInfoBar"; "required": false; "isSignal": true; }; "showComposer": { "alias": "showComposer"; "required": false; "isSignal": true; }; }, { "conversationOpened": "conversationOpened"; }, never, never, true, never>;
|
|
2208
2380
|
}
|
|
2209
2381
|
|
|
2210
2382
|
/** Fired after a user message is persisted — triggers assist, auto-reply, and realtime side effects. */
|
|
@@ -2226,5 +2398,5 @@ declare const CONVERSATION_START_DIRECT_CHAT_COMMAND = "Conversation:StartDirect
|
|
|
2226
2398
|
/** Opens an existing conversation in the chat app. */
|
|
2227
2399
|
declare const CONVERSATION_OPEN_CHAT_COMMAND = "Conversation:OpenChat";
|
|
2228
2400
|
|
|
2229
|
-
export { AXMAddReactionCommand, AXMAssistSuggestionChipsComponent, AXMChannelFeedItemComponent, AXMChannelFeedPage, AXMChatAnnouncementChannelService, AXMChatComponent, AXMChatComposerAssistPickerComponent, AXMChatComposerEnsureAssistConversationDirective, AXMChatConversationApi, AXMChatEmptyAssistSessionService, AXMChatEntityConversationApi, AXMChatEntityConversationFocusHandler, AXMChatEntityConversationRoomQueryService, AXMChatEntityMessageApi, AXMChatEntityRealtimeApi, AXMChatEntityUserApi, AXMChatMessageApi, AXMChatRealtimeApi, AXMChatUserApi, AXMCommentComponent, AXMCommentManagementService, AXMCommentPopupComponent, AXMCommentRealtimeService, AXMCommentRealtimeServiceImpl, AXMCommentService, AXMCommentServiceImpl, AXMCommentWidgetViewComponent, AXMConversationAssistBackgroundOperationHandler, AXMConversationEntityStoreService, AXMConversationFocusService, AXMConversationModule, AXMConversationRealtimeBus, AXMEntityChatService, AXMMiniChatComponent, AXMMiniChatFooterDockComponent, AXMMiniChatHeaderSlotComponent, AXMMiniChatHistoryComponent, AXMMiniChatInboxHistoryComponent, AXMMiniChatLauncherComponent, AXMMiniChatPageActionComponent, AXMMiniChatPanelComponent, AXMMiniChatPanelService, AXMMiniChatPopupWindowComponent, 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_ENTITY_LIST_CHAT_ID, AXM_MINI_CHAT_INBOX_CONVERSATION_FILTER, AXM_MINI_CHAT_INBOX_SESSION_KEY, AXM_MINI_CHAT_POPUP_DOCK, AXM_MINI_CHAT_SCOPE_ENTITY, AXM_MINI_CHAT_SCOPE_METADATA_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, axmAssistSuggestionIconForLabel, axmAssistUserFacingPayloadLine, axmAssistUserVisibleItemsForLine, axmAssistWidgetNodeDedupeKey, axmAssistWidgetNodeFromUnknown, axmBuildAiChatConversationMetadata, axmBuildAssistPeerParticipantFromCreateData, axmBuildAssistPeerParticipantFromId, axmBuildAssistTranscriptLinePayload, axmBuildAutoTitleFromUserText, axmBuildEntityChatConversationMetadata, axmBuildEntityChatRoomEntityRef, axmChatAiPeerParticipantId, axmChatAiTargetAvatarUrl, axmChatAiTargetDisplayDescription, axmChatAiTargetDisplayName, axmChatAiTargetShortcutDescriptionKey, axmChatRenderableAssistWidgetNode, axmCoerceDate, axmCoerceTimestampMs, axmComputeConversationUnreadCount, axmConversationHasAiChat, axmConversationIsEntityChat, axmConversationMatchesEntity, axmEntityRefFromLaunchContext, axmExcludeEntityChatConversations, axmExtractAssistIdFromMetadata, axmExtractAssistSnapshotFromMetadata, axmExtractDirectAgentIdFromMetadata, axmExtractEntityRefFromMetadata, axmExtractModelEntityIdFromMetadata, axmExtractTextFromPayload, axmFilterChatAiTargets, axmFlattenConversationCreateMetadata, axmHydrateRealtimeConversationMessage, axmInboxConversationTab, axmIsAssistBotConversation, axmIsAssistPeerParticipant, axmIsAssistResponseMessage, axmIsAssistRetryableStatus, axmIsAssistStreamingMessage, axmIsAssistStreamingStatus, axmIsAssistTerminalStatus, axmIsUnsupportedLegacyAgentAssistConversation, axmLoadChatAiTargets, axmMessageCountsTowardUnread, axmMessageEntityToMessage, axmNormalizeAssistTranscriptForChatUi, axmNormalizeAssistTranscriptLineResponses, axmParseAssistTranscriptLinePayload, axmParseAssistTranscriptTextEnvelope, axmPartitionAssistAnswerText, axmPreferLocalUnreadCount, axmReadAssistAiTranscript, axmReadAssistAiTranscriptRaw, axmReadAssistFollowUpStatus, axmReadAssistResponseError, axmReadAssistResponseStatus, axmReadPlainTextMessagePayload, axmReadReplyToUserMessageId, axmRemoveMiniChatHistoryItem, axmResolveAssistFinalAnswerText, axmResolveChatAiTargetText, axmRoomEntityToConversation, axmRoomIsEntityChat, axmRoomMatchesEntity, axmRoomWithAssistPeerDisplayName, axmSanitizeAssistUserAnswerText, axmShouldPreferPersistedAssistOverLiveCache, axmShowCommentPopupCommandDefinition, axmSortMessagesNewestFirst, axmSyncAssistPeerDisplayName, axmSyntheticEmbedMessage, axmUpsertMiniChatHistoryItem, axmUserRowToParticipant, channelFeedPageRoutes, commentsPlugin, createConversationServiceSessionAdapter, persistChatAttachment };
|
|
2230
|
-
export type { AXMAddReactionCommandInput, AXMAssistConversationSnapshotLite, AXMAssistDefaultResolverPort, AXMAssistStarterPromptChipOptions, AXMChatAiTargetRow, AXMChatAssistCatalogPort, AXMChatEmptyAssistContinue, AXMChatEmptyAssistCreatedHandler, AXMChatEmptyAssistSessionBind, AXMChatSidebarAction, AXMComment, AXMCommentEvent, AXMCommentEventType, AXMCommentThread, AXMConversationAssistResponsePort, AXMConversationRegularAutoReplyPort, AXMConversationServiceSessionAdapter, AXMEntityChatCreateData, AXMEntityChatRef, AXMEntityChatRoomRef, AXMMiniChatInboxConversationFilter, AXMMiniChatPanelAnchor, AXMMiniChatPanelOpenOptions, AXMMiniChatPanelPosition, AXMMiniChatPanelPresentation, AXMMiniChatPanelScope, AXMMiniChatPanelSessionState, AXMMiniChatPanelSide, AXMMiniChatPopupWindowApi, AXMMiniChatPopupWindowData, AXMSendAssistChatMessageOptions, AXMShowCommentPopupCommandInput, AXMThreadEvent, AXMThreadEventType, AXPAiChatFollowUpCommandLite, AXPAiChatFollowUpItemLite, AXPAiChatMessageLite, AXPAiChatNodeOrFollowUpResponseLite, AXPAiChatTextResponseLite, AXPAiEffectiveAssistRowLite, AxmAssistFollowUpStatus, AxmAssistPartitionedAnswerText, AxmAssistResponseStatus, AxmAssistTranscriptLinePayload, AxmAssistUserVisibleItem, CommentsDisplayMode, CommentsPluginOptions };
|
|
2401
|
+
export { AXMAddReactionCommand, AXMAssistSuggestionChipsComponent, AXMChannelFeedItemComponent, AXMChannelFeedPage, AXMChatAnnouncementChannelService, AXMChatComponent, AXMChatComposerAssistPickerComponent, AXMChatComposerEnsureAssistConversationDirective, AXMChatConversationApi, AXMChatEmptyAssistSessionService, AXMChatEntityConversationApi, AXMChatEntityConversationFocusHandler, AXMChatEntityConversationRoomQueryService, AXMChatEntityMessageApi, AXMChatEntityRealtimeApi, AXMChatEntityUserApi, AXMChatMessageApi, AXMChatRealtimeApi, AXMChatUserApi, AXMCommentComponent, AXMCommentManagementService, AXMCommentPopupComponent, AXMCommentRealtimeService, AXMCommentRealtimeServiceImpl, AXMCommentService, AXMCommentServiceImpl, AXMCommentWidgetViewComponent, AXMConversationAssistBackgroundOperationHandler, AXMConversationEntityStoreService, AXMConversationFocusService, AXMConversationModule, AXMConversationRealtimeBus, AXMEntityChatService, AXMMiniChatComponent, AXMMiniChatFileDropService, AXMMiniChatFooterDockComponent, AXMMiniChatHeaderSlotComponent, AXMMiniChatHistoryComponent, AXMMiniChatInboxHistoryComponent, AXMMiniChatLauncherComponent, AXMMiniChatPageActionComponent, AXMMiniChatPanelComponent, AXMMiniChatPanelService, AXMMiniChatPopupWindowComponent, 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_ENTITY_LIST_CHAT_ID, AXM_MINI_CHAT_INBOX_CONVERSATION_FILTER, AXM_MINI_CHAT_INBOX_SESSION_KEY, AXM_MINI_CHAT_POPUP_DOCK, AXM_MINI_CHAT_SCOPE_ENTITY, AXM_MINI_CHAT_SCOPE_METADATA_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, axmAssistSuggestionIconForLabel, axmAssistUserFacingPayloadLine, axmAssistUserVisibleItemsForLine, axmAssistWidgetNodeDedupeKey, axmAssistWidgetNodeFromUnknown, axmBuildAiChatConversationMetadata, axmBuildAssistPeerParticipantFromCreateData, axmBuildAssistPeerParticipantFromId, axmBuildAssistTranscriptLinePayload, axmBuildAutoTitleFromUserText, axmBuildEntityChatConversationMetadata, axmBuildEntityChatRoomEntityRef, axmChatAiPeerParticipantId, axmChatAiTargetAvatarUrl, axmChatAiTargetDisplayDescription, axmChatAiTargetDisplayName, axmChatAiTargetShortcutDescriptionKey, axmChatRenderableAssistWidgetNode, axmCoerceDate, axmCoerceTimestampMs, axmComputeConversationUnreadCount, axmConversationHasAiChat, axmConversationIsEntityChat, axmConversationIsGlobalChat, axmConversationMatchesEntity, axmConversationMatchesHistoryScope, axmEntityRefForMiniChatPageContext, axmEntityRefFromLaunchContext, axmExcludeEntityChatConversations, axmExtractAssistIdFromMetadata, axmExtractAssistSnapshotFromMetadata, axmExtractDirectAgentIdFromMetadata, axmExtractEntityRefFromMetadata, axmExtractModelEntityIdFromMetadata, axmExtractTextFromPayload, axmFilterChatAiTargets, axmFlattenConversationCreateMetadata, axmHydrateRealtimeConversationMessage, axmInboxConversationTab, axmIsAssistBotConversation, axmIsAssistPeerParticipant, axmIsAssistResponseMessage, axmIsAssistRetryableStatus, axmIsAssistStreamingMessage, axmIsAssistStreamingStatus, axmIsAssistTerminalStatus, axmIsUnsupportedLegacyAgentAssistConversation, axmLoadChatAiTargets, axmMessageCountsTowardUnread, axmMessageEntityToMessage, axmMiniChatHistoryScopeFromDraft, axmMiniChatHistoryScopeFromOpen, axmMiniChatHistoryScopeKey, axmMiniChatWindowOwnsRoute, axmNormalizeAssistTranscriptForChatUi, axmNormalizeAssistTranscriptLineResponses, axmParseAssistTranscriptLinePayload, axmParseAssistTranscriptTextEnvelope, axmPartitionAssistAnswerText, axmPreferLocalUnreadCount, axmReadAssistAiTranscript, axmReadAssistAiTranscriptRaw, axmReadAssistFollowUpStatus, axmReadAssistResponseError, axmReadAssistResponseStatus, axmReadPlainTextMessagePayload, axmReadReplyToUserMessageId, axmRemoveMiniChatHistoryItem, axmResolveAssistFinalAnswerText, axmResolveChatAiTargetText, axmRoomEntityToConversation, axmRoomIsEntityChat, axmRoomLaunchContext, axmRoomMatchesEntity, axmRoomWithAssistPeerDisplayName, axmSanitizeAssistUserAnswerText, axmShouldPreferPersistedAssistOverLiveCache, axmShowCommentPopupCommandDefinition, axmSortMessagesNewestFirst, axmSyncAssistPeerDisplayName, axmSyntheticEmbedMessage, axmUpsertMiniChatHistoryItem, axmUserRowToParticipant, channelFeedPageRoutes, commentsPlugin, createConversationServiceSessionAdapter, persistChatAttachment };
|
|
2402
|
+
export type { AXMAddReactionCommandInput, AXMAssistConversationSnapshotLite, AXMAssistDefaultResolverPort, AXMAssistStarterPromptChipOptions, AXMChatAiTargetRow, AXMChatAssistCatalogPort, AXMChatEmptyAssistContinue, AXMChatEmptyAssistCreatedHandler, AXMChatEmptyAssistSessionBind, AXMChatSidebarAction, AXMComment, AXMCommentEvent, AXMCommentEventType, AXMCommentThread, AXMConversationAssistResponsePort, AXMConversationRegularAutoReplyPort, AXMConversationServiceSessionAdapter, AXMEntityChatCreateData, AXMEntityChatRef, AXMEntityChatRoomRef, AXMMiniChatAssistSelection, AXMMiniChatHistoryScope, AXMMiniChatInboxConversationFilter, AXMMiniChatPanelAnchor, AXMMiniChatPanelOpenOptions, AXMMiniChatPanelPosition, AXMMiniChatPanelPresentation, AXMMiniChatPanelScope, AXMMiniChatPanelSessionState, AXMMiniChatPanelSide, AXMMiniChatPopupWindowApi, AXMMiniChatPopupWindowData, AXMSendAssistChatMessageOptions, AXMShowCommentPopupCommandInput, AXMThreadEvent, AXMThreadEventType, AXPAiChatFollowUpCommandLite, AXPAiChatFollowUpItemLite, AXPAiChatMessageLite, AXPAiChatNodeOrFollowUpResponseLite, AXPAiChatTextResponseLite, AXPAiEffectiveAssistRowLite, AxmAssistFollowUpStatus, AxmAssistPartitionedAnswerText, AxmAssistResponseStatus, AxmAssistTranscriptLinePayload, AxmAssistUserVisibleItem, CommentsDisplayMode, CommentsPluginOptions };
|