@epam/ai-dial-chat-hooks 1.3.0-dev.96 → 1.3.0-rc.0

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 (545) hide show
  1. package/api-error/api-error.d.ts +2 -0
  2. package/api-error/api-error.d.ts.map +1 -1
  3. package/api-error/api-error.js +31 -23
  4. package/api-transport/create-unauthorized-middleware.js +4 -1
  5. package/attachment/attach-constraints.d.ts +31 -0
  6. package/attachment/attach-constraints.d.ts.map +1 -0
  7. package/attachment/attach-constraints.js +18 -0
  8. package/attachment/useAttachmentAction/useAttachmentAction.d.ts +1 -1
  9. package/attachment/useAttachmentAction/useAttachmentAction.d.ts.map +1 -1
  10. package/attachment/useAttachmentAction/useAttachmentAction.js +25 -28
  11. package/attachments.js +2 -1
  12. package/catalog/application-credentials.d.ts +15 -0
  13. package/catalog/application-credentials.d.ts.map +1 -0
  14. package/catalog/application-credentials.js +28 -0
  15. package/catalog/catalog-derivations.d.ts +5 -3
  16. package/catalog/catalog-derivations.d.ts.map +1 -1
  17. package/catalog/catalog-derivations.js +13 -6
  18. package/catalog/catalog-entity-kind.d.ts +31 -0
  19. package/catalog/catalog-entity-kind.d.ts.map +1 -0
  20. package/catalog/catalog-entity-kind.js +21 -0
  21. package/catalog/catalog-preferences.d.ts +8 -0
  22. package/catalog/catalog-preferences.d.ts.map +1 -0
  23. package/catalog/catalog-preferences.js +5 -0
  24. package/catalog/create-publish-api.d.ts +3 -1
  25. package/catalog/create-publish-api.d.ts.map +1 -1
  26. package/catalog/create-publish-api.js +4 -0
  27. package/catalog/deployment-id.d.ts +13 -4
  28. package/catalog/deployment-id.d.ts.map +1 -1
  29. package/catalog/deployment-id.js +17 -3
  30. package/catalog/entity-details.d.ts +2 -0
  31. package/catalog/entity-details.d.ts.map +1 -1
  32. package/catalog/favorite-entity-type.d.ts +5 -0
  33. package/catalog/favorite-entity-type.d.ts.map +1 -0
  34. package/catalog/favorite-entity-type.js +10 -0
  35. package/catalog/map-deployment-limits-to-input.d.ts +4 -3
  36. package/catalog/map-deployment-limits-to-input.d.ts.map +1 -1
  37. package/catalog/map-deployment-limits-to-input.js +3 -4
  38. package/catalog/map-deployment-to-catalog-item.d.ts +12 -1
  39. package/catalog/map-deployment-to-catalog-item.d.ts.map +1 -1
  40. package/catalog/map-deployment-to-catalog-item.js +22 -15
  41. package/catalog/map-entity-details-to-catalog.d.ts.map +1 -1
  42. package/catalog/map-entity-details-to-catalog.js +69 -24
  43. package/catalog/map-skill-to-catalog-item.d.ts +4 -5
  44. package/catalog/map-skill-to-catalog-item.d.ts.map +1 -1
  45. package/catalog/map-skill-to-catalog-item.js +29 -38
  46. package/catalog/publish.d.ts +1 -1
  47. package/catalog/publish.d.ts.map +1 -1
  48. package/catalog/resource-folder.d.ts +8 -0
  49. package/catalog/resource-folder.d.ts.map +1 -0
  50. package/catalog/resource-folder.js +13 -0
  51. package/catalog/resource-name-conflict.d.ts +22 -0
  52. package/catalog/resource-name-conflict.d.ts.map +1 -0
  53. package/catalog/resource-name-conflict.js +32 -0
  54. package/catalog/resource-save-adapter.d.ts +36 -0
  55. package/catalog/resource-save-adapter.d.ts.map +1 -0
  56. package/catalog/resource-save-adapter.js +4 -0
  57. package/catalog/resource-save-adapters.d.ts +93 -0
  58. package/catalog/resource-save-adapters.d.ts.map +1 -0
  59. package/catalog/resource-save-adapters.js +116 -0
  60. package/catalog/resource-save.d.ts +76 -0
  61. package/catalog/resource-save.d.ts.map +1 -0
  62. package/catalog/resource-save.js +52 -0
  63. package/catalog/unpublishable-folders.d.ts +21 -0
  64. package/catalog/unpublishable-folders.d.ts.map +1 -0
  65. package/catalog/unpublishable-folders.js +21 -0
  66. package/catalog/usage-limit-rows.d.ts +14 -0
  67. package/catalog/usage-limit-rows.d.ts.map +1 -0
  68. package/catalog/usage-limit-rows.js +19 -0
  69. package/catalog/use-publish-history.d.ts +19 -0
  70. package/catalog/use-publish-history.d.ts.map +1 -0
  71. package/catalog/use-publish-history.js +25 -0
  72. package/catalog/useApplicationCredentialActions/useApplicationCredentialActions.d.ts +57 -0
  73. package/catalog/useApplicationCredentialActions/useApplicationCredentialActions.d.ts.map +1 -0
  74. package/catalog/useApplicationCredentialActions/useApplicationCredentialActions.js +67 -0
  75. package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.d.ts +15 -5
  76. package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.d.ts.map +1 -1
  77. package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.js +71 -89
  78. package/catalog/useCatalogItemDelete/useCatalogItemDelete.d.ts +41 -0
  79. package/catalog/useCatalogItemDelete/useCatalogItemDelete.d.ts.map +1 -0
  80. package/catalog/useCatalogItemDelete/useCatalogItemDelete.js +37 -0
  81. package/catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.d.ts.map +1 -1
  82. package/catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js +72 -77
  83. package/catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js +1 -1
  84. package/catalog/usePublishFolders/usePublishFolders.d.ts +8 -0
  85. package/catalog/usePublishFolders/usePublishFolders.d.ts.map +1 -1
  86. package/catalog/usePublishFolders/usePublishFolders.js +32 -29
  87. package/catalog/useResourceFolders/useResourceFolders.d.ts +33 -0
  88. package/catalog/useResourceFolders/useResourceFolders.d.ts.map +1 -0
  89. package/catalog/useResourceFolders/useResourceFolders.js +58 -0
  90. package/catalog/useResourceSavePanel/useResourceSavePanel.d.ts +64 -0
  91. package/catalog/useResourceSavePanel/useResourceSavePanel.d.ts.map +1 -0
  92. package/catalog/useResourceSavePanel/useResourceSavePanel.js +173 -0
  93. package/catalog/useSkillItemDetails.js +3 -3
  94. package/catalog/useUnpublishConfirmation/useUnpublishConfirmation.d.ts +43 -0
  95. package/catalog/useUnpublishConfirmation/useUnpublishConfirmation.d.ts.map +1 -0
  96. package/catalog/useUnpublishConfirmation/useUnpublishConfirmation.js +46 -0
  97. package/catalog/useUnpublishableFolders/useUnpublishableFolders.d.ts +22 -0
  98. package/catalog/useUnpublishableFolders/useUnpublishableFolders.d.ts.map +1 -0
  99. package/catalog/useUnpublishableFolders/useUnpublishableFolders.js +53 -0
  100. package/catalog.js +41 -23
  101. package/conversation/conversation-data-source.d.ts +47 -0
  102. package/conversation/conversation-data-source.d.ts.map +1 -0
  103. package/conversation/conversation-data-source.js +11 -0
  104. package/conversation/conversation-draft/conversation-draft-store.js +40 -40
  105. package/conversation/conversation-list.d.ts +6 -0
  106. package/conversation/conversation-list.d.ts.map +1 -0
  107. package/conversation/conversation-list.js +5 -0
  108. package/conversation/conversation-title-stream.d.ts +33 -0
  109. package/conversation/conversation-title-stream.d.ts.map +1 -0
  110. package/conversation/conversation-title-stream.js +103 -0
  111. package/conversation/conversation-transfer/attachment-refs.d.ts +10 -2
  112. package/conversation/conversation-transfer/attachment-refs.d.ts.map +1 -1
  113. package/conversation/conversation-transfer/attachment-refs.js +31 -9
  114. package/conversation/conversation-transfer/export-conversation.d.ts +5 -1
  115. package/conversation/conversation-transfer/export-conversation.d.ts.map +1 -1
  116. package/conversation/conversation-transfer/export-conversation.js +19 -18
  117. package/conversation/conversation-transfer/import-conversation.d.ts +11 -6
  118. package/conversation/conversation-transfer/import-conversation.d.ts.map +1 -1
  119. package/conversation/conversation-transfer/import-conversation.js +65 -69
  120. package/conversation/conversation-transfer/progress.js +1 -1
  121. package/conversation/conversation-transfer/zip-export.js +1 -7
  122. package/conversation/conversation-transfer/zip-import.js +1 -1
  123. package/conversation/create-chat-stream-api.d.ts +24 -3
  124. package/conversation/create-chat-stream-api.d.ts.map +1 -1
  125. package/conversation/create-chat-stream-api.js +67 -56
  126. package/conversation/generation-registry.d.ts +30 -0
  127. package/conversation/generation-registry.d.ts.map +1 -0
  128. package/conversation/generation-registry.js +33 -0
  129. package/conversation/message-utils.d.ts +6 -0
  130. package/conversation/message-utils.d.ts.map +1 -1
  131. package/conversation/message-utils.js +14 -10
  132. package/conversation/scheduled-task-grouping.d.ts +53 -0
  133. package/conversation/scheduled-task-grouping.d.ts.map +1 -0
  134. package/conversation/scheduled-task-grouping.js +45 -0
  135. package/conversation/useActiveConversationSync/useActiveConversationSync.d.ts +4 -2
  136. package/conversation/useActiveConversationSync/useActiveConversationSync.d.ts.map +1 -1
  137. package/conversation/useActiveConversationSync/useActiveConversationSync.js +19 -12
  138. package/conversation/useAttachmentUpload/useAttachmentUpload.d.ts.map +1 -1
  139. package/conversation/useAttachmentUpload/useAttachmentUpload.js +4 -1
  140. package/conversation/useConversationComposerDraft/useConversationComposerDraft.js +1 -5
  141. package/conversation/useConversationDiscovery/useConversationDiscovery.d.ts +22 -0
  142. package/conversation/useConversationDiscovery/useConversationDiscovery.d.ts.map +1 -0
  143. package/conversation/useConversationDiscovery/useConversationDiscovery.js +60 -0
  144. package/conversation/useConversationExport/useConversationExport.d.ts.map +1 -1
  145. package/conversation/useConversationExport/useConversationExport.js +113 -122
  146. package/conversation/useConversationHandlers/message-utils.js +2 -2
  147. package/conversation/useConversationHandlers/useConversationHandlers.js +41 -41
  148. package/conversation/useConversationImport/useConversationImport.js +24 -24
  149. package/conversation/useConversationPanelItems/useConversationPanelItems.d.ts +18 -5
  150. package/conversation/useConversationPanelItems/useConversationPanelItems.d.ts.map +1 -1
  151. package/conversation/useConversationPanelItems/useConversationPanelItems.js +34 -30
  152. package/conversation/useConversationScroll/useConversationScroll.d.ts.map +1 -1
  153. package/conversation/useConversationScroll/useConversationScroll.js +69 -72
  154. package/conversation/useConversationStream/conversation-path.js +2 -2
  155. package/conversation/useConversationStream/conversation-stream.types.d.ts +142 -0
  156. package/conversation/useConversationStream/conversation-stream.types.d.ts.map +1 -0
  157. package/conversation/useConversationStream/frame-scheduler.js +17 -17
  158. package/conversation/useConversationStream/generation-resume.d.ts +24 -2
  159. package/conversation/useConversationStream/generation-resume.d.ts.map +1 -1
  160. package/conversation/useConversationStream/generation-resume.js +110 -121
  161. package/conversation/useConversationStream/stream-errors.d.ts +10 -0
  162. package/conversation/useConversationStream/stream-errors.d.ts.map +1 -0
  163. package/conversation/useConversationStream/stream-errors.js +10 -0
  164. package/conversation/useConversationStream/stream-session.d.ts +51 -0
  165. package/conversation/useConversationStream/stream-session.d.ts.map +1 -0
  166. package/conversation/useConversationStream/stream-session.js +179 -0
  167. package/conversation/useConversationStream/useConversationReloadErrors.d.ts +25 -0
  168. package/conversation/useConversationStream/useConversationReloadErrors.d.ts.map +1 -0
  169. package/conversation/useConversationStream/useConversationReloadErrors.js +38 -0
  170. package/conversation/useConversationStream/useConversationStream.d.ts +3 -136
  171. package/conversation/useConversationStream/useConversationStream.d.ts.map +1 -1
  172. package/conversation/useConversationStream/useConversationStream.js +141 -325
  173. package/conversation/useConversationStream/useStopGeneration.d.ts +29 -0
  174. package/conversation/useConversationStream/useStopGeneration.d.ts.map +1 -0
  175. package/conversation/useConversationStream/useStopGeneration.js +48 -0
  176. package/conversation/useConversationStream/useStreamPathState.d.ts +39 -0
  177. package/conversation/useConversationStream/useStreamPathState.d.ts.map +1 -0
  178. package/conversation/useConversationStream/useStreamPathState.js +55 -0
  179. package/conversation/useConversationTitleEnrichmentController.d.ts +64 -0
  180. package/conversation/useConversationTitleEnrichmentController.d.ts.map +1 -0
  181. package/conversation/useConversationTitleEnrichmentController.js +155 -0
  182. package/conversation/useDeploymentChangeTracking.d.ts +14 -0
  183. package/conversation/useDeploymentChangeTracking.d.ts.map +1 -0
  184. package/conversation/useDeploymentChangeTracking.js +23 -0
  185. package/conversation/useEntityPreselection/useEntityPreselection.d.ts +108 -0
  186. package/conversation/useEntityPreselection/useEntityPreselection.d.ts.map +1 -0
  187. package/conversation/useEntityPreselection/useEntityPreselection.js +78 -0
  188. package/conversation/useMessageSelectionReply/useMessageSelectionReply.js +4 -10
  189. package/conversation/useTranscribeAudio/useTranscribeAudio.d.ts +8 -1
  190. package/conversation/useTranscribeAudio/useTranscribeAudio.d.ts.map +1 -1
  191. package/conversation/useTranscribeAudio/useTranscribeAudio.js +23 -17
  192. package/conversation/useVisibleConversationIdsReporter/useVisibleConversationIdsReporter.d.ts +16 -0
  193. package/conversation/useVisibleConversationIdsReporter/useVisibleConversationIdsReporter.d.ts.map +1 -0
  194. package/conversation/useVisibleConversationIdsReporter/useVisibleConversationIdsReporter.js +17 -0
  195. package/conversation-overlay.js +1 -2
  196. package/conversation-sources/stage-citations.d.ts +9 -0
  197. package/conversation-sources/stage-citations.d.ts.map +1 -0
  198. package/conversation-sources/stage-citations.js +8 -0
  199. package/conversation-sources/useConversationAnnotationPool/useConversationAnnotationPool.d.ts +4 -0
  200. package/conversation-sources/useConversationAnnotationPool/useConversationAnnotationPool.d.ts.map +1 -0
  201. package/conversation-sources/useConversationAnnotationPool/useConversationAnnotationPool.js +5 -0
  202. package/conversation-sources.js +3 -1
  203. package/conversation.js +45 -35
  204. package/entry-points/attachments.d.ts +1 -0
  205. package/entry-points/attachments.d.ts.map +1 -1
  206. package/entry-points/catalog.d.ts +17 -0
  207. package/entry-points/catalog.d.ts.map +1 -1
  208. package/entry-points/conversation-sources.d.ts +2 -0
  209. package/entry-points/conversation-sources.d.ts.map +1 -1
  210. package/entry-points/conversation.d.ts +10 -0
  211. package/entry-points/conversation.d.ts.map +1 -1
  212. package/entry-points/external-services.d.ts +6 -0
  213. package/entry-points/external-services.d.ts.map +1 -0
  214. package/entry-points/file-manager-canvas.d.ts +1 -0
  215. package/entry-points/file-manager-canvas.d.ts.map +1 -1
  216. package/entry-points/file-manager.d.ts +2 -0
  217. package/entry-points/file-manager.d.ts.map +1 -1
  218. package/entry-points/oauth.d.ts +1 -0
  219. package/entry-points/oauth.d.ts.map +1 -1
  220. package/entry-points/offline-credentials.d.ts +2 -0
  221. package/entry-points/offline-credentials.d.ts.map +1 -1
  222. package/entry-points/project.d.ts +20 -0
  223. package/entry-points/project.d.ts.map +1 -0
  224. package/entry-points/scheduled-tasks.d.ts +6 -0
  225. package/entry-points/scheduled-tasks.d.ts.map +1 -1
  226. package/entry-points/sharing.d.ts +4 -0
  227. package/entry-points/sharing.d.ts.map +1 -1
  228. package/entry-points/skill-editor.d.ts +2 -0
  229. package/entry-points/skill-editor.d.ts.map +1 -1
  230. package/entry-points/skills-state.d.ts +1 -0
  231. package/entry-points/skills-state.d.ts.map +1 -1
  232. package/entry-points/usage-limits.d.ts +1 -0
  233. package/entry-points/usage-limits.d.ts.map +1 -1
  234. package/entry-points/utils.d.ts +6 -0
  235. package/entry-points/utils.d.ts.map +1 -1
  236. package/entry-points/viewport-layout.d.ts +1 -0
  237. package/entry-points/viewport-layout.d.ts.map +1 -1
  238. package/external-services/useExternalServiceLogin.d.ts +99 -0
  239. package/external-services/useExternalServiceLogin.d.ts.map +1 -0
  240. package/external-services/useExternalServiceLogin.js +93 -0
  241. package/external-services.d.ts +2 -0
  242. package/external-services.js +5 -0
  243. package/file-manager-canvas.js +3 -2
  244. package/file-manager.js +32 -30
  245. package/files/attachment-canvas.d.ts +12 -0
  246. package/files/attachment-canvas.d.ts.map +1 -1
  247. package/files/attachment-canvas.js +18 -10
  248. package/files/attachment-dto-to-display.d.ts.map +1 -1
  249. package/files/attachment-dto-to-display.js +13 -12
  250. package/files/attachment-types.js +1 -1
  251. package/files/browser-download.d.ts +9 -0
  252. package/files/browser-download.d.ts.map +1 -0
  253. package/files/browser-download.js +23 -0
  254. package/files/create-files-api.d.ts +3 -4
  255. package/files/create-files-api.d.ts.map +1 -1
  256. package/files/create-files-api.js +1 -1
  257. package/files/create-upload-file-with-progress.d.ts +21 -1
  258. package/files/create-upload-file-with-progress.d.ts.map +1 -1
  259. package/files/create-upload-file-with-progress.js +50 -34
  260. package/files/dial-file-manager-copy-move.util.d.ts.map +1 -1
  261. package/files/dial-file-manager-copy-move.util.js +28 -28
  262. package/files/dial-file-manager-mapping.util.d.ts +6 -2
  263. package/files/dial-file-manager-mapping.util.d.ts.map +1 -1
  264. package/files/dial-file-manager-mapping.util.js +85 -72
  265. package/files/dial-file-manager.types.d.ts +15 -5
  266. package/files/dial-file-manager.types.d.ts.map +1 -1
  267. package/files/dial-file-to-attachment.js +3 -3
  268. package/files/dial-file.d.ts +19 -0
  269. package/files/dial-file.d.ts.map +1 -1
  270. package/files/dial-file.js +20 -12
  271. package/files/dial-files-api.d.ts +2 -2
  272. package/files/dial-files-api.d.ts.map +1 -1
  273. package/files/download-progress.d.ts +33 -0
  274. package/files/download-progress.d.ts.map +1 -0
  275. package/files/download-progress.js +28 -0
  276. package/files/source-content.js +1 -1
  277. package/files/useDialFileListing/useDialFileListing.js +51 -66
  278. package/files/useDialFileManager/useDialFileManager.d.ts.map +1 -1
  279. package/files/useDialFileManager/useDialFileManager.js +5 -2
  280. package/files/useDialFileManagerSections/useDialFileManagerSections.d.ts.map +1 -1
  281. package/files/useDialFileManagerSections/useDialFileManagerSections.js +59 -68
  282. package/files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js +1 -1
  283. package/files/useDialFileMetadata/useDialFileMetadata.js +3 -3
  284. package/files/useDialFileMutations/useDialFileMutations.d.ts +9 -0
  285. package/files/useDialFileMutations/useDialFileMutations.d.ts.map +1 -1
  286. package/files/useDialFileMutations/useDialFileMutations.js +232 -159
  287. package/files/useDialFilePreview/useDialFilePreview.d.ts +33 -0
  288. package/files/useDialFilePreview/useDialFilePreview.d.ts.map +1 -0
  289. package/files/useDialFilePreview/useDialFilePreview.js +45 -0
  290. package/files/useDialFileUploadBatch/useDialFileUploadBatch.d.ts.map +1 -1
  291. package/files/useDialFileUploadBatch/useDialFileUploadBatch.js +114 -103
  292. package/files/useFileAttachmentModalState/useFileAttachmentModalState.d.ts +25 -0
  293. package/files/useFileAttachmentModalState/useFileAttachmentModalState.d.ts.map +1 -0
  294. package/files/useFileAttachmentModalState/useFileAttachmentModalState.js +19 -0
  295. package/files/useFileAttachmentPicker/useFileAttachmentPicker.js +2 -2
  296. package/files/useUnshareConfirmationState/useUnshareConfirmationState.d.ts +23 -0
  297. package/files/useUnshareConfirmationState/useUnshareConfirmationState.d.ts.map +1 -0
  298. package/files/useUnshareConfirmationState/useUnshareConfirmationState.js +18 -0
  299. package/index.d.ts +81 -0
  300. package/index.d.ts.map +1 -1
  301. package/index.js +244 -163
  302. package/mcp-apps/mcp-apps-api-client.d.ts.map +1 -1
  303. package/mcp-apps/mcp-apps-api-client.js +18 -17
  304. package/mcp-apps/useMcpAppHostContext/useMcpAppHostContext.d.ts +3 -2
  305. package/mcp-apps/useMcpAppHostContext/useMcpAppHostContext.d.ts.map +1 -1
  306. package/mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js +28 -10
  307. package/mcp-apps/useMcpAppTools/useMcpAppTools.d.ts.map +1 -1
  308. package/mcp-apps/useMcpAppTools/useMcpAppTools.js +45 -45
  309. package/oauth/authorize-url.d.ts +7 -1
  310. package/oauth/authorize-url.d.ts.map +1 -1
  311. package/oauth/authorize-url.js +14 -4
  312. package/oauth/callback-exchange.d.ts +49 -0
  313. package/oauth/callback-exchange.d.ts.map +1 -0
  314. package/oauth/callback-exchange.js +29 -0
  315. package/oauth/handshake.js +3 -10
  316. package/oauth/models.d.ts +25 -0
  317. package/oauth/models.d.ts.map +1 -1
  318. package/oauth/toolset-id.d.ts +7 -0
  319. package/oauth/toolset-id.d.ts.map +1 -1
  320. package/oauth/toolset-id.js +9 -2
  321. package/oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js +2 -5
  322. package/oauth/useToolsetLogin/useToolsetLogin.d.ts +7 -1
  323. package/oauth/useToolsetLogin/useToolsetLogin.d.ts.map +1 -1
  324. package/oauth/useToolsetLogin/useToolsetLogin.js +51 -42
  325. package/oauth.js +9 -8
  326. package/offline-credentials/map-offline-credentials-response.d.ts +5 -2
  327. package/offline-credentials/map-offline-credentials-response.d.ts.map +1 -1
  328. package/offline-credentials/map-offline-credentials-response.js +9 -7
  329. package/offline-credentials/scheduled-tasks-login-banner.d.ts +31 -0
  330. package/offline-credentials/scheduled-tasks-login-banner.d.ts.map +1 -0
  331. package/offline-credentials/scheduled-tasks-login-banner.js +17 -0
  332. package/offline-credentials/useOfflineCredentialsGate/useOfflineCredentialsGate.d.ts +5 -1
  333. package/offline-credentials/useOfflineCredentialsGate/useOfflineCredentialsGate.d.ts.map +1 -1
  334. package/offline-credentials/useOfflineCredentialsGate/useOfflineCredentialsGate.js +25 -22
  335. package/offline-credentials/useOfflineCredentialsLogin/useOfflineCredentialsLogin.js +13 -13
  336. package/offline-credentials.js +6 -4
  337. package/package.json +36 -26
  338. package/project/create-project-chat.d.ts +34 -0
  339. package/project/create-project-chat.d.ts.map +1 -0
  340. package/project/create-project-chat.js +27 -0
  341. package/project/project-conversation-data-source.d.ts +36 -0
  342. package/project/project-conversation-data-source.d.ts.map +1 -0
  343. package/project/project-conversation-data-source.js +67 -0
  344. package/project/project-events.d.ts +14 -0
  345. package/project/project-events.d.ts.map +1 -0
  346. package/project/project-events.js +25 -0
  347. package/project/project-file-preview.d.ts +32 -0
  348. package/project/project-file-preview.d.ts.map +1 -0
  349. package/project/project-file-preview.js +25 -0
  350. package/project/project-form-errors.d.ts +23 -0
  351. package/project/project-form-errors.d.ts.map +1 -0
  352. package/project/project-form-errors.js +46 -0
  353. package/project/project-limits.d.ts +17 -0
  354. package/project/project-limits.d.ts.map +1 -0
  355. package/project/project-limits.js +11 -0
  356. package/project/project-mapping.d.ts +16 -0
  357. package/project/project-mapping.d.ts.map +1 -0
  358. package/project/project-mapping.js +43 -0
  359. package/project/project-refresh.d.ts +12 -0
  360. package/project/project-refresh.d.ts.map +1 -0
  361. package/project/project-refresh.js +6 -0
  362. package/project/project-viewed-marks.d.ts +9 -0
  363. package/project/project-viewed-marks.d.ts.map +1 -0
  364. package/project/project-viewed-marks.js +8 -0
  365. package/project/project-watch-stream.d.ts +26 -0
  366. package/project/project-watch-stream.d.ts.map +1 -0
  367. package/project/project-watch-stream.js +39 -0
  368. package/project/projects-api-client.d.ts +179 -0
  369. package/project/projects-api-client.d.ts.map +1 -0
  370. package/project/projects-api-client.js +90 -0
  371. package/project/use-pinned-project-chats.d.ts +58 -0
  372. package/project/use-pinned-project-chats.d.ts.map +1 -0
  373. package/project/use-pinned-project-chats.js +269 -0
  374. package/project/use-project-actions.d.ts +53 -0
  375. package/project/use-project-actions.d.ts.map +1 -0
  376. package/project/use-project-actions.js +92 -0
  377. package/project/use-project-artifacts.d.ts +24 -0
  378. package/project/use-project-artifacts.d.ts.map +1 -0
  379. package/project/use-project-artifacts.js +78 -0
  380. package/project/use-project-conversations.d.ts +32 -0
  381. package/project/use-project-conversations.d.ts.map +1 -0
  382. package/project/use-project-conversations.js +200 -0
  383. package/project/use-project-draft.d.ts +46 -0
  384. package/project/use-project-draft.d.ts.map +1 -0
  385. package/project/use-project-draft.js +54 -0
  386. package/project/use-project-file-preview.d.ts +47 -0
  387. package/project/use-project-file-preview.d.ts.map +1 -0
  388. package/project/use-project-file-preview.js +50 -0
  389. package/project/use-project-submit.d.ts +49 -0
  390. package/project/use-project-submit.d.ts.map +1 -0
  391. package/project/use-project-submit.js +73 -0
  392. package/project/use-project-watch.d.ts +24 -0
  393. package/project/use-project-watch.d.ts.map +1 -0
  394. package/project/use-project-watch.js +41 -0
  395. package/project/use-project.d.ts +23 -0
  396. package/project/use-project.d.ts.map +1 -0
  397. package/project/use-project.js +73 -0
  398. package/project/use-projects.d.ts +27 -0
  399. package/project/use-projects.d.ts.map +1 -0
  400. package/project/use-projects.js +92 -0
  401. package/project.d.ts +2 -0
  402. package/project.js +20 -0
  403. package/prompt/prompt.d.ts +11 -0
  404. package/prompt/prompt.d.ts.map +1 -1
  405. package/prompt/prompt.js +7 -3
  406. package/scheduled-task/active-scheduled-task.d.ts +58 -0
  407. package/scheduled-task/active-scheduled-task.d.ts.map +1 -0
  408. package/scheduled-task/active-scheduled-task.js +18 -0
  409. package/scheduled-task/scheduled-task-description.d.ts +2 -0
  410. package/scheduled-task/scheduled-task-description.d.ts.map +1 -1
  411. package/scheduled-task/scheduled-task-description.js +33 -24
  412. package/scheduled-task/scheduled-task-display.d.ts +106 -0
  413. package/scheduled-task/scheduled-task-display.d.ts.map +1 -0
  414. package/scheduled-task/scheduled-task-display.js +69 -0
  415. package/scheduled-task/scheduled-task-next-occurrence.d.ts +9 -0
  416. package/scheduled-task/scheduled-task-next-occurrence.d.ts.map +1 -0
  417. package/scheduled-task/scheduled-task-next-occurrence.js +20 -0
  418. package/scheduled-task/scheduled-task-preparation.d.ts +1 -1
  419. package/scheduled-task/scheduled-task-trigger.d.ts.map +1 -1
  420. package/scheduled-task/scheduled-task-trigger.js +75 -48
  421. package/scheduled-task/use-scheduled-task-runs.js +19 -31
  422. package/scheduled-task/use-scheduled-tasks.d.ts +2 -2
  423. package/scheduled-task/use-scheduled-tasks.js +1 -1
  424. package/scheduled-task/useActiveScheduledTaskDetails.d.ts +18 -0
  425. package/scheduled-task/useActiveScheduledTaskDetails.d.ts.map +1 -0
  426. package/scheduled-task/useActiveScheduledTaskDetails.js +40 -0
  427. package/scheduled-task/useScheduledTaskSkillDisplayNames/useScheduledTaskSkillDisplayNames.d.ts +17 -0
  428. package/scheduled-task/useScheduledTaskSkillDisplayNames/useScheduledTaskSkillDisplayNames.d.ts.map +1 -0
  429. package/scheduled-task/useScheduledTaskSkillDisplayNames/useScheduledTaskSkillDisplayNames.js +29 -0
  430. package/scheduled-task/useStartScheduledTask.d.ts +41 -0
  431. package/scheduled-task/useStartScheduledTask.d.ts.map +1 -0
  432. package/scheduled-task/useStartScheduledTask.js +169 -0
  433. package/scheduled-tasks.js +13 -7
  434. package/scroll-anchoring.js +1 -2
  435. package/share-invitation/models.d.ts +46 -0
  436. package/share-invitation/models.d.ts.map +1 -0
  437. package/share-invitation/share-invitation-error.d.ts +6 -0
  438. package/share-invitation/share-invitation-error.d.ts.map +1 -0
  439. package/share-invitation/share-invitation-error.js +37 -0
  440. package/share-invitation/types.d.ts +10 -0
  441. package/share-invitation/types.d.ts.map +1 -0
  442. package/share-invitation/types.js +6 -0
  443. package/share-invitation/useAcceptShareInvitation/useAcceptShareInvitation.d.ts +9 -0
  444. package/share-invitation/useAcceptShareInvitation/useAcceptShareInvitation.d.ts.map +1 -0
  445. package/share-invitation/useAcceptShareInvitation/useAcceptShareInvitation.js +26 -0
  446. package/shared/application-schema.js +3 -3
  447. package/shared/client-channel.d.ts +53 -0
  448. package/shared/client-channel.d.ts.map +1 -0
  449. package/shared/client-channel.js +6 -0
  450. package/shared/cron-day-of-month.js +10 -10
  451. package/shared/external-services.d.ts +1 -1
  452. package/shared/locale.d.ts +6 -2
  453. package/shared/locale.d.ts.map +1 -1
  454. package/shared/locale.js +4 -4
  455. package/shared/read-sse-events.d.ts +10 -0
  456. package/shared/read-sse-events.d.ts.map +1 -0
  457. package/shared/read-sse-events.js +33 -0
  458. package/shared/serialized-writer.d.ts +12 -0
  459. package/shared/serialized-writer.d.ts.map +1 -0
  460. package/shared/serialized-writer.js +44 -0
  461. package/shared/sleep.d.ts +3 -0
  462. package/shared/sleep.d.ts.map +1 -0
  463. package/shared/sleep.js +13 -0
  464. package/shared/theme-colors.d.ts +16 -0
  465. package/shared/theme-colors.d.ts.map +1 -0
  466. package/shared/theme-colors.js +14 -0
  467. package/shared/url-cleanup.d.ts +18 -0
  468. package/shared/url-cleanup.d.ts.map +1 -0
  469. package/shared/url-cleanup.js +18 -0
  470. package/shared/usage-stat.d.ts +3 -0
  471. package/shared/usage-stat.d.ts.map +1 -0
  472. package/shared/usage-stat.js +4 -0
  473. package/shared/useAppVersionCheck/useAppVersionCheck.d.ts +22 -0
  474. package/shared/useAppVersionCheck/useAppVersionCheck.d.ts.map +1 -0
  475. package/shared/useAppVersionCheck/useAppVersionCheck.js +36 -0
  476. package/shared/usePersistedState/usePersistedState.d.ts +28 -0
  477. package/shared/usePersistedState/usePersistedState.d.ts.map +1 -0
  478. package/shared/usePersistedState/usePersistedState.js +24 -0
  479. package/sharing.js +5 -2
  480. package/signin-interrupt/models.d.ts +48 -0
  481. package/signin-interrupt/models.d.ts.map +1 -0
  482. package/signin-interrupt/signin-row-info.d.ts +10 -0
  483. package/signin-interrupt/signin-row-info.d.ts.map +1 -0
  484. package/signin-interrupt/signin-row-info.js +21 -0
  485. package/signin-interrupt/types.d.ts +28 -0
  486. package/signin-interrupt/types.d.ts.map +1 -0
  487. package/signin-interrupt/types.js +10 -0
  488. package/signin-interrupt/useSigninInterrupt/useSigninInterrupt.d.ts +52 -0
  489. package/signin-interrupt/useSigninInterrupt/useSigninInterrupt.d.ts.map +1 -0
  490. package/signin-interrupt/useSigninInterrupt/useSigninInterrupt.js +270 -0
  491. package/skill/skill-file-batch-validation.d.ts +4 -0
  492. package/skill/skill-file-batch-validation.d.ts.map +1 -1
  493. package/skill/skill-file-batch-validation.js +34 -33
  494. package/skill/skill-lookup.d.ts +20 -0
  495. package/skill/skill-lookup.d.ts.map +1 -0
  496. package/skill/skill-lookup.js +12 -0
  497. package/skill/skill-types.js +1 -1
  498. package/skill/skill.d.ts +5 -1
  499. package/skill/skill.d.ts.map +1 -1
  500. package/skill/skill.js +27 -28
  501. package/skill/useSkillArchiveImport/useSkillArchiveImport.js +1 -7
  502. package/skill/useSkillEditorSubmit.d.ts +15 -1
  503. package/skill/useSkillEditorSubmit.d.ts.map +1 -1
  504. package/skill/useSkillEditorSubmit.js +164 -87
  505. package/skill/useSkillFileActions.d.ts +2 -0
  506. package/skill/useSkillFileActions.d.ts.map +1 -1
  507. package/skill/useSkillFileActions.js +36 -21
  508. package/skill-editor/useSkillFilePreviewSyncController.d.ts +41 -0
  509. package/skill-editor/useSkillFilePreviewSyncController.d.ts.map +1 -0
  510. package/skill-editor/useSkillFilePreviewSyncController.js +58 -0
  511. package/skill-editor/useSkillFileSystemPicker/useSkillFileSystemPicker.d.ts +23 -0
  512. package/skill-editor/useSkillFileSystemPicker/useSkillFileSystemPicker.d.ts.map +1 -0
  513. package/skill-editor/useSkillFileSystemPicker/useSkillFileSystemPicker.js +43 -0
  514. package/skill-editor.js +11 -9
  515. package/skills-state.js +3 -2
  516. package/source-content.js +1 -2
  517. package/usage/map-user-usage-to-model-limits.d.ts.map +1 -1
  518. package/usage/map-user-usage-to-model-limits.js +24 -24
  519. package/usage/usage-banner-source.d.ts +8 -7
  520. package/usage/usage-banner-source.d.ts.map +1 -1
  521. package/usage/usage-banner-source.js +46 -21
  522. package/usage/usage-gauge.d.ts +3 -0
  523. package/usage/usage-gauge.d.ts.map +1 -0
  524. package/usage/usage-gauge.js +4 -0
  525. package/usage/usage-reset-time.d.ts +12 -3
  526. package/usage/usage-reset-time.d.ts.map +1 -1
  527. package/usage/usage-reset-time.js +48 -38
  528. package/usage/useDeploymentUsageLimits/useDeploymentUsageLimits.d.ts +42 -18
  529. package/usage/useDeploymentUsageLimits/useDeploymentUsageLimits.d.ts.map +1 -1
  530. package/usage/useDeploymentUsageLimits/useDeploymentUsageLimits.js +23 -28
  531. package/usage/useUsageLimitBanner/useUsageLimitBanner.d.ts +10 -8
  532. package/usage/useUsageLimitBanner/useUsageLimitBanner.d.ts.map +1 -1
  533. package/usage/useUsageLimitBanner/useUsageLimitBanner.js +28 -25
  534. package/usage/useUsageLimitBannerDismissal/useUsageLimitBannerDismissal.js +1 -1
  535. package/usage-limits.js +10 -8
  536. package/useChatSettingsFormConfig/useChatSettingsFormConfig.d.ts +2 -0
  537. package/useChatSettingsFormConfig/useChatSettingsFormConfig.d.ts.map +1 -1
  538. package/useChatSettingsFormConfig/useChatSettingsFormConfig.js +25 -21
  539. package/usePageFileDrag/usePageFileDrag.js +3 -3
  540. package/useShareLink/useShareLink.js +18 -18
  541. package/utils.js +23 -17
  542. package/viewport-layout/canvas-width.d.ts +39 -0
  543. package/viewport-layout/canvas-width.d.ts.map +1 -0
  544. package/viewport-layout/canvas-width.js +23 -0
  545. package/viewport-layout.js +2 -1
