@memberjunction/ng-conversations 6.2.0-edge.5 → 6.2.0-edge.7

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 (164) hide show
  1. package/dist/lib/components/attachment/image-viewer.component.d.ts +3 -1
  2. package/dist/lib/components/attachment/image-viewer.component.d.ts.map +1 -1
  3. package/dist/lib/components/attachment/image-viewer.component.js +5 -1
  4. package/dist/lib/components/attachment/image-viewer.component.js.map +1 -1
  5. package/dist/lib/components/collection/collection-view.component.d.ts.map +1 -1
  6. package/dist/lib/components/collection/collection-view.component.js +1 -0
  7. package/dist/lib/components/collection/collection-view.component.js.map +1 -1
  8. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts +188 -9
  9. package/dist/lib/components/conversation/conversation-chat-area.component.d.ts.map +1 -1
  10. package/dist/lib/components/conversation/conversation-chat-area.component.js +1333 -464
  11. package/dist/lib/components/conversation/conversation-chat-area.component.js.map +1 -1
  12. package/dist/lib/components/conversation/conversation-mode-picker.component.js +2 -2
  13. package/dist/lib/components/conversation/conversation-mode-picker.component.js.map +1 -1
  14. package/dist/lib/components/conversation/conversation-remote-browser-controller.d.ts +109 -0
  15. package/dist/lib/components/conversation/conversation-remote-browser-controller.d.ts.map +1 -0
  16. package/dist/lib/components/conversation/conversation-remote-browser-controller.js +298 -0
  17. package/dist/lib/components/conversation/conversation-remote-browser-controller.js.map +1 -0
  18. package/dist/lib/components/message/agent-handoff-card.component.d.ts +102 -0
  19. package/dist/lib/components/message/agent-handoff-card.component.d.ts.map +1 -0
  20. package/dist/lib/components/message/agent-handoff-card.component.js +439 -0
  21. package/dist/lib/components/message/agent-handoff-card.component.js.map +1 -0
  22. package/dist/lib/components/message/message-input.component.d.ts +126 -59
  23. package/dist/lib/components/message/message-input.component.d.ts.map +1 -1
  24. package/dist/lib/components/message/message-input.component.js +559 -554
  25. package/dist/lib/components/message/message-input.component.js.map +1 -1
  26. package/dist/lib/components/message/message-item.component.d.ts +34 -2
  27. package/dist/lib/components/message/message-item.component.d.ts.map +1 -1
  28. package/dist/lib/components/message/message-item.component.js +678 -520
  29. package/dist/lib/components/message/message-item.component.js.map +1 -1
  30. package/dist/lib/components/message/message-list.component.d.ts +13 -1
  31. package/dist/lib/components/message/message-list.component.d.ts.map +1 -1
  32. package/dist/lib/components/message/message-list.component.js +92 -39
  33. package/dist/lib/components/message/message-list.component.js.map +1 -1
  34. package/dist/lib/components/overlay/chat-overlay.component.d.ts +19 -0
  35. package/dist/lib/components/overlay/chat-overlay.component.d.ts.map +1 -1
  36. package/dist/lib/components/overlay/chat-overlay.component.js +125 -13
  37. package/dist/lib/components/overlay/chat-overlay.component.js.map +1 -1
  38. package/dist/lib/components/project/project-form-modal.component.js +2 -2
  39. package/dist/lib/components/project/project-form-modal.component.js.map +1 -1
  40. package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.js +1 -1
  41. package/dist/lib/components/realtime/interactive-component/run-view-component-artifact-source.js.map +1 -1
  42. package/dist/lib/components/realtime/media/media-channel-state.d.ts +5 -0
  43. package/dist/lib/components/realtime/media/media-channel-state.d.ts.map +1 -1
  44. package/dist/lib/components/realtime/media/media-channel-state.js +27 -1
  45. package/dist/lib/components/realtime/media/media-channel-state.js.map +1 -1
  46. package/dist/lib/components/realtime/media/media-channel.d.ts.map +1 -1
  47. package/dist/lib/components/realtime/media/media-channel.js +7 -2
  48. package/dist/lib/components/realtime/media/media-channel.js.map +1 -1
  49. package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts +19 -2
  50. package/dist/lib/components/realtime/media/realtime-media-surface.component.d.ts.map +1 -1
  51. package/dist/lib/components/realtime/media/realtime-media-surface.component.js +59 -10
  52. package/dist/lib/components/realtime/media/realtime-media-surface.component.js.map +1 -1
  53. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts +22 -6
  54. package/dist/lib/components/realtime/realtime-agent-banner.component.d.ts.map +1 -1
  55. package/dist/lib/components/realtime/realtime-agent-banner.component.js +160 -98
  56. package/dist/lib/components/realtime/realtime-agent-banner.component.js.map +1 -1
  57. package/dist/lib/components/realtime/realtime-call-failure-notice.d.ts +13 -0
  58. package/dist/lib/components/realtime/realtime-call-failure-notice.d.ts.map +1 -0
  59. package/dist/lib/components/realtime/realtime-call-failure-notice.js +21 -0
  60. package/dist/lib/components/realtime/realtime-call-failure-notice.js.map +1 -0
  61. package/dist/lib/components/realtime/realtime-composer.component.d.ts +26 -3
  62. package/dist/lib/components/realtime/realtime-composer.component.d.ts.map +1 -1
  63. package/dist/lib/components/realtime/realtime-composer.component.js +226 -120
  64. package/dist/lib/components/realtime/realtime-composer.component.js.map +1 -1
  65. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts +73 -16
  66. package/dist/lib/components/realtime/realtime-session-overlay.component.d.ts.map +1 -1
  67. package/dist/lib/components/realtime/realtime-session-overlay.component.js +219 -108
  68. package/dist/lib/components/realtime/realtime-session-overlay.component.js.map +1 -1
  69. package/dist/lib/components/realtime/realtime-ui-config.d.ts +9 -12
  70. package/dist/lib/components/realtime/realtime-ui-config.d.ts.map +1 -1
  71. package/dist/lib/components/realtime/realtime-ui-config.js +38 -18
  72. package/dist/lib/components/realtime/realtime-ui-config.js.map +1 -1
  73. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.d.ts.map +1 -1
  74. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js +34 -5
  75. package/dist/lib/components/realtime/remote-browser/remote-browser-channel.js.map +1 -1
  76. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.d.ts +8 -2
  77. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.d.ts.map +1 -1
  78. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.js +51 -10
  79. package/dist/lib/components/realtime/remote-browser/remote-browser-tools.js.map +1 -1
  80. package/dist/lib/components/realtime/whiteboard/whiteboard-channel-config.d.ts +46 -0
  81. package/dist/lib/components/realtime/whiteboard/whiteboard-channel-config.d.ts.map +1 -0
  82. package/dist/lib/components/realtime/whiteboard/whiteboard-channel-config.js +64 -0
  83. package/dist/lib/components/realtime/whiteboard/whiteboard-channel-config.js.map +1 -0
  84. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts +131 -9
  85. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.d.ts.map +1 -1
  86. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js +347 -38
  87. package/dist/lib/components/realtime/whiteboard/whiteboard-channel.js.map +1 -1
  88. package/dist/lib/conversations.module.d.ts +2 -1
  89. package/dist/lib/conversations.module.d.ts.map +1 -1
  90. package/dist/lib/conversations.module.js +9 -4
  91. package/dist/lib/conversations.module.js.map +1 -1
  92. package/dist/lib/events/chat-events.d.ts +5 -4
  93. package/dist/lib/events/chat-events.d.ts.map +1 -1
  94. package/dist/lib/events/chat-events.js +2 -2
  95. package/dist/lib/events/chat-events.js.map +1 -1
  96. package/dist/lib/models/agent-turn.model.d.ts +11 -7
  97. package/dist/lib/models/agent-turn.model.d.ts.map +1 -1
  98. package/dist/lib/models/agent-turn.model.js.map +1 -1
  99. package/dist/lib/services/active-tasks.service.d.ts +5 -0
  100. package/dist/lib/services/active-tasks.service.d.ts.map +1 -1
  101. package/dist/lib/services/active-tasks.service.js +16 -0
  102. package/dist/lib/services/active-tasks.service.js.map +1 -1
  103. package/dist/lib/services/agent-state.service.d.ts.map +1 -1
  104. package/dist/lib/services/agent-state.service.js +7 -1
  105. package/dist/lib/services/agent-state.service.js.map +1 -1
  106. package/dist/lib/services/artifact-permission.service.d.ts.map +1 -1
  107. package/dist/lib/services/artifact-permission.service.js +2 -0
  108. package/dist/lib/services/artifact-permission.service.js.map +1 -1
  109. package/dist/lib/services/artifact-state.service.d.ts.map +1 -1
  110. package/dist/lib/services/artifact-state.service.js +1 -0
  111. package/dist/lib/services/artifact-state.service.js.map +1 -1
  112. package/dist/lib/services/collection-permission.service.d.ts.map +1 -1
  113. package/dist/lib/services/collection-permission.service.js +1 -0
  114. package/dist/lib/services/collection-permission.service.js.map +1 -1
  115. package/dist/lib/services/conversation-agent.service.d.ts +38 -16
  116. package/dist/lib/services/conversation-agent.service.d.ts.map +1 -1
  117. package/dist/lib/services/conversation-agent.service.js +57 -71
  118. package/dist/lib/services/conversation-agent.service.js.map +1 -1
  119. package/dist/lib/services/conversation-detail-window.store.d.ts +5 -0
  120. package/dist/lib/services/conversation-detail-window.store.d.ts.map +1 -1
  121. package/dist/lib/services/conversation-detail-window.store.js +52 -5
  122. package/dist/lib/services/conversation-detail-window.store.js.map +1 -1
  123. package/dist/lib/services/realtime-session-review.service.d.ts +2 -1
  124. package/dist/lib/services/realtime-session-review.service.d.ts.map +1 -1
  125. package/dist/lib/services/realtime-session-review.service.js.map +1 -1
  126. package/dist/lib/services/realtime-session.service.d.ts.map +1 -1
  127. package/dist/lib/services/realtime-session.service.js +2 -1
  128. package/dist/lib/services/realtime-session.service.js.map +1 -1
  129. package/dist/lib/services/search.service.d.ts.map +1 -1
  130. package/dist/lib/services/search.service.js +1 -0
  131. package/dist/lib/services/search.service.js.map +1 -1
  132. package/dist/lib/utils/agent-failure-display.d.ts +14 -0
  133. package/dist/lib/utils/agent-failure-display.d.ts.map +1 -0
  134. package/dist/lib/utils/agent-failure-display.js +26 -0
  135. package/dist/lib/utils/agent-failure-display.js.map +1 -0
  136. package/dist/lib/utils/agent-handoff-map.d.ts +52 -0
  137. package/dist/lib/utils/agent-handoff-map.d.ts.map +1 -0
  138. package/dist/lib/utils/agent-handoff-map.js +270 -0
  139. package/dist/lib/utils/agent-handoff-map.js.map +1 -0
  140. package/dist/lib/utils/agent-turn-routing.d.ts +62 -7
  141. package/dist/lib/utils/agent-turn-routing.d.ts.map +1 -1
  142. package/dist/lib/utils/agent-turn-routing.js +147 -6
  143. package/dist/lib/utils/agent-turn-routing.js.map +1 -1
  144. package/dist/lib/utils/decision-routing.d.ts +17 -9
  145. package/dist/lib/utils/decision-routing.d.ts.map +1 -1
  146. package/dist/lib/utils/decision-routing.js +23 -14
  147. package/dist/lib/utils/decision-routing.js.map +1 -1
  148. package/dist/lib/utils/message-list-order.d.ts +13 -0
  149. package/dist/lib/utils/message-list-order.d.ts.map +1 -0
  150. package/dist/lib/utils/message-list-order.js +31 -0
  151. package/dist/lib/utils/message-list-order.js.map +1 -0
  152. package/dist/lib/utils/pin-state.d.ts +11 -0
  153. package/dist/lib/utils/pin-state.d.ts.map +1 -0
  154. package/dist/lib/utils/pin-state.js +9 -0
  155. package/dist/lib/utils/pin-state.js.map +1 -0
  156. package/dist/lib/utils/thread-replies.d.ts +34 -0
  157. package/dist/lib/utils/thread-replies.d.ts.map +1 -0
  158. package/dist/lib/utils/thread-replies.js +49 -0
  159. package/dist/lib/utils/thread-replies.js.map +1 -0
  160. package/dist/public-api.d.ts +6 -0
  161. package/dist/public-api.d.ts.map +1 -1
  162. package/dist/public-api.js +6 -0
  163. package/dist/public-api.js.map +1 -1
  164. package/package.json +36 -36
