@epam/ai-dial-chat-hooks 1.3.0-dev.7 → 1.3.0-dev.79
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.
- package/api-error/api-error.d.ts +30 -0
- package/api-error/api-error.d.ts.map +1 -0
- package/api-transport/create-csrf-middleware.d.ts +15 -0
- package/api-transport/create-csrf-middleware.d.ts.map +1 -0
- package/api-transport/create-unauthorized-middleware.d.ts +40 -0
- package/api-transport/create-unauthorized-middleware.d.ts.map +1 -0
- package/attachment/useAttachmentAction/useAttachmentAction.d.ts +32 -0
- package/attachment/useAttachmentAction/useAttachmentAction.d.ts.map +1 -0
- package/attachment/useAttachmentValidation/useAttachmentValidation.d.ts +50 -0
- package/attachment/useAttachmentValidation/useAttachmentValidation.d.ts.map +1 -0
- package/attachments.d.ts +2 -94
- package/catalog/catalog-derivations.d.ts +27 -0
- package/catalog/catalog-derivations.d.ts.map +1 -0
- package/catalog/catalog-primary-action.d.ts +47 -0
- package/catalog/catalog-primary-action.d.ts.map +1 -0
- package/catalog/create-publish-api.d.ts +32 -0
- package/catalog/create-publish-api.d.ts.map +1 -0
- package/catalog/deployment-endpoint-url.d.ts +19 -0
- package/catalog/deployment-endpoint-url.d.ts.map +1 -0
- package/catalog/deployment-id.d.ts +42 -0
- package/catalog/deployment-id.d.ts.map +1 -0
- package/catalog/entity-details.d.ts +146 -0
- package/catalog/entity-details.d.ts.map +1 -0
- package/catalog/map-deployment-limits-to-catalog.d.ts +34 -0
- package/catalog/map-deployment-limits-to-catalog.d.ts.map +1 -0
- package/catalog/map-deployment-limits-to-input.d.ts +28 -0
- package/catalog/map-deployment-limits-to-input.d.ts.map +1 -0
- package/catalog/map-deployment-to-catalog-item.d.ts +61 -0
- package/catalog/map-deployment-to-catalog-item.d.ts.map +1 -0
- package/catalog/map-entity-details-to-catalog.d.ts +81 -0
- package/catalog/map-entity-details-to-catalog.d.ts.map +1 -0
- package/catalog/map-prompt-to-catalog-item.d.ts +43 -0
- package/catalog/map-prompt-to-catalog-item.d.ts.map +1 -0
- package/catalog/map-skill-to-catalog-item.d.ts +113 -0
- package/catalog/map-skill-to-catalog-item.d.ts.map +1 -0
- package/catalog/mcp-endpoint-url.d.ts +18 -0
- package/catalog/mcp-endpoint-url.d.ts.map +1 -0
- package/catalog/publish.d.ts +35 -0
- package/catalog/publish.d.ts.map +1 -0
- package/catalog/useApplicationCredentials/useApplicationCredentials.d.ts +19 -0
- package/catalog/useApplicationCredentials/useApplicationCredentials.d.ts.map +1 -0
- package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.d.ts +100 -0
- package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.d.ts.map +1 -0
- package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.js +139 -122
- package/catalog/useCatalogItemDetails.d.ts +70 -0
- package/catalog/useCatalogItemDetails.d.ts.map +1 -0
- package/catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.d.ts +76 -0
- package/catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.d.ts.map +1 -0
- package/catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.d.ts +37 -0
- package/catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.d.ts.map +1 -0
- package/catalog/usePublishFolders/usePublishFolders.d.ts +73 -0
- package/catalog/usePublishFolders/usePublishFolders.d.ts.map +1 -0
- package/catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.d.ts +54 -0
- package/catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.d.ts.map +1 -0
- package/catalog/useSkillItemDetails.d.ts +64 -0
- package/catalog/useSkillItemDetails.d.ts.map +1 -0
- package/catalog.d.ts +2 -1433
- package/conversation/announcement-message.d.ts +61 -0
- package/conversation/announcement-message.d.ts.map +1 -0
- package/conversation/conversation-draft/conversation-draft-store.d.ts +21 -0
- package/conversation/conversation-draft/conversation-draft-store.d.ts.map +1 -0
- package/conversation/conversation-draft/conversation-draft-store.js +84 -0
- package/conversation/conversation-draft/conversation-draft.d.ts +48 -0
- package/conversation/conversation-draft/conversation-draft.d.ts.map +1 -0
- package/conversation/conversation-transfer/async.d.ts +10 -0
- package/conversation/conversation-transfer/async.d.ts.map +1 -0
- package/conversation/conversation-transfer/attachment-refs.d.ts +42 -0
- package/conversation/conversation-transfer/attachment-refs.d.ts.map +1 -0
- package/conversation/conversation-transfer/build-upload-path.d.ts +42 -0
- package/conversation/conversation-transfer/build-upload-path.d.ts.map +1 -0
- package/conversation/conversation-transfer/date.d.ts +5 -0
- package/conversation/conversation-transfer/date.d.ts.map +1 -0
- package/conversation/conversation-transfer/dial-file-resolve.d.ts +10 -0
- package/conversation/conversation-transfer/dial-file-resolve.d.ts.map +1 -0
- package/conversation/conversation-transfer/export-conversation.d.ts +10 -0
- package/conversation/conversation-transfer/export-conversation.d.ts.map +1 -0
- package/conversation/conversation-transfer/import-conversation.d.ts +106 -0
- package/conversation/conversation-transfer/import-conversation.d.ts.map +1 -0
- package/conversation/conversation-transfer/progress.d.ts +60 -0
- package/conversation/conversation-transfer/progress.d.ts.map +1 -0
- package/conversation/conversation-transfer/queue.d.ts +54 -0
- package/conversation/conversation-transfer/queue.d.ts.map +1 -0
- package/conversation/conversation-transfer/types.d.ts +36 -0
- package/conversation/conversation-transfer/types.d.ts.map +1 -0
- package/conversation/conversation-transfer/zip-export.d.ts +31 -0
- package/conversation/conversation-transfer/zip-export.d.ts.map +1 -0
- package/conversation/conversation-transfer/zip-import.d.ts +17 -0
- package/conversation/conversation-transfer/zip-import.d.ts.map +1 -0
- package/conversation/create-chat-stream-api.d.ts +92 -0
- package/conversation/create-chat-stream-api.d.ts.map +1 -0
- package/conversation/deriveConversationRowActionState/deriveConversationRowActionState.d.ts +39 -0
- package/conversation/deriveConversationRowActionState/deriveConversationRowActionState.d.ts.map +1 -0
- package/conversation/display-name-watch.d.ts +4 -0
- package/conversation/display-name-watch.d.ts.map +1 -0
- package/conversation/footer-message.d.ts +10 -0
- package/conversation/footer-message.d.ts.map +1 -0
- package/conversation/get-model-id-from-conversation-id.d.ts +38 -0
- package/conversation/get-model-id-from-conversation-id.d.ts.map +1 -0
- package/conversation/get-model-id-from-conversation-id.js +1 -1
- package/conversation/greeting.d.ts +18 -0
- package/conversation/greeting.d.ts.map +1 -0
- package/conversation/message-factory.d.ts +7 -0
- package/conversation/message-factory.d.ts.map +1 -0
- package/conversation/message-utils.d.ts +67 -0
- package/conversation/message-utils.d.ts.map +1 -0
- package/conversation/overlay-messages.d.ts +5 -0
- package/conversation/overlay-messages.d.ts.map +1 -0
- package/conversation/quick-app-conversation-starters.d.ts +10 -0
- package/conversation/quick-app-conversation-starters.d.ts.map +1 -0
- package/conversation/stage.d.ts +77 -0
- package/conversation/stage.d.ts.map +1 -0
- package/conversation/starter-option.d.ts +21 -0
- package/conversation/starter-option.d.ts.map +1 -0
- package/conversation/useActiveConversationSync/useActiveConversationSync.d.ts +35 -0
- package/conversation/useActiveConversationSync/useActiveConversationSync.d.ts.map +1 -0
- package/conversation/useAsyncConfirmDialog/useAsyncConfirmDialog.d.ts +46 -0
- package/conversation/useAsyncConfirmDialog/useAsyncConfirmDialog.d.ts.map +1 -0
- package/conversation/useAttachmentUpload/useAttachmentUpload.d.ts +27 -0
- package/conversation/useAttachmentUpload/useAttachmentUpload.d.ts.map +1 -0
- package/conversation/useConversationComposerDraft/useConversationComposerDraft.d.ts +39 -0
- package/conversation/useConversationComposerDraft/useConversationComposerDraft.d.ts.map +1 -0
- package/conversation/useConversationComposerDraft/useConversationComposerDraft.js +132 -0
- package/conversation/useConversationExport/useConversationExport.d.ts +72 -0
- package/conversation/useConversationExport/useConversationExport.d.ts.map +1 -0
- package/conversation/useConversationHandlers/attachment-to-dto.d.ts +7 -0
- package/conversation/useConversationHandlers/attachment-to-dto.d.ts.map +1 -0
- package/conversation/useConversationHandlers/message-factory.d.ts +9 -0
- package/conversation/useConversationHandlers/message-factory.d.ts.map +1 -0
- package/conversation/useConversationHandlers/message-utils.d.ts +38 -0
- package/conversation/useConversationHandlers/message-utils.d.ts.map +1 -0
- package/conversation/useConversationHandlers/starter-option.d.ts +24 -0
- package/conversation/useConversationHandlers/starter-option.d.ts.map +1 -0
- package/conversation/useConversationHandlers/useConversationHandlers.d.ts +66 -0
- package/conversation/useConversationHandlers/useConversationHandlers.d.ts.map +1 -0
- package/conversation/useConversationImport/useConversationImport.d.ts +54 -0
- package/conversation/useConversationImport/useConversationImport.d.ts.map +1 -0
- package/conversation/useConversationLookupMaps/useConversationLookupMaps.d.ts +24 -0
- package/conversation/useConversationLookupMaps/useConversationLookupMaps.d.ts.map +1 -0
- package/conversation/useConversationPanelItems/useConversationPanelItems.d.ts +64 -0
- package/conversation/useConversationPanelItems/useConversationPanelItems.d.ts.map +1 -0
- package/conversation/useConversationScroll/useConversationScroll.d.ts +46 -0
- package/conversation/useConversationScroll/useConversationScroll.d.ts.map +1 -0
- package/conversation/useConversationStream/apply-chunk.d.ts +35 -0
- package/conversation/useConversationStream/apply-chunk.d.ts.map +1 -0
- package/conversation/useConversationStream/buffered-generation.d.ts +15 -0
- package/conversation/useConversationStream/buffered-generation.d.ts.map +1 -0
- package/conversation/useConversationStream/conversation-path.d.ts +7 -0
- package/conversation/useConversationStream/conversation-path.d.ts.map +1 -0
- package/conversation/useConversationStream/frame-scheduler.d.ts +14 -0
- package/conversation/useConversationStream/frame-scheduler.d.ts.map +1 -0
- package/conversation/useConversationStream/generation-resume.d.ts +85 -0
- package/conversation/useConversationStream/generation-resume.d.ts.map +1 -0
- package/conversation/useConversationStream/useConversationStream.d.ts +145 -0
- package/conversation/useConversationStream/useConversationStream.d.ts.map +1 -0
- package/conversation/useImportFilePicker/useImportFilePicker.d.ts +32 -0
- package/conversation/useImportFilePicker/useImportFilePicker.d.ts.map +1 -0
- package/conversation/useMessageSelectionReply/useMessageSelectionReply.d.ts +42 -0
- package/conversation/useMessageSelectionReply/useMessageSelectionReply.d.ts.map +1 -0
- package/conversation/useTranscribeAudio/audio-transcription-error.d.ts +19 -0
- package/conversation/useTranscribeAudio/audio-transcription-error.d.ts.map +1 -0
- package/conversation/useTranscribeAudio/transcription-retry.d.ts +2 -0
- package/conversation/useTranscribeAudio/transcription-retry.d.ts.map +1 -0
- package/conversation/useTranscribeAudio/useTranscribeAudio.d.ts +43 -0
- package/conversation/useTranscribeAudio/useTranscribeAudio.d.ts.map +1 -0
- package/conversation/useTranscribeAudio/useTranscribeAudio.js +30 -27
- package/conversation-overlay.d.ts +2 -7
- package/conversation-sources/useConversationSources/useConversationSources.d.ts +20 -0
- package/conversation-sources/useConversationSources/useConversationSources.d.ts.map +1 -0
- package/conversation-sources.d.ts +2 -25
- package/conversation-transfer.d.ts +2 -190
- package/conversation.d.ts +2 -1372
- package/conversation.js +34 -32
- package/entry-points/attachments.d.ts +3 -0
- package/entry-points/attachments.d.ts.map +1 -0
- package/entry-points/catalog.d.ts +25 -0
- package/entry-points/catalog.d.ts.map +1 -0
- package/entry-points/conversation-overlay.d.ts +2 -0
- package/entry-points/conversation-overlay.d.ts.map +1 -0
- package/entry-points/conversation-sources.d.ts +2 -0
- package/entry-points/conversation-sources.d.ts.map +1 -0
- package/entry-points/conversation-transfer.d.ts +7 -0
- package/entry-points/conversation-transfer.d.ts.map +1 -0
- package/entry-points/conversation.d.ts +36 -0
- package/entry-points/conversation.d.ts.map +1 -0
- package/entry-points/file-manager-canvas.d.ts +2 -0
- package/entry-points/file-manager-canvas.d.ts.map +1 -0
- package/entry-points/file-manager.d.ts +31 -0
- package/entry-points/file-manager.d.ts.map +1 -0
- package/entry-points/mcp-apps.d.ts +6 -0
- package/entry-points/mcp-apps.d.ts.map +1 -0
- package/entry-points/oauth.d.ts +10 -0
- package/entry-points/oauth.d.ts.map +1 -0
- package/entry-points/offline-credentials.d.ts +5 -0
- package/entry-points/offline-credentials.d.ts.map +1 -0
- package/entry-points/scheduled-tasks.d.ts +9 -0
- package/entry-points/scheduled-tasks.d.ts.map +1 -0
- package/entry-points/scroll-anchoring.d.ts +2 -0
- package/entry-points/scroll-anchoring.d.ts.map +1 -0
- package/entry-points/sharing.d.ts +3 -0
- package/entry-points/sharing.d.ts.map +1 -0
- package/entry-points/skill-editor.d.ts +9 -0
- package/entry-points/skill-editor.d.ts.map +1 -0
- package/entry-points/skills-state.d.ts +2 -0
- package/entry-points/skills-state.d.ts.map +1 -0
- package/entry-points/source-content.d.ts +2 -0
- package/entry-points/source-content.d.ts.map +1 -0
- package/entry-points/usage-limits.d.ts +8 -0
- package/entry-points/usage-limits.d.ts.map +1 -0
- package/entry-points/usage.d.ts +3 -0
- package/entry-points/usage.d.ts.map +1 -0
- package/entry-points/utils.d.ts +17 -0
- package/entry-points/utils.d.ts.map +1 -0
- package/entry-points/viewport-layout.d.ts +4 -0
- package/entry-points/viewport-layout.d.ts.map +1 -0
- package/file-manager-canvas.d.ts +2 -418
- package/file-manager.d.ts +2 -1237
- package/file-manager.js +25 -25
- package/files/annotation.d.ts +10 -0
- package/files/annotation.d.ts.map +1 -0
- package/files/attachment-canvas.d.ts +123 -0
- package/files/attachment-canvas.d.ts.map +1 -0
- package/files/attachment-dto-to-display.d.ts +10 -0
- package/files/attachment-dto-to-display.d.ts.map +1 -0
- package/files/attachment-types.d.ts +21 -0
- package/files/attachment-types.d.ts.map +1 -0
- package/files/create-files-api.d.ts +52 -0
- package/files/create-files-api.d.ts.map +1 -0
- package/files/create-upload-file-with-progress.d.ts +24 -0
- package/files/create-upload-file-with-progress.d.ts.map +1 -0
- package/files/dial-file-manager-copy-move.util.d.ts +15 -0
- package/files/dial-file-manager-copy-move.util.d.ts.map +1 -0
- package/files/dial-file-manager-mapping.util.d.ts +51 -0
- package/files/dial-file-manager-mapping.util.d.ts.map +1 -0
- package/files/dial-file-manager-mapping.util.js +77 -62
- package/files/dial-file-manager-path.util.d.ts +48 -0
- package/files/dial-file-manager-path.util.d.ts.map +1 -0
- package/files/dial-file-manager.model.d.ts +36 -0
- package/files/dial-file-manager.model.d.ts.map +1 -0
- package/files/dial-file-manager.model.js +7 -3
- package/files/dial-file-manager.types.d.ts +327 -0
- package/files/dial-file-manager.types.d.ts.map +1 -0
- package/files/dial-file-manager.types.js +1 -1
- package/files/dial-file-to-attachment.d.ts +26 -0
- package/files/dial-file-to-attachment.d.ts.map +1 -0
- package/files/dial-file.d.ts +17 -0
- package/files/dial-file.d.ts.map +1 -0
- package/files/dial-files-api.d.ts +71 -0
- package/files/dial-files-api.d.ts.map +1 -0
- package/files/download-destination.d.ts +31 -0
- package/files/download-destination.d.ts.map +1 -0
- package/files/file-manager-variant.d.ts +3 -0
- package/files/file-manager-variant.d.ts.map +1 -0
- package/files/file-name.d.ts +19 -0
- package/files/file-name.d.ts.map +1 -0
- package/files/prepare-download-destination.d.ts +8 -0
- package/files/prepare-download-destination.d.ts.map +1 -0
- package/files/resolve-dial-file-api-path.d.ts +12 -0
- package/files/resolve-dial-file-api-path.d.ts.map +1 -0
- package/files/source-content.d.ts +28 -0
- package/files/source-content.d.ts.map +1 -0
- package/files/useDialFileListing/useDialFileListing.d.ts +82 -0
- package/files/useDialFileListing/useDialFileListing.d.ts.map +1 -0
- package/files/useDialFileListing/useDialFileListing.js +64 -51
- package/files/useDialFileManager/useDialFileManager.d.ts +16 -0
- package/files/useDialFileManager/useDialFileManager.d.ts.map +1 -0
- package/files/useDialFileManager/useDialFileManager.js +148 -140
- package/files/useDialFileManagerSections/useDialFileManagerSections.d.ts +25 -0
- package/files/useDialFileManagerSections/useDialFileManagerSections.d.ts.map +1 -0
- package/files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.d.ts +15 -0
- package/files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.d.ts.map +1 -0
- package/files/useDialFileMetadata/useDialFileMetadata.d.ts +28 -0
- package/files/useDialFileMetadata/useDialFileMetadata.d.ts.map +1 -0
- package/files/useDialFileMutations/useDialFileMutations.d.ts +68 -0
- package/files/useDialFileMutations/useDialFileMutations.d.ts.map +1 -0
- package/files/useDialFileMutations/useDialFileMutations.js +206 -204
- package/files/useDialFileSharing/useDialFileSharing.d.ts +34 -0
- package/files/useDialFileSharing/useDialFileSharing.d.ts.map +1 -0
- package/files/useDialFileSharing/useDialFileSharing.js +45 -39
- package/files/useDialFileUploadBatch/useDialFileUploadBatch.d.ts +47 -0
- package/files/useDialFileUploadBatch/useDialFileUploadBatch.d.ts.map +1 -0
- package/files/useDialFileUploadBatch/useDialFileUploadBatch.js +8 -4
- package/files/useFileAttachmentPicker/useFileAttachmentPicker.d.ts +59 -0
- package/files/useFileAttachmentPicker/useFileAttachmentPicker.d.ts.map +1 -0
- package/index.d.ts +167 -6974
- package/index.d.ts.map +1 -0
- package/index.js +131 -117
- package/mcp-apps/mcp-apps-api-client.d.ts +28 -0
- package/mcp-apps/mcp-apps-api-client.d.ts.map +1 -0
- package/mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.d.ts +14 -0
- package/mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.d.ts.map +1 -0
- package/mcp-apps/useMcpAppHostContext/useMcpAppHostContext.d.ts +29 -0
- package/mcp-apps/useMcpAppHostContext/useMcpAppHostContext.d.ts.map +1 -0
- package/mcp-apps/useMcpAppTools/useMcpAppTools.d.ts +22 -0
- package/mcp-apps/useMcpAppTools/useMcpAppTools.d.ts.map +1 -0
- package/mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.d.ts +36 -0
- package/mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.d.ts.map +1 -0
- package/mcp-apps.d.ts +2 -256
- package/oauth/authorize-url.d.ts +16 -0
- package/oauth/authorize-url.d.ts.map +1 -0
- package/oauth/handshake.d.ts +30 -0
- package/oauth/handshake.d.ts.map +1 -0
- package/oauth/models.d.ts +81 -0
- package/oauth/models.d.ts.map +1 -0
- package/oauth/popup.d.ts +30 -0
- package/oauth/popup.d.ts.map +1 -0
- package/oauth/popup.js +19 -17
- package/oauth/toolset-id.d.ts +53 -0
- package/oauth/toolset-id.d.ts.map +1 -0
- package/oauth/types.d.ts +84 -0
- package/oauth/types.d.ts.map +1 -0
- package/oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.d.ts +54 -0
- package/oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.d.ts.map +1 -0
- package/oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js +40 -38
- package/oauth/useToolsetLogin/useToolsetLogin.d.ts +79 -0
- package/oauth/useToolsetLogin/useToolsetLogin.d.ts.map +1 -0
- package/oauth.d.ts +2 -472
- package/offline-credentials/map-offline-credentials-response.d.ts +17 -0
- package/offline-credentials/map-offline-credentials-response.d.ts.map +1 -0
- package/offline-credentials/map-offline-credentials-response.js +15 -0
- package/offline-credentials/useOfflineCredentialsAuth/useOfflineCredentialsAuth.d.ts +58 -0
- package/offline-credentials/useOfflineCredentialsAuth/useOfflineCredentialsAuth.d.ts.map +1 -0
- package/offline-credentials/useOfflineCredentialsAuth/useOfflineCredentialsAuth.js +37 -0
- package/offline-credentials/useOfflineCredentialsGate/useOfflineCredentialsGate.d.ts +57 -0
- package/offline-credentials/useOfflineCredentialsGate/useOfflineCredentialsGate.d.ts.map +1 -0
- package/offline-credentials/useOfflineCredentialsGate/useOfflineCredentialsGate.js +34 -0
- package/offline-credentials/useOfflineCredentialsLogin/useOfflineCredentialsLogin.d.ts +28 -0
- package/offline-credentials/useOfflineCredentialsLogin/useOfflineCredentialsLogin.d.ts.map +1 -0
- package/offline-credentials/useOfflineCredentialsLogin/useOfflineCredentialsLogin.js +29 -0
- package/offline-credentials.d.ts +2 -0
- package/offline-credentials.js +5 -0
- package/package.json +31 -17
- package/prompt/export-prompt.d.ts +31 -0
- package/prompt/export-prompt.d.ts.map +1 -0
- package/prompt/prompt-resource.d.ts +30 -0
- package/prompt/prompt-resource.d.ts.map +1 -0
- package/prompt/prompt.d.ts +34 -0
- package/prompt/prompt.d.ts.map +1 -0
- package/prompt/usePromptsState/usePromptsState.d.ts +34 -0
- package/prompt/usePromptsState/usePromptsState.d.ts.map +1 -0
- package/scheduled-task/check-scheduled-task-auth-session-error.d.ts +27 -0
- package/scheduled-task/check-scheduled-task-auth-session-error.d.ts.map +1 -0
- package/scheduled-task/check-scheduled-task-auth-session-error.js +17 -0
- package/scheduled-task/scheduled-task-description.d.ts +38 -0
- package/scheduled-task/scheduled-task-description.d.ts.map +1 -0
- package/scheduled-task/scheduled-task-mapping.d.ts +19 -0
- package/scheduled-task/scheduled-task-mapping.d.ts.map +1 -0
- package/scheduled-task/scheduled-task-preparation.d.ts +19 -0
- package/scheduled-task/scheduled-task-preparation.d.ts.map +1 -0
- package/scheduled-task/scheduled-task-trigger.d.ts +26 -0
- package/scheduled-task/scheduled-task-trigger.d.ts.map +1 -0
- package/scheduled-task/scheduled-tasks-api-client.d.ts +67 -0
- package/scheduled-task/scheduled-tasks-api-client.d.ts.map +1 -0
- package/scheduled-task/use-scheduled-task-runs.d.ts +40 -0
- package/scheduled-task/use-scheduled-task-runs.d.ts.map +1 -0
- package/scheduled-task/use-scheduled-task-runs.js +67 -67
- package/scheduled-task/use-scheduled-tasks.d.ts +28 -0
- package/scheduled-task/use-scheduled-tasks.d.ts.map +1 -0
- package/scheduled-tasks.d.ts +2 -250
- package/scheduled-tasks.js +2 -1
- package/scroll-anchoring.d.ts +2 -50
- package/shared/application-schema.d.ts +18 -0
- package/shared/application-schema.d.ts.map +1 -0
- package/shared/application-schema.js +2 -2
- package/shared/browser-timezone.d.ts +7 -0
- package/shared/browser-timezone.d.ts.map +1 -0
- package/shared/cron-day-of-month.d.ts +21 -0
- package/shared/cron-day-of-month.d.ts.map +1 -0
- package/shared/cron-weekday.d.ts +5 -0
- package/shared/cron-weekday.d.ts.map +1 -0
- package/shared/custom-apps.d.ts +7 -0
- package/shared/custom-apps.d.ts.map +1 -0
- package/shared/external-services.d.ts +16 -0
- package/shared/external-services.d.ts.map +1 -0
- package/shared/formatting.d.ts +5 -0
- package/shared/formatting.d.ts.map +1 -0
- package/shared/locale.d.ts +45 -0
- package/shared/locale.d.ts.map +1 -0
- package/shared/string-utils.d.ts +11 -0
- package/shared/string-utils.d.ts.map +1 -0
- package/shared/toolset-login-events.d.ts +15 -0
- package/shared/toolset-login-events.d.ts.map +1 -0
- package/sharing.d.ts +2 -65
- package/skill/skill-archive.d.ts +7 -0
- package/skill/skill-archive.d.ts.map +1 -0
- package/skill/skill-file-batch-validation.d.ts +70 -0
- package/skill/skill-file-batch-validation.d.ts.map +1 -0
- package/skill/skill-file-preview.d.ts +25 -0
- package/skill/skill-file-preview.d.ts.map +1 -0
- package/skill/skill-manifest.d.ts +28 -0
- package/skill/skill-manifest.d.ts.map +1 -0
- package/skill/skill-types.d.ts +46 -0
- package/skill/skill-types.d.ts.map +1 -0
- package/skill/skill.d.ts +160 -0
- package/skill/skill.d.ts.map +1 -0
- package/skill/useSkillArchiveImport/useSkillArchiveImport.d.ts +65 -0
- package/skill/useSkillArchiveImport/useSkillArchiveImport.d.ts.map +1 -0
- package/skill/useSkillEditorLoad.d.ts +74 -0
- package/skill/useSkillEditorLoad.d.ts.map +1 -0
- package/skill/useSkillEditorSubmit.d.ts +125 -0
- package/skill/useSkillEditorSubmit.d.ts.map +1 -0
- package/skill/useSkillFileActions.d.ts +60 -0
- package/skill/useSkillFileActions.d.ts.map +1 -0
- package/skill/useSkillFilePreview.d.ts +38 -0
- package/skill/useSkillFilePreview.d.ts.map +1 -0
- package/skill/useSkillsState/useSkillsState.d.ts +35 -0
- package/skill/useSkillsState/useSkillsState.d.ts.map +1 -0
- package/skill-editor.d.ts +2 -655
- package/skills-state.d.ts +2 -40
- package/source-content.d.ts +2 -29
- package/usage/map-usage-data-to-dashboard.d.ts +39 -0
- package/usage/map-usage-data-to-dashboard.d.ts.map +1 -0
- package/usage/map-user-usage-to-model-limits.d.ts +62 -0
- package/usage/map-user-usage-to-model-limits.d.ts.map +1 -0
- package/usage/usage-banner-source.d.ts +23 -0
- package/usage/usage-banner-source.d.ts.map +1 -0
- package/usage/usage-banner-source.js +36 -0
- package/usage/usage-period.d.ts +7 -0
- package/usage/usage-period.d.ts.map +1 -0
- package/usage/usage-period.js +6 -0
- package/usage/usage-reset-time.d.ts +69 -0
- package/usage/usage-reset-time.d.ts.map +1 -0
- package/usage/usage-reset-time.js +72 -0
- package/usage/useDeploymentUsageLimits/useDeploymentUsageLimits.d.ts +32 -0
- package/usage/useDeploymentUsageLimits/useDeploymentUsageLimits.d.ts.map +1 -0
- package/usage/useDeploymentUsageLimits/useDeploymentUsageLimits.js +39 -0
- package/usage/useRefreshUsageAfterGeneration/useRefreshUsageAfterGeneration.d.ts +16 -0
- package/usage/useRefreshUsageAfterGeneration/useRefreshUsageAfterGeneration.d.ts.map +1 -0
- package/usage/useRefreshUsageAfterGeneration/useRefreshUsageAfterGeneration.js +14 -0
- package/usage/useUsageData/useUsageData.d.ts +28 -0
- package/usage/useUsageData/useUsageData.d.ts.map +1 -0
- package/usage/useUsageLimitBanner/useUsageLimitBanner.d.ts +56 -0
- package/usage/useUsageLimitBanner/useUsageLimitBanner.d.ts.map +1 -0
- package/usage/useUsageLimitBanner/useUsageLimitBanner.js +67 -0
- package/usage/useUsageLimitBannerDismissal/useUsageLimitBannerDismissal.d.ts +14 -0
- package/usage/useUsageLimitBannerDismissal/useUsageLimitBannerDismissal.d.ts.map +1 -0
- package/usage/useUsageLimitBannerDismissal/useUsageLimitBannerDismissal.js +19 -0
- package/usage-limits.d.ts +2 -0
- package/usage-limits.js +8 -0
- package/usage.d.ts +2 -125
- package/useChatSettingsFormConfig/useChatSettingsFormConfig.d.ts +128 -0
- package/useChatSettingsFormConfig/useChatSettingsFormConfig.d.ts.map +1 -0
- package/usePageFileDrag/usePageFileDrag.d.ts +16 -0
- package/usePageFileDrag/usePageFileDrag.d.ts.map +1 -0
- package/usePanelMaxWidth/usePanelMaxWidth.d.ts +6 -0
- package/usePanelMaxWidth/usePanelMaxWidth.d.ts.map +1 -0
- package/useShareLink/useShareLink.d.ts +23 -0
- package/useShareLink/useShareLink.d.ts.map +1 -0
- package/useShareRecipientsCount/useShareRecipientsCount.d.ts +36 -0
- package/useShareRecipientsCount/useShareRecipientsCount.d.ts.map +1 -0
- package/useToolsMenu/useToolsMenu.d.ts +31 -0
- package/useToolsMenu/useToolsMenu.d.ts.map +1 -0
- package/useViewportWidth/useViewportWidth.d.ts +3 -0
- package/useViewportWidth/useViewportWidth.d.ts.map +1 -0
- package/utils.d.ts +2 -404
- package/utils.js +10 -10
- package/viewport-layout.d.ts +2 -27
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { ConversationListItemDto, DeploymentItemDto } from '@epam/ai-dial-chat-api-client';
|
|
2
|
+
import { FilterTab } from '@epam/ai-dial-chat-shared';
|
|
3
|
+
import { ReactNode } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Classifies a conversation's ownership using the shared filter-tab contract.
|
|
6
|
+
*/
|
|
7
|
+
export declare const getConversationSource: (item: Pick<ConversationListItemDto, "sharedWithMe" | "publishedWithMe">) => FilterTab;
|
|
8
|
+
/** Resolver callbacks injected by the host app into `useConversationPanelItems`. */
|
|
9
|
+
export interface UseConversationPanelItemsResolvers {
|
|
10
|
+
/** Converts a raw conversation id to the panel-space id. App-specific. */
|
|
11
|
+
toPanelConversationId: (id: string) => string;
|
|
12
|
+
/** Resolves the icon URL for a deployment. Returns `undefined` when not available. */
|
|
13
|
+
resolveIconUrl: (deployment: DeploymentItemDto | undefined) => string | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Resolves the icon tooltip text. Receives the matched deployment (or
|
|
16
|
+
* `undefined`) and a decoded fallback string derived from the model path.
|
|
17
|
+
*/
|
|
18
|
+
resolveIconTooltip: (deployment: DeploymentItemDto | undefined, fallback: string) => string | undefined;
|
|
19
|
+
/** Resolves the href to navigate to when the conversation row is clicked. */
|
|
20
|
+
resolveHref: (panelConversationId: string) => string;
|
|
21
|
+
/**
|
|
22
|
+
* Returns the row presentation for a scheduled-task conversation — a
|
|
23
|
+
* host-rendered leading icon that replaces the deployment avatar, and the
|
|
24
|
+
* unread flag — or `undefined` for an ordinary conversation.
|
|
25
|
+
*/
|
|
26
|
+
resolveTaskPresentation?: (item: ConversationListItemDto) => {
|
|
27
|
+
leadingIcon?: ReactNode;
|
|
28
|
+
isUnread: boolean;
|
|
29
|
+
} | undefined;
|
|
30
|
+
}
|
|
31
|
+
/** Parameters accepted by `useConversationPanelItems`. */
|
|
32
|
+
export interface UseConversationPanelItemsParams extends UseConversationPanelItemsResolvers {
|
|
33
|
+
/** Raw conversation list from the API. */
|
|
34
|
+
items: ConversationListItemDto[];
|
|
35
|
+
/** Available deployments used to resolve icons and tooltips. */
|
|
36
|
+
deployments: DeploymentItemDto[];
|
|
37
|
+
/** Whether the deployments list is still loading (drives `isIconLoading`). */
|
|
38
|
+
isDeploymentsLoading: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Maps raw `ConversationListItemDto[]` to panel-compatible conversation items.
|
|
42
|
+
*
|
|
43
|
+
* Returns a memoised array whose shape is compatible with the conversation
|
|
44
|
+
* panel's item contract. All app-specific concerns (icon URL resolution,
|
|
45
|
+
* route generation, id normalisation) are injected via resolver callbacks.
|
|
46
|
+
*
|
|
47
|
+
* While every input except `items` is unchanged, a DTO that is referentially
|
|
48
|
+
* the same as in the previous render maps to the same item object, so a list
|
|
49
|
+
* change (or a navigation that re-derives the list) re-renders only the rows
|
|
50
|
+
* whose DTO actually changed.
|
|
51
|
+
*/
|
|
52
|
+
export declare const useConversationPanelItems: ({ items, deployments, isDeploymentsLoading, toPanelConversationId, resolveIconUrl, resolveIconTooltip, resolveHref, resolveTaskPresentation, }: UseConversationPanelItemsParams) => {
|
|
53
|
+
leadingIcon?: ReactNode;
|
|
54
|
+
isUnread?: boolean | undefined;
|
|
55
|
+
id: string;
|
|
56
|
+
title: string;
|
|
57
|
+
isPinned: boolean;
|
|
58
|
+
iconUrl: string | undefined;
|
|
59
|
+
iconTooltip: string | undefined;
|
|
60
|
+
isIconLoading: boolean;
|
|
61
|
+
source: FilterTab;
|
|
62
|
+
href: string;
|
|
63
|
+
}[];
|
|
64
|
+
//# sourceMappingURL=useConversationPanelItems.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConversationPanelItems.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationPanelItems/useConversationPanelItems.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAA8B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAOnE;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAChC,MAAM,IAAI,CAAC,uBAAuB,EAAE,cAAc,GAAG,iBAAiB,CAAC,KACtE,SAIF,CAAC;AAEF,oFAAoF;AACpF,MAAM,WAAW,kCAAkC;IACjD,0EAA0E;IAC1E,qBAAqB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9C,sFAAsF;IACtF,cAAc,EAAE,CACd,UAAU,EAAE,iBAAiB,GAAG,SAAS,KACtC,MAAM,GAAG,SAAS,CAAC;IACxB;;;OAGG;IACH,kBAAkB,EAAE,CAClB,UAAU,EAAE,iBAAiB,GAAG,SAAS,EACzC,QAAQ,EAAE,MAAM,KACb,MAAM,GAAG,SAAS,CAAC;IACxB,6EAA6E;IAC7E,WAAW,EAAE,CAAC,mBAAmB,EAAE,MAAM,KAAK,MAAM,CAAC;IACrD;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,CACxB,IAAI,EAAE,uBAAuB,KAC1B;QAAE,WAAW,CAAC,EAAE,SAAS,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CACjE;AAED,0DAA0D;AAC1D,MAAM,WAAW,+BAAgC,SAAQ,kCAAkC;IACzF,0CAA0C;IAC1C,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,gEAAgE;IAChE,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,8EAA8E;IAC9E,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AA+BD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,yBAAyB,GAAI,gJASvC,+BAA+B;;;;;;;;;;;GA6EjC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { RefObject } from 'react';
|
|
2
|
+
/** Parameters for {@link useConversationScroll}. `T` is never read — only `messages.length` is used to detect growth/reset. */
|
|
3
|
+
export interface UseConversationScrollParams<T> {
|
|
4
|
+
/** Messages currently rendered in the list. */
|
|
5
|
+
messages: T[];
|
|
6
|
+
/** Whether an assistant response is currently streaming in. */
|
|
7
|
+
isAssistantTyping: boolean;
|
|
8
|
+
/** Identifier of the conversation being displayed. */
|
|
9
|
+
conversationId: string;
|
|
10
|
+
}
|
|
11
|
+
/** Return value of {@link useConversationScroll}. */
|
|
12
|
+
export interface UseConversationScrollResult {
|
|
13
|
+
/** Attach to the scrollable message-list element. */
|
|
14
|
+
containerRef: RefObject<HTMLDivElement | null>;
|
|
15
|
+
/** Attach to the element wrapping all rendered messages (used to detect content growth). */
|
|
16
|
+
contentRef: RefObject<HTMLDivElement | null>;
|
|
17
|
+
/**
|
|
18
|
+
* Attach to a spacer element, a sibling rendered right after `contentRef`
|
|
19
|
+
* inside `containerRef`. Its height is set imperatively, not via React
|
|
20
|
+
* state. Render it with `shrink-0` and an initial `style={{ height: 0 }}`.
|
|
21
|
+
*/
|
|
22
|
+
spacerRef: RefObject<HTMLDivElement | null>;
|
|
23
|
+
/** Callback ref to register/unregister a rendered message's DOM node by index. */
|
|
24
|
+
setMessageRef: (index: number, el: HTMLDivElement | null) => void;
|
|
25
|
+
/** Whether the scroll-to-bottom button should be shown. */
|
|
26
|
+
isScrollButtonVisible: boolean;
|
|
27
|
+
/** Smoothly scrolls to the current bottom of the actual message content. */
|
|
28
|
+
scrollToBottom: () => void;
|
|
29
|
+
/**
|
|
30
|
+
* Arms the message at `index` to be scrolled near the top of the viewport
|
|
31
|
+
* on the next render — call right before triggering a send, regenerate,
|
|
32
|
+
* or edit-and-resubmit so the resulting message anchors near the top.
|
|
33
|
+
*/
|
|
34
|
+
armAnchor: (index: number) => void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Owns chat-list scrolling: anchors a new turn near the viewport top, keeps
|
|
38
|
+
* the position stable while the response streams, and reports whether the
|
|
39
|
+
* scroll-to-bottom button should be shown.
|
|
40
|
+
*
|
|
41
|
+
* The temporary spacer is technical scroll room, not user-visible content:
|
|
42
|
+
* it is sized to the minimum required to make the anchor reachable and manual
|
|
43
|
+
* scrolling is clamped before the user can move past the real message content.
|
|
44
|
+
*/
|
|
45
|
+
export declare const useConversationScroll: <T>({ messages, isAssistantTyping, conversationId, }: UseConversationScrollParams<T>) => UseConversationScrollResult;
|
|
46
|
+
//# sourceMappingURL=useConversationScroll.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConversationScroll.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationScroll/useConversationScroll.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAMf,+HAA+H;AAC/H,MAAM,WAAW,2BAA2B,CAAC,CAAC;IAC5C,+CAA+C;IAC/C,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,+DAA+D;IAC/D,iBAAiB,EAAE,OAAO,CAAC;IAC3B,sDAAsD;IACtD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qDAAqD;AACrD,MAAM,WAAW,2BAA2B;IAC1C,qDAAqD;IACrD,YAAY,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC/C,4FAA4F;IAC5F,UAAU,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC7C;;;;OAIG;IACH,SAAS,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC5C,kFAAkF;IAClF,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAClE,2DAA2D;IAC3D,qBAAqB,EAAE,OAAO,CAAC;IAC/B,4EAA4E;IAC5E,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B;;;;OAIG;IACH,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,qBAAqB,GAAI,CAAC,EAAE,kDAItC,2BAA2B,CAAC,CAAC,CAAC,KAAG,2BAwTnC,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Message, Stage, StreamChunk } from '@epam/ai-dial-chat-shared';
|
|
2
|
+
/**
|
|
3
|
+
* Merges incoming stage deltas into an existing stage list, keyed by `index`.
|
|
4
|
+
*
|
|
5
|
+
* Partial `name` and `content` strings are concatenated across chunks;
|
|
6
|
+
* attachments are merged by their own `index` (concatenating partial `title`
|
|
7
|
+
* and `data`); every other field on the incoming delta overwrites the
|
|
8
|
+
* accumulated one. A brand-new stage whose first chunk carries `name: null`
|
|
9
|
+
* is normalized to `''`.
|
|
10
|
+
*
|
|
11
|
+
* Exported for hosts that keep a flattened `Stage[]` on the message instead
|
|
12
|
+
* of `Message.custom_content.stages` and therefore cannot reuse
|
|
13
|
+
* {@link applyChunkToMessages}. Prefer `useConversationStream` when the host
|
|
14
|
+
* can delegate the whole stream loop.
|
|
15
|
+
*/
|
|
16
|
+
export declare const mergeStages: (existing: Stage[], incoming: Stage[]) => Stage[];
|
|
17
|
+
/**
|
|
18
|
+
* Applies a single SSE stream chunk to the message list.
|
|
19
|
+
*
|
|
20
|
+
*
|
|
21
|
+
* Attachments are accumulated: each chunk's attachments are appended to the
|
|
22
|
+
* existing array rather than replacing it.
|
|
23
|
+
*
|
|
24
|
+
* Annotations are merged by `index`: partial `body.title` and `body.quote`
|
|
25
|
+
* strings are concatenated across chunks, matching the same delta-merge
|
|
26
|
+
* semantics used for stages.
|
|
27
|
+
*
|
|
28
|
+
* `state` is overwritten (not merged) by each chunk that carries one,
|
|
29
|
+
* matching the DIAL stateful-app contract.
|
|
30
|
+
*
|
|
31
|
+
* @returns Updated message array, or `null` when the chunk carries no
|
|
32
|
+
* actionable data (empty content, no form_schema, and no attachments).
|
|
33
|
+
*/
|
|
34
|
+
export declare const applyChunkToMessages: (messages: Message[], messageIndex: number, chunk: StreamChunk) => Message[] | null;
|
|
35
|
+
//# sourceMappingURL=apply-chunk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply-chunk.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/apply-chunk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,OAAO,EAEP,KAAK,EACL,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAqFnC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,KAAK,EAAE,EAAE,UAAU,KAAK,EAAE,KAAG,KAAK,EA+BvE,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,GAC/B,UAAU,OAAO,EAAE,EACnB,cAAc,MAAM,EACpB,OAAO,WAAW,KACjB,OAAO,EAAE,GAAG,IAqEd,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Conversation, Message } from '@epam/ai-dial-chat-shared';
|
|
2
|
+
/**
|
|
3
|
+
* A generation's assistant message accumulated while its conversation isn't
|
|
4
|
+
* the displayed one (a background stream, or a resume attach), keyed by
|
|
5
|
+
* conversation path so it can be restored once that conversation is shown
|
|
6
|
+
* again.
|
|
7
|
+
*/
|
|
8
|
+
export interface BufferedGeneration {
|
|
9
|
+
generationId: string;
|
|
10
|
+
messageIndex: number;
|
|
11
|
+
message: Message;
|
|
12
|
+
}
|
|
13
|
+
/** Restores `buffered.message` into `conversation` at `buffered.messageIndex`, merging into whatever message is already there. */
|
|
14
|
+
export declare const restoreBufferedMessage: (conversation: Conversation, buffered: BufferedGeneration) => Conversation;
|
|
15
|
+
//# sourceMappingURL=buffered-generation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buffered-generation.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/buffered-generation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEvE;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAgBD,kIAAkI;AAClI,eAAO,MAAM,sBAAsB,GACjC,cAAc,YAAY,EAC1B,UAAU,kBAAkB,KAC3B,YAeF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strips the leading bucket segment from a conversation id and decodes any
|
|
3
|
+
* already-percent-encoded remainder back to raw, so callers that re-encode
|
|
4
|
+
* the result once (e.g. an API client) don't double-encode it on the wire.
|
|
5
|
+
*/
|
|
6
|
+
export declare const getConversationPath: (conversationId: string) => string;
|
|
7
|
+
//# sourceMappingURL=conversation-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-path.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/conversation-path.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,gBAAgB,MAAM,KAAG,MAO5D,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Coalesces work per key into at most one run per animation frame. */
|
|
2
|
+
export interface FrameScheduler {
|
|
3
|
+
/** Runs `task` on the next frame, replacing any task still pending for `key`. */
|
|
4
|
+
schedule: (key: string, task: () => void) => void;
|
|
5
|
+
/** Runs the task pending for `key` now, if any; it will not run again. */
|
|
6
|
+
flush: (key: string) => void;
|
|
7
|
+
/** Drops the task pending for `key` without running it. */
|
|
8
|
+
cancel: (key: string) => void;
|
|
9
|
+
/** Drops every pending task without running it. */
|
|
10
|
+
cancelAll: () => void;
|
|
11
|
+
}
|
|
12
|
+
/** Returns a scheduler that runs the latest task per key once per animation frame. */
|
|
13
|
+
export declare const createFrameScheduler: () => FrameScheduler;
|
|
14
|
+
//# sourceMappingURL=frame-scheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame-scheduler.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/frame-scheduler.ts"],"names":[],"mappings":"AAGA,uEAAuE;AACvE,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAClD,0EAA0E;IAC1E,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,2DAA2D;IAC3D,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B,mDAAmD;IACnD,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAgBD,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,QAAO,cAmCvC,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { Conversation, Message } from '@epam/ai-dial-chat-shared';
|
|
2
|
+
import { Dispatch, MutableRefObject, SetStateAction } from 'react';
|
|
3
|
+
import { BufferedGeneration } from './buffered-generation';
|
|
4
|
+
import { FrameScheduler } from './frame-scheduler';
|
|
5
|
+
import { ConversationStreamTransport } from './useConversationStream';
|
|
6
|
+
/**
|
|
7
|
+
* True when the assistant message carries anything the backend's finalize save
|
|
8
|
+
* would have written. Text alone is not enough to tell a finished response from
|
|
9
|
+
* the start-state placeholder: an image-generation answer settles with an empty
|
|
10
|
+
* `content` and only `custom_content.attachments`, and a stage-only or
|
|
11
|
+
* form-only answer is just as text-free.
|
|
12
|
+
*/
|
|
13
|
+
export declare const hasGeneratedPayload: (message: Message) => boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Index of the conversation's message that a background generation is still
|
|
16
|
+
* producing (`backgroundGeneration.status` is `pending`), or -1. It can sit
|
|
17
|
+
* anywhere, e.g. before a model-changed status message.
|
|
18
|
+
*/
|
|
19
|
+
export declare const findPendingBackgroundMessageIndex: (conversation: Conversation) => number;
|
|
20
|
+
/**
|
|
21
|
+
* True when the conversation has a pending background message, or its last
|
|
22
|
+
* message is an unresolved assistant placeholder: the backend only persists a
|
|
23
|
+
* conversation at generation start (empty placeholder) and at generation end
|
|
24
|
+
* (final content, or a partial flagged `streamErrorMessage`/`wasStoppedByUser`).
|
|
25
|
+
* This can mean generation is still active elsewhere, or that its terminal save
|
|
26
|
+
* failed.
|
|
27
|
+
*/
|
|
28
|
+
export declare const isAwaitingGenerationResume: (conversation: Conversation) => boolean;
|
|
29
|
+
export declare const RECOVERY_REFETCH_DELAYS_MS: number[];
|
|
30
|
+
/**
|
|
31
|
+
* Returns the conversation from `load`, retrying rejected attempts — and
|
|
32
|
+
* results `isPending` flags as not yet settled — on the
|
|
33
|
+
* {@link RECOVERY_REFETCH_DELAYS_MS} schedule; `null` once every attempt has
|
|
34
|
+
* failed or stayed pending, or `shouldStop` turns true between attempts.
|
|
35
|
+
*/
|
|
36
|
+
export declare const fetchConversationForRecovery: (load: () => Promise<Conversation>, shouldStop: () => boolean, isPending?: (conversation: Conversation) => boolean) => Promise<Conversation | null>;
|
|
37
|
+
/** Internal options a resume started by the stream hook itself passes; the public API passes none. */
|
|
38
|
+
export interface ResumeGenerationOptions {
|
|
39
|
+
/** Initial buffered message, used instead of the stored placeholder — the live partial answer a dropped stream had already shown. */
|
|
40
|
+
seedMessage?: Message;
|
|
41
|
+
/** Called once when the resume has resolved or lost ownership of the path to a newer generation. */
|
|
42
|
+
onSettled?: () => void;
|
|
43
|
+
/** Resumes even though the path is already in `resumingPathsRef`, for a caller that reserved it itself. */
|
|
44
|
+
skipDedupe?: boolean;
|
|
45
|
+
}
|
|
46
|
+
/** Host-owned state {@link createResumeIfAwaitingGeneration} reads/writes through. */
|
|
47
|
+
export interface ResumeIfAwaitingGenerationDeps {
|
|
48
|
+
transport: ConversationStreamTransport;
|
|
49
|
+
setConversation: Dispatch<SetStateAction<Conversation | null>>;
|
|
50
|
+
conversationRef: MutableRefObject<Conversation | null>;
|
|
51
|
+
resumingPathsRef: MutableRefObject<Set<string>>;
|
|
52
|
+
bufferedGenerationsRef: MutableRefObject<Map<string, BufferedGeneration>>;
|
|
53
|
+
addStreamingPath: (path: string) => void;
|
|
54
|
+
removeStreamingPath: (path: string) => void;
|
|
55
|
+
isPathDisplayed: (path: string) => boolean;
|
|
56
|
+
generationPersistenceErrorMessage?: string;
|
|
57
|
+
/** Records a terminal read failure and its guarded read-only retry. */
|
|
58
|
+
onReloadError?: (path: string, retry: () => Promise<void>, isCurrent: () => boolean) => void;
|
|
59
|
+
/** Clears a previous read failure after reconciliation. */
|
|
60
|
+
onReloadSuccess?: (path: string) => void;
|
|
61
|
+
/** When set, replayed chunks are published at most once per frame through it. */
|
|
62
|
+
frameScheduler?: FrameScheduler;
|
|
63
|
+
/**
|
|
64
|
+
* Generation ids the user stopped. A resumed background generation in this set
|
|
65
|
+
* ignores further replayed chunks (DIAL Core does not always honour the cancel), and
|
|
66
|
+
* its id is removed when the resume settles.
|
|
67
|
+
*/
|
|
68
|
+
stoppedGenerationIdsRef?: MutableRefObject<Set<string>>;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Builds `resumeIfAwaitingGeneration`: a hard refresh mid-generation loads a
|
|
72
|
+
* conversation whose last message is the backend's empty start-state
|
|
73
|
+
* placeholder (no incremental save exists to show partial content). Rather
|
|
74
|
+
* than leaving that static and forever empty, this marks the path as
|
|
75
|
+
* streaming — for free, reusing the same typing indicator and any
|
|
76
|
+
* `isStreaming` guards a composed handlers hook already applies — and
|
|
77
|
+
* attaches to the backend's live replay of the in-flight generation
|
|
78
|
+
* (`transport.attachToGeneration`), showing the assistant message populate
|
|
79
|
+
* progressively. It falls back to watching the conversation's generic
|
|
80
|
+
* resource-update channel (`transport.watchConversation`) until the
|
|
81
|
+
* backend's finalize save resolves the placeholder whenever attach is
|
|
82
|
+
* unavailable or ends without a terminal event.
|
|
83
|
+
*/
|
|
84
|
+
export declare const createResumeIfAwaitingGeneration: ({ transport, setConversation, conversationRef, resumingPathsRef, bufferedGenerationsRef, addStreamingPath, removeStreamingPath, isPathDisplayed, generationPersistenceErrorMessage, frameScheduler, stoppedGenerationIdsRef, onReloadError, onReloadSuccess, }: ResumeIfAwaitingGenerationDeps) => (currentConversationId: string, conversation: Conversation, options?: ResumeGenerationOptions) => void;
|
|
85
|
+
//# sourceMappingURL=generation-resume.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generation-resume.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/generation-resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,OAAO,EAEb,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAOxE,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AAE3E;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,SAAS,OAAO,KAAG,OAWtD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,GAC5C,cAAc,YAAY,KACzB,MAKA,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,GACrC,cAAc,YAAY,KACzB,OAUF,CAAC;AA6BF,eAAO,MAAM,0BAA0B,UAAkC,CAAC;AAe1E;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GACvC,MAAM,MAAM,OAAO,CAAC,YAAY,CAAC,EACjC,YAAY,MAAM,OAAO,EACzB,YAAY,CAAC,YAAY,EAAE,YAAY,KAAK,OAAO,KAClD,OAAO,CAAC,YAAY,GAAG,IAAI,CAiB7B,CAAC;AAgEF,sGAAsG;AACtG,MAAM,WAAW,uBAAuB;IACtC,qIAAqI;IACrI,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oGAAoG;IACpG,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,2GAA2G;IAC3G,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,sFAAsF;AACtF,MAAM,WAAW,8BAA8B;IAC7C,SAAS,EAAE,2BAA2B,CAAC;IACvC,eAAe,EAAE,QAAQ,CAAC,cAAc,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/D,eAAe,EAAE,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACvD,gBAAgB,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,sBAAsB,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAC1E,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,uEAAuE;IACvE,aAAa,CAAC,EAAE,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC1B,SAAS,EAAE,MAAM,OAAO,KACrB,IAAI,CAAC;IACV,2DAA2D;IAC3D,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,iFAAiF;IACjF,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CACzD;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gCAAgC,GAAI,gQAc9C,8BAA8B,MAE7B,uBAAuB,MAAM,EAC7B,cAAc,YAAY,EAC1B,UAAS,uBAA4B,KACpC,IA8QJ,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { SendCompletionDtoModeEnum } from '@epam/ai-dial-chat-api-client';
|
|
2
|
+
import { Conversation, MessageCustomContent, StreamChunk } from '@epam/ai-dial-chat-shared';
|
|
3
|
+
import { Dispatch, MutableRefObject, SetStateAction } from 'react';
|
|
4
|
+
/** Options accepted by {@link ConversationStreamTransport.streamCompletion}. */
|
|
5
|
+
export interface StreamCompletionOptions {
|
|
6
|
+
onChunk: (chunk: StreamChunk) => void;
|
|
7
|
+
onComplete: () => void | Promise<void>;
|
|
8
|
+
onError: (error: Error) => void;
|
|
9
|
+
signal: AbortSignal;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Host-owned transport for the DIAL Core completion protocol. Implemented at
|
|
13
|
+
* the app edge — never hardcodes an `/api` path, CSRF handling, or a
|
|
14
|
+
* `server-api` import; the library only depends on this interface's shape.
|
|
15
|
+
*/
|
|
16
|
+
export interface ConversationStreamTransport {
|
|
17
|
+
/** Starts a completion; delivers chunks/completion/error through `options`, aborted via `options.signal`. */
|
|
18
|
+
streamCompletion(path: string, message: string | undefined, model: string, options: StreamCompletionOptions, customContent?: MessageCustomContent, generationId?: string, mode?: SendCompletionDtoModeEnum, messageIndex?: number, clientChannelId?: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Requests the backend stop an active generation. `content` is the answer text shown
|
|
21
|
+
* so far; the backend saves it for a generation whose text it does not hold.
|
|
22
|
+
*/
|
|
23
|
+
stopCompletion(params: {
|
|
24
|
+
generationId: string;
|
|
25
|
+
path: string;
|
|
26
|
+
content?: string;
|
|
27
|
+
}): Promise<void>;
|
|
28
|
+
/** Opens a stream of resource-update events for `path`, until aborted via `signal`. */
|
|
29
|
+
watchConversation(path: string, signal: AbortSignal): Promise<ReadableStream<Uint8Array>>;
|
|
30
|
+
/**
|
|
31
|
+
* Attaches to an active generation's live replay: a `snapshot` event
|
|
32
|
+
* carrying the assistant message as assembled so far, then a `chunk` event
|
|
33
|
+
* per subsequent delta, then exactly one terminal event (`done`/`error`/
|
|
34
|
+
* `stopped`), until aborted via `signal`. Rejects when no active
|
|
35
|
+
* generation exists for `path` — including one that already finished —
|
|
36
|
+
* so the caller can fall back to `watchConversation`.
|
|
37
|
+
*/
|
|
38
|
+
attachToGeneration(path: string, signal: AbortSignal): Promise<ReadableStream<Uint8Array>>;
|
|
39
|
+
/** Reloads the persisted conversation by its full (bucket-qualified) id. */
|
|
40
|
+
getConversation(conversationId: string, signal?: AbortSignal): Promise<Conversation>;
|
|
41
|
+
/**
|
|
42
|
+
* Saves `conversation` at the bucket-stripped `path`, resolving with the saved
|
|
43
|
+
* conversation. Used only for the single recovery save after the backend's
|
|
44
|
+
* terminal save was rejected with `401`; without it that failure shows the
|
|
45
|
+
* persistence warning immediately.
|
|
46
|
+
*/
|
|
47
|
+
saveConversation?(path: string, conversation: Conversation): Promise<Conversation>;
|
|
48
|
+
}
|
|
49
|
+
/** Host-owned generation lifecycle, backing cross-navigation `AbortController` ownership. */
|
|
50
|
+
export interface ConversationGenerationLifecycle {
|
|
51
|
+
/** Starts (or replaces) tracking for a generation on `path`, returning its `AbortController`. */
|
|
52
|
+
startGeneration: (path: string, generationId: string) => AbortController;
|
|
53
|
+
/** Marks the generation identified by `path`/`generationId` complete, if it is still the active one. */
|
|
54
|
+
completeGeneration: (path: string, generationId: string) => void;
|
|
55
|
+
}
|
|
56
|
+
/** Optional host-owned client-channel connection, used to nudge tool-signin delivery. */
|
|
57
|
+
export interface ConversationStreamChannel {
|
|
58
|
+
channelId: string | null;
|
|
59
|
+
ensureConnected: () => void;
|
|
60
|
+
/** Resolves with a channel id, waiting for an in-flight subscribe if one isn't established yet, so a completion sent immediately after mount can still carry it. */
|
|
61
|
+
waitForChannel: (timeoutMs?: number) => Promise<string | null>;
|
|
62
|
+
/** Notifies the host that a generation just ended (completed or errored), so it can consider disconnecting an idle channel. */
|
|
63
|
+
notifyGenerationSettled?: () => void;
|
|
64
|
+
}
|
|
65
|
+
/** Optional host-owned overlay generation-lifecycle notifications. Each method is independently optional. */
|
|
66
|
+
export interface ConversationStreamOverlayNotifier {
|
|
67
|
+
notifyGenerationStart?: () => void;
|
|
68
|
+
notifyGenerationEnd?: () => void;
|
|
69
|
+
notifyStopGenerating?: () => void;
|
|
70
|
+
}
|
|
71
|
+
/** Shared mutable channel through which the displayed conversation's state is read/written. */
|
|
72
|
+
export interface ConversationStateAccessor {
|
|
73
|
+
setConversation: Dispatch<SetStateAction<Conversation | null>>;
|
|
74
|
+
conversationRef: MutableRefObject<Conversation | null>;
|
|
75
|
+
}
|
|
76
|
+
/** Parameters for {@link useConversationStream}. */
|
|
77
|
+
export interface UseConversationStreamParams {
|
|
78
|
+
conversationId: string | undefined;
|
|
79
|
+
state: ConversationStateAccessor;
|
|
80
|
+
transport: ConversationStreamTransport;
|
|
81
|
+
generation: ConversationGenerationLifecycle;
|
|
82
|
+
channel?: ConversationStreamChannel;
|
|
83
|
+
overlay?: ConversationStreamOverlayNotifier;
|
|
84
|
+
onStopError?: (error: Error) => void;
|
|
85
|
+
/**
|
|
86
|
+
* Message shown on the message bubble when the backend rejects a completion
|
|
87
|
+
* because this conversation is already generating — the case a second
|
|
88
|
+
* browser tab of the same session hits. Defaults to
|
|
89
|
+
* {@link DEFAULT_GENERATION_CONFLICT_MESSAGE}.
|
|
90
|
+
*/
|
|
91
|
+
generationConflictMessage?: string;
|
|
92
|
+
/** Host-translated warning shown when the received answer could not be saved. */
|
|
93
|
+
generationPersistenceErrorMessage?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Receives the original error of every failed stream. The hook shows only
|
|
96
|
+
* host-supplied or upstream-supplied text on the message bubble and hides
|
|
97
|
+
* transport detail (e.g. `Failed to fetch`), so this is where the host can
|
|
98
|
+
* still log or report the raw error.
|
|
99
|
+
*/
|
|
100
|
+
onStreamError?: (error: Error) => void;
|
|
101
|
+
/**
|
|
102
|
+
* Coalesces the displayed chunk updates into one `setConversation` per
|
|
103
|
+
* animation frame. Chunks still reach the per-path buffer immediately, and
|
|
104
|
+
* any pending update is flushed before completion, error, stop, or a
|
|
105
|
+
* superseding generation. Defaults to `false` (one update per chunk).
|
|
106
|
+
*/
|
|
107
|
+
batchChunksPerFrame?: boolean;
|
|
108
|
+
}
|
|
109
|
+
/** Per-start options of {@link UseConversationStreamResult.startStream}. */
|
|
110
|
+
export interface StartStreamOptions {
|
|
111
|
+
/**
|
|
112
|
+
* Treats a `GenerationConflictError` as "this turn is already being
|
|
113
|
+
* generated" — e.g. a page reloaded before that generation saved its start
|
|
114
|
+
* state — and joins the running generation instead of showing the conflict
|
|
115
|
+
* message, which remains the fallback. Only for a start that sends no new
|
|
116
|
+
* user text; a send the user typed must keep reporting the conflict.
|
|
117
|
+
*/
|
|
118
|
+
resumeOnConflict?: boolean;
|
|
119
|
+
}
|
|
120
|
+
/** Return value of {@link useConversationStream}. */
|
|
121
|
+
export interface UseConversationStreamResult {
|
|
122
|
+
startStream: (conversationId: string, userContent: string, messageIndex: number, model: string, customContent?: MessageCustomContent, generationId?: string, mode?: SendCompletionDtoModeEnum, options?: StartStreamOptions) => void;
|
|
123
|
+
handleStop: () => void;
|
|
124
|
+
resumeIfAwaitingGeneration: (currentConversationId: string, conversation: Conversation) => void;
|
|
125
|
+
/** Restores the accumulated live assistant message when its conversation is loaded again before completion. */
|
|
126
|
+
restoreBufferedGeneration: (currentConversationId: string, conversation: Conversation) => Conversation;
|
|
127
|
+
isStreaming: boolean;
|
|
128
|
+
canStopStreaming: boolean;
|
|
129
|
+
/** Whether the displayed conversation's terminal read failed. */
|
|
130
|
+
hasConversationReloadError: boolean;
|
|
131
|
+
/** Whether a retry of that read is in flight. */
|
|
132
|
+
isReloadingConversation: boolean;
|
|
133
|
+
/** Retries the failed read without saving or regenerating the answer. */
|
|
134
|
+
retryConversationReload: () => Promise<void>;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Owns completion-streaming state: per-path streaming/stoppable tracking,
|
|
138
|
+
* stale-chunk rejection, cross-navigation live-message buffering,
|
|
139
|
+
* reload-after-complete, backend-driven stop, and hard-refresh resume
|
|
140
|
+
* detection — all driven through the injected
|
|
141
|
+
* `transport`/`generation`/`channel`/`overlay` capabilities rather than any
|
|
142
|
+
* app context or `server-api` import.
|
|
143
|
+
*/
|
|
144
|
+
export declare const useConversationStream: ({ conversationId, state: { setConversation, conversationRef }, transport, generation: { startGeneration, completeGeneration }, channel, overlay, onStopError, generationConflictMessage, generationPersistenceErrorMessage, onStreamError, batchChunksPerFrame, }: UseConversationStreamParams) => UseConversationStreamResult;
|
|
145
|
+
//# sourceMappingURL=useConversationStream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useConversationStream.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/useConversationStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ChangeEvent, RefObject } from 'react';
|
|
2
|
+
/** Parameters for `useImportFilePicker`. */
|
|
3
|
+
export interface UseImportFilePickerParams {
|
|
4
|
+
/**
|
|
5
|
+
* MIME types / file-extension filter string passed to the hidden input's
|
|
6
|
+
* `accept` attribute. The host resolves any platform-specific policy before
|
|
7
|
+
* passing this value.
|
|
8
|
+
*/
|
|
9
|
+
accept?: string;
|
|
10
|
+
/** Called with the selected `File` after the user confirms their choice. */
|
|
11
|
+
onFileSelected: (file: File) => void;
|
|
12
|
+
}
|
|
13
|
+
/** Controls returned by `useImportFilePicker`. */
|
|
14
|
+
export interface UseImportFilePickerResult {
|
|
15
|
+
/** Ref to attach to the hidden `<input type="file">` element. */
|
|
16
|
+
inputRef: RefObject<HTMLInputElement | null>;
|
|
17
|
+
/** Programmatically opens the native file picker by clicking the hidden input. */
|
|
18
|
+
triggerImport: () => void;
|
|
19
|
+
/** `onChange` handler for the hidden input; calls `onFileSelected` and resets the value. */
|
|
20
|
+
handleFileChange: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Manages the hidden `<input type="file">` pattern used to trigger a native
|
|
24
|
+
* file-picker without a visible control.
|
|
25
|
+
*
|
|
26
|
+
* The host renders `<input ref={inputRef} type="file" onChange={handleFileChange} />`
|
|
27
|
+
* and calls `triggerImport()` when the user initiates an import action. The
|
|
28
|
+
* hook sets the `accept` attribute via a layout effect so re-selecting the
|
|
29
|
+
* same file always fires `onChange` (the value is reset after each selection).
|
|
30
|
+
*/
|
|
31
|
+
export declare const useImportFilePicker: ({ accept, onFileSelected, }: UseImportFilePickerParams) => UseImportFilePickerResult;
|
|
32
|
+
//# sourceMappingURL=useImportFilePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useImportFilePicker.d.ts","sourceRoot":"","sources":["../../../src/conversation/useImportFilePicker/useImportFilePicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,4CAA4C;AAC5C,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACtC;AAED,kDAAkD;AAClD,MAAM,WAAW,yBAAyB;IACxC,iEAAiE;IACjE,QAAQ,EAAE,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAC7C,kFAAkF;IAClF,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,4FAA4F;IAC5F,gBAAgB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAClE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAAI,6BAGjC,yBAAyB,KAAG,yBA6B9B,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Attachment } from '@epam/ai-dial-chat-shared';
|
|
2
|
+
/** A stable snapshot of one eligible native text selection. */
|
|
3
|
+
export interface MessageSelectionReplySnapshot {
|
|
4
|
+
/** Scope that owned the selection when it was captured. */
|
|
5
|
+
conversationId: string;
|
|
6
|
+
/** Message text root containing the captured range. */
|
|
7
|
+
body: HTMLDivElement;
|
|
8
|
+
/** Captured native range. */
|
|
9
|
+
range: Range;
|
|
10
|
+
/** Native selected text preserved for the generated file. */
|
|
11
|
+
text: string;
|
|
12
|
+
/** Visible fragment of the selected range. */
|
|
13
|
+
rect: DOMRect;
|
|
14
|
+
}
|
|
15
|
+
/** Parameters accepted by {@link useMessageSelectionReply}. */
|
|
16
|
+
export interface UseMessageSelectionReplyParams {
|
|
17
|
+
/** Identifier used to discard selection and queued files after a scope change. */
|
|
18
|
+
conversationId: string;
|
|
19
|
+
/** Whether the host currently permits a Reply attachment. */
|
|
20
|
+
enabled: boolean;
|
|
21
|
+
/** Files from the host's ordinary page-drop queue. */
|
|
22
|
+
droppedFiles: File[];
|
|
23
|
+
/** Acknowledges the captured page-drop batch after the composer accepts it. */
|
|
24
|
+
onDroppedFilesConsumed: () => void;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Captures eligible message text and creates Reply files for an existing composer
|
|
28
|
+
* attachment flow without acquiring host deployment, upload or localization knowledge.
|
|
29
|
+
*/
|
|
30
|
+
export declare const useMessageSelectionReply: ({ conversationId, enabled, droppedFiles, onDroppedFilesConsumed, }: UseMessageSelectionReplyParams) => {
|
|
31
|
+
contentRef: (node: HTMLDivElement | null) => (() => void) | undefined;
|
|
32
|
+
actionRef: import('react').RefObject<HTMLDivElement | null>;
|
|
33
|
+
selection: MessageSelectionReplySnapshot | null;
|
|
34
|
+
onReply: () => void;
|
|
35
|
+
dismiss: () => void;
|
|
36
|
+
pendingFiles: File[];
|
|
37
|
+
onFilesConsumed: () => void;
|
|
38
|
+
focusRequestId: number | undefined;
|
|
39
|
+
onAttachmentsChange: (attachments: Attachment[]) => void;
|
|
40
|
+
addedRevision: number;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=useMessageSelectionReply.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMessageSelectionReply.d.ts","sourceRoot":"","sources":["../../../src/conversation/useMessageSelectionReply/useMessageSelectionReply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAU5D,+DAA+D;AAC/D,MAAM,WAAW,6BAA6B;IAC5C,2DAA2D;IAC3D,cAAc,EAAE,MAAM,CAAC;IACvB,uDAAuD;IACvD,IAAI,EAAE,cAAc,CAAC;IACrB,6BAA6B;IAC7B,KAAK,EAAE,KAAK,CAAC;IACb,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,IAAI,EAAE,OAAO,CAAC;CACf;AAED,+DAA+D;AAC/D,MAAM,WAAW,8BAA8B;IAC7C,kFAAkF;IAClF,cAAc,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,OAAO,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,YAAY,EAAE,IAAI,EAAE,CAAC;IACrB,+EAA+E;IAC/E,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC;AA2CD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAI,oEAKtC,8BAA8B;uBAyBtB,cAAc,GAAG,IAAI;;;;;;;;uCA6QwB,UAAU,EAAE;;CA0BnE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** Reason a {@link useTranscribeAudio} call failed, translation-free — the host maps it to text. */
|
|
2
|
+
export declare enum AudioTranscriptionErrorReason {
|
|
3
|
+
/** No usable ASR model or deployment is configured for the current bucket. */
|
|
4
|
+
Unavailable = "unavailable",
|
|
5
|
+
/** The recording exceeds the caller's configured size limit. */
|
|
6
|
+
TooLarge = "tooLarge",
|
|
7
|
+
/** Recognition is rate-limited, unavailable, or exhausted short gateway retries. */
|
|
8
|
+
Busy = "busy",
|
|
9
|
+
/** Recognition failed for any other reason. */
|
|
10
|
+
Failed = "failed"
|
|
11
|
+
}
|
|
12
|
+
/** Thrown by `transcribeAudio`; carries a machine-readable `reason` instead of translated text. */
|
|
13
|
+
export declare class AudioTranscriptionError extends Error {
|
|
14
|
+
readonly reason: AudioTranscriptionErrorReason;
|
|
15
|
+
/** The size limit that was exceeded, present only when `reason` is `TooLarge`. */
|
|
16
|
+
readonly limitBytes?: number;
|
|
17
|
+
constructor(reason: AudioTranscriptionErrorReason, limitBytes?: number);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=audio-transcription-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audio-transcription-error.d.ts","sourceRoot":"","sources":["../../../src/conversation/useTranscribeAudio/audio-transcription-error.ts"],"names":[],"mappings":"AAAA,oGAAoG;AACpG,oBAAY,6BAA6B;IACvC,8EAA8E;IAC9E,WAAW,gBAAgB;IAC3B,gEAAgE;IAChE,QAAQ,aAAa;IACrB,oFAAoF;IACpF,IAAI,SAAS;IACb,+CAA+C;IAC/C,MAAM,WAAW;CAClB;AAED,mGAAmG;AACnG,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,MAAM,EAAE,6BAA6B,CAAC;IAC/C,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAEjB,MAAM,EAAE,6BAA6B,EAAE,UAAU,CAAC,EAAE,MAAM;CAMvE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcription-retry.d.ts","sourceRoot":"","sources":["../../../src/conversation/useTranscribeAudio/transcription-retry.ts"],"names":[],"mappings":"AAiCA,eAAO,MAAM,sBAAsB,GACjC,WAAW,MAAM,OAAO,CAAC,MAAM,CAAC,EAChC,QAAQ,WAAW,KAClB,OAAO,CAAC,MAAM,CAmChB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { FilesApi, TranscriptionApi } from '@epam/ai-dial-chat-api-client';
|
|
2
|
+
/** Request shape the host's selected-deployment recognition call accepts. */
|
|
3
|
+
export interface TranscribeWithDeploymentParams {
|
|
4
|
+
audioUrl: string;
|
|
5
|
+
mimeType: string;
|
|
6
|
+
deployment: string;
|
|
7
|
+
signal: AbortSignal;
|
|
8
|
+
}
|
|
9
|
+
/** Parameters for {@link useTranscribeAudio}. */
|
|
10
|
+
export interface UseTranscribeAudioParams {
|
|
11
|
+
/** Already-configured generated-client instance used for the ASR-model path. */
|
|
12
|
+
transcriptionApi?: Pick<TranscriptionApi, 'transcribeAudio'>;
|
|
13
|
+
/** Already-configured generated-client instance used to upload the recording. */
|
|
14
|
+
filesApi: Pick<FilesApi, 'uploadFile'>;
|
|
15
|
+
/**
|
|
16
|
+
* Host-configured call for the selected-deployment path. The generated
|
|
17
|
+
* chat-completions client cannot express this endpoint's `custom_content`
|
|
18
|
+
* request shape, so the host supplies its own raw request.
|
|
19
|
+
*/
|
|
20
|
+
transcribeWithDeployment?: (params: TranscribeWithDeploymentParams) => Promise<string>;
|
|
21
|
+
/** DIAL Core bucket the recording is uploaded into. */
|
|
22
|
+
bucket: string | undefined | null;
|
|
23
|
+
/** Recognizes via `transcriptionApi` when set; otherwise `selectedDeploymentId` is used. */
|
|
24
|
+
asrModelId?: string;
|
|
25
|
+
/** Deployment id used for recognition when `asrModelId` is not set. */
|
|
26
|
+
selectedDeploymentId?: string | null;
|
|
27
|
+
/** Recordings larger than this are rejected with `TooLarge` before upload. */
|
|
28
|
+
maxSizeBytes: number;
|
|
29
|
+
}
|
|
30
|
+
/** Return value of {@link useTranscribeAudio}. */
|
|
31
|
+
export interface UseTranscribeAudioResult {
|
|
32
|
+
/** Uploads and recognizes one complete recording; rejects with an {@link AudioTranscriptionError}. */
|
|
33
|
+
transcribeAudio: (file: File, signal: AbortSignal) => Promise<string>;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Uploads a complete voice recording to DIAL Core storage and recognizes it,
|
|
37
|
+
* preferring the configured ASR model and falling back to the selected
|
|
38
|
+
* deployment. Retries transient upstream failures. Error text is not this
|
|
39
|
+
* library's concern — callers translate `AudioTranscriptionErrorReason` at
|
|
40
|
+
* the call site.
|
|
41
|
+
*/
|
|
42
|
+
export declare const useTranscribeAudio: ({ transcriptionApi, filesApi, transcribeWithDeployment, bucket, asrModelId, selectedDeploymentId, maxSizeBytes, }: UseTranscribeAudioParams) => UseTranscribeAudioResult;
|
|
43
|
+
//# sourceMappingURL=useTranscribeAudio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTranscribeAudio.d.ts","sourceRoot":"","sources":["../../../src/conversation/useTranscribeAudio/useTranscribeAudio.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAShF,6EAA6E;AAC7E,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,iDAAiD;AACjD,MAAM,WAAW,wBAAwB;IACvC,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;IAC7D,iFAAiF;IACjF,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IACvC;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,CACzB,MAAM,EAAE,8BAA8B,KACnC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,uDAAuD;IACvD,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAClC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,kDAAkD;AAClD,MAAM,WAAW,wBAAwB;IACvC,sGAAsG;IACtG,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACvE;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAI,mHAQhC,wBAAwB,KAAG,wBAyE7B,CAAC"}
|