@epam/ai-dial-chat-hooks 1.3.0-dev.98 → 1.3.0-rc.1

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 +19 -4
  124. package/conversation/create-chat-stream-api.d.ts.map +1 -1
  125. package/conversation/create-chat-stream-api.js +67 -61
  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 +32 -2
  159. package/conversation/useConversationStream/generation-resume.d.ts.map +1 -1
  160. package/conversation/useConversationStream/generation-resume.js +114 -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 -339
  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
@@ -18,7 +18,7 @@ var a = "conversation.json", o = /^conversations\/.*\.json$/, s = "res/", c = (e
18
18
  for (let e of d) {
19
19
  if (e.endsWith("/") || !e.startsWith(s)) continue;
20
20
  let t = e.slice(4);
21
- !t || !n(t) || m.set(t, u[e]);
21
+ t && n(t) && m.set(t, u[e]);
22
22
  }
23
23
  return {
24
24
  envelope: p,
@@ -2,19 +2,31 @@ import { SendCompletionDtoModeEnum } from '@epam/ai-dial-chat-api-client';
2
2
  import { MessageCustomContent, StreamChunk } from '@epam/ai-dial-chat-shared';
3
3
  /** Safe fallback for hosts that do not supply a translated persistence warning. */
4
4
  export declare const DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE = "The response could not be saved. It is still shown here, but may be lost if you reload or leave this page. Copy it before continuing.";
5
+ /** Safe fallback for hosts that do not supply a translated interrupted-generation text. */
6
+ export declare const DEFAULT_GENERATION_INTERRUPTED_ERROR_MESSAGE = "No answer was received for this message. The response may have been interrupted. Try again.";
7
+ /** Terminal markers the rejected write of a stopped, aborted, or failed answer carried. */
8
+ export interface GenerationPersistenceTerminalMarker {
9
+ /** Error text the failed write stored; `''` asks the host for its localized fallback. */
10
+ streamErrorMessage?: string;
11
+ /** `true` when the rejected write recorded a user stop. */
12
+ wasStoppedByUser?: boolean;
13
+ }
5
14
  /** Identifies a failed terminal save independently of the model's generation outcome. */
6
15
  export declare class GenerationPersistenceError extends Error {
7
16
  static readonly type = "conversation_save_failed";
8
17
  /** HTTP status of the rejected terminal write, when the backend reported one. */
9
18
  readonly status?: number;
19
+ /** Terminal markers of an answer that did not complete; `undefined` for a completed one. */
20
+ readonly terminalMarker?: GenerationPersistenceTerminalMarker;
10
21
  /**
11
22
  * Creates the error with the default persistence message.
12
23
  * @param status - HTTP status of the rejected terminal write, if known
24
+ * @param terminalMarker - markers the rejected write of an answer that did not complete carried
13
25
  */
14
- constructor(status?: number);
26
+ constructor(status?: number, terminalMarker?: GenerationPersistenceTerminalMarker);
15
27
  }
16
28
  /** Fallback text of a {@link GenerationConflictError} when no message is supplied. */
17
- export declare const DEFAULT_GENERATION_CONFLICT_MESSAGE = "A response is already being generated in this conversation. Wait for it to finish or stop it before sending another message.";
29
+ export declare const DEFAULT_GENERATION_CONFLICT_MESSAGE = "A response is already being generated in this conversation. Wait for it to finish before sending another message.";
18
30
  /**
19
31
  * Reported through `onError` when the backend rejects a completion because
20
32
  * another generation is already active on the same conversation — what a
@@ -27,8 +39,9 @@ export declare class GenerationConflictError extends Error {
27
39
  }
28
40
  /**
29
41
  * Reported through `onError` when DIAL Core itself signals a failure with an
30
- * in-band `{ error: { message } }` SSE chunk. Its `message` is upstream text
31
- * intended for the user, unlike a transport failure (failed `fetch`, non-OK
42
+ * in-band `{ error: { message, display_message? } }` SSE chunk. Its `message`
43
+ * is upstream text intended for the user — the chunk's `display_message` when
44
+ * present, else its `message` — unlike a transport failure (failed `fetch`, non-OK
32
45
  * status, broken stream), whose message is technical detail. A custom
33
46
  * transport raises this for any user-facing upstream error text.
34
47
  */
@@ -70,6 +83,8 @@ export interface CreateChatStreamApiDeps {
70
83
  completionsBasePath: string;
71
84
  /** Resolves the caller's current timezone, attached as `X-Timezone` when non-empty. */
72
85
  getTimezone?: () => string | undefined;
86
+ /** Resolves the caller's current UI language, attached as `X-Lang` when non-empty. */
87
+ getLanguage?: () => string | undefined;
73
88
  /** `fetch` implementation to issue requests through. Defaults to the global `fetch`. */
74
89
  fetchImpl?: typeof fetch;
75
90
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"create-chat-stream-api.d.ts","sourceRoot":"","sources":["../../src/conversation/create-chat-stream-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAOnC,mFAAmF;AACnF,eAAO,MAAM,4CAA4C,0IACgF,CAAC;AAE1I,yFAAyF;AACzF,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,MAAM,CAAC,QAAQ,CAAC,IAAI,8BAA8B;IAElD,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;gBACS,MAAM,CAAC,EAAE,MAAM;CAK5B;AAED,sFAAsF;AACtF,eAAO,MAAM,mCAAmC,iIACgF,CAAC;AAEjI;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,GAAE,MAA4C;CAIlE;AAED;;;;;;GAMG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,KAAK,CAAC,EAAE,OAAO;CAI5B;AAED,kEAAkE;AAClE,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM;CAK3B;AAMD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD,qFAAqF;AACrF,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,0FAA0F;AAC1F,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,iFAAiF;IACjF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACvC,wFAAwF;IACxF,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AA4GD,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,2BAA2B,EACpC,aAAa,CAAC,EAAE,oBAAoB,EACpC,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,yBAAyB,EAChC,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,KACrB,IAAI,CAAC;IACV,cAAc,EAAE,CAAC,GAAG,EAAE;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,uBAAuB,KAC5B,aAoKF,CAAC"}
1
+ {"version":3,"file":"create-chat-stream-api.d.ts","sourceRoot":"","sources":["../../src/conversation/create-chat-stream-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC/E,OAAO,KAAK,EACV,oBAAoB,EACpB,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAOnC,mFAAmF;AACnF,eAAO,MAAM,4CAA4C,0IACgF,CAAC;AAE1I,2FAA2F;AAC3F,eAAO,MAAM,4CAA4C,gGACsC,CAAC;AAEhG,2FAA2F;AAC3F,MAAM,WAAW,mCAAmC;IAClD,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,yFAAyF;AACzF,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,MAAM,CAAC,QAAQ,CAAC,IAAI,8BAA8B;IAElD,iFAAiF;IACjF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEzB,4FAA4F;IAC5F,QAAQ,CAAC,cAAc,CAAC,EAAE,mCAAmC,CAAC;IAE9D;;;;OAIG;gBAED,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,mCAAmC;CAOvD;AAED,sFAAsF;AACtF,eAAO,MAAM,mCAAmC,sHACqE,CAAC;AAEtH;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,GAAE,MAA4C;CAIlE;AAED;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;gBACnC,KAAK,CAAC,EAAE,OAAO;CAI5B;AAED,kEAAkE;AAClE,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM;CAK3B;AAMD,eAAO,MAAM,8BAA8B,QAAS,CAAC;AAErD,qFAAqF;AACrF,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACtC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,0FAA0F;AAC1F,MAAM,WAAW,uBAAuB;IACtC,yEAAyE;IACzE,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IAClC,2DAA2D;IAC3D,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,iFAAiF;IACjF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,uFAAuF;IACvF,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACvC,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACvC,wFAAwF;IACxF,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAkID,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,2BAA2B,EACpC,aAAa,CAAC,EAAE,oBAAoB,EACpC,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,yBAAyB,EAChC,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,MAAM,KACrB,IAAI,CAAC;IACV,cAAc,EAAE,CAAC,GAAG,EAAE;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,uBAAuB,KAC5B,aA2LF,CAAC"}
@@ -1,36 +1,33 @@
1
1
  //#region src/conversation/create-chat-stream-api.ts
2
- var e = { "Content-Type": "application/json" }, t = 409, n = "The response could not be saved. It is still shown here, but may be lost if you reload or leave this page. Copy it before continuing.", r = class extends Error {
2
+ var e = { "Content-Type": "application/json" }, t = 409, n = "The response could not be saved. It is still shown here, but may be lost if you reload or leave this page. Copy it before continuing.", r = "No answer was received for this message. The response may have been interrupted. Try again.", i = class extends Error {
3
3
  static type = "conversation_save_failed";
4
4
  status;
5
- constructor(e) {
6
- super(n), this.name = "GenerationPersistenceError", this.status = e;
5
+ terminalMarker;
6
+ constructor(e, t) {
7
+ super(n), this.name = "GenerationPersistenceError", this.status = e, this.terminalMarker = t;
7
8
  }
8
- }, i = "A response is already being generated in this conversation. Wait for it to finish or stop it before sending another message.", a = class extends Error {
9
- constructor(e = i) {
9
+ }, a = "A response is already being generated in this conversation. Wait for it to finish before sending another message.", o = class extends Error {
10
+ constructor(e = a) {
10
11
  super(e), this.name = "GenerationConflictError";
11
12
  }
12
- }, o = class extends Error {
13
+ }, s = class extends Error {
13
14
  constructor(e) {
14
15
  super(e), this.name = "StreamUpstreamError";
15
16
  }
16
- }, s = class extends Error {
17
+ }, c = class extends Error {
17
18
  constructor(e) {
18
19
  super("The completion stream was interrupted", { cause: e }), this.name = "StreamInterruptedError";
19
20
  }
20
- }, c = class extends Error {
21
+ }, l = class extends Error {
21
22
  status;
22
23
  constructor(e) {
23
24
  super(`stopCompletion failed: ${e}`), this.name = "StopCompletionError", this.status = e;
24
25
  }
25
- }, l = 45e3, u = (e, t) => {
26
+ }, u = 45e3, d = (e, t) => {
26
27
  let n = Date.now(), r, i = !1, a = () => {
27
28
  if (i) return;
28
29
  let o = Date.now() - n;
29
- if (o >= e) {
30
- t();
31
- return;
32
- }
33
- clearTimeout(r), r = setTimeout(a, e - o);
30
+ o >= e ? t() : (clearTimeout(r), r = setTimeout(a, e - o));
34
31
  }, o = () => {
35
32
  document.visibilityState === "visible" && a();
36
33
  }, s = typeof window < "u" && typeof document < "u";
@@ -42,92 +39,101 @@ var e = { "Content-Type": "application/json" }, t = 409, n = "The response could
42
39
  i || (i = !0, clearTimeout(r), s && (document.removeEventListener("visibilitychange", o), window.removeEventListener("online", a), window.removeEventListener("pageshow", a)));
43
40
  }
44
41
  };
45
- }, d = (e) => typeof e == "object" && !!e && e.name === "AbortError", f = (e) => {
42
+ }, f = (e) => typeof e == "object" && !!e && e.name === "AbortError", p = (e) => {
46
43
  let { status: t } = e;
47
44
  return typeof t == "number" ? t : void 0;
48
- }, p = (e, t, n) => {
49
- let i = e.trim();
50
- if (!i || i.startsWith(":") || !i.startsWith("data: ")) return;
51
- let a = i.slice(6);
45
+ }, m = (e) => {
46
+ let { streamErrorMessage: t, wasStoppedByUser: n } = e;
47
+ if (n === !0) return { wasStoppedByUser: !0 };
48
+ if (typeof t == "string") return { streamErrorMessage: t };
49
+ }, h = (e, t, n) => {
50
+ let r = e.trim();
51
+ if (!r || r.startsWith(":") || !r.startsWith("data: ")) return;
52
+ let a = r.slice(6);
52
53
  if (a !== "[DONE]") try {
53
54
  let e = JSON.parse(a);
54
55
  if (e.error) {
55
- n(e.error.type === r.type ? new r(f(e.error)) : new o(e.error.message));
56
+ n(e.error.type === i.type ? new i(p(e.error), m(e.error)) : new s(e.error.display_message ?? e.error.message));
56
57
  return;
57
58
  }
58
59
  t(e);
59
60
  } catch {}
60
- }, m = (n) => {
61
+ }, g = (n) => {
61
62
  let { completionsBasePath: r } = n, i = (...e) => (n.fetchImpl ?? fetch)(...e);
62
63
  return {
63
- streamCompletion: (o, c, l, f, m, h, g, _, v) => {
64
- let { onChunk: y, onComplete: b, onError: x, signal: S } = f;
64
+ streamCompletion: (a, l, u, p, m, g, _, v, y) => {
65
+ let { onChunk: b, onComplete: x, onError: S, signal: C } = p;
65
66
  (async () => {
66
- let f;
67
+ let p;
67
68
  try {
68
- let t = n.getTimezone?.();
69
- f = await i(`${r}/completions`, {
69
+ let t = n.getTimezone?.(), o = n.getLanguage?.();
70
+ p = await i(`${r}/completions`, {
70
71
  method: "POST",
71
72
  credentials: "include",
72
- signal: S,
73
+ signal: C,
73
74
  headers: {
74
75
  ...e,
75
76
  ...n.getCsrfToken() == null ? {} : { "X-CSRF-Token": n.getCsrfToken() },
76
- ...t ? { "X-Timezone": t } : {}
77
+ ...t ? { "X-Timezone": t } : {},
78
+ ...o ? { "X-Lang": o } : {}
77
79
  },
78
80
  body: JSON.stringify({
79
- path: o,
80
- message: c ?? "",
81
- model: l,
81
+ path: a,
82
+ message: l ?? "",
83
+ model: u,
82
84
  custom_content: m || {},
83
- ...h != null && { generationId: h },
84
- ...g != null && { mode: g },
85
- ..._ != null && { messageIndex: _ },
86
- ...v != null && { clientChannelId: v }
85
+ ...g != null && { generationId: g },
86
+ ..._ != null && { mode: _ },
87
+ ...v != null && { messageIndex: v },
88
+ ...y != null && { clientChannelId: y }
87
89
  })
88
90
  });
89
91
  } catch (e) {
90
- if (d(e)) return;
91
- x(new s(e));
92
+ if (f(e)) return;
93
+ S(new c(e));
92
94
  return;
93
95
  }
94
- let C = f.headers.get("x-csrf-token");
95
- if (C && n.setCsrfToken(C), !f.ok) {
96
- if (f.status === t) {
97
- x(new a());
96
+ let w = p.headers.get("x-csrf-token");
97
+ if (w && n.setCsrfToken(w), !p.ok) {
98
+ if (p.status === t) {
99
+ S(new o());
98
100
  return;
99
101
  }
100
- x(/* @__PURE__ */ Error(`Stream request failed with status ${f.status}`));
102
+ S(/* @__PURE__ */ Error(`Stream request failed with status ${p.status}`));
101
103
  return;
102
104
  }
103
- if (!f.body) {
104
- x(/* @__PURE__ */ Error("No response body"));
105
+ if (!p.body) {
106
+ S(/* @__PURE__ */ Error("No response body"));
105
107
  return;
106
108
  }
107
- let w = f.body.getReader(), T = new TextDecoder(), E = "", D = !1, O = !1, k = (e) => {
108
- D || (D = !0, A.stop(), x(e));
109
- }, A = u(n.idleTimeoutMs ?? 45e3, () => {
110
- O = !0, k(new s()), w.cancel().catch(() => void 0);
109
+ let T = p.body.getReader(), E = new TextDecoder(), D = "", O = !1, k = !1, A, j = (e) => {
110
+ O || (O = !0, P.stop(), S(e));
111
+ }, M = (e) => {
112
+ e instanceof s ? A ??= e : j(e);
113
+ }, N = (e) => {
114
+ A ?? b(e);
115
+ }, P = d(n.idleTimeoutMs ?? 45e3, () => {
116
+ k = !0, j(A ?? new c()), T.cancel().catch(() => void 0);
111
117
  });
112
118
  try {
113
119
  for (;;) {
114
- let { done: e, value: t } = await w.read();
115
- if (O) break;
120
+ let { done: e, value: t } = await T.read();
121
+ if (k) break;
116
122
  if (e) {
117
- E.trim() && p(E, y, k);
123
+ D.trim() && h(D, N, M);
118
124
  break;
119
125
  }
120
- A.touch(), E += T.decode(t, { stream: !0 });
121
- let n = E.split("\n");
122
- E = n.pop() ?? "";
123
- for (let e of n) p(e, y, k);
126
+ P.touch(), D += E.decode(t, { stream: !0 });
127
+ let n = D.split("\n");
128
+ D = n.pop() ?? "";
129
+ for (let e of n) h(e, N, M);
124
130
  }
125
- D || (D = !0, b());
131
+ A ? j(A) : O || (O = !0, x());
126
132
  } catch (e) {
127
- if (d(e)) return;
128
- k(new s(e));
133
+ if (f(e)) return;
134
+ j(A ?? new c(e));
129
135
  } finally {
130
- A.stop(), w.releaseLock();
136
+ P.stop(), T.releaseLock();
131
137
  }
132
138
  })();
133
139
  },
@@ -141,9 +147,9 @@ var e = { "Content-Type": "application/json" }, t = 409, n = "The response could
141
147
  },
142
148
  body: JSON.stringify(t)
143
149
  }), o = a.headers.get("x-csrf-token");
144
- if (o && n.setCsrfToken(o), !a.ok) throw new c(a.status);
150
+ if (o && n.setCsrfToken(o), !a.ok) throw new l(a.status);
145
151
  }
146
152
  };
147
153
  };
148
154
  //#endregion
149
- export { i as DEFAULT_GENERATION_CONFLICT_MESSAGE, n as DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE, l as DEFAULT_STREAM_IDLE_TIMEOUT_MS, a as GenerationConflictError, r as GenerationPersistenceError, c as StopCompletionError, s as StreamInterruptedError, o as StreamUpstreamError, m as createChatStreamApi };
155
+ export { a as DEFAULT_GENERATION_CONFLICT_MESSAGE, r as DEFAULT_GENERATION_INTERRUPTED_ERROR_MESSAGE, n as DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE, u as DEFAULT_STREAM_IDLE_TIMEOUT_MS, o as GenerationConflictError, i as GenerationPersistenceError, l as StopCompletionError, c as StreamInterruptedError, s as StreamUpstreamError, g as createChatStreamApi };
@@ -0,0 +1,30 @@
1
+ /** Lifecycle of a tracked client generation. */
2
+ export declare enum ClientGenerationStatus {
3
+ Active = "active",
4
+ Done = "done"
5
+ }
6
+ /** A generation tracked under an opaque conversation path. */
7
+ export interface GenerationEntry {
8
+ /** Caller-provided generation identity. */
9
+ generationId: string;
10
+ /** Exact conversation path. */
11
+ path: string;
12
+ /** Controller cancelled when an active generation is replaced. */
13
+ abortController: AbortController;
14
+ /** Current lifecycle state. */
15
+ status: ClientGenerationStatus;
16
+ }
17
+ /** Instance-owned registry; it has no automatic teardown or persistence. */
18
+ export interface GenerationRegistry {
19
+ /** Starts a generation, aborting the prior active entry on this path. */
20
+ startGeneration: (path: string, generationId: string) => AbortController;
21
+ /** Completes the entry only if its generation identity still matches. */
22
+ completeGeneration: (path: string, generationId: string) => void;
23
+ /** Returns the entry for the exact path. */
24
+ getGeneration: (path: string) => GenerationEntry | undefined;
25
+ /** Whether any tracked generation is active. */
26
+ hasActiveGeneration: () => boolean;
27
+ }
28
+ /** Creates an independent generation registry with stable operations. */
29
+ export declare const createGenerationRegistry: () => GenerationRegistry;
30
+ //# sourceMappingURL=generation-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generation-registry.d.ts","sourceRoot":"","sources":["../../src/conversation/generation-registry.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,oBAAY,sBAAsB;IAChC,MAAM,WAAW;IACjB,IAAI,SAAS;CACd;AAED,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,kEAAkE;IAClE,eAAe,EAAE,eAAe,CAAC;IACjC,+BAA+B;IAC/B,MAAM,EAAE,sBAAsB,CAAC;CAChC;AAED,4EAA4E;AAC5E,MAAM,WAAW,kBAAkB;IACjC,yEAAyE;IACzE,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,eAAe,CAAC;IACzE,yEAAyE;IACzE,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,4CAA4C;IAC5C,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,eAAe,GAAG,SAAS,CAAC;IAC7D,gDAAgD;IAChD,mBAAmB,EAAE,MAAM,OAAO,CAAC;CACpC;AAED,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,QAAO,kBA+B3C,CAAC"}
@@ -0,0 +1,33 @@
1
+ //#region src/conversation/generation-registry.ts
2
+ var e = /* @__PURE__ */ function(e) {
3
+ return e.Active = "active", e.Done = "done", e;
4
+ }({}), t = () => {
5
+ let e = /* @__PURE__ */ new Map();
6
+ return {
7
+ startGeneration: (t, n) => {
8
+ let r = e.get(t);
9
+ r?.status === "active" && r.abortController.abort();
10
+ let i = new AbortController();
11
+ return e.set(t, {
12
+ path: t,
13
+ generationId: n,
14
+ abortController: i,
15
+ status: "active"
16
+ }), i;
17
+ },
18
+ completeGeneration: (t, n) => {
19
+ let r = e.get(t);
20
+ r?.generationId === n && e.set(t, {
21
+ ...r,
22
+ status: "done"
23
+ });
24
+ },
25
+ getGeneration: (t) => e.get(t),
26
+ hasActiveGeneration: () => {
27
+ for (let t of e.values()) if (t.status === "active") return !0;
28
+ return !1;
29
+ }
30
+ };
31
+ };
32
+ //#endregion
33
+ export { e as ClientGenerationStatus, t as createGenerationRegistry };
@@ -20,6 +20,12 @@ export declare const isMessageStreaming: (message: Message, messageIndex: number
20
20
  * because it *is* the regenerated message.
21
21
  */
22
22
  export declare const getLastDeploymentId: (messages: Message[]) => string | null;
23
+ /**
24
+ * Returns, for each message, the deployment it ran on: its own `deploymentId`,
25
+ * otherwise the model set by the latest preceding `model_changed` status
26
+ * message, otherwise `initialModelId`.
27
+ */
28
+ export declare const getEffectiveDeploymentIds: (messages: readonly Message[], initialModelId?: string) => (string | undefined)[];
23
29
  /** True when `message` is an assistant message carrying at least one stage. */
24
30
  export declare const messageHasStages: (message: Message) => boolean;
25
31
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"message-utils.d.ts","sourceRoot":"","sources":["../../src/conversation/message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,6BAA6B,EAElC,OAAO,EAEP,cAAc,EAGf,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,EAChB,cAAc,MAAM,EACpB,eAAe,MAAM,EACrB,mBAAmB,OAAO,KACzB,OAGqC,CAAC;AAEzC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,OAAO,EAAE,KAAG,MAAM,GAAG,IAYlE,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,KAAG,OAED,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,GAC9C,UAAU,OAAO,EAAE,KAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAO5B,CAAC;AA2BF;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,GAC7C,YAAY,6BAA6B,GAAG,SAAS,KACpD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAQ5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GACrC,UAAU,OAAO,EAAE,KAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAkB5B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,MAAM,EACtB,UAAU,OAAO,EAAE,EACnB,SAAS,SAAS,MAAM,EAAE,KACzB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,SAoBrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,MAAM,GAAG,SAAS,KACxB,cAIF,CAAC"}
1
+ {"version":3,"file":"message-utils.d.ts","sourceRoot":"","sources":["../../src/conversation/message-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,6BAA6B,EAElC,OAAO,EAEP,cAAc,EAGf,MAAM,2BAA2B,CAAC;AAEnC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,OAAO,EAChB,cAAc,MAAM,EACpB,eAAe,MAAM,EACrB,mBAAmB,OAAO,KACzB,OAGqC,CAAC;AAEzC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,OAAO,EAAE,KAAG,MAAM,GAAG,IAYlE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,UAAU,SAAS,OAAO,EAAE,EAC5B,iBAAiB,MAAM,KACtB,CAAC,MAAM,GAAG,SAAS,CAAC,EActB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,gBAAgB,GAAI,SAAS,OAAO,KAAG,OAED,CAAC;AAEpD;;;;GAIG;AACH,eAAO,MAAM,mCAAmC,GAC9C,UAAU,OAAO,EAAE,KAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAO5B,CAAC;AA2BF;;;;;;GAMG;AACH,eAAO,MAAM,kCAAkC,GAC7C,YAAY,6BAA6B,GAAG,SAAS,KACpD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAQ5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B,GACrC,UAAU,OAAO,EAAE,KAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAkB5B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GACnC,gBAAgB,MAAM,EACtB,UAAU,OAAO,EAAE,EACnB,SAAS,SAAS,MAAM,EAAE,KACzB;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,SAoBrD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,GAClC,OAAO,MAAM,GAAG,SAAS,KACxB,cAIF,CAAC"}
@@ -7,24 +7,28 @@ var i = (t, n, r, i) => i && n === r - 1 && t.role === e.Assistant, a = (e) => {
7
7
  if (i.deploymentId) return i.deploymentId;
8
8
  }
9
9
  return null;
10
- }, o = (t) => t.role === e.Assistant && (t.custom_content?.stages?.length ?? 0) > 0, s = (t) => {
10
+ }, o = (e, t) => {
11
+ let i = [], a = t;
12
+ for (let t of e) r(t) && t.custom_content?.event_type === n.ModelChanged && (a = t.custom_content.new_deployment_id), i.push(t.deploymentId ?? a);
13
+ return i;
14
+ }, s = (t) => t.role === e.Assistant && (t.custom_content?.stages?.length ?? 0) > 0, c = (t) => {
11
15
  for (let n = t.length - 1; n >= 0; n--) if (t[n].role === e.User) return t[n].custom_content?.configuration_value;
12
- }, c = (e) => {
16
+ }, l = (e) => {
13
17
  if (typeof e.default == "boolean") return e.default;
14
18
  let t = e.oneOf;
15
19
  if (Array.isArray(t) && t.length === 1) {
16
20
  let e = t[0];
17
21
  if (typeof e == "object" && e && "const" in e && typeof e.const == "boolean") return e.const;
18
22
  }
19
- }, l = (e) => {
23
+ }, u = (e) => {
20
24
  let t = e?.properties;
21
25
  if (t == null) return;
22
26
  let n = Object.entries(t).flatMap(([e, t]) => {
23
- let n = c(t);
27
+ let n = l(t);
24
28
  return n === void 0 ? [] : [[e, n]];
25
29
  });
26
30
  return n.length > 0 ? Object.fromEntries(n) : void 0;
27
- }, u = (t) => {
31
+ }, d = (t) => {
28
32
  let n = -1;
29
33
  for (let r = t.length - 1; r >= 0; r--) if (t[r].role === e.User) {
30
34
  n = r;
@@ -34,23 +38,23 @@ var i = (t, n, r, i) => i && n === r - 1 && t.role === e.Assistant, a = (e) => {
34
38
  for (let i = n + 1; i < t.length; i++) {
35
39
  let n = t[i];
36
40
  if (n.role !== e.Assistant) continue;
37
- let a = l(n.custom_content?.form_schema);
41
+ let a = u(n.custom_content?.form_schema);
38
42
  a && (r = {
39
43
  ...r,
40
44
  ...a
41
45
  });
42
46
  }
43
47
  return r;
44
- }, d = (t, n, r) => {
48
+ }, f = (t, n, r) => {
45
49
  let i = n.length - 1, a = n[i];
46
50
  if (a?.role !== e.Assistant) return;
47
- let o = l(a.custom_content?.form_schema);
51
+ let o = u(a.custom_content?.form_schema);
48
52
  if (!o) return;
49
53
  let s = Object.fromEntries(r.filter((e) => e in o).sort().map((e) => [e, o[e]]));
50
54
  if (Object.keys(s).length !== 0) return {
51
55
  key: `${t}|${i}|${JSON.stringify(s)}`,
52
56
  values: s
53
57
  };
54
- }, f = (e) => (e ?? "").toLowerCase().replace(/[^a-z]/g, "") === "plaintext" ? t.PlainText : t.Markdown;
58
+ }, p = (e) => (e ?? "").toLowerCase().replace(/[^a-z]/g, "") === "plaintext" ? t.PlainText : t.Markdown;
55
59
  //#endregion
56
- export { d as getFormSchemaToolSyncKey, a as getLastDeploymentId, s as getLastUserMessageToolConfiguration, u as getLatestToolConfiguration, l as getToolConfigurationFromFormSchema, i as isMessageStreaming, o as messageHasStages, f as normalizeResponseFormat };
60
+ export { o as getEffectiveDeploymentIds, f as getFormSchemaToolSyncKey, a as getLastDeploymentId, c as getLastUserMessageToolConfiguration, d as getLatestToolConfiguration, u as getToolConfigurationFromFormSchema, i as isMessageStreaming, s as messageHasStages, p as normalizeResponseFormat };
@@ -0,0 +1,53 @@
1
+ import { ConversationListItemDto } from '@epam/ai-dial-chat-api-client';
2
+ /** Timestamped conversation used for immutable scheduled-run grouping. */
3
+ export interface ScheduledTaskConversation {
4
+ /** Host conversation identity. */
5
+ id: string;
6
+ /** Creation timestamp; absent values sort last. */
7
+ createdAt?: number;
8
+ /** Last update timestamp. */
9
+ updatedAt: number;
10
+ }
11
+ /** Host policies for grouping scheduled runs. */
12
+ export interface GroupScheduledTaskConversationsOptions<T> {
13
+ /** Owner-qualified task key, or undefined for an ordinary conversation. */
14
+ getGroupKey: (item: T) => string | undefined;
15
+ /** Whether this item may be hidden behind another run. */
16
+ isCollapsible: (item: T) => boolean;
17
+ /** Compares host IDs, including their encoding variants. */
18
+ conversationIdsMatch: (left: string, right: string) => boolean;
19
+ }
20
+ /** Grouping policies and the currently active conversation. */
21
+ export interface CollapseScheduledTaskConversationsOptions<T> extends GroupScheduledTaskConversationsOptions<T> {
22
+ /** Active conversation identity, when present. */
23
+ activeConversationId?: string;
24
+ }
25
+ /** A grouped run and its representative status. */
26
+ export interface ScheduledTaskRun<T> {
27
+ /** Original conversation object. */
28
+ item: T;
29
+ /** Host-provided task key. */
30
+ groupKey: string;
31
+ /** Whether this is the group's newest run. */
32
+ isRepresentative: boolean;
33
+ }
34
+ /** Immutable grouping reusable across active-conversation changes. */
35
+ export interface ScheduledTaskGrouping<T> extends GroupScheduledTaskConversationsOptions<T> {
36
+ /** Collapsed conversations in original order. */
37
+ collapsed: T[];
38
+ /** Eligible runs in original order. */
39
+ runs: ScheduledTaskRun<T>[];
40
+ /** Complete original list. */
41
+ items: readonly T[];
42
+ }
43
+ /** Selects each eligible group's newest run, preserving input order and objects. */
44
+ export declare const groupScheduledTaskConversations: <T extends ScheduledTaskConversation>(items: readonly T[], options: GroupScheduledTaskConversationsOptions<T>) => ScheduledTaskGrouping<T>;
45
+ /** Substitutes an active older run; returns the original collapsed array when unchanged. */
46
+ export declare const applyActiveScheduledTaskRun: <T extends ScheduledTaskConversation>(grouping: ScheduledTaskGrouping<T>, activeConversationId: string | undefined) => T[];
47
+ /** Collapses scheduled runs using host policies and the active conversation. */
48
+ export declare const collapseScheduledTaskConversations: <T extends ScheduledTaskConversation>(items: readonly T[], options: CollapseScheduledTaskConversationsOptions<T>) => T[];
49
+ /** Returns a DIAL Core run's `{bucket}/{scheduleId}` group key, or `undefined` when the item is not a scheduled-task run. */
50
+ export declare const getScheduledTaskRunGroupKey: (item: ConversationListItemDto) => string | undefined;
51
+ /** Returns whether a DIAL Core conversation may be hidden behind a newer run: not pinned, shared with or published to the user. */
52
+ export declare const isScheduledTaskRunCollapsible: (item: ConversationListItemDto) => boolean;
53
+ //# sourceMappingURL=scheduled-task-grouping.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduled-task-grouping.d.ts","sourceRoot":"","sources":["../../src/conversation/scheduled-task-grouping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,0EAA0E;AAC1E,MAAM,WAAW,yBAAyB;IACxC,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,iDAAiD;AACjD,MAAM,WAAW,sCAAsC,CAAC,CAAC;IACvD,2EAA2E;IAC3E,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;IAC7C,0DAA0D;IAC1D,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IACpC,4DAA4D;IAC5D,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAChE;AAED,+DAA+D;AAC/D,MAAM,WAAW,yCAAyC,CACxD,CAAC,CACD,SAAQ,sCAAsC,CAAC,CAAC,CAAC;IACjD,kDAAkD;IAClD,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,mDAAmD;AACnD,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,oCAAoC;IACpC,IAAI,EAAE,CAAC,CAAC;IACR,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,8CAA8C;IAC9C,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,sEAAsE;AACtE,MAAM,WAAW,qBAAqB,CACpC,CAAC,CACD,SAAQ,sCAAsC,CAAC,CAAC,CAAC;IACjD,iDAAiD;IACjD,SAAS,EAAE,CAAC,EAAE,CAAC;IACf,uCAAuC;IACvC,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,8BAA8B;IAC9B,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;CACrB;AA0BD,oFAAoF;AACpF,eAAO,MAAM,+BAA+B,GAC1C,CAAC,SAAS,yBAAyB,EAEnC,OAAO,SAAS,CAAC,EAAE,EACnB,SAAS,sCAAsC,CAAC,CAAC,CAAC,KACjD,qBAAqB,CAAC,CAAC,CAqBzB,CAAC;AAEF,4FAA4F;AAC5F,eAAO,MAAM,2BAA2B,GACtC,CAAC,SAAS,yBAAyB,EAEnC,UAAU,qBAAqB,CAAC,CAAC,CAAC,EAClC,sBAAsB,MAAM,GAAG,SAAS,KACvC,CAAC,EAYH,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,kCAAkC,GAC7C,CAAC,SAAS,yBAAyB,EAEnC,OAAO,SAAS,CAAC,EAAE,EACnB,SAAS,yCAAyC,CAAC,CAAC,CAAC,KACpD,CAAC,EAID,CAAC;AAIJ,6HAA6H;AAC7H,eAAO,MAAM,2BAA2B,GACtC,MAAM,uBAAuB,KAC5B,MAAM,GAAG,SAQX,CAAC;AAEF,mIAAmI;AACnI,eAAO,MAAM,6BAA6B,GACxC,MAAM,uBAAuB,KAC5B,OAM4D,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { safeDecodeURIComponent as e } from "../shared/string-utils.js";
2
+ //#region src/conversation/scheduled-task-grouping.ts
3
+ var t = (e, t) => {
4
+ let n = e.createdAt ?? -Infinity, r = t.createdAt ?? -Infinity;
5
+ return n === r ? e.updatedAt === t.updatedAt ? e.id === t.id ? 0 : t.id > e.id ? 1 : -1 : t.updatedAt - e.updatedAt : r > n ? 1 : -1;
6
+ }, n = (e, t, n) => e.filter((e) => {
7
+ if (!n.isCollapsible(e)) return !0;
8
+ let r = n.getGroupKey(e);
9
+ return r === void 0 || t.get(r) === e;
10
+ }), r = (e, r) => {
11
+ let i = /* @__PURE__ */ new Map(), a = [];
12
+ for (let n of e) {
13
+ if (!r.isCollapsible(n)) continue;
14
+ let e = r.getGroupKey(n);
15
+ if (e === void 0) continue;
16
+ a.push({
17
+ item: n,
18
+ groupKey: e
19
+ });
20
+ let o = i.get(e);
21
+ (!o || t(n, o) < 0) && i.set(e, n);
22
+ }
23
+ return {
24
+ ...r,
25
+ items: e,
26
+ collapsed: n(e, i, r),
27
+ runs: a.map((e) => ({
28
+ ...e,
29
+ isRepresentative: i.get(e.groupKey) === e.item
30
+ }))
31
+ };
32
+ }, i = (e, t) => {
33
+ if (t === void 0) return e.collapsed;
34
+ let r = e.runs.find(({ item: n }) => e.conversationIdsMatch(n.id, t));
35
+ if (!r || r.isRepresentative) return e.collapsed;
36
+ let i = /* @__PURE__ */ new Map();
37
+ for (let t of e.runs) t.isRepresentative && i.set(t.groupKey, t.item);
38
+ return i.set(r.groupKey, r.item), n(e.items, i, e);
39
+ }, a = (e, t) => i(r(e, t), t.activeConversationId), o = "conversations", s = (t) => {
40
+ if (!t.isScheduledTask || !t.scheduleId) return;
41
+ let n = e(t.id).split("/");
42
+ if (n[0] === o && n[1]) return `${n[1]}/${t.scheduleId}`;
43
+ }, c = (e) => !e.isPinned && !e.sharedWithMe && !e.publishedWithMe;
44
+ //#endregion
45
+ export { i as applyActiveScheduledTaskRun, a as collapseScheduledTaskConversations, s as getScheduledTaskRunGroupKey, r as groupScheduledTaskConversations, c as isScheduledTaskRunCollapsible };
@@ -19,6 +19,8 @@ export interface UseActiveConversationSyncParams {
19
19
  conversationIdsMatch: (a: string, b: string) => boolean;
20
20
  /** Converts a raw context id to the panel-space id. App-specific. */
21
21
  toPanelConversationId: (id: string) => string;
22
+ /** Whether the active listed conversation should be marked viewed. Defaults to marking every one. */
23
+ shouldMarkViewed?: (item: ConversationListItemDto) => boolean;
22
24
  }
23
25
  /**
24
26
  * Synchronises the active conversation with the conversation list and returns
@@ -29,7 +31,7 @@ export interface UseActiveConversationSyncParams {
29
31
  * refresh. The list and refresh callback are intentionally excluded from
30
32
  * the dependency array to avoid a refresh-loop on every list update.
31
33
  * 2. Marks the active conversation as viewed when its matching identity becomes
32
- * available. List refreshes and persistence rollback do not retry the write.
34
+ * available and `shouldMarkViewed` accepts it. List refreshes and persistence rollback do not retry the write.
33
35
  */
34
- export declare const useActiveConversationSync: ({ activeConversationId, items, refreshConversations, markConversationViewed, conversationIdsMatch, toPanelConversationId, }: UseActiveConversationSyncParams) => string | undefined;
36
+ export declare const useActiveConversationSync: ({ activeConversationId, items, refreshConversations, markConversationViewed, conversationIdsMatch, toPanelConversationId, shouldMarkViewed, }: UseActiveConversationSyncParams) => string | undefined;
35
37
  //# sourceMappingURL=useActiveConversationSync.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useActiveConversationSync.d.ts","sourceRoot":"","sources":["../../../src/conversation/useActiveConversationSync/useActiveConversationSync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,kDAAkD;AAClD,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,0CAA0C;IAC1C,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,4CAA4C;IAC5C,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD;;;OAGG;IACH,oBAAoB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACxD,qEAAqE;IACrE,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,GAAI,6HAOvC,+BAA+B,KAAG,MAAM,GAAG,SAkC7C,CAAC"}
1
+ {"version":3,"file":"useActiveConversationSync.d.ts","sourceRoot":"","sources":["../../../src/conversation/useActiveConversationSync/useActiveConversationSync.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAG7E,kDAAkD;AAClD,MAAM,WAAW,+BAA+B;IAC9C;;;OAGG;IACH,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,0CAA0C;IAC1C,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,4CAA4C;IAC5C,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD;;;OAGG;IACH,oBAAoB,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACxD,qEAAqE;IACrE,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,qGAAqG;IACrG,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,uBAAuB,KAAK,OAAO,CAAC;CAC/D;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,GAAI,+IAQvC,+BAA+B,KAAG,MAAM,GAAG,SAmD7C,CAAC"}
@@ -1,18 +1,25 @@
1
- import { useEffect as e, useMemo as t } from "react";
1
+ import { useEffect as e, useMemo as t, useRef as n } from "react";
2
2
  //#region src/conversation/useActiveConversationSync/useActiveConversationSync.ts
3
- var n = ({ activeConversationId: n, items: r, refreshConversations: i, markConversationViewed: a, conversationIdsMatch: o, toPanelConversationId: s }) => {
4
- let c = t(() => n ? s(n) : void 0, [n, s]);
3
+ var r = ({ activeConversationId: r, items: i, refreshConversations: a, markConversationViewed: o, conversationIdsMatch: s, toPanelConversationId: c, shouldMarkViewed: l }) => {
4
+ let u = t(() => r ? c(r) : void 0, [r, c]);
5
5
  e(() => {
6
- c && (r.some((e) => o(e.id, c)) || i());
7
- }, [c, o]);
8
- let l = c ? r.find((e) => o(e.id, c))?.id : void 0;
6
+ u && (i.some((e) => s(e.id, u)) || a());
7
+ }, [u, s]);
8
+ let d = u ? i.find((e) => s(e.id, u)) : void 0, f = d?.id, p = d != null && (l?.(d) ?? !0), m = n(void 0);
9
9
  return e(() => {
10
- c && l && a(l);
10
+ if (!u || !f) {
11
+ m.current = void 0;
12
+ return;
13
+ }
14
+ if (!p) return;
15
+ let e = `${u}\u0000${f}`;
16
+ m.current !== e && (m.current = e, o(f));
11
17
  }, [
12
- c,
13
- l,
14
- a
15
- ]), c;
18
+ u,
19
+ f,
20
+ p,
21
+ o
22
+ ]), u;
16
23
  };
17
24
  //#endregion
18
- export { n as useActiveConversationSync };
25
+ export { r as useActiveConversationSync };
@@ -1 +1 @@
1
- {"version":3,"file":"useAttachmentUpload.d.ts","sourceRoot":"","sources":["../../../src/conversation/useAttachmentUpload/useAttachmentUpload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC;AAYnC,kDAAkD;AAClD,MAAM,WAAW,yBAAyB;IACxC,uFAAuF;IACvF,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAC9E,kDAAkD;IAClD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,oFAAoF;IACpF,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/C,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mDAAmD;AACnD,MAAM,WAAW,yBAAyB;IACxC,kGAAkG;IAClG,sBAAsB,EAAE,CACtB,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACxC;AAyBD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,mDAKjC,yBAAyB,KAAG,yBA6G9B,CAAC"}
1
+ {"version":3,"file":"useAttachmentUpload.d.ts","sourceRoot":"","sources":["../../../src/conversation/useAttachmentUpload/useAttachmentUpload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,wBAAwB,EAC9B,MAAM,2BAA2B,CAAC;AAgBnC,kDAAkD;AAClD,MAAM,WAAW,yBAAyB;IACxC,uFAAuF;IACvF,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAC9E,kDAAkD;IAClD,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,oFAAoF;IACpF,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAC/C,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mDAAmD;AACnD,MAAM,WAAW,yBAAyB;IACxC,kGAAkG;IAClG,sBAAsB,EAAE,CACtB,UAAU,EAAE,UAAU,KACnB,OAAO,CAAC,wBAAwB,CAAC,CAAC;CACxC;AAyBD;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,mDAKjC,yBAAyB,KAAG,yBA6G9B,CAAC"}