@@ -30,7 +30,10 @@ import { RealtimeNavigateRequest, RealtimeStartLiveRequest } from '../realtime/r
30
30
  import { RealtimeSessionTimelineMeta } from '../../utils/realtime-session-timeline';
31
31
  import { type DateJumpPeriod } from '../../utils/date-jump';
32
32
  import { type ConversationOpenView, type ForkBreadcrumb, type ForkHeaderPath, type ForkChipOpenRequest, type ForkViewLayout, type LatestTurn, type MessageForkChip } from '../../utils/conversation-forks';
33
+ import { type ThreadReplyRevealRequest } from '../../utils/thread-replies';
34
+ import { type MessageHandoffInfo } from '../message/agent-handoff-card.component';
33
35
  import { type MJChatSlotName } from '../../directives/chat-slot.directive';
36
+ import { RemoteBrowserSurfaceComponent } from '../realtime/remote-browser/remote-browser-surface.component';
34
37
  import type { MJChatAgentPresenceState } from '../slots/slot-interfaces';
35
38
  import { BeforeAgentTurnEventArgs, AfterAgentTurnEventArgs, BeforeToolInvokedEventArgs, AfterToolInvokedEventArgs, BeforeResponseFormSubmittedEventArgs, AfterResponseFormSubmittedEventArgs, BeforeStopClickedEventArgs, AfterStopClickedEventArgs, SessionStartedEventArgs, SessionChannelStateChangedEventArgs, SessionEndedEventArgs } from '../../events/chat-events';
36
39
  import * as i0 from "@angular/core";
@@ -93,7 +96,9 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
93
96
  get conversationId(): string | null;
94
97
  /** @deprecated Use {@link ConversationId}. */
95
98
  set conversationId(value: string | null);
96
- Conversation: MJConversationEntity | null;
99
+ private _conversation;
100
+ set Conversation(value: MJConversationEntity | null);
101
+ get Conversation(): MJConversationEntity | null;
97
102
  /** @deprecated Use {@link Conversation}. */
98
103
  set conversation(value: MJConversationEntity | null);
