@epam/ai-dial-chat-hooks 1.3.0-dev.37 → 1.3.0-dev.371

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 (578) 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 +23 -6
  76. package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.d.ts.map +1 -1
  77. package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.js +108 -107
  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.d.ts +21 -0
  105. package/conversation/conversation-draft/conversation-draft-store.d.ts.map +1 -0
  106. package/conversation/conversation-draft/conversation-draft-store.js +84 -0
  107. package/conversation/conversation-draft/conversation-draft.d.ts +48 -0
  108. package/conversation/conversation-draft/conversation-draft.d.ts.map +1 -0
  109. package/conversation/conversation-list.d.ts +6 -0
  110. package/conversation/conversation-list.d.ts.map +1 -0
  111. package/conversation/conversation-list.js +5 -0
  112. package/conversation/conversation-title-stream.d.ts +33 -0
  113. package/conversation/conversation-title-stream.d.ts.map +1 -0
  114. package/conversation/conversation-title-stream.js +103 -0
  115. package/conversation/conversation-transfer/attachment-refs.d.ts +10 -2
  116. package/conversation/conversation-transfer/attachment-refs.d.ts.map +1 -1
  117. package/conversation/conversation-transfer/attachment-refs.js +31 -9
  118. package/conversation/conversation-transfer/export-conversation.d.ts +5 -1
  119. package/conversation/conversation-transfer/export-conversation.d.ts.map +1 -1
  120. package/conversation/conversation-transfer/export-conversation.js +19 -18
  121. package/conversation/conversation-transfer/import-conversation.d.ts +11 -6
  122. package/conversation/conversation-transfer/import-conversation.d.ts.map +1 -1
  123. package/conversation/conversation-transfer/import-conversation.js +65 -69
  124. package/conversation/conversation-transfer/progress.js +1 -1
  125. package/conversation/conversation-transfer/zip-export.js +1 -7
  126. package/conversation/conversation-transfer/zip-import.js +1 -1
  127. package/conversation/create-chat-stream-api.d.ts +24 -3
  128. package/conversation/create-chat-stream-api.d.ts.map +1 -1
  129. package/conversation/create-chat-stream-api.js +67 -56
  130. package/conversation/generation-registry.d.ts +30 -0
  131. package/conversation/generation-registry.d.ts.map +1 -0
  132. package/conversation/generation-registry.js +33 -0
  133. package/conversation/get-model-id-from-conversation-id.d.ts.map +1 -1
  134. package/conversation/get-model-id-from-conversation-id.js +1 -1
  135. package/conversation/message-utils.d.ts +6 -0
  136. package/conversation/message-utils.d.ts.map +1 -1
  137. package/conversation/message-utils.js +14 -10
  138. package/conversation/scheduled-task-grouping.d.ts +53 -0
  139. package/conversation/scheduled-task-grouping.d.ts.map +1 -0
  140. package/conversation/scheduled-task-grouping.js +45 -0
  141. package/conversation/useActiveConversationSync/useActiveConversationSync.d.ts +4 -2
  142. package/conversation/useActiveConversationSync/useActiveConversationSync.d.ts.map +1 -1
  143. package/conversation/useActiveConversationSync/useActiveConversationSync.js +19 -12
  144. package/conversation/useAttachmentUpload/useAttachmentUpload.d.ts.map +1 -1
  145. package/conversation/useAttachmentUpload/useAttachmentUpload.js +4 -1
  146. package/conversation/useConversationComposerDraft/useConversationComposerDraft.d.ts +39 -0
  147. package/conversation/useConversationComposerDraft/useConversationComposerDraft.d.ts.map +1 -0
  148. package/conversation/useConversationComposerDraft/useConversationComposerDraft.js +128 -0
  149. package/conversation/useConversationDiscovery/useConversationDiscovery.d.ts +22 -0
  150. package/conversation/useConversationDiscovery/useConversationDiscovery.d.ts.map +1 -0
  151. package/conversation/useConversationDiscovery/useConversationDiscovery.js +60 -0
  152. package/conversation/useConversationExport/useConversationExport.d.ts.map +1 -1
  153. package/conversation/useConversationExport/useConversationExport.js +113 -122
  154. package/conversation/useConversationHandlers/message-utils.js +2 -2
  155. package/conversation/useConversationHandlers/useConversationHandlers.js +41 -41
  156. package/conversation/useConversationImport/useConversationImport.js +24 -24
  157. package/conversation/useConversationPanelItems/useConversationPanelItems.d.ts +18 -5
  158. package/conversation/useConversationPanelItems/useConversationPanelItems.d.ts.map +1 -1
  159. package/conversation/useConversationPanelItems/useConversationPanelItems.js +34 -30
  160. package/conversation/useConversationScroll/useConversationScroll.d.ts.map +1 -1
  161. package/conversation/useConversationScroll/useConversationScroll.js +69 -72
  162. package/conversation/useConversationStream/conversation-path.js +2 -2
  163. package/conversation/useConversationStream/conversation-stream.types.d.ts +142 -0
  164. package/conversation/useConversationStream/conversation-stream.types.d.ts.map +1 -0
  165. package/conversation/useConversationStream/frame-scheduler.js +17 -17
  166. package/conversation/useConversationStream/generation-resume.d.ts +24 -2
  167. package/conversation/useConversationStream/generation-resume.d.ts.map +1 -1
  168. package/conversation/useConversationStream/generation-resume.js +110 -121
  169. package/conversation/useConversationStream/stream-errors.d.ts +10 -0
  170. package/conversation/useConversationStream/stream-errors.d.ts.map +1 -0
  171. package/conversation/useConversationStream/stream-errors.js +10 -0
  172. package/conversation/useConversationStream/stream-session.d.ts +51 -0
  173. package/conversation/useConversationStream/stream-session.d.ts.map +1 -0
  174. package/conversation/useConversationStream/stream-session.js +179 -0
  175. package/conversation/useConversationStream/useConversationReloadErrors.d.ts +25 -0
  176. package/conversation/useConversationStream/useConversationReloadErrors.d.ts.map +1 -0
  177. package/conversation/useConversationStream/useConversationReloadErrors.js +38 -0
  178. package/conversation/useConversationStream/useConversationStream.d.ts +3 -136
  179. package/conversation/useConversationStream/useConversationStream.d.ts.map +1 -1
  180. package/conversation/useConversationStream/useConversationStream.js +141 -325
  181. package/conversation/useConversationStream/useStopGeneration.d.ts +29 -0
  182. package/conversation/useConversationStream/useStopGeneration.d.ts.map +1 -0
  183. package/conversation/useConversationStream/useStopGeneration.js +48 -0
  184. package/conversation/useConversationStream/useStreamPathState.d.ts +39 -0
  185. package/conversation/useConversationStream/useStreamPathState.d.ts.map +1 -0
  186. package/conversation/useConversationStream/useStreamPathState.js +55 -0
  187. package/conversation/useConversationTitleEnrichmentController.d.ts +64 -0
  188. package/conversation/useConversationTitleEnrichmentController.d.ts.map +1 -0
  189. package/conversation/useConversationTitleEnrichmentController.js +155 -0
  190. package/conversation/useDeploymentChangeTracking.d.ts +14 -0
  191. package/conversation/useDeploymentChangeTracking.d.ts.map +1 -0
  192. package/conversation/useDeploymentChangeTracking.js +23 -0
  193. package/conversation/useEntityPreselection/useEntityPreselection.d.ts +108 -0
  194. package/conversation/useEntityPreselection/useEntityPreselection.d.ts.map +1 -0
  195. package/conversation/useEntityPreselection/useEntityPreselection.js +78 -0
  196. package/conversation/useMessageSelectionReply/useMessageSelectionReply.js +4 -10
  197. package/conversation/useTranscribeAudio/useTranscribeAudio.d.ts +8 -1
  198. package/conversation/useTranscribeAudio/useTranscribeAudio.d.ts.map +1 -1
  199. package/conversation/useTranscribeAudio/useTranscribeAudio.js +36 -27
  200. package/conversation/useVisibleConversationIdsReporter/useVisibleConversationIdsReporter.d.ts +16 -0
  201. package/conversation/useVisibleConversationIdsReporter/useVisibleConversationIdsReporter.d.ts.map +1 -0
  202. package/conversation/useVisibleConversationIdsReporter/useVisibleConversationIdsReporter.js +17 -0
  203. package/conversation-overlay.js +1 -2
  204. package/conversation-sources/stage-citations.d.ts +9 -0
  205. package/conversation-sources/stage-citations.d.ts.map +1 -0
  206. package/conversation-sources/stage-citations.js +8 -0
  207. package/conversation-sources/useConversationAnnotationPool/useConversationAnnotationPool.d.ts +4 -0
  208. package/conversation-sources/useConversationAnnotationPool/useConversationAnnotationPool.d.ts.map +1 -0
  209. package/conversation-sources/useConversationAnnotationPool/useConversationAnnotationPool.js +5 -0
  210. package/conversation-sources.js +3 -1
  211. package/conversation.js +45 -33
  212. package/entry-points/attachments.d.ts +1 -0
  213. package/entry-points/attachments.d.ts.map +1 -1
  214. package/entry-points/catalog.d.ts +17 -0
  215. package/entry-points/catalog.d.ts.map +1 -1
  216. package/entry-points/conversation-sources.d.ts +2 -0
  217. package/entry-points/conversation-sources.d.ts.map +1 -1
  218. package/entry-points/conversation.d.ts +13 -0
  219. package/entry-points/conversation.d.ts.map +1 -1
  220. package/entry-points/external-services.d.ts +6 -0
  221. package/entry-points/external-services.d.ts.map +1 -0
  222. package/entry-points/file-manager-canvas.d.ts +1 -0
  223. package/entry-points/file-manager-canvas.d.ts.map +1 -1
  224. package/entry-points/file-manager.d.ts +2 -0
  225. package/entry-points/file-manager.d.ts.map +1 -1
  226. package/entry-points/oauth.d.ts +1 -0
  227. package/entry-points/oauth.d.ts.map +1 -1
  228. package/entry-points/offline-credentials.d.ts +7 -0
  229. package/entry-points/offline-credentials.d.ts.map +1 -0
  230. package/entry-points/project.d.ts +20 -0
  231. package/entry-points/project.d.ts.map +1 -0
  232. package/entry-points/scheduled-tasks.d.ts +7 -0
  233. package/entry-points/scheduled-tasks.d.ts.map +1 -1
  234. package/entry-points/sharing.d.ts +4 -0
  235. package/entry-points/sharing.d.ts.map +1 -1
  236. package/entry-points/skill-editor.d.ts +2 -0
  237. package/entry-points/skill-editor.d.ts.map +1 -1
  238. package/entry-points/skills-state.d.ts +1 -0
  239. package/entry-points/skills-state.d.ts.map +1 -1
  240. package/entry-points/usage-limits.d.ts +9 -0
  241. package/entry-points/usage-limits.d.ts.map +1 -0
  242. package/entry-points/utils.d.ts +6 -0
  243. package/entry-points/utils.d.ts.map +1 -1
  244. package/entry-points/viewport-layout.d.ts +1 -0
  245. package/entry-points/viewport-layout.d.ts.map +1 -1
  246. package/external-services/useExternalServiceLogin.d.ts +99 -0
  247. package/external-services/useExternalServiceLogin.d.ts.map +1 -0
  248. package/external-services/useExternalServiceLogin.js +93 -0
  249. package/external-services.d.ts +2 -0
  250. package/external-services.js +5 -0
  251. package/file-manager-canvas.js +3 -2
  252. package/file-manager.js +32 -30
  253. package/files/attachment-canvas.d.ts +12 -0
  254. package/files/attachment-canvas.d.ts.map +1 -1
  255. package/files/attachment-canvas.js +18 -10
  256. package/files/attachment-dto-to-display.d.ts.map +1 -1
  257. package/files/attachment-dto-to-display.js +13 -12
  258. package/files/attachment-types.js +1 -1
  259. package/files/browser-download.d.ts +9 -0
  260. package/files/browser-download.d.ts.map +1 -0
  261. package/files/browser-download.js +23 -0
  262. package/files/create-files-api.d.ts +3 -4
  263. package/files/create-files-api.d.ts.map +1 -1
  264. package/files/create-files-api.js +1 -1
  265. package/files/create-upload-file-with-progress.d.ts +21 -1
  266. package/files/create-upload-file-with-progress.d.ts.map +1 -1
  267. package/files/create-upload-file-with-progress.js +50 -34
  268. package/files/dial-file-manager-copy-move.util.d.ts.map +1 -1
  269. package/files/dial-file-manager-copy-move.util.js +28 -28
  270. package/files/dial-file-manager-mapping.util.d.ts +23 -3
  271. package/files/dial-file-manager-mapping.util.d.ts.map +1 -1
  272. package/files/dial-file-manager-mapping.util.js +97 -69
  273. package/files/dial-file-manager.types.d.ts +15 -5
  274. package/files/dial-file-manager.types.d.ts.map +1 -1
  275. package/files/dial-file-to-attachment.js +3 -3
  276. package/files/dial-file.d.ts +19 -0
  277. package/files/dial-file.d.ts.map +1 -1
  278. package/files/dial-file.js +20 -12
  279. package/files/dial-files-api.d.ts +2 -2
  280. package/files/dial-files-api.d.ts.map +1 -1
  281. package/files/download-progress.d.ts +33 -0
  282. package/files/download-progress.d.ts.map +1 -0
  283. package/files/download-progress.js +28 -0
  284. package/files/source-content.js +1 -1
  285. package/files/useDialFileListing/useDialFileListing.d.ts.map +1 -1
  286. package/files/useDialFileListing/useDialFileListing.js +97 -109
  287. package/files/useDialFileManager/useDialFileManager.d.ts.map +1 -1
  288. package/files/useDialFileManager/useDialFileManager.js +5 -2
  289. package/files/useDialFileManagerSections/useDialFileManagerSections.d.ts.map +1 -1
  290. package/files/useDialFileManagerSections/useDialFileManagerSections.js +59 -68
  291. package/files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js +1 -1
  292. package/files/useDialFileMetadata/useDialFileMetadata.js +3 -3
  293. package/files/useDialFileMutations/useDialFileMutations.d.ts +9 -0
  294. package/files/useDialFileMutations/useDialFileMutations.d.ts.map +1 -1
  295. package/files/useDialFileMutations/useDialFileMutations.js +232 -159
  296. package/files/useDialFilePreview/useDialFilePreview.d.ts +33 -0
  297. package/files/useDialFilePreview/useDialFilePreview.d.ts.map +1 -0
  298. package/files/useDialFilePreview/useDialFilePreview.js +45 -0
  299. package/files/useDialFileUploadBatch/useDialFileUploadBatch.d.ts.map +1 -1
  300. package/files/useDialFileUploadBatch/useDialFileUploadBatch.js +114 -103
  301. package/files/useFileAttachmentModalState/useFileAttachmentModalState.d.ts +25 -0
  302. package/files/useFileAttachmentModalState/useFileAttachmentModalState.d.ts.map +1 -0
  303. package/files/useFileAttachmentModalState/useFileAttachmentModalState.js +19 -0
  304. package/files/useFileAttachmentPicker/useFileAttachmentPicker.js +2 -2
  305. package/files/useUnshareConfirmationState/useUnshareConfirmationState.d.ts +23 -0
  306. package/files/useUnshareConfirmationState/useUnshareConfirmationState.d.ts.map +1 -0
  307. package/files/useUnshareConfirmationState/useUnshareConfirmationState.js +18 -0
  308. package/index.d.ts +96 -0
  309. package/index.d.ts.map +1 -1
  310. package/index.js +244 -149
  311. package/mcp-apps/mcp-apps-api-client.d.ts.map +1 -1
  312. package/mcp-apps/mcp-apps-api-client.js +18 -17
  313. package/mcp-apps/useMcpAppHostContext/useMcpAppHostContext.d.ts +3 -2
  314. package/mcp-apps/useMcpAppHostContext/useMcpAppHostContext.d.ts.map +1 -1
  315. package/mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js +28 -10
  316. package/mcp-apps/useMcpAppTools/useMcpAppTools.d.ts.map +1 -1
  317. package/mcp-apps/useMcpAppTools/useMcpAppTools.js +45 -45
  318. package/oauth/authorize-url.d.ts +7 -1
  319. package/oauth/authorize-url.d.ts.map +1 -1
  320. package/oauth/authorize-url.js +14 -4
  321. package/oauth/callback-exchange.d.ts +49 -0
  322. package/oauth/callback-exchange.d.ts.map +1 -0
  323. package/oauth/callback-exchange.js +29 -0
  324. package/oauth/handshake.js +3 -10
  325. package/oauth/models.d.ts +25 -0
  326. package/oauth/models.d.ts.map +1 -1
  327. package/oauth/popup.d.ts.map +1 -1
  328. package/oauth/popup.js +19 -17
  329. package/oauth/toolset-id.d.ts +7 -0
  330. package/oauth/toolset-id.d.ts.map +1 -1
  331. package/oauth/toolset-id.js +9 -2
  332. package/oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.d.ts.map +1 -1
  333. package/oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js +41 -42
  334. package/oauth/useToolsetLogin/useToolsetLogin.d.ts +7 -1
  335. package/oauth/useToolsetLogin/useToolsetLogin.d.ts.map +1 -1
  336. package/oauth/useToolsetLogin/useToolsetLogin.js +51 -42
  337. package/oauth.js +9 -8
  338. package/offline-credentials/map-offline-credentials-response.d.ts +20 -0
  339. package/offline-credentials/map-offline-credentials-response.d.ts.map +1 -0
  340. package/offline-credentials/map-offline-credentials-response.js +17 -0
  341. package/offline-credentials/scheduled-tasks-login-banner.d.ts +31 -0
  342. package/offline-credentials/scheduled-tasks-login-banner.d.ts.map +1 -0
  343. package/offline-credentials/scheduled-tasks-login-banner.js +17 -0
  344. package/offline-credentials/useOfflineCredentialsAuth/useOfflineCredentialsAuth.d.ts +58 -0
  345. package/offline-credentials/useOfflineCredentialsAuth/useOfflineCredentialsAuth.d.ts.map +1 -0
  346. package/offline-credentials/useOfflineCredentialsAuth/useOfflineCredentialsAuth.js +37 -0
  347. package/offline-credentials/useOfflineCredentialsGate/useOfflineCredentialsGate.d.ts +61 -0
  348. package/offline-credentials/useOfflineCredentialsGate/useOfflineCredentialsGate.d.ts.map +1 -0
  349. package/offline-credentials/useOfflineCredentialsGate/useOfflineCredentialsGate.js +37 -0
  350. package/offline-credentials/useOfflineCredentialsLogin/useOfflineCredentialsLogin.d.ts +28 -0
  351. package/offline-credentials/useOfflineCredentialsLogin/useOfflineCredentialsLogin.d.ts.map +1 -0
  352. package/offline-credentials/useOfflineCredentialsLogin/useOfflineCredentialsLogin.js +29 -0
  353. package/offline-credentials.d.ts +2 -0
  354. package/offline-credentials.js +7 -0
  355. package/package.json +49 -25
  356. package/project/create-project-chat.d.ts +34 -0
  357. package/project/create-project-chat.d.ts.map +1 -0
  358. package/project/create-project-chat.js +27 -0
  359. package/project/project-conversation-data-source.d.ts +36 -0
  360. package/project/project-conversation-data-source.d.ts.map +1 -0
  361. package/project/project-conversation-data-source.js +67 -0
  362. package/project/project-events.d.ts +14 -0
  363. package/project/project-events.d.ts.map +1 -0
  364. package/project/project-events.js +25 -0
  365. package/project/project-file-preview.d.ts +32 -0
  366. package/project/project-file-preview.d.ts.map +1 -0
  367. package/project/project-file-preview.js +25 -0
  368. package/project/project-form-errors.d.ts +23 -0
  369. package/project/project-form-errors.d.ts.map +1 -0
  370. package/project/project-form-errors.js +46 -0
  371. package/project/project-limits.d.ts +17 -0
  372. package/project/project-limits.d.ts.map +1 -0
  373. package/project/project-limits.js +11 -0
  374. package/project/project-mapping.d.ts +16 -0
  375. package/project/project-mapping.d.ts.map +1 -0
  376. package/project/project-mapping.js +43 -0
  377. package/project/project-refresh.d.ts +12 -0
  378. package/project/project-refresh.d.ts.map +1 -0
  379. package/project/project-refresh.js +6 -0
  380. package/project/project-viewed-marks.d.ts +9 -0
  381. package/project/project-viewed-marks.d.ts.map +1 -0
  382. package/project/project-viewed-marks.js +8 -0
  383. package/project/project-watch-stream.d.ts +26 -0
  384. package/project/project-watch-stream.d.ts.map +1 -0
  385. package/project/project-watch-stream.js +39 -0
  386. package/project/projects-api-client.d.ts +179 -0
  387. package/project/projects-api-client.d.ts.map +1 -0
  388. package/project/projects-api-client.js +90 -0
  389. package/project/use-pinned-project-chats.d.ts +58 -0
  390. package/project/use-pinned-project-chats.d.ts.map +1 -0
  391. package/project/use-pinned-project-chats.js +269 -0
  392. package/project/use-project-actions.d.ts +53 -0
  393. package/project/use-project-actions.d.ts.map +1 -0
  394. package/project/use-project-actions.js +92 -0
  395. package/project/use-project-artifacts.d.ts +24 -0
  396. package/project/use-project-artifacts.d.ts.map +1 -0
  397. package/project/use-project-artifacts.js +78 -0
  398. package/project/use-project-conversations.d.ts +32 -0
  399. package/project/use-project-conversations.d.ts.map +1 -0
  400. package/project/use-project-conversations.js +200 -0
  401. package/project/use-project-draft.d.ts +46 -0
  402. package/project/use-project-draft.d.ts.map +1 -0
  403. package/project/use-project-draft.js +54 -0
  404. package/project/use-project-file-preview.d.ts +47 -0
  405. package/project/use-project-file-preview.d.ts.map +1 -0
  406. package/project/use-project-file-preview.js +50 -0
  407. package/project/use-project-submit.d.ts +49 -0
  408. package/project/use-project-submit.d.ts.map +1 -0
  409. package/project/use-project-submit.js +73 -0
  410. package/project/use-project-watch.d.ts +24 -0
  411. package/project/use-project-watch.d.ts.map +1 -0
  412. package/project/use-project-watch.js +41 -0
  413. package/project/use-project.d.ts +23 -0
  414. package/project/use-project.d.ts.map +1 -0
  415. package/project/use-project.js +73 -0
  416. package/project/use-projects.d.ts +27 -0
  417. package/project/use-projects.d.ts.map +1 -0
  418. package/project/use-projects.js +92 -0
  419. package/project.d.ts +2 -0
  420. package/project.js +20 -0
  421. package/prompt/prompt.d.ts +11 -0
  422. package/prompt/prompt.d.ts.map +1 -1
  423. package/prompt/prompt.js +7 -3
  424. package/scheduled-task/active-scheduled-task.d.ts +58 -0
  425. package/scheduled-task/active-scheduled-task.d.ts.map +1 -0
  426. package/scheduled-task/active-scheduled-task.js +18 -0
  427. package/scheduled-task/check-scheduled-task-auth-session-error.d.ts +27 -0
  428. package/scheduled-task/check-scheduled-task-auth-session-error.d.ts.map +1 -0
  429. package/scheduled-task/check-scheduled-task-auth-session-error.js +17 -0
  430. package/scheduled-task/scheduled-task-description.d.ts +2 -0
  431. package/scheduled-task/scheduled-task-description.d.ts.map +1 -1
  432. package/scheduled-task/scheduled-task-description.js +33 -24
  433. package/scheduled-task/scheduled-task-display.d.ts +106 -0
  434. package/scheduled-task/scheduled-task-display.d.ts.map +1 -0
  435. package/scheduled-task/scheduled-task-display.js +69 -0
  436. package/scheduled-task/scheduled-task-next-occurrence.d.ts +9 -0
  437. package/scheduled-task/scheduled-task-next-occurrence.d.ts.map +1 -0
  438. package/scheduled-task/scheduled-task-next-occurrence.js +20 -0
  439. package/scheduled-task/scheduled-task-preparation.d.ts +1 -1
  440. package/scheduled-task/scheduled-task-trigger.d.ts.map +1 -1
  441. package/scheduled-task/scheduled-task-trigger.js +75 -48
  442. package/scheduled-task/use-scheduled-task-runs.js +19 -31
  443. package/scheduled-task/use-scheduled-tasks.d.ts +2 -2
  444. package/scheduled-task/use-scheduled-tasks.js +1 -1
  445. package/scheduled-task/useActiveScheduledTaskDetails.d.ts +18 -0
  446. package/scheduled-task/useActiveScheduledTaskDetails.d.ts.map +1 -0
  447. package/scheduled-task/useActiveScheduledTaskDetails.js +40 -0
  448. package/scheduled-task/useScheduledTaskSkillDisplayNames/useScheduledTaskSkillDisplayNames.d.ts +17 -0
  449. package/scheduled-task/useScheduledTaskSkillDisplayNames/useScheduledTaskSkillDisplayNames.d.ts.map +1 -0
  450. package/scheduled-task/useScheduledTaskSkillDisplayNames/useScheduledTaskSkillDisplayNames.js +29 -0
  451. package/scheduled-task/useStartScheduledTask.d.ts +41 -0
  452. package/scheduled-task/useStartScheduledTask.d.ts.map +1 -0
  453. package/scheduled-task/useStartScheduledTask.js +169 -0
  454. package/scheduled-tasks.js +13 -6
  455. package/scroll-anchoring.js +1 -2
  456. package/share-invitation/models.d.ts +46 -0
  457. package/share-invitation/models.d.ts.map +1 -0
  458. package/share-invitation/share-invitation-error.d.ts +6 -0
  459. package/share-invitation/share-invitation-error.d.ts.map +1 -0
  460. package/share-invitation/share-invitation-error.js +37 -0
  461. package/share-invitation/types.d.ts +10 -0
  462. package/share-invitation/types.d.ts.map +1 -0
  463. package/share-invitation/types.js +6 -0
  464. package/share-invitation/useAcceptShareInvitation/useAcceptShareInvitation.d.ts +9 -0
  465. package/share-invitation/useAcceptShareInvitation/useAcceptShareInvitation.d.ts.map +1 -0
  466. package/share-invitation/useAcceptShareInvitation/useAcceptShareInvitation.js +26 -0
  467. package/shared/application-schema.js +3 -3
  468. package/shared/client-channel.d.ts +53 -0
  469. package/shared/client-channel.d.ts.map +1 -0
  470. package/shared/client-channel.js +6 -0
  471. package/shared/cron-day-of-month.js +10 -10
  472. package/shared/external-services.d.ts +1 -1
  473. package/shared/locale.d.ts +6 -2
  474. package/shared/locale.d.ts.map +1 -1
  475. package/shared/locale.js +4 -4
  476. package/shared/read-sse-events.d.ts +10 -0
  477. package/shared/read-sse-events.d.ts.map +1 -0
  478. package/shared/read-sse-events.js +33 -0
  479. package/shared/serialized-writer.d.ts +12 -0
  480. package/shared/serialized-writer.d.ts.map +1 -0
  481. package/shared/serialized-writer.js +44 -0
  482. package/shared/sleep.d.ts +3 -0
  483. package/shared/sleep.d.ts.map +1 -0
  484. package/shared/sleep.js +13 -0
  485. package/shared/theme-colors.d.ts +16 -0
  486. package/shared/theme-colors.d.ts.map +1 -0
  487. package/shared/theme-colors.js +14 -0
  488. package/shared/url-cleanup.d.ts +18 -0
  489. package/shared/url-cleanup.d.ts.map +1 -0
  490. package/shared/url-cleanup.js +18 -0
  491. package/shared/usage-stat.d.ts +3 -0
  492. package/shared/usage-stat.d.ts.map +1 -0
  493. package/shared/usage-stat.js +4 -0
  494. package/shared/useAppVersionCheck/useAppVersionCheck.d.ts +22 -0
  495. package/shared/useAppVersionCheck/useAppVersionCheck.d.ts.map +1 -0
  496. package/shared/useAppVersionCheck/useAppVersionCheck.js +36 -0
  497. package/shared/usePersistedState/usePersistedState.d.ts +28 -0
  498. package/shared/usePersistedState/usePersistedState.d.ts.map +1 -0
  499. package/shared/usePersistedState/usePersistedState.js +24 -0
  500. package/sharing.js +5 -2
  501. package/signin-interrupt/models.d.ts +48 -0
  502. package/signin-interrupt/models.d.ts.map +1 -0
  503. package/signin-interrupt/signin-row-info.d.ts +10 -0
  504. package/signin-interrupt/signin-row-info.d.ts.map +1 -0
  505. package/signin-interrupt/signin-row-info.js +21 -0
  506. package/signin-interrupt/types.d.ts +28 -0
  507. package/signin-interrupt/types.d.ts.map +1 -0
  508. package/signin-interrupt/types.js +10 -0
  509. package/signin-interrupt/useSigninInterrupt/useSigninInterrupt.d.ts +52 -0
  510. package/signin-interrupt/useSigninInterrupt/useSigninInterrupt.d.ts.map +1 -0
  511. package/signin-interrupt/useSigninInterrupt/useSigninInterrupt.js +270 -0
  512. package/skill/skill-file-batch-validation.d.ts +4 -0
  513. package/skill/skill-file-batch-validation.d.ts.map +1 -1
  514. package/skill/skill-file-batch-validation.js +34 -33
  515. package/skill/skill-lookup.d.ts +20 -0
  516. package/skill/skill-lookup.d.ts.map +1 -0
  517. package/skill/skill-lookup.js +12 -0
  518. package/skill/skill-types.js +1 -1
  519. package/skill/skill.d.ts +5 -1
  520. package/skill/skill.d.ts.map +1 -1
  521. package/skill/skill.js +27 -28
  522. package/skill/useSkillArchiveImport/useSkillArchiveImport.js +1 -7
  523. package/skill/useSkillEditorSubmit.d.ts +15 -1
  524. package/skill/useSkillEditorSubmit.d.ts.map +1 -1
  525. package/skill/useSkillEditorSubmit.js +164 -87
  526. package/skill/useSkillFileActions.d.ts +2 -0
  527. package/skill/useSkillFileActions.d.ts.map +1 -1
  528. package/skill/useSkillFileActions.js +36 -21
  529. package/skill-editor/useSkillFilePreviewSyncController.d.ts +41 -0
  530. package/skill-editor/useSkillFilePreviewSyncController.d.ts.map +1 -0
  531. package/skill-editor/useSkillFilePreviewSyncController.js +58 -0
  532. package/skill-editor/useSkillFileSystemPicker/useSkillFileSystemPicker.d.ts +23 -0
  533. package/skill-editor/useSkillFileSystemPicker/useSkillFileSystemPicker.d.ts.map +1 -0
  534. package/skill-editor/useSkillFileSystemPicker/useSkillFileSystemPicker.js +43 -0
  535. package/skill-editor.js +11 -9
  536. package/skills-state.js +3 -2
  537. package/source-content.js +1 -2
  538. package/usage/map-usage-data-to-dashboard.d.ts +1 -16
  539. package/usage/map-usage-data-to-dashboard.d.ts.map +1 -1
  540. package/usage/map-user-usage-to-model-limits.d.ts.map +1 -1
  541. package/usage/map-user-usage-to-model-limits.js +24 -24
  542. package/usage/usage-banner-source.d.ts +24 -0
  543. package/usage/usage-banner-source.d.ts.map +1 -0
  544. package/usage/usage-banner-source.js +61 -0
  545. package/usage/usage-gauge.d.ts +3 -0
  546. package/usage/usage-gauge.d.ts.map +1 -0
  547. package/usage/usage-gauge.js +4 -0
  548. package/usage/usage-period.d.ts +7 -0
  549. package/usage/usage-period.d.ts.map +1 -0
  550. package/usage/usage-period.js +6 -0
  551. package/usage/usage-reset-time.d.ts +78 -0
  552. package/usage/usage-reset-time.d.ts.map +1 -0
  553. package/usage/usage-reset-time.js +82 -0
  554. package/usage/useDeploymentUsageLimits/useDeploymentUsageLimits.d.ts +56 -0
  555. package/usage/useDeploymentUsageLimits/useDeploymentUsageLimits.d.ts.map +1 -0
  556. package/usage/useDeploymentUsageLimits/useDeploymentUsageLimits.js +34 -0
  557. package/usage/useRefreshUsageAfterGeneration/useRefreshUsageAfterGeneration.d.ts +16 -0
  558. package/usage/useRefreshUsageAfterGeneration/useRefreshUsageAfterGeneration.d.ts.map +1 -0
  559. package/usage/useRefreshUsageAfterGeneration/useRefreshUsageAfterGeneration.js +14 -0
  560. package/usage/useUsageLimitBanner/useUsageLimitBanner.d.ts +58 -0
  561. package/usage/useUsageLimitBanner/useUsageLimitBanner.d.ts.map +1 -0
  562. package/usage/useUsageLimitBanner/useUsageLimitBanner.js +70 -0
  563. package/usage/useUsageLimitBannerDismissal/useUsageLimitBannerDismissal.d.ts +14 -0
  564. package/usage/useUsageLimitBannerDismissal/useUsageLimitBannerDismissal.d.ts.map +1 -0
  565. package/usage/useUsageLimitBannerDismissal/useUsageLimitBannerDismissal.js +19 -0
  566. package/usage-limits.d.ts +2 -0
  567. package/usage-limits.js +10 -0
  568. package/useChatSettingsFormConfig/useChatSettingsFormConfig.d.ts +2 -0
  569. package/useChatSettingsFormConfig/useChatSettingsFormConfig.d.ts.map +1 -1
  570. package/useChatSettingsFormConfig/useChatSettingsFormConfig.js +25 -21
  571. package/usePageFileDrag/usePageFileDrag.js +3 -3
  572. package/useShareLink/useShareLink.d.ts.map +1 -1
  573. package/useShareLink/useShareLink.js +18 -17
  574. package/utils.js +23 -17
  575. package/viewport-layout/canvas-width.d.ts +39 -0
  576. package/viewport-layout/canvas-width.d.ts.map +1 -0
  577. package/viewport-layout/canvas-width.js +23 -0
  578. package/viewport-layout.js +2 -1
