@epam/ai-dial-chat-hooks 1.1.0-dev.430 → 1.1.0-dev.432

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,18 +1,19 @@
1
- import { CatalogEntityType as e } from "@epam/ai-dial-chat-shared";
1
+ import { safeDecodeURIComponent as e } from "../shared/string-utils.js";
2
+ import { CatalogEntityType as t } from "@epam/ai-dial-chat-shared";
2
3
  //#region src/catalog/publish.ts
3
- var t = {
4
- [e.Model]: "model",
5
- [e.Toolset]: "toolset",
6
- [e.Agent]: "application",
7
- [e.Prompt]: "prompt",
8
- [e.Skill]: "skill"
9
- }, n = (e) => t[e], r = (e) => ({
4
+ var n = {
5
+ [t.Model]: "model",
6
+ [t.Toolset]: "toolset",
7
+ [t.Agent]: "application",
8
+ [t.Prompt]: "prompt",
9
+ [t.Skill]: "skill"
10
+ }, r = (e) => n[e], i = "public", a = (e) => e.split("/")[1] === i, o = (t) => a(t) ? t.split("/").slice(2, -1).map(e) : [], s = (e) => ({
10
11
  version: e.version,
11
12
  publishedAt: Date.parse(e.publishedAt),
12
13
  folderPath: e.folderPath.split("/").filter(Boolean)
13
- }), i = (e) => ({
14
+ }), c = (e) => ({
14
15
  publishedAt: Date.parse(e.publishedAt),
15
16
  folderPath: e.folderPath.split("/").filter(Boolean)
16
17
  });
17
18
  //#endregion
18
- export { i as mapPublishConversationResultDto, r as mapPublishHistoryEntryDto, n as toPublishEntityType };
19
+ export { o as getPublicCatalogEntityFolderPath, a as isPublicCatalogEntityId, c as mapPublishConversationResultDto, s as mapPublishHistoryEntryDto, r as toPublishEntityType };
@@ -3,99 +3,58 @@ import { mapDeploymentLimitsDtoToCatalogLimits as t } from "./map-deployment-lim
3
3
  import { mapDeploymentDetailsDtoToEntityDetails as n, mapEntityDetailsToCatalogDetails as r, mapToolsetCredentials as i } from "./map-entity-details-to-catalog.js";
4
4
  import { parsePromptResourceUrl as a } from "../prompt/prompt-resource.js";
5
5
  import { buildPromptOverview as o, isOrganisationPromptItem as s } from "./map-prompt-to-catalog-item.js";
6
- import { SKILL_MANIFEST_FILE as c } from "../skill/skill.js";
7
- import { parseSkillResourceUrl as l } from "../skill/skill-types.js";
8
- import { buildSkillContentTree as u, buildSkillOverview as d, readSkillFileBytes as f, readSkillManifest as p, resolveSkillFileDownloadPath as m, resolveSkillManifestFileId as h } from "./map-skill-to-catalog-item.js";
9
- import { buildConnectApi as g, resolveMcpResourceKind as _ } from "./mcp-endpoint-url.js";
10
- import { parseSkillManifestDocument as v } from "../skill/skill-manifest.js";
11
- import { CatalogEntityType as y } from "@epam/ai-dial-chat-shared";
12
- import { useCallback as b, useRef as x } from "react";
6
+ import { buildConnectApi as c, resolveMcpResourceKind as l } from "./mcp-endpoint-url.js";
7
+ import { useSkillItemDetails as u } from "./useSkillItemDetails.js";
8
+ import { CatalogEntityType as d } from "@epam/ai-dial-chat-shared";
9
+ import { useCallback as f } from "react";
13
10
  //#region src/catalog/useCatalogItemDetails.ts
14
- var S = (e) => (t) => {
11
+ var p = (e) => (t) => {
15
12
  if (!s(t)) return e.getPrompt(t.id);
16
13
  let n = a(t.id);
17
14
  return e.getPublicPrompt(n?.path ?? t.id);
18
- }, C = ({ api: a, skills: s, isAdmin: C, dialCoreExternalUrl: w, skillOverviewLabels: T, promptOverviewLabels: E, deploymentLimitsLabels: D }) => {
19
- let O = x(null);
15
+ }, m = ({ api: a, skills: s, isAdmin: m, dialCoreExternalUrl: h, skillOverviewLabels: g, promptOverviewLabels: _, deploymentLimitsLabels: v }) => {
16
+ let { onFetchSkillDetails: y, onLoadContentFile: b, onLoadSkillDetailsFile: x } = u({
17
+ api: a,
18
+ skills: s,
19
+ skillOverviewLabels: g
20
+ });
20
21
  return {
21
- onFetchDetails: b(async (f) => {
22
- if (f.type === y.Prompt) try {
23
- let e = await S(a)(f);
22
+ onFetchDetails: f(async (s) => {
23
+ if (s.type === d.Prompt) try {
24
+ let e = await p(a)(s);
24
25
  return {
25
26
  promptContent: { content: e.content },
26
- overview: o(e, E)
27
+ overview: o(e, _)
27
28
  };
28
29
  } catch {
29
30
  return;
30
31
  }
31
- if (f.type === y.Skill) {
32
- let e = l(f.id);
33
- if (e == null) return;
34
- let { bucket: t, path: n } = e;
35
- O.current = e;
36
- let [r, i] = await Promise.allSettled([a.downloadSkillFile(t, n, c).then(p), a.listSkillFiles({
37
- bucket: t,
38
- path: n,
39
- filePath: "",
40
- recursive: !0
41
- })]), o = r.status === "fulfilled" && r.value != null ? v(r.value) : void 0, m = s.find((e) => e.url === f.id), g = i.status === "fulfilled" ? d(m, i.value.items, o?.about, T) : void 0, _ = i.status === "fulfilled" ? u(i.value.items, n) : [], y = i.status === "fulfilled" ? h(i.value.items, n) : c;
42
- return o == null && g == null ? void 0 : {
43
- ...o == null ? {} : { promptContent: {
44
- content: o.body,
45
- ...o.description == null ? {} : { description: o.description },
46
- files: _,
47
- selectedFileId: y
48
- } },
49
- ...g == null ? {} : { overview: g }
50
- };
51
- }
32
+ if (s.type === d.Skill) return y(s);
52
33
  try {
53
- let o = f.type === y.Model ? a.getDeploymentLimits(f.id).catch(() => void 0) : Promise.resolve(void 0), [s, c] = await Promise.all([a.getDeploymentDetails(f.id), o]), l = n(s), u = r(l), d = _(f.type, f.supportsMcp), p = l.type === "MODEL" || l.type === "AGENT" ? e(w ?? "", f.id, {
54
- hasChatCompletion: l.data.capabilities?.hasChatCompletion,
55
- hasResponsesApi: l.data.capabilities?.hasResponsesApi
34
+ let o = s.type === d.Model ? a.getDeploymentLimits(s.id).catch(() => void 0) : Promise.resolve(void 0), [u, f] = await Promise.all([a.getDeploymentDetails(s.id), o]), p = n(u), g = r(p), _ = l(s.type, s.supportsMcp), y = p.type === "MODEL" || p.type === "AGENT" ? e(h ?? "", s.id, {
35
+ hasChatCompletion: p.data.capabilities?.hasChatCompletion,
36
+ hasResponsesApi: p.data.capabilities?.hasResponsesApi
56
37
  }) : void 0;
57
38
  return {
58
- ...u,
59
- api: d == null ? p ?? u.api : g(w ?? "", f.id, d),
60
- limits: t(c, D),
61
- credentials: l.type === "TOOLSET" ? i(f.id, l.data, C) : void 0
39
+ ...g,
40
+ api: _ == null ? y ?? g.api : c(h ?? "", s.id, _),
41
+ limits: t(f, v),
42
+ credentials: p.type === "TOOLSET" ? i(s.id, p.data, m) : void 0
62
43
  };
63
44
  } catch {
64
45
  return;
65
46
  }
66
47
  }, [
67
48
  a,
68
- C,
69
- D,
70
- w,
71
- s,
72
- E,
73
- T
49
+ m,
50
+ v,
51
+ h,
52
+ _,
53
+ y
74
54
  ]),
75
- onLoadContentFile: b(async (e) => {
76
- let t = O.current;
77
- if (t == null) return;
78
- let n = m(e, t.path);
79
- if (n == null) return;
80
- let r = await p(await a.downloadSkillFile(t.bucket, t.path, n));
81
- if (r != null) return n === "SKILL.md" ? v(r).body : r;
82
- }, [a]),
83
- onLoadSkillDetailsFile: b(async (e) => {
84
- let t = O.current;
85
- if (t == null) throw Error("No skill details are open");
86
- let n = m(e, t.path);
87
- if (n == null) throw Error("A folder cannot be previewed");
88
- let r = await a.downloadSkillFile(t.bucket, t.path, n);
89
- if (!r.ok) throw Object.assign(/* @__PURE__ */ Error(`File preview failed with status ${r.status}`), { status: r.status });
90
- let i = await f(r);
91
- if (i == null) throw Error("File exceeds the preview size limit");
92
- let o = r.headers.get("content-type")?.split(";")[0].trim() || void 0;
93
- return {
94
- bytes: i,
95
- mimeType: o === "application/octet-stream" ? void 0 : o
96
- };
97
- }, [a])
55
+ onLoadContentFile: b,
56
+ onLoadSkillDetailsFile: x
98
57
  };
99
58
  };
100
59
  //#endregion
101
- export { C as useCatalogItemDetails };
60
+ export { m as useCatalogItemDetails };
@@ -0,0 +1,59 @@
1
+ import { SkillSource as e } from "../../skill/skill-types.js";
2
+ import { mapSkillToCatalogItem as t } from "../map-skill-to-catalog-item.js";
3
+ import { useSkillItemDetails as n } from "../useSkillItemDetails.js";
4
+ import { useEffect as r, useMemo as i, useState as a } from "react";
5
+ //#region src/catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.ts
6
+ var o = ({ api: o, skills: s, sharedWithMe: c, publicSkills: l, skillId: u, folderLabels: d, skillOverviewLabels: f, favoriteIds: p }) => {
7
+ let m = i(() => [
8
+ ...s,
9
+ ...c ?? [],
10
+ ...l ?? []
11
+ ], [
12
+ s,
13
+ c,
14
+ l
15
+ ]), { onFetchSkillDetails: h, onLoadSkillDetailsFile: g } = n({
16
+ api: o,
17
+ skills: m,
18
+ skillOverviewLabels: f
19
+ }), _ = i(() => m.find((e) => e.url === u) ?? null, [m, u]), v = i(() => s.some((e) => e.url === u) ? e.Personal : c?.some((e) => e.url === u) ? e.SharedWithMe : e.Public, [
20
+ s,
21
+ c,
22
+ u
23
+ ]), y = i(() => _ == null ? null : t(_, {
24
+ folderLabels: d,
25
+ source: v,
26
+ favoriteIds: p
27
+ }), [
28
+ _,
29
+ v,
30
+ d,
31
+ p
32
+ ]), [b, x] = a(null), [S, C] = a(!1);
33
+ return r(() => {
34
+ if (y == null) return;
35
+ C(!0), x(null);
36
+ let e = !1;
37
+ return h(y).then((t) => {
38
+ e || (x(t ?? null), C(!1));
39
+ }), () => {
40
+ e = !0;
41
+ };
42
+ }, [y?.id]), {
43
+ detailsPanelItem: i(() => {
44
+ if (y == null) return null;
45
+ if (b == null) return y;
46
+ let { credentials: e, ...t } = b;
47
+ return {
48
+ ...y,
49
+ details: t,
50
+ credentials: e ?? y.credentials
51
+ };
52
+ }, [y, b]),
53
+ isDetailsLoading: S,
54
+ isStarred: y != null && p.has(y.id),
55
+ onLoadSkillDetailsFile: g
56
+ };
57
+ };
58
+ //#endregion
59
+ export { o as useSkillDetailsPanelData };
@@ -0,0 +1,72 @@
1
+ import { SKILL_MANIFEST_FILE as e } from "../skill/skill.js";
2
+ import { parseSkillResourceUrl as t } from "../skill/skill-types.js";
3
+ import { buildSkillContentTree as n, buildSkillOverview as r, readSkillFileBytes as i, readSkillManifest as a, resolveSkillFileDownloadPath as o, resolveSkillManifestFileId as s } from "./map-skill-to-catalog-item.js";
4
+ import { parseSkillManifestDocument as c } from "../skill/skill-manifest.js";
5
+ import { useCallback as l, useRef as u } from "react";
6
+ //#region src/catalog/useSkillItemDetails.ts
7
+ var d = async (n, r) => {
8
+ let i = t(r);
9
+ if (i == null) return null;
10
+ try {
11
+ let t = await n.downloadSkillFile(i.bucket, i.path, e);
12
+ if (!t.ok) return null;
13
+ let r = await a(t);
14
+ return r == null ? null : c(r).description ?? null;
15
+ } catch {
16
+ return null;
17
+ }
18
+ }, f = ({ api: d, skills: f, skillOverviewLabels: p }) => {
19
+ let m = u(null);
20
+ return {
21
+ onFetchSkillDetails: l(async (i) => {
22
+ let o = t(i.id);
23
+ if (o == null) return;
24
+ let { bucket: l, path: u } = o;
25
+ m.current = o;
26
+ let [h, g] = await Promise.allSettled([d.downloadSkillFile(l, u, e).then(a), d.listSkillFiles({
27
+ bucket: l,
28
+ path: u,
29
+ filePath: "",
30
+ recursive: !0
31
+ })]), _ = h.status === "fulfilled" && h.value != null ? c(h.value) : void 0, v = f.find((e) => e.url === i.id), y = g.status === "fulfilled" ? r(v, g.value.items, _?.about, p) : void 0, b = g.status === "fulfilled" ? n(g.value.items, u) : [], x = g.status === "fulfilled" ? s(g.value.items, u) : e;
32
+ if (!(_ == null && y == null)) return {
33
+ ..._ == null ? {} : { promptContent: {
34
+ content: _.body,
35
+ ..._.description == null ? {} : { description: _.description },
36
+ files: b,
37
+ selectedFileId: x
38
+ } },
39
+ ...y == null ? {} : { overview: y }
40
+ };
41
+ }, [
42
+ d,
43
+ f,
44
+ p
45
+ ]),
46
+ onLoadContentFile: l(async (e) => {
47
+ let t = m.current;
48
+ if (t == null) return;
49
+ let n = o(e, t.path);
50
+ if (n == null) return;
51
+ let r = await a(await d.downloadSkillFile(t.bucket, t.path, n));
52
+ if (r != null) return n === "SKILL.md" ? c(r).body : r;
53
+ }, [d]),
54
+ onLoadSkillDetailsFile: l(async (e) => {
55
+ let t = m.current;
56
+ if (t == null) throw Error("No skill details are open");
57
+ let n = o(e, t.path);
58
+ if (n == null) throw Error("A folder cannot be previewed");
59
+ let r = await d.downloadSkillFile(t.bucket, t.path, n);
60
+ if (!r.ok) throw Object.assign(/* @__PURE__ */ Error(`File preview failed with status ${r.status}`), { status: r.status });
61
+ let a = await i(r);
62
+ if (a == null) throw Error("File exceeds the preview size limit");
63
+ let s = r.headers.get("content-type")?.split(";")[0].trim() || void 0;
64
+ return {
65
+ bytes: a,
66
+ mimeType: s === "application/octet-stream" ? void 0 : s
67
+ };
68
+ }, [d])
69
+ };
70
+ };
71
+ //#endregion
72
+ export { d as fetchSkillDescription, f as useSkillItemDetails };
package/catalog.d.ts CHANGED
@@ -139,7 +139,7 @@ export declare const buildSkillOverview: (skill: SkillMetadataItemDto | undefine
139
139
  export declare const buildToolsetMcpUrl: (baseUrl: string, id: string) => string;
140
140
 
141
141
  /** Injected API port for catalog item detail fetching. Mirrors exact server-api wrapper signatures. */
142
- export declare interface CatalogDetailsApi {
142
+ export declare interface CatalogDetailsApi extends SkillDetailsApi {
143
143
  /** Fetches deployment-level details for a model, agent, toolset, or application. */
144
144
  getDeploymentDetails(deploymentId: string): Promise<DeploymentDetailsDto>;
145
145
  /** Fetches rate-limit data for a deployment. */
@@ -148,17 +148,6 @@ export declare interface CatalogDetailsApi {
148
148
  getPrompt(id: string): Promise<PromptResponseDto>;
149
149
  /** Fetches a public (organisation) prompt by its bucket-relative path. */
150
150
  getPublicPrompt(path: string): Promise<PromptResponseDto>;
151
- /** Downloads a raw skill file, returning the raw fetch `Response`. */
152
- downloadSkillFile(bucket: string, path: string, filePath: string, signal?: AbortSignal): Promise<Response>;
153
- /** Lists files inside a skill package. */
154
- listSkillFiles(params: {
155
- bucket: string;
156
- filePath: string;
157
- path?: string;
158
- token?: string;
159
- limit?: number;
160
- recursive?: boolean;
161
- }, signal?: AbortSignal): Promise<SkillFileListResponseDto>;
162
151
  }
163
152
 
164
153
  /** Localized copy `useCatalogEditNavigation` needs for the Create menu and delete errors. */
@@ -349,6 +338,15 @@ export declare interface FavoritesPayload {
349
338
  skills: string[];
350
339
  }
351
340
 
341
+ /**
342
+ * Fetches a skill's manifest description for its listing tooltip. Returns
343
+ * `null` when the skill id is unparseable, the manifest is unreadable, or the
344
+ * request fails — callers treat all three as "no description", silently.
345
+ * Dropped once DIAL Core's skill listing carries `description` (planned
346
+ * upstream change), which also removes the per-skill download it performs.
347
+ */
348
+ export declare const fetchSkillDescription: (api: Pick<SkillDetailsApi, "downloadSkillFile">, skillId: string) => Promise<string | null>;
349
+
352
350
  /**
353
351
  * Filters catalog items to those whose type is in `visibleTypes`.
354
352
  * Call only when selector mode is active; otherwise pass through the original array.
@@ -370,6 +368,14 @@ export declare const filterHiddenOwnedItems: (items: readonly CatalogItem[], hid
370
368
  */
371
369
  export declare const findDeploymentByIdOrReference: (deployments: DeploymentItemDto[], idOrReference: string | null | undefined) => DeploymentItemDto | undefined;
372
370
 
371
+ /**
372
+ * The publish folder a public catalog entity id sits in: the segments between
373
+ * the `public` bucket and the entity name, decoded to the plain text the
374
+ * publish API takes. Empty for a copy published at the public root, and for an
375
+ * id that is not public at all.
376
+ */
377
+ export declare const getPublicCatalogEntityFolderPath: (entityId: string) => string[];
378
+
373
379
  /**
374
380
  * Whether a prompt item came from the organisation namespace, which the public
375
381
  * prompt endpoints serve. Personal prompts resolve through the caller's own
@@ -377,6 +383,18 @@ export declare const findDeploymentByIdOrReference: (deployments: DeploymentItem
377
383
  */
378
384
  export declare const isOrganisationPromptItem: (item: CatalogItem) => boolean;
379
385
 
386
+ /**
387
+ * Whether a catalog entity id addresses the shared `public` bucket
388
+ * (`{resourceType}/public/{folder…}/{name}`), i.e. the id names a published
389
+ * copy rather than the author's own source item.
390
+ *
391
+ * The bucket is always the second segment, so a personal item that happens to
392
+ * own a folder called `public` (`applications/{bucket}/public/{name}`) is not
393
+ * matched. An id with no bucket segment at all — a plain model id such as
394
+ * `gpt-4` — is not public.
395
+ */
396
+ export declare const isPublicCatalogEntityId: (entityId: string) => boolean;
397
+
380
398
  /**
381
399
  * Converts the backend `DeploymentDetailsDto` (model/application/toolset,
382
400
  * fetched by id) into the strongly-typed `EntitySpecificDetails` domain model
@@ -716,6 +734,21 @@ declare interface SkillAboutDetails {
716
734
  skillPrompt?: string;
717
735
  }
718
736
 
737
+ /** Injected API port for skill detail fetching. Mirrors exact server-api wrapper signatures. */
738
+ export declare interface SkillDetailsApi {
739
+ /** Downloads a raw skill file, returning the raw fetch `Response`. */
740
+ downloadSkillFile(bucket: string, path: string, filePath: string, signal?: AbortSignal): Promise<Response>;
741
+ /** Lists files inside a skill package. */
742
+ listSkillFiles(params: {
743
+ bucket: string;
744
+ filePath: string;
745
+ path?: string;
746
+ token?: string;
747
+ limit?: number;
748
+ recursive?: boolean;
749
+ }, signal?: AbortSignal): Promise<SkillFileListResponseDto>;
750
+ }
751
+
719
752
  /** A skill's parsed manifest details. */
720
753
  export declare interface SkillEntityDetails {
721
754
  about?: SkillAboutDetails;
@@ -1091,6 +1124,56 @@ export declare interface UsePublishFoldersResult {
1091
1124
  hasPublishWriteAccess: (folderPath: string[]) => boolean;
1092
1125
  }
1093
1126
 
1127
+ /**
1128
+ * Headless data pipeline behind a skill details side panel: resolves the
1129
+ * selected skill from the listings, maps it to a catalog item with its
1130
+ * ownership flags and folder prefix, fetches its details with cancellation,
1131
+ * and merges the fetch result into the item.
1132
+ */
1133
+ export declare const useSkillDetailsPanelData: ({ api, skills, sharedWithMe, publicSkills, skillId, folderLabels, skillOverviewLabels, favoriteIds, }: UseSkillDetailsPanelDataOptions) => UseSkillDetailsPanelDataResult;
1134
+
1135
+ /** Options accepted by `useSkillDetailsPanelData`. */
1136
+ export declare interface UseSkillDetailsPanelDataOptions {
1137
+ /** Configured API adapter used for all network calls. */
1138
+ api: SkillDetailsApi;
1139
+ /** The user's own skills. */
1140
+ skills: SkillMetadataItemDto[];
1141
+ /** Skills shared with the user. */
1142
+ sharedWithMe?: SkillMetadataItemDto[];
1143
+ /** Public skills. */
1144
+ publicSkills?: SkillMetadataItemDto[];
1145
+ /**
1146
+ * Resource URL (`skills/{bucket}/{path}`) of the skill whose details are
1147
+ * shown; `null` when the panel is closed, which resolves no item.
1148
+ */
1149
+ skillId: string | null;
1150
+ /** Personal/Shared/Public folder labels for the mapped item's folder path. */
1151
+ folderLabels: DeploymentFolderLabels;
1152
+ /** Labels for the skill overview section headers. */
1153
+ skillOverviewLabels: SkillOverviewLabels;
1154
+ /** Favorited resource ids, keyed by skill resource URL. */
1155
+ favoriteIds: ReadonlySet<string>;
1156
+ }
1157
+
1158
+ /** Returned by `useSkillDetailsPanelData`. */
1159
+ export declare interface UseSkillDetailsPanelDataResult {
1160
+ /**
1161
+ * The selected skill as a catalog item with its fetched details merged in;
1162
+ * `null` while no skill is selected or the skill is not in the listings.
1163
+ */
1164
+ detailsPanelItem: CatalogItem | null;
1165
+ /** Whether the details fetch for the current item is in flight. */
1166
+ isDetailsLoading: boolean;
1167
+ /** Whether the resolved skill is currently favorited. */
1168
+ isStarred: boolean;
1169
+ /**
1170
+ * Downloads and returns preview bytes for a file inside the open skill's
1171
+ * package. Throws on HTTP errors, unparseable ids, and size-limit
1172
+ * violations.
1173
+ */
1174
+ onLoadSkillDetailsFile(fileId: string): Promise<SkillFileContent>;
1175
+ }
1176
+
1094
1177
  /**
1095
1178
  * Headless hook that manages the skill-file preview loading lifecycle.
1096
1179
  * Starts a new load on mount and whenever `fileId` changes; classifies errors
@@ -1123,4 +1206,45 @@ export declare interface UseSkillFilePreviewResult {
1123
1206
  error: SkillPreviewErrorKind | null;
1124
1207
  }
1125
1208
 
1209
+ /**
1210
+ * Headless hook that encapsulates skill detail fetching: manifest download and
1211
+ * parse, package file listing, overview construction, and in-package file
1212
+ * loads. `useCatalogItemDetails` delegates its skill branch here; hosts that
1213
+ * only surface skill details consume this hook directly, without the
1214
+ * deployment and prompt ports the full catalog pipeline requires.
1215
+ */
1216
+ export declare const useSkillItemDetails: ({ api, skills, skillOverviewLabels, }: UseSkillItemDetailsOptions) => UseSkillItemDetailsResult;
1217
+
1218
+ /** Options accepted by `useSkillItemDetails`. */
1219
+ export declare interface UseSkillItemDetailsOptions {
1220
+ /** Configured API adapter used for all network calls. */
1221
+ api: SkillDetailsApi;
1222
+ /**
1223
+ * Combined array of all skills visible to this user
1224
+ * (personal + shared + public) for overview metadata lookup.
1225
+ */
1226
+ skills: SkillMetadataItemDto[];
1227
+ /** Labels for skill overview section headers. */
1228
+ skillOverviewLabels: SkillOverviewLabels;
1229
+ }
1230
+
1231
+ /** Returned callbacks from `useSkillItemDetails`. All callbacks are stable for stable inputs. */
1232
+ export declare interface UseSkillItemDetailsResult {
1233
+ /**
1234
+ * Fetches full detail data for a skill catalog item.
1235
+ * Returns `undefined` on failure (error handled by caller).
1236
+ */
1237
+ onFetchSkillDetails(item: CatalogItem): Promise<CatalogItemDetailsFetchResult | undefined>;
1238
+ /**
1239
+ * Loads the text content of a file inside the currently open skill's package.
1240
+ * Returns `undefined` when the file cannot be read or is a directory.
1241
+ */
1242
+ onLoadContentFile(fileId: string): Promise<string | undefined>;
1243
+ /**
1244
+ * Downloads and returns preview bytes for a file inside the currently open skill's package.
1245
+ * Throws on HTTP errors, unparseable ids, and size-limit violations.
1246
+ */
1247
+ onLoadSkillDetailsFile(fileId: string): Promise<SkillFileContent>;
1248
+ }
1249
+
1126
1250
  export { }
package/catalog.js CHANGED
@@ -10,13 +10,15 @@ import { buildPromptOverview as _, isOrganisationPromptItem as v, mapPromptToCat
10
10
  import { PUBLIC_SKILL_BUCKET as b, SKILL_LISTING_MAX_PAGES as x, SKILL_LISTING_PAGE_SIZE as S, SKILL_MANIFEST_MAX_BYTES as C, SkillSource as w, parseSkillResourceUrl as T } from "./skill/skill-types.js";
11
11
  import { buildSkillContentTree as E, buildSkillOverview as D, mapSkillToCatalogItem as O, readSkillFileBytes as k, readSkillManifest as A, resolveSkillFileDownloadPath as j, resolveSkillManifestFileId as M } from "./catalog/map-skill-to-catalog-item.js";
12
12
  import { McpResourceKind as N, buildApplicationMcpUrl as P, buildConnectApi as F, buildToolsetMcpUrl as I, resolveMcpResourceKind as L } from "./catalog/mcp-endpoint-url.js";
13
- import { mapPublishConversationResultDto as R, mapPublishHistoryEntryDto as z, toPublishEntityType as B } from "./catalog/publish.js";
14
- import { deriveAvailableTabIds as V, deriveFavoriteItems as H, filterCatalogItemsBySelector as U, filterHiddenOwnedItems as W, reconcileFilterTopics as G } from "./catalog/catalog-derivations.js";
15
- import { CatalogPrimaryActionType as K, resolveCatalogPrimaryAction as q } from "./catalog/catalog-primary-action.js";
16
- import { useCatalogEditNavigation as J } from "./catalog/useCatalogEditNavigation/useCatalogEditNavigation.js";
17
- import { useCatalogItemDetails as Y } from "./catalog/useCatalogItemDetails.js";
18
- import { useCatalogToolsetCredentials as X } from "./catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js";
19
- import { FavoriteEntityType as Z, useFavoriteEntitiesState as Q } from "./catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js";
20
- import { usePublishFolders as $ } from "./catalog/usePublishFolders/usePublishFolders.js";
21
- import { SkillPreviewErrorKind as ee, useSkillFilePreview as te } from "./skill/useSkillFilePreview.js";
22
- export { s as AuthenticationType, K as CatalogPrimaryActionType, Z as FavoriteEntityType, N as McpResourceKind, b as PUBLIC_SKILL_BUCKET, x as SKILL_LISTING_MAX_PAGES, S as SKILL_LISTING_PAGE_SIZE, C as SKILL_MANIFEST_MAX_BYTES, ee as SkillPreviewErrorKind, w as SkillSource, P as buildApplicationMcpUrl, n as buildChatCompletionsUrl, F as buildConnectApi, r as buildDeploymentConnectApi, _ as buildPromptOverview, i as buildResponsesUrl, E as buildSkillContentTree, D as buildSkillOverview, I as buildToolsetMcpUrl, e as createPublishApiClient, V as deriveAvailableTabIds, H as deriveFavoriteItems, a as encodeDeploymentId, U as filterCatalogItemsBySelector, W as filterHiddenOwnedItems, o as findDeploymentByIdOrReference, v as isOrganisationPromptItem, u as mapDeploymentDetailsDtoToEntityDetails, c as mapDeploymentLimitsDtoToCatalogLimits, l as mapDeploymentLimitsToInput, p as mapDeploymentToCatalogItem, m as mapDeploymentToolsetCredentials, d as mapEntityDetailsToCatalogDetails, y as mapPromptToCatalogItem, R as mapPublishConversationResultDto, z as mapPublishHistoryEntryDto, O as mapSkillToCatalogItem, f as mapToolsetCredentials, h as mapToolsetToCatalogItem, T as parseSkillResourceUrl, k as readSkillFileBytes, A as readSkillManifest, G as reconcileFilterTopics, q as resolveCatalogPrimaryAction, g as resolveDeploymentFolder, L as resolveMcpResourceKind, j as resolveSkillFileDownloadPath, M as resolveSkillManifestFileId, B as toPublishEntityType, t as toPublishRuleDto, J as useCatalogEditNavigation, Y as useCatalogItemDetails, X as useCatalogToolsetCredentials, Q as useFavoriteEntitiesState, $ as usePublishFolders, te as useSkillFilePreview };
13
+ import { getPublicCatalogEntityFolderPath as R, isPublicCatalogEntityId as z, mapPublishConversationResultDto as B, mapPublishHistoryEntryDto as V, toPublishEntityType as H } from "./catalog/publish.js";
14
+ import { deriveAvailableTabIds as U, deriveFavoriteItems as W, filterCatalogItemsBySelector as G, filterHiddenOwnedItems as K, reconcileFilterTopics as q } from "./catalog/catalog-derivations.js";
15
+ import { CatalogPrimaryActionType as J, resolveCatalogPrimaryAction as Y } from "./catalog/catalog-primary-action.js";
16
+ import { useCatalogEditNavigation as X } from "./catalog/useCatalogEditNavigation/useCatalogEditNavigation.js";
17
+ import { fetchSkillDescription as Z, useSkillItemDetails as Q } from "./catalog/useSkillItemDetails.js";
18
+ import { useCatalogItemDetails as $ } from "./catalog/useCatalogItemDetails.js";
19
+ import { useCatalogToolsetCredentials as ee } from "./catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js";
20
+ import { useSkillDetailsPanelData as te } from "./catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.js";
21
+ import { FavoriteEntityType as ne, useFavoriteEntitiesState as re } from "./catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js";
22
+ import { usePublishFolders as ie } from "./catalog/usePublishFolders/usePublishFolders.js";
23
+ import { SkillPreviewErrorKind as ae, useSkillFilePreview as oe } from "./skill/useSkillFilePreview.js";
24
+ export { s as AuthenticationType, J as CatalogPrimaryActionType, ne as FavoriteEntityType, N as McpResourceKind, b as PUBLIC_SKILL_BUCKET, x as SKILL_LISTING_MAX_PAGES, S as SKILL_LISTING_PAGE_SIZE, C as SKILL_MANIFEST_MAX_BYTES, ae as SkillPreviewErrorKind, w as SkillSource, P as buildApplicationMcpUrl, n as buildChatCompletionsUrl, F as buildConnectApi, r as buildDeploymentConnectApi, _ as buildPromptOverview, i as buildResponsesUrl, E as buildSkillContentTree, D as buildSkillOverview, I as buildToolsetMcpUrl, e as createPublishApiClient, U as deriveAvailableTabIds, W as deriveFavoriteItems, a as encodeDeploymentId, Z as fetchSkillDescription, G as filterCatalogItemsBySelector, K as filterHiddenOwnedItems, o as findDeploymentByIdOrReference, R as getPublicCatalogEntityFolderPath, v as isOrganisationPromptItem, z as isPublicCatalogEntityId, u as mapDeploymentDetailsDtoToEntityDetails, c as mapDeploymentLimitsDtoToCatalogLimits, l as mapDeploymentLimitsToInput, p as mapDeploymentToCatalogItem, m as mapDeploymentToolsetCredentials, d as mapEntityDetailsToCatalogDetails, y as mapPromptToCatalogItem, B as mapPublishConversationResultDto, V as mapPublishHistoryEntryDto, O as mapSkillToCatalogItem, f as mapToolsetCredentials, h as mapToolsetToCatalogItem, T as parseSkillResourceUrl, k as readSkillFileBytes, A as readSkillManifest, q as reconcileFilterTopics, Y as resolveCatalogPrimaryAction, g as resolveDeploymentFolder, L as resolveMcpResourceKind, j as resolveSkillFileDownloadPath, M as resolveSkillManifestFileId, H as toPublishEntityType, t as toPublishRuleDto, X as useCatalogEditNavigation, $ as useCatalogItemDetails, ee as useCatalogToolsetCredentials, re as useFavoriteEntitiesState, ie as usePublishFolders, te as useSkillDetailsPanelData, oe as useSkillFilePreview, Q as useSkillItemDetails };
package/index.d.ts CHANGED
@@ -511,7 +511,7 @@ kind: McpDeploymentKind,
511
511
  ) => Promise<CallToolResult>;
512
512
 
513
513
  /** Injected API port for catalog item detail fetching. Mirrors exact server-api wrapper signatures. */
514
- export declare interface CatalogDetailsApi {
514
+ export declare interface CatalogDetailsApi extends SkillDetailsApi {
515
515
  /** Fetches deployment-level details for a model, agent, toolset, or application. */
516
516
  getDeploymentDetails(deploymentId: string): Promise<DeploymentDetailsDto>;
517
517
  /** Fetches rate-limit data for a deployment. */
@@ -520,17 +520,6 @@ export declare interface CatalogDetailsApi {
520
520
  getPrompt(id: string): Promise<PromptResponseDto>;
521
521
  /** Fetches a public (organisation) prompt by its bucket-relative path. */
522
522
  getPublicPrompt(path: string): Promise<PromptResponseDto>;
523
- /** Downloads a raw skill file, returning the raw fetch `Response`. */
524
- downloadSkillFile(bucket: string, path: string, filePath: string, signal?: AbortSignal): Promise<Response>;
525
- /** Lists files inside a skill package. */
526
- listSkillFiles(params: {
527
- bucket: string;
528
- filePath: string;
529
- path?: string;
530
- token?: string;
531
- limit?: number;
532
- recursive?: boolean;
533
- }, signal?: AbortSignal): Promise<SkillFileListResponseDto>;
534
523
  }
535
524
 
536
525
  /** Localized copy `useCatalogEditNavigation` needs for the Create menu and delete errors. */
@@ -1355,6 +1344,15 @@ toolsetId: string,
1355
1344
  resourceUri: string,
1356
1345
  ) => Promise<string>;
1357
1346
 
1347
+ /**
1348
+ * Fetches a skill's manifest description for its listing tooltip. Returns
1349
+ * `null` when the skill id is unparseable, the manifest is unreadable, or the
1350
+ * request fails — callers treat all three as "no description", silently.
1351
+ * Dropped once DIAL Core's skill listing carries `description` (planned
1352
+ * upstream change), which also removes the per-skill download it performs.
1353
+ */
1354
+ export declare const fetchSkillDescription: (api: Pick<SkillDetailsApi, "downloadSkillFile">, skillId: string) => Promise<string | null>;
1355
+
1358
1356
  /**
1359
1357
  * Structured toast event emitted by file-manager hooks. `reason` carries a
1360
1358
  * library-owned identifier the host translates; `message` is an optional
@@ -1677,6 +1675,14 @@ export declare const getModelIdFromConversationId: (id: string) => string | unde
1677
1675
 
1678
1676
  export { getParentFolderPath }
1679
1677
 
1678
+ /**
1679
+ * The publish folder a public catalog entity id sits in: the segments between
1680
+ * the `public` bucket and the entity name, decoded to the plain text the
1681
+ * publish API takes. Empty for a copy published at the public root, and for an
1682
+ * id that is not public at all.
1683
+ */
1684
+ export declare const getPublicCatalogEntityFolderPath: (entityId: string) => string[];
1685
+
1680
1686
  /** Parses a Quick App's raw `conversationStarters` schema value into starter options. */
1681
1687
  export declare const getQuickAppConversationStarters: (conversationStarters: unknown) => QuickAppConversationStartersSettings;
1682
1688
 
@@ -1876,6 +1882,18 @@ export declare const isMessageStreaming: (message: Message, messageIndex: number
1876
1882
  */
1877
1883
  export declare const isOrganisationPromptItem: (item: CatalogItem) => boolean;
1878
1884
 
1885
+ /**
1886
+ * Whether a catalog entity id addresses the shared `public` bucket
1887
+ * (`{resourceType}/public/{folder…}/{name}`), i.e. the id names a published
1888
+ * copy rather than the author's own source item.
1889
+ *
1890
+ * The bucket is always the second segment, so a personal item that happens to
1891
+ * own a folder called `public` (`applications/{bucket}/public/{name}`) is not
1892
+ * matched. An id with no bucket segment at all — a plain model id such as
1893
+ * `gpt-4` — is not public.
1894
+ */
1895
+ export declare const isPublicCatalogEntityId: (entityId: string) => boolean;
1896
+
1879
1897
  /** Whether a toolset id belongs to the `public` bucket (shared with all users), mirroring the legacy `isEntityIdPublic` check. */
1880
1898
  export declare const isPublicToolsetId: (toolsetId: string) => boolean;
1881
1899
 
@@ -2962,6 +2980,21 @@ export declare interface SkillAboutDetails {
2962
2980
  skillPrompt?: string;
2963
2981
  }
2964
2982
 
2983
+ /** Injected API port for skill detail fetching. Mirrors exact server-api wrapper signatures. */
2984
+ export declare interface SkillDetailsApi {
2985
+ /** Downloads a raw skill file, returning the raw fetch `Response`. */
2986
+ downloadSkillFile(bucket: string, path: string, filePath: string, signal?: AbortSignal): Promise<Response>;
2987
+ /** Lists files inside a skill package. */
2988
+ listSkillFiles(params: {
2989
+ bucket: string;
2990
+ filePath: string;
2991
+ path?: string;
2992
+ token?: string;
2993
+ limit?: number;
2994
+ recursive?: boolean;
2995
+ }, signal?: AbortSignal): Promise<SkillFileListResponseDto>;
2996
+ }
2997
+
2965
2998
  /** Already-configured DIAL Core download operations `useSkillEditorLoad` needs. */
2966
2999
  export declare interface SkillEditorLoadClient {
2967
3000
  /** Downloads the whole-skill ZIP archive. */
@@ -5019,6 +5052,56 @@ export declare interface UseShareRecipientsCountResult {
5019
5052
  invalidateRecipientsCount: (itemId: string) => void;
5020
5053
  }
5021
5054
 
5055
+ /**
5056
+ * Headless data pipeline behind a skill details side panel: resolves the
5057
+ * selected skill from the listings, maps it to a catalog item with its
5058
+ * ownership flags and folder prefix, fetches its details with cancellation,
5059
+ * and merges the fetch result into the item.
5060
+ */
5061
+ export declare const useSkillDetailsPanelData: ({ api, skills, sharedWithMe, publicSkills, skillId, folderLabels, skillOverviewLabels, favoriteIds, }: UseSkillDetailsPanelDataOptions) => UseSkillDetailsPanelDataResult;
5062
+
5063
+ /** Options accepted by `useSkillDetailsPanelData`. */
5064
+ export declare interface UseSkillDetailsPanelDataOptions {
5065
+ /** Configured API adapter used for all network calls. */
5066
+ api: SkillDetailsApi;
5067
+ /** The user's own skills. */
5068
+ skills: SkillMetadataItemDto[];
5069
+ /** Skills shared with the user. */
5070
+ sharedWithMe?: SkillMetadataItemDto[];
5071
+ /** Public skills. */
5072
+ publicSkills?: SkillMetadataItemDto[];
5073
+ /**
5074
+ * Resource URL (`skills/{bucket}/{path}`) of the skill whose details are
5075
+ * shown; `null` when the panel is closed, which resolves no item.
5076
+ */
5077
+ skillId: string | null;
5078
+ /** Personal/Shared/Public folder labels for the mapped item's folder path. */
5079
+ folderLabels: DeploymentFolderLabels;
5080
+ /** Labels for the skill overview section headers. */
5081
+ skillOverviewLabels: SkillOverviewLabels;
5082
+ /** Favorited resource ids, keyed by skill resource URL. */
5083
+ favoriteIds: ReadonlySet<string>;
5084
+ }
5085
+
5086
+ /** Returned by `useSkillDetailsPanelData`. */
5087
+ export declare interface UseSkillDetailsPanelDataResult {
5088
+ /**
5089
+ * The selected skill as a catalog item with its fetched details merged in;
5090
+ * `null` while no skill is selected or the skill is not in the listings.
5091
+ */
5092
+ detailsPanelItem: CatalogItem | null;
5093
+ /** Whether the details fetch for the current item is in flight. */
5094
+ isDetailsLoading: boolean;
5095
+ /** Whether the resolved skill is currently favorited. */
5096
+ isStarred: boolean;
5097
+ /**
5098
+ * Downloads and returns preview bytes for a file inside the open skill's
5099
+ * package. Throws on HTTP errors, unparseable ids, and size-limit
5100
+ * violations.
5101
+ */
5102
+ onLoadSkillDetailsFile(fileId: string): Promise<SkillFileContent>;
5103
+ }
5104
+
5022
5105
  /**
5023
5106
  * Owns the edit-mode skill download/unpack/parse flow: the in-memory
5024
5107
  * supporting-file map, the loaded manifest values and frontmatter, the
@@ -5194,6 +5277,47 @@ export declare interface UseSkillFilePreviewResult {
5194
5277
  error: SkillPreviewErrorKind | null;
5195
5278
  }
5196
5279
 
5280
+ /**
5281
+ * Headless hook that encapsulates skill detail fetching: manifest download and
5282
+ * parse, package file listing, overview construction, and in-package file
5283
+ * loads. `useCatalogItemDetails` delegates its skill branch here; hosts that
5284
+ * only surface skill details consume this hook directly, without the
5285
+ * deployment and prompt ports the full catalog pipeline requires.
5286
+ */
5287
+ export declare const useSkillItemDetails: ({ api, skills, skillOverviewLabels, }: UseSkillItemDetailsOptions) => UseSkillItemDetailsResult;
5288
+
5289
+ /** Options accepted by `useSkillItemDetails`. */
5290
+ export declare interface UseSkillItemDetailsOptions {
5291
+ /** Configured API adapter used for all network calls. */
5292
+ api: SkillDetailsApi;
5293
+ /**
5294
+ * Combined array of all skills visible to this user
5295
+ * (personal + shared + public) for overview metadata lookup.
5296
+ */
5297
+ skills: SkillMetadataItemDto[];
5298
+ /** Labels for skill overview section headers. */
5299
+ skillOverviewLabels: SkillOverviewLabels;
5300
+ }
5301
+
5302
+ /** Returned callbacks from `useSkillItemDetails`. All callbacks are stable for stable inputs. */
5303
+ export declare interface UseSkillItemDetailsResult {
5304
+ /**
5305
+ * Fetches full detail data for a skill catalog item.
5306
+ * Returns `undefined` on failure (error handled by caller).
5307
+ */
5308
+ onFetchSkillDetails(item: CatalogItem): Promise<CatalogItemDetailsFetchResult | undefined>;
5309
+ /**
5310
+ * Loads the text content of a file inside the currently open skill's package.
5311
+ * Returns `undefined` when the file cannot be read or is a directory.
5312
+ */
5313
+ onLoadContentFile(fileId: string): Promise<string | undefined>;
5314
+ /**
5315
+ * Downloads and returns preview bytes for a file inside the currently open skill's package.
5316
+ * Throws on HTTP errors, unparseable ids, and size-limit violations.
5317
+ */
5318
+ onLoadSkillDetailsFile(fileId: string): Promise<SkillFileContent>;
5319
+ }
5320
+
5197
5321
  /**
5198
5322
  * Fetches all skill namespaces with a gated single request: clears state
5199
5323
  * immediately when `enabled` is false, defers the fetch until `ready` is true,
package/index.js CHANGED
@@ -27,108 +27,110 @@ import { SKILL_FILE_UPLOAD_MAX_BYTES as le, SKILL_MANIFEST_FILE as ue, SKILL_UPL
27
27
  import { PUBLIC_SKILL_BUCKET as Ce, SKILL_LISTING_MAX_PAGES as we, SKILL_LISTING_PAGE_SIZE as Te, SKILL_MANIFEST_MAX_BYTES as Ee, SkillSource as De, parseSkillResourceUrl as Oe } from "./skill/skill-types.js";
28
28
  import { buildSkillContentTree as ke, buildSkillOverview as Ae, mapSkillToCatalogItem as je, readSkillFileBytes as Me, readSkillManifest as Ne, resolveSkillFileDownloadPath as Pe, resolveSkillManifestFileId as Fe } from "./catalog/map-skill-to-catalog-item.js";
29
29
  import { McpResourceKind as Ie, buildApplicationMcpUrl as Le, buildConnectApi as Re, buildToolsetMcpUrl as ze, resolveMcpResourceKind as Be } from "./catalog/mcp-endpoint-url.js";
30
- import { mapPublishConversationResultDto as Ve, mapPublishHistoryEntryDto as He, toPublishEntityType as Ue } from "./catalog/publish.js";
31
- import { deriveAvailableTabIds as We, deriveFavoriteItems as Ge, filterCatalogItemsBySelector as Ke, filterHiddenOwnedItems as qe, reconcileFilterTopics as Je } from "./catalog/catalog-derivations.js";
32
- import { CatalogPrimaryActionType as Ye, resolveCatalogPrimaryAction as Xe } from "./catalog/catalog-primary-action.js";
33
- import { useCatalogEditNavigation as Ze } from "./catalog/useCatalogEditNavigation/useCatalogEditNavigation.js";
34
- import { parseSkillManifestDocument as Qe } from "./skill/skill-manifest.js";
35
- import { useCatalogItemDetails as $e } from "./catalog/useCatalogItemDetails.js";
36
- import { OAuthResourceKind as et, TOOLSET_REDIRECT_STATE_KEY as tt, ToolsetAuthStatus as nt, ToolsetAuthTypes as rt, ToolsetCredentialsLevel as it, ToolsetOAuthCallbackQuery as at, ToolsetOAuthChannelControlType as ot, ToolsetOAuthFailureReason as st, ToolsetOAuthInitiationResultType as ct, ToolsetOAuthResultType as lt, WithLogin as ut } from "./oauth/types.js";
37
- import { emitToolsetLoginSuccess as dt, subscribeToolsetLoginSuccess as ft } from "./shared/toolset-login-events.js";
38
- import { getToolsetOAuthChannelName as pt, waitForToolsetOAuthResult as mt } from "./oauth/handshake.js";
39
- import { buildToolsetAuthorizeUrl as ht, getToolsetRedirectUri as gt } from "./oauth/authorize-url.js";
40
- import { initiateOAuthLogin as _t, navigateToolsetOAuthPopup as vt, openToolsetOAuthPopup as yt } from "./oauth/popup.js";
41
- import { ToolsetLoginOutcomeType as bt, useToolsetLogin as xt } from "./oauth/useToolsetLogin/useToolsetLogin.js";
42
- import { useCatalogToolsetCredentials as St } from "./catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js";
43
- import { FavoriteEntityType as Ct, useFavoriteEntitiesState as wt } from "./catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js";
44
- import { usePublishFolders as Tt } from "./catalog/usePublishFolders/usePublishFolders.js";
45
- import { buildAnnouncementSignature as Et, hasAnnouncementContent as Dt, hasStructuredAnnouncement as Ot, sanitizeAnnouncementHtml as kt, sanitizeAnnouncementMessageHtml as At } from "./conversation/announcement-message.js";
46
- import { createChatStreamApi as jt } from "./conversation/create-chat-stream-api.js";
47
- import { shouldWatchForDisplayNameUpdate as Mt } from "./conversation/display-name-watch.js";
48
- import { formatAppVersion as Nt, sanitizeFooterHtml as Pt } from "./conversation/footer-message.js";
49
- import { getModelIdFromConversationId as Ft } from "./conversation/get-model-id-from-conversation-id.js";
50
- import { getTimeOfDayGreeting as It } from "./conversation/greeting.js";
51
- import { createDeploymentChangedMessage as Lt } from "./conversation/message-factory.js";
52
- import { getLastDeploymentId as Rt, getLastUserMessageToolConfiguration as zt, isMessageStreaming as Bt, messageHasStages as Vt, normalizeResponseFormat as Ht } from "./conversation/message-utils.js";
53
- import { toOverlayMessages as Ut } from "./conversation/overlay-messages.js";
54
- import { getQuickAppConversationStarters as Wt } from "./conversation/quick-app-conversation-starters.js";
55
- import { getStarterPopulateText as Gt, getStartersFromSchema as Kt } from "./conversation/starter-option.js";
56
- import { useOAuthCallbackCompletion as qt } from "./oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js";
57
- import { buildPromptExportEnvelope as Jt, buildPromptExportFileName as Yt, serializePromptExport as Xt } from "./prompt/export-prompt.js";
58
- import { PROMPT_CONTENT_MAX_LENGTH as Zt, PROMPT_COUNTER_ANNOUNCE_THRESHOLD as Qt, PROMPT_DESCRIPTION_MAX_LENGTH as $t, PROMPT_NAME_MAX_LENGTH as en, PromptFieldError as tn, buildPromptPath as nn, getRemainingCharacters as rn, validatePromptContent as an, validatePromptDescription as on, validatePromptName as sn } from "./prompt/prompt.js";
59
- import { usePromptsState as cn } from "./prompt/usePromptsState/usePromptsState.js";
60
- import { UnsupportedTriggerReason as ln } from "./scheduled-task/scheduled-task-mapping.js";
61
- import { apSchedulerDayToJsDay as un, jsDayToApSchedulerDay as dn } from "./shared/cron-weekday.js";
62
- import { mapFormValuesToCreateBody as fn, mapFormValuesToUpdateBody as pn, mapScheduledTaskDtoToFormValues as mn } from "./scheduled-task/scheduled-task-trigger.js";
63
- import { validateSkillFileBatch as hn } from "./skill/skill-file-batch-validation.js";
64
- import { skillFileToAttachment as gn } from "./skill/skill-file-preview.js";
65
- import { SkillEditorLoadState as _n, useSkillEditorLoad as vn } from "./skill/useSkillEditorLoad.js";
66
- import { useSkillEditorSubmit as yn } from "./skill/useSkillEditorSubmit.js";
67
- import { useSkillFileActions as bn } from "./skill/useSkillFileActions.js";
68
- import { SkillPreviewErrorKind as xn, useSkillFilePreview as Sn } from "./skill/useSkillFilePreview.js";
69
- import { useSkillsState as Cn } from "./skill/useSkillsState/useSkillsState.js";
70
- import { RecipientsCountStatus as wn, useShareRecipientsCount as Tn } from "./useShareRecipientsCount/useShareRecipientsCount.js";
71
- import { deriveConversationRowActionState as En } from "./conversation/deriveConversationRowActionState/deriveConversationRowActionState.js";
72
- import { useActiveConversationSync as Dn } from "./conversation/useActiveConversationSync/useActiveConversationSync.js";
73
- import { useAsyncConfirmDialog as On } from "./conversation/useAsyncConfirmDialog/useAsyncConfirmDialog.js";
74
- import { useConversationLookupMaps as kn } from "./conversation/useConversationLookupMaps/useConversationLookupMaps.js";
75
- import { getConversationSource as An, useConversationPanelItems as jn } from "./conversation/useConversationPanelItems/useConversationPanelItems.js";
76
- import { useImportFilePicker as Mn } from "./conversation/useImportFilePicker/useImportFilePicker.js";
77
- import { useAttachmentUpload as Nn } from "./conversation/useAttachmentUpload/useAttachmentUpload.js";
78
- import { AudioTranscriptionError as Pn, AudioTranscriptionErrorReason as Fn } from "./conversation/useTranscribeAudio/audio-transcription-error.js";
79
- import { useTranscribeAudio as In } from "./conversation/useTranscribeAudio/useTranscribeAudio.js";
80
- import { DEFAULT_MAX_ARCHIVE_BYTES as Ln, useConversationExport as Rn } from "./conversation/useConversationExport/useConversationExport.js";
81
- import { attachmentToDto as zn, attachmentsToDtos as Bn } from "./conversation/useConversationHandlers/attachment-to-dto.js";
82
- import { createMessagePair as Vn } from "./conversation/useConversationHandlers/message-factory.js";
83
- import { hasActiveToolConfig as Hn, isMessageChanged as Un } from "./conversation/useConversationHandlers/message-utils.js";
84
- import { getStarterConversationText as Wn, getStarterSubmitText as Gn } from "./conversation/useConversationHandlers/starter-option.js";
85
- import { getConversationPath as Kn } from "./conversation/useConversationStream/conversation-path.js";
86
- import { useConversationHandlers as qn } from "./conversation/useConversationHandlers/useConversationHandlers.js";
87
- import { useConversationImport as Jn } from "./conversation/useConversationImport/useConversationImport.js";
88
- import { useConversationScroll as Yn } from "./conversation/useConversationScroll/useConversationScroll.js";
89
- import { isAwaitingGenerationResume as Xn } from "./conversation/useConversationStream/generation-resume.js";
90
- import { useConversationStream as Zn } from "./conversation/useConversationStream/useConversationStream.js";
91
- import { useConversationSources as Qn } from "./conversation-sources/useConversationSources/useConversationSources.js";
92
- import { DialFilesApiUploadMode as $n } from "./files/dial-files-api.js";
93
- import { FileManagerNotificationReason as er, FileNameValidationErrorReason as tr, FileOperationKind as nr } from "./files/dial-file-manager.types.js";
94
- import { COLUMNS_WITHOUT_AUTHOR as rr, COLUMNS_WITH_AUTHOR as ir, CORE_PERMISSION_MAP as ar, DATE_OPTIONS as or, PATH_SEPARATOR_REGEXP as sr, RESERVED_MARKER_NAME as cr, UPLOAD_CONCURRENCY as lr } from "./files/dial-file-manager.model.js";
95
- import { DialFileManagerActionProfile as ur, DialFileManagerVariant as dr, deriveActionProfile as fr } from "./files/file-manager-variant.js";
96
- import { buildSharedItemVirtualPath as pr, dialCorePathToRelative as mr, findDialFileByPath as hr, findFolderByVirtualPath as gr, formatOperationFolderName as _r, getVirtualPathName as vr, hasDialFileWritePermission as yr, hasForbiddenNameSymbols as br, isCopyMoveDuplicateAllowed as xr, isShareActionsAllowed as Sr, normalizeVirtualPath as Cr, parseNewFolderVirtualPath as wr, resolveOwnerCoords as Tr } from "./files/dial-file-manager-path.util.js";
97
- import { getParentFolderPath as Er, resolveDialFileApiPath as Dr, virtualPathToApiPath as Or } from "./files/resolve-dial-file-api-path.js";
98
- import { prepareCopyItems as kr, prepareMoveRenameItems as Ar } from "./files/dial-file-manager-copy-move.util.js";
99
- import { buildFromCache as jr, fetchByTab as Mr, fetchForSearch as Nr, findFirstSuccessfulCopyMoveItem as Pr, mapCorePermissions as Fr, mapFileMetadataToDialFile as Ir, mapSearchItem as Lr, mergeCreatedFolderIntoCache as Rr, updateEntry as zr } from "./files/dial-file-manager-mapping.util.js";
100
- import { createFilesApiClient as Br } from "./files/create-files-api.js";
101
- import { createUploadFileWithProgress as Vr } from "./files/create-upload-file-with-progress.js";
102
- import { openAnnotationAttachment as Hr } from "./files/annotation.js";
103
- import { annotationToPdfCanvasContent as Ur, clearAttachmentCache as Wr, hasAttachmentTextSource as Gr, referenceAttachmentToPdfCanvasContent as Kr, resolveCodeCanvasContent as qr, resolveHtmlCanvasContent as Jr, resolveImageCanvasContent as Yr, resolveJsonCanvasContent as Xr, resolveMarkdownCanvasContent as Zr, resolveOoxmlCanvasContent as Qr, resolvePdfCanvasContent as $r, resolveTextCanvasContent as ei, resolveVisualizerCanvasContent as ti } from "./files/attachment-canvas.js";
104
- import { getUrlFileName as ni, isExternalSourcePreviewable as ri, resolveExternalSourceContentType as ii } from "./files/source-content.js";
105
- import { annotationToDisplayAttachment as ai, attachmentDtoToDisplayAttachment as oi, attachmentDtosToDisplayAttachments as si } from "./files/attachment-dto-to-display.js";
106
- import { dialFileToAttachment as ci, dialFilesToAttachments as li, dialFolderPathToAttachment as ui } from "./files/dial-file-to-attachment.js";
107
- import { DownloadDestinationType as di } from "./files/download-destination.js";
108
- import { prepareDownloadDestination as fi } from "./files/prepare-download-destination.js";
109
- import { sanitizeFileName as pi, splitFileNameExtension as mi, trimFileNameToByteLimit as hi } from "./files/file-name.js";
110
- import { useDialFileListing as gi } from "./files/useDialFileListing/useDialFileListing.js";
111
- import { useDialFileMetadata as _i } from "./files/useDialFileMetadata/useDialFileMetadata.js";
112
- import { useDialFileMutations as vi } from "./files/useDialFileMutations/useDialFileMutations.js";
113
- import { useDialFileSharing as yi } from "./files/useDialFileSharing/useDialFileSharing.js";
114
- import { useDialFileUploadBatch as bi } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
115
- import { useDialFileManager as xi } from "./files/useDialFileManager/useDialFileManager.js";
116
- import { useDialFileManagerTabConfig as Si } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
117
- import { isCustomAppSchema as Ci, isQuickAppSchema as wi } from "./shared/application-schema.js";
118
- import { getBrowserTimezone as Ti } from "./shared/browser-timezone.js";
119
- import { isValidAbsoluteUrl as Ei, isValidFeaturesData as Di, parseFeaturesData as Oi } from "./shared/custom-apps.js";
120
- import { buildExternalServiceScopeId as ki, getExternalServiceFallbackName as Ai, parseExternalServiceUrl as ji } from "./shared/external-services.js";
121
- import { useChatSettingsFormConfig as Mi } from "./useChatSettingsFormConfig/useChatSettingsFormConfig.js";
122
- import { usePageFileDrag as Ni } from "./usePageFileDrag/usePageFileDrag.js";
123
- import { useViewportWidth as Pi } from "./useViewportWidth/useViewportWidth.js";
124
- import { usePanelMaxWidth as Fi } from "./usePanelMaxWidth/usePanelMaxWidth.js";
125
- import { useShareLink as Ii } from "./useShareLink/useShareLink.js";
126
- import { useToolsMenu as Li } from "./useToolsMenu/useToolsMenu.js";
127
- import { useUsageData as Ri } from "./usage/useUsageData/useUsageData.js";
128
- import { McpAppResourceFetchError as zi, createMcpAppsApiClient as Bi } from "./mcp-apps/mcp-apps-api-client.js";
129
- import { useMcpAppTools as Vi } from "./mcp-apps/useMcpAppTools/useMcpAppTools.js";
130
- import { useMcpAppHostContext as Hi } from "./mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js";
131
- import { useMcpAppHostAdapter as Ui } from "./mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.js";
132
- import { useOpenMcpAppCanvas as Wi } from "./mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.js";
133
- import { useGridEditingScroll as Gi } from "@epam/ai-dial-chat-shared";
134
- export { b as AttachmentValidationErrorReason, Pn as AudioTranscriptionError, Fn as AudioTranscriptionErrorReason, L as AuthenticationType, rr as COLUMNS_WITHOUT_AUTHOR, ir as COLUMNS_WITH_AUTHOR, ar as CORE_PERMISSION_MAP, Ye as CatalogPrimaryActionType, w as ConversationExportMode, T as ConversationTransferErrorCode, E as ConversationTransferWarningCode, or as DATE_OPTIONS, Ln as DEFAULT_MAX_ARCHIVE_BYTES, ur as DialFileManagerActionProfile, dr as DialFileManagerVariant, $n as DialFilesApiUploadMode, di as DownloadDestinationType, O as EXPORT_APP_NAME, D as ExportFileNameKind, Ct as FavoriteEntityType, er as FileManagerNotificationReason, tr as FileNameValidationErrorReason, nr as FileOperationKind, zi as McpAppResourceFetchError, Ie as McpResourceKind, et as OAuthResourceKind, sr as PATH_SEPARATOR_REGEXP, Zt as PROMPT_CONTENT_MAX_LENGTH, Qt as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, $t as PROMPT_DESCRIPTION_MAX_LENGTH, en as PROMPT_NAME_MAX_LENGTH, Ce as PUBLIC_SKILL_BUCKET, tn as PromptFieldError, ie as PromptSource, cr as RESERVED_MARKER_NAME, wn 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, _n as SkillEditorLoadState, xn as SkillPreviewErrorKind, De as SkillSource, tt as TOOLSET_REDIRECT_STATE_KEY, nt as ToolsetAuthStatus, rt as ToolsetAuthTypes, it as ToolsetCredentialsLevel, bt as ToolsetLoginOutcomeType, at as ToolsetOAuthCallbackQuery, ot as ToolsetOAuthChannelControlType, st as ToolsetOAuthFailureReason, ct as ToolsetOAuthInitiationResultType, lt as ToolsetOAuthResultType, lr as UPLOAD_CONCURRENCY, ln as UnsupportedTriggerReason, ut as WithLogin, ai as annotationToDisplayAttachment, Ur as annotationToPdfCanvasContent, un as apSchedulerDayToJsDay, U as appendLocaleCode, oi as attachmentDtoToDisplayAttachment, si as attachmentDtosToDisplayAttachments, zn as attachmentToDto, Bn as attachmentsToDtos, W as buildAdditionalLocaleOptions, Et as buildAnnouncementSignature, Le as buildApplicationMcpUrl, M as buildChatCompletionsUrl, Re as buildConnectApi, N as buildDeploymentConnectApi, ki as buildExternalServiceScopeId, jr as buildFromCache, Jt as buildPromptExportEnvelope, Yt as buildPromptExportFileName, oe as buildPromptOverview, nn as buildPromptPath, P as buildResponsesUrl, pr as buildSharedItemVirtualPath, ke as buildSkillContentTree, pe as buildSkillFilesPayload, me as buildSkillManifest, he as buildSkillManifestForSubmit, ge as buildSkillManifestFromFrontmatter, Ae as buildSkillOverview, ht as buildToolsetAuthorizeUrl, ze as buildToolsetMcpUrl, Wr as clearAttachmentCache, G as composeLocalePayload, jt as createChatStreamApi, i as createCsrfMiddleware, Lt as createDeploymentChangedMessage, Br as createFilesApiClient, Bi as createMcpAppsApiClient, Vn as createMessagePair, A as createPublishApiClient, a as createUnauthorizedMiddleware, Vr as createUploadFileWithProgress, B as decodeToolsetId, K as decomposeLocalizedFields, fr as deriveActionProfile, We as deriveAvailableTabIds, En as deriveConversationRowActionState, Ge as deriveFavoriteItems, mr as dialCorePathToRelative, ci as dialFileToAttachment, li as dialFilesToAttachments, ui as dialFolderPathToAttachment, p as downloadAttachment, dt as emitToolsetLoginSuccess, F as encodeDeploymentId, V as encodeToolsetId, Mr as fetchByTab, Nr as fetchForSearch, Ke as filterCatalogItemsBySelector, qe as filterHiddenOwnedItems, I as findDeploymentByIdOrReference, hr as findDialFileByPath, Pr as findFirstSuccessfulCopyMoveItem, gr as findFolderByVirtualPath, Nt as formatAppVersion, Y as formatCalendarDate, S as formatDateYM, C as formatDateYMD, _r as formatOperationFolderName, k as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, Ti as getBrowserTimezone, Kn as getConversationPath, An as getConversationSource, Ai as getExternalServiceFallbackName, Rt as getLastDeploymentId, zt as getLastUserMessageToolConfiguration, Ft as getModelIdFromConversationId, Er as getParentFolderPath, Wt as getQuickAppConversationStarters, rn as getRemainingCharacters, Wn as getStarterConversationText, Gt as getStarterPopulateText, Gn as getStarterSubmitText, Kt as getStartersFromSchema, It as getTimeOfDayGreeting, pt as getToolsetOAuthChannelName, gt as getToolsetRedirectUri, ni as getUrlFileName, vr as getVirtualPathName, Hn as hasActiveToolConfig, Dt as hasAnnouncementContent, Gr as hasAttachmentTextSource, yr as hasDialFileWritePermission, br as hasForbiddenNameSymbols, Ot as hasStructuredAnnouncement, o as includesIgnoreCase, _t as initiateOAuthLogin, Xn as isAwaitingGenerationResume, r as isConversationNotFoundError, xr as isCopyMoveDuplicateAllowed, Ci as isCustomAppSchema, g as isDialFileAcceptType, u as isDialFileId, m as isDownloadableAttachment, ri as isExternalSourcePreviewable, Un as isMessageChanged, Bt as isMessageStreaming, se as isOrganisationPromptItem, H as isPublicToolsetId, wi as isQuickAppSchema, Sr as isShareActionsAllowed, Ei as isValidAbsoluteUrl, Di as isValidFeaturesData, _e as isValidSkillRelativePath, dn as jsDayToApSchedulerDay, Fr as mapCorePermissions, Z as mapDeploymentDetailsDtoToEntityDetails, R as mapDeploymentLimitsDtoToCatalogLimits, z as mapDeploymentLimitsToInput, ee as mapDeploymentToCatalogItem, te as mapDeploymentToolsetCredentials, Q as mapEntityDetailsToCatalogDetails, Ir as mapFileMetadataToDialFile, fn as mapFormValuesToCreateBody, pn as mapFormValuesToUpdateBody, ce as mapPromptToCatalogItem, Ve as mapPublishConversationResultDto, He as mapPublishHistoryEntryDto, mn as mapScheduledTaskDtoToFormValues, Lr as mapSearchItem, je as mapSkillToCatalogItem, $ as mapToolsetCredentials, ne as mapToolsetToCatalogItem, Rr as mergeCreatedFolderIntoCache, Vt as messageHasStages, _ as mimeTypesToAttachmentExtensionLabels, v as mimeTypesToDialFileAcceptTypes, y as mimeTypesToFileAccept, ve as nameFromPath, vt as navigateToolsetOAuthPopup, Ht as normalizeResponseFormat, ye as normalizeSkillName, Cr as normalizeVirtualPath, Hr as openAnnotationAttachment, yt as openToolsetOAuthPopup, X as padTwoDigits, ji as parseExternalServiceUrl, Oi as parseFeaturesData, wr as parseNewFolderVirtualPath, ae as parsePromptResourceUrl, be as parseSkillManifest, Qe as parseSkillManifestDocument, Oe as parseSkillResourceUrl, kr as prepareCopyItems, fi as prepareDownloadDestination, Ar as prepareMoveRenameItems, Me as readSkillFileBytes, Ne as readSkillManifest, Je as reconcileFilterTopics, Kr as referenceAttachmentToPdfCanvasContent, Xe as resolveCatalogPrimaryAction, qr as resolveCodeCanvasContent, re as resolveDeploymentFolder, Dr as resolveDialFileApiPath, d as resolveDialFileBucketAndPath, ii as resolveExternalSourceContentType, Jr as resolveHtmlCanvasContent, Yr as resolveImageCanvasContent, Xr as resolveJsonCanvasContent, q as resolveLocalizedText, Zr as resolveMarkdownCanvasContent, Be as resolveMcpResourceKind, Qr as resolveOoxmlCanvasContent, Tr as resolveOwnerCoords, $r as resolvePdfCanvasContent, f as resolveRelativeDialFilePath, Pe as resolveSkillFileDownloadPath, Fe as resolveSkillManifestFileId, ei as resolveTextCanvasContent, ti as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, kt as sanitizeAnnouncementHtml, At as sanitizeAnnouncementMessageHtml, pi as sanitizeFileName, Pt as sanitizeFooterHtml, Xt as serializePromptExport, Mt as shouldWatchForDisplayNameUpdate, xe as skillFileBytesToBlob, gn as skillFileToAttachment, mi as splitFileNameExtension, l as stripSurroundingSlashes, ft as subscribeToolsetLoginSuccess, J as toBaseLocale, Ut as toOverlayMessages, Ue as toPublishEntityType, j as toPublishRuleDto, hi as trimFileNameToByteLimit, Se as unpackSkillArchive, zr as updateEntry, Dn as useActiveConversationSync, On as useAsyncConfirmDialog, h as useAttachmentAction, Nn as useAttachmentUpload, x as useAttachmentValidation, Ze as useCatalogEditNavigation, $e as useCatalogItemDetails, St as useCatalogToolsetCredentials, Mi as useChatSettingsFormConfig, Rn as useConversationExport, qn as useConversationHandlers, Jn as useConversationImport, kn as useConversationLookupMaps, jn as useConversationPanelItems, Yn as useConversationScroll, Qn as useConversationSources, Zn as useConversationStream, gi as useDialFileListing, xi as useDialFileManager, Si as useDialFileManagerTabConfig, _i as useDialFileMetadata, vi as useDialFileMutations, yi as useDialFileSharing, bi as useDialFileUploadBatch, wt as useFavoriteEntitiesState, Gi as useGridEditingScroll, Mn as useImportFilePicker, Ui as useMcpAppHostAdapter, Hi as useMcpAppHostContext, Vi as useMcpAppTools, qt as useOAuthCallbackCompletion, Wi as useOpenMcpAppCanvas, Ni as usePageFileDrag, Fi as usePanelMaxWidth, cn as usePromptsState, Tt as usePublishFolders, Ii as useShareLink, Tn as useShareRecipientsCount, vn as useSkillEditorLoad, yn as useSkillEditorSubmit, bn as useSkillFileActions, Sn as useSkillFilePreview, Cn as useSkillsState, Li as useToolsMenu, xt as useToolsetLogin, In as useTranscribeAudio, Ri as useUsageData, Pi as useViewportWidth, an as validatePromptContent, on as validatePromptDescription, sn as validatePromptName, hn as validateSkillFileBatch, Or as virtualPathToApiPath, mt as waitForToolsetOAuthResult };
30
+ import { getPublicCatalogEntityFolderPath as Ve, isPublicCatalogEntityId as He, mapPublishConversationResultDto as Ue, mapPublishHistoryEntryDto as We, toPublishEntityType as Ge } from "./catalog/publish.js";
31
+ import { deriveAvailableTabIds as Ke, deriveFavoriteItems as qe, filterCatalogItemsBySelector as Je, filterHiddenOwnedItems as Ye, reconcileFilterTopics as Xe } from "./catalog/catalog-derivations.js";
32
+ import { CatalogPrimaryActionType as Ze, resolveCatalogPrimaryAction as Qe } from "./catalog/catalog-primary-action.js";
33
+ import { useCatalogEditNavigation as $e } from "./catalog/useCatalogEditNavigation/useCatalogEditNavigation.js";
34
+ import { parseSkillManifestDocument as et } from "./skill/skill-manifest.js";
35
+ import { fetchSkillDescription as tt, useSkillItemDetails as nt } from "./catalog/useSkillItemDetails.js";
36
+ import { useCatalogItemDetails as rt } from "./catalog/useCatalogItemDetails.js";
37
+ import { OAuthResourceKind as it, TOOLSET_REDIRECT_STATE_KEY as at, ToolsetAuthStatus as ot, ToolsetAuthTypes as st, ToolsetCredentialsLevel as ct, ToolsetOAuthCallbackQuery as lt, ToolsetOAuthChannelControlType as ut, ToolsetOAuthFailureReason as dt, ToolsetOAuthInitiationResultType as ft, ToolsetOAuthResultType as pt, WithLogin as mt } from "./oauth/types.js";
38
+ import { emitToolsetLoginSuccess as ht, subscribeToolsetLoginSuccess as gt } from "./shared/toolset-login-events.js";
39
+ import { getToolsetOAuthChannelName as _t, waitForToolsetOAuthResult as vt } from "./oauth/handshake.js";
40
+ import { buildToolsetAuthorizeUrl as yt, getToolsetRedirectUri as bt } from "./oauth/authorize-url.js";
41
+ import { initiateOAuthLogin as xt, navigateToolsetOAuthPopup as St, openToolsetOAuthPopup as Ct } from "./oauth/popup.js";
42
+ import { ToolsetLoginOutcomeType as wt, useToolsetLogin as Tt } from "./oauth/useToolsetLogin/useToolsetLogin.js";
43
+ import { useCatalogToolsetCredentials as Et } from "./catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js";
44
+ import { useSkillDetailsPanelData as Dt } from "./catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.js";
45
+ import { FavoriteEntityType as Ot, useFavoriteEntitiesState as kt } from "./catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js";
46
+ import { usePublishFolders as At } from "./catalog/usePublishFolders/usePublishFolders.js";
47
+ import { buildAnnouncementSignature as jt, hasAnnouncementContent as Mt, hasStructuredAnnouncement as Nt, sanitizeAnnouncementHtml as Pt, sanitizeAnnouncementMessageHtml as Ft } from "./conversation/announcement-message.js";
48
+ import { createChatStreamApi as It } from "./conversation/create-chat-stream-api.js";
49
+ import { shouldWatchForDisplayNameUpdate as Lt } from "./conversation/display-name-watch.js";
50
+ import { formatAppVersion as Rt, sanitizeFooterHtml as zt } from "./conversation/footer-message.js";
51
+ import { getModelIdFromConversationId as Bt } from "./conversation/get-model-id-from-conversation-id.js";
52
+ import { getTimeOfDayGreeting as Vt } from "./conversation/greeting.js";
53
+ import { createDeploymentChangedMessage as Ht } from "./conversation/message-factory.js";
54
+ import { getLastDeploymentId as Ut, getLastUserMessageToolConfiguration as Wt, isMessageStreaming as Gt, messageHasStages as Kt, normalizeResponseFormat as qt } from "./conversation/message-utils.js";
55
+ import { toOverlayMessages as Jt } from "./conversation/overlay-messages.js";
56
+ import { getQuickAppConversationStarters as Yt } from "./conversation/quick-app-conversation-starters.js";
57
+ import { getStarterPopulateText as Xt, getStartersFromSchema as Zt } from "./conversation/starter-option.js";
58
+ import { useOAuthCallbackCompletion as Qt } from "./oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js";
59
+ import { buildPromptExportEnvelope as $t, buildPromptExportFileName as en, serializePromptExport as tn } from "./prompt/export-prompt.js";
60
+ import { PROMPT_CONTENT_MAX_LENGTH as nn, PROMPT_COUNTER_ANNOUNCE_THRESHOLD as rn, PROMPT_DESCRIPTION_MAX_LENGTH as an, PROMPT_NAME_MAX_LENGTH as on, PromptFieldError as sn, buildPromptPath as cn, getRemainingCharacters as ln, validatePromptContent as un, validatePromptDescription as dn, validatePromptName as fn } from "./prompt/prompt.js";
61
+ import { usePromptsState as pn } from "./prompt/usePromptsState/usePromptsState.js";
62
+ import { UnsupportedTriggerReason as mn } from "./scheduled-task/scheduled-task-mapping.js";
63
+ import { apSchedulerDayToJsDay as hn, jsDayToApSchedulerDay as gn } from "./shared/cron-weekday.js";
64
+ import { mapFormValuesToCreateBody as _n, mapFormValuesToUpdateBody as vn, mapScheduledTaskDtoToFormValues as yn } from "./scheduled-task/scheduled-task-trigger.js";
65
+ import { validateSkillFileBatch as bn } from "./skill/skill-file-batch-validation.js";
66
+ import { skillFileToAttachment as xn } from "./skill/skill-file-preview.js";
67
+ import { SkillEditorLoadState as Sn, useSkillEditorLoad as Cn } from "./skill/useSkillEditorLoad.js";
68
+ import { useSkillEditorSubmit as wn } from "./skill/useSkillEditorSubmit.js";
69
+ import { useSkillFileActions as Tn } from "./skill/useSkillFileActions.js";
70
+ import { SkillPreviewErrorKind as En, useSkillFilePreview as Dn } from "./skill/useSkillFilePreview.js";
71
+ import { useSkillsState as On } from "./skill/useSkillsState/useSkillsState.js";
72
+ import { RecipientsCountStatus as kn, useShareRecipientsCount as An } from "./useShareRecipientsCount/useShareRecipientsCount.js";
73
+ import { deriveConversationRowActionState as jn } from "./conversation/deriveConversationRowActionState/deriveConversationRowActionState.js";
74
+ import { useActiveConversationSync as Mn } from "./conversation/useActiveConversationSync/useActiveConversationSync.js";
75
+ import { useAsyncConfirmDialog as Nn } from "./conversation/useAsyncConfirmDialog/useAsyncConfirmDialog.js";
76
+ import { useConversationLookupMaps as Pn } from "./conversation/useConversationLookupMaps/useConversationLookupMaps.js";
77
+ import { getConversationSource as Fn, useConversationPanelItems as In } from "./conversation/useConversationPanelItems/useConversationPanelItems.js";
78
+ import { useImportFilePicker as Ln } from "./conversation/useImportFilePicker/useImportFilePicker.js";
79
+ import { useAttachmentUpload as Rn } from "./conversation/useAttachmentUpload/useAttachmentUpload.js";
80
+ import { AudioTranscriptionError as zn, AudioTranscriptionErrorReason as Bn } from "./conversation/useTranscribeAudio/audio-transcription-error.js";
81
+ import { useTranscribeAudio as Vn } from "./conversation/useTranscribeAudio/useTranscribeAudio.js";
82
+ import { DEFAULT_MAX_ARCHIVE_BYTES as Hn, useConversationExport as Un } from "./conversation/useConversationExport/useConversationExport.js";
83
+ import { attachmentToDto as Wn, attachmentsToDtos as Gn } from "./conversation/useConversationHandlers/attachment-to-dto.js";
84
+ import { createMessagePair as Kn } from "./conversation/useConversationHandlers/message-factory.js";
85
+ import { hasActiveToolConfig as qn, isMessageChanged as Jn } from "./conversation/useConversationHandlers/message-utils.js";
86
+ import { getStarterConversationText as Yn, getStarterSubmitText as Xn } from "./conversation/useConversationHandlers/starter-option.js";
87
+ import { getConversationPath as Zn } from "./conversation/useConversationStream/conversation-path.js";
88
+ import { useConversationHandlers as Qn } from "./conversation/useConversationHandlers/useConversationHandlers.js";
89
+ import { useConversationImport as $n } from "./conversation/useConversationImport/useConversationImport.js";
90
+ import { useConversationScroll as er } from "./conversation/useConversationScroll/useConversationScroll.js";
91
+ import { isAwaitingGenerationResume as tr } from "./conversation/useConversationStream/generation-resume.js";
92
+ import { useConversationStream as nr } from "./conversation/useConversationStream/useConversationStream.js";
93
+ import { useConversationSources as rr } from "./conversation-sources/useConversationSources/useConversationSources.js";
94
+ import { DialFilesApiUploadMode as ir } from "./files/dial-files-api.js";
95
+ import { FileManagerNotificationReason as ar, FileNameValidationErrorReason as or, FileOperationKind as sr } from "./files/dial-file-manager.types.js";
96
+ import { COLUMNS_WITHOUT_AUTHOR as cr, COLUMNS_WITH_AUTHOR as lr, CORE_PERMISSION_MAP as ur, DATE_OPTIONS as dr, PATH_SEPARATOR_REGEXP as fr, RESERVED_MARKER_NAME as pr, UPLOAD_CONCURRENCY as mr } from "./files/dial-file-manager.model.js";
97
+ import { DialFileManagerActionProfile as hr, DialFileManagerVariant as gr, deriveActionProfile as _r } from "./files/file-manager-variant.js";
98
+ import { buildSharedItemVirtualPath as vr, dialCorePathToRelative as yr, findDialFileByPath as br, findFolderByVirtualPath as xr, formatOperationFolderName as Sr, getVirtualPathName as Cr, hasDialFileWritePermission as wr, hasForbiddenNameSymbols as Tr, isCopyMoveDuplicateAllowed as Er, isShareActionsAllowed as Dr, normalizeVirtualPath as Or, parseNewFolderVirtualPath as kr, resolveOwnerCoords as Ar } from "./files/dial-file-manager-path.util.js";
99
+ import { getParentFolderPath as jr, resolveDialFileApiPath as Mr, virtualPathToApiPath as Nr } from "./files/resolve-dial-file-api-path.js";
100
+ import { prepareCopyItems as Pr, prepareMoveRenameItems as Fr } from "./files/dial-file-manager-copy-move.util.js";
101
+ import { buildFromCache as Ir, fetchByTab as Lr, fetchForSearch as Rr, findFirstSuccessfulCopyMoveItem as zr, mapCorePermissions as Br, mapFileMetadataToDialFile as Vr, mapSearchItem as Hr, mergeCreatedFolderIntoCache as Ur, updateEntry as Wr } from "./files/dial-file-manager-mapping.util.js";
102
+ import { createFilesApiClient as Gr } from "./files/create-files-api.js";
103
+ import { createUploadFileWithProgress as Kr } from "./files/create-upload-file-with-progress.js";
104
+ import { openAnnotationAttachment as qr } from "./files/annotation.js";
105
+ import { annotationToPdfCanvasContent as Jr, clearAttachmentCache as Yr, hasAttachmentTextSource as Xr, referenceAttachmentToPdfCanvasContent as Zr, resolveCodeCanvasContent as Qr, resolveHtmlCanvasContent as $r, resolveImageCanvasContent as ei, resolveJsonCanvasContent as ti, resolveMarkdownCanvasContent as ni, resolveOoxmlCanvasContent as ri, resolvePdfCanvasContent as ii, resolveTextCanvasContent as ai, resolveVisualizerCanvasContent as oi } from "./files/attachment-canvas.js";
106
+ import { getUrlFileName as si, isExternalSourcePreviewable as ci, resolveExternalSourceContentType as li } from "./files/source-content.js";
107
+ import { annotationToDisplayAttachment as ui, attachmentDtoToDisplayAttachment as di, attachmentDtosToDisplayAttachments as fi } from "./files/attachment-dto-to-display.js";
108
+ import { dialFileToAttachment as pi, dialFilesToAttachments as mi, dialFolderPathToAttachment as hi } from "./files/dial-file-to-attachment.js";
109
+ import { DownloadDestinationType as gi } from "./files/download-destination.js";
110
+ import { prepareDownloadDestination as _i } from "./files/prepare-download-destination.js";
111
+ import { sanitizeFileName as vi, splitFileNameExtension as yi, trimFileNameToByteLimit as bi } from "./files/file-name.js";
112
+ import { useDialFileListing as xi } from "./files/useDialFileListing/useDialFileListing.js";
113
+ import { useDialFileMetadata as Si } from "./files/useDialFileMetadata/useDialFileMetadata.js";
114
+ import { useDialFileMutations as Ci } from "./files/useDialFileMutations/useDialFileMutations.js";
115
+ import { useDialFileSharing as wi } from "./files/useDialFileSharing/useDialFileSharing.js";
116
+ import { useDialFileUploadBatch as Ti } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
117
+ import { useDialFileManager as Ei } from "./files/useDialFileManager/useDialFileManager.js";
118
+ import { useDialFileManagerTabConfig as Di } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
119
+ import { isCustomAppSchema as Oi, isQuickAppSchema as ki } from "./shared/application-schema.js";
120
+ import { getBrowserTimezone as Ai } from "./shared/browser-timezone.js";
121
+ import { isValidAbsoluteUrl as ji, isValidFeaturesData as Mi, parseFeaturesData as Ni } from "./shared/custom-apps.js";
122
+ import { buildExternalServiceScopeId as Pi, getExternalServiceFallbackName as Fi, parseExternalServiceUrl as Ii } from "./shared/external-services.js";
123
+ import { useChatSettingsFormConfig as Li } from "./useChatSettingsFormConfig/useChatSettingsFormConfig.js";
124
+ import { usePageFileDrag as Ri } from "./usePageFileDrag/usePageFileDrag.js";
125
+ import { useViewportWidth as zi } from "./useViewportWidth/useViewportWidth.js";
126
+ import { usePanelMaxWidth as Bi } from "./usePanelMaxWidth/usePanelMaxWidth.js";
127
+ import { useShareLink as Vi } from "./useShareLink/useShareLink.js";
128
+ import { useToolsMenu as Hi } from "./useToolsMenu/useToolsMenu.js";
129
+ import { useUsageData as Ui } from "./usage/useUsageData/useUsageData.js";
130
+ import { McpAppResourceFetchError as Wi, createMcpAppsApiClient as Gi } from "./mcp-apps/mcp-apps-api-client.js";
131
+ import { useMcpAppTools as Ki } from "./mcp-apps/useMcpAppTools/useMcpAppTools.js";
132
+ import { useMcpAppHostContext as qi } from "./mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js";
133
+ import { useMcpAppHostAdapter as Ji } from "./mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.js";
134
+ import { useOpenMcpAppCanvas as Yi } from "./mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.js";
135
+ import { useGridEditingScroll as Xi } from "@epam/ai-dial-chat-shared";
136
+ export { b as AttachmentValidationErrorReason, zn as AudioTranscriptionError, Bn as AudioTranscriptionErrorReason, L as AuthenticationType, cr as COLUMNS_WITHOUT_AUTHOR, lr as COLUMNS_WITH_AUTHOR, ur as CORE_PERMISSION_MAP, Ze as CatalogPrimaryActionType, w as ConversationExportMode, T as ConversationTransferErrorCode, E as ConversationTransferWarningCode, dr as DATE_OPTIONS, Hn as DEFAULT_MAX_ARCHIVE_BYTES, hr as DialFileManagerActionProfile, gr as DialFileManagerVariant, ir as DialFilesApiUploadMode, gi as DownloadDestinationType, O as EXPORT_APP_NAME, D as ExportFileNameKind, Ot as FavoriteEntityType, ar as FileManagerNotificationReason, or as FileNameValidationErrorReason, sr as FileOperationKind, Wi as McpAppResourceFetchError, Ie as McpResourceKind, it as OAuthResourceKind, fr as PATH_SEPARATOR_REGEXP, nn as PROMPT_CONTENT_MAX_LENGTH, rn as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, an as PROMPT_DESCRIPTION_MAX_LENGTH, on as PROMPT_NAME_MAX_LENGTH, Ce as PUBLIC_SKILL_BUCKET, sn as PromptFieldError, ie as PromptSource, pr as RESERVED_MARKER_NAME, kn 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, Sn as SkillEditorLoadState, En 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, mr as UPLOAD_CONCURRENCY, mn as UnsupportedTriggerReason, mt as WithLogin, ui as annotationToDisplayAttachment, Jr as annotationToPdfCanvasContent, hn as apSchedulerDayToJsDay, U as appendLocaleCode, di as attachmentDtoToDisplayAttachment, fi as attachmentDtosToDisplayAttachments, Wn as attachmentToDto, Gn as attachmentsToDtos, W as buildAdditionalLocaleOptions, jt as buildAnnouncementSignature, Le as buildApplicationMcpUrl, M as buildChatCompletionsUrl, Re as buildConnectApi, N as buildDeploymentConnectApi, Pi as buildExternalServiceScopeId, Ir as buildFromCache, $t as buildPromptExportEnvelope, en as buildPromptExportFileName, oe as buildPromptOverview, cn as buildPromptPath, P as buildResponsesUrl, vr 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, Yr as clearAttachmentCache, G as composeLocalePayload, It as createChatStreamApi, i as createCsrfMiddleware, Ht as createDeploymentChangedMessage, Gr as createFilesApiClient, Gi as createMcpAppsApiClient, Kn as createMessagePair, A as createPublishApiClient, a as createUnauthorizedMiddleware, Kr as createUploadFileWithProgress, B as decodeToolsetId, K as decomposeLocalizedFields, _r as deriveActionProfile, Ke as deriveAvailableTabIds, jn as deriveConversationRowActionState, qe as deriveFavoriteItems, yr as dialCorePathToRelative, pi as dialFileToAttachment, mi as dialFilesToAttachments, hi as dialFolderPathToAttachment, p as downloadAttachment, ht as emitToolsetLoginSuccess, F as encodeDeploymentId, V as encodeToolsetId, Lr as fetchByTab, Rr as fetchForSearch, tt as fetchSkillDescription, Je as filterCatalogItemsBySelector, Ye as filterHiddenOwnedItems, I as findDeploymentByIdOrReference, br as findDialFileByPath, zr as findFirstSuccessfulCopyMoveItem, xr as findFolderByVirtualPath, Rt as formatAppVersion, Y as formatCalendarDate, S as formatDateYM, C as formatDateYMD, Sr as formatOperationFolderName, k as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, Ai as getBrowserTimezone, Zn as getConversationPath, Fn as getConversationSource, Fi as getExternalServiceFallbackName, Ut as getLastDeploymentId, Wt as getLastUserMessageToolConfiguration, Bt as getModelIdFromConversationId, jr as getParentFolderPath, Ve as getPublicCatalogEntityFolderPath, Yt as getQuickAppConversationStarters, ln as getRemainingCharacters, Yn as getStarterConversationText, Xt as getStarterPopulateText, Xn as getStarterSubmitText, Zt as getStartersFromSchema, Vt as getTimeOfDayGreeting, _t as getToolsetOAuthChannelName, bt as getToolsetRedirectUri, si as getUrlFileName, Cr as getVirtualPathName, qn as hasActiveToolConfig, Mt as hasAnnouncementContent, Xr as hasAttachmentTextSource, wr as hasDialFileWritePermission, Tr as hasForbiddenNameSymbols, Nt as hasStructuredAnnouncement, o as includesIgnoreCase, xt as initiateOAuthLogin, tr as isAwaitingGenerationResume, r as isConversationNotFoundError, Er as isCopyMoveDuplicateAllowed, Oi as isCustomAppSchema, g as isDialFileAcceptType, u as isDialFileId, m as isDownloadableAttachment, ci as isExternalSourcePreviewable, Jn as isMessageChanged, Gt as isMessageStreaming, se as isOrganisationPromptItem, He as isPublicCatalogEntityId, H as isPublicToolsetId, ki as isQuickAppSchema, Dr as isShareActionsAllowed, ji as isValidAbsoluteUrl, Mi as isValidFeaturesData, _e as isValidSkillRelativePath, gn as jsDayToApSchedulerDay, Br as mapCorePermissions, Z as mapDeploymentDetailsDtoToEntityDetails, R as mapDeploymentLimitsDtoToCatalogLimits, z as mapDeploymentLimitsToInput, ee as mapDeploymentToCatalogItem, te as mapDeploymentToolsetCredentials, Q as mapEntityDetailsToCatalogDetails, Vr as mapFileMetadataToDialFile, _n as mapFormValuesToCreateBody, vn as mapFormValuesToUpdateBody, ce as mapPromptToCatalogItem, Ue as mapPublishConversationResultDto, We as mapPublishHistoryEntryDto, yn as mapScheduledTaskDtoToFormValues, Hr as mapSearchItem, je as mapSkillToCatalogItem, $ as mapToolsetCredentials, ne as mapToolsetToCatalogItem, Ur as mergeCreatedFolderIntoCache, Kt as messageHasStages, _ as mimeTypesToAttachmentExtensionLabels, v as mimeTypesToDialFileAcceptTypes, y as mimeTypesToFileAccept, ve as nameFromPath, St as navigateToolsetOAuthPopup, qt as normalizeResponseFormat, ye as normalizeSkillName, Or as normalizeVirtualPath, qr as openAnnotationAttachment, Ct as openToolsetOAuthPopup, X as padTwoDigits, Ii as parseExternalServiceUrl, Ni as parseFeaturesData, kr as parseNewFolderVirtualPath, ae as parsePromptResourceUrl, be as parseSkillManifest, et as parseSkillManifestDocument, Oe as parseSkillResourceUrl, Pr as prepareCopyItems, _i as prepareDownloadDestination, Fr as prepareMoveRenameItems, Me as readSkillFileBytes, Ne as readSkillManifest, Xe as reconcileFilterTopics, Zr as referenceAttachmentToPdfCanvasContent, Qe as resolveCatalogPrimaryAction, Qr as resolveCodeCanvasContent, re as resolveDeploymentFolder, Mr as resolveDialFileApiPath, d as resolveDialFileBucketAndPath, li as resolveExternalSourceContentType, $r as resolveHtmlCanvasContent, ei as resolveImageCanvasContent, ti as resolveJsonCanvasContent, q as resolveLocalizedText, ni as resolveMarkdownCanvasContent, Be as resolveMcpResourceKind, ri as resolveOoxmlCanvasContent, Ar as resolveOwnerCoords, ii as resolvePdfCanvasContent, f as resolveRelativeDialFilePath, Pe as resolveSkillFileDownloadPath, Fe as resolveSkillManifestFileId, ai as resolveTextCanvasContent, oi as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, Pt as sanitizeAnnouncementHtml, Ft as sanitizeAnnouncementMessageHtml, vi as sanitizeFileName, zt as sanitizeFooterHtml, tn as serializePromptExport, Lt as shouldWatchForDisplayNameUpdate, xe as skillFileBytesToBlob, xn as skillFileToAttachment, yi as splitFileNameExtension, l as stripSurroundingSlashes, gt as subscribeToolsetLoginSuccess, J as toBaseLocale, Jt as toOverlayMessages, Ge as toPublishEntityType, j as toPublishRuleDto, bi as trimFileNameToByteLimit, Se as unpackSkillArchive, Wr as updateEntry, Mn as useActiveConversationSync, Nn as useAsyncConfirmDialog, h as useAttachmentAction, Rn as useAttachmentUpload, x as useAttachmentValidation, $e as useCatalogEditNavigation, rt as useCatalogItemDetails, Et as useCatalogToolsetCredentials, Li as useChatSettingsFormConfig, Un as useConversationExport, Qn as useConversationHandlers, $n as useConversationImport, Pn as useConversationLookupMaps, In as useConversationPanelItems, er as useConversationScroll, rr as useConversationSources, nr as useConversationStream, xi as useDialFileListing, Ei as useDialFileManager, Di as useDialFileManagerTabConfig, Si as useDialFileMetadata, Ci as useDialFileMutations, wi as useDialFileSharing, Ti as useDialFileUploadBatch, kt as useFavoriteEntitiesState, Xi as useGridEditingScroll, Ln as useImportFilePicker, Ji as useMcpAppHostAdapter, qi as useMcpAppHostContext, Ki as useMcpAppTools, Qt as useOAuthCallbackCompletion, Yi as useOpenMcpAppCanvas, Ri as usePageFileDrag, Bi as usePanelMaxWidth, pn as usePromptsState, At as usePublishFolders, Vi as useShareLink, An as useShareRecipientsCount, Dt as useSkillDetailsPanelData, Cn as useSkillEditorLoad, wn as useSkillEditorSubmit, Tn as useSkillFileActions, Dn as useSkillFilePreview, nt as useSkillItemDetails, On as useSkillsState, Hi as useToolsMenu, Tt as useToolsetLogin, Vn as useTranscribeAudio, Ui as useUsageData, zi as useViewportWidth, un as validatePromptContent, dn as validatePromptDescription, fn as validatePromptName, bn as validateSkillFileBatch, Nr 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.430",
4
+ "version": "1.1.0-dev.432",
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.430",
108
- "@epam/ai-dial-attachment-input": "1.1.0-dev.430",
109
- "@epam/ai-dial-catalog": "1.1.0-dev.430",
110
- "@epam/ai-dial-chat-api-client": "1.1.0-dev.430",
111
- "@epam/ai-dial-chat-overlay": "1.1.0-dev.430",
112
- "@epam/ai-dial-chat-shared": "1.1.0-dev.430",
113
- "@epam/ai-dial-deployment-creation-form": "1.1.0-dev.430",
114
- "@epam/ai-dial-mcp-apps": "1.1.0-dev.430",
115
- "@epam/ai-dial-publish-panel": "1.1.0-dev.430",
116
- "@epam/ai-dial-quotations": "1.1.0-dev.430",
107
+ "@epam/ai-dial-attachment-canvas": "1.1.0-dev.432",
108
+ "@epam/ai-dial-attachment-input": "1.1.0-dev.432",
109
+ "@epam/ai-dial-catalog": "1.1.0-dev.432",
110
+ "@epam/ai-dial-chat-api-client": "1.1.0-dev.432",
111
+ "@epam/ai-dial-chat-overlay": "1.1.0-dev.432",
112
+ "@epam/ai-dial-chat-shared": "1.1.0-dev.432",
113
+ "@epam/ai-dial-deployment-creation-form": "1.1.0-dev.432",
114
+ "@epam/ai-dial-mcp-apps": "1.1.0-dev.432",
115
+ "@epam/ai-dial-publish-panel": "1.1.0-dev.432",
116
+ "@epam/ai-dial-quotations": "1.1.0-dev.432",
117
117
  "@epam/ai-dial-react-file-manager": "*",
118
- "@epam/ai-dial-scheduled-tasks": "1.1.0-dev.430",
119
- "@epam/ai-dial-share": "1.1.0-dev.430",
120
- "@epam/ai-dial-skill-editor": "1.1.0-dev.430",
121
- "@epam/ai-dial-source-panel": "1.1.0-dev.430",
118
+ "@epam/ai-dial-scheduled-tasks": "1.1.0-dev.432",
119
+ "@epam/ai-dial-share": "1.1.0-dev.432",
120
+ "@epam/ai-dial-skill-editor": "1.1.0-dev.432",
121
+ "@epam/ai-dial-source-panel": "1.1.0-dev.432",
122
122
  "@epam/ai-dial-ui-kit": "*",
123
123
  "@modelcontextprotocol/sdk": "^1.27.1",
124
124
  "@epam/pdf-highlighter-kit": ">=0.0.14",