99
104
  /** @deprecated Use {@link Conversation}. */
@@ -184,6 +189,12 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
184
189
  * that authorization to a role to stop the server creating forks as well.
185
190
  */
186
191
  AllowForking: boolean;
192
+ /**
193
+ * Host-level opt-in for the conversation's Remote Browser: the header's Browser button, its drawer,
194
+ * and the `browser_*` tools that let this conversation's agents drive it. Defaults false; a host
195
+ * that wants an agent-driven browser beside the chat sets true.
196
+ */
197
+ AllowRemoteBrowser: boolean;
187
198
  /**
188
199
  * Host-level cap for stopping and continuing agent runs: the composer's Stop and Stop all, the
189
200
  * Stop pill on an in-progress reply, the Continue button on a stopped reply, and the "Continue,
@@ -583,6 +594,24 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
583
594
  */
584
595
  get HasPreConversationHeader(): boolean;
585
596
  get ModePickerTargetAgentId(): string | null;
597
+ private _cachedOwnerAgentKey?;
598
+ private _cachedOwnerAgent;
599
+ /**
600
+ * Current conversation owner agent for the header `.with-chip` and composer
601
+ * placeholder: continuity (last non-Sage reply not preceded by a newer
602
+ * `@Sage` user message) -> pinned/default agent -> conversation manager.
603
+ * Memoized by message count and active routing inputs so template evaluation
604
+ * does not scan `messages` on every change-detection cycle.
605
+ */
606
+ get CurrentOwnerAgent(): {
607
+ ID: string;
608
+ Name: string;
609
+ IsConversationManager: boolean;
610
+ } | null;
611
+ get CurrentOwnerAgentName(): string;
612
+ get CurrentOwnerAccentVar(): string;
613
+ private isOwnerAgentAllowed;
614
+ private resolveHandoffAgentMeta;
586
615
  /**
587
616
  * Mode picker emitted a new selection. Store it; the next message's
588
617
  * route picks it up via `<mj-message-input>`'s
@@ -1058,6 +1087,13 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
1058
1087
  private reconcileInFlight;
1059
1088
  /** Reason for one more reconcile pass, requested while a pass was running. */
1060
1089
  private reconcileRerunReason;
1090
+ /**
1091
+ * Set when a TRANSPORT reconnect asks for a pass; consumed by the next pass that starts. Held as a
1092
+ * flag rather than read off the pass's reason because {@link ReconcileNow} folds requests that
1093
+ * arrive mid-pass into one follow-up carrying only the LAST reason — a reconnect followed by a
1094
+ * tab-visible would otherwise lose the window refresh the reconnect needs.
1095
+ */
1096
+ private reconcileWindowRefreshPending;
1061
1097
  IsProcessing: boolean;
1062
1098
  /** @deprecated Use {@link IsProcessing}. */
1063
1099
  get isProcessing(): boolean;
@@ -1143,6 +1179,15 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
1143
1179
  parentTaskId: string;
1144
1180
  workflowTitle: string;
1145
1181
  } | null;
1182
+ ShowRemoteBrowserPanel: boolean;
1183
+ RemoteBrowserUrlInput: string;
1184
+ IsRemoteBrowserNavigating: boolean;
1185
+ /** Whether this conversation's browser is running, shown or not (the header button stays lit while it is). */
1186
+ get IsRemoteBrowserLive(): boolean;
1187
+ /** The conversation's browser, built on first open so a chat area that never opens one pays nothing. */
1188
+ private remoteBrowser;
1189
+ private ensureRemoteBrowser;
1190
+ set ConversationRemoteBrowserSurface(surface: RemoteBrowserSurfaceComponent | undefined);
1146
1191
  /** @deprecated Use {@link ShowArtifactPanel}. */
1147
1192
  get showArtifactPanel(): boolean;
1148
1193
  /** @deprecated Use {@link ShowArtifactPanel}. */
@@ -1264,6 +1309,12 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
1264
1309
  get agentRunsByDetailId(): Map<string, MJAIAgentRunEntityExtended>;
1265
1310
  /** @deprecated Use {@link AgentRunsByDetailId}. */
1266
1311
  set agentRunsByDetailId(value: Map<string, MJAIAgentRunEntityExtended>);
1312
+ /**
1313
+ * Handoff metadata by source conversation detail ID, built from the source
1314
+ * run's `Handoff` step (`MJ: AI Agent Run Steps`) and subsequent target reply.
1315
+ */
1316
+ HandoffsByDetailId: Map<string, MessageHandoffInfo>;
1317
+ private handoffStepsByRunId;
1267
1318
  /**
1268
1319
  * Ratings by conversation detail ID (parsed from RatingsJSON)
1269
1320
  */
@@ -1287,6 +1338,8 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
1287
1338
  get InProgressMessageIds(): string[];
1288
1339
  set InProgressMessageIds(value: string[]);
1289
1340
  private _inProgressMessageIds;
1341
+ /** Tracks the ID each in-progress reply entity was last registered under so adopting the server's row ID drops the local placeholder UUID. */
1342
+ private inProgressIdByEntity?;
1290
1343
  /** Replies the person asked to stop that have not left In-Progress yet. */
1291
1344
  StoppingDetailIds: Set<string>;
1292
1345
  private _stopFallbackTimers;
@@ -1710,10 +1763,39 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
1710
1763
  private resetConversationScopedViewState;
1711
1764
  private resetArtifactPaneSizing;
1712
1765
  private onConversationChanged;
1713
- /**
1714
- * Returns array of cached message-input metadata for rendering
1766
+ private _cachedInputsArray;
1767
+ private _cachedInputsKey;
1768
+ /** Max hidden composers kept mounted for draft/state preservation; older idle ones are unmounted. */
1769
+ private static readonly MAX_CACHED_MESSAGE_INPUTS;
1770
+ /** Stable case-normalized track key for `@for` so case-only UUID changes reuse the mounted composer. */
1771
+ NormalizeCachedInputId(conversationId: string): string;
1772
+ private findMessageInputCacheEntry;
1773
+ private resolveConversationNameForCache;
1774
+ private syncCachedMessageInputName;
1775
+ private findMessageInputComponent;
1776
+ /**
1777
+ * True when a cached hidden composer for `candidateId` is idle and safe to unmount.
1778
+ * Never evicts the newly-activated conversation, a conversation awaiting auto-send of
1779
+ * `PendingMessage`, a conversation hosting a live voice session, a conversation with
1780
+ * running tasks in `ActiveTasksService`, or a mounted composer with in-flight streaming
1781
+ * callbacks / DB watches / unsent file attachments (`HasActiveWork`).
1782
+ */
1783
+ private canEvictCachedMessageInput;
1784
+ /**
1785
+ * Registers `conversationId` as the most-recently-used composer and unmounts the
1786
+ * least-recently-used idle ones beyond the cap. Each cache entry keeps a live
1787
+ * `mj-message-input` component, so without a bound memory grows with every
1788
+ * conversation visited. Composers actively running an agent turn, holding unsent
1789
+ * file attachments, or hosting a live voice call are skipped until idle. Drafts
1790
+ * live in the draft store, so an evicted composer's frozen restore snapshot is
1791
+ * dropped to let a remount re-read the latest draft.
1792
+ */
1793
+ private touchMessageInputCache;
1794
+ /**
1795
+ * Returns array of cached message-input metadata for rendering.
1715
1796
  * This allows multiple message-input components to exist simultaneously (hidden)
1716
- * preserving their state when switching conversations
1797
+ * preserving their state when switching conversations.
1798
+ * Memoized on cache contents so template `@for` loops receive a stable array reference across CD ticks.
1717
1799
  */