@@ -0,0 +1,142 @@
1
+ import { SendCompletionDtoModeEnum } from '@epam/ai-dial-chat-api-client';
2
+ import { Conversation, MessageCustomContent, StreamChunk } from '@epam/ai-dial-chat-shared';
3
+ import { Dispatch, MutableRefObject, SetStateAction } from 'react';
4
+ /** Options accepted by {@link ConversationStreamTransport.streamCompletion}. */
5
+ export interface StreamCompletionOptions {
6
+ onChunk: (chunk: StreamChunk) => void;
7
+ onComplete: () => void | Promise<void>;
8
+ onError: (error: Error) => void;
9
+ signal: AbortSignal;
10
+ }
11
+ /**
12
+ * Host-owned transport for the DIAL Core completion protocol. Implemented at
13
+ * the app edge — never hardcodes an `/api` path, CSRF handling, or a
14
+ * `server-api` import; the library only depends on this interface's shape.
15
+ */
16
+ export interface ConversationStreamTransport {
17
+ /** Starts a completion; delivers chunks/completion/error through `options`, aborted via `options.signal`. */
18
+ streamCompletion(path: string, message: string | undefined, model: string, options: StreamCompletionOptions, customContent?: MessageCustomContent, generationId?: string, mode?: SendCompletionDtoModeEnum, messageIndex?: number, clientChannelId?: string): void;
19
+ /**
20
+ * Requests the backend stop an active generation. `content` is the answer text shown
21
+ * so far; the backend saves it for a generation whose text it does not hold.
22
+ */
23
+ stopCompletion(params: {
24
+ generationId: string;
25
+ path: string;
26
+ content?: string;
27
+ }): Promise<void>;
28
+ /** Opens a stream of resource-update events for `path`, until aborted via `signal`. */
29
+ watchConversation(path: string, signal: AbortSignal): Promise<ReadableStream<Uint8Array>>;
30
+ /**
31
+ * Attaches to an active generation's live replay: a `snapshot` event
32
+ * carrying the assistant message as assembled so far, then a `chunk` event
33
+ * per subsequent delta, then exactly one terminal event (`done`/`error`/
34
+ * `stopped`), until aborted via `signal`. Rejects when no active
35
+ * generation exists for `path` — including one that already finished —
36
+ * so the caller can fall back to `watchConversation`.
37
+ */
38
+ attachToGeneration(path: string, signal: AbortSignal): Promise<ReadableStream<Uint8Array>>;
39
+ /** Reloads the persisted conversation by its full (bucket-qualified) id. */
40
+ getConversation(conversationId: string, signal?: AbortSignal): Promise<Conversation>;
41
+ /**
42
+ * Saves `conversation` at the bucket-stripped `path`, resolving with the saved
43
+ * conversation. Used only for the single recovery save after the backend's
44
+ * terminal save was rejected with `401`; without it that failure shows the
45
+ * persistence warning immediately.
46
+ */
47
+ saveConversation?(path: string, conversation: Conversation): Promise<Conversation>;
48
+ }
49
+ /** Host-owned generation lifecycle, backing cross-navigation `AbortController` ownership. */
50
+ export interface ConversationGenerationLifecycle {
51
+ /** Starts (or replaces) tracking for a generation on `path`, returning its `AbortController`. */
52
+ startGeneration: (path: string, generationId: string) => AbortController;
53
+ /** Marks the generation identified by `path`/`generationId` complete, if it is still the active one. */
54
+ completeGeneration: (path: string, generationId: string) => void;
55
+ }
56
+ /** Optional host-owned client-channel connection, used to nudge tool-signin delivery. */
57
+ export interface ConversationStreamChannel {
58
+ channelId: string | null;
59
+ ensureConnected: () => void;
60
+ /** Resolves with a channel id, waiting for an in-flight subscribe if one isn't established yet, so a completion sent immediately after mount can still carry it. */
61
+ waitForChannel: (timeoutMs?: number) => Promise<string | null>;
62
+ /** Notifies the host that a generation just ended (completed or errored), so it can consider disconnecting an idle channel. */
63
+ notifyGenerationSettled?: () => void;
64
+ }
65
+ /** Optional host-owned overlay generation-lifecycle notifications. Each method is independently optional. */
66
+ export interface ConversationStreamOverlayNotifier {
67
+ notifyGenerationStart?: () => void;
68
+ notifyGenerationEnd?: () => void;
69
+ notifyStopGenerating?: () => void;
70
+ }
71
+ /** Shared mutable channel through which the displayed conversation's state is read/written. */
72
+ export interface ConversationStateAccessor {
73
+ setConversation: Dispatch<SetStateAction<Conversation | null>>;
74
+ conversationRef: MutableRefObject<Conversation | null>;
75
+ }
76
+ /** Parameters for {@link useConversationStream}. */
77
+ export interface UseConversationStreamParams {
78
+ conversationId: string | undefined;
79
+ state: ConversationStateAccessor;
80
+ transport: ConversationStreamTransport;
81
+ generation: ConversationGenerationLifecycle;
82
+ channel?: ConversationStreamChannel;
83
+ overlay?: ConversationStreamOverlayNotifier;
84
+ onStopError?: (error: Error) => void;
85
+ /**
86
+ * Message shown on the message bubble when the backend rejects a completion
87
+ * because this conversation is already generating — the case a second
88
+ * browser tab of the same session hits. Defaults to
89
+ * {@link DEFAULT_GENERATION_CONFLICT_MESSAGE}.
90
+ */
91
+ generationConflictMessage?: string;
92
+ /** Host-translated warning shown when the received answer could not be saved. */
93
+ generationPersistenceErrorMessage?: string;
94
+ /**
95
+ * Host-translated text shown on an assistant message whose generation was lost: a reloaded
96
+ * chat whose stored copy still ends in the empty placeholder while attach finds nothing
97
+ * running. Defaults to {@link DEFAULT_GENERATION_INTERRUPTED_ERROR_MESSAGE}.
98
+ */
99
+ generationInterruptedMessage?: string;
100
+ /**
101
+ * Receives the original error of every failed stream. The hook shows only
102
+ * host-supplied or upstream-supplied text on the message bubble and hides
103
+ * transport detail (e.g. `Failed to fetch`), so this is where the host can
104
+ * still log or report the raw error.
105
+ */
106
+ onStreamError?: (error: Error) => void;
107
+ /**
108
+ * Coalesces the displayed chunk updates into one `setConversation` per
109
+ * animation frame. Chunks still reach the per-path buffer immediately, and
110
+ * any pending update is flushed before completion, error, stop, or a
111
+ * superseding generation. Defaults to `false` (one update per chunk).
112
+ */
113
+ batchChunksPerFrame?: boolean;
114
+ }
115
+ /** Per-start options of {@link UseConversationStreamResult.startStream}. */
116
+ export interface StartStreamOptions {
117
+ /**
118
+ * Treats a `GenerationConflictError` as "this turn is already being
119
+ * generated" — e.g. a page reloaded before that generation saved its start
120
+ * state — and joins the running generation instead of showing the conflict
121
+ * message, which remains the fallback. Only for a start that sends no new
122
+ * user text; a send the user typed must keep reporting the conflict.
123
+ */
124
+ resumeOnConflict?: boolean;
125
+ }
126
+ /** Return value of {@link useConversationStream}. */
127
+ export interface UseConversationStreamResult {
128
+ startStream: (conversationId: string, userContent: string, messageIndex: number, model: string, customContent?: MessageCustomContent, generationId?: string, mode?: SendCompletionDtoModeEnum, options?: StartStreamOptions) => void;
129
+ handleStop: () => void;
130
+ resumeIfAwaitingGeneration: (currentConversationId: string, conversation: Conversation) => void;
131
+ /** Restores the accumulated live assistant message when its conversation is loaded again before completion. */
132
+ restoreBufferedGeneration: (currentConversationId: string, conversation: Conversation) => Conversation;
133
+ isStreaming: boolean;
134
+ canStopStreaming: boolean;
135
+ /** Whether the displayed conversation's terminal read failed. */
136
+ hasConversationReloadError: boolean;
137
+ /** Whether a retry of that read is in flight. */
138
+ isReloadingConversation: boolean;
139
+ /** Retries the failed read without saving or regenerating the answer. */
140
+ retryConversationReload: () => Promise<void>;
141
+ }
142
+ //# sourceMappingURL=conversation-stream.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-stream.types.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/conversation-stream.types.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,19 @@
1
1
  //#region src/conversation/useConversationStream/frame-scheduler.ts
