@acorex-platform/module-conversation-client 0.0.38 → 0.0.46

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 (73) hide show
  1. package/fesm2022/{acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-XTzQQhii.mjs → acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DUR2oyfP.mjs} +9727 -8104
  2. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-DUR2oyfP.mjs.map +1 -0
  3. package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-BMGagKtP.mjs → acorex-platform-module-conversation-client-after-message-sent.command-qTWATpgC.mjs} +2 -2
  4. package/fesm2022/{acorex-platform-module-conversation-client-after-message-sent.command-BMGagKtP.mjs.map → acorex-platform-module-conversation-client-after-message-sent.command-qTWATpgC.mjs.map} +1 -1
  5. package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-D1SDsHvl.mjs → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DQWhOmBE.mjs} +8 -7
  6. package/fesm2022/{acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-D1SDsHvl.mjs.map → acorex-platform-module-conversation-client-assist-delegated-agent-detail-popup.component-DQWhOmBE.mjs.map} +1 -1
  7. package/fesm2022/acorex-platform-module-conversation-client-assist-message-renderer.component-DyVepuaW.mjs +1756 -0
  8. package/fesm2022/acorex-platform-module-conversation-client-assist-message-renderer.component-DyVepuaW.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-conversation-client-assist-tool-detail-popup.component-D8na_1QJ.mjs +120 -0
  10. package/fesm2022/{acorex-platform-module-conversation-client-assist-tool-detail-popup.component-BV1YH96m.mjs.map → acorex-platform-module-conversation-client-assist-tool-detail-popup.component-D8na_1QJ.mjs.map} +1 -1
  11. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-session-page.component-nE7xP4bF.mjs → acorex-platform-module-conversation-client-chat-call-session-page.component-BeS4Duip.mjs} +747 -25
  12. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-BeS4Duip.mjs.map +1 -0
  13. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-DXkqkS50.mjs → acorex-platform-module-conversation-client-chat-call-start-popup.component-BbEhkLLh.mjs} +4 -4
  14. package/fesm2022/{acorex-platform-module-conversation-client-chat-call-start-popup.component-DXkqkS50.mjs.map → acorex-platform-module-conversation-client-chat-call-start-popup.component-BbEhkLLh.mjs.map} +1 -1
  15. package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-SYCtAqcV.mjs → acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-Bnbj0e6M.mjs} +3 -3
  16. package/fesm2022/{acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-SYCtAqcV.mjs.map → acorex-platform-module-conversation-client-chat-conversation-info-media-view.component-Bnbj0e6M.mjs.map} +1 -1
  17. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-bwT1-lAn.mjs +497 -0
  18. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-bwT1-lAn.mjs.map +1 -0
  19. package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-Dv_x3ztZ.mjs → acorex-platform-module-conversation-client-comments-page.component-BxUz9jTX.mjs} +2 -2
  20. package/fesm2022/{acorex-platform-module-conversation-client-comments-page.component-Dv_x3ztZ.mjs.map → acorex-platform-module-conversation-client-comments-page.component-BxUz9jTX.mjs.map} +1 -1
  21. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-audience.mjs +277 -0
  22. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-audience.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-post.mjs +530 -0
  24. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-post.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-receipt.mjs +206 -0
  26. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-receipt.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-message.mjs +65 -17
  28. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-message.mjs.map +1 -1
  29. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-room.mjs +231 -59
  30. package/fesm2022/acorex-platform-module-conversation-client-contracts-entities-room.mjs.map +1 -1
  31. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-CV_sCYGf.mjs +87 -0
  32. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-CV_sCYGf.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-audience.entity-DyaUcESJ.mjs +213 -0
  34. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-audience.entity-DyaUcESJ.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-post.entity-CbBcChEt.mjs +466 -0
  36. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-post.entity-CbBcChEt.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-receipt.entity-DtRFj8zV.mjs +142 -0
  38. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-channel-receipt.entity-DtRFj8zV.mjs.map +1 -0
  39. package/fesm2022/{acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-Dz7cO1P4.mjs → acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-CJk1wEvA.mjs} +35 -19
  40. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-CJk1wEvA.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-Ctt7qzfF.mjs +403 -0
  42. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-Ctt7qzfF.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog.mjs +1 -1
  44. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs +846 -4
  45. package/fesm2022/acorex-platform-module-conversation-client-contracts.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-module-conversation-client-local-entities.mjs +3 -0
  47. package/fesm2022/acorex-platform-module-conversation-client-local-entities.mjs.map +1 -1
  48. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-8NoSuUwe.mjs → acorex-platform-module-conversation-client-mark-conversation-unread.command-juoWxu7I.mjs} +2 -2
  49. package/fesm2022/{acorex-platform-module-conversation-client-mark-conversation-unread.command-8NoSuUwe.mjs.map → acorex-platform-module-conversation-client-mark-conversation-unread.command-juoWxu7I.mjs.map} +1 -1
  50. package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-BgJ0Z36e.mjs → acorex-platform-module-conversation-client-open-chat.command-ridcdmj7.mjs} +2 -2
  51. package/fesm2022/{acorex-platform-module-conversation-client-open-chat.command-BgJ0Z36e.mjs.map → acorex-platform-module-conversation-client-open-chat.command-ridcdmj7.mjs.map} +1 -1
  52. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-lcNz4Hpu.mjs → acorex-platform-module-conversation-client-retry-assist-response.command-BsYxaH3g.mjs} +2 -2
  53. package/fesm2022/{acorex-platform-module-conversation-client-retry-assist-response.command-lcNz4Hpu.mjs.map → acorex-platform-module-conversation-client-retry-assist-response.command-BsYxaH3g.mjs.map} +1 -1
  54. package/fesm2022/{acorex-platform-module-conversation-client-sync-read-state.command-DxccFsD9.mjs → acorex-platform-module-conversation-client-sync-read-state.command-DsCyIdEk.mjs} +7 -2
  55. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-DsCyIdEk.mjs.map +1 -0
  56. package/fesm2022/acorex-platform-module-conversation-client.mjs +1 -1
  57. package/package.json +14 -2
  58. package/types/acorex-platform-module-conversation-client-contracts-entities-channel-audience.d.ts +5 -0
  59. package/types/acorex-platform-module-conversation-client-contracts-entities-channel-post.d.ts +5 -0
  60. package/types/acorex-platform-module-conversation-client-contracts-entities-channel-receipt.d.ts +5 -0
  61. package/types/acorex-platform-module-conversation-client-contracts.d.ts +432 -2
  62. package/types/acorex-platform-module-conversation-client.d.ts +676 -161
  63. package/fesm2022/acorex-platform-module-conversation-client-acorex-platform-module-conversation-client-XTzQQhii.mjs.map +0 -1
  64. package/fesm2022/acorex-platform-module-conversation-client-assist-tool-detail-popup.component-BV1YH96m.mjs +0 -120
  65. package/fesm2022/acorex-platform-module-conversation-client-chat-call-session-page.component-nE7xP4bF.mjs.map +0 -1
  66. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-51PtojIM.mjs +0 -482
  67. package/fesm2022/acorex-platform-module-conversation-client-chat-conversation-info-panel.component-51PtojIM.mjs.map +0 -1
  68. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs +0 -52
  69. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-acorex-platform-module-conversation-client-contracts-entity-catalog-Cy3LwYMZ.mjs.map +0 -1
  70. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-message.entity-Dz7cO1P4.mjs.map +0 -1
  71. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs +0 -263
  72. package/fesm2022/acorex-platform-module-conversation-client-contracts-entity-catalog-room.entity-B9txvc3y.mjs.map +0 -1
  73. package/fesm2022/acorex-platform-module-conversation-client-sync-read-state.command-DxccFsD9.mjs.map +0 -1
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-conversation-client",
3
- "version": "0.0.38",
3
+ "version": "0.0.46",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",
7
7
  "@angular/core": "^21.0.0 || ^22.0.0"