1718
1800
  GetCachedInputs(): Array<{
1719
1801
  conversationId: string;
@@ -1815,6 +1897,8 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
1815
1897
  * than read from the engine's `_detailCache`, which the windowed path never populates.
1816
1898
  */
1817
1899
  private loadPeripheralData;
1900
+ private loadHandoffStepsForRunIds;
1901
+ private rebuildHandoffsMap;
1818
1902
  /**
1819
1903
  * Loads the `MJ: AI Agent Sessions` rows referenced by the conversation's
1820
1904
  * session-stamped details (one batched lookup, narrow fields, only when stamped rows
@@ -2125,6 +2209,11 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
2125
2209
  * for the user message on its own branch. Shows a notice for each failure.
2126
2210
  */
2127
2211
  private rerunTurnInPlace;
2212
+ /**
2213
+ * The rows of `userMessage`'s turn that an in-place rerun replaces: when thread replies are
2214
+ * collapsed, the main-flow rows after `userMessage` plus any thread replies rooted on those rows.
2215
+ */
2216
+ private turnRowsAfter;
2128
2217
  /**
2129
2218
  * Marks each row replaced, one save at a time (parallel saves race on the server's transaction
2130
2219
  * counter): `ReplacedAt` set and `HiddenToUser` true; the rows are kept for audit. Takes the saved rows
@@ -2177,6 +2266,17 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
2177
2266
  private forkChipAvatar;
2178
2267
  /** The view the loaded rows belong to; Main when none was set. */
2179
2268
  get WindowView(): ConversationOpenView;
2269
+ /**
2270
+ * When true, thread replies in the loaded window are omitted from top-level `DisplayMessages` so
2271
+ * they can be rendered inside a collapsed thread under their root message (see
2272
+ * {@link GetThreadReplyRoots}).
2273
+ */
2274
+ CollapseThreadReplies: boolean;
2275
+ /**
2276
+ * Emits when a jump targets a collapsed thread reply, after scrolling to its top-level root
2277
+ * message, so the host can open the thread and reveal the reply.
2278
+ */
2279
+ ThreadReplyRevealRequested: EventEmitter<ThreadReplyRevealRequest>;
2180
2280
  /**
2181
2281
  * The rows the message list shows for the window view; the same array until the rows or the view
2182
2282
  * change. Main shows every loaded row; a fork shows every inherited row, then its own rows; a draft
@@ -2185,6 +2285,11 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
2185
2285
  get DisplayMessages(): MJConversationDetailEntity[];
2186
2286
  /** The loaded rows split for the window view, and the rows shown; rebuilt only when one of their inputs changes. */
2187
2287
  private displayState;
2288
+ /**
2289
+ * Top-level root ID for `message` when {@link CollapseThreadReplies} is on and `message` is a
2290
+ * thread reply; null when thread collapsing is off or `message` belongs in the main flow.
2291
+ */
2292
+ private collapsedThreadRootId;
2188
2293
  /**
2189
2294
  * Puts `message` in place of the row with its id in the displayed rows and their split, keeping those
2190
2295
  * arrays. They are copies of `messages`, so an entity replaced in place there is replaced here too.
@@ -2393,11 +2498,13 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
2393
2498
  get HasSystemArtifacts(): boolean;
2394
2499
  /** @deprecated Use {@link HasSystemArtifacts}. */
2395
2500
  get hasSystemArtifacts(): boolean;
2501
+ private _artifactsArrayCache;
2502
+ private _artifactsArrayKey;
2396
2503
  /**
2397
- * Get unique artifacts grouped by artifact ID (not by conversation detail)
2398
- * Returns the latest version info for each unique artifact with all versions
2399
- * Works with LazyArtifactInfo - uses display data without loading full entities
2400
- * Respects showSystemArtifacts toggle
2504
+ * Get unique artifacts grouped by artifact ID (not by conversation detail).
2505
+ * Returns the latest version info for each unique artifact with all versions.
2506
+ * Works with LazyArtifactInfo - uses display data without loading full entities.
2507
+ * Respects showSystemArtifacts toggle and memoizes the result across CD passes.
2401
2508
  */
2402
2509
  GetArtifactsArray(): Array<{
2403
2510
  artifactId: string;
@@ -2523,6 +2630,13 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
2523
2630
  * active one, the view change was ignored or failed, or the row is not on the view's path.
2524
2631
  */
2525
2632
  OpenMessage(conversationId: string, branchId: string | null, sequence: number): Promise<boolean>;
2633
+ /**
2634
+ * Scrolls to `messageId`, or when {@link CollapseThreadReplies} hides `messageId` under a thread
2635
+ * root, scrolls to that root and emits {@link ThreadReplyRevealRequested} so the host can open
2636
+ * the thread. False when the row (or its root) is not loaded, so the caller can page back for it.
2637
+ */
2638
+ private scrollToMessageOrThreadRoot;
2639
+ private emitThreadReplyReveal;
2526
2640
  /**
2527
2641
  * Waits until the load of `conversationId` has ended. False when another conversation
2528
2642
  * becomes active first or the component is destroyed.
@@ -2530,6 +2644,12 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
2530
2644
  private waitForConversationLoad;
2531
2645
  /** Pages older history until the pinned message `messageId` falls inside the loaded window. */
2532
2646
  private loadUntilMessageIsWindowed;
2647
+ /**
2648
+ * With {@link CollapseThreadReplies} on, pages older history until the top-level root of the loaded
2649
+ * thread reply `messageId` is loaded too, since the jump lands on the root. True when nothing more is
2650
+ * needed (collapsing off, `messageId` not a loaded thread reply, or its root loaded).
2651
+ */
2652
+ private loadUntilThreadRootIsWindowed;
2533
2653
  /**
2534
2654
  * Pages older history until the loaded window reaches back to `sequence`.
2535
2655
  *
@@ -2564,6 +2684,12 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
2564
2684
  customInput?: string;
2565
2685
  }): Promise<void>;
2566
2686
  OnDeleteMessage(message: MJConversationDetailEntity): Promise<void>;
2687
+ /**
2688
+ * The rows removed by "delete this and everything after": when thread replies are collapsed,
2689
+ * the target, every main-flow row after it, and any thread replies whose root is among those rows.
2690
+ * When the target is itself a thread reply, only the target and the replies under it.
2691
+ */
2692
+ private rowsToDeleteFrom;
2567
2693
  /** @deprecated Use {@link OnDeleteMessage}. */
2568
2694
  onDeleteMessage(message: MJConversationDetailEntity): Promise<void>;
2569
2695
  /** @deprecated Use {@link OnRegenerateRequested}. */
@@ -2618,6 +2744,17 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
2618
2744
  }): void;
2619
2745
  IsSavingTaskGraphWorkflow: boolean;
2620
2746
  OnCloseTaskGraphPanel(): void;
