@epam/ai-dial-chat-hooks 1.2.0-dev.85 → 1.2.0-dev.89
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/conversation/useConversationScroll/useConversationScroll.js +68 -64
- package/file-manager.d.ts +5 -5
- package/files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js +1 -5
- package/index.d.ts +39 -5
- package/index.js +116 -116
- package/package.json +17 -17
- package/skill/skill.js +10 -7
- package/skill/useSkillEditorSubmit.js +83 -71
- package/skill-editor.d.ts +34 -0
- package/skill-editor.js +9 -9
|
@@ -1,121 +1,125 @@
|
|
|
1
1
|
import { useCallback as e, useEffect as t, useLayoutEffect as n, useRef as r, useState as i } from "react";
|
|
2
2
|
//#region src/conversation/useConversationScroll/useConversationScroll.ts
|
|
3
3
|
var a = 80, o = 1, s = ({ messages: s, isAssistantTyping: c, conversationId: l }) => {
|
|
4
|
-
let [u, d] = i(!1), f = r(null), p = r(null), m = r(null), h = r(!1), g = r(!1), _ = r(null), v = r(/* @__PURE__ */ new Map()),
|
|
5
|
-
t ?
|
|
6
|
-
}, []),
|
|
7
|
-
|
|
8
|
-
}, []),
|
|
4
|
+
let [u, d] = i(!1), f = r(null), p = r(null), m = r(null), h = r(!1), g = r(!1), _ = r(null), v = r(!0), y = r(/* @__PURE__ */ new Map()), b = e((e, t) => {
|
|
5
|
+
t ? y.current.set(e, t) : y.current.delete(e);
|
|
6
|
+
}, []), x = r(null), S = e((e) => {
|
|
7
|
+
x.current = e;
|
|
8
|
+
}, []), C = e((e, t) => {
|
|
9
9
|
let n = f.current;
|
|
10
10
|
n && n.scrollTo({
|
|
11
11
|
top: e,
|
|
12
12
|
behavior: t ? "instant" : "smooth"
|
|
13
13
|
});
|
|
14
|
-
}, []), C = e(() => {
|
|
15
|
-
m.current && (m.current.style.height = "0px"), h.current = !1, g.current = !1, _.current = null;
|
|
16
14
|
}, []), w = e(() => {
|
|
15
|
+
m.current && (m.current.style.height = "0px"), h.current = !1, g.current = !1, _.current = null;
|
|
16
|
+
}, []), T = e(() => {
|
|
17
17
|
let e = f.current, t = p.current;
|
|
18
18
|
if (!e || !t) return null;
|
|
19
19
|
let n = e.getBoundingClientRect(), r = t.getBoundingClientRect();
|
|
20
20
|
return e.scrollTop + (r.bottom - n.top) - e.clientHeight;
|
|
21
|
-
}, []),
|
|
22
|
-
let t =
|
|
23
|
-
t != null &&
|
|
24
|
-
}, [
|
|
21
|
+
}, []), E = e((e = !1) => {
|
|
22
|
+
let t = T();
|
|
23
|
+
t != null && C(Math.max(t, 0), e);
|
|
24
|
+
}, [C, T]), D = e(() => {
|
|
25
25
|
let e = f.current, t = p.current;
|
|
26
26
|
if (!e || !t) return null;
|
|
27
27
|
let n = e.getBoundingClientRect();
|
|
28
28
|
return t.getBoundingClientRect().bottom - n.top - e.clientHeight;
|
|
29
|
-
}, []),
|
|
29
|
+
}, []), O = e(() => {
|
|
30
30
|
if (!g.current) return;
|
|
31
|
-
let e =
|
|
32
|
-
e == null || e < -1 ||
|
|
33
|
-
}, [
|
|
34
|
-
let t = f.current, n =
|
|
31
|
+
let e = D();
|
|
32
|
+
e == null || e < -1 || w();
|
|
33
|
+
}, [w, D]), k = e((e) => {
|
|
34
|
+
let t = f.current, n = y.current.get(e);
|
|
35
35
|
if (!t || !n) return null;
|
|
36
36
|
let r = t.getBoundingClientRect(), i = n.getBoundingClientRect(), a = t.scrollTop + (i.top - r.top);
|
|
37
37
|
return Math.max(a, 0);
|
|
38
|
-
}, []),
|
|
39
|
-
let n =
|
|
40
|
-
n != null &&
|
|
41
|
-
}, [
|
|
42
|
-
let e =
|
|
38
|
+
}, []), A = e((e, t = !1) => {
|
|
39
|
+
let n = k(e);
|
|
40
|
+
n != null && C(n, t);
|
|
41
|
+
}, [k, C]), j = e(() => {
|
|
42
|
+
let e = T();
|
|
43
43
|
return e == null ? null : Math.max(e, 0);
|
|
44
|
-
}, [
|
|
44
|
+
}, [T]), M = e(() => {
|
|
45
45
|
if (!h.current) return null;
|
|
46
|
-
let e = _.current, t =
|
|
46
|
+
let e = _.current, t = j();
|
|
47
47
|
return e == null || t == null ? null : Math.max(e, t);
|
|
48
|
-
}, [
|
|
49
|
-
let e = f.current, t =
|
|
48
|
+
}, [j]), N = e(() => {
|
|
49
|
+
let e = f.current, t = M();
|
|
50
50
|
!e || t == null || e.scrollTop > t + o && (e.scrollTop = t);
|
|
51
|
-
}, [
|
|
52
|
-
let t = m.current, n =
|
|
51
|
+
}, [M]), P = e((e) => {
|
|
52
|
+
let t = m.current, n = j();
|
|
53
53
|
if (!t || n == null) return;
|
|
54
54
|
let r = Math.max(e - n, 0);
|
|
55
55
|
t.style.height = `${r}px`, h.current = r > 0, g.current = !1, _.current = r > 0 ? e : null;
|
|
56
|
-
}, [
|
|
57
|
-
let t =
|
|
58
|
-
t != null && (
|
|
56
|
+
}, [j]), F = e((e) => {
|
|
57
|
+
let t = k(e);
|
|
58
|
+
t != null && (P(t), A(e, !1));
|
|
59
59
|
}, [
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
]),
|
|
64
|
-
let e =
|
|
65
|
-
|
|
66
|
-
|
|
60
|
+
P,
|
|
61
|
+
k,
|
|
62
|
+
A
|
|
63
|
+
]), I = e(() => {
|
|
64
|
+
let e = D();
|
|
65
|
+
if (e == null) return;
|
|
66
|
+
let t = e < a;
|
|
67
|
+
v.current = t, d(!t);
|
|
68
|
+
}, [D]), L = r(s.length), R = r(null);
|
|
67
69
|
n(() => {
|
|
68
|
-
let e = s.length !==
|
|
69
|
-
|
|
70
|
+
let e = s.length !== L.current, t = l !== R.current, n = () => {
|
|
71
|
+
L.current = s.length, R.current = l;
|
|
70
72
|
};
|
|
71
|
-
t &&
|
|
72
|
-
let r =
|
|
73
|
-
if (r != null &&
|
|
74
|
-
|
|
73
|
+
t && w();
|
|
74
|
+
let r = x.current;
|
|
75
|
+
if (r != null && y.current.has(r)) {
|
|
76
|
+
x.current = null, F(r), n();
|
|
75
77
|
return;
|
|
76
78
|
}
|
|
77
|
-
c || ((e || t) &&
|
|
79
|
+
c || ((e || t) && E(!1), n());
|
|
78
80
|
}, [
|
|
79
81
|
s,
|
|
80
82
|
c,
|
|
81
83
|
l,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
84
|
+
E,
|
|
85
|
+
F,
|
|
86
|
+
w
|
|
85
87
|
]), n(() => {
|
|
86
|
-
!c && h.current && (g.current = !0,
|
|
87
|
-
}, [c,
|
|
88
|
-
let
|
|
89
|
-
|
|
88
|
+
!c && h.current && (g.current = !0, O());
|
|
89
|
+
}, [c, O]);
|
|
90
|
+
let z = e(() => {
|
|
91
|
+
N(), O(), I();
|
|
90
92
|
}, [
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
93
|
+
N,
|
|
94
|
+
O,
|
|
95
|
+
I
|
|
94
96
|
]);
|
|
95
97
|
return t(() => {
|
|
96
98
|
let e = f.current;
|
|
97
|
-
if (e) return e.addEventListener("scroll",
|
|
98
|
-
}, [
|
|
99
|
+
if (e) return e.addEventListener("scroll", z, { passive: !0 }), () => e.removeEventListener("scroll", z);
|
|
100
|
+
}, [z]), t(() => {
|
|
99
101
|
let e = p.current;
|
|
100
102
|
if (!e) return;
|
|
101
103
|
let t = new ResizeObserver(() => {
|
|
102
|
-
|
|
104
|
+
let e = v.current && !h.current;
|
|
105
|
+
N(), e && E(!0), O(), I();
|
|
103
106
|
});
|
|
104
107
|
return t.observe(e), () => t.disconnect();
|
|
105
108
|
}, [
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
+
N,
|
|
110
|
+
O,
|
|
111
|
+
I,
|
|
112
|
+
E
|
|
109
113
|
]), {
|
|
110
114
|
containerRef: f,
|
|
111
115
|
contentRef: p,
|
|
112
116
|
spacerRef: m,
|
|
113
|
-
setMessageRef:
|
|
117
|
+
setMessageRef: b,
|
|
114
118
|
isScrollButtonVisible: u,
|
|
115
119
|
scrollToBottom: e(() => {
|
|
116
|
-
|
|
117
|
-
}, [
|
|
118
|
-
armAnchor:
|
|
120
|
+
E(!1);
|
|
121
|
+
}, [E]),
|
|
122
|
+
armAnchor: S
|
|
119
123
|
};
|
|
120
124
|
};
|
|
121
125
|
//#endregion
|
package/file-manager.d.ts
CHANGED
|
@@ -27,11 +27,13 @@ import { FileManagerColumnKey } from '@epam/ai-dial-react-file-manager';
|
|
|
27
27
|
import { FileManagerSelectableNode } from '@epam/ai-dial-chat-shared';
|
|
28
28
|
import { FileMetadataResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
29
29
|
import { FilesApi } from '@epam/ai-dial-chat-api-client';
|
|
30
|
+
import { FileTreeOptions } from '@epam/ai-dial-react-file-manager';
|
|
30
31
|
import { FileUploadBatchState } from '@epam/ai-dial-chat-shared';
|
|
31
32
|
import { FileUploadEntry } from '@epam/ai-dial-chat-shared';
|
|
32
33
|
import { FileUploadResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
33
34
|
import { FileUploadStatus } from '@epam/ai-dial-chat-shared';
|
|
34
35
|
import { FileUploadValidationResult } from '@epam/ai-dial-chat-shared';
|
|
36
|
+
import { FilterChipItem } from '@epam/ai-dial-ui-kit';
|
|
35
37
|
import { getParentFolderPath } from '@epam/ai-dial-chat-shared';
|
|
36
38
|
import { ListFilesItemDto } from '@epam/ai-dial-chat-api-client';
|
|
37
39
|
import { ListFilesResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
@@ -45,8 +47,6 @@ import { RenameFilesResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
|
45
47
|
import { RenameItemDto } from '@epam/ai-dial-chat-api-client';
|
|
46
48
|
import { RevokeAccessItemDto } from '@epam/ai-dial-chat-api-client';
|
|
47
49
|
import { RevokeAccessResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
48
|
-
import { TabModel } from '@epam/ai-dial-ui-kit';
|
|
49
|
-
import { ToolbarOptions } from '@epam/ai-dial-react-file-manager';
|
|
50
50
|
import { UploadArchiveResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
51
51
|
import { useGridEditingScroll } from '@epam/ai-dial-chat-shared';
|
|
52
52
|
import { UseGridEditingScrollOptions } from '@epam/ai-dial-chat-shared';
|
|
@@ -941,11 +941,11 @@ export declare interface UseDialFileManagerResult {
|
|
|
941
941
|
* current one becomes excluded. A `fileManagerTabs` of `undefined` means no
|
|
942
942
|
* restriction — every tab in `allTabs` stays enabled and no reset ever fires.
|
|
943
943
|
*/
|
|
944
|
-
export declare const useDialFileManagerTabConfig: (activeTab: DialFileManagerTabs, onTabChange: (tab: DialFileManagerTabs) => void, allTabs:
|
|
944
|
+
export declare const useDialFileManagerTabConfig: (activeTab: DialFileManagerTabs, onTabChange: (tab: DialFileManagerTabs) => void, allTabs: FilterChipItem<DialFileManagerTabs>[] | undefined, fileManagerTabs: string[] | undefined) => UseDialFileManagerTabConfigResult;
|
|
945
945
|
|
|
946
946
|
/** Values returned by `useDialFileManagerTabConfig`. */
|
|
947
947
|
export declare interface UseDialFileManagerTabConfigResult {
|
|
948
|
-
tabs:
|
|
948
|
+
tabs: FileTreeOptions['tabs'];
|
|
949
949
|
}
|
|
950
950
|
|
|
951
951
|
/**
|
|
@@ -1150,7 +1150,7 @@ export declare interface UseFileAttachmentPickerResult {
|
|
|
1150
1150
|
/** Active tab. */
|
|
1151
1151
|
activeTab: DialFileManagerTabs;
|
|
1152
1152
|
/** Tab list filtered to `allowedTabs`; forward to `FileManagerAttachModal`'s `tabs` prop. */
|
|
1153
|
-
tabs:
|
|
1153
|
+
tabs: FileTreeOptions['tabs'];
|
|
1154
1154
|
/** Switches the active tab and clears the current selection. */
|
|
1155
1155
|
onTabChange: (tab: DialFileManagerTabs) => void;
|
|
1156
1156
|
/** Currently selected paths. */
|
|
@@ -6,11 +6,7 @@ var i = [
|
|
|
6
6
|
r.Shared,
|
|
7
7
|
r.Organization
|
|
8
8
|
], a = (a, o, s, c) => {
|
|
9
|
-
let l = e((e) => c == null || c.includes(e), [c]), u = n(() => s?.filter((e) => l(e.
|
|
10
|
-
id: e,
|
|
11
|
-
label: t,
|
|
12
|
-
disabled: n
|
|
13
|
-
}] : []), [s, l]);
|
|
9
|
+
let l = e((e) => c == null || c.includes(e), [c]), u = n(() => s?.filter((e) => l(e.value)), [s, l]);
|
|
14
10
|
return t(() => {
|
|
15
11
|
l(a) || o(i.find((e) => l(e)) ?? r.MyFiles);
|
|
16
12
|
}, [
|
package/index.d.ts
CHANGED
|
@@ -66,11 +66,13 @@ import { FileManagerColumnKey } from '@epam/ai-dial-react-file-manager';
|
|
|
66
66
|
import { FileManagerSelectableNode } from '@epam/ai-dial-chat-shared';
|
|
67
67
|
import { FileMetadataResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
68
68
|
import { FilesApi } from '@epam/ai-dial-chat-api-client';
|
|
69
|
+
import { FileTreeOptions } from '@epam/ai-dial-react-file-manager';
|
|
69
70
|
import { FileUploadBatchState } from '@epam/ai-dial-chat-shared';
|
|
70
71
|
import { FileUploadEntry } from '@epam/ai-dial-chat-shared';
|
|
71
72
|
import { FileUploadResponseDto } from '@epam/ai-dial-chat-api-client';
|
|
72
73
|
import { FileUploadStatus } from '@epam/ai-dial-chat-shared';
|
|
73
74
|
import { FileUploadValidationResult } from '@epam/ai-dial-chat-shared';
|
|
75
|
+
import { FilterChipItem } from '@epam/ai-dial-ui-kit';
|
|
74
76
|
import { FilterTab } from '@epam/ai-dial-chat-shared';
|
|
75
77
|
import { getParentFolderPath } from '@epam/ai-dial-chat-shared';
|
|
76
78
|
import type { GroupedAttachmentItem } from '@epam/ai-dial-chat-shared';
|
|
@@ -138,8 +140,6 @@ import { Stage } from '@epam/ai-dial-chat-shared';
|
|
|
138
140
|
import { StarterOption } from '@epam/ai-dial-chat-shared';
|
|
139
141
|
import { StatusMessage } from '@epam/ai-dial-chat-shared';
|
|
140
142
|
import { StreamChunk } from '@epam/ai-dial-chat-shared';
|
|
141
|
-
import { TabModel } from '@epam/ai-dial-ui-kit';
|
|
142
|
-
import { ToolbarOptions } from '@epam/ai-dial-react-file-manager';
|
|
143
143
|
import { ToolMenuItem } from '@epam/ai-dial-chat-shared';
|
|
144
144
|
import { ToolsetLoginBodyDto } from '@epam/ai-dial-chat-api-client';
|
|
145
145
|
import { ToolsetLogoutBodyDto } from '@epam/ai-dial-chat-api-client';
|
|
@@ -3465,6 +3465,12 @@ export declare interface SkillEditorSubmitClient {
|
|
|
3465
3465
|
export declare interface SkillEditorSubmitMessages {
|
|
3466
3466
|
/** Shown when a required field is empty. */
|
|
3467
3467
|
required: string;
|
|
3468
|
+
/**
|
|
3469
|
+
* Shown when the Instructions value opens with its own YAML frontmatter
|
|
3470
|
+
* block — pasting a whole `SKILL.md` in there would otherwise produce a
|
|
3471
|
+
* manifest with two frontmatter blocks.
|
|
3472
|
+
*/
|
|
3473
|
+
instructionsFrontmatter: string;
|
|
3468
3474
|
/** Shown when the normalized skill name fails DIAL's naming rules. */
|
|
3469
3475
|
nameInvalid: string;
|
|
3470
3476
|
/** Shown when the skill name already exists (409), or defensively on an unreachable create-mode 412. */
|
|
@@ -3671,6 +3677,28 @@ export declare const splitFileNameExtension: (fileName: string) => {
|
|
|
3671
3677
|
extension: string;
|
|
3672
3678
|
};
|
|
3673
3679
|
|
|
3680
|
+
/**
|
|
3681
|
+
* Answers one question: would appending this text after the fence that
|
|
3682
|
+
* `buildSkillManifest` writes produce a *second* frontmatter block?
|
|
3683
|
+
*
|
|
3684
|
+
* That happens when the text's first non-blank line is a bare `---` and some
|
|
3685
|
+
* later line is a bare `---` too — the exact shape of a `SKILL.md` pasted
|
|
3686
|
+
* wholesale into the editor's Instructions field.
|
|
3687
|
+
*
|
|
3688
|
+
* Detection is deliberately structural rather than YAML-based: a pasted block
|
|
3689
|
+
* whose fenced content fails to parse corrupts the stored manifest
|
|
3690
|
+
* identically (and renders as a setext `h2` in the Catalog's Details tab just
|
|
3691
|
+
* the same), so requiring parseable YAML here would let the worst cases
|
|
3692
|
+
* through. Keeping `parseYaml` out also makes this cheap enough to run on
|
|
3693
|
+
* every keystroke.
|
|
3694
|
+
*
|
|
3695
|
+
* A single unclosed fence returns `false`: with no closing fence there is no
|
|
3696
|
+
* second block, matching `FRONTMATTER_PATTERN`'s own requirement. A `---`
|
|
3697
|
+
* appearing later in the body (a horizontal rule, a setext underline) is
|
|
3698
|
+
* likewise not a frontmatter block.
|
|
3699
|
+
*/
|
|
3700
|
+
export declare const startsWithFrontmatterBlock: (text: string) => boolean;
|
|
3701
|
+
|
|
3674
3702
|
/** Options accepted by {@link ConversationStreamTransport.streamCompletion}. */
|
|
3675
3703
|
export declare interface StreamCompletionOptions {
|
|
3676
3704
|
onChunk: (chunk: StreamChunk) => void;
|
|
@@ -5000,11 +5028,11 @@ export declare interface UseDialFileManagerResult {
|
|
|
5000
5028
|
* current one becomes excluded. A `fileManagerTabs` of `undefined` means no
|
|
5001
5029
|
* restriction — every tab in `allTabs` stays enabled and no reset ever fires.
|
|
5002
5030
|
*/
|
|
5003
|
-
export declare const useDialFileManagerTabConfig: (activeTab: DialFileManagerTabs, onTabChange: (tab: DialFileManagerTabs) => void, allTabs:
|
|
5031
|
+
export declare const useDialFileManagerTabConfig: (activeTab: DialFileManagerTabs, onTabChange: (tab: DialFileManagerTabs) => void, allTabs: FilterChipItem<DialFileManagerTabs>[] | undefined, fileManagerTabs: string[] | undefined) => UseDialFileManagerTabConfigResult;
|
|
5004
5032
|
|
|
5005
5033
|
/** Values returned by `useDialFileManagerTabConfig`. */
|
|
5006
5034
|
export declare interface UseDialFileManagerTabConfigResult {
|
|
5007
|
-
tabs:
|
|
5035
|
+
tabs: FileTreeOptions['tabs'];
|
|
5008
5036
|
}
|
|
5009
5037
|
|
|
5010
5038
|
/**
|
|
@@ -5234,7 +5262,7 @@ export declare interface UseFileAttachmentPickerResult {
|
|
|
5234
5262
|
/** Active tab. */
|
|
5235
5263
|
activeTab: DialFileManagerTabs;
|
|
5236
5264
|
/** Tab list filtered to `allowedTabs`; forward to `FileManagerAttachModal`'s `tabs` prop. */
|
|
5237
|
-
tabs:
|
|
5265
|
+
tabs: FileTreeOptions['tabs'];
|
|
5238
5266
|
/** Switches the active tab and clears the current selection. */
|
|
5239
5267
|
onTabChange: (tab: DialFileManagerTabs) => void;
|
|
5240
5268
|
/** Currently selected paths. */
|
|
@@ -5767,6 +5795,12 @@ export declare interface UseSkillEditorSubmitResult {
|
|
|
5767
5795
|
clearConflict: () => void;
|
|
5768
5796
|
/** Validates and submits the given form values. */
|
|
5769
5797
|
handleSubmit: (values: SkillEditorValues) => Promise<void>;
|
|
5798
|
+
/**
|
|
5799
|
+
* Re-runs the Instructions frontmatter check against the editor's current
|
|
5800
|
+
* values, so a pasted `SKILL.md` is flagged as the text lands rather than
|
|
5801
|
+
* only on submit. Pass as the editor's `onValuesChange`.
|
|
5802
|
+
*/
|
|
5803
|
+
handleValuesChange: (values: SkillEditorValues) => void;
|
|
5770
5804
|
}
|
|
5771
5805
|
|
|
5772
5806
|
/**
|
package/index.js
CHANGED
|
@@ -23,119 +23,119 @@ import { mapDeploymentDetailsDtoToEntityDetails as Q, mapEntityDetailsToCatalogD
|
|
|
23
23
|
import { mapDeploymentToCatalogItem as te, mapDeploymentToolsetCredentials as ne, mapToolsetToCatalogItem as re, resolveDeploymentFolder as ie } from "./catalog/map-deployment-to-catalog-item.js";
|
|
24
24
|
import { PromptSource as ae, parsePromptResourceUrl as oe } from "./prompt/prompt-resource.js";
|
|
25
25
|
import { buildPromptOverview as se, isOrganisationPromptItem as ce, mapPromptToCatalogItem as le } from "./catalog/map-prompt-to-catalog-item.js";
|
|
26
|
-
import { SKILL_FILE_UPLOAD_MAX_BYTES as ue, SKILL_MANIFEST_FILE as de, SKILL_UPLOAD_MAX_FILES as fe, SKILL_UPLOAD_MAX_TOTAL_BYTES as pe, buildSkillFilesPayload as me, buildSkillManifest as he, buildSkillManifestForSubmit as ge, buildSkillManifestFromFrontmatter as _e, isValidSkillRelativePath as ve, nameFromPath as ye, normalizeSkillName as be, parseSkillManifest as xe, skillFileBytesToBlob as Se,
|
|
27
|
-
import { PUBLIC_SKILL_BUCKET as
|
|
28
|
-
import { buildSkillContentTree as
|
|
29
|
-
import { McpResourceKind as
|
|
30
|
-
import { getPublicCatalogEntityFolderPath as
|
|
31
|
-
import { deriveAvailableTabIds as
|
|
32
|
-
import { CatalogPrimaryActionType as
|
|
33
|
-
import { useCatalogEditNavigation as
|
|
34
|
-
import { parseSkillManifestDocument as
|
|
35
|
-
import { useSkillItemDetails as
|
|
36
|
-
import { useCatalogItemDetails as
|
|
37
|
-
import { OAuthResourceKind as
|
|
38
|
-
import { emitToolsetLoginSuccess as
|
|
39
|
-
import { getToolsetOAuthChannelName as
|
|
40
|
-
import { buildToolsetAuthorizeUrl as
|
|
41
|
-
import { initiateOAuthLogin as
|
|
42
|
-
import { ToolsetLoginOutcomeType as
|
|
43
|
-
import { useCatalogToolsetCredentials as
|
|
44
|
-
import { useApplicationCredentials as
|
|
45
|
-
import { useSkillDetailsPanelData as
|
|
46
|
-
import { FavoriteEntityType as
|
|
47
|
-
import { usePublishFolders as
|
|
48
|
-
import { buildAnnouncementSignature as
|
|
49
|
-
import { DEFAULT_GENERATION_CONFLICT_MESSAGE as
|
|
50
|
-
import { shouldWatchForDisplayNameUpdate as
|
|
51
|
-
import { formatAppVersion as
|
|
52
|
-
import { getModelIdFromConversationId as
|
|
53
|
-
import { getTimeOfDayGreeting as
|
|
54
|
-
import { createDeploymentChangedMessage as
|
|
55
|
-
import { getLastDeploymentId as
|
|
56
|
-
import { toOverlayMessages as
|
|
57
|
-
import { getQuickAppConversationStarters as
|
|
58
|
-
import { mapStages as
|
|
59
|
-
import { getStarterPopulateText as
|
|
60
|
-
import { useOAuthCallbackCompletion as
|
|
61
|
-
import { buildPromptExportEnvelope as
|
|
62
|
-
import { PROMPT_CONTENT_MAX_LENGTH as
|
|
63
|
-
import { usePromptsState as
|
|
64
|
-
import { UnsupportedTriggerReason as
|
|
65
|
-
import { apSchedulerDayToJsDay as
|
|
66
|
-
import { mapFormValuesToCreateBody as
|
|
67
|
-
import { validateSkillFileBatch as
|
|
68
|
-
import { skillFileToAttachment as
|
|
69
|
-
import { SkillEditorLoadState as
|
|
70
|
-
import { useSkillEditorSubmit as
|
|
71
|
-
import { useSkillFileActions as
|
|
72
|
-
import { SkillPreviewErrorKind as
|
|
73
|
-
import { useSkillsState as
|
|
74
|
-
import { SkillArchiveImportErrorKind as
|
|
75
|
-
import { RecipientsCountStatus as
|
|
76
|
-
import { deriveConversationRowActionState as
|
|
77
|
-
import { useActiveConversationSync as
|
|
78
|
-
import { useAsyncConfirmDialog as
|
|
79
|
-
import { useConversationLookupMaps as
|
|
80
|
-
import { getConversationSource as
|
|
81
|
-
import { useImportFilePicker as
|
|
82
|
-
import { sanitizeFileName as
|
|
83
|
-
import { useAttachmentUpload as
|
|
84
|
-
import { AudioTranscriptionError as
|
|
85
|
-
import { useTranscribeAudio as
|
|
86
|
-
import { DEFAULT_MAX_ARCHIVE_BYTES as
|
|
87
|
-
import { attachmentToDto as
|
|
88
|
-
import { createMessagePair as
|
|
89
|
-
import { hasActiveToolConfig as
|
|
90
|
-
import { getStarterConversationText as
|
|
91
|
-
import { getConversationPath as
|
|
92
|
-
import { useConversationHandlers as
|
|
93
|
-
import { useConversationImport as
|
|
94
|
-
import { useConversationScroll as
|
|
95
|
-
import { applyChunkToMessages as
|
|
96
|
-
import { isAwaitingGenerationResume as
|
|
97
|
-
import { useConversationStream as
|
|
98
|
-
import { useConversationSources as
|
|
99
|
-
import { DialFilesApiUploadMode as
|
|
100
|
-
import { FileManagerNotificationReason as
|
|
101
|
-
import { COLUMNS_WITHOUT_AUTHOR as
|
|
102
|
-
import { DialFileManagerActionProfile as
|
|
103
|
-
import { buildSharedItemVirtualPath as
|
|
104
|
-
import { getParentFolderPath as
|
|
105
|
-
import { prepareCopyItems as
|
|
106
|
-
import { buildFromCache as
|
|
107
|
-
import { createFilesApiClient as
|
|
108
|
-
import { createUploadFileWithProgress as
|
|
109
|
-
import { openAnnotationAttachment as
|
|
110
|
-
import { annotationToOoxmlCanvasContent as
|
|
111
|
-
import { getUrlFileName as
|
|
112
|
-
import { annotationToDisplayAttachment as
|
|
113
|
-
import { dialFileToAttachment as
|
|
114
|
-
import { DownloadDestinationType as
|
|
115
|
-
import { prepareDownloadDestination as
|
|
116
|
-
import { useDialFileListing as
|
|
117
|
-
import { useDialFileMetadata as
|
|
118
|
-
import { useDialFileMutations as
|
|
119
|
-
import { useDialFileSharing as
|
|
120
|
-
import { useDialFileUploadBatch as
|
|
121
|
-
import { useDialFileManager as
|
|
122
|
-
import { useDialFileManagerTabConfig as
|
|
123
|
-
import { useFileAttachmentPicker as
|
|
124
|
-
import { isCustomAppSchema as
|
|
125
|
-
import { getBrowserTimezone as
|
|
126
|
-
import { isValidAbsoluteUrl as
|
|
127
|
-
import { buildExternalServiceScopeId as
|
|
128
|
-
import { useChatSettingsFormConfig as
|
|
129
|
-
import { usePageFileDrag as
|
|
130
|
-
import { useViewportWidth as
|
|
131
|
-
import { usePanelMaxWidth as
|
|
132
|
-
import { useShareLink as
|
|
133
|
-
import { useToolsMenu as
|
|
134
|
-
import { useUsageData as
|
|
135
|
-
import { McpAppResourceFetchError as
|
|
136
|
-
import { useMcpAppTools as
|
|
137
|
-
import { useMcpAppHostContext as
|
|
138
|
-
import { useMcpAppHostAdapter as
|
|
139
|
-
import { useOpenMcpAppCanvas as
|
|
140
|
-
import { useGridEditingScroll as
|
|
141
|
-
export { x as AttachmentValidationErrorReason, $n as AudioTranscriptionError, er as AudioTranscriptionErrorReason, R as AuthenticationType, Dr as COLUMNS_WITHOUT_AUTHOR, Or as COLUMNS_WITH_AUTHOR, kr as CORE_PERMISSION_MAP, $e as CatalogPrimaryActionType, T as ConversationExportMode, E as ConversationTransferErrorCode, D as ConversationTransferWarningCode, Ar as DATE_OPTIONS, Rt as DEFAULT_GENERATION_CONFLICT_MESSAGE, nr as DEFAULT_MAX_ARCHIVE_BYTES, Pr as DialFileManagerActionProfile, Fr as DialFileManagerVariant, Cr as DialFilesApiUploadMode, Li as DownloadDestinationType, k as EXPORT_APP_NAME, O as ExportFileNameKind, At as FavoriteEntityType, wr as FileManagerNotificationReason, Tr as FileNameValidationErrorReason, Er as FileOperationKind, zt as GenerationConflictError, la as McpAppResourceFetchError, Re as McpResourceKind, at as OAuthResourceKind, jr as PATH_SEPARATOR_REGEXP, ln as PROMPT_CONTENT_MAX_LENGTH, un as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, dn as PROMPT_DESCRIPTION_MAX_LENGTH, fn as PROMPT_NAME_MAX_LENGTH, we as PUBLIC_SKILL_BUCKET, pn as PromptFieldError, ae as PromptSource, Mr as RESERVED_MARKER_NAME, Bn as RecipientsCountStatus, ue as SKILL_FILE_UPLOAD_MAX_BYTES, Te as SKILL_LISTING_MAX_PAGES, Ee as SKILL_LISTING_PAGE_SIZE, de as SKILL_MANIFEST_FILE, De as SKILL_MANIFEST_MAX_BYTES, fe as SKILL_UPLOAD_MAX_FILES, pe as SKILL_UPLOAD_MAX_TOTAL_BYTES, Fn as SkillArchiveImportErrorKind, In as SkillArchiveImportStatus, Ln as SkillArchiveSelectionRejectionReason, On as SkillEditorLoadState, Mn as SkillPreviewErrorKind, Oe as SkillSource, ot as TOOLSET_REDIRECT_STATE_KEY, st as ToolsetAuthStatus, ct as ToolsetAuthTypes, lt as ToolsetCredentialsLevel, Tt as ToolsetLoginOutcomeType, ut as ToolsetOAuthCallbackQuery, dt as ToolsetOAuthChannelControlType, ft as ToolsetOAuthFailureReason, pt as ToolsetOAuthInitiationResultType, mt as ToolsetOAuthResultType, Nr as UPLOAD_CONCURRENCY, bn as UnsupportedTriggerReason, ht as WithLogin, ji as annotationToDisplayAttachment, pi as annotationToOoxmlCanvasContent, mi as annotationToPdfCanvasContent, xn as apSchedulerDayToJsDay, W as appendLocaleCode, vr as applyChunkToMessages, Mi as attachmentDtoToDisplayAttachment, Ni as attachmentDtosToDisplayAttachments, ir as attachmentToDto, ar as attachmentsToDtos, G as buildAdditionalLocaleOptions, Nt as buildAnnouncementSignature, ze as buildApplicationMcpUrl, N as buildChatCompletionsUrl, Be as buildConnectApi, P as buildDeploymentConnectApi, $i as buildExternalServiceScopeId, ti as buildFromCache, on as buildPromptExportEnvelope, sn as buildPromptExportFileName, se as buildPromptOverview, mn as buildPromptPath, F as buildResponsesUrl, Lr as buildSharedItemVirtualPath, Ae as buildSkillContentTree, me as buildSkillFilesPayload, he as buildSkillManifest, ge as buildSkillManifestForSubmit, _e as buildSkillManifestFromFrontmatter, je as buildSkillOverview, bt as buildToolsetAuthorizeUrl, Ve as buildToolsetMcpUrl, Rn as classifySkillArchiveImportError, hi as clearAttachmentCache, K as composeLocalePayload, Bt as createChatStreamApi, i as createCsrfMiddleware, Kt as createDeploymentChangedMessage, ui as createFilesApiClient, ua as createMcpAppsApiClient, or as createMessagePair, j as createPublishApiClient, a as createUnauthorizedMiddleware, di as createUploadFileWithProgress, V as decodeToolsetId, q as decomposeLocalizedFields, Ir as deriveActionProfile, Je as deriveAvailableTabIds, Hn as deriveConversationRowActionState, Ye as deriveFavoriteItems, Rr as dialCorePathToRelative, Pi as dialFileToAttachment, Fi as dialFilesToAttachments, Ii as dialFolderPathToAttachment, m as downloadAttachment, gt as emitToolsetLoginSuccess, I as encodeDeploymentId, H as encodeToolsetId, ni as fetchByTab, ri as fetchForSearch, Xe as filterCatalogItemsBySelector, Ze as filterHiddenOwnedItems, L as findDeploymentByIdOrReference, zr as findDialFileByPath, ii as findFirstSuccessfulCopyMoveItem, Br as findFolderByVirtualPath, Ht as formatAppVersion, X as formatCalendarDate, C as formatDateYM, w as formatDateYMD, Vr as formatOperationFolderName, A as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, Yi as getBrowserTimezone, mr as getConversationPath, Kn as getConversationSource, ea as getExternalServiceFallbackName, qt as getLastDeploymentId, Jt as getLastUserMessageToolConfiguration, Wt as getModelIdFromConversationId, Xr as getParentFolderPath, Ue as getPublicCatalogEntityFolderPath, $t as getQuickAppConversationStarters, hn as getRemainingCharacters, dr as getStarterConversationText, fr as getStarterDisplayText, nn as getStarterPopulateText, pr as getStarterSubmitText, rn as getStartersFromSchema, Gt as getTimeOfDayGreeting, vt as getToolsetOAuthChannelName, xt as getToolsetRedirectUri, Oi as getUrlFileName, Hr as getVirtualPathName, sr as hasActiveToolConfig, Pt as hasAnnouncementContent, gi as hasAttachmentTextSource, Ur as hasDialFileWritePermission, Wr as hasForbiddenNameSymbols, Ft as hasStructuredAnnouncement, o as includesIgnoreCase, St as initiateOAuthLogin, cr as isAnswerIncomplete, br as isAwaitingGenerationResume, r as isConversationNotFoundError, Gr as isCopyMoveDuplicateAllowed, qi as isCustomAppSchema, _ as isDialFileAcceptType, d as isDialFileId, h as isDownloadableAttachment, ki as isExternalSourcePreviewable, lr as isMessageChanged, Yt as isMessageStreaming, ce as isOrganisationPromptItem, We as isPublicCatalogEntityId, U as isPublicToolsetId, Ji as isQuickAppSchema, Kr as isShareActionsAllowed, Xi as isValidAbsoluteUrl, Zi as isValidFeaturesData, ve as isValidSkillRelativePath, Sn as jsDayToApSchedulerDay, ai as mapCorePermissions, Q as mapDeploymentDetailsDtoToEntityDetails, z as mapDeploymentLimitsDtoToCatalogLimits, B as mapDeploymentLimitsToInput, te as mapDeploymentToCatalogItem, ne as mapDeploymentToolsetCredentials, $ as mapEntityDetailsToCatalogDetails, oi as mapFileMetadataToDialFile, Cn as mapFormValuesToCreateBody, wn as mapFormValuesToUpdateBody, le as mapPromptToCatalogItem, Ge as mapPublishConversationResultDto, Ke as mapPublishHistoryEntryDto, Tn as mapScheduledTaskDtoToFormValues, si as mapSearchItem, Me as mapSkillToCatalogItem, en as mapStages, ee as mapToolsetCredentials, re as mapToolsetToCatalogItem, ci as mergeCreatedFolderIntoCache, yr as mergeStages, Xt as messageHasStages, v as mimeTypesToAttachmentExtensionLabels, y as mimeTypesToDialFileAcceptTypes, b as mimeTypesToFileAccept, ye as nameFromPath, Ct as navigateToolsetOAuthPopup, Zt as normalizeResponseFormat, be as normalizeSkillName, qr as normalizeVirtualPath, fi as openAnnotationAttachment, wt as openToolsetOAuthPopup, Z as padTwoDigits, ta as parseExternalServiceUrl, Qi as parseFeaturesData, Jr as parseNewFolderVirtualPath, oe as parsePromptResourceUrl, xe as parseSkillManifest, nt as parseSkillManifestDocument, ke as parseSkillResourceUrl, $r as prepareCopyItems, Ri as prepareDownloadDestination, ei as prepareMoveRenameItems, Ne as readSkillFileBytes, Pe as readSkillFilePreviewBytes, Fe as readSkillManifest, Qe as reconcileFilterTopics, _i as referenceAttachmentToPdfCanvasContent, et as resolveCatalogPrimaryAction, vi as resolveCodeCanvasContent, ie as resolveDeploymentFolder, Zr as resolveDialFileApiPath, f as resolveDialFileBucketAndPath, Ai as resolveExternalSourceContentType, yi as resolveGroupedVisualizerCanvasContent, bi as resolveHtmlCanvasContent, xi as resolveImageCanvasContent, Si as resolveJsonCanvasContent, J as resolveLocalizedText, Ci as resolveMarkdownCanvasContent, He as resolveMcpResourceKind, wi as resolveOoxmlCanvasContent, Yr as resolveOwnerCoords, Ti as resolvePdfCanvasContent, p as resolveRelativeDialFilePath, Ie as resolveSkillFileDownloadPath, Le as resolveSkillManifestFileId, Ei as resolveTextCanvasContent, Di as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, It as sanitizeAnnouncementHtml, Lt as sanitizeAnnouncementMessageHtml, Yn as sanitizeFileName, Ut as sanitizeFooterHtml, cn as serializePromptExport, ur as shouldRerunGenerationOnEdit, Vt as shouldWatchForDisplayNameUpdate, Se as skillFileBytesToBlob, Dn as skillFileToAttachment, Xn as splitFileNameExtension, l as stripSurroundingSlashes, u as stripTrailingSlashes, _t as subscribeToolsetLoginSuccess, Y as toBaseLocale, Qt as toOverlayMessages, qe as toPublishEntityType, M as toPublishRuleDto, tn as toStage, Zn as trimFileNameToByteLimit, Ce as unpackSkillArchive, li as updateEntry, Un as useActiveConversationSync, Ot as useApplicationCredentials, Wn as useAsyncConfirmDialog, g as useAttachmentAction, Qn as useAttachmentUpload, S as useAttachmentValidation, tt as useCatalogEditNavigation, it as useCatalogItemDetails, Dt as useCatalogToolsetCredentials, na as useChatSettingsFormConfig, rr as useConversationExport, hr as useConversationHandlers, gr as useConversationImport, Gn as useConversationLookupMaps, qn as useConversationPanelItems, _r as useConversationScroll, Sr as useConversationSources, xr as useConversationStream, zi as useDialFileListing, Wi as useDialFileManager, Gi as useDialFileManagerTabConfig, Bi as useDialFileMetadata, Vi as useDialFileMutations, Hi as useDialFileSharing, Ui as useDialFileUploadBatch, jt as useFavoriteEntitiesState, Ki as useFileAttachmentPicker, ha as useGridEditingScroll, Jn as useImportFilePicker, pa as useMcpAppHostAdapter, fa as useMcpAppHostContext, da as useMcpAppTools, an as useOAuthCallbackCompletion, ma as useOpenMcpAppCanvas, ra as usePageFileDrag, aa as usePanelMaxWidth, yn as usePromptsState, Mt as usePublishFolders, oa as useShareLink, Vn as useShareRecipientsCount, zn as useSkillArchiveImport, kt as useSkillDetailsPanelData, kn as useSkillEditorLoad, An as useSkillEditorSubmit, jn as useSkillFileActions, Nn as useSkillFilePreview, rt as useSkillItemDetails, Pn as useSkillsState, sa as useToolsMenu, Et as useToolsetLogin, tr as useTranscribeAudio, ca as useUsageData, ia as useViewportWidth, gn as validatePromptContent, _n as validatePromptDescription, vn as validatePromptName, En as validateSkillFileBatch, Qr as virtualPathToApiPath, yt as waitForToolsetOAuthResult };
|
|
26
|
+
import { SKILL_FILE_UPLOAD_MAX_BYTES as ue, SKILL_MANIFEST_FILE as de, SKILL_UPLOAD_MAX_FILES as fe, SKILL_UPLOAD_MAX_TOTAL_BYTES as pe, buildSkillFilesPayload as me, buildSkillManifest as he, buildSkillManifestForSubmit as ge, buildSkillManifestFromFrontmatter as _e, isValidSkillRelativePath as ve, nameFromPath as ye, normalizeSkillName as be, parseSkillManifest as xe, skillFileBytesToBlob as Se, startsWithFrontmatterBlock as Ce, unpackSkillArchive as we } from "./skill/skill.js";
|
|
27
|
+
import { PUBLIC_SKILL_BUCKET as Te, SKILL_LISTING_MAX_PAGES as Ee, SKILL_LISTING_PAGE_SIZE as De, SKILL_MANIFEST_MAX_BYTES as Oe, SkillSource as ke, parseSkillResourceUrl as Ae } from "./skill/skill-types.js";
|
|
28
|
+
import { buildSkillContentTree as je, buildSkillOverview as Me, mapSkillToCatalogItem as Ne, readSkillFileBytes as Pe, readSkillFilePreviewBytes as Fe, readSkillManifest as Ie, resolveSkillFileDownloadPath as Le, resolveSkillManifestFileId as Re } from "./catalog/map-skill-to-catalog-item.js";
|
|
29
|
+
import { McpResourceKind as ze, buildApplicationMcpUrl as Be, buildConnectApi as Ve, buildToolsetMcpUrl as He, resolveMcpResourceKind as Ue } from "./catalog/mcp-endpoint-url.js";
|
|
30
|
+
import { getPublicCatalogEntityFolderPath as We, isPublicCatalogEntityId as Ge, mapPublishConversationResultDto as Ke, mapPublishHistoryEntryDto as qe, toPublishEntityType as Je } from "./catalog/publish.js";
|
|
31
|
+
import { deriveAvailableTabIds as Ye, deriveFavoriteItems as Xe, filterCatalogItemsBySelector as Ze, filterHiddenOwnedItems as Qe, reconcileFilterTopics as $e } from "./catalog/catalog-derivations.js";
|
|
32
|
+
import { CatalogPrimaryActionType as et, resolveCatalogPrimaryAction as tt } from "./catalog/catalog-primary-action.js";
|
|
33
|
+
import { useCatalogEditNavigation as nt } from "./catalog/useCatalogEditNavigation/useCatalogEditNavigation.js";
|
|
34
|
+
import { parseSkillManifestDocument as rt } from "./skill/skill-manifest.js";
|
|
35
|
+
import { useSkillItemDetails as it } from "./catalog/useSkillItemDetails.js";
|
|
36
|
+
import { useCatalogItemDetails as at } from "./catalog/useCatalogItemDetails.js";
|
|
37
|
+
import { OAuthResourceKind as ot, TOOLSET_REDIRECT_STATE_KEY as st, ToolsetAuthStatus as ct, ToolsetAuthTypes as lt, ToolsetCredentialsLevel as ut, ToolsetOAuthCallbackQuery as dt, ToolsetOAuthChannelControlType as ft, ToolsetOAuthFailureReason as pt, ToolsetOAuthInitiationResultType as mt, ToolsetOAuthResultType as ht, WithLogin as gt } from "./oauth/types.js";
|
|
38
|
+
import { emitToolsetLoginSuccess as _t, subscribeToolsetLoginSuccess as vt } from "./shared/toolset-login-events.js";
|
|
39
|
+
import { getToolsetOAuthChannelName as yt, waitForToolsetOAuthResult as bt } from "./oauth/handshake.js";
|
|
40
|
+
import { buildToolsetAuthorizeUrl as xt, getToolsetRedirectUri as St } from "./oauth/authorize-url.js";
|
|
41
|
+
import { initiateOAuthLogin as Ct, navigateToolsetOAuthPopup as wt, openToolsetOAuthPopup as Tt } from "./oauth/popup.js";
|
|
42
|
+
import { ToolsetLoginOutcomeType as Et, useToolsetLogin as Dt } from "./oauth/useToolsetLogin/useToolsetLogin.js";
|
|
43
|
+
import { useCatalogToolsetCredentials as Ot } from "./catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js";
|
|
44
|
+
import { useApplicationCredentials as kt } from "./catalog/useApplicationCredentials/useApplicationCredentials.js";
|
|
45
|
+
import { useSkillDetailsPanelData as At } from "./catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.js";
|
|
46
|
+
import { FavoriteEntityType as jt, useFavoriteEntitiesState as Mt } from "./catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js";
|
|
47
|
+
import { usePublishFolders as Nt } from "./catalog/usePublishFolders/usePublishFolders.js";
|
|
48
|
+
import { buildAnnouncementSignature as Pt, hasAnnouncementContent as Ft, hasStructuredAnnouncement as It, sanitizeAnnouncementHtml as Lt, sanitizeAnnouncementMessageHtml as Rt } from "./conversation/announcement-message.js";
|
|
49
|
+
import { DEFAULT_GENERATION_CONFLICT_MESSAGE as zt, GenerationConflictError as Bt, createChatStreamApi as Vt } from "./conversation/create-chat-stream-api.js";
|
|
50
|
+
import { shouldWatchForDisplayNameUpdate as Ht } from "./conversation/display-name-watch.js";
|
|
51
|
+
import { formatAppVersion as Ut, sanitizeFooterHtml as Wt } from "./conversation/footer-message.js";
|
|
52
|
+
import { getModelIdFromConversationId as Gt } from "./conversation/get-model-id-from-conversation-id.js";
|
|
53
|
+
import { getTimeOfDayGreeting as Kt } from "./conversation/greeting.js";
|
|
54
|
+
import { createDeploymentChangedMessage as qt } from "./conversation/message-factory.js";
|
|
55
|
+
import { getLastDeploymentId as Jt, getLastUserMessageToolConfiguration as Yt, isMessageStreaming as Xt, messageHasStages as Zt, normalizeResponseFormat as Qt } from "./conversation/message-utils.js";
|
|
56
|
+
import { toOverlayMessages as $t } from "./conversation/overlay-messages.js";
|
|
57
|
+
import { getQuickAppConversationStarters as en } from "./conversation/quick-app-conversation-starters.js";
|
|
58
|
+
import { mapStages as tn, toStage as nn } from "./conversation/stage.js";
|
|
59
|
+
import { getStarterPopulateText as rn, getStartersFromSchema as an } from "./conversation/starter-option.js";
|
|
60
|
+
import { useOAuthCallbackCompletion as on } from "./oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js";
|
|
61
|
+
import { buildPromptExportEnvelope as sn, buildPromptExportFileName as cn, serializePromptExport as ln } from "./prompt/export-prompt.js";
|
|
62
|
+
import { PROMPT_CONTENT_MAX_LENGTH as un, PROMPT_COUNTER_ANNOUNCE_THRESHOLD as dn, PROMPT_DESCRIPTION_MAX_LENGTH as fn, PROMPT_NAME_MAX_LENGTH as pn, PromptFieldError as mn, buildPromptPath as hn, getRemainingCharacters as gn, validatePromptContent as _n, validatePromptDescription as vn, validatePromptName as yn } from "./prompt/prompt.js";
|
|
63
|
+
import { usePromptsState as bn } from "./prompt/usePromptsState/usePromptsState.js";
|
|
64
|
+
import { UnsupportedTriggerReason as xn } from "./scheduled-task/scheduled-task-mapping.js";
|
|
65
|
+
import { apSchedulerDayToJsDay as Sn, jsDayToApSchedulerDay as Cn } from "./shared/cron-weekday.js";
|
|
66
|
+
import { mapFormValuesToCreateBody as wn, mapFormValuesToUpdateBody as Tn, mapScheduledTaskDtoToFormValues as En } from "./scheduled-task/scheduled-task-trigger.js";
|
|
67
|
+
import { validateSkillFileBatch as Dn } from "./skill/skill-file-batch-validation.js";
|
|
68
|
+
import { skillFileToAttachment as On } from "./skill/skill-file-preview.js";
|
|
69
|
+
import { SkillEditorLoadState as kn, useSkillEditorLoad as An } from "./skill/useSkillEditorLoad.js";
|
|
70
|
+
import { useSkillEditorSubmit as jn } from "./skill/useSkillEditorSubmit.js";
|
|
71
|
+
import { useSkillFileActions as Mn } from "./skill/useSkillFileActions.js";
|
|
72
|
+
import { SkillPreviewErrorKind as Nn, useSkillFilePreview as Pn } from "./skill/useSkillFilePreview.js";
|
|
73
|
+
import { useSkillsState as Fn } from "./skill/useSkillsState/useSkillsState.js";
|
|
74
|
+
import { SkillArchiveImportErrorKind as In, SkillArchiveImportStatus as Ln, SkillArchiveSelectionRejectionReason as Rn, classifySkillArchiveImportError as zn, useSkillArchiveImport as Bn } from "./skill/useSkillArchiveImport/useSkillArchiveImport.js";
|
|
75
|
+
import { RecipientsCountStatus as Vn, useShareRecipientsCount as Hn } from "./useShareRecipientsCount/useShareRecipientsCount.js";
|
|
76
|
+
import { deriveConversationRowActionState as Un } from "./conversation/deriveConversationRowActionState/deriveConversationRowActionState.js";
|
|
77
|
+
import { useActiveConversationSync as Wn } from "./conversation/useActiveConversationSync/useActiveConversationSync.js";
|
|
78
|
+
import { useAsyncConfirmDialog as Gn } from "./conversation/useAsyncConfirmDialog/useAsyncConfirmDialog.js";
|
|
79
|
+
import { useConversationLookupMaps as Kn } from "./conversation/useConversationLookupMaps/useConversationLookupMaps.js";
|
|
80
|
+
import { getConversationSource as qn, useConversationPanelItems as Jn } from "./conversation/useConversationPanelItems/useConversationPanelItems.js";
|
|
81
|
+
import { useImportFilePicker as Yn } from "./conversation/useImportFilePicker/useImportFilePicker.js";
|
|
82
|
+
import { sanitizeFileName as Xn, splitFileNameExtension as Zn, trimFileNameToByteLimit as Qn } from "./files/file-name.js";
|
|
83
|
+
import { useAttachmentUpload as $n } from "./conversation/useAttachmentUpload/useAttachmentUpload.js";
|
|
84
|
+
import { AudioTranscriptionError as er, AudioTranscriptionErrorReason as tr } from "./conversation/useTranscribeAudio/audio-transcription-error.js";
|
|
85
|
+
import { useTranscribeAudio as nr } from "./conversation/useTranscribeAudio/useTranscribeAudio.js";
|
|
86
|
+
import { DEFAULT_MAX_ARCHIVE_BYTES as rr, useConversationExport as ir } from "./conversation/useConversationExport/useConversationExport.js";
|
|
87
|
+
import { attachmentToDto as ar, attachmentsToDtos as or } from "./conversation/useConversationHandlers/attachment-to-dto.js";
|
|
88
|
+
import { createMessagePair as sr } from "./conversation/useConversationHandlers/message-factory.js";
|
|
89
|
+
import { hasActiveToolConfig as cr, isAnswerIncomplete as lr, isMessageChanged as ur, shouldRerunGenerationOnEdit as dr } from "./conversation/useConversationHandlers/message-utils.js";
|
|
90
|
+
import { getStarterConversationText as fr, getStarterDisplayText as pr, getStarterSubmitText as mr } from "./conversation/useConversationHandlers/starter-option.js";
|
|
91
|
+
import { getConversationPath as hr } from "./conversation/useConversationStream/conversation-path.js";
|
|
92
|
+
import { useConversationHandlers as gr } from "./conversation/useConversationHandlers/useConversationHandlers.js";
|
|
93
|
+
import { useConversationImport as _r } from "./conversation/useConversationImport/useConversationImport.js";
|
|
94
|
+
import { useConversationScroll as vr } from "./conversation/useConversationScroll/useConversationScroll.js";
|
|
95
|
+
import { applyChunkToMessages as yr, mergeStages as br } from "./conversation/useConversationStream/apply-chunk.js";
|
|
96
|
+
import { isAwaitingGenerationResume as xr } from "./conversation/useConversationStream/generation-resume.js";
|
|
97
|
+
import { useConversationStream as Sr } from "./conversation/useConversationStream/useConversationStream.js";
|
|
98
|
+
import { useConversationSources as Cr } from "./conversation-sources/useConversationSources/useConversationSources.js";
|
|
99
|
+
import { DialFilesApiUploadMode as wr } from "./files/dial-files-api.js";
|
|
100
|
+
import { FileManagerNotificationReason as Tr, FileNameValidationErrorReason as Er, FileOperationKind as Dr } from "./files/dial-file-manager.types.js";
|
|
101
|
+
import { COLUMNS_WITHOUT_AUTHOR as Or, COLUMNS_WITH_AUTHOR as kr, CORE_PERMISSION_MAP as Ar, DATE_OPTIONS as jr, PATH_SEPARATOR_REGEXP as Mr, RESERVED_MARKER_NAME as Nr, UPLOAD_CONCURRENCY as Pr } from "./files/dial-file-manager.model.js";
|
|
102
|
+
import { DialFileManagerActionProfile as Fr, DialFileManagerVariant as Ir, deriveActionProfile as Lr } from "./files/file-manager-variant.js";
|
|
103
|
+
import { buildSharedItemVirtualPath as Rr, dialCorePathToRelative as zr, findDialFileByPath as Br, findFolderByVirtualPath as Vr, formatOperationFolderName as Hr, getVirtualPathName as Ur, hasDialFileWritePermission as Wr, hasForbiddenNameSymbols as Gr, isCopyMoveDuplicateAllowed as Kr, isShareActionsAllowed as qr, normalizeVirtualPath as Jr, parseNewFolderVirtualPath as Yr, resolveOwnerCoords as Xr } from "./files/dial-file-manager-path.util.js";
|
|
104
|
+
import { getParentFolderPath as Zr, resolveDialFileApiPath as Qr, virtualPathToApiPath as $r } from "./files/resolve-dial-file-api-path.js";
|
|
105
|
+
import { prepareCopyItems as ei, prepareMoveRenameItems as ti } from "./files/dial-file-manager-copy-move.util.js";
|
|
106
|
+
import { buildFromCache as ni, fetchByTab as ri, fetchForSearch as ii, findFirstSuccessfulCopyMoveItem as ai, mapCorePermissions as oi, mapFileMetadataToDialFile as si, mapSearchItem as ci, mergeCreatedFolderIntoCache as li, updateEntry as ui } from "./files/dial-file-manager-mapping.util.js";
|
|
107
|
+
import { createFilesApiClient as di } from "./files/create-files-api.js";
|
|
108
|
+
import { createUploadFileWithProgress as fi } from "./files/create-upload-file-with-progress.js";
|
|
109
|
+
import { openAnnotationAttachment as pi } from "./files/annotation.js";
|
|
110
|
+
import { annotationToOoxmlCanvasContent as mi, annotationToPdfCanvasContent as hi, clearAttachmentCache as gi, hasAttachmentTextSource as _i, referenceAttachmentToPdfCanvasContent as vi, resolveCodeCanvasContent as yi, resolveGroupedVisualizerCanvasContent as bi, resolveHtmlCanvasContent as xi, resolveImageCanvasContent as Si, resolveJsonCanvasContent as Ci, resolveMarkdownCanvasContent as wi, resolveOoxmlCanvasContent as Ti, resolvePdfCanvasContent as Ei, resolveTextCanvasContent as Di, resolveVisualizerCanvasContent as Oi } from "./files/attachment-canvas.js";
|
|
111
|
+
import { getUrlFileName as ki, isExternalSourcePreviewable as Ai, resolveExternalSourceContentType as ji } from "./files/source-content.js";
|
|
112
|
+
import { annotationToDisplayAttachment as Mi, attachmentDtoToDisplayAttachment as Ni, attachmentDtosToDisplayAttachments as Pi } from "./files/attachment-dto-to-display.js";
|
|
113
|
+
import { dialFileToAttachment as Fi, dialFilesToAttachments as Ii, dialFolderPathToAttachment as Li } from "./files/dial-file-to-attachment.js";
|
|
114
|
+
import { DownloadDestinationType as Ri } from "./files/download-destination.js";
|
|
115
|
+
import { prepareDownloadDestination as zi } from "./files/prepare-download-destination.js";
|
|
116
|
+
import { useDialFileListing as Bi } from "./files/useDialFileListing/useDialFileListing.js";
|
|
117
|
+
import { useDialFileMetadata as Vi } from "./files/useDialFileMetadata/useDialFileMetadata.js";
|
|
118
|
+
import { useDialFileMutations as Hi } from "./files/useDialFileMutations/useDialFileMutations.js";
|
|
119
|
+
import { useDialFileSharing as Ui } from "./files/useDialFileSharing/useDialFileSharing.js";
|
|
120
|
+
import { useDialFileUploadBatch as Wi } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
|
|
121
|
+
import { useDialFileManager as Gi } from "./files/useDialFileManager/useDialFileManager.js";
|
|
122
|
+
import { useDialFileManagerTabConfig as Ki } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
|
|
123
|
+
import { useFileAttachmentPicker as qi } from "./files/useFileAttachmentPicker/useFileAttachmentPicker.js";
|
|
124
|
+
import { isCustomAppSchema as Ji, isQuickAppSchema as Yi } from "./shared/application-schema.js";
|
|
125
|
+
import { getBrowserTimezone as Xi } from "./shared/browser-timezone.js";
|
|
126
|
+
import { isValidAbsoluteUrl as Zi, isValidFeaturesData as Qi, parseFeaturesData as $i } from "./shared/custom-apps.js";
|
|
127
|
+
import { buildExternalServiceScopeId as ea, getExternalServiceFallbackName as ta, parseExternalServiceUrl as na } from "./shared/external-services.js";
|
|
128
|
+
import { useChatSettingsFormConfig as ra } from "./useChatSettingsFormConfig/useChatSettingsFormConfig.js";
|
|
129
|
+
import { usePageFileDrag as ia } from "./usePageFileDrag/usePageFileDrag.js";
|
|
130
|
+
import { useViewportWidth as aa } from "./useViewportWidth/useViewportWidth.js";
|
|
131
|
+
import { usePanelMaxWidth as oa } from "./usePanelMaxWidth/usePanelMaxWidth.js";
|
|
132
|
+
import { useShareLink as sa } from "./useShareLink/useShareLink.js";
|
|
133
|
+
import { useToolsMenu as ca } from "./useToolsMenu/useToolsMenu.js";
|
|
134
|
+
import { useUsageData as la } from "./usage/useUsageData/useUsageData.js";
|
|
135
|
+
import { McpAppResourceFetchError as ua, createMcpAppsApiClient as da } from "./mcp-apps/mcp-apps-api-client.js";
|
|
136
|
+
import { useMcpAppTools as fa } from "./mcp-apps/useMcpAppTools/useMcpAppTools.js";
|
|
137
|
+
import { useMcpAppHostContext as pa } from "./mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js";
|
|
138
|
+
import { useMcpAppHostAdapter as ma } from "./mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.js";
|
|
139
|
+
import { useOpenMcpAppCanvas as ha } from "./mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.js";
|
|
140
|
+
import { useGridEditingScroll as ga } from "@epam/ai-dial-chat-shared";
|
|
141
|
+
export { x as AttachmentValidationErrorReason, er as AudioTranscriptionError, tr as AudioTranscriptionErrorReason, R as AuthenticationType, Or as COLUMNS_WITHOUT_AUTHOR, kr as COLUMNS_WITH_AUTHOR, Ar as CORE_PERMISSION_MAP, et as CatalogPrimaryActionType, T as ConversationExportMode, E as ConversationTransferErrorCode, D as ConversationTransferWarningCode, jr as DATE_OPTIONS, zt as DEFAULT_GENERATION_CONFLICT_MESSAGE, rr as DEFAULT_MAX_ARCHIVE_BYTES, Fr as DialFileManagerActionProfile, Ir as DialFileManagerVariant, wr as DialFilesApiUploadMode, Ri as DownloadDestinationType, k as EXPORT_APP_NAME, O as ExportFileNameKind, jt as FavoriteEntityType, Tr as FileManagerNotificationReason, Er as FileNameValidationErrorReason, Dr as FileOperationKind, Bt as GenerationConflictError, ua as McpAppResourceFetchError, ze as McpResourceKind, ot as OAuthResourceKind, Mr as PATH_SEPARATOR_REGEXP, un as PROMPT_CONTENT_MAX_LENGTH, dn as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, fn as PROMPT_DESCRIPTION_MAX_LENGTH, pn as PROMPT_NAME_MAX_LENGTH, Te as PUBLIC_SKILL_BUCKET, mn as PromptFieldError, ae as PromptSource, Nr as RESERVED_MARKER_NAME, Vn as RecipientsCountStatus, ue as SKILL_FILE_UPLOAD_MAX_BYTES, Ee as SKILL_LISTING_MAX_PAGES, De as SKILL_LISTING_PAGE_SIZE, de as SKILL_MANIFEST_FILE, Oe as SKILL_MANIFEST_MAX_BYTES, fe as SKILL_UPLOAD_MAX_FILES, pe as SKILL_UPLOAD_MAX_TOTAL_BYTES, In as SkillArchiveImportErrorKind, Ln as SkillArchiveImportStatus, Rn as SkillArchiveSelectionRejectionReason, kn as SkillEditorLoadState, Nn as SkillPreviewErrorKind, ke as SkillSource, st as TOOLSET_REDIRECT_STATE_KEY, ct as ToolsetAuthStatus, lt as ToolsetAuthTypes, ut as ToolsetCredentialsLevel, Et as ToolsetLoginOutcomeType, dt as ToolsetOAuthCallbackQuery, ft as ToolsetOAuthChannelControlType, pt as ToolsetOAuthFailureReason, mt as ToolsetOAuthInitiationResultType, ht as ToolsetOAuthResultType, Pr as UPLOAD_CONCURRENCY, xn as UnsupportedTriggerReason, gt as WithLogin, Mi as annotationToDisplayAttachment, mi as annotationToOoxmlCanvasContent, hi as annotationToPdfCanvasContent, Sn as apSchedulerDayToJsDay, W as appendLocaleCode, yr as applyChunkToMessages, Ni as attachmentDtoToDisplayAttachment, Pi as attachmentDtosToDisplayAttachments, ar as attachmentToDto, or as attachmentsToDtos, G as buildAdditionalLocaleOptions, Pt as buildAnnouncementSignature, Be as buildApplicationMcpUrl, N as buildChatCompletionsUrl, Ve as buildConnectApi, P as buildDeploymentConnectApi, ea as buildExternalServiceScopeId, ni as buildFromCache, sn as buildPromptExportEnvelope, cn as buildPromptExportFileName, se as buildPromptOverview, hn as buildPromptPath, F as buildResponsesUrl, Rr as buildSharedItemVirtualPath, je as buildSkillContentTree, me as buildSkillFilesPayload, he as buildSkillManifest, ge as buildSkillManifestForSubmit, _e as buildSkillManifestFromFrontmatter, Me as buildSkillOverview, xt as buildToolsetAuthorizeUrl, He as buildToolsetMcpUrl, zn as classifySkillArchiveImportError, gi as clearAttachmentCache, K as composeLocalePayload, Vt as createChatStreamApi, i as createCsrfMiddleware, qt as createDeploymentChangedMessage, di as createFilesApiClient, da as createMcpAppsApiClient, sr as createMessagePair, j as createPublishApiClient, a as createUnauthorizedMiddleware, fi as createUploadFileWithProgress, V as decodeToolsetId, q as decomposeLocalizedFields, Lr as deriveActionProfile, Ye as deriveAvailableTabIds, Un as deriveConversationRowActionState, Xe as deriveFavoriteItems, zr as dialCorePathToRelative, Fi as dialFileToAttachment, Ii as dialFilesToAttachments, Li as dialFolderPathToAttachment, m as downloadAttachment, _t as emitToolsetLoginSuccess, I as encodeDeploymentId, H as encodeToolsetId, ri as fetchByTab, ii as fetchForSearch, Ze as filterCatalogItemsBySelector, Qe as filterHiddenOwnedItems, L as findDeploymentByIdOrReference, Br as findDialFileByPath, ai as findFirstSuccessfulCopyMoveItem, Vr as findFolderByVirtualPath, Ut as formatAppVersion, X as formatCalendarDate, C as formatDateYM, w as formatDateYMD, Hr as formatOperationFolderName, A as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, Xi as getBrowserTimezone, hr as getConversationPath, qn as getConversationSource, ta as getExternalServiceFallbackName, Jt as getLastDeploymentId, Yt as getLastUserMessageToolConfiguration, Gt as getModelIdFromConversationId, Zr as getParentFolderPath, We as getPublicCatalogEntityFolderPath, en as getQuickAppConversationStarters, gn as getRemainingCharacters, fr as getStarterConversationText, pr as getStarterDisplayText, rn as getStarterPopulateText, mr as getStarterSubmitText, an as getStartersFromSchema, Kt as getTimeOfDayGreeting, yt as getToolsetOAuthChannelName, St as getToolsetRedirectUri, ki as getUrlFileName, Ur as getVirtualPathName, cr as hasActiveToolConfig, Ft as hasAnnouncementContent, _i as hasAttachmentTextSource, Wr as hasDialFileWritePermission, Gr as hasForbiddenNameSymbols, It as hasStructuredAnnouncement, o as includesIgnoreCase, Ct as initiateOAuthLogin, lr as isAnswerIncomplete, xr as isAwaitingGenerationResume, r as isConversationNotFoundError, Kr as isCopyMoveDuplicateAllowed, Ji as isCustomAppSchema, _ as isDialFileAcceptType, d as isDialFileId, h as isDownloadableAttachment, Ai as isExternalSourcePreviewable, ur as isMessageChanged, Xt as isMessageStreaming, ce as isOrganisationPromptItem, Ge as isPublicCatalogEntityId, U as isPublicToolsetId, Yi as isQuickAppSchema, qr as isShareActionsAllowed, Zi as isValidAbsoluteUrl, Qi as isValidFeaturesData, ve as isValidSkillRelativePath, Cn as jsDayToApSchedulerDay, oi as mapCorePermissions, Q as mapDeploymentDetailsDtoToEntityDetails, z as mapDeploymentLimitsDtoToCatalogLimits, B as mapDeploymentLimitsToInput, te as mapDeploymentToCatalogItem, ne as mapDeploymentToolsetCredentials, $ as mapEntityDetailsToCatalogDetails, si as mapFileMetadataToDialFile, wn as mapFormValuesToCreateBody, Tn as mapFormValuesToUpdateBody, le as mapPromptToCatalogItem, Ke as mapPublishConversationResultDto, qe as mapPublishHistoryEntryDto, En as mapScheduledTaskDtoToFormValues, ci as mapSearchItem, Ne as mapSkillToCatalogItem, tn as mapStages, ee as mapToolsetCredentials, re as mapToolsetToCatalogItem, li as mergeCreatedFolderIntoCache, br as mergeStages, Zt as messageHasStages, v as mimeTypesToAttachmentExtensionLabels, y as mimeTypesToDialFileAcceptTypes, b as mimeTypesToFileAccept, ye as nameFromPath, wt as navigateToolsetOAuthPopup, Qt as normalizeResponseFormat, be as normalizeSkillName, Jr as normalizeVirtualPath, pi as openAnnotationAttachment, Tt as openToolsetOAuthPopup, Z as padTwoDigits, na as parseExternalServiceUrl, $i as parseFeaturesData, Yr as parseNewFolderVirtualPath, oe as parsePromptResourceUrl, xe as parseSkillManifest, rt as parseSkillManifestDocument, Ae as parseSkillResourceUrl, ei as prepareCopyItems, zi as prepareDownloadDestination, ti as prepareMoveRenameItems, Pe as readSkillFileBytes, Fe as readSkillFilePreviewBytes, Ie as readSkillManifest, $e as reconcileFilterTopics, vi as referenceAttachmentToPdfCanvasContent, tt as resolveCatalogPrimaryAction, yi as resolveCodeCanvasContent, ie as resolveDeploymentFolder, Qr as resolveDialFileApiPath, f as resolveDialFileBucketAndPath, ji as resolveExternalSourceContentType, bi as resolveGroupedVisualizerCanvasContent, xi as resolveHtmlCanvasContent, Si as resolveImageCanvasContent, Ci as resolveJsonCanvasContent, J as resolveLocalizedText, wi as resolveMarkdownCanvasContent, Ue as resolveMcpResourceKind, Ti as resolveOoxmlCanvasContent, Xr as resolveOwnerCoords, Ei as resolvePdfCanvasContent, p as resolveRelativeDialFilePath, Le as resolveSkillFileDownloadPath, Re as resolveSkillManifestFileId, Di as resolveTextCanvasContent, Oi as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, Lt as sanitizeAnnouncementHtml, Rt as sanitizeAnnouncementMessageHtml, Xn as sanitizeFileName, Wt as sanitizeFooterHtml, ln as serializePromptExport, dr as shouldRerunGenerationOnEdit, Ht as shouldWatchForDisplayNameUpdate, Se as skillFileBytesToBlob, On as skillFileToAttachment, Zn as splitFileNameExtension, Ce as startsWithFrontmatterBlock, l as stripSurroundingSlashes, u as stripTrailingSlashes, vt as subscribeToolsetLoginSuccess, Y as toBaseLocale, $t as toOverlayMessages, Je as toPublishEntityType, M as toPublishRuleDto, nn as toStage, Qn as trimFileNameToByteLimit, we as unpackSkillArchive, ui as updateEntry, Wn as useActiveConversationSync, kt as useApplicationCredentials, Gn as useAsyncConfirmDialog, g as useAttachmentAction, $n as useAttachmentUpload, S as useAttachmentValidation, nt as useCatalogEditNavigation, at as useCatalogItemDetails, Ot as useCatalogToolsetCredentials, ra as useChatSettingsFormConfig, ir as useConversationExport, gr as useConversationHandlers, _r as useConversationImport, Kn as useConversationLookupMaps, Jn as useConversationPanelItems, vr as useConversationScroll, Cr as useConversationSources, Sr as useConversationStream, Bi as useDialFileListing, Gi as useDialFileManager, Ki as useDialFileManagerTabConfig, Vi as useDialFileMetadata, Hi as useDialFileMutations, Ui as useDialFileSharing, Wi as useDialFileUploadBatch, Mt as useFavoriteEntitiesState, qi as useFileAttachmentPicker, ga as useGridEditingScroll, Yn as useImportFilePicker, ma as useMcpAppHostAdapter, pa as useMcpAppHostContext, fa as useMcpAppTools, on as useOAuthCallbackCompletion, ha as useOpenMcpAppCanvas, ia as usePageFileDrag, oa as usePanelMaxWidth, bn as usePromptsState, Nt as usePublishFolders, sa as useShareLink, Hn as useShareRecipientsCount, Bn as useSkillArchiveImport, At as useSkillDetailsPanelData, An as useSkillEditorLoad, jn as useSkillEditorSubmit, Mn as useSkillFileActions, Pn as useSkillFilePreview, it as useSkillItemDetails, Fn as useSkillsState, ca as useToolsMenu, Dt as useToolsetLogin, nr as useTranscribeAudio, la as useUsageData, aa as useViewportWidth, _n as validatePromptContent, vn as validatePromptDescription, yn as validatePromptName, Dn as validateSkillFileBatch, $r as virtualPathToApiPath, bt 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.2.0-dev.
|
|
4
|
+
"version": "1.2.0-dev.89",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./index.js",
|
|
@@ -106,7 +106,7 @@
|
|
|
106
106
|
}
|
|
107
107
|
},
|
|
108
108
|
"dependencies": {
|
|
109
|
-
"@epam/ai-dial-chat-api-client": "1.2.0-dev.
|
|
109
|
+
"@epam/ai-dial-chat-api-client": "1.2.0-dev.89",
|
|
110
110
|
"dompurify": "3.4.15",
|
|
111
111
|
"fflate": "^0.8.3",
|
|
112
112
|
"lru-cache": "^10.4.3",
|
|
@@ -115,21 +115,21 @@
|
|
|
115
115
|
},
|
|
116
116
|
"peerDependencies": {
|
|
117
117
|
"react": "^19.2.8",
|
|
118
|
-
"@epam/ai-dial-attachment-canvas": "1.2.0-dev.
|
|
119
|
-
"@epam/ai-dial-attachment-input": "1.2.0-dev.
|
|
120
|
-
"@epam/ai-dial-builder-form": "1.2.0-dev.
|
|
121
|
-
"@epam/ai-dial-catalog": "1.2.0-dev.
|
|
122
|
-
"@epam/ai-dial-chat-overlay": "1.2.0-dev.
|
|
123
|
-
"@epam/ai-dial-chat-shared": "1.2.0-dev.
|
|
124
|
-
"@epam/ai-dial-mcp-apps": "1.2.0-dev.
|
|
125
|
-
"@epam/ai-dial-publish-panel": "1.2.0-dev.
|
|
126
|
-
"@epam/ai-dial-quotations": "1.2.0-dev.
|
|
127
|
-
"@epam/ai-dial-react-file-manager": "^0.3.0-dev.
|
|
128
|
-
"@epam/ai-dial-scheduled-tasks": "1.2.0-dev.
|
|
129
|
-
"@epam/ai-dial-share": "1.2.0-dev.
|
|
130
|
-
"@epam/ai-dial-skill-editor": "1.2.0-dev.
|
|
131
|
-
"@epam/ai-dial-source-panel": "1.2.0-dev.
|
|
132
|
-
"@epam/ai-dial-ui-kit": "^0.15.0-dev.
|
|
118
|
+
"@epam/ai-dial-attachment-canvas": "1.2.0-dev.89",
|
|
119
|
+
"@epam/ai-dial-attachment-input": "1.2.0-dev.89",
|
|
120
|
+
"@epam/ai-dial-builder-form": "1.2.0-dev.89",
|
|
121
|
+
"@epam/ai-dial-catalog": "1.2.0-dev.89",
|
|
122
|
+
"@epam/ai-dial-chat-overlay": "1.2.0-dev.89",
|
|
123
|
+
"@epam/ai-dial-chat-shared": "1.2.0-dev.89",
|
|
124
|
+
"@epam/ai-dial-mcp-apps": "1.2.0-dev.89",
|
|
125
|
+
"@epam/ai-dial-publish-panel": "1.2.0-dev.89",
|
|
126
|
+
"@epam/ai-dial-quotations": "1.2.0-dev.89",
|
|
127
|
+
"@epam/ai-dial-react-file-manager": "^0.3.0-dev.4",
|
|
128
|
+
"@epam/ai-dial-scheduled-tasks": "1.2.0-dev.89",
|
|
129
|
+
"@epam/ai-dial-share": "1.2.0-dev.89",
|
|
130
|
+
"@epam/ai-dial-skill-editor": "1.2.0-dev.89",
|
|
131
|
+
"@epam/ai-dial-source-panel": "1.2.0-dev.89",
|
|
132
|
+
"@epam/ai-dial-ui-kit": "^0.15.0-dev.12",
|
|
133
133
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
134
134
|
"@epam/pdf-highlighter-kit": "^0.0.19",
|
|
135
135
|
"@mcp-ui/client": "^7.1.1"
|
package/skill/skill.js
CHANGED
|
@@ -13,7 +13,10 @@ var i = "SKILL.md", a = 1048576, o = 16777216, s = 100, c = new Set([".dial-reso
|
|
|
13
13
|
...e,
|
|
14
14
|
name: t,
|
|
15
15
|
description: n
|
|
16
|
-
}).trimEnd()}\n---\n\n${i}`, g = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/, _ = (e) => {
|
|
16
|
+
}).trimEnd()}\n---\n\n${i}`, g = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/, _ = /^---[ \t]*$/, v = (e) => {
|
|
17
|
+
let t = e.replace(/^\uFEFF/, "").replace(/\r\n/g, "\n").split("\n"), n = t.findIndex((e) => e.trim() !== "");
|
|
18
|
+
return n === -1 || !_.test(t[n]) ? !1 : t.some((e, t) => t > n && _.test(e));
|
|
19
|
+
}, y = (e) => {
|
|
17
20
|
let t = g.exec(e);
|
|
18
21
|
if (!t) throw Error("SKILL.md is missing its YAML frontmatter block");
|
|
19
22
|
let [, r, i] = t;
|
|
@@ -21,7 +24,7 @@ var i = "SKILL.md", a = 1048576, o = 16777216, s = 100, c = new Set([".dial-reso
|
|
|
21
24
|
frontmatter: n(r) ?? {},
|
|
22
25
|
instructions: i.replace(/^\r?\n/, "")
|
|
23
26
|
};
|
|
24
|
-
},
|
|
27
|
+
}, b = (e) => {
|
|
25
28
|
let n = t(e), r = n[i];
|
|
26
29
|
if (r == null) throw Error(`Skill archive is missing a root ${i} file`);
|
|
27
30
|
let a = /* @__PURE__ */ new Map();
|
|
@@ -30,19 +33,19 @@ var i = "SKILL.md", a = 1048576, o = 16777216, s = 100, c = new Set([".dial-reso
|
|
|
30
33
|
manifestText: new TextDecoder().decode(r),
|
|
31
34
|
files: a
|
|
32
35
|
};
|
|
33
|
-
},
|
|
36
|
+
}, x = (e) => {
|
|
34
37
|
let t = e.lastIndexOf("/");
|
|
35
38
|
return t === -1 ? e : e.slice(t + 1);
|
|
36
|
-
},
|
|
39
|
+
}, S = (e) => new Blob([new Uint8Array(e)]), C = (e, t, n, r) => Object.keys(e).length > 0 ? h(e, t, n, r) : m({
|
|
37
40
|
name: t,
|
|
38
41
|
description: n,
|
|
39
42
|
instructions: r
|
|
40
|
-
}),
|
|
43
|
+
}), w = (t, n) => {
|
|
41
44
|
let r = t.filter((t) => t.kind === e.File);
|
|
42
45
|
return {
|
|
43
46
|
filePaths: r.map((e) => e.path),
|
|
44
|
-
files: r.map((e) =>
|
|
47
|
+
files: r.map((e) => S(n.get(e.path)?.bytes ?? new Uint8Array()))
|
|
45
48
|
};
|
|
46
49
|
};
|
|
47
50
|
//#endregion
|
|
48
|
-
export { a as SKILL_FILE_UPLOAD_MAX_BYTES, i as SKILL_MANIFEST_FILE, s as SKILL_UPLOAD_MAX_FILES, o as SKILL_UPLOAD_MAX_TOTAL_BYTES,
|
|
51
|
+
export { a as SKILL_FILE_UPLOAD_MAX_BYTES, i as SKILL_MANIFEST_FILE, s as SKILL_UPLOAD_MAX_FILES, o as SKILL_UPLOAD_MAX_TOTAL_BYTES, w as buildSkillFilesPayload, m as buildSkillManifest, C as buildSkillManifestForSubmit, h as buildSkillManifestFromFrontmatter, f as isValidSkillRelativePath, x as nameFromPath, p as normalizeSkillName, y as parseSkillManifest, S as skillFileBytesToBlob, v as startsWithFrontmatterBlock, b as unpackSkillArchive };
|
|
@@ -1,135 +1,147 @@
|
|
|
1
1
|
import { getApiErrorDetails as e, getApiErrorStatus as t } from "../api-error/api-error.js";
|
|
2
|
-
import { buildSkillFilesPayload as n, buildSkillManifestForSubmit as r, isValidSkillRelativePath as i, normalizeSkillName as a } from "./skill.js";
|
|
3
|
-
import { useCallback as
|
|
4
|
-
import { NotificationVariant as
|
|
2
|
+
import { buildSkillFilesPayload as n, buildSkillManifestForSubmit as r, isValidSkillRelativePath as i, normalizeSkillName as a, startsWithFrontmatterBlock as o } from "./skill.js";
|
|
3
|
+
import { useCallback as s, useRef as c, useState as l } from "react";
|
|
4
|
+
import { NotificationVariant as u } from "@epam/ai-dial-ui-kit";
|
|
5
5
|
//#region src/skill/useSkillEditorSubmit.ts
|
|
6
|
-
var
|
|
6
|
+
var d = (e, t) => JSON.stringify({
|
|
7
7
|
values: e,
|
|
8
8
|
files: [...t].sort((e, t) => e.path.localeCompare(t.path))
|
|
9
|
-
}),
|
|
10
|
-
let [
|
|
9
|
+
}), f = ({ bucket: f, isEditMode: p, files: m, filesContentRef: h, frontmatterRef: g, loadedPathRef: _, etagRef: v, returnUrl: y, refetchSkills: b, client: x, messages: S, onNavigate: C, onNotify: w }) => {
|
|
10
|
+
let [T, E] = l({}), [D, O] = l(), [k, A] = l(), [j, M] = l("idle"), N = c(null), P = s(async (n) => {
|
|
11
11
|
switch (t(n)) {
|
|
12
12
|
case 409:
|
|
13
|
-
|
|
13
|
+
E({ name: S.nameConflict });
|
|
14
14
|
return;
|
|
15
15
|
case 412:
|
|
16
|
-
|
|
16
|
+
E({ name: S.nameConflict });
|
|
17
17
|
return;
|
|
18
18
|
case 413:
|
|
19
|
-
|
|
19
|
+
O(S.archiveTooLarge);
|
|
20
20
|
return;
|
|
21
21
|
case 503:
|
|
22
|
-
|
|
22
|
+
O(S.serviceUnavailable);
|
|
23
23
|
return;
|
|
24
24
|
case 400: {
|
|
25
25
|
let { message: t } = await e(n);
|
|
26
|
-
|
|
26
|
+
O(t ?? S.pathInvalid);
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
29
|
default: {
|
|
30
30
|
let { traceId: t } = await e(n);
|
|
31
|
-
|
|
32
|
-
variant:
|
|
33
|
-
message:
|
|
31
|
+
O(S.saveError), w({
|
|
32
|
+
variant: u.Error,
|
|
33
|
+
message: S.saveError,
|
|
34
34
|
requestId: t
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
}, [
|
|
38
|
+
}, [S, w]), F = s(async (e) => {
|
|
39
39
|
let t = a(e.name);
|
|
40
40
|
if (!t || !i(t)) {
|
|
41
|
-
|
|
41
|
+
E({ name: S.nameInvalid });
|
|
42
42
|
return;
|
|
43
43
|
}
|
|
44
|
-
let o =
|
|
45
|
-
c ? {skillManifest:
|
|
44
|
+
let o = d(e, m), s = N.current, c = s != null && s.fingerprint === o, l = t, p, _, v;
|
|
45
|
+
c ? {skillManifest: p, filePaths: _, files: v} = s : (p = r(g.current, t, e.description, e.instructions), {filePaths: _, files: v} = n(m, h.current)), M("submitting"), N.current = {
|
|
46
46
|
fingerprint: o,
|
|
47
|
-
bucket:
|
|
48
|
-
path:
|
|
49
|
-
skillManifest:
|
|
47
|
+
bucket: f,
|
|
48
|
+
path: l,
|
|
49
|
+
skillManifest: p,
|
|
50
50
|
filePaths: _,
|
|
51
|
-
files:
|
|
51
|
+
files: v
|
|
52
52
|
};
|
|
53
53
|
try {
|
|
54
|
-
await
|
|
55
|
-
variant:
|
|
56
|
-
title:
|
|
57
|
-
message:
|
|
58
|
-
}),
|
|
54
|
+
await x.createSkill(f, l, p, _, v), await b(), M("success"), w({
|
|
55
|
+
variant: u.Success,
|
|
56
|
+
title: S.saveSuccessTitle,
|
|
57
|
+
message: S.createSuccess(t)
|
|
58
|
+
}), C(y);
|
|
59
59
|
} catch (e) {
|
|
60
|
-
|
|
60
|
+
M("failure"), await P(e);
|
|
61
61
|
}
|
|
62
62
|
}, [
|
|
63
|
-
|
|
64
|
-
p,
|
|
63
|
+
f,
|
|
65
64
|
m,
|
|
66
65
|
h,
|
|
66
|
+
g,
|
|
67
|
+
S,
|
|
67
68
|
x,
|
|
68
|
-
|
|
69
|
+
w,
|
|
69
70
|
C,
|
|
70
|
-
S,
|
|
71
|
-
v,
|
|
72
71
|
y,
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
72
|
+
b,
|
|
73
|
+
P
|
|
74
|
+
]), I = s(async (e) => {
|
|
75
|
+
let i = _.current, a = v.current;
|
|
76
76
|
if (!i || !a) {
|
|
77
|
-
|
|
77
|
+
O(S.saveError);
|
|
78
78
|
return;
|
|
79
79
|
}
|
|
80
|
-
let o = r(
|
|
81
|
-
|
|
80
|
+
let o = r(g.current, e.name, e.description, e.instructions), { filePaths: s, files: c } = n(m, h.current);
|
|
81
|
+
M("submitting");
|
|
82
82
|
try {
|
|
83
|
-
|
|
84
|
-
variant:
|
|
85
|
-
title:
|
|
86
|
-
message:
|
|
87
|
-
}),
|
|
83
|
+
v.current = (await x.updateSkill(f, i, o, s, c, a)).etag ?? a, await b(), M("success"), w({
|
|
84
|
+
variant: u.Success,
|
|
85
|
+
title: S.updateSuccessTitle,
|
|
86
|
+
message: S.updateSuccess(e.name)
|
|
87
|
+
}), C(y);
|
|
88
88
|
} catch (e) {
|
|
89
|
-
if (
|
|
90
|
-
|
|
89
|
+
if (M("failure"), t(e) === 412) {
|
|
90
|
+
A({ message: S.conflictMessage });
|
|
91
91
|
return;
|
|
92
92
|
}
|
|
93
|
-
await
|
|
93
|
+
await P(e);
|
|
94
94
|
}
|
|
95
95
|
}, [
|
|
96
|
-
|
|
97
|
-
p,
|
|
96
|
+
f,
|
|
98
97
|
m,
|
|
99
98
|
h,
|
|
100
99
|
g,
|
|
101
100
|
_,
|
|
101
|
+
v,
|
|
102
|
+
S,
|
|
102
103
|
x,
|
|
103
|
-
|
|
104
|
+
w,
|
|
104
105
|
C,
|
|
105
|
-
S,
|
|
106
|
-
v,
|
|
107
106
|
y,
|
|
108
|
-
|
|
109
|
-
|
|
107
|
+
b,
|
|
108
|
+
P
|
|
109
|
+
]), L = s((e) => {
|
|
110
|
+
let t = o(e.instructions);
|
|
111
|
+
E((e) => {
|
|
112
|
+
if (t === (e.instructions === S.instructionsFrontmatter)) return e;
|
|
113
|
+
if (t) return {
|
|
114
|
+
...e,
|
|
115
|
+
instructions: S.instructionsFrontmatter
|
|
116
|
+
};
|
|
117
|
+
let n = { ...e };
|
|
118
|
+
return delete n.instructions, n;
|
|
119
|
+
});
|
|
120
|
+
}, [S]);
|
|
110
121
|
return {
|
|
111
|
-
phase:
|
|
112
|
-
errors:
|
|
113
|
-
submitError:
|
|
114
|
-
conflict:
|
|
115
|
-
clearConflict: () =>
|
|
116
|
-
handleSubmit:
|
|
117
|
-
if (
|
|
122
|
+
phase: j,
|
|
123
|
+
errors: T,
|
|
124
|
+
submitError: D,
|
|
125
|
+
conflict: k,
|
|
126
|
+
clearConflict: () => A(void 0),
|
|
127
|
+
handleSubmit: s(async (e) => {
|
|
128
|
+
if (j === "submitting" || !f) return;
|
|
118
129
|
let t = {};
|
|
119
|
-
if (e.name.trim() || (t.name =
|
|
120
|
-
|
|
130
|
+
if (e.name.trim() || (t.name = S.required), e.description.trim() || (t.description = S.required), e.instructions.trim() ? o(e.instructions) && (t.instructions = S.instructionsFrontmatter) : t.instructions = S.required, Object.keys(t).length > 0) {
|
|
131
|
+
E(t);
|
|
121
132
|
return;
|
|
122
133
|
}
|
|
123
|
-
|
|
134
|
+
E({}), O(void 0), A(void 0), p ? await I(e) : await F(e);
|
|
124
135
|
}, [
|
|
125
|
-
|
|
126
|
-
d,
|
|
127
|
-
x,
|
|
136
|
+
j,
|
|
128
137
|
f,
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
138
|
+
S,
|
|
139
|
+
p,
|
|
140
|
+
I,
|
|
141
|
+
F
|
|
142
|
+
]),
|
|
143
|
+
handleValuesChange: L
|
|
132
144
|
};
|
|
133
145
|
};
|
|
134
146
|
//#endregion
|
|
135
|
-
export {
|
|
147
|
+
export { f as useSkillEditorSubmit };
|
package/skill-editor.d.ts
CHANGED
|
@@ -192,6 +192,12 @@ export declare interface SkillEditorSubmitClient {
|
|
|
192
192
|
export declare interface SkillEditorSubmitMessages {
|
|
193
193
|
/** Shown when a required field is empty. */
|
|
194
194
|
required: string;
|
|
195
|
+
/**
|
|
196
|
+
* Shown when the Instructions value opens with its own YAML frontmatter
|
|
197
|
+
* block — pasting a whole `SKILL.md` in there would otherwise produce a
|
|
198
|
+
* manifest with two frontmatter blocks.
|
|
199
|
+
*/
|
|
200
|
+
instructionsFrontmatter: string;
|
|
195
201
|
/** Shown when the normalized skill name fails DIAL's naming rules. */
|
|
196
202
|
nameInvalid: string;
|
|
197
203
|
/** Shown when the skill name already exists (409), or defensively on an unreachable create-mode 412. */
|
|
@@ -357,6 +363,28 @@ export declare interface SkillManifestValues {
|
|
|
357
363
|
instructions: string;
|
|
358
364
|
}
|
|
359
365
|
|
|
366
|
+
/**
|
|
367
|
+
* Answers one question: would appending this text after the fence that
|
|
368
|
+
* `buildSkillManifest` writes produce a *second* frontmatter block?
|
|
369
|
+
*
|
|
370
|
+
* That happens when the text's first non-blank line is a bare `---` and some
|
|
371
|
+
* later line is a bare `---` too — the exact shape of a `SKILL.md` pasted
|
|
372
|
+
* wholesale into the editor's Instructions field.
|
|
373
|
+
*
|
|
374
|
+
* Detection is deliberately structural rather than YAML-based: a pasted block
|
|
375
|
+
* whose fenced content fails to parse corrupts the stored manifest
|
|
376
|
+
* identically (and renders as a setext `h2` in the Catalog's Details tab just
|
|
377
|
+
* the same), so requiring parseable YAML here would let the worst cases
|
|
378
|
+
* through. Keeping `parseYaml` out also makes this cheap enough to run on
|
|
379
|
+
* every keystroke.
|
|
380
|
+
*
|
|
381
|
+
* A single unclosed fence returns `false`: with no closing fence there is no
|
|
382
|
+
* second block, matching `FRONTMATTER_PATTERN`'s own requirement. A `---`
|
|
383
|
+
* appearing later in the body (a horizontal rule, a setext underline) is
|
|
384
|
+
* likewise not a frontmatter block.
|
|
385
|
+
*/
|
|
386
|
+
export declare const startsWithFrontmatterBlock: (text: string) => boolean;
|
|
387
|
+
|
|
360
388
|
declare type SubmitPhase = 'idle' | 'submitting' | 'success' | 'failure';
|
|
361
389
|
|
|
362
390
|
/** A skill archive unpacked into its manifest text and a relative-path → bytes map of every other entry. */
|
|
@@ -514,6 +542,12 @@ export declare interface UseSkillEditorSubmitResult {
|
|
|
514
542
|
clearConflict: () => void;
|
|
515
543
|
/** Validates and submits the given form values. */
|
|
516
544
|
handleSubmit: (values: SkillEditorValues) => Promise<void>;
|
|
545
|
+
/**
|
|
546
|
+
* Re-runs the Instructions frontmatter check against the editor's current
|
|
547
|
+
* values, so a pasted `SKILL.md` is flagged as the text lands rather than
|
|
548
|
+
* only on submit. Pass as the editor's `onValuesChange`.
|
|
549
|
+
*/
|
|
550
|
+
handleValuesChange: (values: SkillEditorValues) => void;
|
|
517
551
|
}
|
|
518
552
|
|
|
519
553
|
/**
|
package/skill-editor.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { SKILL_FILE_UPLOAD_MAX_BYTES as e, SKILL_MANIFEST_FILE as t, SKILL_UPLOAD_MAX_FILES as n, SKILL_UPLOAD_MAX_TOTAL_BYTES as r, buildSkillFilesPayload as i, buildSkillManifest as a, buildSkillManifestForSubmit as o, buildSkillManifestFromFrontmatter as s, isValidSkillRelativePath as c, nameFromPath as l, normalizeSkillName as u, parseSkillManifest as d, skillFileBytesToBlob as f,
|
|
2
|
-
import { parseSkillManifestDocument as
|
|
3
|
-
import { validateSkillFileBatch as
|
|
4
|
-
import { skillFileToAttachment as
|
|
5
|
-
import { SkillEditorLoadState as
|
|
6
|
-
import { useSkillEditorSubmit as
|
|
7
|
-
import { useSkillFileActions as
|
|
8
|
-
import { SkillArchiveImportErrorKind as
|
|
9
|
-
export { e as SKILL_FILE_UPLOAD_MAX_BYTES, t as SKILL_MANIFEST_FILE, n as SKILL_UPLOAD_MAX_FILES, r as SKILL_UPLOAD_MAX_TOTAL_BYTES,
|
|
1
|
+
import { SKILL_FILE_UPLOAD_MAX_BYTES as e, SKILL_MANIFEST_FILE as t, SKILL_UPLOAD_MAX_FILES as n, SKILL_UPLOAD_MAX_TOTAL_BYTES as r, buildSkillFilesPayload as i, buildSkillManifest as a, buildSkillManifestForSubmit as o, buildSkillManifestFromFrontmatter as s, isValidSkillRelativePath as c, nameFromPath as l, normalizeSkillName as u, parseSkillManifest as d, skillFileBytesToBlob as f, startsWithFrontmatterBlock as p, unpackSkillArchive as m } from "./skill/skill.js";
|
|
2
|
+
import { parseSkillManifestDocument as h } from "./skill/skill-manifest.js";
|
|
3
|
+
import { validateSkillFileBatch as g } from "./skill/skill-file-batch-validation.js";
|
|
4
|
+
import { skillFileToAttachment as _ } from "./skill/skill-file-preview.js";
|
|
5
|
+
import { SkillEditorLoadState as v, useSkillEditorLoad as y } from "./skill/useSkillEditorLoad.js";
|
|
6
|
+
import { useSkillEditorSubmit as b } from "./skill/useSkillEditorSubmit.js";
|
|
7
|
+
import { useSkillFileActions as x } from "./skill/useSkillFileActions.js";
|
|
8
|
+
import { SkillArchiveImportErrorKind as S, SkillArchiveImportStatus as C, SkillArchiveSelectionRejectionReason as w, classifySkillArchiveImportError as T, useSkillArchiveImport as E } from "./skill/useSkillArchiveImport/useSkillArchiveImport.js";
|
|
9
|
+
export { e as SKILL_FILE_UPLOAD_MAX_BYTES, t as SKILL_MANIFEST_FILE, n as SKILL_UPLOAD_MAX_FILES, r as SKILL_UPLOAD_MAX_TOTAL_BYTES, S as SkillArchiveImportErrorKind, C as SkillArchiveImportStatus, w as SkillArchiveSelectionRejectionReason, v as SkillEditorLoadState, i as buildSkillFilesPayload, a as buildSkillManifest, o as buildSkillManifestForSubmit, s as buildSkillManifestFromFrontmatter, T as classifySkillArchiveImportError, c as isValidSkillRelativePath, l as nameFromPath, u as normalizeSkillName, d as parseSkillManifest, h as parseSkillManifestDocument, f as skillFileBytesToBlob, _ as skillFileToAttachment, p as startsWithFrontmatterBlock, m as unpackSkillArchive, E as useSkillArchiveImport, y as useSkillEditorLoad, b as useSkillEditorSubmit, x as useSkillFileActions, g as validateSkillFileBatch };
|