@epam/ai-dial-chat-hooks 1.3.0-dev.288 → 1.3.0-dev.289
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api-error/api-error.d.ts +2 -0
- package/api-error/api-error.d.ts.map +1 -1
- package/api-error/api-error.js +31 -23
- package/catalog/map-skill-to-catalog-item.js +19 -19
- package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.d.ts +2 -4
- package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.d.ts.map +1 -1
- package/catalog/useCatalogEditNavigation/useCatalogEditNavigation.js +94 -112
- package/catalog/useCatalogItemDelete/useCatalogItemDelete.d.ts +41 -0
- package/catalog/useCatalogItemDelete/useCatalogItemDelete.d.ts.map +1 -0
- package/catalog/useCatalogItemDelete/useCatalogItemDelete.js +37 -0
- package/catalog/usePublishFolders/usePublishFolders.d.ts +8 -0
- package/catalog/usePublishFolders/usePublishFolders.d.ts.map +1 -1
- package/catalog/usePublishFolders/usePublishFolders.js +32 -29
- package/catalog.js +11 -10
- package/conversation/conversation-title-stream.d.ts +33 -0
- package/conversation/conversation-title-stream.d.ts.map +1 -0
- package/conversation/conversation-title-stream.js +103 -0
- package/conversation/useConversationExport/useConversationExport.js +46 -46
- package/conversation/useConversationHandlers/useConversationHandlers.js +39 -39
- package/conversation/useConversationStream/useConversationStream.js +93 -93
- package/conversation.js +5 -4
- package/entry-points/catalog.d.ts +1 -0
- package/entry-points/catalog.d.ts.map +1 -1
- package/entry-points/conversation.d.ts +1 -0
- package/entry-points/conversation.d.ts.map +1 -1
- package/files/dial-file-manager-copy-move.util.js +16 -16
- package/files/dial-file-manager-mapping.util.js +17 -17
- package/files/useDialFileListing/useDialFileListing.js +113 -113
- package/files/useDialFileMutations/useDialFileMutations.js +47 -47
- package/index.d.ts +2 -0
- package/index.d.ts.map +1 -1
- package/index.js +213 -211
- package/oauth/useToolsetLogin/useToolsetLogin.d.ts +7 -1
- package/oauth/useToolsetLogin/useToolsetLogin.d.ts.map +1 -1
- package/oauth/useToolsetLogin/useToolsetLogin.js +40 -21
- package/offline-credentials/useOfflineCredentialsGate/useOfflineCredentialsGate.js +10 -10
- package/package.json +18 -18
- package/project/project-mapping.js +12 -12
- package/project/use-project-actions.js +12 -12
- package/project/use-project-watch.js +12 -12
- package/prompt/prompt.d.ts +11 -0
- package/prompt/prompt.d.ts.map +1 -1
- package/prompt/prompt.js +7 -3
- package/scheduled-task/use-scheduled-task-runs.js +13 -13
- package/usage/map-user-usage-to-model-limits.js +21 -21
- package/useShareLink/useShareLink.js +18 -18
- package/utils.js +21 -21
package/api-error/api-error.d.ts
CHANGED
|
@@ -27,4 +27,6 @@ export declare const getApiErrorStatus: (error: unknown) => number | undefined;
|
|
|
27
27
|
export declare const getApiErrorMessage: (error: unknown) => Promise<string | null>;
|
|
28
28
|
/** Normalizes any API error into a `{ status?, message, traceId?, code?, upstreamCode?, upstreamMessage? }` shape. */
|
|
29
29
|
export declare const getApiErrorDetails: (error: unknown) => Promise<ApiErrorDetails>;
|
|
30
|
+
/** Shared item's title carried by a refused `acceptInvitation` error, when the backend sent one. */
|
|
31
|
+
export declare const getAcceptInvitationErrorItemName: (error: unknown) => Promise<string | undefined>;
|
|
30
32
|
//# sourceMappingURL=api-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-error.d.ts","sourceRoot":"","sources":["../../src/api-error/api-error.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-error.d.ts","sourceRoot":"","sources":["../../src/api-error/api-error.ts"],"names":[],"mappings":"AAWA,+DAA+D;AAC/D,MAAM,WAAW,eAAe;IAC9B,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAqED,0FAA0F;AAC1F,eAAO,MAAM,2BAA2B,GAAI,OAAO,OAAO,KAAG,OAI5D,CAAC;AAEF,0FAA0F;AAC1F,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,MAAM,GAAG,SAC3B,CAAC;AAElC,6GAA6G;AAC7G,eAAO,MAAM,kBAAkB,GAC7B,OAAO,OAAO,KACb,OAAO,CAAC,MAAM,GAAG,IAAI,CAevB,CAAC;AAEF,sHAAsH;AActH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,OAAO,KACb,OAAO,CAAC,eAAe,CAyDzB,CAAC;AAEF,oGAAoG;AACpG,eAAO,MAAM,gCAAgC,GAC3C,OAAO,OAAO,KACb,OAAO,CAAC,MAAM,GAAG,SAAS,CAY5B,CAAC"}
|
package/api-error/api-error.js
CHANGED
|
@@ -1,40 +1,41 @@
|
|
|
1
|
+
import { ResponseError as e } from "@epam/ai-dial-chat-api-client";
|
|
1
2
|
//#region src/api-error/api-error.ts
|
|
2
|
-
var
|
|
3
|
-
if (!e
|
|
4
|
-
let { message: n, error: r } =
|
|
3
|
+
var t = (e) => typeof e == "object" && !!e, n = (e) => {
|
|
4
|
+
if (!t(e)) return !1;
|
|
5
|
+
let { message: n, error: r } = e;
|
|
5
6
|
return typeof n == "string" || Array.isArray(n) && n.every((e) => typeof e == "string") || typeof r == "string";
|
|
6
|
-
},
|
|
7
|
+
}, r = (e) => n(e) ? Array.isArray(e.message) ? e.message.join("\n") : e.message ? e.message : e.error ? e.error : null : null, i = /^00-([0-9a-f]{32})-([0-9a-f]{16})-[0-9a-f]{2}$/, a = "0".repeat(32), o = "0".repeat(16), s = (e) => {
|
|
7
8
|
if (typeof e != "string") return;
|
|
8
|
-
let t =
|
|
9
|
+
let t = i.exec(e);
|
|
9
10
|
if (!t) return;
|
|
10
|
-
let [, n,
|
|
11
|
-
if (n !==
|
|
12
|
-
}, s = (t) => {
|
|
13
|
-
if (!e(t)) return;
|
|
14
|
-
let n = t.response;
|
|
15
|
-
if (e(n) && typeof n.json == "function") return n;
|
|
11
|
+
let [, n, r] = t;
|
|
12
|
+
if (n !== a && r !== o) return n;
|
|
16
13
|
}, c = (e) => {
|
|
17
|
-
|
|
14
|
+
if (!t(e)) return;
|
|
15
|
+
let n = e.response;
|
|
16
|
+
if (t(n) && typeof n.json == "function") return n;
|
|
17
|
+
}, l = (e) => {
|
|
18
|
+
let t = c(e);
|
|
18
19
|
return t?.status ? t.status === 404 : !1;
|
|
19
|
-
},
|
|
20
|
-
let t =
|
|
20
|
+
}, u = (e) => c(e)?.status, d = async (e) => {
|
|
21
|
+
let t = c(e);
|
|
21
22
|
if (t) try {
|
|
22
|
-
let e =
|
|
23
|
+
let e = r(await t.json());
|
|
23
24
|
if (e !== null) return e;
|
|
24
25
|
} catch {
|
|
25
26
|
return null;
|
|
26
27
|
}
|
|
27
28
|
return e instanceof Error && e.message ? e.message : null;
|
|
28
|
-
},
|
|
29
|
-
let
|
|
30
|
-
if (
|
|
31
|
-
let
|
|
32
|
-
a =
|
|
29
|
+
}, f = async (e) => {
|
|
30
|
+
let n = c(e), i = n?.status, a = null, o, l = !1, u, d, f;
|
|
31
|
+
if (n) try {
|
|
32
|
+
let e = await (typeof n.clone == "function" ? n.clone() : n).json();
|
|
33
|
+
a = r(e), t(e) && (u = typeof e.code == "string" ? e.code : void 0, d = typeof e.upstreamCode == "string" ? e.upstreamCode : void 0, f = typeof e.upstreamMessage == "string" ? e.upstreamMessage : void 0, o = s(e.traceparent));
|
|
33
34
|
} catch {
|
|
34
35
|
l = !0;
|
|
35
36
|
}
|
|
36
|
-
!l && a === null &&
|
|
37
|
-
let p =
|
|
37
|
+
!l && a === null && e instanceof Error && e.message && (a = e.message);
|
|
38
|
+
let p = o ?? s(typeof n?.headers?.get == "function" ? n.headers.get("traceparent") : void 0);
|
|
38
39
|
return {
|
|
39
40
|
status: i,
|
|
40
41
|
message: a,
|
|
@@ -43,6 +44,13 @@ var e = (e) => typeof e == "object" && !!e, t = (t) => {
|
|
|
43
44
|
...d ? { upstreamCode: d } : {},
|
|
44
45
|
...f ? { upstreamMessage: f } : {}
|
|
45
46
|
};
|
|
47
|
+
}, p = async (t) => {
|
|
48
|
+
if (t instanceof e) try {
|
|
49
|
+
let e = await t.response.clone().json();
|
|
50
|
+
return typeof e.itemName == "string" && e.itemName ? e.itemName : void 0;
|
|
51
|
+
} catch {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
46
54
|
};
|
|
47
55
|
//#endregion
|
|
48
|
-
export {
|
|
56
|
+
export { p as getAcceptInvitationErrorItemName, f as getApiErrorDetails, d as getApiErrorMessage, u as getApiErrorStatus, l as isConversationNotFoundError };
|
|
@@ -2,9 +2,9 @@ import { safeDecodeURIComponent as e, stripSurroundingSlashes as t } from "../sh
|
|
|
2
2
|
import { formatCalendarDate as n } from "../shared/formatting.js";
|
|
3
3
|
import { SKILL_FOLDER_MARKER as r } from "../skill/skill.js";
|
|
4
4
|
import { SkillSource as i } from "../skill/skill-types.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import { SkillMetadataItemDtoNodeTypeEnum as a } from "@epam/ai-dial-chat-api-client";
|
|
6
|
+
import { CatalogEntityType as o, formatLastUsed as s } from "@epam/ai-dial-chat-shared";
|
|
7
|
+
import { CatalogContentNodeType as c } from "@epam/ai-dial-catalog";
|
|
8
8
|
//#region src/catalog/map-skill-to-catalog-item.ts
|
|
9
9
|
var l = {
|
|
10
10
|
[i.Personal]: "personal",
|
|
@@ -14,21 +14,21 @@ var l = {
|
|
|
14
14
|
let r = (n ?? "").split("/").filter(Boolean), i = t.split("/").filter(Boolean).slice(2, -1);
|
|
15
15
|
return i.length === r.length ? i.map(e) : r;
|
|
16
16
|
}, d = (e, t, n) => [n[l[t]], ...u(e.url, e.parentPath)], f = (e, { folderLabels: t, source: n, favoriteIds: r }) => {
|
|
17
|
-
let
|
|
17
|
+
let a = r.has(e.url), c = n === i.Public, l = n === i.Personal;
|
|
18
18
|
return {
|
|
19
19
|
id: e.url,
|
|
20
|
-
type:
|
|
20
|
+
type: o.Skill,
|
|
21
21
|
name: e.name,
|
|
22
22
|
description: e.description ?? "",
|
|
23
23
|
version: "",
|
|
24
|
-
lastUsed:
|
|
24
|
+
lastUsed: s(e.updatedAt),
|
|
25
25
|
createdAt: e.createdAt,
|
|
26
26
|
updatedAt: e.updatedAt,
|
|
27
27
|
isFeatured: !1,
|
|
28
28
|
isHidden: !1,
|
|
29
29
|
topics: [],
|
|
30
|
-
isUserFavorite:
|
|
31
|
-
isStarred:
|
|
30
|
+
isUserFavorite: a,
|
|
31
|
+
isStarred: a,
|
|
32
32
|
isMyApp: l && (e.isMy ?? !0),
|
|
33
33
|
sharedWithMe: e.sharedWithMe ?? n === i.SharedWithMe,
|
|
34
34
|
isEditable: !c && (e.canEdit ?? l),
|
|
@@ -47,7 +47,7 @@ var l = {
|
|
|
47
47
|
label: t.bundledResourcesLabel,
|
|
48
48
|
value: p(e.bundledResources)
|
|
49
49
|
}), n;
|
|
50
|
-
}, h = (e) => e.filter((e) => e.nodeType ===
|
|
50
|
+
}, h = (e) => e.filter((e) => e.nodeType === a.Item), g = (e, n) => {
|
|
51
51
|
let r = t(n), i = r ? `${r}/files` : "files";
|
|
52
52
|
return h(e).find((e) => {
|
|
53
53
|
let n = t(e.path);
|
|
@@ -76,7 +76,7 @@ var l = {
|
|
|
76
76
|
let r = t.get(e);
|
|
77
77
|
if (r != null) return r.items;
|
|
78
78
|
let i = e.split("/"), a = b(i.slice(0, -1).join("/"), t, n), o = {
|
|
79
|
-
type:
|
|
79
|
+
type: c.Folder,
|
|
80
80
|
id: e,
|
|
81
81
|
name: i[i.length - 1],
|
|
82
82
|
items: []
|
|
@@ -90,21 +90,21 @@ var l = {
|
|
|
90
90
|
}
|
|
91
91
|
return e.name.localeCompare(n.name);
|
|
92
92
|
});
|
|
93
|
-
for (let t of e) t.type ===
|
|
93
|
+
for (let t of e) t.type === c.Folder && x(t.items, !1);
|
|
94
94
|
}, S = (e, t) => {
|
|
95
95
|
let n = /* @__PURE__ */ new Map(), i = [];
|
|
96
|
-
for (let
|
|
97
|
-
let e = _(
|
|
96
|
+
for (let o of e) {
|
|
97
|
+
let e = _(o.path, t);
|
|
98
98
|
if (e == null) continue;
|
|
99
|
-
if (
|
|
99
|
+
if (o.nodeType === a.Folder) {
|
|
100
100
|
b(e, n, i);
|
|
101
101
|
continue;
|
|
102
102
|
}
|
|
103
|
-
let
|
|
104
|
-
|
|
105
|
-
type:
|
|
106
|
-
id:
|
|
107
|
-
name:
|
|
103
|
+
let s = e.lastIndexOf("/"), l = s === -1 ? "" : e.slice(0, s);
|
|
104
|
+
o.name === r ? b(l, n, i) : b(l, n, i).push({
|
|
105
|
+
type: c.File,
|
|
106
|
+
id: o.path,
|
|
107
|
+
name: o.name
|
|
108
108
|
});
|
|
109
109
|
}
|
|
110
110
|
return x(i, !0), i;
|
|
@@ -2,11 +2,9 @@ import { CatalogCreateSearch, CatalogItem, CatalogTabCreateMenu } from '@epam/ai
|
|
|
2
2
|
import { ApplicationSchemaSummaryDto, DeploymentItemDto } from '@epam/ai-dial-chat-api-client';
|
|
3
3
|
import { CatalogEntityType } from '@epam/ai-dial-chat-shared';
|
|
4
4
|
import { DropdownItem } from '@epam/ai-dial-ui-kit';
|
|
5
|
+
import { CatalogItemDeleteNotification } from '../useCatalogItemDelete/useCatalogItemDelete';
|
|
5
6
|
/** A host notification `useCatalogEditNavigation` asks to be shown for a failed delete. */
|
|
6
|
-
export
|
|
7
|
-
message: string;
|
|
8
|
-
requestId?: string;
|
|
9
|
-
}
|
|
7
|
+
export type CatalogEditNavigationNotification = CatalogItemDeleteNotification;
|
|
10
8
|
/** Localized copy `useCatalogEditNavigation` needs for the Create menu and delete errors. */
|
|
11
9
|
export interface CatalogEditNavigationLabels {
|
|
12
10
|
createToolset: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCatalogEditNavigation.d.ts","sourceRoot":"","sources":["../../../src/catalog/useCatalogEditNavigation/useCatalogEditNavigation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,2BAA2B,EAC3B,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAoB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"useCatalogEditNavigation.d.ts","sourceRoot":"","sources":["../../../src/catalog/useCatalogEditNavigation/useCatalogEditNavigation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,166 +1,148 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import { DropdownItemType as l } from "@epam/ai-dial-ui-kit";
|
|
1
|
+
import { findDeploymentByIdOrReference as e } from "../deployment-id.js";
|
|
2
|
+
import { getRunnerSchemas as t, isQuickAppSchema as n } from "../../shared/application-schema.js";
|
|
3
|
+
import { useCatalogItemDelete as r } from "../useCatalogItemDelete/useCatalogItemDelete.js";
|
|
4
|
+
import { CatalogEntityType as i } from "@epam/ai-dial-chat-shared";
|
|
5
|
+
import { useCallback as a, useMemo as o, useState as s } from "react";
|
|
6
|
+
import { DropdownItemType as c } from "@epam/ai-dial-ui-kit";
|
|
8
7
|
//#region src/catalog/useCatalogEditNavigation/useCatalogEditNavigation.ts
|
|
9
|
-
var
|
|
10
|
-
let
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
]),
|
|
15
|
-
if (
|
|
16
|
-
|
|
8
|
+
var l = () => !0, u = (e) => [...e].sort((e, t) => String(e.label ?? "").localeCompare(String(t.label ?? ""), void 0, { sensitivity: "base" })), d = ({ deployments: d, isCustomAppsEnabled: f, isSchemaAppsEnabled: p, isHideCustomAppCreationEnabled: m, isToolsetsEnabled: h, isPromptsEnabled: g, schemas: _, urls: v, onNavigate: y, deletePrompt: b, deleteToolset: x, deleteSkill: S, deleteApplication: C, refetchPrompts: w, refetchToolsets: T, refetchSkills: E, refetchDeployments: D, onDeleteSuccess: O, labels: k, onNotify: A, onSkillUploadClick: j, canCreateCustomApp: M = !0, canCreateToolset: N = !0, canCreatePrompt: P = !0, canCreateSkill: F = !0, canCreateSchema: I = l }) => {
|
|
9
|
+
let L = o(() => t(_), [_]), [R, z] = s(""), B = p && !m, V = o(() => B ? L.filter((e) => I(e.id)) : [], [
|
|
10
|
+
B,
|
|
11
|
+
L,
|
|
12
|
+
I
|
|
13
|
+
]), H = h && N, U = f && !m && M, W = g && P, G = V.length > 0 || H || U || F || W, K = a((t) => {
|
|
14
|
+
if (t.type === i.Prompt) {
|
|
15
|
+
y(v.buildPromptEditUrl(t.id));
|
|
17
16
|
return;
|
|
18
17
|
}
|
|
19
|
-
if (
|
|
20
|
-
|
|
18
|
+
if (t.type === i.Skill) {
|
|
19
|
+
y(v.buildSkillEditUrl(t.id));
|
|
21
20
|
return;
|
|
22
21
|
}
|
|
23
|
-
if (
|
|
24
|
-
|
|
22
|
+
if (t.type === i.Toolset) {
|
|
23
|
+
y(v.buildToolsetEditUrl(t.id));
|
|
25
24
|
return;
|
|
26
25
|
}
|
|
27
|
-
let
|
|
28
|
-
if (
|
|
29
|
-
|
|
26
|
+
let r = e(d, t.id);
|
|
27
|
+
if (f && r != null && !r.applicationTypeSchemaId) {
|
|
28
|
+
y(v.buildCustomAppEditUrl(t.id));
|
|
30
29
|
return;
|
|
31
30
|
}
|
|
32
|
-
let
|
|
33
|
-
|
|
31
|
+
let a = L.find((e) => e.id === r?.applicationTypeSchemaId)?.id ?? L.find((e) => n(e))?.id;
|
|
32
|
+
a && y(v.buildQuickAppEditUrl(a, t.id));
|
|
34
33
|
}, [
|
|
34
|
+
d,
|
|
35
35
|
f,
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
message: A.deleteError,
|
|
54
|
-
requestId: n
|
|
55
|
-
}), t;
|
|
56
|
-
}
|
|
57
|
-
}, [
|
|
58
|
-
x,
|
|
59
|
-
S,
|
|
60
|
-
C,
|
|
61
|
-
w,
|
|
62
|
-
E,
|
|
63
|
-
O,
|
|
64
|
-
T,
|
|
65
|
-
D,
|
|
66
|
-
k,
|
|
67
|
-
A,
|
|
68
|
-
j
|
|
69
|
-
]), Y = s(() => {
|
|
70
|
-
let e = z.trim().toLocaleLowerCase(), t = (t) => !e || t.toLocaleLowerCase().includes(e), n = H.map((e) => ({
|
|
36
|
+
L,
|
|
37
|
+
y,
|
|
38
|
+
v
|
|
39
|
+
]), q = r({
|
|
40
|
+
deletePrompt: b,
|
|
41
|
+
deleteToolset: x,
|
|
42
|
+
deleteSkill: S,
|
|
43
|
+
deleteApplication: C,
|
|
44
|
+
refetchPrompts: w,
|
|
45
|
+
refetchToolsets: T,
|
|
46
|
+
refetchSkills: E,
|
|
47
|
+
refetchDeployments: D,
|
|
48
|
+
onDeleteSuccess: O,
|
|
49
|
+
deleteErrorLabel: k.deleteError,
|
|
50
|
+
onNotify: A
|
|
51
|
+
}), J = o(() => {
|
|
52
|
+
let e = R.trim().toLocaleLowerCase(), t = (t) => !e || t.toLocaleLowerCase().includes(e), n = V.map((e) => ({
|
|
71
53
|
id: e.id,
|
|
72
54
|
label: e.displayName || e.id
|
|
73
55
|
})).filter((e) => t(e.label)).map((e) => ({
|
|
74
56
|
key: `runner:${e.id}`,
|
|
75
57
|
label: e.label,
|
|
76
|
-
onClick: () =>
|
|
77
|
-
})), r =
|
|
58
|
+
onClick: () => y(v.buildQuickAppCreateUrl(e.id))
|
|
59
|
+
})), r = H && t(k.createToolset) ? {
|
|
78
60
|
key: "toolset",
|
|
79
|
-
label:
|
|
80
|
-
onClick: () =>
|
|
81
|
-
} : void 0, i =
|
|
61
|
+
label: k.createToolset,
|
|
62
|
+
onClick: () => y(v.buildToolsetCreateUrl())
|
|
63
|
+
} : void 0, i = U && t(k.createCustomApp) ? {
|
|
82
64
|
key: "custom-app",
|
|
83
|
-
label:
|
|
84
|
-
onClick: () =>
|
|
85
|
-
} : void 0, a =
|
|
65
|
+
label: k.createCustomApp,
|
|
66
|
+
onClick: () => y(v.buildCustomAppCreateUrl())
|
|
67
|
+
} : void 0, a = F ? [{
|
|
86
68
|
key: "skill-write-instructions",
|
|
87
|
-
label:
|
|
88
|
-
onClick: () =>
|
|
69
|
+
label: k.createSkillWriteInstructions,
|
|
70
|
+
onClick: () => y(v.buildSkillCreateUrl())
|
|
89
71
|
}, {
|
|
90
72
|
key: "skill-upload",
|
|
91
|
-
label:
|
|
92
|
-
onClick:
|
|
73
|
+
label: k.createSkillUpload,
|
|
74
|
+
onClick: j
|
|
93
75
|
}] : [];
|
|
94
76
|
return {
|
|
95
77
|
runnerOptions: n,
|
|
96
78
|
toolsetOption: r,
|
|
97
79
|
customAppOption: i,
|
|
98
|
-
visibleSkillChildren: t(
|
|
99
|
-
promptOption:
|
|
80
|
+
visibleSkillChildren: t(k.createSkill) ? a : a.filter((e) => t(String(e.label))),
|
|
81
|
+
promptOption: W && t(k.createPrompt) ? {
|
|
100
82
|
key: "prompt",
|
|
101
|
-
label:
|
|
102
|
-
onClick: () =>
|
|
83
|
+
label: k.createPrompt,
|
|
84
|
+
onClick: () => y(v.buildPromptCreateUrl())
|
|
103
85
|
} : void 0
|
|
104
86
|
};
|
|
105
87
|
}, [
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
b,
|
|
88
|
+
R,
|
|
89
|
+
V,
|
|
109
90
|
y,
|
|
110
|
-
|
|
111
|
-
A,
|
|
112
|
-
U,
|
|
91
|
+
v,
|
|
113
92
|
W,
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
93
|
+
k,
|
|
94
|
+
H,
|
|
95
|
+
U,
|
|
96
|
+
F,
|
|
97
|
+
j
|
|
98
|
+
]), Y = o(() => {
|
|
99
|
+
let { runnerOptions: e, toolsetOption: t, customAppOption: n, visibleSkillChildren: r, promptOption: i } = J, a = [];
|
|
118
100
|
t && a.push(t), r.length > 0 && a.push({
|
|
119
101
|
key: "skill",
|
|
120
|
-
label:
|
|
102
|
+
label: k.createSkill,
|
|
121
103
|
children: r
|
|
122
104
|
}), i && a.push(i);
|
|
123
|
-
let o =
|
|
105
|
+
let o = u(n ? [n, ...e] : e), s = u(a);
|
|
124
106
|
return s.length === 0 || o.length === 0 ? [...s, ...o] : [
|
|
125
107
|
...s,
|
|
126
108
|
{
|
|
127
109
|
key: "create-sections-divider",
|
|
128
|
-
type:
|
|
110
|
+
type: c.Divider
|
|
129
111
|
},
|
|
130
112
|
{
|
|
131
113
|
key: "runners-header",
|
|
132
|
-
type:
|
|
133
|
-
label:
|
|
114
|
+
type: c.PlainText,
|
|
115
|
+
label: k.createRunners
|
|
134
116
|
},
|
|
135
117
|
...o
|
|
136
118
|
];
|
|
137
119
|
}, [
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
]),
|
|
142
|
-
value:
|
|
143
|
-
onChange:
|
|
144
|
-
} : void 0, [
|
|
120
|
+
J,
|
|
121
|
+
k.createSkill,
|
|
122
|
+
k.createRunners
|
|
123
|
+
]), X = o(() => V.length > 0 ? {
|
|
124
|
+
value: R,
|
|
125
|
+
onChange: z
|
|
126
|
+
} : void 0, [V.length, R]);
|
|
145
127
|
return {
|
|
146
|
-
handleEdit:
|
|
147
|
-
handleDelete:
|
|
148
|
-
createOptions:
|
|
149
|
-
createSearch:
|
|
150
|
-
createMenuByType:
|
|
151
|
-
let { runnerOptions: e, toolsetOption: t, customAppOption: n, visibleSkillChildren: r, promptOption:
|
|
128
|
+
handleEdit: K,
|
|
129
|
+
handleDelete: q,
|
|
130
|
+
createOptions: Y,
|
|
131
|
+
createSearch: X,
|
|
132
|
+
createMenuByType: o(() => {
|
|
133
|
+
let { runnerOptions: e, toolsetOption: t, customAppOption: n, visibleSkillChildren: r, promptOption: a } = J;
|
|
152
134
|
return {
|
|
153
|
-
[
|
|
154
|
-
options:
|
|
155
|
-
search:
|
|
135
|
+
[i.Agent]: {
|
|
136
|
+
options: u(n ? [...e, n] : e),
|
|
137
|
+
search: X
|
|
156
138
|
},
|
|
157
|
-
[
|
|
158
|
-
[
|
|
159
|
-
[
|
|
139
|
+
[i.Toolset]: { options: t ? [t] : [] },
|
|
140
|
+
[i.Skill]: { options: r },
|
|
141
|
+
[i.Prompt]: { options: a ? [a] : [] }
|
|
160
142
|
};
|
|
161
|
-
}, [
|
|
162
|
-
hasCreateOptions:
|
|
143
|
+
}, [J, X]),
|
|
144
|
+
hasCreateOptions: G
|
|
163
145
|
};
|
|
164
146
|
};
|
|
165
147
|
//#endregion
|
|
166
|
-
export {
|
|
148
|
+
export { d as useCatalogEditNavigation };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { CatalogItem } from '@epam/ai-dial-catalog';
|
|
2
|
+
/** A host notification `useCatalogItemDelete` asks to be shown for a failed delete. */
|
|
3
|
+
export interface CatalogItemDeleteNotification {
|
|
4
|
+
/** Localized error message. */
|
|
5
|
+
message: string;
|
|
6
|
+
/** Trace id of the failed request, when the API returned one. */
|
|
7
|
+
requestId?: string;
|
|
8
|
+
}
|
|
9
|
+
/** Parameters accepted by {@link useCatalogItemDelete}. */
|
|
10
|
+
export interface UseCatalogItemDeleteParams {
|
|
11
|
+
/** Already-configured DIAL Core operation: deletes a personal or shared prompt. */
|
|
12
|
+
deletePrompt: (id: string) => Promise<unknown>;
|
|
13
|
+
/** Already-configured DIAL Core operation: deletes a toolset. */
|
|
14
|
+
deleteToolset: (id: string) => Promise<unknown>;
|
|
15
|
+
/** Already-configured DIAL Core operation: deletes a skill package. */
|
|
16
|
+
deleteSkill: (bucket: string, path: string) => Promise<unknown>;
|
|
17
|
+
/** Already-configured DIAL Core operation: deletes a deployment/application. */
|
|
18
|
+
deleteApplication: (id: string) => Promise<unknown>;
|
|
19
|
+
/** Refetches the prompt listing after a prompt is deleted. */
|
|
20
|
+
refetchPrompts: () => Promise<void>;
|
|
21
|
+
/** Refetches the toolset listing after a toolset is deleted. */
|
|
22
|
+
refetchToolsets: () => Promise<void>;
|
|
23
|
+
/** Refetches the skill listing after a skill is deleted. */
|
|
24
|
+
refetchSkills: () => Promise<void>;
|
|
25
|
+
/** Refetches the deployment listing after an application is deleted. */
|
|
26
|
+
refetchDeployments: () => Promise<void>;
|
|
27
|
+
/** Called after a successful delete, so the host can notify with its own entity/operation vocabulary. */
|
|
28
|
+
onDeleteSuccess: (item: CatalogItem) => void;
|
|
29
|
+
/** Localized message shown when a delete fails. */
|
|
30
|
+
deleteErrorLabel: string;
|
|
31
|
+
/** Called to surface a host notification when a delete fails. */
|
|
32
|
+
onNotify: (notification: CatalogItemDeleteNotification) => void;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns a delete handler that removes a catalog item through the endpoint
|
|
36
|
+
* its type owns, refetches that listing and reports success; on failure it
|
|
37
|
+
* notifies with the request's trace id and rethrows, so a confirmation stays
|
|
38
|
+
* open.
|
|
39
|
+
*/
|
|
40
|
+
export declare const useCatalogItemDelete: ({ deletePrompt, deleteToolset, deleteSkill, deleteApplication, refetchPrompts, refetchToolsets, refetchSkills, refetchDeployments, onDeleteSuccess, deleteErrorLabel, onNotify, }: UseCatalogItemDeleteParams) => ((item: CatalogItem) => Promise<void>);
|
|
41
|
+
//# sourceMappingURL=useCatalogItemDelete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCatalogItemDelete.d.ts","sourceRoot":"","sources":["../../../src/catalog/useCatalogItemDelete/useCatalogItemDelete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMzD,uFAAuF;AACvF,MAAM,WAAW,6BAA6B;IAC5C,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,2DAA2D;AAC3D,MAAM,WAAW,0BAA0B;IACzC,mFAAmF;IACnF,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,iEAAiE;IACjE,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,uEAAuE;IACvE,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAChE,gFAAgF;IAChF,iBAAiB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,8DAA8D;IAC9D,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,gEAAgE;IAChE,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,4DAA4D;IAC5D,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,wEAAwE;IACxE,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,yGAAyG;IACzG,eAAe,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7C,mDAAmD;IACnD,gBAAgB,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,EAAE,CAAC,YAAY,EAAE,6BAA6B,KAAK,IAAI,CAAC;CACjE;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,mLAYlC,0BAA0B,KAAG,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CA0ClE,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { getApiErrorDetails as e } from "../../api-error/api-error.js";
|
|
2
|
+
import { parseSkillResourceUrl as t } from "../../skill/skill-types.js";
|
|
3
|
+
import { CatalogEntityType as n } from "@epam/ai-dial-chat-shared";
|
|
4
|
+
import { useCallback as r } from "react";
|
|
5
|
+
//#region src/catalog/useCatalogItemDelete/useCatalogItemDelete.ts
|
|
6
|
+
var i = ({ deletePrompt: i, deleteToolset: a, deleteSkill: o, deleteApplication: s, refetchPrompts: c, refetchToolsets: l, refetchSkills: u, refetchDeployments: d, onDeleteSuccess: f, deleteErrorLabel: p, onNotify: m }) => r(async (r) => {
|
|
7
|
+
try {
|
|
8
|
+
if (r.type === n.Prompt) await i(r.id), await c();
|
|
9
|
+
else if (r.type === n.Toolset) await a(r.id), await l();
|
|
10
|
+
else if (r.type === n.Skill) {
|
|
11
|
+
let e = t(r.id);
|
|
12
|
+
if (e == null) throw Error(`Invalid skill resource url: ${r.id}`);
|
|
13
|
+
await o(e.bucket, e.path), await u();
|
|
14
|
+
} else await s(r.id), await d();
|
|
15
|
+
f(r);
|
|
16
|
+
} catch (t) {
|
|
17
|
+
let { traceId: n } = await e(t);
|
|
18
|
+
throw m({
|
|
19
|
+
message: p,
|
|
20
|
+
requestId: n
|
|
21
|
+
}), t;
|
|
22
|
+
}
|
|
23
|
+
}, [
|
|
24
|
+
i,
|
|
25
|
+
a,
|
|
26
|
+
o,
|
|
27
|
+
s,
|
|
28
|
+
c,
|
|
29
|
+
l,
|
|
30
|
+
u,
|
|
31
|
+
d,
|
|
32
|
+
f,
|
|
33
|
+
p,
|
|
34
|
+
m
|
|
35
|
+
]);
|
|
36
|
+
//#endregion
|
|
37
|
+
export { i as useCatalogItemDelete };
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import { ListFilesResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
2
2
|
import { PublishFolderNode } from '@epam/ai-dial-publish-panel';
|
|
3
|
+
/** Returns whether a publish destination folder accepts writes: any folder not under a `Production` segment. */
|
|
4
|
+
export declare const hasPublishFolderWriteAccess: (folderPath: string[]) => boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Returns the remembered destination keys with `folderKey` moved to the front
|
|
7
|
+
* and the list capped at 50, or `undefined` when nothing changes (an empty
|
|
8
|
+
* key, or one already first). Ignores a stored value that is not an array.
|
|
9
|
+
*/
|
|
10
|
+
export declare const rememberPublishFolderKey: (storedKeys: unknown, folderKey: string) => string[] | undefined;
|
|
3
11
|
/** Parameters for {@link usePublishFolders}. */
|
|
4
12
|
export interface UsePublishFoldersParams {
|
|
5
13
|
/** Lists one folder level of the Organization/public files bucket. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePublishFolders.d.ts","sourceRoot":"","sources":["../../../src/catalog/usePublishFolders/usePublishFolders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"usePublishFolders.d.ts","sourceRoot":"","sources":["../../../src/catalog/usePublishFolders/usePublishFolders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAgBrC,gHAAgH;AAChH,eAAO,MAAM,2BAA2B,GAAI,YAAY,MAAM,EAAE,KAAG,OAClB,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,YAAY,OAAO,EACnB,WAAW,MAAM,KAChB,MAAM,EAAE,GAAG,SAUb,CAAC;AAyBF,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,sEAAsE;IACtE,eAAe,EAAE,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC9E;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;;;OAIG;IACH,4BAA4B,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC/D;AAED,oDAAoD;AACpD,MAAM,WAAW,uBAAuB;IACtC,qEAAqE;IACrE,WAAW,EAAE,iBAAiB,EAAE,CAAC;IACjC,uDAAuD;IACvD,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,iEAAiE;IACjE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,gDAAgD;IAChD,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,0EAA0E;IAC1E,qBAAqB,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACpD;;;;;;;;;;OAUG;IACH,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E;;;;OAIG;IACH,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IACtD,2EAA2E;IAC3E,qBAAqB,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,GAAI,0EAI/B,uBAAuB,KAAG,uBA+G5B,CAAC"}
|