2747
+ ToggleRemoteBrowserPanel(): void;
2748
+ OpenRemoteBrowserPanel(): void;
2749
+ /** Closing the drawer ends the browser (hiding it behind an artifact does not). */
2750
+ CloseRemoteBrowserPanel(): void;
2751
+ NavigateRemoteBrowserFromInput(): Promise<void>;
2752
+ /**
2753
+ * `AppContext` plus the conversation's open browser (its URL, and the `browser_*` tools while this
2754
+ * chat area owns them). Cached: it is bound to an input, so a fresh object per check would re-fire it.
2755
+ */
2756
+ get EffectiveAppContext(): Record<string, unknown> | null;
2757
+ private effectiveAppContextMemo;
2621
2758
  /**
2622
2759
  * Persists the currently displayed Task Graph in the chat side-panel as a reusable
2623
2760
  * Draft Flow Agent workflow via {@link WorkflowSaveOperation} and opens the new
@@ -2790,6 +2927,11 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
2790
2927
  * on the load: a failed load just leaves the host's emit to fold it in.
2791
2928
  */
2792
2929
  private onRealtimeSessionStarted;
2930
+ /**
2931
+ * Says why a call ended only when it ended over a failure. A `'deadline'` end (the runtime's time-limit auto-end) is
2932
+ * a normal end: the call surface closes on its own and the visitor needs no error toast.
2933
+ */
2934
+ private notifyIfCallFailed;
2793
2935
  /**
2794
2936
  * Post-call hook. Two responsibilities:
2795
2937
  * 1. Reload the ACTIVE conversation's timeline so the session that just ended — whose
@@ -3048,6 +3190,14 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
3048
3190
  */
3049
3191
  private followTranscript;
3050
3192
  private isSettled;
3193
+ /**
3194
+ * Drops every in-flight ID whose loaded row has settled. A settled reply is never in flight:
3195
+ * the list drives the composer's Stop slot and its ticker, and every reconcile path scans the
3196
+ * rows for `In-Progress`, so an ID left behind after its row settled would never be looked at
3197
+ * again (the overlay's Stop button ticked for hours after Regenerate-as-fork this way). An ID
3198
+ * with no loaded row is kept; the row may simply not be on screen yet.
3199
+ */
3200
+ private dropSettledFromInFlight;
3051
3201
  /**
3052
3202
  * Where the viewport goes on a streamed delta, in the same frame as the DOM change so growth and
3053
3203
  * scroll paint together. Without ReadReplyFromTop, or for a turn this component never saw open
@@ -3119,6 +3269,35 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
3119
3269
  ReconcileNow(reason: string): Promise<void>;
3120
3270
  /** Runs passes until no caller has asked for another. Clears the in-flight marker on exit. */
3121
3271
  private runReconcilePasses;
3272
+ /**
3273
+ * Supervisor reasons that mean the transport itself was down, so anything published meanwhile
3274
+ * was dropped. Only these pay for {@link refreshNewestWindow}; the other triggers
3275
+ * (tab-visible, browser-online, message-liveness, completion-for-unloaded-message) keep the
3276
+ * narrow run-row refresh alone.
3277
+ */
3278
+ private static readonly TRANSPORT_RECONNECT_REASONS;
3279
+ /**
3280
+ * After a transport reconnect, re-read the newest window page before reconciling, when any AI
3281
+ * message is still unsettled.
3282
+ *
3283
+ * Two things {@link refreshAgentRunsForInProgress} alone does not cover:
3284
+ *
3285
+ * - **Error-status messages.** {@link correctStaleErrorMessages} can repair a message the client
3286
+ * marked Error while the server went on to complete the run — but only against a fresh run
3287
+ * row, and the narrow refresh reads runs for In-Progress messages only. Rebuilding the
3288
+ * peripherals from the refreshed window gives it current runs for every message in view.
3289
+ * - **Rows written while the socket was down.** Their events were dropped, so only a re-read
3290
+ * brings them into the window.
3291
+ *
3292
+ * Newest page only, the same choice the poll-completion path makes: a full-history refresh
3293
+ * would replace the loaded window with every row. Only called when
3294
+ * {@link hasUnsettledAgentReplies} is true, so a quiet conversation costs one array scan.
3295
+ *
3296
+ * @returns false when the conversation changed underneath, so the caller abandons the pass.
3297
+ */
3298
+ private refreshNewestWindow;
3299
+ /** Whether any agent reply is still In-Progress, or is Error and may have completed server-side. */
3300
+ private hasUnsettledAgentReplies;
3122
3301
  /** One reconcile pass over the in-progress messages of the active conversation. */
3123
3302
  private reconcileOnce;