8
8
  },
9
9
  "dependencies": {
10
- "@acorex-platform/extension-rtc-core-gateway": "0.0.38",
10
+ "@acorex-platform/extension-rtc-core-gateway": "0.0.46",
11
11
  "tslib": "^2.3.0"
12
12
  },
13
13
  "module": "fesm2022/acorex-platform-module-conversation-client.mjs",
@@ -24,6 +24,18 @@
24
24
  "types": "./types/acorex-platform-module-conversation-client-contracts.d.ts",
25
25
  "default": "./fesm2022/acorex-platform-module-conversation-client-contracts.mjs"
26
26
  },
27
+ "./contracts/entities/channel-audience": {
28
+ "types": "./types/acorex-platform-module-conversation-client-contracts-entities-channel-audience.d.ts",
29
+ "default": "./fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-audience.mjs"
30
+ },
31
+ "./contracts/entities/channel-post": {
32
+ "types": "./types/acorex-platform-module-conversation-client-contracts-entities-channel-post.d.ts",
33
+ "default": "./fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-post.mjs"
34
+ },
35
+ "./contracts/entities/channel-receipt": {
36
+ "types": "./types/acorex-platform-module-conversation-client-contracts-entities-channel-receipt.d.ts",
37
+ "default": "./fesm2022/acorex-platform-module-conversation-client-contracts-entities-channel-receipt.mjs"
38
+ },
27
39
  "./contracts/entities/message": {
28
40
  "types": "./types/acorex-platform-module-conversation-client-contracts-entities-message.d.ts",
29
41
  "default": "./fesm2022/acorex-platform-module-conversation-client-contracts-entities-message.mjs"
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function channelAudienceFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { channelAudienceFactory };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function channelPostFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { channelPostFactory };
@@ -0,0 +1,5 @@
1
+ import { AXPEntity } from '@acorex-platform/framework-shared/entity';
2
+
3
+ declare function channelReceiptFactory(): Promise<AXPEntity | null>;
4
+
5
+ export { channelReceiptFactory };
@@ -1,3 +1,4 @@
1
+ import { AXPModuleManifest, AXPMultiLanguageString, AXPFileListItem } from '@acorex-platform/framework-shared/core';
1
2
  import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';
2
3
  import { AXMConversationMessage as AXMConversationMessage$1, AXMConversationRoom as AXMConversationRoom$1 } from '@acorex-platform/module-conversation-client/contracts';
3
4
 
@@ -10,6 +11,8 @@ interface AXMCommentEntityData {
10
11
 
11
12
  declare const AXPConversationMenuKeys: {
12
13
  readonly Conversations: "Conversation:Menu:Conversations";
14
+ readonly Channels: "Conversation:Menu:Channels";
15
+ readonly Feed: "Conversation:Menu:ChannelFeed";
13
16
  };
14
17
 
15
18
  /**
@@ -24,6 +27,10 @@ declare const AXPCollaborationPermissionKeys: {
24
27
  readonly MaintainCommunications: "Collaboration:Permission:MaintainCommunications";
25
28
  readonly MaintainReservations: "Collaboration:Permission:MaintainReservations";
26
29
  readonly MaintainHelpDesk: "Collaboration:Permission:MaintainHelpDesk";
30
+ readonly ViewBulletins: "Collaboration:Permission:ViewBulletins";
31
+ readonly MaintainBulletins: "Collaboration:Permission:MaintainBulletins";
32
+ readonly PublishBulletins: "Collaboration:Permission:PublishBulletins";
33
+ readonly ModerateBulletinDiscussions: "Collaboration:Permission:ModerateBulletinDiscussions";
27
34
  readonly Setup: "Collaboration:Permission:Setup";
28
35
  };
29
36
  /**
@@ -33,6 +40,28 @@ declare const AXPCollaborationPermissionKeys: {
33
40
  declare const AXMPermissionsKeys: {
34
41
  readonly Conversation: {
35
42
  readonly Management: "Collaboration:Permission:MaintainConversations";
43
+ readonly ChannelPosts: {
44
+ readonly Management: "Collaboration:Permission:MaintainBulletins";
45
+ readonly View: "Collaboration:Permission:ViewBulletins";
46
+ readonly Edit: "Collaboration:Permission:MaintainBulletins";
47
+ readonly Delete: "Collaboration:Permission:MaintainBulletins";
48
+ readonly Create: "Collaboration:Permission:MaintainBulletins";
49
+ readonly Publish: "Collaboration:Permission:PublishBulletins";
50
+ };
51
+ readonly ChannelAudiences: {
52
+ readonly Management: "Collaboration:Permission:MaintainBulletins";
53
+ readonly View: "Collaboration:Permission:ViewBulletins";
54
+ readonly Edit: "Collaboration:Permission:MaintainBulletins";
55
+ readonly Delete: "Collaboration:Permission:MaintainBulletins";
56
+ readonly Create: "Collaboration:Permission:MaintainBulletins";
57
+ };
58
+ readonly ChannelReceipts: {
59
+ readonly Management: "Collaboration:Permission:MaintainBulletins";
60
+ readonly View: "Collaboration:Permission:ViewBulletins";
61
+ readonly Edit: "Collaboration:Permission:MaintainBulletins";
62
+ readonly Delete: "Collaboration:Permission:MaintainBulletins";
63
+ readonly Create: "Collaboration:Permission:MaintainBulletins";
64
+ };
36
65
  };
37
66
  };
38
67
 
@@ -61,9 +90,214 @@ declare const RootConfig: {
61
90
  readonly source: `${string}.Message`;
62
91
  readonly icon: "fa-light fa-message";
63
92
  };
93
+ readonly channelPost: {
94
+ readonly name: "ChannelPost";
95
+ readonly source: `${string}.ChannelPost`;
96
+ readonly title: `@${string}:entities.channel-post.title`;
97
+ readonly titlePlural: `@${string}:entities.channel-post.plural`;
98
+ readonly icon: "fa-light fa-bullhorn";
99
+ };
100
+ readonly channelAudience: {
101
+ readonly name: "ChannelAudience";
102
+ readonly source: `${string}.ChannelAudience`;
103
+ readonly title: `@${string}:entities.channel-audience.title`;
104
+ readonly titlePlural: `@${string}:entities.channel-audience.plural`;
105
+ readonly icon: "fa-light fa-users";
106
+ };
107
+ readonly channelReceipt: {
108
+ readonly name: "ChannelReceipt";
109
+ readonly source: `${string}.ChannelReceipt`;
110
+ readonly title: `@${string}:entities.channel-receipt.title`;
111
+ readonly titlePlural: `@${string}:entities.channel-receipt.plural`;
112
+ readonly icon: "fa-light fa-envelope-open";
113
+ };
114
+ };
115
+ readonly pages: {
116
+ readonly feed: {
117
+ readonly path: "announcements";
118
+ readonly title: `@${string}:pages.feed.title`;
119
+ readonly description: `@${string}:pages.feed.description`;
120
+ readonly icon: "fa-light fa-bullhorn";
121
+ };
122
+ };
123
+ };
124
+ declare const CHANNEL_POST_ENTITY_NAME: `${string}.ChannelPost`;
125
+ declare const CHANNEL_AUDIENCE_ENTITY_NAME: `${string}.ChannelAudience`;
126
+ declare const CHANNEL_RECEIPT_ENTITY_NAME: `${string}.ChannelReceipt`;
127
+
128
+ /**
129
+ * Conversation Module Manifest.
130
+ * Defines module metadata, features, and provider references.
131
+ */
132
+ declare const ConversationManifest: AXPModuleManifest;
133
+
134
+ declare const AXMChannelErrorCodes: {
135
+ readonly InvalidTransition: "CHANNEL_INVALID_TRANSITION";
136
+ readonly ScheduleRequiresFuturePublishAt: "CHANNEL_SCHEDULE_REQUIRES_FUTURE_PUBLISH_AT";
137
+ readonly NotAddressed: "CHANNEL_NOT_ADDRESSED";
138
+ };
139
+
140
+ declare const AXPConversationQueryKeys: {
141
+ readonly ChannelFeed: {
142
+ readonly Get: "Conversation:ChannelFeed:Get";
143
+ readonly GetUnreadCount: "Conversation:ChannelFeed:GetUnreadCount";
144
+ };
145
+ };
146
+ declare const AXPConversationCommandKeys: {
147
+ readonly ChannelFeed: {
148
+ readonly MarkRead: "Conversation:ChannelFeed:MarkRead";
64
149
  };
65
150
  };
66
151
 
152
+ type AXMChannelPostKind = 'announcement' | 'news' | 'event' | 'urgent';
153
+ type AXMChannelPostStatus = 'draft' | 'scheduled' | 'published' | 'cancelled' | 'archived';
154
+ type AXMChannelNotificationPolicy = 'in-app' | 'selected-channels' | 'urgent-override';
155
+ type AXMChannelLifecycleAction = 'schedule' | 'publish' | 'cancel' | 'archive' | 'restore';
156
+ interface AXMChannelPostEntityModel extends AXPEntityModel<string> {
157
+ roomId: string;
158
+ title: AXPMultiLanguageString;
159
+ body: AXPMultiLanguageString;
160
+ kind: AXMChannelPostKind;
161
+ status: AXMChannelPostStatus;
162
+ authorUserId: string;
163
+ publishAt?: Date | string;
164
+ publishedAt?: Date | string;
165
+ expiresAt?: Date | string;
166
+ eventStartsAt?: Date | string;
167
+ eventEndsAt?: Date | string;
168
+ eventLocation?: AXPMultiLanguageString;
169
+ isPinned: boolean;
170
+ pinRank?: number;
171
+ pinnedUntil?: Date | string;
172
+ allowReactions: boolean;
173
+ allowComments: boolean;
174
+ notificationPolicy?: AXMChannelNotificationPolicy;
175
+ publicationVersion: number;
176
+ gallery?: AXPFileListItem[];
177
+ attachments?: AXPFileListItem[];
178
+ tags?: AXPMultiLanguageString[];
179
+ }
180
+
181
+ interface AXMChannelFeedQueryInput {
182
+ skip?: number;
183
+ take?: number;
184
+ roomId?: string;
185
+ }
186
+ interface AXMChannelFeedItem {
187
+ id: string;
188
+ roomId: string;
189
+ title: AXPMultiLanguageString;
190
+ body: AXPMultiLanguageString;
191
+ kind: AXMChannelPostKind;
192
+ authorUserId: string;
193
+ publishedAt?: string;
194
+ eventStartsAt?: string;
195
+ eventEndsAt?: string;
196
+ eventLocation?: AXPMultiLanguageString;
197
+ isPinned: boolean;
198
+ allowReactions: boolean;
199
+ allowComments: boolean;
200
+ /** Total comments in the post thread, including replies. Omitted on older chat metadata. */
201
+ commentCount?: number;
202
+ isRead: boolean;
203
+ gallery: AXPFileListItem[];
204
+ attachments: AXPFileListItem[];
205
+ tags: AXPMultiLanguageString[];
206
+ }
207
+ interface AXMChannelMarkReadCommandInput {
208
+ postId?: string;
209
+ roomId?: string;
210
+ }
211
+ interface AXMChannelUnreadCount {
212
+ count: number;
213
+ byRoomId?: Record<string, number>;
214
+ }
215
+
216
+ /** Projects a channel post onto the chat/feed card shape stored on Message metadata. */
217
+ declare function toChannelFeedItem(post: AXMChannelPostEntityModel, isRead: boolean, isPinned: boolean, commentCount?: number): AXMChannelFeedItem;
218
+ /** Plain-text title for chat message payload (MLS or string). */
219
+ declare function channelPostTitleText(title: unknown): string;
220
+ declare function channelPostMessageName(postId: string): string;
221
+
222
+ declare const CHANNEL_POST_PUBLISHED_EVENT_NAME: "Conversation.ChannelPostPublished";
223
+ interface AXMChannelPublishedEvent {
224
+ eventName: typeof CHANNEL_POST_PUBLISHED_EVENT_NAME;
225
+ tenantId: string;
226
+ roomId: string;
227
+ postId: string;
228
+ publicationVersion: number;
229
+ title: string;
230
+ kind: AXMChannelPostKind;
231
+ canonicalUrl: string;
232
+ audienceSummary: string;
233
+ idempotencyKey: string;
234
+ }
235
+ interface AXMChannelDistributionSelection {
236
+ distributorKey: string;
237
+ destinationIds: readonly string[];
238
+ }
239
+ interface AXMChannelDistributionResult {
240
+ distributorKey: string;
241
+ destinationId: string;
242
+ externalReference?: string;
243
+ }
244
+ type AXMChannelDistributionOutcome = ({
245
+ status: 'fulfilled';
246
+ } & AXMChannelDistributionResult) | {
247
+ status: 'skipped';
248
+ distributorKey: string;
249
+ destinationId: string;
250
+ } | {
251
+ status: 'failed';
252
+ distributorKey: string;
253
+ destinationId: string;
254
+ };
255
+ interface AXMChannelDistributor {
256
+ readonly key: string;
257
+ distribute(event: AXMChannelPublishedEvent, destinationId: string): Promise<AXMChannelDistributionResult>;
258
+ }
259
+ declare const CHANNEL_DISTRIBUTOR: unique symbol;
260
+ interface AXMChannelNotificationPort {
261
+ notify(event: AXMChannelPublishedEvent, recipientUserIds: readonly string[]): Promise<void>;
262
+ }
263
+ declare const CHANNEL_NOTIFICATION_PORT: unique symbol;
264
+
265
+ type AXMChannelAudienceTargetType = 'organization' | 'user' | 'role' | 'team' | 'businessUnit' | 'position' | 'jobDefinition';
266
+ type AXMChannelAudienceMode = 'include' | 'exclude';
267
+ interface AXMChannelAudienceEntityModel extends AXPEntityModel<string> {
268
+ /** Channel-level audience when set (Conversation.Room id). */
269
+ roomId?: string;
270
+ /** Post-level audience when set (Conversation.ChannelPost id). */
271
+ postId?: string;
272
+ targetType: AXMChannelAudienceTargetType;
273
+ targetId?: string;
274
+ mode?: AXMChannelAudienceMode;
275
+ resolvedAt?: Date | string;
276
+ resolvedCount?: number;
277
+ }
278
+ interface AXMChannelAudienceMembership {
279
+ userId: string;
280
+ roleIds?: readonly string[];
281
+ teamIds?: readonly string[];
282
+ businessUnitIds?: readonly string[];
283
+ positionIds?: readonly string[];
284
+ jobDefinitionIds?: readonly string[];
285
+ }
286
+
287
+ declare function axmChannelAudienceRuleMatches(rule: AXMChannelAudienceEntityModel, member: AXMChannelAudienceMembership): boolean;
288
+ declare function axmChannelAudienceIsVisible(rules: readonly AXMChannelAudienceEntityModel[], member: AXMChannelAudienceMembership): boolean;
289
+ declare function axmResolveChannelAudienceUserIds(rules: readonly AXMChannelAudienceEntityModel[], members: readonly AXMChannelAudienceMembership[]): string[];
290
+
291
+ /** Lookup entity for each audience target type. `organization` has no row lookup. */
292
+ declare const AXM_CHANNEL_AUDIENCE_TARGET_ENTITY: Record<AXMChannelAudienceTargetType, string | null>;
293
+ declare function axmChannelAudienceTargetEntity(targetType: string | null | undefined): string | null;
294
+ declare function axmRoomAudienceRule(room: {
295
+ id?: string | null;
296
+ audienceTargetType?: string | null;
297
+ audienceTargetId?: string | null;
298
+ audienceMode?: string | null;
299
+ }): AXMChannelAudienceEntityModel | null;
300
+
67
301
  /** Fields for one uploaded or remote media item. */
68
302
  interface AXMediaItemFields {
69
303
  /** HTTP(S) or other persistable URL; omit when only {@link mediaId} is stored. */
@@ -343,6 +577,8 @@ interface AXConversationMessageListThemeBackground {
343
577
  }
344
578
  /** Single CSS value (both themes) or per-theme `{ light, dark }` backgrounds. */
345
579
  type AXConversationMessageListBackground = string | AXConversationMessageListThemeBackground;
580
+ /** Composer file/paste UI: overlay popup vs banner above the composer. */
581
+ type AXConversationComposerAttachmentPresentation = 'overlay' | 'banner';
346
582
  /**
347
583
  * Extensible map for app-specific conversation data.
348
584
  * Aligned with `@acorex/components/conversation` — UI-only keys such as
@@ -356,6 +592,11 @@ interface AXConversationMetadata extends Record<string, unknown> {
356
592
  * Defaults to `true` when omitted.
357
593
  */
358
594
  reactionsEnabled?: boolean;
595
+ /**
596
+ * Composer attachment UI. Bot rooms default to `banner` when omitted;
597
+ * private/group/channel default to `overlay`.
598
+ */
599
+ composerAttachmentPresentation?: AXConversationComposerAttachmentPresentation;
359
600
  /** Optional composer draft for REST backends (not a canonical room field). */
360
601
  draft?: string;
361
602
  }
@@ -415,8 +656,68 @@ interface AXMConversationRoom extends AXPEntityModel<string> {
415
656
  entityRef?: AXMCommentEntityData;
416
657
  /** Comment thread topic/subject */
417
658
  topic?: string;
659
+ /** Single channel audience rule: target kind. */
660
+ audienceTargetType?: AXMChannelAudienceTargetType;
661
+ /** Single channel audience rule: selected target id. */
662
+ audienceTargetId?: string;
663
+ /** Single channel audience rule: include or exclude. */
664
+ audienceMode?: AXMChannelAudienceMode;
665
+ /** Lookup entity name derived from {@link audienceTargetType}. */
666
+ audienceTargetEntity?: string;
418
667
  }
419
668
 
669
+ interface AXMChannelReceiptEntityModel extends AXPEntityModel<string> {
670
+ postId: string;
671
+ userId: string;
672
+ firstSeenAt?: Date | string;
673
+ readAt?: Date | string;
674
+ dismissedAt?: Date | string;
675
+ }
676
+
677
+ /** Persisted `Room.name` for the tenant-wide announcements channel (unique per tenant scope). */
678
+ declare const AXM_CONVERSATION_ANNOUNCEMENT_CHANNEL_NAME = "system.tenant-announcements";
679
+ /** `metadata.systemChannel` value for the tenant-wide announcements channel. */
680
+ declare const AXM_CONVERSATION_ANNOUNCEMENT_CHANNEL_KEY = "announcements";
681
+ /** Custom conversation message type rendered by the channel feed-item plugin. */
682
+ declare const AXM_CONVERSATION_ANNOUNCEMENT_MESSAGE_TYPE = "channel-feed-item";
683
+ /** Message metadata key that stores the `AXMChannelFeedItem` projection. */
684
+ declare const AXM_CONVERSATION_ANNOUNCEMENT_FEED_ITEM_META_KEY = "channelFeedItem";
685
+ /** Message metadata key that stores the source ChannelPost id. */
686
+ declare const AXM_CONVERSATION_CHANNEL_POST_ID_META_KEY = "channelPostId";
687
+ type AnnouncementChannelRef = {
688
+ name?: string | null;
689
+ metadata?: Record<string, unknown> | null;
690
+ };
691
+ /** True when the room is the tenant announcements channel. */
692
+ declare function axmIsAnnouncementChannel(value: AnnouncementChannelRef | null | undefined): boolean;
693
+ declare function axmAnnouncementChannelMetadata(): Record<string, unknown>;
694
+ type ChannelRoomRef = {
695
+ kind?: string | null;
696
+ type?: string | null;
697
+ name?: string | null;
698
+ metadata?: Record<string, unknown> | null;
699
+ };
700
+ /** True when the room is an entity comment thread (not a chat inbox conversation). */
701
+ declare function axmIsCommentRoom(value: {
702
+ kind?: string | null;
703
+ } | null | undefined): boolean;
704
+ /** True when the room is a chat channel (broadcast posts, no composer). */
705
+ declare function axmIsChannelRoom(value: ChannelRoomRef | null | undefined): boolean;
706
+ declare function axmChannelPostIdFromMessage(message: {
707
+ name?: string | null;
708
+ metadata?: Record<string, unknown> | null;
709
+ } | null | undefined): string | null;
710
+
711
+ /**
712
+ * Resolves tenant/application scope for a new {@link Conversation.Message} row.
713
+ * Prefer the parent room's stamped scope so call logs match sibling messages on read.
714
+ */
715
+ declare function axmResolveConversationMessageScopeInfo(room: Record<string, unknown>, session: {
716
+ tenantId?: string;
717
+ applicationId?: string;
718
+ }): Record<string, unknown> | undefined;
719
+ declare function axmScopeInfoNeedsTenantStamp(scopeInfo: Record<string, unknown> | undefined, expectedTenantId: string): boolean;
720
+
420
721
  /** Minimal tool-call shape for assist-stream frontend broker round-trips (mirrors AXPAiToolCall). */
421
722
  interface ConversationAssistFrontendToolCall {
422
723
  id: string;
@@ -454,6 +755,11 @@ type ConversationAssistWireEvent = {
454
755
  call: ConversationAssistFrontendToolCall;
455
756
  };
456
757
 
758
+ /** UI flags persisted on every AI (bot) room. */
759
+ declare function axmAiChatConversationUiMetadata(): {
760
+ reactionsEnabled: false;
761
+ composerAttachmentPresentation: 'banner';
762
+ };
457
763
  declare function axmExtractAssistIdFromMetadata(metadata: Record<string, unknown> | undefined): string | undefined;
458
764
  /**
459
765
  * Legacy detector for unsupported agent-as-chat rooms. Not an engine targeting API.
@@ -467,9 +773,20 @@ declare function axmIsUnsupportedLegacyAgentAssistConversation(metadata: Record<
467
773
  declare function axmConversationHasAiChat(metadata: Record<string, unknown> | undefined): boolean;
468
774
  declare function axmChatAiPeerParticipantId(catalogId: string): string;
469
775
  declare function axmReadAssistResponseStatus(metadata: Record<string, unknown> | undefined): string | undefined;
776
+ type AxmAssistFollowUpStatus = 'preparing' | 'ready' | 'skipped';
777
+ declare function axmReadAssistFollowUpStatus(metadata: Record<string, unknown> | undefined): AxmAssistFollowUpStatus | undefined;
470
778
  declare function axmReadReplyToUserMessageId(metadata: Record<string, unknown> | undefined): string | undefined;
471
779
  declare function extractMessageTextFromPayload(payload: unknown): string;
472
780
  declare function axmNormalizeConversationTitle(raw: string): string;
781
+ /** System prompt for a lightweight follow-up-chip model call after the Assist answer. */
782
+ declare const AXM_ASSIST_CONVERSATION_FOLLOW_UP_SYSTEM_PROMPT = "You generate short follow-up suggestion chips for a chat assistant.\n\nGiven the latest user message, assistant reply, optional this-turn tool evidence, optional earlier turns from **this same conversation**, and optional assist capabilities, reply with ONLY one JSON object:\n{\"type\":\"followUp\",\"content\":[{\"text\":\"chip label\",\"command\":{\"name\":\"Conversation:SendAssistChatMessage\",\"options\":{}}}]}\n\nRules:\n- Always propose 2\u20135 short, actionable next steps as Conversation:SendAssistChatMessage chips. Never return an empty content array.\n- Navigation chips (Entity:OpenList / Entity:OpenDetails) are extra and never replace send-message chips. Always include at least two send-message chips.\n- Default chips send the label as the next chat message via Conversation:SendAssistChatMessage.\n- **Priority:** ground every chip in the latest user message and the latest assistant reply. Earlier turns in this conversation may only inspire wording. Ignore any other conversation, tenant, or leftover memory.\n- Chip labels must continue **this exchange**. After a list or query (including an empty result), suggest the next obvious question or filter \u2014 a different date, range, person, or related view \u2014 in the user's language. After a create/update, offer the next step on that record.\n- Empty results still need concrete next steps (for example a different day, this week, or who is away), not generic filler.\n- Example: user asked who is on leave today and the assistant found none \u2192 chips such as \"leave tomorrow\", \"this week's leave\", \"who is away next week\" in the user's language.\n- Never emit generic filler such as \"Ask another question\", \"What else can you do?\", \"Ask me anything\", or their translations.\n- Navigation chips only when **this turn** created, updated, queried, opened a specific entity, or answered a how-to using PlatformManagement:ListPlatformNavigationForAi with a single Module.Entity. Never on greeting, thanks, goodbye, or orientation. Chip **text** must be in the same language as the user (never English when the user wrote Persian).\n - List: {\"text\":\"<Open List or List {menu title} in the user's language>\",\"command\":{\"name\":\"Entity:OpenList\",\"options\":{\"entity\":\"Module.Entity\"}}}\n - How-to / menu answers: Open List only (no Details unless a record id exists). Prefer a named chip such as \"List Users\" when the menu title is known.\n - Details (only when this turn has a record id and the row was not just deleted): {\"text\":\"<Open Details in the user's language>\",\"command\":{\"name\":\"Entity:OpenDetails\",\"options\":{\"entity\":\"Module.Entity\",\"data\":{\"id\":\"<record-id>\"}}}}\n- Other chips remain send-message requests in the user's language.\n- Do not invent platform facts, IDs, or screens that were not mentioned and are not listed in assist capabilities.\n- When the exchange is orientation (greeting, thanks, goodbye, or no specific task yet), suggest what this assist can help with. Prefer the provided assist capabilities, rewritten as short chip labels in the user's language.\n- Use the same language as the user.\n- Do not repeat the assistant's full answer. Chip labels only.\n- No markdown fences, commentary, or extra keys.";
783
+ declare function axmBuildAssistConversationFollowUpUserPrompt(input: {
784
+ userMessageText: string;
785
+ assistantMessageText: string;
786
+ assistGrounding?: string;
787
+ turnGrounding?: string;
788
+ threadInspiration?: string;
789
+ }): string;
473
790
  /** System prompt for a lightweight title-only model call (first user message → sidebar title). */
474
791
  declare const AXM_ASSIST_CONVERSATION_TITLE_SYSTEM_PROMPT = "You generate short conversation titles for chat sidebars.\n\nGiven the user's first message, reply with ONLY a concise title (3\u20138 words, max 90 characters).\nUse the same language as the user's message (for example Persian if they wrote in Persian).\nDo not use quotes, colons, hashtags, or explanation. Output the title text only.";
475
792
  declare function axmSanitizeAiGeneratedConversationTitle(raw: string): string | null;
@@ -494,14 +811,127 @@ declare function axmCompareMessagesChronologically(a: {
494
811
  timestamp: unknown;
495
812
  metadata?: Record<string, unknown>;
496
813
  }): number;
814
+ type AXMChronologicalMessage = {
815
+ id: string;
816
+ timestamp: unknown;
817
+ metadata?: Record<string, unknown>;
818
+ deleted?: boolean;
819
+ };
820
+ /** Messages that sort after {@link messageId} in conversation order (deleted rows excluded). */
821
+ declare function axmMessagesAfterId<T extends AXMChronologicalMessage>(messages: readonly T[], messageId: string): T[];
822
+
823
+ interface AxmFollowUpNavChipLabels {
824
+ list: string;
825
+ details: string;
826
+ }
827
+ /**
828
+ * Spoken language from the latest user text when that locale exists in the product;
829
+ * otherwise the system UI locale.
830
+ */
831
+ declare function axmInferFollowUpChipLocale(spokenText: string, systemLocale?: string): string;
832
+ /** Resolved Open List / Open Details labels — plain text, never i18n keys. */
833
+ declare function axmResolveFollowUpNavChipLabels(spokenText: string, systemLocale?: string, options?: {
834
+ listEntityTitle?: string;
835
+ }): AxmFollowUpNavChipLabels;
497
836
 
498
837
  interface AXMConversationAssistMessageHandler {
499
838
  maybeStartAfterUserMessage(userMessage: AXMConversationMessage): Promise<void>;
839
+ /**
840
+ * After a user edits an earlier turn: drop later messages, abort any live stream,
841
+ * and start a new Assist reply from the edited message.
842
+ */
843
+ maybeRegenerateAfterUserMessageEdit(userMessage: AXMConversationMessage): Promise<void>;
500
844
  retryAssistResponse(conversationId: string, messageId: string, options?: {
501
845
  replyToUserMessageId?: string;
502
846
  }): Promise<AXMConversationMessage>;
503
847
  }
504
848
  declare const AXM_CONVERSATION_ASSIST_MESSAGE_HANDLER: unique symbol;
505
849
 
506
- export { AXMPermissionsKeys, AXM_ASSIST_CONVERSATION_TITLE_SYSTEM_PROMPT, AXM_COMMENT_LIKE_EMOJI, AXM_CONVERSATION_ASSIST_MESSAGE_HANDLER, AXPCollaborationPermissionKeys, AXPConversationMenuKeys, RootConfig, axmBuildHeuristicConversationTitleFallback, axmChatAiPeerParticipantId, axmCoerceMessageTimestampMs, axmCompareMessagesChronologically, axmConversationHasAiChat, axmEnsureAssistMessageSortsAfterReplyTarget, axmExtractAssistIdFromMetadata, axmExtractDirectAgentIdFromMetadata, axmIsUnsupportedLegacyAgentAssistConversation, axmNormalizeConversationTitle, axmReadAssistResponseStatus, axmReadReplyToUserMessageId, axmResolveAssistMessageTimestamp, axmSanitizeAiGeneratedConversationTitle, extractMessageTextFromPayload };
507
- export type { AXAudioMediaItem, AXAudioPayload, AXConversationMessageListBackground, AXConversationMessageListThemeBackground, AXConversationMetadata, AXConversationSettings, AXConversationStatus, AXConversationType, AXFileMediaItem, AXFilePayload, AXImageMediaItem, AXImagePayload, AXLink, AXLinkPreview, AXLocationPayload, AXMCommentEntityData, AXMConversationAssistMessageHandler, AXMConversationMessage, AXMConversationReaction, AXMConversationRoom, AXMConversationRoomKind, AXMReactionType, AXMediaItemFields, AXMention, AXMessagePayload, AXMessageStatus, AXMessageType, AXNodePayload, AXParticipant, AXParticipantRole, AXParticipantStatus, AXPollOption, AXPollPayload, AXReaction, AXStickerPayload, AXSystemEventType, AXSystemPayload, AXTextFormat, AXTextPayload, AXUserProfile, AXVideoMediaItem, AXVideoPayload, AXVoicePayload, ConversationAssistFrontendToolCall, ConversationAssistWireEvent };
850
+ /** Metadata key on a Conversation room for contextual assist launch payload. */
851
+ declare const AXM_ASSIST_LAUNCH_CONTEXT_METADATA_KEY = "assistLaunchContext";
852
+ /** v1 entity-row launch kind. Later callers may pass other kind strings (e.g. document). */
853
+ declare const AXM_CONTEXTUAL_ASSIST_KIND_ENTITY_RECORD = "entity-record";
854
+ /** v1 entity-row action name passed into the launcher. */
855
+ declare const AXM_CONTEXTUAL_ASSIST_ACTION_ENTITY_RECORD = "entity.record.assist";
856
+ /** Generic bag the contextual-assist launcher accepts from any host (entity, later document). */
857
+ interface AXMContextualAssistContext {
858
+ kind: string;
859
+ actionName: string;
860
+ title?: string;
861
+ payload: Record<string, unknown>;
862
+ }
863
+ /** Column snapshot for an entity-record launch. */
864
+ interface AXMContextualAssistColumnValue {
865
+ name: string;
866
+ title: string;
867
+ value: unknown;
868
+ }
869
+ /** Payload for {@link AXM_CONTEXTUAL_ASSIST_KIND_ENTITY_RECORD}. */
870
+ interface AXMEntityRecordAssistPayload {
871
+ moduleName: string;
872
+ entityName: string;
873
+ entityTitle?: string;
874
+ recordId: string;
875
+ columns: AXMContextualAssistColumnValue[];
876
+ }
877
+ /**
878
+ * Payload key for a live designer/document JSON string.
879
+ * Sanitizer keeps this field much larger than ordinary string values.
880
+ */
881
+ declare const AXM_CONTEXTUAL_ASSIST_LAYOUT_JSON_KEY = "layoutJson";
882
+ /** Compact widget pointer for designer assist (selected node / current page). */
883
+ interface AXMFormTemplateDesignerAssistWidgetRef {
884
+ type?: string;
885
+ name?: string;
886
+ path?: string;
887
+ childCount?: number;
888
+ }
889
+ /** Local list summary (not row data) for designer assist. */
890
+ interface AXMFormTemplateDesignerAssistDataSourceRef {
891
+ id: string;
892
+ name: string;
893
+ itemCount: number;
894
+ columnNames: string[];
895
+ }
896
+ /**
897
+ * Payload for form-template designer assist.
898
+ * Optional {@link layoutJson} is the live canvas (same shape as File → Download JSON).
899
+ * Prefer designer outline/patch commands over shipping the full tree.
900
+ */
901
+ interface AXMFormTemplateDesignerAssistPayload extends AXMEntityRecordAssistPayload {
902
+ scenario: string;
903
+ entityType: string;
904
+ surface: 'layout-designer';
905
+ layoutJson?: string;
906
+ layoutJsonTruncated?: boolean;
907
+ unsavedChanges?: boolean;
908
+ pageCount?: number;
909
+ currentPageIndex?: number;
910
+ currentPage?: AXMFormTemplateDesignerAssistWidgetRef;
911
+ selectedWidget?: AXMFormTemplateDesignerAssistWidgetRef | null;
912
+ dataSources?: AXMFormTemplateDesignerAssistDataSourceRef[];
913
+ widgetCounts?: Record<string, number>;
914
+ surfaceId?: string;
915
+ documentKind?: string;
916
+ rootWidget?: string;
917
+ }
918
+
919
+ /** Live designer JSON must survive sanitize so the specialist can edit the canvas. */
920
+ declare const AXM_CONTEXTUAL_ASSIST_MAX_LAYOUT_JSON_CHARS = 100000;
921
+ declare const AXM_CONTEXTUAL_ASSIST_STARTER_SYSTEM_PROMPT = "You generate short suggested starter questions for a chat assistant.\n\nThe user has not sent a message yet. They opened assist from a product surface (for example one entity record).\n\nReply with ONLY one JSON object:\n{\"items\":[{\"text\":\"short question\"}]}\n\nRules:\n- Return at most 3 items. Each text is one short suggested question or request the user could send.\n- Ground every chip only in the provided launch context. Do not invent ids, fields, or facts that are not in the context.\n- Use the same language as the locale (and any user-facing titles in the context).\n- Do not claim data was saved or that you already changed the record.\n- No markdown fences, commentary, or extra keys.";
922
+ /**
923
+ * Reads {@link AXM_ASSIST_LAUNCH_CONTEXT_METADATA_KEY} from conversation metadata
924
+ * (including the nested `metadata.metadata` shape used by the conversation UI).
925
+ */
926
+ declare function axmIsFormTemplateDesignerAssistLaunch(metadata: Record<string, unknown> | undefined): boolean;
927
+ declare function axmExtractAssistLaunchContextFromMetadata(metadata: Record<string, unknown> | undefined): AXMContextualAssistContext | undefined;
928
+ declare function axmSanitizeContextualAssistContext(context: AXMContextualAssistContext): AXMContextualAssistContext;
929
+ declare function axmSanitizeContextualAssistValue(value: unknown): unknown;
930
+ declare function axmShouldSkipContextualAssistKey(key: string): boolean;
931
+ declare function axmBuildContextualAssistStarterUserPrompt(context: AXMContextualAssistContext, locale: string): string;
932
+ /** System/user-visible injection prepended on every assist run for a launched room. */
933
+ declare function axmFormatContextualAssistLaunchInjection(context: AXMContextualAssistContext): string;
934
+ declare function axmParseContextualAssistStarterItems(rawText: string): string[];
935
+
936
+ export { AXMChannelErrorCodes, AXMPermissionsKeys, AXM_ASSIST_CONVERSATION_FOLLOW_UP_SYSTEM_PROMPT, AXM_ASSIST_CONVERSATION_TITLE_SYSTEM_PROMPT, AXM_ASSIST_LAUNCH_CONTEXT_METADATA_KEY, AXM_CHANNEL_AUDIENCE_TARGET_ENTITY, AXM_COMMENT_LIKE_EMOJI, AXM_CONTEXTUAL_ASSIST_ACTION_ENTITY_RECORD, AXM_CONTEXTUAL_ASSIST_KIND_ENTITY_RECORD, AXM_CONTEXTUAL_ASSIST_LAYOUT_JSON_KEY, AXM_CONTEXTUAL_ASSIST_MAX_LAYOUT_JSON_CHARS, AXM_CONTEXTUAL_ASSIST_STARTER_SYSTEM_PROMPT, AXM_CONVERSATION_ANNOUNCEMENT_CHANNEL_KEY, AXM_CONVERSATION_ANNOUNCEMENT_CHANNEL_NAME, AXM_CONVERSATION_ANNOUNCEMENT_FEED_ITEM_META_KEY, AXM_CONVERSATION_ANNOUNCEMENT_MESSAGE_TYPE, AXM_CONVERSATION_ASSIST_MESSAGE_HANDLER, AXM_CONVERSATION_CHANNEL_POST_ID_META_KEY, AXPCollaborationPermissionKeys, AXPConversationCommandKeys, AXPConversationMenuKeys, AXPConversationQueryKeys, CHANNEL_AUDIENCE_ENTITY_NAME, CHANNEL_DISTRIBUTOR, CHANNEL_NOTIFICATION_PORT, CHANNEL_POST_ENTITY_NAME, CHANNEL_POST_PUBLISHED_EVENT_NAME, CHANNEL_RECEIPT_ENTITY_NAME, ConversationManifest, RootConfig, axmAiChatConversationUiMetadata, axmAnnouncementChannelMetadata, axmBuildAssistConversationFollowUpUserPrompt, axmBuildContextualAssistStarterUserPrompt, axmBuildHeuristicConversationTitleFallback, axmChannelAudienceIsVisible, axmChannelAudienceRuleMatches, axmChannelAudienceTargetEntity, axmChannelPostIdFromMessage, axmChatAiPeerParticipantId, axmCoerceMessageTimestampMs, axmCompareMessagesChronologically, axmConversationHasAiChat, axmEnsureAssistMessageSortsAfterReplyTarget, axmExtractAssistIdFromMetadata, axmExtractAssistLaunchContextFromMetadata, axmExtractDirectAgentIdFromMetadata, axmFormatContextualAssistLaunchInjection, axmInferFollowUpChipLocale, axmIsAnnouncementChannel, axmIsChannelRoom, axmIsCommentRoom, axmIsFormTemplateDesignerAssistLaunch, axmIsUnsupportedLegacyAgentAssistConversation, axmMessagesAfterId, axmNormalizeConversationTitle, axmParseContextualAssistStarterItems, axmReadAssistFollowUpStatus, axmReadAssistResponseStatus, axmReadReplyToUserMessageId, axmResolveAssistMessageTimestamp, axmResolveChannelAudienceUserIds, axmResolveConversationMessageScopeInfo, axmResolveFollowUpNavChipLabels, axmRoomAudienceRule, axmSanitizeAiGeneratedConversationTitle, axmSanitizeContextualAssistContext, axmSanitizeContextualAssistValue, axmScopeInfoNeedsTenantStamp, axmShouldSkipContextualAssistKey, channelPostMessageName, channelPostTitleText, extractMessageTextFromPayload, toChannelFeedItem };
937
+ export type { AXAudioMediaItem, AXAudioPayload, AXConversationComposerAttachmentPresentation, AXConversationMessageListBackground, AXConversationMessageListThemeBackground, AXConversationMetadata, AXConversationSettings, AXConversationStatus, AXConversationType, AXFileMediaItem, AXFilePayload, AXImageMediaItem, AXImagePayload, AXLink, AXLinkPreview, AXLocationPayload, AXMChannelAudienceEntityModel, AXMChannelAudienceMembership, AXMChannelAudienceMode, AXMChannelAudienceTargetType, AXMChannelDistributionOutcome, AXMChannelDistributionResult, AXMChannelDistributionSelection, AXMChannelDistributor, AXMChannelFeedItem, AXMChannelFeedQueryInput, AXMChannelLifecycleAction, AXMChannelMarkReadCommandInput, AXMChannelNotificationPolicy, AXMChannelNotificationPort, AXMChannelPostEntityModel, AXMChannelPostKind, AXMChannelPostStatus, AXMChannelPublishedEvent, AXMChannelReceiptEntityModel, AXMChannelUnreadCount, AXMChronologicalMessage, AXMCommentEntityData, AXMContextualAssistColumnValue, AXMContextualAssistContext, AXMConversationAssistMessageHandler, AXMConversationMessage, AXMConversationReaction, AXMConversationRoom, AXMConversationRoomKind, AXMEntityRecordAssistPayload, AXMFormTemplateDesignerAssistDataSourceRef, AXMFormTemplateDesignerAssistPayload, AXMFormTemplateDesignerAssistWidgetRef, AXMReactionType, AXMediaItemFields, AXMention, AXMessagePayload, AXMessageStatus, AXMessageType, AXNodePayload, AXParticipant, AXParticipantRole, AXParticipantStatus, AXPollOption, AXPollPayload, AXReaction, AXStickerPayload, AXSystemEventType, AXSystemPayload, AXTextFormat, AXTextPayload, AXUserProfile, AXVideoMediaItem, AXVideoPayload, AXVoicePayload, AxmAssistFollowUpStatus, AxmFollowUpNavChipLabels, ConversationAssistFrontendToolCall, ConversationAssistWireEvent };