2
- var e = 16, t = (t) => {
2
+ var e = (e) => {
3
3
  if (typeof requestAnimationFrame == "function") {
4
- let e = requestAnimationFrame(t);
5
- return () => cancelAnimationFrame(e);
4
+ let t = requestAnimationFrame(e);
5
+ return () => cancelAnimationFrame(t);
6
6
  }
7
- let n = setTimeout(t, e);
8
- return () => clearTimeout(n);
9
- }, n = () => {
10
- let e = /* @__PURE__ */ new Map(), n = (t) => {
11
- let n = e.get(t);
12
- n && (e.delete(t), n.task());
7
+ let t = setTimeout(e, 16);
8
+ return () => clearTimeout(t);
9
+ }, t = () => {
10
+ let t = /* @__PURE__ */ new Map(), n = (e) => {
11
+ let n = t.get(e);
12
+ n && (t.delete(e), n.task());
13
13
  };
14
14
  return {
15
15
  schedule: (r, i) => {
16
- let a = e.get(r);
16
+ let a = t.get(r);
17
17
  if (a) {
18
18
  a.task = i;
19
19
  return;
@@ -22,18 +22,18 @@ var e = 16, t = (t) => {
22
22
  task: i,
23
23
  cancelFrame: () => void 0
24
24
  };
25
- e.set(r, o), o.cancelFrame = t(() => n(r));
25
+ t.set(r, o), o.cancelFrame = e(() => n(r));
26
26
  },
27
- flush: (t) => {
28
- e.get(t)?.cancelFrame(), n(t);
27
+ flush: (e) => {
28
+ t.get(e)?.cancelFrame(), n(e);
29
29
  },
30
- cancel: (t) => {
31
- e.get(t)?.cancelFrame(), e.delete(t);
30
+ cancel: (e) => {
31
+ t.get(e)?.cancelFrame(), t.delete(e);
32
32
  },
33
33
  cancelAll: () => {
34
- e.forEach((e) => e.cancelFrame()), e.clear();
34
+ t.forEach((e) => e.cancelFrame()), t.clear();
35
35
  }
36
36
  };
37
37
  };
38
38
  //#endregion
39
- export { n as createFrameScheduler };
39
+ export { t as createFrameScheduler };
@@ -1,8 +1,8 @@
1
1
  import { Conversation, Message } from '@epam/ai-dial-chat-shared';
2
2
  import { Dispatch, MutableRefObject, SetStateAction } from 'react';
3
3
  import { BufferedGeneration } from './buffered-generation';
4
+ import { ConversationStreamTransport } from './conversation-stream.types';
4
5
  import { FrameScheduler } from './frame-scheduler';
5
- import { ConversationStreamTransport } from './useConversationStream';
6
6
  /**
7
7
  * True when the assistant message carries anything the backend's finalize save
8
8
  * would have written. Text alone is not enough to tell a finished response from
@@ -42,6 +42,19 @@ export interface ResumeGenerationOptions {
42
42
  onSettled?: () => void;
43
43
  /** Resumes even though the path is already in `resumingPathsRef`, for a caller that reserved it itself. */
44
44
  skipDedupe?: boolean;
45
+ /**
46
+ * Takes the `generationId` the attach `snapshot` carries so Stop can reach a resumed
47
+ * non-background generation. Set only by the public entry point: stream recovery
48
+ * already knows its local id, and the conflict handover keeps Stop unavailable.
49
+ */
50
+ trackAttachGenerationId?: boolean;
51
+ /**
52
+ * Releases the chat and shows an unresolved placeholder as interrupted once nothing is
53
+ * producing the answer here (attach unavailable, stored copy still the placeholder). Set
54
+ * only by the public entry point: stream recovery and the conflict handover know a
55
+ * generation exists, so they keep their own behaviour.
56
+ */
57
+ shouldMarkOrphanedAsInterrupted?: boolean;
45
58
  }
46
59
  /** Host-owned state {@link createResumeIfAwaitingGeneration} reads/writes through. */
47
60
  export interface ResumeIfAwaitingGenerationDeps {
@@ -54,6 +67,8 @@ export interface ResumeIfAwaitingGenerationDeps {
54
67
  removeStreamingPath: (path: string) => void;
55
68
  isPathDisplayed: (path: string) => boolean;
56
69
  generationPersistenceErrorMessage?: string;
70
+ /** Host-translated text shown on a placeholder nothing is producing. Defaults to {@link DEFAULT_GENERATION_INTERRUPTED_ERROR_MESSAGE}. */
71
+ generationInterruptedMessage?: string;
57
72
  /** Records a terminal read failure and its guarded read-only retry. */
58
73
  onReloadError?: (path: string, retry: () => Promise<void>, isCurrent: () => boolean) => void;
59
74
  /** Clears a previous read failure after reconciliation. */
@@ -66,6 +81,13 @@ export interface ResumeIfAwaitingGenerationDeps {
66
81
  * its id is removed when the resume settles.
67
82
  */
68
83
  stoppedGenerationIdsRef?: MutableRefObject<Set<string>>;
84
+ /** Records the id an attach `snapshot` supplied for `path`, so the host can offer Stop for it. */
85
+ rememberResumedGenerationId?: (path: string, generationId: string) => void;
86
+ /**
87
+ * Drops that id again once the resume no longer owns an attached generation. Compare-and-clear:
88
+ * the host removes the entry only while it still holds `generationId`.
89
+ */
90
+ forgetResumedGenerationId?: (path: string, generationId: string) => void;
69
91
  }
70
92
  /**
71
93
  * Builds `resumeIfAwaitingGeneration`: a hard refresh mid-generation loads a
@@ -81,5 +103,5 @@ export interface ResumeIfAwaitingGenerationDeps {
81
103
  * backend's finalize save resolves the placeholder whenever attach is
82
104
  * unavailable or ends without a terminal event.
83
105
  */
84
- export declare const createResumeIfAwaitingGeneration: ({ transport, setConversation, conversationRef, resumingPathsRef, bufferedGenerationsRef, addStreamingPath, removeStreamingPath, isPathDisplayed, generationPersistenceErrorMessage, frameScheduler, stoppedGenerationIdsRef, onReloadError, onReloadSuccess, }: ResumeIfAwaitingGenerationDeps) => (currentConversationId: string, conversation: Conversation, options?: ResumeGenerationOptions) => void;
106
+ export declare const createResumeIfAwaitingGeneration: ({ transport, setConversation, conversationRef, resumingPathsRef, bufferedGenerationsRef, addStreamingPath, removeStreamingPath, isPathDisplayed, generationPersistenceErrorMessage, generationInterruptedMessage, frameScheduler, stoppedGenerationIdsRef, rememberResumedGenerationId, forgetResumedGenerationId, onReloadError, onReloadSuccess, }: ResumeIfAwaitingGenerationDeps) => (currentConversationId: string, conversation: Conversation, options?: ResumeGenerationOptions) => void;
85
107
  //# sourceMappingURL=generation-resume.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generation-resume.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/generation-resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,OAAO,EAEb,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAOxE,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAE3E;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,KAAG,OAWtD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAC5C,cAAc,YAAY,KACzB,MAKA,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,GACrC,cAAc,YAAY,KACzB,OAUF,CAAC;AA6BF,eAAO,MAAM,0BAA0B,UAAkC,CAAC;AAe1E;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GACvC,MAAM,MAAM,OAAO,CAAC,YAAY,CAAC,EACjC,YAAY,MAAM,OAAO,EACzB,YAAY,CAAC,YAAY,EAAE,YAAY,KAAK,OAAO,KAClD,OAAO,CAAC,YAAY,GAAG,IAAI,CAiB7B,CAAC;AAgEF,sGAAsG;AACtG,MAAM,WAAW,uBAAuB;IACtC,qIAAqI;IACrI,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oGAAoG;IACpG,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,2GAA2G;IAC3G,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,sFAAsF;AACtF,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,2BAA2B,CAAC;IACvC,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/D,eAAe,EAAE,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACvD,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,sBAAsB,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC1E,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,uEAAuE;IACvE,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC1B,SAAS,EAAE,MAAM,OAAO,KACrB,IAAI,CAAC;IACV,2DAA2D;IAC3D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iFAAiF;IACjF,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACzD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gCAAgC,GAAI,gQAc9C,8BAA8B,MAE7B,uBAAuB,MAAM,EAC7B,cAAc,YAAY,EAC1B,UAAS,uBAA4B,KACpC,IA8QJ,CAAC"}
1
+ {"version":3,"file":"generation-resume.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/generation-resume.ts"],"names":[],"mappings":"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"}
@@ -1,184 +1,173 @@
1
1
  import { safeDecodeURI as e } from "../../shared/string-utils.js";
2
- import { DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE as t, GenerationPersistenceError as n } from "../create-chat-stream-api.js";
3
- import { getConversationPath as r } from "./conversation-path.js";
4
- import { applyChunkToMessages as i } from "./apply-chunk.js";
5
- import { restoreBufferedMessage as a } from "./buffered-generation.js";
6
- import { BackgroundGenerationStatus as o, MessageRole as s } from "@epam/ai-dial-chat-shared";
2
+ import { DEFAULT_GENERATION_INTERRUPTED_ERROR_MESSAGE as t, DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE as n, GenerationPersistenceError as r } from "../create-chat-stream-api.js";
3
+ import { readSseEvents as i } from "../../shared/read-sse-events.js";
4
+ import { getConversationPath as a } from "./conversation-path.js";
5
+ import { applyChunkToMessages as o } from "./apply-chunk.js";
6
+ import { restoreBufferedMessage as s } from "./buffered-generation.js";
7
+ import { BackgroundGenerationStatus as c, MessageRole as l } from "@epam/ai-dial-chat-shared";
7
8
  //#region src/conversation/useConversationStream/generation-resume.ts
8
- var c = (e) => {
9
+ var u = (e) => {
9
10
  let t = e.custom_content;
10
11
  return !!e.content || e.responseId != null || !!t?.attachments?.length || !!t?.stages?.length || !!t?.annotations?.length || !!t?.form_schema || t?.state != null;
11
- }, l = (e) => e.messages.findIndex((e) => e.backgroundGeneration?.status === o.Pending), u = (e) => {
12
- if (l(e) !== -1) return !0;
12
+ }, d = (e) => e.messages.findIndex((e) => e.backgroundGeneration?.status === c.Pending), f = (e) => {
13
+ if (d(e) !== -1) return !0;
13
14
  let t = e.messages[e.messages.length - 1];
14
- return !!t && t.role === s.Assistant && !c(t) && t.streamErrorMessage == null && !t.wasStoppedByUser;
15
- }, d = 300 * 1e3, f = "awaiting-resume", p = [
15
+ return !!t && t.role === l.Assistant && !u(t) && t.streamErrorMessage == null && !t.wasStoppedByUser;
16
+ }, p = 3e5, m = "awaiting-resume", h = [
16
17
  1e3,
17
18
  2e3,
18
19
  4e3,
19
20
  8e3,
20
21
  16e3
21
- ], m = (e) => new Promise((t) => {
22
+ ], g = (e) => new Promise((t) => {
22
23
  let n = typeof window < "u", r = () => {
23
24
  clearTimeout(i), n && window.removeEventListener("online", r), t();
24
25
  }, i = setTimeout(r, e);
25
26
  n && window.addEventListener("online", r);
26
- }), h = async (e, t, n) => {
27
- for (let r = 0; r <= p.length; r++) {
27
+ }), _ = async (e, t, n) => {
28
+ for (let r = 0; r <= h.length; r++) {
28
29
  if (t()) return null;
29
30
  try {
30
31
  let t = await e();
31
32
  if (!n?.(t)) return t;
32
33
  } catch {}
33
- if (r === p.length) return null;
34
- await m(p[r]);
34
+ if (r === h.length) return null;
35
+ await g(h[r]);
35
36
  }
36
37
  return null;
37
- }, g = async (e, t) => {
38
- let n = e.getReader(), r = new TextDecoder(), i = "";
39
- try {
40
- for (;;) {
41
- let { done: e, value: a } = await n.read();
42
- if (e) break;
43
- i += r.decode(a, { stream: !0 });
44
- let o = i.split("\n");
45
- i = o.pop() ?? "";
46
- let s = !1;
47
- for (let e of o) {
48
- let n = e.trim();
49
- if (!n.startsWith("data:")) continue;
50
- let r = n.slice(5).trim(), i;
51
- try {
52
- i = JSON.parse(r);
53
- } catch {
54
- continue;
55
- }
56
- if (await t(i)) {
57
- s = !0;
58
- break;
59
- }
60
- }
61
- if (s) break;
62
- }
63
- } catch {} finally {
64
- n.releaseLock();
65
- }
66
- }, _ = ({ transport: o, setConversation: s, conversationRef: p, resumingPathsRef: m, bufferedGenerationsRef: h, addStreamingPath: _, removeStreamingPath: v, isPathDisplayed: y, generationPersistenceErrorMessage: b = t, frameScheduler: x, stoppedGenerationIdsRef: S, onReloadError: C, onReloadSuccess: w }) => (t, T, E = {}) => {
67
- if (!u(T)) {
68
- E.onSettled?.();
38
+ }, v = ({ transport: c, setConversation: l, conversationRef: h, resumingPathsRef: g, bufferedGenerationsRef: _, addStreamingPath: v, removeStreamingPath: y, isPathDisplayed: b, generationPersistenceErrorMessage: x = n, generationInterruptedMessage: S = t, frameScheduler: C, stoppedGenerationIdsRef: w, rememberResumedGenerationId: T, forgetResumedGenerationId: E, onReloadError: D, onReloadSuccess: O }) => (t, n, k = {}) => {
39
+ if (!f(n)) {
40
+ k.onSettled?.();
69
41
  return;
70
42
  }
71
- let D = r(t);
72
- if (!E.skipDedupe && m.current.has(D)) return;
73
- m.current.add(D), _(D);
74
- let O = l(T), k = O !== -1, A = k ? O : T.messages.length - 1, j = {
75
- generationId: f,
76
- messageIndex: A,
77
- message: E.seedMessage ?? T.messages[A]
43
+ let A = a(t);
44
+ if (!k.skipDedupe && g.current.has(A)) return;
45
+ g.current.add(A), v(A);
46
+ let j = d(n), M = j !== -1, N = M ? j : n.messages.length - 1, P = {
47
+ generationId: m,
48
+ messageIndex: N,
49
+ message: k.seedMessage ?? n.messages[N]
78
50
  };
79
- h.current.set(D, j);
80
- let M = () => h.current.get(D) === j, N = k ? T.messages[A].backgroundGeneration?.generationId : void 0, P = () => N != null && (S?.current.has(N) ?? !1), F = (e, t = !1) => {
81
- if (x?.flush(D), N != null && S?.current.delete(N), !M()) return;
82
- m.current.delete(D), v(D);
83
- let n = !k && e && e.messages.length - 1 === A && u(e) && c(j.message);
84
- if (t || n) {
85
- j.message = {
86
- ...j.message,
87
- streamErrorMessage: b
88
- }, y(D) && s((e) => {
89
- if (!e || !M() || !y(D)) return e;
90
- let t = a(e, j);
91
- return p.current = t, t;
92
- });
93
- return;
51
+ _.current.set(A, P);
52
+ let F = () => _.current.get(A) === P, I = M ? n.messages[N].backgroundGeneration?.generationId : void 0, L, R = () => {
53
+ let e = I ?? L;
54
+ return e != null && (w?.current.has(e) ?? !1);
55
+ }, z = (e) => {
56
+ k.trackAttachGenerationId && !M && e != null && F() && (L = e, T?.(A, e));
57
+ }, B = () => {
58
+ if (L == null) return;
59
+ let e = L;
60
+ L = void 0, w?.current.delete(e), E?.(A, e);
61
+ }, V = (e) => !!k.shouldMarkOrphanedAsInterrupted && !M && !!e && e.messages.length - 1 === N && d(e) === -1 && f(e) && !u(P.message), H = () => {
62
+ P.message = {
63
+ ...P.message,
64
+ streamErrorMessage: S
65
+ };
66
+ }, U = () => {
67
+ F() && (H(), g.current.delete(A), y(A), B(), b(A) && l((e) => {
68
+ if (!e || !F() || !b(A)) return e;
69
+ let t = s(e, P);
70
+ return h.current = t, t;
71
+ }));
72
+ }, W = (e, t = !1) => {
73
+ if (C?.flush(A), I != null && w?.current.delete(I), B(), !F()) return;
74
+ g.current.delete(A), y(A);
75
+ let n = !M && e && e.messages.length - 1 === N && f(e) && u(P.message);
76
+ if (t || n) P.message = {
77
+ ...P.message,
78
+ streamErrorMessage: x
79
+ }, b(A) && l((e) => {
80
+ if (!e || !F() || !b(A)) return e;
81
+ let t = s(e, P);
82
+ return h.current = t, t;
83
+ });
84
+ else if (_.current.delete(A), e && b(A)) {
85
+ let t = V(e);
86
+ t && H();
87
+ let n = t ? s(e, P) : e;
88
+ l(n), h.current = n;
94
89
  }
95
- h.current.delete(D), e && y(D) && (s(e), p.current = e);
96
- }, I = async () => {
97
- if (M()) try {
98
- let n = await o.getConversation(e(t));
99
- if (!M()) return;
100
- w?.(D), F(n);
90
+ }, G = async () => {
91
+ if (F()) try {
92
+ let n = await c.getConversation(e(t));
93
+ if (!F()) return;
94
+ O?.(A), W(n);
101
95
  } catch {
102
- if (!M()) return;
103
- x?.flush(D), m.current.delete(D), v(D), N != null && S?.current.delete(N), C?.(D, I, M);
96
+ if (!F()) return;
97
+ C?.flush(A), g.current.delete(A), y(A), I != null && w?.current.delete(I), B(), D?.(A, G, F);
104
98
  }
105
- }, L = (e) => {
106
- x?.cancel(D), M() && (j.message = e, y(D) && s((e) => {
107
- if (!e || !M() || !y(D)) return e;
108
- let t = a(e, j);
109
- return p.current = t, t;
99
+ }, K = (e) => {
100
+ C?.cancel(A), F() && (P.message = e, b(A) && l((e) => {
101
+ if (!e || !F() || !b(A)) return e;
102
+ let t = s(e, P);
103
+ return h.current = t, t;
110
104
  }));
111
- }, R = () => s((e) => {
112
- if (!e || !M() || !y(D)) return e;
113
- let t = a(e, j);
114
- return p.current = t, t;
115
- }), z = (e) => {
116
- if (!M() || P()) return;
117
- let t = i([j.message], 0, e);
118
- if (t && (j.message = t[0]), y(D)) {
119
- if (x) {
120
- x.schedule(D, R);
121
- return;
122
- }
123
- R();
124
- }
125
- }, B = async () => {
105
+ }, q = () => l((e) => {
106
+ if (!e || !F() || !b(A)) return e;
107
+ let t = s(e, P);
108
+ return h.current = t, t;
109
+ }), J = (e) => {
110
+ if (!F() || R()) return;
111
+ let t = o([P.message], 0, e);
112
+ t && (P.message = t[0]), b(A) && (C ? C.schedule(A, q) : q());
113
+ }, Y = async () => {
126
114
  let n = new AbortController(), r;
127
115
  try {
128
- r = await o.watchConversation(D, n.signal);
116
+ r = await c.watchConversation(A, n.signal);
129
117
  } catch {
130
- await I();
118
+ await G();
131
119
  return;
132
120
  }
133
121
  try {
134
- let i = await o.getConversation(e(t));
135
- if (!u(i)) {
136
- n.abort(), r.cancel().catch(() => void 0), F(i);
122
+ let i = await c.getConversation(e(t));
123
+ if (!f(i)) {
124
+ n.abort(), r.cancel().catch(() => void 0), W(i);
137
125
  return;
138
126
  }
127
+ V(i) && U();
139
128
  } catch {}
140
- let i = !1, a = window.setTimeout(() => {
129
+ let a = !1, o = window.setTimeout(() => {
141
130
  n.abort();
142
- }, d);
131
+ }, p);
143
132
  try {
144
- await g(r, async (n) => {
133
+ await i(r, async (n) => {
145
134
  if (n?.action !== "UPDATE") return !1;
146
135
  try {
147
- let n = await o.getConversation(e(t));
148
- if (!u(n)) return F(n), i = !0, !0;
136
+ let n = await c.getConversation(e(t));
137
+ if (!f(n)) return W(n), a = !0, !0;
149
138
  } catch {}
150
139
  return !1;
151
140
  });
152
141
  } finally {
153
- clearTimeout(a);
142
+ clearTimeout(o);
154
143
  }
155
- i || await I();
156
- }, V = async () => {
144
+ a || await G();
145
+ }, X = async () => {
157
146
  let e = new AbortController(), t;
158
147
  try {
159
- t = await o.attachToGeneration(D, e.signal);
148
+ t = await c.attachToGeneration(A, e.signal);
160
149
  } catch {
161
150
  return !1;
162
151
  }
163
- let r = !1, i = !1;
164
- return await g(t, (e) => {
165
- if (!M()) return !0;
152
+ let n = !1, a = !1;
153
+ return await i(t, (e) => {
154
+ if (!F()) return !0;
166
155
  switch (e.type) {
167
- case "snapshot": return L(e.message), !1;
168
- case "chunk": return z(e.chunk), !1;
156
+ case "snapshot": return z(e.generationId), K(e.message), !1;
157
+ case "chunk": return J(e.chunk), !1;
169
158
  case "done":
170
159
  case "error":
171
- case "stopped": return i = e.type === "error" && e.errorType === n.type, r = !0, !0;
160
+ case "stopped": return a = e.type === "error" && e.errorType === r.type, n = !0, !0;
172
161
  }
173
- }), r ? (i ? F(void 0, !0) : await I(), !0) : !M();
162
+ }), n ? (a ? W(void 0, !0) : await G(), !0) : (B(), !F());
174
163
  };
175
164
  (async () => {
176
165
  try {
177
- await V() || await B();
166
+ await X() || await Y();
178
167
  } finally {
179
- E.onSettled?.();
168
+ k.onSettled?.();
180
169
  }
181
170
  })();
182
171
  };
183
172
  //#endregion
184
- export { _ as createResumeIfAwaitingGeneration, h as fetchConversationForRecovery, l as findPendingBackgroundMessageIndex, c as hasGeneratedPayload, u as isAwaitingGenerationResume };
173
+ export { h as RECOVERY_REFETCH_DELAYS_MS, v as createResumeIfAwaitingGeneration, _ as fetchConversationForRecovery, d as findPendingBackgroundMessageIndex, u as hasGeneratedPayload, f as isAwaitingGenerationResume };
@@ -0,0 +1,10 @@
1
+ import { Conversation } from '@epam/ai-dial-chat-shared';
2
+ export declare const CHANNEL_WAIT_TIMEOUT_MS = 20000;
3
+ export declare const UNAUTHORIZED_STATUS = 401;
4
+ export declare const NOT_FOUND_STATUS = 404;
5
+ export declare const STOP_NOT_FOUND_GRACE_MS = 2000;
6
+ export declare const STOP_NOT_FOUND_POLL_MS = 100;
7
+ export declare const resolveStreamErrorMessage: (error: Error, generationConflictMessage: string, generationPersistenceErrorMessage: string) => string;
8
+ /** Generation id of the displayed conversation's pending background message, if any. */
9
+ export declare const findResumedBackgroundGenerationId: (conversation: Conversation | null) => string | undefined;
10
+ //# sourceMappingURL=stream-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-errors.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/stream-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAoB9D,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAG7C,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAKpC,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAC5C,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAQ1C,eAAO,MAAM,yBAAyB,GACpC,OAAO,KAAK,EACZ,2BAA2B,MAAM,EACjC,mCAAmC,MAAM,KACxC,MAOF,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,iCAAiC,GAC5C,cAAc,YAAY,GAAG,IAAI,KAChC,MAAM,GAAG,SAMX,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { GenerationConflictError as e, GenerationPersistenceError as t, StreamUpstreamError as n } from "../create-chat-stream-api.js";
2
+ import { findPendingBackgroundMessageIndex as r } from "./generation-resume.js";
3
+ //#region src/conversation/useConversationStream/stream-errors.ts
4
+ var i = 2e4, a = 2e3, o = (r, i, a) => r instanceof t ? a : r instanceof e ? i : r instanceof n ? r.message : "", s = (e) => {
5
+ if (!e) return;
6
+ let t = r(e);
7
+ return t === -1 ? void 0 : e.messages[t].backgroundGeneration?.generationId;
8
+ };
9
+ //#endregion
10
+ export { i as CHANNEL_WAIT_TIMEOUT_MS, a as STOP_NOT_FOUND_GRACE_MS, s as findResumedBackgroundGenerationId, o as resolveStreamErrorMessage };