3124
3303
  /**
@@ -3187,6 +3366,6 @@ export declare class ConversationChatAreaComponent extends BaseAngularComponent
3187
3366
  conversationId: string;
3188
3367
  }): void;
3189
3368
  static ɵfac: i0.ɵɵFactoryDeclaration<ConversationChatAreaComponent, never>;
3190
- static ɵcmp: i0.ɵɵComponentDeclaration<ConversationChatAreaComponent, "mj-conversation-chat-area", never, { "EnvironmentId": { "alias": "EnvironmentId"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "ConversationId": { "alias": "ConversationId"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "Conversation": { "alias": "Conversation"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "SuppressNewConversationEmptyState": { "alias": "SuppressNewConversationEmptyState"; "required": false; }; "suppressNewConversationEmptyState": { "alias": "suppressNewConversationEmptyState"; "required": false; }; "AllowMentions": { "alias": "AllowMentions"; "required": false; }; "allowMentions": { "alias": "allowMentions"; "required": false; }; "AllowAgentMentions": { "alias": "AllowAgentMentions"; "required": false; }; "allowAgentMentions": { "alias": "allowAgentMentions"; "required": false; }; "AllowEntityMentions": { "alias": "AllowEntityMentions"; "required": false; }; "allowEntityMentions": { "alias": "allowEntityMentions"; "required": false; }; "AllowSkillCommands": { "alias": "AllowSkillCommands"; "required": false; }; "allowSkillCommands": { "alias": "allowSkillCommands"; "required": false; }; "AllowAttachments": { "alias": "AllowAttachments"; "required": false; }; "allowAttachments": { "alias": "allowAttachments"; "required": false; }; "AllowPlanMode": { "alias": "AllowPlanMode"; "required": false; }; "allowPlanMode": { "alias": "allowPlanMode"; "required": false; }; "AllowRealtime": { "alias": "AllowRealtime"; "required": false; }; "allowRealtime": { "alias": "allowRealtime"; "required": false; }; "AllowForking": { "alias": "AllowForking"; "required": false; }; "AllowStopRun": { "alias": "AllowStopRun"; "required": false; }; "ShowEmptyFill": { "alias": "ShowEmptyFill"; "required": false; }; "showEmptyFill": { "alias": "showEmptyFill"; "required": false; }; "ShowLoadingState": { "alias": "ShowLoadingState"; "required": false; }; "showLoadingState": { "alias": "showLoadingState"; "required": false; }; "ReadReplyFromTop": { "alias": "ReadReplyFromTop"; "required": false; }; "readReplyFromTop": { "alias": "readReplyFromTop"; "required": false; }; "ShowAgentRunDetails": { "alias": "ShowAgentRunDetails"; "required": false; }; "showAgentRunDetails": { "alias": "showAgentRunDetails"; "required": false; }; "ShowReactions": { "alias": "ShowReactions"; "required": false; }; "showReactions": { "alias": "showReactions"; "required": false; }; "ShowMessageRating": { "alias": "ShowMessageRating"; "required": false; }; "showMessageRating": { "alias": "showMessageRating"; "required": false; }; "AllowPinning": { "alias": "AllowPinning"; "required": false; }; "allowPinning": { "alias": "allowPinning"; "required": false; }; "AllowMessageEdit": { "alias": "AllowMessageEdit"; "required": false; }; "allowMessageEdit": { "alias": "allowMessageEdit"; "required": false; }; "AllowMessageDelete": { "alias": "AllowMessageDelete"; "required": false; }; "allowMessageDelete": { "alias": "allowMessageDelete"; "required": false; }; "ReadOnly": { "alias": "ReadOnly"; "required": false; }; "ReadOnlyMessage": { "alias": "ReadOnlyMessage"; "required": false; }; "ShowSuggestedPrompts": { "alias": "ShowSuggestedPrompts"; "required": false; }; "showSuggestedPrompts": { "alias": "showSuggestedPrompts"; "required": false; }; "ShowDateNavigation": { "alias": "ShowDateNavigation"; "required": false; }; "showDateNavigation": { "alias": "showDateNavigation"; "required": false; }; "AssistantDisplayName": { "alias": "AssistantDisplayName"; "required": false; }; "assistantDisplayName": { "alias": "assistantDisplayName"; "required": false; }; "AssistantAvatarUrl": { "alias": "AssistantAvatarUrl"; "required": false; }; "assistantAvatarUrl": { "alias": "assistantAvatarUrl"; "required": false; }; "IsNewConversation": { "alias": "IsNewConversation"; "required": false; }; "isNewConversation": { "alias": "isNewConversation"; "required": false; }; "PendingMessage": { "alias": "PendingMessage"; "required": false; }; "pendingMessage": { "alias": "pendingMessage"; "required": false; }; "PendingMessageConversationId": { "alias": "PendingMessageConversationId"; "required": false; }; "pendingMessageConversationId": { "alias": "pendingMessageConversationId"; "required": false; }; "PendingAttachments": { "alias": "PendingAttachments"; "required": false; }; "pendingAttachments": { "alias": "pendingAttachments"; "required": false; }; "PendingArtifactId": { "alias": "PendingArtifactId"; "required": false; }; "pendingArtifactId": { "alias": "pendingArtifactId"; "required": false; }; "PendingArtifactVersionNumber": { "alias": "PendingArtifactVersionNumber"; "required": false; }; "pendingArtifactVersionNumber": { "alias": "pendingArtifactVersionNumber"; "required": false; }; "PendingArtifactConversationId": { "alias": "PendingArtifactConversationId"; "required": false; }; "pendingArtifactConversationId": { "alias": "pendingArtifactConversationId"; "required": false; }; "OverlayMode": { "alias": "OverlayMode"; "required": false; }; "overlayMode": { "alias": "overlayMode"; "required": false; }; "ShowExportButton": { "alias": "ShowExportButton"; "required": false; }; "showExportButton": { "alias": "showExportButton"; "required": false; }; "ExportButtonLabel": { "alias": "ExportButtonLabel"; "required": false; }; "exportButtonLabel": { "alias": "exportButtonLabel"; "required": false; }; "ExportButtonIcon": { "alias": "ExportButtonIcon"; "required": false; }; "exportButtonIcon": { "alias": "exportButtonIcon"; "required": false; }; "ExportBranding": { "alias": "ExportBranding"; "required": false; }; "exportBranding": { "alias": "exportBranding"; "required": false; }; "ShowShareButton": { "alias": "ShowShareButton"; "required": false; }; "showShareButton": { "alias": "showShareButton"; "required": false; }; "ShowArtifactIndicator": { "alias": "ShowArtifactIndicator"; "required": false; }; "showArtifactIndicator": { "alias": "showArtifactIndicator"; "required": false; }; "AppContext": { "alias": "AppContext"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "DefaultAgentId": { "alias": "DefaultAgentId"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "AgentReplyMode": { "alias": "AgentReplyMode"; "required": false; }; "AllowedAgentIDs": { "alias": "AllowedAgentIDs"; "required": false; }; "MentionPeople": { "alias": "MentionPeople"; "required": false; }; "AgentHistoryFrom": { "alias": "AgentHistoryFrom"; "required": false; }; "AgentTurnHandler": { "alias": "AgentTurnHandler"; "required": false; }; "AutoNameConversation": { "alias": "AutoNameConversation"; "required": false; }; "EnableDecisionRouting": { "alias": "EnableDecisionRouting"; "required": false; }; "ApplicationScope": { "alias": "ApplicationScope"; "required": false; }; "applicationScope": { "alias": "applicationScope"; "required": false; }; "ApplicationId": { "alias": "ApplicationId"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; "LinkedEntityId": { "alias": "LinkedEntityId"; "required": false; }; "linkedEntityId": { "alias": "linkedEntityId"; "required": false; }; "LinkedRecordId": { "alias": "LinkedRecordId"; "required": false; }; "linkedRecordId": { "alias": "linkedRecordId"; "required": false; }; "ShowAgentPicker": { "alias": "ShowAgentPicker"; "required": false; }; "showAgentPicker": { "alias": "showAgentPicker"; "required": false; }; "ShowAgentModePicker": { "alias": "ShowAgentModePicker"; "required": false; }; "showAgentModePicker": { "alias": "showAgentModePicker"; "required": false; }; "EmptyStateGreeting": { "alias": "EmptyStateGreeting"; "required": false; }; "emptyStateGreeting": { "alias": "emptyStateGreeting"; "required": false; }; "ShowSidebarToggle": { "alias": "ShowSidebarToggle"; "required": false; }; "showSidebarToggle": { "alias": "showSidebarToggle"; "required": false; }; "ShowAgentCharacter": { "alias": "ShowAgentCharacter"; "required": false; }; "showAgentCharacter": { "alias": "showAgentCharacter"; "required": false; }; "AgentCharacterConfig": { "alias": "AgentCharacterConfig"; "required": false; }; "agentCharacterConfig": { "alias": "agentCharacterConfig"; "required": false; }; "EmptyStateConfig": { "alias": "EmptyStateConfig"; "required": false; }; "emptyStateConfig": { "alias": "emptyStateConfig"; "required": false; }; "ShowDemonstrationSurface": { "alias": "ShowDemonstrationSurface"; "required": false; }; "showDemonstrationSurface": { "alias": "showDemonstrationSurface"; "required": false; }; "DemonstrationSurfaceContent": { "alias": "DemonstrationSurfaceContent"; "required": false; }; "demonstrationSurfaceContent": { "alias": "demonstrationSurfaceContent"; "required": false; }; "ComposerDraft": { "alias": "ComposerDraft"; "required": false; }; "composerDraft": { "alias": "composerDraft"; "required": false; }; "ComposerAgentMention": { "alias": "ComposerAgentMention"; "required": false; }; "composerAgentMention": { "alias": "composerAgentMention"; "required": false; }; }, { "BeforeAgentTurn": "BeforeAgentTurn"; "beforeAgentTurn": "beforeAgentTurn"; "AfterAgentTurn": "AfterAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "BeforeToolInvoked": "BeforeToolInvoked"; "beforeToolInvoked": "beforeToolInvoked"; "AfterToolInvoked": "AfterToolInvoked"; "afterToolInvoked": "afterToolInvoked"; "BeforeResponseFormSubmitted": "BeforeResponseFormSubmitted"; "beforeResponseFormSubmitted": "beforeResponseFormSubmitted"; "AfterResponseFormSubmitted": "AfterResponseFormSubmitted"; "afterResponseFormSubmitted": "afterResponseFormSubmitted"; "BeforeStopClicked": "BeforeStopClicked"; "AfterStopClicked": "AfterStopClicked"; "SessionStarted": "SessionStarted"; "sessionStarted": "sessionStarted"; "SessionChannelStateChanged": "SessionChannelStateChanged"; "sessionChannelStateChanged": "sessionChannelStateChanged"; "SessionEnded": "SessionEnded"; "sessionEnded": "sessionEnded"; "ConversationRenamed": "ConversationRenamed"; "conversationRenamed": "conversationRenamed"; "OpenEntityRecord": "OpenEntityRecord"; "openEntityRecord": "openEntityRecord"; "RealtimeConversationReady": "RealtimeConversationReady"; "realtimeConversationReady": "realtimeConversationReady"; "navigationRequest": "navigationRequest"; "TaskClicked": "TaskClicked"; "taskClicked": "taskClicked"; "ArtifactLinkClicked": "ArtifactLinkClicked"; "artifactLinkClicked": "artifactLinkClicked"; "SidebarToggleClicked": "SidebarToggleClicked"; "sidebarToggleClicked": "sidebarToggleClicked"; "ConversationCreated": "ConversationCreated"; "conversationCreated": "conversationCreated"; "PendingArtifactConsumed": "PendingArtifactConsumed"; "pendingArtifactConsumed": "pendingArtifactConsumed"; "PendingMessageConsumed": "PendingMessageConsumed"; "pendingMessageConsumed": "pendingMessageConsumed"; "PendingMessageRequested": "PendingMessageRequested"; "pendingMessageRequested": "pendingMessageRequested"; "ComposerDraftConsumed": "ComposerDraftConsumed"; "composerDraftConsumed": "composerDraftConsumed"; "ComposerAgentMentionConsumed": "ComposerAgentMentionConsumed"; "composerAgentMentionConsumed": "composerAgentMentionConsumed"; }, ["chatSlotChildren"], never, false, never>;
3369
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConversationChatAreaComponent, "mj-conversation-chat-area", never, { "EnvironmentId": { "alias": "EnvironmentId"; "required": false; }; "environmentId": { "alias": "environmentId"; "required": false; }; "CurrentUser": { "alias": "CurrentUser"; "required": false; }; "currentUser": { "alias": "currentUser"; "required": false; }; "ConversationId": { "alias": "ConversationId"; "required": false; }; "conversationId": { "alias": "conversationId"; "required": false; }; "Conversation": { "alias": "Conversation"; "required": false; }; "conversation": { "alias": "conversation"; "required": false; }; "SuppressNewConversationEmptyState": { "alias": "SuppressNewConversationEmptyState"; "required": false; }; "suppressNewConversationEmptyState": { "alias": "suppressNewConversationEmptyState"; "required": false; }; "AllowMentions": { "alias": "AllowMentions"; "required": false; }; "allowMentions": { "alias": "allowMentions"; "required": false; }; "AllowAgentMentions": { "alias": "AllowAgentMentions"; "required": false; }; "allowAgentMentions": { "alias": "allowAgentMentions"; "required": false; }; "AllowEntityMentions": { "alias": "AllowEntityMentions"; "required": false; }; "allowEntityMentions": { "alias": "allowEntityMentions"; "required": false; }; "AllowSkillCommands": { "alias": "AllowSkillCommands"; "required": false; }; "allowSkillCommands": { "alias": "allowSkillCommands"; "required": false; }; "AllowAttachments": { "alias": "AllowAttachments"; "required": false; }; "allowAttachments": { "alias": "allowAttachments"; "required": false; }; "AllowPlanMode": { "alias": "AllowPlanMode"; "required": false; }; "allowPlanMode": { "alias": "allowPlanMode"; "required": false; }; "AllowRealtime": { "alias": "AllowRealtime"; "required": false; }; "allowRealtime": { "alias": "allowRealtime"; "required": false; }; "AllowForking": { "alias": "AllowForking"; "required": false; }; "AllowRemoteBrowser": { "alias": "AllowRemoteBrowser"; "required": false; }; "AllowStopRun": { "alias": "AllowStopRun"; "required": false; }; "ShowEmptyFill": { "alias": "ShowEmptyFill"; "required": false; }; "showEmptyFill": { "alias": "showEmptyFill"; "required": false; }; "ShowLoadingState": { "alias": "ShowLoadingState"; "required": false; }; "showLoadingState": { "alias": "showLoadingState"; "required": false; }; "ReadReplyFromTop": { "alias": "ReadReplyFromTop"; "required": false; }; "readReplyFromTop": { "alias": "readReplyFromTop"; "required": false; }; "ShowAgentRunDetails": { "alias": "ShowAgentRunDetails"; "required": false; }; "showAgentRunDetails": { "alias": "showAgentRunDetails"; "required": false; }; "ShowReactions": { "alias": "ShowReactions"; "required": false; }; "showReactions": { "alias": "showReactions"; "required": false; }; "ShowMessageRating": { "alias": "ShowMessageRating"; "required": false; }; "showMessageRating": { "alias": "showMessageRating"; "required": false; }; "AllowPinning": { "alias": "AllowPinning"; "required": false; }; "allowPinning": { "alias": "allowPinning"; "required": false; }; "AllowMessageEdit": { "alias": "AllowMessageEdit"; "required": false; }; "allowMessageEdit": { "alias": "allowMessageEdit"; "required": false; }; "AllowMessageDelete": { "alias": "AllowMessageDelete"; "required": false; }; "allowMessageDelete": { "alias": "allowMessageDelete"; "required": false; }; "ReadOnly": { "alias": "ReadOnly"; "required": false; }; "ReadOnlyMessage": { "alias": "ReadOnlyMessage"; "required": false; }; "ShowSuggestedPrompts": { "alias": "ShowSuggestedPrompts"; "required": false; }; "showSuggestedPrompts": { "alias": "showSuggestedPrompts"; "required": false; }; "ShowDateNavigation": { "alias": "ShowDateNavigation"; "required": false; }; "showDateNavigation": { "alias": "showDateNavigation"; "required": false; }; "AssistantDisplayName": { "alias": "AssistantDisplayName"; "required": false; }; "assistantDisplayName": { "alias": "assistantDisplayName"; "required": false; }; "AssistantAvatarUrl": { "alias": "AssistantAvatarUrl"; "required": false; }; "assistantAvatarUrl": { "alias": "assistantAvatarUrl"; "required": false; }; "IsNewConversation": { "alias": "IsNewConversation"; "required": false; }; "isNewConversation": { "alias": "isNewConversation"; "required": false; }; "PendingMessage": { "alias": "PendingMessage"; "required": false; }; "pendingMessage": { "alias": "pendingMessage"; "required": false; }; "PendingMessageConversationId": { "alias": "PendingMessageConversationId"; "required": false; }; "pendingMessageConversationId": { "alias": "pendingMessageConversationId"; "required": false; }; "PendingAttachments": { "alias": "PendingAttachments"; "required": false; }; "pendingAttachments": { "alias": "pendingAttachments"; "required": false; }; "PendingArtifactId": { "alias": "PendingArtifactId"; "required": false; }; "pendingArtifactId": { "alias": "pendingArtifactId"; "required": false; }; "PendingArtifactVersionNumber": { "alias": "PendingArtifactVersionNumber"; "required": false; }; "pendingArtifactVersionNumber": { "alias": "pendingArtifactVersionNumber"; "required": false; }; "PendingArtifactConversationId": { "alias": "PendingArtifactConversationId"; "required": false; }; "pendingArtifactConversationId": { "alias": "pendingArtifactConversationId"; "required": false; }; "OverlayMode": { "alias": "OverlayMode"; "required": false; }; "overlayMode": { "alias": "overlayMode"; "required": false; }; "ShowExportButton": { "alias": "ShowExportButton"; "required": false; }; "showExportButton": { "alias": "showExportButton"; "required": false; }; "ExportButtonLabel": { "alias": "ExportButtonLabel"; "required": false; }; "exportButtonLabel": { "alias": "exportButtonLabel"; "required": false; }; "ExportButtonIcon": { "alias": "ExportButtonIcon"; "required": false; }; "exportButtonIcon": { "alias": "exportButtonIcon"; "required": false; }; "ExportBranding": { "alias": "ExportBranding"; "required": false; }; "exportBranding": { "alias": "exportBranding"; "required": false; }; "ShowShareButton": { "alias": "ShowShareButton"; "required": false; }; "showShareButton": { "alias": "showShareButton"; "required": false; }; "ShowArtifactIndicator": { "alias": "ShowArtifactIndicator"; "required": false; }; "showArtifactIndicator": { "alias": "showArtifactIndicator"; "required": false; }; "AppContext": { "alias": "AppContext"; "required": false; }; "appContext": { "alias": "appContext"; "required": false; }; "DefaultAgentId": { "alias": "DefaultAgentId"; "required": false; }; "defaultAgentId": { "alias": "defaultAgentId"; "required": false; }; "AgentReplyMode": { "alias": "AgentReplyMode"; "required": false; }; "AllowedAgentIDs": { "alias": "AllowedAgentIDs"; "required": false; }; "MentionPeople": { "alias": "MentionPeople"; "required": false; }; "AgentHistoryFrom": { "alias": "AgentHistoryFrom"; "required": false; }; "AgentTurnHandler": { "alias": "AgentTurnHandler"; "required": false; }; "AutoNameConversation": { "alias": "AutoNameConversation"; "required": false; }; "EnableDecisionRouting": { "alias": "EnableDecisionRouting"; "required": false; }; "ApplicationScope": { "alias": "ApplicationScope"; "required": false; }; "applicationScope": { "alias": "applicationScope"; "required": false; }; "ApplicationId": { "alias": "ApplicationId"; "required": false; }; "applicationId": { "alias": "applicationId"; "required": false; }; "LinkedEntityId": { "alias": "LinkedEntityId"; "required": false; }; "linkedEntityId": { "alias": "linkedEntityId"; "required": false; }; "LinkedRecordId": { "alias": "LinkedRecordId"; "required": false; }; "linkedRecordId": { "alias": "linkedRecordId"; "required": false; }; "ShowAgentPicker": { "alias": "ShowAgentPicker"; "required": false; }; "showAgentPicker": { "alias": "showAgentPicker"; "required": false; }; "ShowAgentModePicker": { "alias": "ShowAgentModePicker"; "required": false; }; "showAgentModePicker": { "alias": "showAgentModePicker"; "required": false; }; "EmptyStateGreeting": { "alias": "EmptyStateGreeting"; "required": false; }; "emptyStateGreeting": { "alias": "emptyStateGreeting"; "required": false; }; "ShowSidebarToggle": { "alias": "ShowSidebarToggle"; "required": false; }; "showSidebarToggle": { "alias": "showSidebarToggle"; "required": false; }; "ShowAgentCharacter": { "alias": "ShowAgentCharacter"; "required": false; }; "showAgentCharacter": { "alias": "showAgentCharacter"; "required": false; }; "AgentCharacterConfig": { "alias": "AgentCharacterConfig"; "required": false; }; "agentCharacterConfig": { "alias": "agentCharacterConfig"; "required": false; }; "EmptyStateConfig": { "alias": "EmptyStateConfig"; "required": false; }; "emptyStateConfig": { "alias": "emptyStateConfig"; "required": false; }; "ShowDemonstrationSurface": { "alias": "ShowDemonstrationSurface"; "required": false; }; "showDemonstrationSurface": { "alias": "showDemonstrationSurface"; "required": false; }; "DemonstrationSurfaceContent": { "alias": "DemonstrationSurfaceContent"; "required": false; }; "demonstrationSurfaceContent": { "alias": "demonstrationSurfaceContent"; "required": false; }; "ComposerDraft": { "alias": "ComposerDraft"; "required": false; }; "composerDraft": { "alias": "composerDraft"; "required": false; }; "ComposerAgentMention": { "alias": "ComposerAgentMention"; "required": false; }; "composerAgentMention": { "alias": "composerAgentMention"; "required": false; }; "CollapseThreadReplies": { "alias": "CollapseThreadReplies"; "required": false; }; }, { "BeforeAgentTurn": "BeforeAgentTurn"; "beforeAgentTurn": "beforeAgentTurn"; "AfterAgentTurn": "AfterAgentTurn"; "afterAgentTurn": "afterAgentTurn"; "BeforeToolInvoked": "BeforeToolInvoked"; "beforeToolInvoked": "beforeToolInvoked"; "AfterToolInvoked": "AfterToolInvoked"; "afterToolInvoked": "afterToolInvoked"; "BeforeResponseFormSubmitted": "BeforeResponseFormSubmitted"; "beforeResponseFormSubmitted": "beforeResponseFormSubmitted"; "AfterResponseFormSubmitted": "AfterResponseFormSubmitted"; "afterResponseFormSubmitted": "afterResponseFormSubmitted"; "BeforeStopClicked": "BeforeStopClicked"; "AfterStopClicked": "AfterStopClicked"; "SessionStarted": "SessionStarted"; "sessionStarted": "sessionStarted"; "SessionChannelStateChanged": "SessionChannelStateChanged"; "sessionChannelStateChanged": "sessionChannelStateChanged"; "SessionEnded": "SessionEnded"; "sessionEnded": "sessionEnded"; "ConversationRenamed": "ConversationRenamed"; "conversationRenamed": "conversationRenamed"; "OpenEntityRecord": "OpenEntityRecord"; "openEntityRecord": "openEntityRecord"; "RealtimeConversationReady": "RealtimeConversationReady"; "realtimeConversationReady": "realtimeConversationReady"; "navigationRequest": "navigationRequest"; "TaskClicked": "TaskClicked"; "taskClicked": "taskClicked"; "ArtifactLinkClicked": "ArtifactLinkClicked"; "artifactLinkClicked": "artifactLinkClicked"; "SidebarToggleClicked": "SidebarToggleClicked"; "sidebarToggleClicked": "sidebarToggleClicked"; "ConversationCreated": "ConversationCreated"; "conversationCreated": "conversationCreated"; "PendingArtifactConsumed": "PendingArtifactConsumed"; "pendingArtifactConsumed": "pendingArtifactConsumed"; "PendingMessageConsumed": "PendingMessageConsumed"; "pendingMessageConsumed": "pendingMessageConsumed"; "PendingMessageRequested": "PendingMessageRequested"; "pendingMessageRequested": "pendingMessageRequested"; "ComposerDraftConsumed": "ComposerDraftConsumed"; "composerDraftConsumed": "composerDraftConsumed"; "ComposerAgentMentionConsumed": "ComposerAgentMentionConsumed"; "composerAgentMentionConsumed": "composerAgentMentionConsumed"; "ThreadReplyRevealRequested": "ThreadReplyRevealRequested"; }, ["chatSlotChildren"], never, false, never>;
3191
3370
  }
3192
3371
  //# sourceMappingURL=conversation-chat-area.component.d.ts.map