@@ -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 };
@@ -0,0 +1,51 @@
1
+ import { SendCompletionDtoModeEnum } from '@epam/ai-dial-chat-api-client';
2
+ import { MessageCustomContent } from '@epam/ai-dial-chat-shared';
3
+ import { MutableRefObject } from 'react';
4
+ import { ConversationGenerationLifecycle, ConversationStateAccessor, ConversationStreamChannel, ConversationStreamOverlayNotifier, ConversationStreamTransport, StartStreamOptions } from './conversation-stream.types';
5
+ import { FrameScheduler } from './frame-scheduler';
6
+ import { createResumeIfAwaitingGeneration } from './generation-resume';
7
+ import { useConversationReloadErrors } from './useConversationReloadErrors';
8
+ import { useStreamPathState } from './useStreamPathState';
9
+ type PathState = ReturnType<typeof useStreamPathState>;
10
+ type ReloadErrors = ReturnType<typeof useConversationReloadErrors>;
11
+ /** Everything a stream session reads from `useConversationStream`: its capabilities, messages, refs and mutators. */
12
+ export interface StreamSessionContext {
13
+ transport: ConversationStreamTransport;
14
+ channel: ConversationStreamChannel | undefined;
15
+ overlay: ConversationStreamOverlayNotifier | undefined;
16
+ startGeneration: ConversationGenerationLifecycle['startGeneration'];
17
+ completeGeneration: ConversationGenerationLifecycle['completeGeneration'];
18
+ setConversation: ConversationStateAccessor['setConversation'];
19
+ conversationRef: ConversationStateAccessor['conversationRef'];
20
+ generationConflictMessage: string;
21
+ generationPersistenceErrorMessage: string;
22
+ onStreamErrorRef: MutableRefObject<((error: Error) => void) | undefined>;
23
+ batchChunksPerFrameRef: MutableRefObject<boolean>;
24
+ mountedRef: MutableRefObject<boolean>;
25
+ frameScheduler: FrameScheduler;
26
+ resumeGeneration: ReturnType<typeof createResumeIfAwaitingGeneration>;
27
+ activeGenerationIdsRef: PathState['activeGenerationIdsRef'];
28
+ latestGenerationIdsRef: PathState['latestGenerationIdsRef'];
29
+ resumingPathsRef: PathState['resumingPathsRef'];
30
+ bufferedGenerationsRef: PathState['bufferedGenerationsRef'];
31
+ stoppedGenerationIdsRef: PathState['stoppedGenerationIdsRef'];
32
+ addStreamingPath: PathState['addStreamingPath'];
33
+ removeStreamingPath: PathState['removeStreamingPath'];
34
+ setPathStoppable: PathState['setPathStoppable'];
35
+ releaseActiveGeneration: PathState['releaseActiveGeneration'];
36
+ isPathDisplayed: PathState['isPathDisplayed'];
37
+ reportReloadError: ReloadErrors['reportReloadError'];
38
+ clearReloadError: ReloadErrors['clearReloadError'];
39
+ }
40
+ /**
41
+ * One generation of `useConversationStream.startStream`: registers the
42
+ * generation for its path, sends the completion, applies chunks (batched per
43
+ * frame when asked), reloads the persisted conversation on completion, shows
44
+ * a failure on the message, recovers an interrupted or conflicted start, and
45
+ * saves an answer whose terminal save was rejected with `401`. Each generation
46
+ * keeps its own closures over its id, path and abort controller; the hook
47
+ * passes a fresh context built from the same values its callback closes over.
48
+ */
49
+ export declare const runStreamSession: ({ transport, channel, overlay, startGeneration, completeGeneration, setConversation, conversationRef, generationConflictMessage, generationPersistenceErrorMessage, onStreamErrorRef, batchChunksPerFrameRef, mountedRef, frameScheduler, resumeGeneration, activeGenerationIdsRef, latestGenerationIdsRef, resumingPathsRef, bufferedGenerationsRef, stoppedGenerationIdsRef, addStreamingPath, removeStreamingPath, setPathStoppable, releaseActiveGeneration, isPathDisplayed, reportReloadError, clearReloadError, }: StreamSessionContext, currentConversationId: string, userContent: string, messageIndex: number, model: string, customContent?: MessageCustomContent, generationId?: string, mode?: SendCompletionDtoModeEnum, options?: StartStreamOptions) => void;
50
+ export {};
51
+ //# sourceMappingURL=stream-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-session.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/stream-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAGL,KAAK,oBAAoB,EAE1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAa9C,OAAO,KAAK,EACV,+BAA+B,EAC/B,yBAAyB,EACzB,yBAAyB,EACzB,iCAAiC,EACjC,2BAA2B,EAC3B,kBAAkB,EAEnB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,gCAAgC,EAKjC,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,KAAK,SAAS,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEvD,KAAK,YAAY,GAAG,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEnE,qHAAqH;AACrH,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,2BAA2B,CAAC;IACvC,OAAO,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC/C,OAAO,EAAE,iCAAiC,GAAG,SAAS,CAAC;IACvD,eAAe,EAAE,+BAA+B,CAAC,iBAAiB,CAAC,CAAC;IACpE,kBAAkB,EAAE,+BAA+B,CAAC,oBAAoB,CAAC,CAAC;IAC1E,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IAC9D,eAAe,EAAE,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IAC9D,yBAAyB,EAAE,MAAM,CAAC;IAClC,iCAAiC,EAAE,MAAM,CAAC;IAC1C,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IACzE,sBAAsB,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClD,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC;IACtE,sBAAsB,EAAE,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC5D,sBAAsB,EAAE,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC5D,gBAAgB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAChD,sBAAsB,EAAE,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAC5D,uBAAuB,EAAE,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAC9D,gBAAgB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAChD,mBAAmB,EAAE,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACtD,gBAAgB,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAChD,uBAAuB,EAAE,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAC9D,eAAe,EAAE,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC9C,iBAAiB,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACrD,gBAAgB,EAAE,YAAY,CAAC,kBAAkB,CAAC,CAAC;CACpD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAC3B,0fA2BG,oBAAoB,EACvB,uBAAuB,MAAM,EAC7B,aAAa,MAAM,EACnB,cAAc,MAAM,EACpB,OAAO,MAAM,EACb,gBAAgB,oBAAoB,EACpC,eAAe,MAAM,EACrB,OAAM,yBAA4D,EAClE,UAAS,kBAAuB,KAC/B,IA2iBF,CAAC"}
@@ -0,0 +1,179 @@
1
+ import { safeDecodeURI as e } from "../../shared/string-utils.js";
2
+ import { GenerationConflictError as t, GenerationPersistenceError as n, StreamInterruptedError as r } from "../create-chat-stream-api.js";
3
+ import { getConversationPath as i } from "./conversation-path.js";
4
+ import { applyChunkToMessages as a } from "./apply-chunk.js";
5
+ import { restoreBufferedMessage as o } from "./buffered-generation.js";
6
+ import { fetchConversationForRecovery as s, findPendingBackgroundMessageIndex as c, hasGeneratedPayload as l, isAwaitingGenerationResume as u } from "./generation-resume.js";
7
+ import { resolveStreamErrorMessage as ee } from "./stream-errors.js";
8
+ import { SendCompletionDtoModeEnum as d } from "@epam/ai-dial-chat-api-client";
9
+ import { MessageRole as f, generateUUID as p } from "@epam/ai-dial-chat-shared";
10
+ //#region src/conversation/useConversationStream/stream-session.ts
11
+ var m = ({ transport: m, channel: h, overlay: g, startGeneration: te, completeGeneration: _, setConversation: v, conversationRef: y, generationConflictMessage: ne, generationPersistenceErrorMessage: b, onStreamErrorRef: x, batchChunksPerFrameRef: re, mountedRef: S, frameScheduler: C, resumeGeneration: w, activeGenerationIdsRef: T, latestGenerationIdsRef: E, resumingPathsRef: D, bufferedGenerationsRef: O, stoppedGenerationIdsRef: k, addStreamingPath: ie, removeStreamingPath: A, setPathStoppable: j, releaseActiveGeneration: M, isPathDisplayed: N, reportReloadError: ae, clearReloadError: P }, F, I, L, oe, se, ce, R = d.Append, le = {}) => {
12
+ let z = ce ?? p(), B = i(F);
13
+ C.flush(B), D.current.delete(B), T.current.set(B, z), E.current.set(B, z), j(B, !0);
14
+ let V;
15
+ R === d.Regenerate ? V = L : R === d.Edit && (V = L - 1);
16
+ let H = () => E.current.get(B) !== z, U = te(B, z), W = y.current?.messages[L];
17
+ W ? O.current.set(B, {
18
+ generationId: z,
19
+ messageIndex: L,
20
+ message: W
21
+ }) : O.current.delete(B), ie(B), g?.notifyGenerationStart?.(), h?.ensureConnected();
22
+ let G = () => {
23
+ H() || A(B), M(B, z), _(B, z), h?.notifyGenerationSettled?.();
24
+ }, ue = () => {
25
+ if (H()) return;
26
+ let e = O.current.get(B);
27
+ e && e.generationId === z && (e.message = {
28
+ ...e.message,
29
+ streamErrorMessage: b
30
+ }, x.current?.(new n()), N(B) && v((t) => {
31
+ if (!t || H() || !N(B)) return t;
32
+ let n = o(t, e);
33
+ return y.current = n, n;
34
+ }));
35
+ }, K = O.current.get(B), q = () => S.current && !H() && O.current.get(B) === K, J = async () => {
36
+ if (q()) {
37
+ if (!N(B)) K && O.current.delete(B);
38
+ else try {
39
+ let t = await m.getConversation(e(F));
40
+ if (!q()) return;
41
+ if (P(B), !N(B)) {
42
+ K && O.current.delete(B);
43
+ return;
44
+ }
45
+ if (c(t) !== -1) {
46
+ w(F, t, { seedMessage: K?.message });
47
+ return;
48
+ }
49
+ if (K && K.messageIndex === t.messages.length - 1 && u(t) && l(K.message)) {
50
+ ue();
51
+ return;
52
+ }
53
+ K && O.current.delete(B), v(t), y.current = t;
54
+ } catch {
55
+ q() && ae(B, J, q);
56
+ }
57
+ }
58
+ }, Y = {
59
+ signal: U.signal,
60
+ onChunk: (e) => {
61
+ if (H()) return;
62
+ let t = O.current.get(B);
63
+ if (t?.generationId === z) {
64
+ let n = a([t.message], 0, e);
65
+ n && (t.message = n[0]);
66
+ }
67
+ N(B) && (re.current && t?.generationId === z ? C.schedule(B, () => {
68
+ let e = O.current.get(B);
69
+ if (H() || !N(B) || e?.generationId !== z) return;
70
+ let t = { ...e };
71
+ v((e) => {
72
+ if (!e) return e;
73
+ let n = o(e, t);
74
+ return y.current = n, n;
75
+ });
76
+ }) : v((t) => {
77
+ if (!t) return t;
78
+ let n = O.current.get(B), r;
79
+ if (n?.generationId === z) r = o(t, n);
80
+ else {
81
+ let n = a(t.messages, L, e);
82
+ if (!n) return t;
83
+ r = {
84
+ ...t,
85
+ messages: n
86
+ };
87
+ }
88
+ return y.current = r, r;
89
+ }));
90
+ },
91
+ onComplete: async () => {
92
+ C.flush(B), G(), k.current.has(z) ? k.current.delete(z) : H() || g?.notifyGenerationEnd?.(), await J();
93
+ },
94
+ onError: (e) => {
95
+ C.flush(B), x.current?.(e), e instanceof r && !H() ? fe(e) : e instanceof t && le.resumeOnConflict && !H() ? pe(e) : X(e);
96
+ }
97
+ }, X = (e) => {
98
+ let t = O.current.get(B), r = t?.generationId === z ? t : void 0;
99
+ r && !(e instanceof n) && O.current.delete(B), G(), r && m.saveConversation && e instanceof n && e.status === 401 ? de(e, r, m.saveConversation.bind(m)) : Z(e, r);
100
+ }, Z = (e, t) => {
101
+ if (t && e instanceof n && (t.message = {
102
+ ...t.message,
103
+ streamErrorMessage: b
104
+ }), H() || !N(B)) return;
105
+ let r = ee(e, ne, b);
106
+ v((e) => {
107
+ if (!e || H() || !N(B)) return e;
108
+ let n = t?.generationId === z ? o(e, t) : e, i = {
109
+ ...n,
110
+ messages: n.messages.map((e, t) => t === L ? {
111
+ ...e,
112
+ streamErrorMessage: r
113
+ } : e)
114
+ };
115
+ return y.current = i, i;
116
+ });
117
+ }, de = async (t, n, r) => {
118
+ let i = () => S.current && !H() && O.current.get(B) === n;
119
+ try {
120
+ let a = await m.getConversation(e(F));
121
+ if (!i()) return;
122
+ if (n.messageIndex !== a.messages.length - 1 || !u(a)) {
123
+ Z(t, n);
124
+ return;
125
+ }
126
+ let s = t.terminalMarker ? {
127
+ ...n,
128
+ message: {
129
+ ...n.message,
130
+ ...t.terminalMarker
131
+ }
132
+ } : n, c = await r(B, o(a, s));
133
+ if (!i() || (O.current.delete(B), !N(B))) return;
134
+ v(c), y.current = c;
135
+ } catch {
136
+ i() && Z(t, n);
137
+ }
138
+ }, Q = () => {
139
+ G(), k.current.has(z) ? k.current.delete(z) : H() || g?.notifyGenerationEnd?.();
140
+ }, fe = async (t) => {
141
+ D.current.add(B);
142
+ let n = await s(() => m.getConversation(e(F)), H);
143
+ $(n, t, !1);
144
+ }, pe = async (t) => {
145
+ T.current.get(B) === z && j(B, !1), D.current.add(B);
146
+ let n = await s(() => m.getConversation(e(F)), H, (e) => e.messages.length === L && e.messages.at(-1)?.role === f.User);
147
+ $(n, t, !0);
148
+ }, $ = (e, t, n) => {
149
+ if (H()) {
150
+ G();
151
+ return;
152
+ }
153
+ let r = e?.messages[e.messages.length - 1], i = e != null && e.messages.length - 1 === L && r?.role === f.Assistant, a = n && e != null && c(e) !== -1;
154
+ if (!e || !i && !a) {
155
+ D.current.delete(B), X(t);
156
+ return;
157
+ }
158
+ let o = O.current.get(B), s = o?.generationId === z ? o : void 0;
159
+ u(e) ? w(F, e, {
160
+ seedMessage: i ? s?.message : void 0,
161
+ skipDedupe: !0,
162
+ onSettled: Q
163
+ }) : (D.current.delete(B), s && O.current.delete(B), N(B) && (v(e), y.current = e), Q());
164
+ };
165
+ (async () => {
166
+ try {
167
+ let e = h?.channelId ?? await h?.waitForChannel(2e4) ?? void 0, t = k.current.has(z);
168
+ if (U.signal.aborted || H() || t) {
169
+ O.current.get(B)?.generationId === z && O.current.delete(B), H() || A(B), M(B, z), _(B, z), h?.notifyGenerationSettled?.(), t ? k.current.delete(z) : H() || g?.notifyGenerationEnd?.();
170
+ return;
171
+ }
172
+ m.streamCompletion(B, I, oe, Y, se, z, R, V, e);
173
+ } catch (e) {
174
+ Y.onError(e instanceof Error ? e : Error(String(e)));
175
+ }
176
+ })();
177
+ };
178
+ //#endregion
179
+ export { m as runStreamSession };
@@ -0,0 +1,25 @@
1
+ import { MutableRefObject } from 'react';
2
+ interface ConversationReloadFailure {
3
+ retry: () => Promise<void>;
4
+ isCurrent: () => boolean;
5
+ }
6
+ interface UseConversationReloadErrorsParams {
7
+ conversationId: string | undefined;
8
+ mountedRef: MutableRefObject<boolean>;
9
+ }
10
+ /**
11
+ * Terminal-read failures of `useConversationStream`, per conversation path:
12
+ * records a failed read with its retry, clears it on success or a new
13
+ * stream, and retries the displayed conversation's read once at a time. The
14
+ * ref is the source of truth; the state copies re-render the host.
15
+ */
16
+ export declare const useConversationReloadErrors: ({ conversationId, mountedRef, }: UseConversationReloadErrorsParams) => {
17
+ reloadFailuresRef: import('react').RefObject<Map<string, ConversationReloadFailure>>;
18
+ reloadFailures: Map<string, ConversationReloadFailure>;
19
+ retrying: Set<ConversationReloadFailure>;
20
+ clearReloadError: (path: string) => void;
21
+ reportReloadError: (path: string, retry: () => Promise<void>, isCurrent: () => boolean) => void;
22
+ retryConversationReload: () => Promise<void>;
23
+ };
24
+ export {};
25
+ //# sourceMappingURL=useConversationReloadErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConversationReloadErrors.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/useConversationReloadErrors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAiC,MAAM,OAAO,CAAC;AAG7E,UAAU,yBAAyB;IACjC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,SAAS,EAAE,MAAM,OAAO,CAAC;CAC1B;AAED,UAAU,iCAAiC;IACzC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IAEnC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACvC;AAED;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GAAI,iCAGzC,iCAAiC;;;;6BAWzB,MAAM;8BAWN,MAAM,SAAS,MAAM,OAAO,CAAC,IAAI,CAAC,aAAa,MAAM,OAAO;;CAmCtE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { getConversationPath as e } from "./conversation-path.js";
2
+ import { useCallback as t, useRef as n, useState as r } from "react";
3
+ //#region src/conversation/useConversationStream/useConversationReloadErrors.ts
4
+ var i = ({ conversationId: i, mountedRef: a }) => {
5
+ let o = n(/* @__PURE__ */ new Map()), [s, c] = r(o.current), l = n(/* @__PURE__ */ new Set()), [u, d] = r(l.current);
6
+ return {
7
+ reloadFailuresRef: o,
8
+ reloadFailures: s,
9
+ retrying: u,
10
+ clearReloadError: t((e) => {
11
+ if (!o.current.has(e)) return;
12
+ let t = new Map(o.current);
13
+ t.delete(e), o.current = t, a.current && c(t);
14
+ }, [a]),
15
+ reportReloadError: t((e, t, n) => {
16
+ if (!a.current || !n()) return;
17
+ let r = new Map(o.current);
18
+ r.set(e, {
19
+ retry: t,
20
+ isCurrent: n
21
+ }), o.current = r, c(r);
22
+ }, [a]),
23
+ retryConversationReload: t(async () => {
24
+ if (!i) return;
25
+ let t = o.current.get(e(i));
26
+ if (t && t.isCurrent() && !l.current.has(t)) {
27
+ l.current.add(t), d(new Set(l.current));
28
+ try {
29
+ await t.retry();
30
+ } finally {
31
+ l.current.delete(t), a.current && d(new Set(l.current));
32
+ }
33
+ }
34
+ }, [i, a])
35
+ };
36
+ };
37
+ //#endregion
38
+ export { i as useConversationReloadErrors };