@epam/ai-dial-chat-hooks 1.1.0-dev.440 → 1.1.0-dev.443

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.
@@ -1,33 +1,38 @@
1
- import { AttachmentErrorReason as e } from "@epam/ai-dial-chat-shared";
2
- import { useCallback as t, useRef as n } from "react";
1
+ import { sanitizeFileName as e } from "../../files/file-name.js";
2
+ import { AttachmentErrorReason as t } from "@epam/ai-dial-chat-shared";
3
+ import { useCallback as n, useRef as r } from "react";
3
4
  //#region src/conversation/useAttachmentUpload/useAttachmentUpload.ts
4
- var r = 700, i = (e) => (e.split(/[\\/]/).filter(Boolean).pop() ?? "file").replace(/\.\.+/g, ".").replace(/^\.+/, "") || "file", a = (e, t = /* @__PURE__ */ new Date()) => `uploads/${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, "0")}/${encodeURIComponent(i(e))}`, o = ({ filesApi: i, bucket: o, onNetworkError: s, debounceMs: c = r }) => {
5
- let l = n([]), u = n(null);
6
- return { handleUploadAttachment: t(async (t) => {
7
- if (!o) throw Error("User bucket is not available");
5
+ var i = 700, a = (t) => e(t.split("/").filter(Boolean).pop() ?? "file").replace(/\.\.+/g, ".").replace(/^\.+/, "") || "file", o = (e, t = /* @__PURE__ */ new Date()) => `uploads/${t.getFullYear()}-${String(t.getMonth() + 1).padStart(2, "0")}/${encodeURIComponent(e)}`, s = ({ filesApi: e, bucket: s, onNetworkError: c, debounceMs: l = i }) => {
6
+ let u = r([]), d = r(null);
7
+ return { handleUploadAttachment: n(async (n) => {
8
+ if (!s) throw Error("User bucket is not available");
9
+ let r = a(n.name);
8
10
  try {
9
- return (await i.uploadFile({
10
- bucket: o,
11
- path: a(t.name),
12
- file: t.file
13
- })).url;
14
- } catch (n) {
11
+ return {
12
+ url: (await e.uploadFile({
13
+ bucket: s,
14
+ path: o(r),
15
+ file: n.file
16
+ })).url,
17
+ name: r
18
+ };
19
+ } catch (e) {
15
20
  if (!navigator.onLine) {
16
- l.current.push(t.name), u.current != null && clearTimeout(u.current), u.current = setTimeout(() => {
17
- let e = l.current.splice(0);
18
- s?.(e), u.current = null;
19
- }, c);
20
- let r = n instanceof Error ? n : /* @__PURE__ */ Error("Network upload failed");
21
- throw r.errorReason = e.Network, r;
21
+ u.current.push(n.name), d.current != null && clearTimeout(d.current), d.current = setTimeout(() => {
22
+ let e = u.current.splice(0);
23
+ c?.(e), d.current = null;
24
+ }, l);
25
+ let r = e instanceof Error ? e : /* @__PURE__ */ Error("Network upload failed");
26
+ throw r.errorReason = t.Network, r;
22
27
  }
23
- throw n;
28
+ throw e;
24
29
  }
25
30
  }, [
26
- o,
27
- c,
28
- i,
29
- s
31
+ s,
32
+ l,
33
+ e,
34
+ c
30
35
  ]) };
31
36
  };
32
37
  //#endregion
33
- export { o as useAttachmentUpload };
38
+ export { s as useAttachmentUpload };
package/conversation.d.ts CHANGED
@@ -28,6 +28,7 @@ import { StatusMessage } from '@epam/ai-dial-chat-shared';
28
28
  import { StreamChunk } from '@epam/ai-dial-chat-shared';
29
29
  import { ToolMenuItem } from '@epam/ai-dial-chat-shared';
30
30
  import { TranscriptionApi } from '@epam/ai-dial-chat-api-client';
31
+ import { UploadedAttachmentResult } from '@epam/ai-dial-chat-shared';
31
32
 
32
33
  /** Structured announcement banner content. */
33
34
  export declare interface AnnouncementContent {
@@ -680,8 +681,8 @@ export declare interface UseAttachmentUploadParams {
680
681
 
681
682
  /** Return value of {@link useAttachmentUpload}. */
682
683
  export declare interface UseAttachmentUploadResult {
683
- /** Uploads the given attachment's file and resolves to its DIAL Core file URL. */
684
- handleUploadAttachment: (attachment: Attachment) => Promise<string>;
684
+ /** Uploads the given attachment's file and resolves to its DIAL Core file URL and stored name. */
685
+ handleUploadAttachment: (attachment: Attachment) => Promise<UploadedAttachmentResult>;
685
686
  }
686
687
 
687
688
  /**
@@ -774,7 +775,7 @@ export declare interface UseConversationHandlersParams {
774
775
  /** Return value of {@link useConversationHandlers}. */
775
776
  export declare interface UseConversationHandlersResult {
776
777
  handleSend: (message: string, attachments: Attachment[]) => Promise<void>;
777
- handleUploadAttachment: (attachment: Attachment) => Promise<string>;
778
+ handleUploadAttachment: (attachment: Attachment) => Promise<UploadedAttachmentResult>;
778
779
  handleRegenerateMessage: (messageIndex: number) => void;
779
780
  handleDeleteMessage: (messageIndex: number) => void;
780
781
  handleConfirmDelete: () => void;
package/file-manager.js CHANGED
@@ -1,23 +1,23 @@
1
1
  import { isDialFileId as e, resolveDialFileBucketAndPath as t, resolveRelativeDialFilePath as n } from "./files/dial-file.js";
2
2
  import { isDialFileAcceptType as r, mimeTypesToAttachmentExtensionLabels as i, mimeTypesToDialFileAcceptTypes as a, mimeTypesToFileAccept as o } from "./files/attachment-types.js";
3
- import { DialFilesApiUploadMode as s } from "./files/dial-files-api.js";
4
- import { FileManagerNotificationReason as c, FileNameValidationErrorReason as l, FileOperationKind as u } from "./files/dial-file-manager.types.js";
5
- import { COLUMNS_WITHOUT_AUTHOR as d, COLUMNS_WITH_AUTHOR as f, CORE_PERMISSION_MAP as p, DATE_OPTIONS as m, PATH_SEPARATOR_REGEXP as h, RESERVED_MARKER_NAME as g, UPLOAD_CONCURRENCY as _ } from "./files/dial-file-manager.model.js";
6
- import { DialFileManagerActionProfile as v, DialFileManagerVariant as y, deriveActionProfile as b } from "./files/file-manager-variant.js";
7
- import { buildSharedItemVirtualPath as x, dialCorePathToRelative as S, findDialFileByPath as C, findFolderByVirtualPath as w, formatOperationFolderName as T, getVirtualPathName as E, hasDialFileWritePermission as D, hasForbiddenNameSymbols as O, isCopyMoveDuplicateAllowed as k, isShareActionsAllowed as A, normalizeVirtualPath as j, parseNewFolderVirtualPath as M, resolveOwnerCoords as N } from "./files/dial-file-manager-path.util.js";
8
- import { getParentFolderPath as P, resolveDialFileApiPath as F, virtualPathToApiPath as I } from "./files/resolve-dial-file-api-path.js";
9
- import { prepareCopyItems as L, prepareMoveRenameItems as R } from "./files/dial-file-manager-copy-move.util.js";
10
- import { buildFromCache as z, fetchByTab as B, fetchForSearch as V, findFirstSuccessfulCopyMoveItem as H, mapCorePermissions as U, mapFileMetadataToDialFile as W, mapSearchItem as G, mergeCreatedFolderIntoCache as K, updateEntry as q } from "./files/dial-file-manager-mapping.util.js";
11
- import { createFilesApiClient as J } from "./files/create-files-api.js";
12
- import { createUploadFileWithProgress as Y } from "./files/create-upload-file-with-progress.js";
13
- import { openAnnotationAttachment as X } from "./files/annotation.js";
14
- import { annotationToOoxmlCanvasContent as Z, annotationToPdfCanvasContent as Q, clearAttachmentCache as $, hasAttachmentTextSource as ee, referenceAttachmentToPdfCanvasContent as te, resolveCodeCanvasContent as ne, resolveHtmlCanvasContent as re, resolveImageCanvasContent as ie, resolveJsonCanvasContent as ae, resolveMarkdownCanvasContent as oe, resolveOoxmlCanvasContent as se, resolvePdfCanvasContent as ce, resolveTextCanvasContent as le, resolveVisualizerCanvasContent as ue } from "./files/attachment-canvas.js";
15
- import { getUrlFileName as de, isExternalSourcePreviewable as fe, resolveExternalSourceContentType as pe } from "./files/source-content.js";
16
- import { annotationToDisplayAttachment as me, attachmentDtoToDisplayAttachment as he, attachmentDtosToDisplayAttachments as ge } from "./files/attachment-dto-to-display.js";
17
- import { dialFileToAttachment as _e, dialFilesToAttachments as ve, dialFolderPathToAttachment as ye } from "./files/dial-file-to-attachment.js";
18
- import { DownloadDestinationType as be } from "./files/download-destination.js";
19
- import { prepareDownloadDestination as xe } from "./files/prepare-download-destination.js";
20
- import { sanitizeFileName as Se, splitFileNameExtension as Ce, trimFileNameToByteLimit as we } from "./files/file-name.js";
3
+ import { sanitizeFileName as s, splitFileNameExtension as c, trimFileNameToByteLimit as l } from "./files/file-name.js";
4
+ import { DialFilesApiUploadMode as u } from "./files/dial-files-api.js";
5
+ import { FileManagerNotificationReason as d, FileNameValidationErrorReason as f, FileOperationKind as p } from "./files/dial-file-manager.types.js";
6
+ import { COLUMNS_WITHOUT_AUTHOR as m, COLUMNS_WITH_AUTHOR as h, CORE_PERMISSION_MAP as g, DATE_OPTIONS as _, PATH_SEPARATOR_REGEXP as v, RESERVED_MARKER_NAME as y, UPLOAD_CONCURRENCY as b } from "./files/dial-file-manager.model.js";
7
+ import { DialFileManagerActionProfile as x, DialFileManagerVariant as S, deriveActionProfile as C } from "./files/file-manager-variant.js";
8
+ import { buildSharedItemVirtualPath as w, dialCorePathToRelative as T, findDialFileByPath as E, findFolderByVirtualPath as D, formatOperationFolderName as O, getVirtualPathName as k, hasDialFileWritePermission as A, hasForbiddenNameSymbols as j, isCopyMoveDuplicateAllowed as M, isShareActionsAllowed as N, normalizeVirtualPath as P, parseNewFolderVirtualPath as F, resolveOwnerCoords as I } from "./files/dial-file-manager-path.util.js";
9
+ import { getParentFolderPath as L, resolveDialFileApiPath as R, virtualPathToApiPath as z } from "./files/resolve-dial-file-api-path.js";
10
+ import { prepareCopyItems as B, prepareMoveRenameItems as V } from "./files/dial-file-manager-copy-move.util.js";
11
+ import { buildFromCache as H, fetchByTab as U, fetchForSearch as W, findFirstSuccessfulCopyMoveItem as G, mapCorePermissions as K, mapFileMetadataToDialFile as q, mapSearchItem as J, mergeCreatedFolderIntoCache as Y, updateEntry as X } from "./files/dial-file-manager-mapping.util.js";
12
+ import { createFilesApiClient as Z } from "./files/create-files-api.js";
13
+ import { createUploadFileWithProgress as Q } from "./files/create-upload-file-with-progress.js";
14
+ import { openAnnotationAttachment as $ } from "./files/annotation.js";
15
+ import { annotationToOoxmlCanvasContent as ee, annotationToPdfCanvasContent as te, clearAttachmentCache as ne, hasAttachmentTextSource as re, referenceAttachmentToPdfCanvasContent as ie, resolveCodeCanvasContent as ae, resolveHtmlCanvasContent as oe, resolveImageCanvasContent as se, resolveJsonCanvasContent as ce, resolveMarkdownCanvasContent as le, resolveOoxmlCanvasContent as ue, resolvePdfCanvasContent as de, resolveTextCanvasContent as fe, resolveVisualizerCanvasContent as pe } from "./files/attachment-canvas.js";
16
+ import { getUrlFileName as me, isExternalSourcePreviewable as he, resolveExternalSourceContentType as ge } from "./files/source-content.js";
17
+ import { annotationToDisplayAttachment as _e, attachmentDtoToDisplayAttachment as ve, attachmentDtosToDisplayAttachments as ye } from "./files/attachment-dto-to-display.js";
18
+ import { dialFileToAttachment as be, dialFilesToAttachments as xe, dialFolderPathToAttachment as Se } from "./files/dial-file-to-attachment.js";
19
+ import { DownloadDestinationType as Ce } from "./files/download-destination.js";
20
+ import { prepareDownloadDestination as we } from "./files/prepare-download-destination.js";
21
21
  import { useDialFileListing as Te } from "./files/useDialFileListing/useDialFileListing.js";
22
22
  import { useDialFileMetadata as Ee } from "./files/useDialFileMetadata/useDialFileMetadata.js";
23
23
  import { useDialFileMutations as De } from "./files/useDialFileMutations/useDialFileMutations.js";
@@ -26,4 +26,4 @@ import { useDialFileUploadBatch as ke } from "./files/useDialFileUploadBatch/use
26
26
  import { useDialFileManager as Ae } from "./files/useDialFileManager/useDialFileManager.js";
27
27
  import { useDialFileManagerTabConfig as je } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
28
28
  import { useGridEditingScroll as Me } from "@epam/ai-dial-chat-shared";
29
- export { d as COLUMNS_WITHOUT_AUTHOR, f as COLUMNS_WITH_AUTHOR, p as CORE_PERMISSION_MAP, m as DATE_OPTIONS, v as DialFileManagerActionProfile, y as DialFileManagerVariant, s as DialFilesApiUploadMode, be as DownloadDestinationType, c as FileManagerNotificationReason, l as FileNameValidationErrorReason, u as FileOperationKind, h as PATH_SEPARATOR_REGEXP, g as RESERVED_MARKER_NAME, _ as UPLOAD_CONCURRENCY, me as annotationToDisplayAttachment, Z as annotationToOoxmlCanvasContent, Q as annotationToPdfCanvasContent, he as attachmentDtoToDisplayAttachment, ge as attachmentDtosToDisplayAttachments, z as buildFromCache, x as buildSharedItemVirtualPath, $ as clearAttachmentCache, J as createFilesApiClient, Y as createUploadFileWithProgress, b as deriveActionProfile, S as dialCorePathToRelative, _e as dialFileToAttachment, ve as dialFilesToAttachments, ye as dialFolderPathToAttachment, B as fetchByTab, V as fetchForSearch, C as findDialFileByPath, H as findFirstSuccessfulCopyMoveItem, w as findFolderByVirtualPath, T as formatOperationFolderName, P as getParentFolderPath, de as getUrlFileName, E as getVirtualPathName, ee as hasAttachmentTextSource, D as hasDialFileWritePermission, O as hasForbiddenNameSymbols, k as isCopyMoveDuplicateAllowed, r as isDialFileAcceptType, e as isDialFileId, fe as isExternalSourcePreviewable, A as isShareActionsAllowed, U as mapCorePermissions, W as mapFileMetadataToDialFile, G as mapSearchItem, K as mergeCreatedFolderIntoCache, i as mimeTypesToAttachmentExtensionLabels, a as mimeTypesToDialFileAcceptTypes, o as mimeTypesToFileAccept, j as normalizeVirtualPath, X as openAnnotationAttachment, M as parseNewFolderVirtualPath, L as prepareCopyItems, xe as prepareDownloadDestination, R as prepareMoveRenameItems, te as referenceAttachmentToPdfCanvasContent, ne as resolveCodeCanvasContent, F as resolveDialFileApiPath, t as resolveDialFileBucketAndPath, pe as resolveExternalSourceContentType, re as resolveHtmlCanvasContent, ie as resolveImageCanvasContent, ae as resolveJsonCanvasContent, oe as resolveMarkdownCanvasContent, se as resolveOoxmlCanvasContent, N as resolveOwnerCoords, ce as resolvePdfCanvasContent, n as resolveRelativeDialFilePath, le as resolveTextCanvasContent, ue as resolveVisualizerCanvasContent, Se as sanitizeFileName, Ce as splitFileNameExtension, we as trimFileNameToByteLimit, q as updateEntry, Te as useDialFileListing, Ae as useDialFileManager, je as useDialFileManagerTabConfig, Ee as useDialFileMetadata, De as useDialFileMutations, Oe as useDialFileSharing, ke as useDialFileUploadBatch, Me as useGridEditingScroll, I as virtualPathToApiPath };
29
+ export { m as COLUMNS_WITHOUT_AUTHOR, h as COLUMNS_WITH_AUTHOR, g as CORE_PERMISSION_MAP, _ as DATE_OPTIONS, x as DialFileManagerActionProfile, S as DialFileManagerVariant, u as DialFilesApiUploadMode, Ce as DownloadDestinationType, d as FileManagerNotificationReason, f as FileNameValidationErrorReason, p as FileOperationKind, v as PATH_SEPARATOR_REGEXP, y as RESERVED_MARKER_NAME, b as UPLOAD_CONCURRENCY, _e as annotationToDisplayAttachment, ee as annotationToOoxmlCanvasContent, te as annotationToPdfCanvasContent, ve as attachmentDtoToDisplayAttachment, ye as attachmentDtosToDisplayAttachments, H as buildFromCache, w as buildSharedItemVirtualPath, ne as clearAttachmentCache, Z as createFilesApiClient, Q as createUploadFileWithProgress, C as deriveActionProfile, T as dialCorePathToRelative, be as dialFileToAttachment, xe as dialFilesToAttachments, Se as dialFolderPathToAttachment, U as fetchByTab, W as fetchForSearch, E as findDialFileByPath, G as findFirstSuccessfulCopyMoveItem, D as findFolderByVirtualPath, O as formatOperationFolderName, L as getParentFolderPath, me as getUrlFileName, k as getVirtualPathName, re as hasAttachmentTextSource, A as hasDialFileWritePermission, j as hasForbiddenNameSymbols, M as isCopyMoveDuplicateAllowed, r as isDialFileAcceptType, e as isDialFileId, he as isExternalSourcePreviewable, N as isShareActionsAllowed, K as mapCorePermissions, q as mapFileMetadataToDialFile, J as mapSearchItem, Y as mergeCreatedFolderIntoCache, i as mimeTypesToAttachmentExtensionLabels, a as mimeTypesToDialFileAcceptTypes, o as mimeTypesToFileAccept, P as normalizeVirtualPath, $ as openAnnotationAttachment, F as parseNewFolderVirtualPath, B as prepareCopyItems, we as prepareDownloadDestination, V as prepareMoveRenameItems, ie as referenceAttachmentToPdfCanvasContent, ae as resolveCodeCanvasContent, R as resolveDialFileApiPath, t as resolveDialFileBucketAndPath, ge as resolveExternalSourceContentType, oe as resolveHtmlCanvasContent, se as resolveImageCanvasContent, ce as resolveJsonCanvasContent, le as resolveMarkdownCanvasContent, ue as resolveOoxmlCanvasContent, I as resolveOwnerCoords, de as resolvePdfCanvasContent, n as resolveRelativeDialFilePath, fe as resolveTextCanvasContent, pe as resolveVisualizerCanvasContent, s as sanitizeFileName, c as splitFileNameExtension, l as trimFileNameToByteLimit, X as updateEntry, Te as useDialFileListing, Ae as useDialFileManager, je as useDialFileManagerTabConfig, Ee as useDialFileMetadata, De as useDialFileMutations, Oe as useDialFileSharing, ke as useDialFileUploadBatch, Me as useGridEditingScroll, z as virtualPathToApiPath };
@@ -1,10 +1,10 @@
1
- import { DialFilesApiUploadMode as e } from "../dial-files-api.js";
2
- import { FileManagerNotificationReason as t } from "../dial-file-manager.types.js";
1
+ import { sanitizeFileName as e } from "../file-name.js";
2
+ import { DialFilesApiUploadMode as t } from "../dial-files-api.js";
3
+ import { FileManagerNotificationReason as n } from "../dial-file-manager.types.js";
3
4
  import "../dial-file-manager.model.js";
4
- import { resolveOwnerCoords as n } from "../dial-file-manager-path.util.js";
5
- import { virtualPathToApiPath as r } from "../resolve-dial-file-api-path.js";
6
- import { updateEntry as i } from "../dial-file-manager-mapping.util.js";
7
- import { sanitizeFileName as a } from "../file-name.js";
5
+ import { resolveOwnerCoords as r } from "../dial-file-manager-path.util.js";
6
+ import { virtualPathToApiPath as i } from "../resolve-dial-file-api-path.js";
7
+ import { updateEntry as a } from "../dial-file-manager-mapping.util.js";
8
8
  import { FileUploadStatus as o } from "@epam/ai-dial-chat-shared";
9
9
  import { useCallback as s, useRef as c, useState as l } from "react";
10
10
  import { NotificationVariant as u } from "@epam/ai-dial-ui-kit";
@@ -20,26 +20,26 @@ var f = 5, p = (e) => e.error ? `${e.path} (${e.error})` : e.path, m = (e) => {
20
20
  let [t] = e;
21
21
  if (!(e.length !== 1 || t == null)) return g(t.fileContent.name) && !g(t.name) ? t : void 0;
22
22
  }, v = ({ filesApi: f, bucket: p, rootLabel: g, activeTab: v, cache: y, sharedRootMetaRef: b, invalidateFolders: x, bumpRetry: S, onNotification: C }) => {
23
- let [w, T] = l(null), E = c(null), D = s((e, n, i) => {
24
- let a = r(i, g);
23
+ let [w, T] = l(null), E = c(null), D = s((e, t, r) => {
24
+ let a = i(r, g);
25
25
  T({
26
26
  files: [{
27
27
  id: `${Date.now()}-archive`,
28
- name: n,
28
+ name: t,
29
29
  status: o.Uploading
30
30
  }],
31
31
  isOpen: !0
32
32
  }), (async () => {
33
33
  try {
34
- let { results: r } = await f.uploadArchive(e, p, h(a, n)), i = r.filter((e) => e.success).length, o = r.filter((e) => !e.success), s = o.length, { names: c, restCount: l } = m(o);
34
+ let { results: r } = await f.uploadArchive(e, p, h(a, t)), i = r.filter((e) => e.success).length, o = r.filter((e) => !e.success), s = o.length, { names: c, restCount: l } = m(o);
35
35
  r.length > 0 && i === 0 ? C?.({
36
36
  variant: u.Error,
37
- reason: t.UploadArchiveFailed,
37
+ reason: n.UploadArchiveFailed,
38
38
  names: c,
39
39
  restCount: l
40
40
  }) : s > 0 && C?.({
41
41
  variant: u.Error,
42
- reason: t.UploadArchivePartiallyFailed,
42
+ reason: n.UploadArchivePartiallyFailed,
43
43
  count: s,
44
44
  names: c,
45
45
  restCount: l
@@ -47,7 +47,7 @@ var f = 5, p = (e) => e.error ? `${e.path} (${e.error})` : e.path, m = (e) => {
47
47
  } catch {
48
48
  C?.({
49
49
  variant: u.Error,
50
- reason: t.UploadArchiveRequestFailed
50
+ reason: n.UploadArchiveRequestFailed
51
51
  });
52
52
  } finally {
53
53
  x([a]), S(), T(null);
@@ -62,65 +62,65 @@ var f = 5, p = (e) => e.error ? `${e.path} (${e.error})` : e.path, m = (e) => {
62
62
  S
63
63
  ]);
64
64
  return {
65
- onUploadFiles: s((a, s) => {
66
- if (a.length === 0) return;
67
- let c = _(a);
65
+ onUploadFiles: s((e, s) => {
66
+ if (e.length === 0) return;
67
+ let c = _(e);
68
68
  if (c != null) {
69
69
  D(c.fileContent, c.name, s);
70
70
  return;
71
71
  }
72
72
  let l = new AbortController();
73
73
  E.current = l, T({
74
- files: a.map((e, t) => ({
74
+ files: e.map((e, t) => ({
75
75
  id: `${Date.now()}-${t}`,
76
76
  name: e.name,
77
77
  status: o.Queued
78
78
  })),
79
79
  isOpen: !0
80
80
  });
81
- let m = r(s, g), { bucket: h, path: w } = v === d.Shared ? n(m, b.current, p) : {
81
+ let m = i(s, g), { bucket: h, path: w } = v === d.Shared ? r(m, b.current, p) : {
82
82
  bucket: p,
83
83
  path: m
84
84
  }, O = new Set((y.get(m) ?? []).map((e) => e.name.toLowerCase()));
85
85
  (async () => {
86
- let n = 0, r = 0, s = 0, c = async () => {
87
- for (; n < a.length;) {
88
- let t = n++, c = a[t];
86
+ let r = 0, i = 0, s = 0, c = async () => {
87
+ for (; r < e.length;) {
88
+ let n = r++, c = e[n];
89
89
  if (l.signal.aborted) {
90
- T((e) => i(e, t, o.Cancelled));
90
+ T((e) => a(e, n, o.Cancelled));
91
91
  continue;
92
92
  }
93
- T((e) => i(e, t, {
93
+ T((e) => a(e, n, {
94
94
  status: o.Uploading,
95
95
  percent: 0
96
96
  }));
97
- let u = O.has(c.name.toLowerCase()) ? e.Overwrite : e.CreateOnly;
97
+ let u = O.has(c.name.toLowerCase()) ? t.Overwrite : t.CreateOnly;
98
98
  try {
99
99
  await f.uploadFile(h, `${w}${c.name}`, c.fileContent, {
100
100
  signal: l.signal,
101
101
  uploadMode: u,
102
102
  onProgress: (e) => {
103
- T((n) => i(n, t, {
103
+ T((t) => a(t, n, {
104
104
  status: o.Uploading,
105
105
  percent: e
106
106
  }));
107
107
  }
108
- }), T((e) => i(e, t, {
108
+ }), T((e) => a(e, n, {
109
109
  status: o.Completed,
110
110
  percent: 100
111
- })), r += 1;
111
+ })), i += 1;
112
112
  } catch {
113
113
  let e = l.signal.aborted ? o.Cancelled : o.Failed;
114
- e === o.Failed && (s += 1), T((n) => i(n, t, e));
114
+ e === o.Failed && (s += 1), T((t) => a(t, n, e));
115
115
  }
116
116
  }
117
117
  };
118
- await Promise.all(Array.from({ length: 3 }, () => c())), l.signal.aborted || (r === 0 && s > 0 ? C?.({
118
+ await Promise.all(Array.from({ length: 3 }, () => c())), l.signal.aborted || (i === 0 && s > 0 ? C?.({
119
119
  variant: u.Error,
120
- reason: t.UploadFailed
120
+ reason: n.UploadFailed
121
121
  }) : C?.({
122
122
  variant: u.Success,
123
- reason: t.UploadCompleted,
123
+ reason: n.UploadCompleted,
124
124
  folder: w || g
125
125
  })), x([m]), S(), E.current = null, T(null);
126
126
  })();
@@ -139,8 +139,8 @@ var f = 5, p = (e) => e.error ? `${e.path} (${e.error})` : e.path, m = (e) => {
139
139
  onUploadArchive: s((e, t, n) => {
140
140
  D(e, t, n);
141
141
  }, [D]),
142
- onValidateUpload: s(async (e, t, n) => {
143
- for (let t of e) t.name = a(t.name);
142
+ onValidateUpload: s(async (t, n, r) => {
143
+ for (let n of t) n.name = e(n.name);
144
144
  return { valid: !0 };
145
145
  }, []),
146
146
  uploadBatchState: w,
package/index.d.ts CHANGED
@@ -140,6 +140,7 @@ import { UnpublishCatalogEntityDto } from '@epam/ai-dial-chat-api-client';
140
140
  import { UnpublishResultDto } from '@epam/ai-dial-chat-api-client';
141
141
  import { UpdateScheduledTaskBodyDto } from '@epam/ai-dial-chat-api-client';
142
142
  import { UploadArchiveResponseDto } from '@epam/ai-dial-chat-api-client';
143
+ import { UploadedAttachmentResult } from '@epam/ai-dial-chat-shared';
143
144
  import { useGridEditingScroll } from '@epam/ai-dial-chat-shared';
144
145
  import { UseGridEditingScrollOptions } from '@epam/ai-dial-chat-shared';
145
146
  import { UseGridEditingScrollResult } from '@epam/ai-dial-chat-shared';
@@ -3838,8 +3839,8 @@ export declare interface UseAttachmentUploadParams {
3838
3839
 
3839
3840
  /** Return value of {@link useAttachmentUpload}. */
3840
3841
  export declare interface UseAttachmentUploadResult {
3841
- /** Uploads the given attachment's file and resolves to its DIAL Core file URL. */
3842
- handleUploadAttachment: (attachment: Attachment) => Promise<string>;
3842
+ /** Uploads the given attachment's file and resolves to its DIAL Core file URL and stored name. */
3843
+ handleUploadAttachment: (attachment: Attachment) => Promise<UploadedAttachmentResult>;
3843
3844
  }
3844
3845
 
3845
3846
  /**
@@ -4152,7 +4153,7 @@ export declare interface UseConversationHandlersParams {
4152
4153
  /** Return value of {@link useConversationHandlers}. */
4153
4154
  export declare interface UseConversationHandlersResult {
4154
4155
  handleSend: (message: string, attachments: Attachment[]) => Promise<void>;
4155
- handleUploadAttachment: (attachment: Attachment) => Promise<string>;
4156
+ handleUploadAttachment: (attachment: Attachment) => Promise<UploadedAttachmentResult>;
4156
4157
  handleRegenerateMessage: (messageIndex: number) => void;
4157
4158
  handleDeleteMessage: (messageIndex: number) => void;
4158
4159
  handleConfirmDelete: () => void;
package/index.js CHANGED
@@ -76,39 +76,39 @@ import { useAsyncConfirmDialog as Fn } from "./conversation/useAsyncConfirmDialo
76
76
  import { useConversationLookupMaps as In } from "./conversation/useConversationLookupMaps/useConversationLookupMaps.js";
77
77
  import { getConversationSource as Ln, useConversationPanelItems as Rn } from "./conversation/useConversationPanelItems/useConversationPanelItems.js";
78
78
  import { useImportFilePicker as zn } from "./conversation/useImportFilePicker/useImportFilePicker.js";
79
- import { useAttachmentUpload as Bn } from "./conversation/useAttachmentUpload/useAttachmentUpload.js";
80
- import { AudioTranscriptionError as Vn, AudioTranscriptionErrorReason as Hn } from "./conversation/useTranscribeAudio/audio-transcription-error.js";
81
- import { useTranscribeAudio as Un } from "./conversation/useTranscribeAudio/useTranscribeAudio.js";
82
- import { DEFAULT_MAX_ARCHIVE_BYTES as Wn, useConversationExport as Gn } from "./conversation/useConversationExport/useConversationExport.js";
83
- import { attachmentToDto as Kn, attachmentsToDtos as qn } from "./conversation/useConversationHandlers/attachment-to-dto.js";
84
- import { createMessagePair as Jn } from "./conversation/useConversationHandlers/message-factory.js";
85
- import { hasActiveToolConfig as Yn, isAnswerIncomplete as Xn, isMessageChanged as Zn, shouldRerunGenerationOnEdit as Qn } from "./conversation/useConversationHandlers/message-utils.js";
86
- import { getStarterConversationText as $n, getStarterSubmitText as er } from "./conversation/useConversationHandlers/starter-option.js";
87
- import { getConversationPath as tr } from "./conversation/useConversationStream/conversation-path.js";
88
- import { useConversationHandlers as nr } from "./conversation/useConversationHandlers/useConversationHandlers.js";
89
- import { useConversationImport as rr } from "./conversation/useConversationImport/useConversationImport.js";
90
- import { useConversationScroll as ir } from "./conversation/useConversationScroll/useConversationScroll.js";
91
- import { isAwaitingGenerationResume as ar } from "./conversation/useConversationStream/generation-resume.js";
92
- import { useConversationStream as or } from "./conversation/useConversationStream/useConversationStream.js";
93
- import { useConversationSources as sr } from "./conversation-sources/useConversationSources/useConversationSources.js";
94
- import { DialFilesApiUploadMode as cr } from "./files/dial-files-api.js";
95
- import { FileManagerNotificationReason as lr, FileNameValidationErrorReason as ur, FileOperationKind as dr } from "./files/dial-file-manager.types.js";
96
- import { COLUMNS_WITHOUT_AUTHOR as fr, COLUMNS_WITH_AUTHOR as pr, CORE_PERMISSION_MAP as mr, DATE_OPTIONS as hr, PATH_SEPARATOR_REGEXP as gr, RESERVED_MARKER_NAME as _r, UPLOAD_CONCURRENCY as vr } from "./files/dial-file-manager.model.js";
97
- import { DialFileManagerActionProfile as yr, DialFileManagerVariant as br, deriveActionProfile as xr } from "./files/file-manager-variant.js";
98
- import { buildSharedItemVirtualPath as Sr, dialCorePathToRelative as Cr, findDialFileByPath as wr, findFolderByVirtualPath as Tr, formatOperationFolderName as Er, getVirtualPathName as Dr, hasDialFileWritePermission as Or, hasForbiddenNameSymbols as kr, isCopyMoveDuplicateAllowed as Ar, isShareActionsAllowed as jr, normalizeVirtualPath as Mr, parseNewFolderVirtualPath as Nr, resolveOwnerCoords as Pr } from "./files/dial-file-manager-path.util.js";
99
- import { getParentFolderPath as Fr, resolveDialFileApiPath as Ir, virtualPathToApiPath as Lr } from "./files/resolve-dial-file-api-path.js";
100
- import { prepareCopyItems as Rr, prepareMoveRenameItems as zr } from "./files/dial-file-manager-copy-move.util.js";
101
- import { buildFromCache as Br, fetchByTab as Vr, fetchForSearch as Hr, findFirstSuccessfulCopyMoveItem as Ur, mapCorePermissions as Wr, mapFileMetadataToDialFile as Gr, mapSearchItem as Kr, mergeCreatedFolderIntoCache as qr, updateEntry as Jr } from "./files/dial-file-manager-mapping.util.js";
102
- import { createFilesApiClient as Yr } from "./files/create-files-api.js";
103
- import { createUploadFileWithProgress as Xr } from "./files/create-upload-file-with-progress.js";
104
- import { openAnnotationAttachment as Zr } from "./files/annotation.js";
105
- import { annotationToOoxmlCanvasContent as Qr, annotationToPdfCanvasContent as $r, clearAttachmentCache as ei, hasAttachmentTextSource as ti, referenceAttachmentToPdfCanvasContent as ni, resolveCodeCanvasContent as ri, resolveHtmlCanvasContent as ii, resolveImageCanvasContent as ai, resolveJsonCanvasContent as oi, resolveMarkdownCanvasContent as si, resolveOoxmlCanvasContent as ci, resolvePdfCanvasContent as li, resolveTextCanvasContent as ui, resolveVisualizerCanvasContent as di } from "./files/attachment-canvas.js";
106
- import { getUrlFileName as fi, isExternalSourcePreviewable as pi, resolveExternalSourceContentType as mi } from "./files/source-content.js";
107
- import { annotationToDisplayAttachment as hi, attachmentDtoToDisplayAttachment as gi, attachmentDtosToDisplayAttachments as _i } from "./files/attachment-dto-to-display.js";
108
- import { dialFileToAttachment as vi, dialFilesToAttachments as yi, dialFolderPathToAttachment as bi } from "./files/dial-file-to-attachment.js";
109
- import { DownloadDestinationType as xi } from "./files/download-destination.js";
110
- import { prepareDownloadDestination as Si } from "./files/prepare-download-destination.js";
111
- import { sanitizeFileName as Ci, splitFileNameExtension as wi, trimFileNameToByteLimit as Ti } from "./files/file-name.js";
79
+ import { sanitizeFileName as Bn, splitFileNameExtension as Vn, trimFileNameToByteLimit as Hn } from "./files/file-name.js";
80
+ import { useAttachmentUpload as Un } from "./conversation/useAttachmentUpload/useAttachmentUpload.js";
81
+ import { AudioTranscriptionError as Wn, AudioTranscriptionErrorReason as Gn } from "./conversation/useTranscribeAudio/audio-transcription-error.js";
82
+ import { useTranscribeAudio as Kn } from "./conversation/useTranscribeAudio/useTranscribeAudio.js";
83
+ import { DEFAULT_MAX_ARCHIVE_BYTES as qn, useConversationExport as Jn } from "./conversation/useConversationExport/useConversationExport.js";
84
+ import { attachmentToDto as Yn, attachmentsToDtos as Xn } from "./conversation/useConversationHandlers/attachment-to-dto.js";
85
+ import { createMessagePair as Zn } from "./conversation/useConversationHandlers/message-factory.js";
86
+ import { hasActiveToolConfig as Qn, isAnswerIncomplete as $n, isMessageChanged as er, shouldRerunGenerationOnEdit as tr } from "./conversation/useConversationHandlers/message-utils.js";
87
+ import { getStarterConversationText as nr, getStarterSubmitText as rr } from "./conversation/useConversationHandlers/starter-option.js";
88
+ import { getConversationPath as ir } from "./conversation/useConversationStream/conversation-path.js";
89
+ import { useConversationHandlers as ar } from "./conversation/useConversationHandlers/useConversationHandlers.js";
90
+ import { useConversationImport as or } from "./conversation/useConversationImport/useConversationImport.js";
91
+ import { useConversationScroll as sr } from "./conversation/useConversationScroll/useConversationScroll.js";
92
+ import { isAwaitingGenerationResume as cr } from "./conversation/useConversationStream/generation-resume.js";
93
+ import { useConversationStream as lr } from "./conversation/useConversationStream/useConversationStream.js";
94
+ import { useConversationSources as ur } from "./conversation-sources/useConversationSources/useConversationSources.js";
95
+ import { DialFilesApiUploadMode as dr } from "./files/dial-files-api.js";
96
+ import { FileManagerNotificationReason as fr, FileNameValidationErrorReason as pr, FileOperationKind as mr } from "./files/dial-file-manager.types.js";
97
+ import { COLUMNS_WITHOUT_AUTHOR as hr, COLUMNS_WITH_AUTHOR as gr, CORE_PERMISSION_MAP as _r, DATE_OPTIONS as vr, PATH_SEPARATOR_REGEXP as yr, RESERVED_MARKER_NAME as br, UPLOAD_CONCURRENCY as xr } from "./files/dial-file-manager.model.js";
98
+ import { DialFileManagerActionProfile as Sr, DialFileManagerVariant as Cr, deriveActionProfile as wr } from "./files/file-manager-variant.js";
99
+ import { buildSharedItemVirtualPath as Tr, dialCorePathToRelative as Er, findDialFileByPath as Dr, findFolderByVirtualPath as Or, formatOperationFolderName as kr, getVirtualPathName as Ar, hasDialFileWritePermission as jr, hasForbiddenNameSymbols as Mr, isCopyMoveDuplicateAllowed as Nr, isShareActionsAllowed as Pr, normalizeVirtualPath as Fr, parseNewFolderVirtualPath as Ir, resolveOwnerCoords as Lr } from "./files/dial-file-manager-path.util.js";
100
+ import { getParentFolderPath as Rr, resolveDialFileApiPath as zr, virtualPathToApiPath as Br } from "./files/resolve-dial-file-api-path.js";
101
+ import { prepareCopyItems as Vr, prepareMoveRenameItems as Hr } from "./files/dial-file-manager-copy-move.util.js";
102
+ import { buildFromCache as Ur, fetchByTab as Wr, fetchForSearch as Gr, findFirstSuccessfulCopyMoveItem as Kr, mapCorePermissions as qr, mapFileMetadataToDialFile as Jr, mapSearchItem as Yr, mergeCreatedFolderIntoCache as Xr, updateEntry as Zr } from "./files/dial-file-manager-mapping.util.js";
103
+ import { createFilesApiClient as Qr } from "./files/create-files-api.js";
104
+ import { createUploadFileWithProgress as $r } from "./files/create-upload-file-with-progress.js";
105
+ import { openAnnotationAttachment as ei } from "./files/annotation.js";
106
+ import { annotationToOoxmlCanvasContent as ti, annotationToPdfCanvasContent as ni, clearAttachmentCache as ri, hasAttachmentTextSource as ii, referenceAttachmentToPdfCanvasContent as ai, resolveCodeCanvasContent as oi, resolveHtmlCanvasContent as si, resolveImageCanvasContent as ci, resolveJsonCanvasContent as li, resolveMarkdownCanvasContent as ui, resolveOoxmlCanvasContent as di, resolvePdfCanvasContent as fi, resolveTextCanvasContent as pi, resolveVisualizerCanvasContent as mi } from "./files/attachment-canvas.js";
107
+ import { getUrlFileName as hi, isExternalSourcePreviewable as gi, resolveExternalSourceContentType as _i } from "./files/source-content.js";
108
+ import { annotationToDisplayAttachment as vi, attachmentDtoToDisplayAttachment as yi, attachmentDtosToDisplayAttachments as bi } from "./files/attachment-dto-to-display.js";
109
+ import { dialFileToAttachment as xi, dialFilesToAttachments as Si, dialFolderPathToAttachment as Ci } from "./files/dial-file-to-attachment.js";
110
+ import { DownloadDestinationType as wi } from "./files/download-destination.js";
111
+ import { prepareDownloadDestination as Ti } from "./files/prepare-download-destination.js";
112
112
  import { useDialFileListing as Ei } from "./files/useDialFileListing/useDialFileListing.js";
113
113
  import { useDialFileMetadata as Di } from "./files/useDialFileMetadata/useDialFileMetadata.js";
114
114
  import { useDialFileMutations as Oi } from "./files/useDialFileMutations/useDialFileMutations.js";
@@ -133,4 +133,4 @@ import { useMcpAppHostContext as Qi } from "./mcp-apps/useMcpAppHostContext/useM
133
133
  import { useMcpAppHostAdapter as $i } from "./mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.js";
134
134
  import { useOpenMcpAppCanvas as ea } from "./mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.js";
135
135
  import { useGridEditingScroll as ta } from "@epam/ai-dial-chat-shared";
136
- export { b as AttachmentValidationErrorReason, Vn as AudioTranscriptionError, Hn as AudioTranscriptionErrorReason, L as AuthenticationType, fr as COLUMNS_WITHOUT_AUTHOR, pr as COLUMNS_WITH_AUTHOR, mr as CORE_PERMISSION_MAP, Ze as CatalogPrimaryActionType, w as ConversationExportMode, T as ConversationTransferErrorCode, E as ConversationTransferWarningCode, hr as DATE_OPTIONS, It as DEFAULT_GENERATION_CONFLICT_MESSAGE, Wn as DEFAULT_MAX_ARCHIVE_BYTES, yr as DialFileManagerActionProfile, br as DialFileManagerVariant, cr as DialFilesApiUploadMode, xi as DownloadDestinationType, O as EXPORT_APP_NAME, D as ExportFileNameKind, Ot as FavoriteEntityType, lr as FileManagerNotificationReason, ur as FileNameValidationErrorReason, dr as FileOperationKind, Lt as GenerationConflictError, Yi as McpAppResourceFetchError, Ie as McpResourceKind, it as OAuthResourceKind, gr as PATH_SEPARATOR_REGEXP, an as PROMPT_CONTENT_MAX_LENGTH, on as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, sn as PROMPT_DESCRIPTION_MAX_LENGTH, cn as PROMPT_NAME_MAX_LENGTH, Ce as PUBLIC_SKILL_BUCKET, ln as PromptFieldError, ie as PromptSource, _r as RESERVED_MARKER_NAME, jn as RecipientsCountStatus, le as SKILL_FILE_UPLOAD_MAX_BYTES, we as SKILL_LISTING_MAX_PAGES, Te as SKILL_LISTING_PAGE_SIZE, ue as SKILL_MANIFEST_FILE, Ee as SKILL_MANIFEST_MAX_BYTES, de as SKILL_UPLOAD_MAX_FILES, fe as SKILL_UPLOAD_MAX_TOTAL_BYTES, wn as SkillEditorLoadState, On as SkillPreviewErrorKind, De as SkillSource, at as TOOLSET_REDIRECT_STATE_KEY, ot as ToolsetAuthStatus, st as ToolsetAuthTypes, ct as ToolsetCredentialsLevel, wt as ToolsetLoginOutcomeType, lt as ToolsetOAuthCallbackQuery, ut as ToolsetOAuthChannelControlType, dt as ToolsetOAuthFailureReason, ft as ToolsetOAuthInitiationResultType, pt as ToolsetOAuthResultType, vr as UPLOAD_CONCURRENCY, gn as UnsupportedTriggerReason, mt as WithLogin, hi as annotationToDisplayAttachment, Qr as annotationToOoxmlCanvasContent, $r as annotationToPdfCanvasContent, _n as apSchedulerDayToJsDay, U as appendLocaleCode, gi as attachmentDtoToDisplayAttachment, _i as attachmentDtosToDisplayAttachments, Kn as attachmentToDto, qn as attachmentsToDtos, W as buildAdditionalLocaleOptions, jt as buildAnnouncementSignature, Le as buildApplicationMcpUrl, M as buildChatCompletionsUrl, Re as buildConnectApi, N as buildDeploymentConnectApi, zi as buildExternalServiceScopeId, Br as buildFromCache, tn as buildPromptExportEnvelope, nn as buildPromptExportFileName, oe as buildPromptOverview, un as buildPromptPath, P as buildResponsesUrl, Sr as buildSharedItemVirtualPath, ke as buildSkillContentTree, pe as buildSkillFilesPayload, me as buildSkillManifest, he as buildSkillManifestForSubmit, ge as buildSkillManifestFromFrontmatter, Ae as buildSkillOverview, yt as buildToolsetAuthorizeUrl, ze as buildToolsetMcpUrl, ei as clearAttachmentCache, G as composeLocalePayload, Rt as createChatStreamApi, i as createCsrfMiddleware, Wt as createDeploymentChangedMessage, Yr as createFilesApiClient, Xi as createMcpAppsApiClient, Jn as createMessagePair, A as createPublishApiClient, a as createUnauthorizedMiddleware, Xr as createUploadFileWithProgress, B as decodeToolsetId, K as decomposeLocalizedFields, xr as deriveActionProfile, Ke as deriveAvailableTabIds, Nn as deriveConversationRowActionState, qe as deriveFavoriteItems, Cr as dialCorePathToRelative, vi as dialFileToAttachment, yi as dialFilesToAttachments, bi as dialFolderPathToAttachment, p as downloadAttachment, ht as emitToolsetLoginSuccess, F as encodeDeploymentId, V as encodeToolsetId, Vr as fetchByTab, Hr as fetchForSearch, tt as fetchSkillDescription, Je as filterCatalogItemsBySelector, Ye as filterHiddenOwnedItems, I as findDeploymentByIdOrReference, wr as findDialFileByPath, Ur as findFirstSuccessfulCopyMoveItem, Tr as findFolderByVirtualPath, Bt as formatAppVersion, Y as formatCalendarDate, S as formatDateYM, C as formatDateYMD, Er as formatOperationFolderName, k as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, Fi as getBrowserTimezone, tr as getConversationPath, Ln as getConversationSource, Bi as getExternalServiceFallbackName, Gt as getLastDeploymentId, Kt as getLastUserMessageToolConfiguration, Ht as getModelIdFromConversationId, Fr as getParentFolderPath, Ve as getPublicCatalogEntityFolderPath, Zt as getQuickAppConversationStarters, dn as getRemainingCharacters, $n as getStarterConversationText, Qt as getStarterPopulateText, er as getStarterSubmitText, $t as getStartersFromSchema, Ut as getTimeOfDayGreeting, _t as getToolsetOAuthChannelName, bt as getToolsetRedirectUri, fi as getUrlFileName, Dr as getVirtualPathName, Yn as hasActiveToolConfig, Mt as hasAnnouncementContent, ti as hasAttachmentTextSource, Or as hasDialFileWritePermission, kr as hasForbiddenNameSymbols, Nt as hasStructuredAnnouncement, o as includesIgnoreCase, xt as initiateOAuthLogin, Xn as isAnswerIncomplete, ar as isAwaitingGenerationResume, r as isConversationNotFoundError, Ar as isCopyMoveDuplicateAllowed, Ni as isCustomAppSchema, g as isDialFileAcceptType, u as isDialFileId, m as isDownloadableAttachment, pi as isExternalSourcePreviewable, Zn as isMessageChanged, qt as isMessageStreaming, se as isOrganisationPromptItem, He as isPublicCatalogEntityId, H as isPublicToolsetId, Pi as isQuickAppSchema, jr as isShareActionsAllowed, Ii as isValidAbsoluteUrl, Li as isValidFeaturesData, _e as isValidSkillRelativePath, vn as jsDayToApSchedulerDay, Wr as mapCorePermissions, Z as mapDeploymentDetailsDtoToEntityDetails, R as mapDeploymentLimitsDtoToCatalogLimits, z as mapDeploymentLimitsToInput, ee as mapDeploymentToCatalogItem, te as mapDeploymentToolsetCredentials, Q as mapEntityDetailsToCatalogDetails, Gr as mapFileMetadataToDialFile, yn as mapFormValuesToCreateBody, bn as mapFormValuesToUpdateBody, ce as mapPromptToCatalogItem, Ue as mapPublishConversationResultDto, We as mapPublishHistoryEntryDto, xn as mapScheduledTaskDtoToFormValues, Kr as mapSearchItem, je as mapSkillToCatalogItem, $ as mapToolsetCredentials, ne as mapToolsetToCatalogItem, qr as mergeCreatedFolderIntoCache, Jt as messageHasStages, _ as mimeTypesToAttachmentExtensionLabels, v as mimeTypesToDialFileAcceptTypes, y as mimeTypesToFileAccept, ve as nameFromPath, St as navigateToolsetOAuthPopup, Yt as normalizeResponseFormat, ye as normalizeSkillName, Mr as normalizeVirtualPath, Zr as openAnnotationAttachment, Ct as openToolsetOAuthPopup, X as padTwoDigits, Vi as parseExternalServiceUrl, Ri as parseFeaturesData, Nr as parseNewFolderVirtualPath, ae as parsePromptResourceUrl, be as parseSkillManifest, et as parseSkillManifestDocument, Oe as parseSkillResourceUrl, Rr as prepareCopyItems, Si as prepareDownloadDestination, zr as prepareMoveRenameItems, Me as readSkillFileBytes, Ne as readSkillManifest, Xe as reconcileFilterTopics, ni as referenceAttachmentToPdfCanvasContent, Qe as resolveCatalogPrimaryAction, ri as resolveCodeCanvasContent, re as resolveDeploymentFolder, Ir as resolveDialFileApiPath, d as resolveDialFileBucketAndPath, mi as resolveExternalSourceContentType, ii as resolveHtmlCanvasContent, ai as resolveImageCanvasContent, oi as resolveJsonCanvasContent, q as resolveLocalizedText, si as resolveMarkdownCanvasContent, Be as resolveMcpResourceKind, ci as resolveOoxmlCanvasContent, Pr as resolveOwnerCoords, li as resolvePdfCanvasContent, f as resolveRelativeDialFilePath, Pe as resolveSkillFileDownloadPath, Fe as resolveSkillManifestFileId, ui as resolveTextCanvasContent, di as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, Pt as sanitizeAnnouncementHtml, Ft as sanitizeAnnouncementMessageHtml, Ci as sanitizeFileName, Vt as sanitizeFooterHtml, rn as serializePromptExport, Qn as shouldRerunGenerationOnEdit, zt as shouldWatchForDisplayNameUpdate, xe as skillFileBytesToBlob, Cn as skillFileToAttachment, wi as splitFileNameExtension, l as stripSurroundingSlashes, gt as subscribeToolsetLoginSuccess, J as toBaseLocale, Xt as toOverlayMessages, Ge as toPublishEntityType, j as toPublishRuleDto, Ti as trimFileNameToByteLimit, Se as unpackSkillArchive, Jr as updateEntry, Pn as useActiveConversationSync, Fn as useAsyncConfirmDialog, h as useAttachmentAction, Bn as useAttachmentUpload, x as useAttachmentValidation, $e as useCatalogEditNavigation, rt as useCatalogItemDetails, Et as useCatalogToolsetCredentials, Hi as useChatSettingsFormConfig, Gn as useConversationExport, nr as useConversationHandlers, rr as useConversationImport, In as useConversationLookupMaps, Rn as useConversationPanelItems, ir as useConversationScroll, sr as useConversationSources, or as useConversationStream, Ei as useDialFileListing, ji as useDialFileManager, Mi as useDialFileManagerTabConfig, Di as useDialFileMetadata, Oi as useDialFileMutations, ki as useDialFileSharing, Ai as useDialFileUploadBatch, kt as useFavoriteEntitiesState, ta as useGridEditingScroll, zn as useImportFilePicker, $i as useMcpAppHostAdapter, Qi as useMcpAppHostContext, Zi as useMcpAppTools, en as useOAuthCallbackCompletion, ea as useOpenMcpAppCanvas, Ui as usePageFileDrag, Gi as usePanelMaxWidth, hn as usePromptsState, At as usePublishFolders, Ki as useShareLink, Mn as useShareRecipientsCount, Dt as useSkillDetailsPanelData, Tn as useSkillEditorLoad, En as useSkillEditorSubmit, Dn as useSkillFileActions, kn as useSkillFilePreview, nt as useSkillItemDetails, An as useSkillsState, qi as useToolsMenu, Tt as useToolsetLogin, Un as useTranscribeAudio, Ji as useUsageData, Wi as useViewportWidth, fn as validatePromptContent, pn as validatePromptDescription, mn as validatePromptName, Sn as validateSkillFileBatch, Lr as virtualPathToApiPath, vt as waitForToolsetOAuthResult };
136
+ export { b as AttachmentValidationErrorReason, Wn as AudioTranscriptionError, Gn as AudioTranscriptionErrorReason, L as AuthenticationType, hr as COLUMNS_WITHOUT_AUTHOR, gr as COLUMNS_WITH_AUTHOR, _r as CORE_PERMISSION_MAP, Ze as CatalogPrimaryActionType, w as ConversationExportMode, T as ConversationTransferErrorCode, E as ConversationTransferWarningCode, vr as DATE_OPTIONS, It as DEFAULT_GENERATION_CONFLICT_MESSAGE, qn as DEFAULT_MAX_ARCHIVE_BYTES, Sr as DialFileManagerActionProfile, Cr as DialFileManagerVariant, dr as DialFilesApiUploadMode, wi as DownloadDestinationType, O as EXPORT_APP_NAME, D as ExportFileNameKind, Ot as FavoriteEntityType, fr as FileManagerNotificationReason, pr as FileNameValidationErrorReason, mr as FileOperationKind, Lt as GenerationConflictError, Yi as McpAppResourceFetchError, Ie as McpResourceKind, it as OAuthResourceKind, yr as PATH_SEPARATOR_REGEXP, an as PROMPT_CONTENT_MAX_LENGTH, on as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, sn as PROMPT_DESCRIPTION_MAX_LENGTH, cn as PROMPT_NAME_MAX_LENGTH, Ce as PUBLIC_SKILL_BUCKET, ln as PromptFieldError, ie as PromptSource, br as RESERVED_MARKER_NAME, jn as RecipientsCountStatus, le as SKILL_FILE_UPLOAD_MAX_BYTES, we as SKILL_LISTING_MAX_PAGES, Te as SKILL_LISTING_PAGE_SIZE, ue as SKILL_MANIFEST_FILE, Ee as SKILL_MANIFEST_MAX_BYTES, de as SKILL_UPLOAD_MAX_FILES, fe as SKILL_UPLOAD_MAX_TOTAL_BYTES, wn as SkillEditorLoadState, On as SkillPreviewErrorKind, De as SkillSource, at as TOOLSET_REDIRECT_STATE_KEY, ot as ToolsetAuthStatus, st as ToolsetAuthTypes, ct as ToolsetCredentialsLevel, wt as ToolsetLoginOutcomeType, lt as ToolsetOAuthCallbackQuery, ut as ToolsetOAuthChannelControlType, dt as ToolsetOAuthFailureReason, ft as ToolsetOAuthInitiationResultType, pt as ToolsetOAuthResultType, xr as UPLOAD_CONCURRENCY, gn as UnsupportedTriggerReason, mt as WithLogin, vi as annotationToDisplayAttachment, ti as annotationToOoxmlCanvasContent, ni as annotationToPdfCanvasContent, _n as apSchedulerDayToJsDay, U as appendLocaleCode, yi as attachmentDtoToDisplayAttachment, bi as attachmentDtosToDisplayAttachments, Yn as attachmentToDto, Xn as attachmentsToDtos, W as buildAdditionalLocaleOptions, jt as buildAnnouncementSignature, Le as buildApplicationMcpUrl, M as buildChatCompletionsUrl, Re as buildConnectApi, N as buildDeploymentConnectApi, zi as buildExternalServiceScopeId, Ur as buildFromCache, tn as buildPromptExportEnvelope, nn as buildPromptExportFileName, oe as buildPromptOverview, un as buildPromptPath, P as buildResponsesUrl, Tr as buildSharedItemVirtualPath, ke as buildSkillContentTree, pe as buildSkillFilesPayload, me as buildSkillManifest, he as buildSkillManifestForSubmit, ge as buildSkillManifestFromFrontmatter, Ae as buildSkillOverview, yt as buildToolsetAuthorizeUrl, ze as buildToolsetMcpUrl, ri as clearAttachmentCache, G as composeLocalePayload, Rt as createChatStreamApi, i as createCsrfMiddleware, Wt as createDeploymentChangedMessage, Qr as createFilesApiClient, Xi as createMcpAppsApiClient, Zn as createMessagePair, A as createPublishApiClient, a as createUnauthorizedMiddleware, $r as createUploadFileWithProgress, B as decodeToolsetId, K as decomposeLocalizedFields, wr as deriveActionProfile, Ke as deriveAvailableTabIds, Nn as deriveConversationRowActionState, qe as deriveFavoriteItems, Er as dialCorePathToRelative, xi as dialFileToAttachment, Si as dialFilesToAttachments, Ci as dialFolderPathToAttachment, p as downloadAttachment, ht as emitToolsetLoginSuccess, F as encodeDeploymentId, V as encodeToolsetId, Wr as fetchByTab, Gr as fetchForSearch, tt as fetchSkillDescription, Je as filterCatalogItemsBySelector, Ye as filterHiddenOwnedItems, I as findDeploymentByIdOrReference, Dr as findDialFileByPath, Kr as findFirstSuccessfulCopyMoveItem, Or as findFolderByVirtualPath, Bt as formatAppVersion, Y as formatCalendarDate, S as formatDateYM, C as formatDateYMD, kr as formatOperationFolderName, k as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, Fi as getBrowserTimezone, ir as getConversationPath, Ln as getConversationSource, Bi as getExternalServiceFallbackName, Gt as getLastDeploymentId, Kt as getLastUserMessageToolConfiguration, Ht as getModelIdFromConversationId, Rr as getParentFolderPath, Ve as getPublicCatalogEntityFolderPath, Zt as getQuickAppConversationStarters, dn as getRemainingCharacters, nr as getStarterConversationText, Qt as getStarterPopulateText, rr as getStarterSubmitText, $t as getStartersFromSchema, Ut as getTimeOfDayGreeting, _t as getToolsetOAuthChannelName, bt as getToolsetRedirectUri, hi as getUrlFileName, Ar as getVirtualPathName, Qn as hasActiveToolConfig, Mt as hasAnnouncementContent, ii as hasAttachmentTextSource, jr as hasDialFileWritePermission, Mr as hasForbiddenNameSymbols, Nt as hasStructuredAnnouncement, o as includesIgnoreCase, xt as initiateOAuthLogin, $n as isAnswerIncomplete, cr as isAwaitingGenerationResume, r as isConversationNotFoundError, Nr as isCopyMoveDuplicateAllowed, Ni as isCustomAppSchema, g as isDialFileAcceptType, u as isDialFileId, m as isDownloadableAttachment, gi as isExternalSourcePreviewable, er as isMessageChanged, qt as isMessageStreaming, se as isOrganisationPromptItem, He as isPublicCatalogEntityId, H as isPublicToolsetId, Pi as isQuickAppSchema, Pr as isShareActionsAllowed, Ii as isValidAbsoluteUrl, Li as isValidFeaturesData, _e as isValidSkillRelativePath, vn as jsDayToApSchedulerDay, qr as mapCorePermissions, Z as mapDeploymentDetailsDtoToEntityDetails, R as mapDeploymentLimitsDtoToCatalogLimits, z as mapDeploymentLimitsToInput, ee as mapDeploymentToCatalogItem, te as mapDeploymentToolsetCredentials, Q as mapEntityDetailsToCatalogDetails, Jr as mapFileMetadataToDialFile, yn as mapFormValuesToCreateBody, bn as mapFormValuesToUpdateBody, ce as mapPromptToCatalogItem, Ue as mapPublishConversationResultDto, We as mapPublishHistoryEntryDto, xn as mapScheduledTaskDtoToFormValues, Yr as mapSearchItem, je as mapSkillToCatalogItem, $ as mapToolsetCredentials, ne as mapToolsetToCatalogItem, Xr as mergeCreatedFolderIntoCache, Jt as messageHasStages, _ as mimeTypesToAttachmentExtensionLabels, v as mimeTypesToDialFileAcceptTypes, y as mimeTypesToFileAccept, ve as nameFromPath, St as navigateToolsetOAuthPopup, Yt as normalizeResponseFormat, ye as normalizeSkillName, Fr as normalizeVirtualPath, ei as openAnnotationAttachment, Ct as openToolsetOAuthPopup, X as padTwoDigits, Vi as parseExternalServiceUrl, Ri as parseFeaturesData, Ir as parseNewFolderVirtualPath, ae as parsePromptResourceUrl, be as parseSkillManifest, et as parseSkillManifestDocument, Oe as parseSkillResourceUrl, Vr as prepareCopyItems, Ti as prepareDownloadDestination, Hr as prepareMoveRenameItems, Me as readSkillFileBytes, Ne as readSkillManifest, Xe as reconcileFilterTopics, ai as referenceAttachmentToPdfCanvasContent, Qe as resolveCatalogPrimaryAction, oi as resolveCodeCanvasContent, re as resolveDeploymentFolder, zr as resolveDialFileApiPath, d as resolveDialFileBucketAndPath, _i as resolveExternalSourceContentType, si as resolveHtmlCanvasContent, ci as resolveImageCanvasContent, li as resolveJsonCanvasContent, q as resolveLocalizedText, ui as resolveMarkdownCanvasContent, Be as resolveMcpResourceKind, di as resolveOoxmlCanvasContent, Lr as resolveOwnerCoords, fi as resolvePdfCanvasContent, f as resolveRelativeDialFilePath, Pe as resolveSkillFileDownloadPath, Fe as resolveSkillManifestFileId, pi as resolveTextCanvasContent, mi as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, Pt as sanitizeAnnouncementHtml, Ft as sanitizeAnnouncementMessageHtml, Bn as sanitizeFileName, Vt as sanitizeFooterHtml, rn as serializePromptExport, tr as shouldRerunGenerationOnEdit, zt as shouldWatchForDisplayNameUpdate, xe as skillFileBytesToBlob, Cn as skillFileToAttachment, Vn as splitFileNameExtension, l as stripSurroundingSlashes, gt as subscribeToolsetLoginSuccess, J as toBaseLocale, Xt as toOverlayMessages, Ge as toPublishEntityType, j as toPublishRuleDto, Hn as trimFileNameToByteLimit, Se as unpackSkillArchive, Zr as updateEntry, Pn as useActiveConversationSync, Fn as useAsyncConfirmDialog, h as useAttachmentAction, Un as useAttachmentUpload, x as useAttachmentValidation, $e as useCatalogEditNavigation, rt as useCatalogItemDetails, Et as useCatalogToolsetCredentials, Hi as useChatSettingsFormConfig, Jn as useConversationExport, ar as useConversationHandlers, or as useConversationImport, In as useConversationLookupMaps, Rn as useConversationPanelItems, sr as useConversationScroll, ur as useConversationSources, lr as useConversationStream, Ei as useDialFileListing, ji as useDialFileManager, Mi as useDialFileManagerTabConfig, Di as useDialFileMetadata, Oi as useDialFileMutations, ki as useDialFileSharing, Ai as useDialFileUploadBatch, kt as useFavoriteEntitiesState, ta as useGridEditingScroll, zn as useImportFilePicker, $i as useMcpAppHostAdapter, Qi as useMcpAppHostContext, Zi as useMcpAppTools, en as useOAuthCallbackCompletion, ea as useOpenMcpAppCanvas, Ui as usePageFileDrag, Gi as usePanelMaxWidth, hn as usePromptsState, At as usePublishFolders, Ki as useShareLink, Mn as useShareRecipientsCount, Dt as useSkillDetailsPanelData, Tn as useSkillEditorLoad, En as useSkillEditorSubmit, Dn as useSkillFileActions, kn as useSkillFilePreview, nt as useSkillItemDetails, An as useSkillsState, qi as useToolsMenu, Tt as useToolsetLogin, Kn as useTranscribeAudio, Ji as useUsageData, Wi as useViewportWidth, fn as validatePromptContent, pn as validatePromptDescription, mn as validatePromptName, Sn as validateSkillFileBatch, Br as virtualPathToApiPath, vt as waitForToolsetOAuthResult };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-chat-hooks",
3
3
  "description": "Framework-level React hooks extracted from AI DIAL Chat for building custom chat interfaces",
4
- "version": "1.1.0-dev.440",
4
+ "version": "1.1.0-dev.443",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -104,21 +104,21 @@
104
104
  },
105
105
  "peerDependencies": {
106
106
  "react": "^19.2.6",
107
- "@epam/ai-dial-attachment-canvas": "1.1.0-dev.440",
108
- "@epam/ai-dial-attachment-input": "1.1.0-dev.440",
109
- "@epam/ai-dial-catalog": "1.1.0-dev.440",
110
- "@epam/ai-dial-chat-api-client": "1.1.0-dev.440",
111
- "@epam/ai-dial-chat-overlay": "1.1.0-dev.440",
112
- "@epam/ai-dial-chat-shared": "1.1.0-dev.440",
113
- "@epam/ai-dial-deployment-creation-form": "1.1.0-dev.440",
114
- "@epam/ai-dial-mcp-apps": "1.1.0-dev.440",
115
- "@epam/ai-dial-publish-panel": "1.1.0-dev.440",
116
- "@epam/ai-dial-quotations": "1.1.0-dev.440",
107
+ "@epam/ai-dial-attachment-canvas": "1.1.0-dev.443",
108
+ "@epam/ai-dial-attachment-input": "1.1.0-dev.443",
109
+ "@epam/ai-dial-catalog": "1.1.0-dev.443",
110
+ "@epam/ai-dial-chat-api-client": "1.1.0-dev.443",
111
+ "@epam/ai-dial-chat-overlay": "1.1.0-dev.443",
112
+ "@epam/ai-dial-chat-shared": "1.1.0-dev.443",
113
+ "@epam/ai-dial-deployment-creation-form": "1.1.0-dev.443",
114
+ "@epam/ai-dial-mcp-apps": "1.1.0-dev.443",
115
+ "@epam/ai-dial-publish-panel": "1.1.0-dev.443",
116
+ "@epam/ai-dial-quotations": "1.1.0-dev.443",
117
117
  "@epam/ai-dial-react-file-manager": "*",
118
- "@epam/ai-dial-scheduled-tasks": "1.1.0-dev.440",
119
- "@epam/ai-dial-share": "1.1.0-dev.440",
120
- "@epam/ai-dial-skill-editor": "1.1.0-dev.440",
121
- "@epam/ai-dial-source-panel": "1.1.0-dev.440",
118
+ "@epam/ai-dial-scheduled-tasks": "1.1.0-dev.443",
119
+ "@epam/ai-dial-share": "1.1.0-dev.443",
120
+ "@epam/ai-dial-skill-editor": "1.1.0-dev.443",
121
+ "@epam/ai-dial-source-panel": "1.1.0-dev.443",
122
122
  "@epam/ai-dial-ui-kit": "*",
123
123
  "@modelcontextprotocol/sdk": "^1.27.1",
124
124
  "@epam/pdf-highlighter-kit": ">=0.0.14",