@senguoyun/dsh-arkme 0.1.41 → 0.1.43

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 (220) hide show
  1. package/docs/avatar-diagnostics.md +36 -0
  2. package/docs/consumer-plugin-contract.md +18 -1
  3. package/docs/resizable-composer-verification.md +45 -0
  4. package/docs/resizable-note-detail-verification.md +41 -0
  5. package/lib/client.js +65483 -58587
  6. package/lib/client.js.map +1 -1
  7. package/lib/index.js +3290 -1238
  8. package/lib/persistent-extension.js +1 -1
  9. package/lib/{persistent-runtime-B1gJH2Nx.js → persistent-runtime-DYBmIlId.js} +4725 -2106
  10. package/lib/sdk.js +67 -0
  11. package/lib/types/arkme-service.d.ts +63 -8
  12. package/lib/types/arkme-service.d.ts.map +1 -1
  13. package/lib/types/avatar-diagnostics.d.ts +20 -0
  14. package/lib/types/avatar-diagnostics.d.ts.map +1 -0
  15. package/lib/types/chat-realtime.d.ts +31 -1
  16. package/lib/types/chat-realtime.d.ts.map +1 -1
  17. package/lib/types/client/ArkmeAppUpdateDialog.d.ts.map +1 -1
  18. package/lib/types/client/ArkmeChatMemberActions.d.ts +10 -2
  19. package/lib/types/client/ArkmeChatMemberActions.d.ts.map +1 -1
  20. package/lib/types/client/ArkmeConfirmDialog.d.ts +19 -0
  21. package/lib/types/client/ArkmeConfirmDialog.d.ts.map +1 -0
  22. package/lib/types/client/ArkmeGroupChatControls.d.ts +1 -0
  23. package/lib/types/client/ArkmeGroupChatControls.d.ts.map +1 -1
  24. package/lib/types/client/ArkmeLinkText.d.ts +12 -1
  25. package/lib/types/client/ArkmeLinkText.d.ts.map +1 -1
  26. package/lib/types/client/ArkmeMentionTextarea.d.ts +2 -2
  27. package/lib/types/client/ArkmeMentionTextarea.d.ts.map +1 -1
  28. package/lib/types/client/ArkmeMessageWithdrawalDialog.d.ts +8 -0
  29. package/lib/types/client/ArkmeMessageWithdrawalDialog.d.ts.map +1 -0
  30. package/lib/types/client/ArkmeNoteDetails.d.ts.map +1 -1
  31. package/lib/types/client/ArkmePersistentShell.d.ts.map +1 -1
  32. package/lib/types/client/ArkmeRecordingSurface.d.ts +12 -4
  33. package/lib/types/client/ArkmeRecordingSurface.d.ts.map +1 -1
  34. package/lib/types/client/ArkmeRelatedQuickNotes.d.ts.map +1 -1
  35. package/lib/types/client/ArkmeRichComposerInput.d.ts.map +1 -1
  36. package/lib/types/client/ArkmeRichContent.d.ts.map +1 -1
  37. package/lib/types/client/ArkmeRichText.d.ts +9 -3
  38. package/lib/types/client/ArkmeRichText.d.ts.map +1 -1
  39. package/lib/types/client/ArkmeSearchSurface.d.ts +6 -3
  40. package/lib/types/client/ArkmeSearchSurface.d.ts.map +1 -1
  41. package/lib/types/client/ArkmeSettingsSurface.d.ts +3 -3
  42. package/lib/types/client/ArkmeSettingsSurface.d.ts.map +1 -1
  43. package/lib/types/client/ArkmeSidebar.d.ts +6 -2
  44. package/lib/types/client/ArkmeSidebar.d.ts.map +1 -1
  45. package/lib/types/client/ArkmeUpdateSurfaces.d.ts +2 -1
  46. package/lib/types/client/ArkmeUpdateSurfaces.d.ts.map +1 -1
  47. package/lib/types/client/ArkmeVirtualWorkspace.d.ts +1 -1
  48. package/lib/types/client/ArkmeVirtualWorkspace.d.ts.map +1 -1
  49. package/lib/types/client/ArkmeWorldSurface.d.ts +7 -4
  50. package/lib/types/client/ArkmeWorldSurface.d.ts.map +1 -1
  51. package/lib/types/client/api.d.ts +12 -4
  52. package/lib/types/client/api.d.ts.map +1 -1
  53. package/lib/types/client/app-update-store.d.ts +8 -1
  54. package/lib/types/client/app-update-store.d.ts.map +1 -1
  55. package/lib/types/client/arkme-theme.d.ts +1 -0
  56. package/lib/types/client/arkme-theme.d.ts.map +1 -1
  57. package/lib/types/client/avatar-image-runtime.d.ts.map +1 -1
  58. package/lib/types/client/avatar-image-store.d.ts +8 -0
  59. package/lib/types/client/avatar-image-store.d.ts.map +1 -1
  60. package/lib/types/client/bot-chat-directory-projection.d.ts +2 -0
  61. package/lib/types/client/bot-chat-directory-projection.d.ts.map +1 -1
  62. package/lib/types/client/bot-directory-preferences.d.ts +0 -3
  63. package/lib/types/client/bot-directory-preferences.d.ts.map +1 -1
  64. package/lib/types/client/chat-directory-store.d.ts +15 -0
  65. package/lib/types/client/chat-directory-store.d.ts.map +1 -1
  66. package/lib/types/client/composer-draft-store.d.ts +1 -0
  67. package/lib/types/client/composer-draft-store.d.ts.map +1 -1
  68. package/lib/types/client/conversation-directory-visibility-overlay.d.ts +27 -0
  69. package/lib/types/client/conversation-directory-visibility-overlay.d.ts.map +1 -0
  70. package/lib/types/client/conversation-resize-anchor.d.ts +12 -0
  71. package/lib/types/client/conversation-resize-anchor.d.ts.map +1 -0
  72. package/lib/types/client/interwoven-moments.d.ts.map +1 -1
  73. package/lib/types/client/realtime-client-events.d.ts.map +1 -1
  74. package/lib/types/client/recordings/ArkmeRecordingImportDialog.d.ts +6 -1
  75. package/lib/types/client/recordings/ArkmeRecordingImportDialog.d.ts.map +1 -1
  76. package/lib/types/client/recordings/RecordingDesktopIcon.d.ts +19 -0
  77. package/lib/types/client/recordings/RecordingDesktopIcon.d.ts.map +1 -0
  78. package/lib/types/client/recordings/RecordingTranscriptButton.d.ts +3 -0
  79. package/lib/types/client/recordings/RecordingTranscriptButton.d.ts.map +1 -0
  80. package/lib/types/client/recordings/RecordingTranscriptComparison.d.ts +8 -0
  81. package/lib/types/client/recordings/RecordingTranscriptComparison.d.ts.map +1 -0
  82. package/lib/types/client/recordings/RecordingTranscriptForward.d.ts +8 -0
  83. package/lib/types/client/recordings/RecordingTranscriptForward.d.ts.map +1 -0
  84. package/lib/types/client/recordings/RecordingTranscriptSearch.d.ts +10 -0
  85. package/lib/types/client/recordings/RecordingTranscriptSearch.d.ts.map +1 -0
  86. package/lib/types/client/recordings/RecordingTranscriptText.d.ts +9 -0
  87. package/lib/types/client/recordings/RecordingTranscriptText.d.ts.map +1 -0
  88. package/lib/types/client/recordings/prepare-recording-transcript-comparison.d.ts +9 -0
  89. package/lib/types/client/recordings/prepare-recording-transcript-comparison.d.ts.map +1 -0
  90. package/lib/types/client/recordings/recording-forward-attempt.d.ts +18 -0
  91. package/lib/types/client/recordings/recording-forward-attempt.d.ts.map +1 -0
  92. package/lib/types/client/recordings/recording-forward-client.d.ts +5 -0
  93. package/lib/types/client/recordings/recording-forward-client.d.ts.map +1 -0
  94. package/lib/types/client/recordings/recording-import-selection.d.ts.map +1 -1
  95. package/lib/types/client/recordings/recording-transcript-comparison.d.ts +3 -0
  96. package/lib/types/client/recordings/recording-transcript-comparison.d.ts.map +1 -0
  97. package/lib/types/client/recordings/recording-transcript-search.d.ts +11 -0
  98. package/lib/types/client/recordings/recording-transcript-search.d.ts.map +1 -0
  99. package/lib/types/client/redesign/contacts/AlphabeticalContactList.d.ts.map +1 -1
  100. package/lib/types/client/redesign/contacts/ContactDirectorySurface.d.ts.map +1 -1
  101. package/lib/types/client/redesign/contacts/DirectoryDetailPane.d.ts.map +1 -1
  102. package/lib/types/client/redesign/contacts/TeamDetailPane.d.ts +5 -0
  103. package/lib/types/client/redesign/contacts/TeamDetailPane.d.ts.map +1 -0
  104. package/lib/types/client/redesign/contacts/contact-directory-state.d.ts +3 -0
  105. package/lib/types/client/redesign/contacts/contact-directory-state.d.ts.map +1 -1
  106. package/lib/types/client/redesign/contacts/contacts-tab-store.d.ts.map +1 -1
  107. package/lib/types/client/ui-controller.d.ts +7 -0
  108. package/lib/types/client/ui-controller.d.ts.map +1 -1
  109. package/lib/types/client/use-resizable-composer.d.ts +18 -0
  110. package/lib/types/client/use-resizable-composer.d.ts.map +1 -0
  111. package/lib/types/client/use-resizable-note-detail.d.ts +17 -0
  112. package/lib/types/client/use-resizable-note-detail.d.ts.map +1 -0
  113. package/lib/types/dsh-remote/api-proxy-adapter.d.ts.map +1 -1
  114. package/lib/types/dsh-remote/channel-manager.d.ts +1 -0
  115. package/lib/types/dsh-remote/channel-manager.d.ts.map +1 -1
  116. package/lib/types/dsh-remote/control-plane.d.ts +5 -0
  117. package/lib/types/dsh-remote/control-plane.d.ts.map +1 -1
  118. package/lib/types/dsh-remote/host.d.ts +49 -13
  119. package/lib/types/dsh-remote/host.d.ts.map +1 -1
  120. package/lib/types/dsh-remote/realtime-transport.d.ts.map +1 -1
  121. package/lib/types/dsh-remote/turn-projector.d.ts.map +1 -1
  122. package/lib/types/dsh-remote/turn-upload-outbox.d.ts +86 -0
  123. package/lib/types/dsh-remote/turn-upload-outbox.d.ts.map +1 -0
  124. package/lib/types/dsh-remote/types.d.ts +18 -2
  125. package/lib/types/dsh-remote/types.d.ts.map +1 -1
  126. package/lib/types/hashtag.d.ts +47 -0
  127. package/lib/types/hashtag.d.ts.map +1 -0
  128. package/lib/types/host-api.d.ts +3 -1
  129. package/lib/types/host-api.d.ts.map +1 -1
  130. package/lib/types/index.d.ts +1 -1
  131. package/lib/types/index.d.ts.map +1 -1
  132. package/lib/types/link-metadata.d.ts +2 -0
  133. package/lib/types/link-metadata.d.ts.map +1 -1
  134. package/lib/types/local-database.d.ts +5 -1
  135. package/lib/types/local-database.d.ts.map +1 -1
  136. package/lib/types/openapi-capability-gateway.d.ts +78 -0
  137. package/lib/types/openapi-capability-gateway.d.ts.map +1 -0
  138. package/lib/types/openapi-mcp/controller.d.ts +14 -7
  139. package/lib/types/openapi-mcp/controller.d.ts.map +1 -1
  140. package/lib/types/openapi-mcp/execution-fence.d.ts.map +1 -1
  141. package/lib/types/openapi-mcp/types.d.ts +20 -0
  142. package/lib/types/openapi-mcp/types.d.ts.map +1 -1
  143. package/lib/types/record-reedit-contract.d.ts +64 -0
  144. package/lib/types/record-reedit-contract.d.ts.map +1 -0
  145. package/lib/types/recording-forward-contract.d.ts +30 -0
  146. package/lib/types/recording-forward-contract.d.ts.map +1 -0
  147. package/lib/types/recording-forward-presentation.d.ts +6 -0
  148. package/lib/types/recording-forward-presentation.d.ts.map +1 -0
  149. package/lib/types/recording-import-contract.d.ts +65 -2
  150. package/lib/types/recording-import-contract.d.ts.map +1 -1
  151. package/lib/types/recording-import-coordinator.d.ts.map +1 -1
  152. package/lib/types/recording-import-probe.d.ts.map +1 -1
  153. package/lib/types/recording-import-shared.d.ts +84 -0
  154. package/lib/types/recording-import-shared.d.ts.map +1 -1
  155. package/lib/types/recording-presentation.d.ts +21 -5
  156. package/lib/types/recording-presentation.d.ts.map +1 -1
  157. package/lib/types/recording-wave-probe.d.ts +9 -0
  158. package/lib/types/recording-wave-probe.d.ts.map +1 -0
  159. package/lib/types/sdk/index.d.ts +41 -2
  160. package/lib/types/sdk/index.d.ts.map +1 -1
  161. package/lib/types/services/bot-service.d.ts +3 -0
  162. package/lib/types/services/bot-service.d.ts.map +1 -1
  163. package/lib/types/services/chat-realtime-service.d.ts +4 -1
  164. package/lib/types/services/chat-realtime-service.d.ts.map +1 -1
  165. package/lib/types/services/chat-service.d.ts +22 -2
  166. package/lib/types/services/chat-service.d.ts.map +1 -1
  167. package/lib/types/services/contact-directory-service.d.ts +0 -2
  168. package/lib/types/services/contact-directory-service.d.ts.map +1 -1
  169. package/lib/types/services/conversation-directory-visibility-service.d.ts +34 -0
  170. package/lib/types/services/conversation-directory-visibility-service.d.ts.map +1 -0
  171. package/lib/types/services/conversation-list-preference-service.d.ts +56 -0
  172. package/lib/types/services/conversation-list-preference-service.d.ts.map +1 -0
  173. package/lib/types/services/group-ai-polish-service.d.ts +3 -0
  174. package/lib/types/services/group-ai-polish-service.d.ts.map +1 -1
  175. package/lib/types/services/link-metadata-service.d.ts +5 -2
  176. package/lib/types/services/link-metadata-service.d.ts.map +1 -1
  177. package/lib/types/services/media-service.d.ts.map +1 -1
  178. package/lib/types/services/profile-service.d.ts +5 -0
  179. package/lib/types/services/profile-service.d.ts.map +1 -1
  180. package/lib/types/services/record-service.d.ts +23 -1
  181. package/lib/types/services/record-service.d.ts.map +1 -1
  182. package/lib/types/services/recording-forward-gateway.d.ts +19 -0
  183. package/lib/types/services/recording-forward-gateway.d.ts.map +1 -0
  184. package/lib/types/services/recording-import-gateway.d.ts +45 -2
  185. package/lib/types/services/recording-import-gateway.d.ts.map +1 -1
  186. package/lib/types/services/recording-service.d.ts +36 -3
  187. package/lib/types/services/recording-service.d.ts.map +1 -1
  188. package/lib/types/services/search-service.d.ts +8 -0
  189. package/lib/types/services/search-service.d.ts.map +1 -1
  190. package/lib/types/services/service.d.ts +7 -3
  191. package/lib/types/services/service.d.ts.map +1 -1
  192. package/lib/types/services/source-service.d.ts +25 -12
  193. package/lib/types/services/source-service.d.ts.map +1 -1
  194. package/lib/types/services/team-service.d.ts +55 -0
  195. package/lib/types/services/team-service.d.ts.map +1 -0
  196. package/lib/types/services/world-service.d.ts +4 -0
  197. package/lib/types/services/world-service.d.ts.map +1 -1
  198. package/lib/types/state-store.d.ts +5 -1
  199. package/lib/types/state-store.d.ts.map +1 -1
  200. package/lib/types/tools/business/conversation/index.d.ts.map +1 -1
  201. package/lib/types/tools/business/conversation/withdraw-message.d.ts +2 -0
  202. package/lib/types/tools/business/conversation/withdraw-message.d.ts.map +1 -0
  203. package/lib/types/tools/business/groups/index.d.ts.map +1 -1
  204. package/lib/types/tools/business/index.d.ts.map +1 -1
  205. package/lib/types/tools/business/records/index.d.ts.map +1 -1
  206. package/lib/types/tools/business/records/reedit.d.ts +2 -0
  207. package/lib/types/tools/business/records/reedit.d.ts.map +1 -0
  208. package/lib/types/tools/ports/conversations.d.ts +5 -1
  209. package/lib/types/tools/ports/conversations.d.ts.map +1 -1
  210. package/lib/types/tools/ports/groups.d.ts +13 -1
  211. package/lib/types/tools/ports/groups.d.ts.map +1 -1
  212. package/lib/types/tools/ports/records.d.ts +5 -0
  213. package/lib/types/tools/ports/records.d.ts.map +1 -1
  214. package/lib/types/tools/prompts/business.d.ts.map +1 -1
  215. package/lib/types/tools/registry/registrar.d.ts.map +1 -1
  216. package/lib/types/tools/shared/conversational-confirmation.d.ts +2 -1
  217. package/lib/types/tools/shared/conversational-confirmation.d.ts.map +1 -1
  218. package/lib/types/types.d.ts +209 -9
  219. package/lib/types/types.d.ts.map +1 -1
  220. package/package.json +5 -5
