@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.
- package/catalog/publish.js +11 -10
- package/catalog/useCatalogItemDetails.js +31 -72
- package/catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.js +59 -0
- package/catalog/useSkillItemDetails.js +72 -0
- package/catalog.d.ts +136 -12
- package/catalog.js +12 -10
- package/index.d.ts +136 -12
- package/index.js +107 -105
- package/package.json +15 -15
package/catalog/publish.js
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import {
|
|
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
|
|
4
|
-
[
|
|
5
|
-
[
|
|
6
|
-
[
|
|
7
|
-
[
|
|
8
|
-
[
|
|
9
|
-
}, n = (e) => t[
|
|
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
|
-
}),
|
|
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 {
|
|
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 {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
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
|
|
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
|
-
},
|
|
19
|
-
let
|
|
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:
|
|
22
|
-
if (
|
|
23
|
-
let e = await
|
|
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,
|
|
27
|
+
overview: o(e, _)
|
|
27
28
|
};
|
|
28
29
|
} catch {
|
|
29
30
|
return;
|
|
30
31
|
}
|
|
31
|
-
if (
|
|
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 =
|
|
54
|
-
hasChatCompletion:
|
|
55
|
-
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
|
-
...
|
|
59
|
-
api:
|
|
60
|
-
limits: t(
|
|
61
|
-
credentials:
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
T
|
|
49
|
+
m,
|
|
50
|
+
v,
|
|
51
|
+
h,
|
|
52
|
+
_,
|
|
53
|
+
y
|
|
74
54
|
]),
|
|
75
|
-
onLoadContentFile: b
|
|
76
|
-
|
|
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 {
|
|
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 {
|
|
14
|
-
import { deriveAvailableTabIds as
|
|
15
|
-
import { CatalogPrimaryActionType as
|
|
16
|
-
import { useCatalogEditNavigation as
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
|
|
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 {
|
|
31
|
-
import { deriveAvailableTabIds as
|
|
32
|
-
import { CatalogPrimaryActionType as
|
|
33
|
-
import { useCatalogEditNavigation as
|
|
34
|
-
import { parseSkillManifestDocument as
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
import {
|
|
42
|
-
import {
|
|
43
|
-
import {
|
|
44
|
-
import {
|
|
45
|
-
import {
|
|
46
|
-
import {
|
|
47
|
-
import {
|
|
48
|
-
import {
|
|
49
|
-
import {
|
|
50
|
-
import {
|
|
51
|
-
import {
|
|
52
|
-
import {
|
|
53
|
-
import {
|
|
54
|
-
import {
|
|
55
|
-
import {
|
|
56
|
-
import {
|
|
57
|
-
import {
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
60
|
-
import {
|
|
61
|
-
import {
|
|
62
|
-
import {
|
|
63
|
-
import {
|
|
64
|
-
import {
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
67
|
-
import {
|
|
68
|
-
import {
|
|
69
|
-
import {
|
|
70
|
-
import {
|
|
71
|
-
import {
|
|
72
|
-
import {
|
|
73
|
-
import {
|
|
74
|
-
import {
|
|
75
|
-
import {
|
|
76
|
-
import {
|
|
77
|
-
import {
|
|
78
|
-
import {
|
|
79
|
-
import {
|
|
80
|
-
import {
|
|
81
|
-
import {
|
|
82
|
-
import {
|
|
83
|
-
import {
|
|
84
|
-
import {
|
|
85
|
-
import {
|
|
86
|
-
import {
|
|
87
|
-
import {
|
|
88
|
-
import {
|
|
89
|
-
import {
|
|
90
|
-
import {
|
|
91
|
-
import {
|
|
92
|
-
import {
|
|
93
|
-
import {
|
|
94
|
-
import {
|
|
95
|
-
import {
|
|
96
|
-
import {
|
|
97
|
-
import {
|
|
98
|
-
import {
|
|
99
|
-
import {
|
|
100
|
-
import {
|
|
101
|
-
import {
|
|
102
|
-
import {
|
|
103
|
-
import {
|
|
104
|
-
import {
|
|
105
|
-
import {
|
|
106
|
-
import {
|
|
107
|
-
import {
|
|
108
|
-
import {
|
|
109
|
-
import {
|
|
110
|
-
import {
|
|
111
|
-
import {
|
|
112
|
-
import {
|
|
113
|
-
import {
|
|
114
|
-
import {
|
|
115
|
-
import {
|
|
116
|
-
import {
|
|
117
|
-
import {
|
|
118
|
-
import {
|
|
119
|
-
import {
|
|
120
|
-
import {
|
|
121
|
-
import {
|
|
122
|
-
import {
|
|
123
|
-
import {
|
|
124
|
-
import {
|
|
125
|
-
import {
|
|
126
|
-
import {
|
|
127
|
-
import {
|
|
128
|
-
import {
|
|
129
|
-
import {
|
|
130
|
-
import {
|
|
131
|
-
import {
|
|
132
|
-
import {
|
|
133
|
-
import {
|
|
134
|
-
|
|
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.
|
|
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.
|
|
108
|
-
"@epam/ai-dial-attachment-input": "1.1.0-dev.
|
|
109
|
-
"@epam/ai-dial-catalog": "1.1.0-dev.
|
|
110
|
-
"@epam/ai-dial-chat-api-client": "1.1.0-dev.
|
|
111
|
-
"@epam/ai-dial-chat-overlay": "1.1.0-dev.
|
|
112
|
-
"@epam/ai-dial-chat-shared": "1.1.0-dev.
|
|
113
|
-
"@epam/ai-dial-deployment-creation-form": "1.1.0-dev.
|
|
114
|
-
"@epam/ai-dial-mcp-apps": "1.1.0-dev.
|
|
115
|
-
"@epam/ai-dial-publish-panel": "1.1.0-dev.
|
|
116
|
-
"@epam/ai-dial-quotations": "1.1.0-dev.
|
|
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.
|
|
119
|
-
"@epam/ai-dial-share": "1.1.0-dev.
|
|
120
|
-
"@epam/ai-dial-skill-editor": "1.1.0-dev.
|
|
121
|
-
"@epam/ai-dial-source-panel": "1.1.0-dev.
|
|
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",
|