@@ -119,10 +119,10 @@ export type ArkmeDirectoryItem = {
119
119
  subtitle: string;
120
120
  } | {
121
121
  kind: 'team';
122
- rowKey: string;
122
+ teamRef: string;
123
123
  displayName: string;
124
- publicId?: string;
125
- avatarRef?: string;
124
+ publicId: string;
125
+ role: ArkmeTeamRole;
126
126
  } | {
127
127
  kind: 'contact';
128
128
  contactRef: string;
@@ -143,6 +143,84 @@ export interface ArkmeDirectoryPage {
143
143
  retryAfterMillis?: number;
144
144
  cursorStale?: boolean;
145
145
  }
146
+ export type ArkmeTeamRole = 'owner' | 'admin' | 'member';
147
+ export type ArkmeTeamIdentityState = 'ready' | 'incomplete' | 'unavailable';
148
+ export type ArkmeTeamCreateRejectReason = 'jotmo_id_unavailable' | 'idempotency_conflict';
149
+ export type ArkmeTeamJoinRejectReason = 'team_not_found';
150
+ export type ArkmeTeamMembershipState = 'joined' | 'already_member' | 'owner';
151
+ export interface ArkmeTeam {
152
+ teamRef: string;
153
+ name: string;
154
+ jotmoId: string;
155
+ currentUserRole: ArkmeTeamRole;
156
+ createdAtMillis: number;
157
+ updatedAtMillis: number;
158
+ }
159
+ export interface ArkmeTeamPage {
160
+ items: ArkmeTeam[];
161
+ totalCount: number;
162
+ hasMore: boolean;
163
+ nextPageCursor?: string;
164
+ }
165
+ export interface ArkmeTeamResolveItem {
166
+ itemId: string;
167
+ query: string;
168
+ limit?: number;
169
+ pageCursor?: string;
170
+ }
171
+ export interface ArkmeTeamResolution {
172
+ itemId: string;
173
+ candidates: ArkmeTeam[];
174
+ hasMore: boolean;
175
+ nextPageCursor?: string;
176
+ }
177
+ export interface ArkmeTeamMember {
178
+ userRef: string;
179
+ displayName: string;
180
+ jotmoId?: string;
181
+ /** Browser-safe profile image reference resolved by the host presentation layer. */
182
+ avatarRef?: string;
183
+ avatarFallback?: ArkmeGroupAvatarFallback;
184
+ identityState: ArkmeTeamIdentityState;
185
+ role: ArkmeTeamRole;
186
+ joinedAtMillis: number;
187
+ }
188
+ export interface ArkmeTeamMemberPage {
189
+ team: ArkmeTeam;
190
+ items: ArkmeTeamMember[];
191
+ totalCount: number;
192
+ hasMore: boolean;
193
+ nextPageCursor?: string;
194
+ }
195
+ export interface ArkmeTeamCreateItem {
196
+ itemId: string;
197
+ idempotencyKey: string;
198
+ name: string;
199
+ jotmoId: string;
200
+ }
201
+ export interface ArkmeTeamJoinItem {
202
+ itemId: string;
203
+ jotmoId: string;
204
+ }
205
+ export type ArkmeTeamCreateResult = {
206
+ itemId: string;
207
+ status: 'succeeded';
208
+ team: ArkmeTeam;
209
+ } | {
210
+ itemId: string;
211
+ status: 'rejected';
212
+ reason: ArkmeTeamCreateRejectReason;
213
+ };
214
+ export type ArkmeTeamJoinResult = {
215
+ itemId: string;
216
+ status: 'succeeded';
217
+ membershipState: ArkmeTeamMembershipState;
218
+ team: ArkmeTeam;
219
+ } | {
220
+ itemId: string;
221
+ status: 'rejected';
222
+ reason: ArkmeTeamJoinRejectReason;
223
+ };
146
224
  export interface ArkmeDirectoryContactProfile {
147
225
  contactRef: string;
148
226
  displayName: string;
@@ -275,6 +353,8 @@ export interface ArkmeRecordCursor {
275
353
  recordUid: string;
276
354
  }
277
355
  export interface ArkmeSelfRecordItem {
356
+ /** Frozen long-recording selection returned by the Record owner. */
357
+ forwardRecords?: ArkmeForwardRecordsPreview;
278
358
  recordUid: string;
279
359
  sendAtMillis: number;
280
360
  title: string;
@@ -363,6 +443,16 @@ export interface ArkmePendingWrite {
363
443
  captureContext?: ArkmeRecordCaptureContext;
364
444
  lastError?: string;
365
445
  }
446
+ export interface ArkmeRecordTagItem {
447
+ normalizedTag: string;
448
+ tagText: string;
449
+ recordCount: number;
450
+ latestRecordUid: string;
451
+ latestSendAtMillis: number;
452
+ }
453
+ export interface ArkmeRecordTagList {
454
+ items: ArkmeRecordTagItem[];
455
+ }
366
456
  export interface ArkmeCreateTextResult {
367
457
  recordUid: string;
368
458
  status: number;
@@ -396,6 +486,8 @@ export interface ArkmeBotSummary {
396
486
  createdAtMillis?: number;
397
487
  /** Latest private-chat message time, when the conversation directory has been hydrated. */
398
488
  latestMessageAtMillis?: number;
489
+ /** Latest Bot-owner activity used for ordering and direct-Bot visibility restoration. */
490
+ conversationListActivityAtMillis?: number;
399
491
  /** Safe preview of the latest private-chat message. */
400
492
  latestMessagePreview?: string;
401
493
  /** Unread count projected from the canonical Chat conversation, when Chat owns the Bot conversation. */
@@ -959,6 +1051,8 @@ export interface ArkmeProviderCapabilities {
959
1051
  messageReport?: true;
960
1052
  /** Employee-only, source-bound private-chat user ban inspection and mutation are available. */
961
1053
  userBanManagement?: true;
1054
+ /** Group owners can withdraw peer messages, remove members, and manage future join restrictions. */
1055
+ groupOwnerGovernance?: true;
962
1056
  richContentRead: boolean;
963
1057
  richContentSend: boolean;
964
1058
  /** Explicit text background-sound descriptors are supported by direct and durable rich sends. */
@@ -982,6 +1076,12 @@ export interface ArkmeProviderCapabilities {
982
1076
  extensionManagement?: true;
983
1077
  /** Owner-authorized extension name, description, and private/public visibility editing is available. */
984
1078
  extensionMetadataEdit?: true;
1079
+ /** OpenAPI-backed current-account Team directory is available. */
1080
+ teamDirectory?: true;
1081
+ /** Team member pages can be read with opaque team and user references. */
1082
+ teamMembers?: true;
1083
+ /** Explicit create and join-by-Jotmo-ID Team governance is available. */
1084
+ teamGovernance?: true;
985
1085
  /** Extension-level icon upload and same-origin rendering are available. */
986
1086
  extensionIcons?: true;
987
1087
  /** Extension-level preview gallery SDK and Tool mutations are available. */
@@ -1165,12 +1265,20 @@ export interface ArkmeSourceItem {
1165
1265
  latestSequence?: number;
1166
1266
  recordCount?: number;
1167
1267
  }
1168
- /** Result of a server-backed conversation-directory policy mutation. */
1169
- export interface ArkmeSourceDirectoryPolicyResult {
1268
+ /** Result of the existing Chat pin mutation; sidebar visibility is a separate capability. */
1269
+ export interface ArkmeSourceDirectoryPinResult {
1170
1270
  sourceRef: string;
1171
1271
  pinned: boolean;
1272
+ }
1273
+ export interface ArkmeConversationDirectoryVisibilityItem {
1274
+ entryKind: 'source' | 'bot';
1275
+ entryRef: string;
1172
1276
  hidden: boolean;
1173
1277
  }
1278
+ /** Browser-safe view of the Chat-owned sidebar visibility facts. */
1279
+ export interface ArkmeConversationDirectoryVisibility {
1280
+ items: ArkmeConversationDirectoryVisibilityItem[];
1281
+ }
1174
1282
  export interface ArkmeSourceList {
1175
1283
  directory: ArkmeSourceDirectory;
1176
1284
  items: ArkmeSourceItem[];
@@ -1276,8 +1384,12 @@ export interface ArkmeMessageSnapshotDetail {
1276
1384
  }
1277
1385
  export interface ArkmeTimelineItem {
1278
1386
  itemUid: string;
1387
+ /** Account- and conversation-bound stable key used only for realtime timeline invalidation. */
1388
+ timelineItemKey?: string;
1279
1389
  /** Account-bound opaque reference for reporting this concrete group-chat message. */
1280
1390
  messageRef?: string;
1391
+ /** Account-bound opaque reference for owner withdrawal of this concrete group-chat message. */
1392
+ messageWithdrawalRef?: string;
1281
1393
  /** Account- and conversation-bound opaque reference for copy-link and forward actions. */
1282
1394
  messageActionRef?: string;
1283
1395
  /** Account- and conversation-bound opaque reference for actions on the sender. */
@@ -1311,7 +1423,7 @@ export interface ArkmeTimelineItem {
1311
1423
  mediaUnavailable?: boolean;
1312
1424
  /** Present only for a categorized record in the aggregate “发给自己” feed. */
1313
1425
  selfTopic?: ArkmeTimelineSelfTopic;
1314
- /** Browser-safe Chat forward snapshot. It is present only for explicit `render_kind=forward_records` payloads. */
1426
+ /** Browser-safe Chat forward or Record-owned long-recording selection snapshot. */
1315
1427
  forwardRecords?: ArkmeForwardRecordsPreview;
1316
1428
  /** Browser-safe shared recording snapshot. It is present only for explicit `render_kind=shared_recording_memory` payloads. */
1317
1429
  sharedRecording?: ArkmeSharedRecordingPreview;
@@ -1418,6 +1530,8 @@ export interface ArkmeForwardRecordsPreview {
1418
1530
  truncated?: true;
1419
1531
  }
1420
1532
  export interface ArkmeForwardTranscriptSegment {
1533
+ /** Recording-local speaker number, never an account identity. */
1534
+ speakerNumber?: number;
1421
1535
  speakerName: string;
1422
1536
  textContent: string;
1423
1537
  /** Offsets in the forwarded recording, not wall-clock timestamps. */
@@ -1639,12 +1753,32 @@ export interface ArkmeLongArticleDraft {
1639
1753
  durationMillis: number;
1640
1754
  updatedAtMillis: number;
1641
1755
  }
1756
+ /** Host-owned durable candidate for editing one existing Record. */
1757
+ export interface ArkmeRecordReeditDraft {
1758
+ schemaVersion: 1;
1759
+ draftRevision: number;
1760
+ sourceIdentityKey: string;
1761
+ lastSourceRef: string;
1762
+ itemUid: string;
1763
+ title: string;
1764
+ textContent: string;
1765
+ baseVersion: number;
1766
+ baseContentFingerprint: string;
1767
+ editDurationMillis: number;
1768
+ updatedAtMillis: number;
1769
+ }
1642
1770
  export type ArkmeMessageReportType = 1 | 2 | 3 | 4;
1643
1771
  export interface ArkmeMessageReportResult {
1644
1772
  messageRef: string;
1645
1773
  reportUid: string;
1646
1774
  status: number;
1647
1775
  }
1776
+ export interface ArkmeMessageWithdrawalResult {
1777
+ messageWithdrawalRef: string;
1778
+ timelineItemKey: string;
1779
+ withdrawnAtMillis: number;
1780
+ alreadyWithdrawn: boolean;
1781
+ }
1648
1782
  export interface ArkmeMessageCopyLinkResult {
1649
1783
  sid: string;
1650
1784
  url: string;
@@ -1909,6 +2043,8 @@ export interface ArkmeConversationMemberItem {
1909
2043
  mentionRef?: string;
1910
2044
  /** Public/group-safe name bound to mentionRef; never contains the viewer's private contact label. */
1911
2045
  mentionDisplayName?: string;
2046
+ /** Viewer-private label shown only as supporting text in a mention candidate. */
2047
+ mentionSecondaryName?: string;
1912
2048
  /** Viewer-facing label; it may be the current viewer's private contact remark. */
1913
2049
  displayName: string;
1914
2050
  memberName?: string;
@@ -1922,6 +2058,31 @@ export interface ArkmeConversationMemberItem {
1922
2058
  recordCount: number;
1923
2059
  mentionCount: number;
1924
2060
  }
2061
+ export interface ArkmeGroupMemberRemoveResult {
2062
+ sourceRef: string;
2063
+ memberRef: string;
2064
+ status: 'removed';
2065
+ joinRestricted: boolean;
2066
+ }
2067
+ export interface ArkmeGroupJoinRestrictionItem {
2068
+ memberRef: string;
2069
+ displayName: string;
2070
+ memberName?: string;
2071
+ secondaryName?: string;
2072
+ avatarRef?: string;
2073
+ restrictedAtMillis: number;
2074
+ }
2075
+ export interface ArkmeGroupJoinRestrictionPage {
2076
+ sourceRef: string;
2077
+ items: ArkmeGroupJoinRestrictionItem[];
2078
+ nextCursor?: string;
2079
+ }
2080
+ export interface ArkmeGroupJoinRestrictionMutationResult {
2081
+ sourceRef: string;
2082
+ memberRef: string;
2083
+ restricted: boolean;
2084
+ updatedAtMillis?: number;
2085
+ }
1925
2086
  export type ArkmeConversationMemberJoinAction = 'invite' | 'direct_add';
1926
2087
  export interface ArkmeConversationMemberJoinPerson {
1927
2088
  memberRef?: string;
@@ -2067,6 +2228,23 @@ export interface ArkmeRecordingCalendarMonth {
2067
2228
  }
2068
2229
  export type ArkmeRecordingProjectionKind = 'summary' | 'timeline';
2069
2230
  export type ArkmeRecordingToolContent = 'transcript' | ArkmeRecordingProjectionKind;
2231
+ export type ArkmeRecordingTranscriptSource = 'system' | 'doubao';
2232
+ export interface ArkmeRecordingSummaryModelRouteOption {
2233
+ routeKey: string;
2234
+ provider: string;
2235
+ modelKey: string;
2236
+ displayName: string;
2237
+ }
2238
+ /** Audio-owner model configuration; intentionally distinct from the Arko model catalog. */
2239
+ export interface ArkmeRecordingSummaryModelConfig {
2240
+ defaultRouteKey: string;
2241
+ effectiveRouteKey: string;
2242
+ personalRouteKey?: string;
2243
+ options: ArkmeRecordingSummaryModelRouteOption[];
2244
+ }
2245
+ export interface ArkmeRecordingSummaryModelRouteUpdate {
2246
+ effectiveRouteKey: string;
2247
+ }
2070
2248
  export interface ArkmeRecordingCursorPayload {
2071
2249
  version: 1;
2072
2250
  dateStamp: number;
@@ -2081,7 +2259,7 @@ export interface ArkmeRecordingTranscriptItem {
2081
2259
  sessionId: string;
2082
2260
  childId: string;
2083
2261
  asrItemIndex: number;
2084
- transcriptSource: ArkmeAiVideoTranscriptSource;
2262
+ transcriptSource: ArkmeRecordingTranscriptSource;
2085
2263
  startAtMillis: number;
2086
2264
  endAtMillis: number;
2087
2265
  speakerNumber: number;
@@ -2097,6 +2275,8 @@ export interface ArkmeRecordingTranscriptItem {
2097
2275
  export interface ArkmeRecordingWorkbenchItem {
2098
2276
  itemId: string;
2099
2277
  itemRef: string;
2278
+ transcriptSource: ArkmeRecordingTranscriptSource;
2279
+ sessionKey: string;
2100
2280
  startAtMillis: number;
2101
2281
  endAtMillis: number;
2102
2282
  speakerNumber: number;
@@ -2173,6 +2353,14 @@ export interface ArkmeRecordingDay {
2173
2353
  summary: ArkmeRecordingSection<ArkmeRecordingVersion>;
2174
2354
  timeline: ArkmeRecordingSection<ArkmeRecordingVersion>;
2175
2355
  }
2356
+ export interface ArkmeRecordingComparison {
2357
+ dateStamp: number;
2358
+ system: ArkmeRecordingTranscriptSection<ArkmeRecordingWorkbenchItem>;
2359
+ doubao: ArkmeRecordingTranscriptSection<ArkmeRecordingWorkbenchItem>;
2360
+ candidateCount: number;
2361
+ failedCount: number;
2362
+ silentCount: number;
2363
+ }
2176
2364
  export type ArkmeWechatMessageFilter = 'all' | 'image' | 'voice' | 'video' | 'emoji' | 'location' | 'location_share' | 'call' | 'chat_record' | 'reply';
2177
2365
  export type ArkmeWechatCallFilter = 'all' | 'audio' | 'video';
2178
2366
  export interface ArkmeWechatConversation {
@@ -2553,6 +2741,15 @@ export type ArkmeChatClientEvent = {
2553
2741
  source: ArkmeSourceItem;
2554
2742
  timelineItems: ArkmeTimelineItem[];
2555
2743
  }>;
2744
+ } | {
2745
+ type: 'timeline-changed';
2746
+ revision: number;
2747
+ sourceKey: string;
2748
+ timelineItemKey: string;
2749
+ changeKind: 'deleted' | 'recovered' | 'reedited' | 'extended';
2750
+ changeVersion: number;
2751
+ relationTerminal: boolean;
2752
+ throughSequence: number;
2556
2753
  } | {
2557
2754
  type: 'attention-summary';
2558
2755
  revision: number;
@@ -2586,9 +2783,12 @@ export type ArkmeChatClientEvent = {
2586
2783
  /** Account-bound conversation identity; raw Chat session and reader identities stay in Host memory. */
2587
2784
  sourceKey: string;
2588
2785
  throughSequence: number;
2786
+ } | {
2787
+ type: 'conversation-list-preference-invalidated';
2788
+ revision: number;
2589
2789
  };
2590
- export type ArkmePluginOperation = 'provider.capabilities' | 'provider.state' | 'chat.realtime.state' | 'auth.status' | 'auth.config' | 'auth.begin' | 'auth.poll' | 'auth.app.begin' | 'auth.app.poll' | 'auth.app.cancel' | 'auth.test.login' | 'auth.phone.send' | 'auth.phone.verify' | 'auth.logout' | 'user-ban.status' | 'user-ban.ban' | 'user-ban.unban' | 'openapi.mcp.status' | 'openapi.mcp.retry' | 'remote.getStatus' | 'remote.renameDesktop' | 'billing.quota' | 'billing.products' | 'billing.order.create' | 'billing.order.status' | 'contacts.search' | 'contacts.add' | 'chat.private.open-from-contact' | 'group.create' | 'bots.list' | 'bots.create' | 'bots.manage.profile' | 'bots.manage.update' | 'bots.manage.reveal-token' | 'bots.manage.delete' | 'bots.private-chat.notification.status' | 'bots.private-chat.notification.update' | 'bots.private-chat.directory' | 'bots.private-chat.open' | 'bots.private-chat.refresh' | 'bots.private-chat.send' | 'bots.private-chat.mark-read' | 'records.summary' | 'records.cache' | 'records.refresh' | 'records.search' | 'records.list' | 'records.create' | 'records.outbox' | 'records.retry' | 'calendar.buckets' | 'calendar.records' | 'user.profile' | 'user.profile.refresh' | 'settings.background-sound.get' | 'settings.background-sound.update' | 'user.arkme-id.check' | 'user.arkme-id.set' | 'image.read' | 'images.list' | 'world.feed' | 'world.mine' | 'world.user' | 'world.author-labels' | 'chat.world.private.open' | 'chat.official-author.profile' | 'chat.official-author.private.open' | 'world.voiceprint.availability' | 'world.voiceprint.playback.generate' | 'world.voiceprint.social-context' | 'world.voiceprint.invite' | 'world.interactions.list' | 'world.interactions.create-text' | 'world.image.read' | 'world.publish-text' | 'world.publish-file-assets' | 'arrangements.list' | 'arrangements.detail' | 'arrangements.mutate' | 'arrangements.reminder-enabled' | 'arrangements.reminders.summary' | 'arrangements.reminders.list' | 'arrangements.reminders.mark-read' | 'arrangements.reminders.mark-all-read' | 'arrangements.reminders.clear' | 'extensions.reviews.list' | 'extensions.reviews.create' | 'extensions.audit.check' | 'sources.list' | 'source.directory.policy.set' | 'source.timeline' | 'source.timeline-around' | 'source.members' | 'source.member-records' | 'source.mark-read' | 'source.read-receipts.summary-list' | 'source.read-receipts.detail' | 'source.message-report' | 'source.message-copy-link' | 'source.message-copy-link.resolve' | 'source.message-copy-link.extend' | 'source.message-extension.context' | 'source.message-extension.extend' | 'source.message-snapshot.detail' | 'source.message-location.set' | 'source.link-metadata.resolve' | 'source.forward-messages' | 'source.send-text' | 'related-recordings.eligibility' | 'related-recordings.page' | 'source.ai-polish.settings' | 'source.ai-polish.notices' | 'source.ai-polish.generate-rule' | 'source.ai-polish.prepare-enable' | 'source.ai-polish.confirm-enable' | 'source.ai-polish.prepare-disable' | 'source.ai-polish.confirm-disable' | 'source.ai-polish.retry' | 'group.members' | 'group.member-candidates' | 'group.invite-preview' | 'group.members.add' | 'group.bots' | 'group.bot.add' | 'group.settings' | 'group.notification.set' | 'group.rename' | 'group.leave' | 'group.dissolve' | 'group.report' | 'user.card' | 'chat.private.open' | 'chat.member.private.open' | 'source.send-rich' | 'favorite-stickers.list' | 'favorite-stickers.add' | 'favorite-stickers.send' | 'favorite-stickers.manage' | 'files.capabilities' | 'files.search' | 'files.stage-bytes' | 'files.send.discard' | 'files.send.reconcile' | 'files.local.list' | 'files.local.open' | 'files.local.remove' | 'files.send' | 'files.send.tasks' | 'files.send.retry' | 'files.receive' | 'source.long-article.detail' | 'source.long-article.update' | 'source.long-article.draft.get' | 'source.long-article.draft.put' | 'source.long-article.draft.delete' | 'calls.outgoing.intent.claim' | 'calls.outgoing.intent.resolve' | 'calls.outgoing.prepare' | 'calls.outgoing.heartbeat' | 'calls.outgoing.release' | 'calls.outgoing.diag' | 'calls.history.list' | 'calls.history.detail' | 'calls.history.summary.retry' | 'extensions.mine.list' | 'extensions.mine.publish' | 'extensions.catalog.list' | 'extensions.catalog.detail' | 'extensions.install.preview' | 'extensions.delete' | 'extensions.metadata.update' | 'extensions.share.rotate' | 'extensions.share.detail' | 'extensions.share.resolve' | 'extensions.installed-list' | 'extensions.quarantine.status' | 'extensions.quarantine.dismiss' | 'extensions.quarantine.reenable' | 'extensions.quarantine.health' | 'extensions.enabled-state' | 'extensions.persistent.client-state' | 'extensions.enabled.set' | 'extensions.preview.delete' | 'extensions.preview.reorder' | 'extensions.catalog.list' | 'extensions.classification.tree' | 'extensions.classification.items' | 'topic.hierarchy.move' | 'topic.rename' | 'topic.dissolve' | 'topic.dissolve.status' | 'topic.dissolve.active';
2591
- export type ArkmeHostOperation = ArkmePluginOperation | 'provider.instance' | 'link.metadata' | 'directory.list' | 'directory.contact.profile' | 'directory.contact.world' | 'directory.contact.open-chat' | 'directory.group.open-chat' | 'directory.bot.open-chat' | 'unmarked-speakers.options' | 'unmarked-speakers.retry-inference' | 'unmarked-speakers.segments' | 'unmarked-speakers.mark' | 'voiceprint.status' | 'voiceprint.grants' | 'voiceprint.people' | 'voiceprint.person' | 'voiceprint.person.voiceprints' | 'voiceprint.person.invite' | 'voiceprint.invite' | 'voiceprint.revoke' | 'voiceprint.restore' | 'dsh-beta-community.entry-state' | 'dsh-beta-community.join' | 'recordings.calendar' | 'recordings.day' | 'recordings.import.preflight' | 'recordings.import.list' | 'recordings.import.status' | 'recordings.import.retry' | 'recordings.import.cancel' | 'recordings.playback.open' | 'recordings.speaker.options' | 'recordings.speaker.assign-item' | 'search.records' | 'search.scene' | 'search.recordings' | 'search.history' | 'search.history.create' | 'ai-video.list' | 'files.assets' | 'topic.create' | 'topic.hierarchy.move' | 'topic.rename' | 'topic.dissolve' | 'topic.dissolve.status' | 'topic.dissolve.active' | 'arko.profile' | 'arko.session' | 'arko.new-session' | 'arko.models' | 'arko.model.activate' | 'arko.history' | 'arko.ask' | 'arko.run.status' | 'arko.cancel' | 'message-actions.copy-link' | 'message-actions.forward' | 'plugin.update.status' | 'plugin.update.check' | 'plugin.update.acknowledge' | 'plugin.update.install' | 'plugin.update.install-status' | 'source.interwoven-moments' | 'source.interwoven-detail' | 'source.shared-recording-detail' | 'source.related-quick-notes.from-message' | 'source.related-quick-notes.from-moment' | 'source.related-quick-note.detail' | 'extensions.catalog.list' | 'extensions.classification.tree' | 'extensions.classification.items' | 'extensions.catalog.detail' | 'extensions.audit.check' | 'extensions.my-list' | 'extensions.delete' | 'extensions.updates' | 'extensions.install.preview' | 'extensions.install.start' | 'extensions.install.status' | 'extensions.install.pause' | 'extensions.install.resume' | 'extensions.uninstall' | 'extensions.restart' | 'extensions.client.failure' | 'extensions.bundle.client-state' | 'extensions.persistent.invoke' | 'extensions.bundle.invoke';
2790
+ export type ArkmePluginOperation = 'provider.capabilities' | 'provider.state' | 'chat.realtime.state' | 'auth.status' | 'auth.config' | 'auth.begin' | 'auth.poll' | 'auth.app.begin' | 'auth.app.poll' | 'auth.app.cancel' | 'auth.test.login' | 'auth.phone.send' | 'auth.phone.verify' | 'auth.logout' | 'user-ban.status' | 'user-ban.ban' | 'user-ban.unban' | 'openapi.mcp.status' | 'openapi.mcp.retry' | 'team.list' | 'team.resolve' | 'team.members.list' | 'team.create' | 'team.join-by-jotmo-id' | 'remote.getStatus' | 'remote.renameDesktop' | 'billing.quota' | 'billing.products' | 'billing.order.create' | 'billing.order.status' | 'contacts.search' | 'contacts.add' | 'chat.private.open-from-contact' | 'group.create' | 'bots.list' | 'bots.create' | 'bots.manage.profile' | 'bots.manage.update' | 'bots.manage.reveal-token' | 'bots.manage.delete' | 'bots.private-chat.notification.status' | 'bots.private-chat.notification.update' | 'bots.private-chat.directory' | 'bots.private-chat.open' | 'bots.private-chat.refresh' | 'bots.private-chat.send' | 'bots.private-chat.mark-read' | 'records.summary' | 'records.cache' | 'records.refresh' | 'records.search' | 'records.list' | 'records.tags.list' | 'records.tags.query' | 'records.create' | 'records.outbox' | 'records.retry' | 'calendar.buckets' | 'calendar.records' | 'user.profile' | 'user.profile.refresh' | 'settings.background-sound.get' | 'settings.background-sound.update' | 'user.arkme-id.check' | 'user.arkme-id.set' | 'image.read' | 'images.list' | 'world.feed' | 'world.mine' | 'world.user' | 'world.author-labels' | 'chat.world.private.open' | 'chat.official-author.profile' | 'chat.official-author.private.open' | 'world.voiceprint.availability' | 'world.voiceprint.playback.generate' | 'world.voiceprint.social-context' | 'world.voiceprint.invite' | 'world.interactions.list' | 'world.interactions.create-text' | 'world.image.read' | 'world.publish-text' | 'world.publish-file-assets' | 'arrangements.list' | 'arrangements.detail' | 'arrangements.mutate' | 'arrangements.reminder-enabled' | 'arrangements.reminders.summary' | 'arrangements.reminders.list' | 'arrangements.reminders.mark-read' | 'arrangements.reminders.mark-all-read' | 'arrangements.reminders.clear' | 'extensions.reviews.list' | 'extensions.reviews.create' | 'extensions.audit.check' | 'sources.list' | 'conversation.directory.visibility.query' | 'conversation.directory.visibility.set' | 'source.directory.policy.set' | 'source.timeline' | 'source.timeline-around' | 'source.members' | 'source.member-records' | 'source.mark-read' | 'source.read-receipts.summary-list' | 'source.read-receipts.detail' | 'source.message-report' | 'source.message-withdraw' | 'source.message-copy-link' | 'source.message-copy-link.resolve' | 'source.message-copy-link.extend' | 'source.message-extension.context' | 'source.message-extension.extend' | 'source.message-snapshot.detail' | 'source.message-location.set' | 'source.link-metadata.resolve' | 'source.forward-messages' | 'source.send-text' | 'related-recordings.eligibility' | 'related-recordings.page' | 'source.ai-polish.settings' | 'source.ai-polish.notices' | 'source.ai-polish.generate-rule' | 'source.ai-polish.prepare-enable' | 'source.ai-polish.confirm-enable' | 'source.ai-polish.prepare-disable' | 'source.ai-polish.confirm-disable' | 'source.ai-polish.retry' | 'group.members' | 'group.member-candidates' | 'group.invite-preview' | 'group.members.add' | 'group.member-remove' | 'group.join-restrictions' | 'group.join-restriction.set' | 'group.bots' | 'group.bot.add' | 'group.settings' | 'group.notification.set' | 'group.rename' | 'group.leave' | 'group.dissolve' | 'group.report' | 'user.card' | 'chat.private.open' | 'chat.member.private.open' | 'source.send-rich' | 'favorite-stickers.list' | 'favorite-stickers.add' | 'favorite-stickers.send' | 'favorite-stickers.manage' | 'files.capabilities' | 'files.search' | 'files.stage-bytes' | 'files.send.discard' | 'files.send.reconcile' | 'files.local.list' | 'files.local.open' | 'files.local.remove' | 'files.send' | 'files.send.tasks' | 'files.send.retry' | 'files.receive' | 'source.long-article.detail' | 'source.long-article.update' | 'source.long-article.draft.get' | 'source.long-article.draft.put' | 'source.long-article.draft.delete' | 'source.record-reedit.detail' | 'source.record-reedit.draft.put' | 'source.record-reedit.draft.delete' | 'source.record-reedit.update' | 'calls.outgoing.intent.claim' | 'calls.outgoing.intent.resolve' | 'calls.outgoing.prepare' | 'calls.outgoing.heartbeat' | 'calls.outgoing.release' | 'calls.outgoing.diag' | 'calls.history.list' | 'calls.history.detail' | 'calls.history.summary.retry' | 'extensions.mine.list' | 'extensions.mine.publish' | 'extensions.catalog.list' | 'extensions.catalog.detail' | 'extensions.install.preview' | 'extensions.delete' | 'extensions.metadata.update' | 'extensions.share.rotate' | 'extensions.share.detail' | 'extensions.share.resolve' | 'extensions.installed-list' | 'extensions.quarantine.status' | 'extensions.quarantine.dismiss' | 'extensions.quarantine.reenable' | 'extensions.quarantine.health' | 'extensions.enabled-state' | 'extensions.persistent.client-state' | 'extensions.enabled.set' | 'extensions.preview.delete' | 'extensions.preview.reorder' | 'extensions.catalog.list' | 'extensions.classification.tree' | 'extensions.classification.items' | 'topic.hierarchy.move' | 'topic.rename' | 'topic.dissolve' | 'topic.dissolve.status' | 'topic.dissolve.active';
2791
+ export type ArkmeHostOperation = ArkmePluginOperation | 'provider.instance' | 'link.metadata' | 'directory.list' | 'directory.contact.profile' | 'directory.contact.world' | 'directory.contact.open-chat' | 'directory.group.open-chat' | 'directory.bot.open-chat' | 'unmarked-speakers.options' | 'unmarked-speakers.retry-inference' | 'unmarked-speakers.segments' | 'unmarked-speakers.mark' | 'voiceprint.status' | 'voiceprint.grants' | 'voiceprint.people' | 'voiceprint.person' | 'voiceprint.person.voiceprints' | 'voiceprint.person.invite' | 'voiceprint.invite' | 'voiceprint.revoke' | 'voiceprint.restore' | 'dsh-beta-community.entry-state' | 'dsh-beta-community.join' | 'recordings.calendar' | 'recordings.day' | 'recordings.compare' | 'recordings.compare.start' | 'recordings.forward.capabilities' | 'recordings.forward' | 'recordings.summary-model-config' | 'recordings.summary-model-config.set' | 'recordings.generate' | 'recordings.import.preflight' | 'recordings.import.list' | 'recordings.import.history' | 'recordings.import.status' | 'recordings.import.retry' | 'recordings.import.cancel' | 'recordings.import.session.update-start' | 'recordings.import.session.update-ownership' | 'recordings.import.session.delete' | 'recordings.playback.open' | 'recordings.speaker.options' | 'recordings.speaker.assign-item' | 'search.records' | 'search.scene' | 'search.recordings' | 'search.history' | 'search.history.create' | 'ai-video.list' | 'files.assets' | 'topic.create' | 'topic.hierarchy.move' | 'topic.rename' | 'topic.dissolve' | 'topic.dissolve.status' | 'topic.dissolve.active' | 'arko.profile' | 'arko.session' | 'arko.new-session' | 'arko.models' | 'arko.model.activate' | 'arko.history' | 'arko.ask' | 'arko.run.status' | 'arko.cancel' | 'message-actions.copy-link' | 'message-actions.forward' | 'plugin.update.status' | 'plugin.update.check' | 'plugin.update.acknowledge' | 'plugin.update.install' | 'plugin.update.install-status' | 'source.interwoven-moments' | 'source.interwoven-detail' | 'source.shared-recording-detail' | 'source.related-quick-notes.from-message' | 'source.related-quick-notes.from-moment' | 'source.related-quick-note.detail' | 'extensions.catalog.list' | 'extensions.classification.tree' | 'extensions.classification.items' | 'extensions.catalog.detail' | 'extensions.audit.check' | 'extensions.my-list' | 'extensions.delete' | 'extensions.updates' | 'extensions.install.preview' | 'extensions.install.start' | 'extensions.install.status' | 'extensions.install.pause' | 'extensions.install.resume' | 'extensions.uninstall' | 'extensions.restart' | 'extensions.client.failure' | 'extensions.bundle.client-state' | 'extensions.persistent.invoke' | 'extensions.bundle.invoke';
2592
2792
  export interface ArkmePluginRequest {
2593
2793
  operation: ArkmeHostOperation;
2594
2794
  params?: Record<string, unknown>;