@epam/ai-dial-chat-hooks 1.2.0-dev.229 → 1.2.0-dev.231

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,109 +1,130 @@
1
1
  import { getApiErrorDetails as e } from "../../api-error/api-error.js";
2
2
  import { findDeploymentByIdOrReference as t } from "../deployment-id.js";
3
3
  import { parseSkillResourceUrl as n } from "../../skill/skill-types.js";
4
- import { CatalogEntityType as r } from "@epam/ai-dial-chat-shared";
5
- import { useCallback as i, useMemo as a } from "react";
4
+ import { getRunnerSchemas as r, isQuickAppSchema as i } from "../../shared/application-schema.js";
5
+ import { CatalogEntityType as a } from "@epam/ai-dial-chat-shared";
6
+ import { useCallback as o, useMemo as s, useState as c } from "react";
6
7
  //#region src/catalog/useCatalogEditNavigation/useCatalogEditNavigation.ts
7
- var o = ({ deployments: o, isCustomAppsEnabled: s, isSchemaAppsEnabled: c, isHideCustomAppCreationEnabled: l, isToolsetsEnabled: u, isPromptsEnabled: d, quickAppSchemaId: f, urls: p, onNavigate: m, deletePrompt: h, deleteToolset: g, deleteSkill: _, deleteApplication: v, refetchPrompts: y, refetchToolsets: b, refetchSkills: x, refetchDeployments: S, onDeleteSuccess: C, labels: w, onNotify: T, onSkillUploadClick: E }) => ({
8
- handleEdit: i((e) => {
9
- if (e.type === r.Prompt) {
10
- m(p.buildPromptEditUrl(e.id));
11
- return;
12
- }
13
- if (e.type === r.Skill) {
14
- m(p.buildSkillEditUrl(e.id));
15
- return;
16
- }
17
- if (e.type === r.Toolset) {
18
- m(p.buildToolsetEditUrl(e.id));
19
- return;
20
- }
21
- let n = t(o, e.id);
22
- if (s && n != null && !n.applicationTypeSchemaId) {
23
- m(p.buildCustomAppEditUrl(e.id));
24
- return;
25
- }
26
- f && m(p.buildQuickAppEditUrl(f, e.id));
27
- }, [
28
- o,
29
- s,
30
- f,
31
- m,
32
- p
33
- ]),
34
- handleDelete: i(async (t) => {
35
- try {
36
- if (t.type === r.Prompt) await h(t.id), await y();
37
- else if (t.type === r.Toolset) await g(t.id), await b();
38
- else if (t.type === r.Skill) {
39
- let e = n(t.id);
40
- if (e == null) throw Error(`Invalid skill resource url: ${t.id}`);
41
- await _(e.bucket, e.path), await x();
42
- } else await v(t.id), await S();
43
- C(t);
44
- } catch (t) {
45
- let { traceId: n } = await e(t);
46
- throw T({
47
- message: w.deleteError,
48
- requestId: n
49
- }), t;
50
- }
51
- }, [
52
- h,
53
- g,
54
- _,
55
- v,
56
- b,
57
- S,
58
- y,
59
- x,
60
- C,
61
- w,
62
- T
63
- ]),
64
- createOptions: a(() => {
65
- let e = [];
66
- return f && c && !l && e.push({
67
- key: "quick-app",
68
- label: w.createQuickApp,
69
- onClick: () => m(p.buildQuickAppCreateUrl(f))
70
- }), u && e.push({
71
- key: "toolset",
72
- label: w.createToolset,
73
- onClick: () => m(p.buildToolsetCreateUrl())
74
- }), s && !l && e.push({
75
- key: "custom-app",
76
- label: w.createCustomApp,
77
- onClick: () => m(p.buildCustomAppCreateUrl())
78
- }), e.push({
79
- key: "skill",
80
- label: w.createSkill,
81
- children: [{
8
+ var l = 7, u = ({ deployments: u, isCustomAppsEnabled: d, isSchemaAppsEnabled: f, isHideCustomAppCreationEnabled: p, isToolsetsEnabled: m, isPromptsEnabled: h, schemas: g, urls: _, onNavigate: v, deletePrompt: y, deleteToolset: b, deleteSkill: x, deleteApplication: S, refetchPrompts: C, refetchToolsets: w, refetchSkills: T, refetchDeployments: E, onDeleteSuccess: D, labels: O, onNotify: k, onSkillUploadClick: A }) => {
9
+ let j = s(() => r(g), [g]), [M, N] = c(""), P = f && !p;
10
+ return {
11
+ handleEdit: o((e) => {
12
+ if (e.type === a.Prompt) {
13
+ v(_.buildPromptEditUrl(e.id));
14
+ return;
15
+ }
16
+ if (e.type === a.Skill) {
17
+ v(_.buildSkillEditUrl(e.id));
18
+ return;
19
+ }
20
+ if (e.type === a.Toolset) {
21
+ v(_.buildToolsetEditUrl(e.id));
22
+ return;
23
+ }
24
+ let n = t(u, e.id);
25
+ if (d && n != null && !n.applicationTypeSchemaId) {
26
+ v(_.buildCustomAppEditUrl(e.id));
27
+ return;
28
+ }
29
+ let r = j.find((e) => e.id === n?.applicationTypeSchemaId)?.id ?? j.find((e) => i(e))?.id;
30
+ r && v(_.buildQuickAppEditUrl(r, e.id));
31
+ }, [
32
+ u,
33
+ d,
34
+ j,
35
+ v,
36
+ _
37
+ ]),
38
+ handleDelete: o(async (t) => {
39
+ try {
40
+ if (t.type === a.Prompt) await y(t.id), await C();
41
+ else if (t.type === a.Toolset) await b(t.id), await w();
42
+ else if (t.type === a.Skill) {
43
+ let e = n(t.id);
44
+ if (e == null) throw Error(`Invalid skill resource url: ${t.id}`);
45
+ await x(e.bucket, e.path), await T();
46
+ } else await S(t.id), await E();
47
+ D(t);
48
+ } catch (t) {
49
+ let { traceId: n } = await e(t);
50
+ throw k({
51
+ message: O.deleteError,
52
+ requestId: n
53
+ }), t;
54
+ }
55
+ }, [
56
+ y,
57
+ b,
58
+ x,
59
+ S,
60
+ w,
61
+ E,
62
+ C,
63
+ T,
64
+ D,
65
+ O,
66
+ k
67
+ ]),
68
+ createOptions: s(() => {
69
+ let e = M.trim().toLocaleLowerCase(), t = (t) => !e || t.toLocaleLowerCase().includes(e), n = [];
70
+ P && j.map((e) => ({
71
+ id: e.id,
72
+ label: i(e) ? O.createQuickApp : e.displayName || e.id
73
+ })).sort((e, t) => e.label.localeCompare(t.label, void 0, { sensitivity: "base" })).filter((e) => t(e.label)).slice(0, l).forEach((e) => {
74
+ n.push({
75
+ key: `runner:${e.id}`,
76
+ label: e.label,
77
+ onClick: () => v(_.buildQuickAppCreateUrl(e.id))
78
+ });
79
+ }), m && t(O.createToolset) && n.push({
80
+ key: "toolset",
81
+ label: O.createToolset,
82
+ onClick: () => v(_.buildToolsetCreateUrl())
83
+ }), d && !p && t(O.createCustomApp) && n.push({
84
+ key: "custom-app",
85
+ label: O.createCustomApp,
86
+ onClick: () => v(_.buildCustomAppCreateUrl())
87
+ });
88
+ let r = [{
82
89
  key: "skill-write-instructions",
83
- label: w.createSkillWriteInstructions,
84
- onClick: () => m(p.buildSkillCreateUrl())
90
+ label: O.createSkillWriteInstructions,
91
+ onClick: () => v(_.buildSkillCreateUrl())
85
92
  }, {
86
93
  key: "skill-upload",
87
- label: w.createSkillUpload,
88
- onClick: E
89
- }]
90
- }), d && e.push({
91
- key: "prompt",
92
- label: w.createPrompt,
93
- onClick: () => m(p.buildPromptCreateUrl())
94
- }), e;
95
- }, [
96
- f,
97
- m,
98
- p,
99
- d,
100
- w,
101
- c,
102
- l,
103
- u,
104
- s,
105
- E
106
- ])
107
- });
94
+ label: O.createSkillUpload,
95
+ onClick: A
96
+ }], a = t(O.createSkill) ? r : r.filter((e) => t(String(e.label)));
97
+ return a.length > 0 && n.push({
98
+ key: "skill",
99
+ label: O.createSkill,
100
+ children: a
101
+ }), h && t(O.createPrompt) && n.push({
102
+ key: "prompt",
103
+ label: O.createPrompt,
104
+ onClick: () => v(_.buildPromptCreateUrl())
105
+ }), n;
106
+ }, [
107
+ M,
108
+ P,
109
+ j,
110
+ v,
111
+ _,
112
+ h,
113
+ O,
114
+ p,
115
+ m,
116
+ d,
117
+ A
118
+ ]),
119
+ createSearch: s(() => P && j.length > 0 ? {
120
+ value: M,
121
+ onChange: N
122
+ } : void 0, [
123
+ P,
124
+ j.length,
125
+ M
126
+ ])
127
+ };
128
+ };
108
129
  //#endregion
109
- export { o as useCatalogEditNavigation };
130
+ export { u as useCatalogEditNavigation };
package/catalog.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import { ApplicationExternalServiceDto } from '@epam/ai-dial-chat-api-client';
2
+ import { ApplicationSchemaSummaryDto } from '@epam/ai-dial-chat-api-client';
2
3
  import { CatalogContentTreeNode } from '@epam/ai-dial-catalog';
4
+ import { CatalogCreateSearch } from '@epam/ai-dial-catalog';
3
5
  import { CatalogEntityType } from '@epam/ai-dial-chat-shared';
4
6
  import { CatalogItem } from '@epam/ai-dial-catalog';
5
7
  import { CatalogItemApiDetails } from '@epam/ai-dial-catalog';
@@ -201,9 +203,9 @@ export declare interface CatalogEditNavigationUrls {
201
203
  buildCustomAppEditUrl(appId: string): string;
202
204
  /** URL to create a new custom (schema-less) app. */
203
205
  buildCustomAppCreateUrl(): string;
204
- /** URL to edit an existing quick app under the given schema. */
206
+ /** URL to edit an existing schema-based app (quick app or any other runner) under the given schema. */
205
207
  buildQuickAppEditUrl(schemaId: string, appId: string): string;
206
- /** URL to create a new quick app under the given schema. */
208
+ /** URL to create a new schema-based app (quick app or any other runner) under the given schema. */
207
209
  buildQuickAppCreateUrl(schemaId: string): string;
208
210
  }
209
211
 
@@ -999,7 +1001,7 @@ export declare interface UseApplicationCredentialsParams {
999
1001
  * item through the endpoint its type owns and refetching/notifying on
1000
1002
  * completion, and building the Create dropdown's options.
1001
1003
  */
1002
- export declare const useCatalogEditNavigation: ({ deployments, isCustomAppsEnabled, isSchemaAppsEnabled, isHideCustomAppCreationEnabled, isToolsetsEnabled, isPromptsEnabled, quickAppSchemaId, urls, onNavigate, deletePrompt, deleteToolset, deleteSkill, deleteApplication, refetchPrompts, refetchToolsets, refetchSkills, refetchDeployments, onDeleteSuccess, labels, onNotify, onSkillUploadClick, }: UseCatalogEditNavigationParams) => UseCatalogEditNavigationResult;
1004
+ export declare const useCatalogEditNavigation: ({ deployments, isCustomAppsEnabled, isSchemaAppsEnabled, isHideCustomAppCreationEnabled, isToolsetsEnabled, isPromptsEnabled, schemas, urls, onNavigate, deletePrompt, deleteToolset, deleteSkill, deleteApplication, refetchPrompts, refetchToolsets, refetchSkills, refetchDeployments, onDeleteSuccess, labels, onNotify, onSkillUploadClick, }: UseCatalogEditNavigationParams) => UseCatalogEditNavigationResult;
1003
1005
 
1004
1006
  /** Parameters accepted by {@link useCatalogEditNavigation}. */
1005
1007
  export declare interface UseCatalogEditNavigationParams {
@@ -1009,8 +1011,8 @@ export declare interface UseCatalogEditNavigationParams {
1009
1011
  isHideCustomAppCreationEnabled: boolean;
1010
1012
  isToolsetsEnabled: boolean;
1011
1013
  isPromptsEnabled: boolean;
1012
- /** The quick-app schema id resolved by `useCatalogItems`, or `undefined` when no quick-app schema exists. */
1013
- quickAppSchemaId: string | undefined;
1014
+ /** Application type schemas (runners) loaded at startup; each one except the custom-app schema gets its own Create option. */
1015
+ schemas: ApplicationSchemaSummaryDto[];
1014
1016
  /** Already-configured editor-route URL builders. */
1015
1017
  urls: CatalogEditNavigationUrls;
1016
1018
  /** Navigates the host to a URL built by `urls`. */
@@ -1041,7 +1043,10 @@ export declare interface UseCatalogEditNavigationParams {
1041
1043
  export declare interface UseCatalogEditNavigationResult {
1042
1044
  handleEdit: (item: CatalogItem) => void;
1043
1045
  handleDelete: (item: CatalogItem) => Promise<void>;
1046
+ /** The Create dropdown's items: runners sorted by label and capped at 7, then the static options, all filtered by `createSearch.value`. */
1044
1047
  createOptions: DropdownItem[];
1048
+ /** The Create menu's search field state, or `undefined` when no runner option is offered. */
1049
+ createSearch: CatalogCreateSearch | undefined;
1045
1050
  }
1046
1051
 
1047
1052
  /**
package/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { Annotation } from '@epam/ai-dial-chat-shared';
2
2
  import { AnnotationGroup } from '@epam/ai-dial-quotations';
3
3
  import { ApplicationExternalServiceDto } from '@epam/ai-dial-chat-api-client';
4
+ import { ApplicationSchemaSummaryDto } from '@epam/ai-dial-chat-api-client';
4
5
  import { ApplicationVisualizer } from '@epam/ai-dial-chat-shared';
5
6
  import { ArchiveItemDto } from '@epam/ai-dial-chat-api-client';
6
7
  import { Attachment } from '@epam/ai-dial-chat-shared';
@@ -10,6 +11,7 @@ import { AttachmentErrorReason } from '@epam/ai-dial-chat-shared';
10
11
  import { AttachmentResource } from '@epam/ai-dial-chat-shared';
11
12
  import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
12
13
  import { CatalogContentTreeNode } from '@epam/ai-dial-catalog';
14
+ import { CatalogCreateSearch } from '@epam/ai-dial-catalog';
13
15
  import { CatalogEntityType } from '@epam/ai-dial-chat-shared';
14
16
  import { CatalogItem } from '@epam/ai-dial-catalog';
15
17
  import { CatalogItemApiDetails } from '@epam/ai-dial-catalog';
@@ -673,9 +675,9 @@ export declare interface CatalogEditNavigationUrls {
673
675
  buildCustomAppEditUrl(appId: string): string;
674
676
  /** URL to create a new custom (schema-less) app. */
675
677
  buildCustomAppCreateUrl(): string;
676
- /** URL to edit an existing quick app under the given schema. */
678
+ /** URL to edit an existing schema-based app (quick app or any other runner) under the given schema. */
677
679
  buildQuickAppEditUrl(schemaId: string, appId: string): string;
678
- /** URL to create a new quick app under the given schema. */
680
+ /** URL to create a new schema-based app (quick app or any other runner) under the given schema. */
679
681
  buildQuickAppCreateUrl(schemaId: string): string;
680
682
  }
681
683
 
@@ -1930,6 +1932,9 @@ export declare const getQuickAppConversationStarters: (conversationStarters: unk
1930
1932
  */
1931
1933
  export declare const getRemainingCharacters: (value: string, maxLength: number) => number | null;
1932
1934
 
1935
+ /** Returns the schemas that create schema-based apps: unique by id, without id-less entries or the custom-app schema. */
1936
+ export declare const getRunnerSchemas: <T extends QuickAppSchemaLike>(schemas: T[]) => RunnerSchema<T>[];
1937
+
1933
1938
  /** Returns the limit each over-long skill field exceeds, keyed by field; fields within their limit are omitted. */
1934
1939
  export declare const getSkillFieldLengthViolations: (values: Record<SkillTextField, string>) => Partial<Record<SkillTextField, number>>;
1935
1940
 
@@ -3545,6 +3550,11 @@ export declare const resolveToolsetCredentialsLevel: (toolsetId: string) => Tool
3545
3550
  */
3546
3551
  export declare const resolveVisualizerCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers, entry: CustomVisualizer, themeId: string) => Promise<VisualizerCanvasContent | null>;
3547
3552
 
3553
+ /** An application schema with a resolved id, as returned by {@link getRunnerSchemas}. */
3554
+ export declare type RunnerSchema<T extends QuickAppSchemaLike> = T & {
3555
+ id: string;
3556
+ };
3557
+
3548
3558
  /** Decodes a URI-encoded path segment, returning the original string if decoding fails. */
3549
3559
  export declare const safeDecodeURI: (path: string) => string;
3550
3560
 
@@ -4734,7 +4744,7 @@ export declare interface UseAttachmentValidationResult {
4734
4744
  * item through the endpoint its type owns and refetching/notifying on
4735
4745
  * completion, and building the Create dropdown's options.
4736
4746
  */
4737
- export declare const useCatalogEditNavigation: ({ deployments, isCustomAppsEnabled, isSchemaAppsEnabled, isHideCustomAppCreationEnabled, isToolsetsEnabled, isPromptsEnabled, quickAppSchemaId, urls, onNavigate, deletePrompt, deleteToolset, deleteSkill, deleteApplication, refetchPrompts, refetchToolsets, refetchSkills, refetchDeployments, onDeleteSuccess, labels, onNotify, onSkillUploadClick, }: UseCatalogEditNavigationParams) => UseCatalogEditNavigationResult;
4747
+ export declare const useCatalogEditNavigation: ({ deployments, isCustomAppsEnabled, isSchemaAppsEnabled, isHideCustomAppCreationEnabled, isToolsetsEnabled, isPromptsEnabled, schemas, urls, onNavigate, deletePrompt, deleteToolset, deleteSkill, deleteApplication, refetchPrompts, refetchToolsets, refetchSkills, refetchDeployments, onDeleteSuccess, labels, onNotify, onSkillUploadClick, }: UseCatalogEditNavigationParams) => UseCatalogEditNavigationResult;
4738
4748
 
4739
4749
  /** Parameters accepted by {@link useCatalogEditNavigation}. */
4740
4750
  export declare interface UseCatalogEditNavigationParams {
@@ -4744,8 +4754,8 @@ export declare interface UseCatalogEditNavigationParams {
4744
4754
  isHideCustomAppCreationEnabled: boolean;
4745
4755
  isToolsetsEnabled: boolean;
4746
4756
  isPromptsEnabled: boolean;
4747
- /** The quick-app schema id resolved by `useCatalogItems`, or `undefined` when no quick-app schema exists. */
4748
- quickAppSchemaId: string | undefined;
4757
+ /** Application type schemas (runners) loaded at startup; each one except the custom-app schema gets its own Create option. */
4758
+ schemas: ApplicationSchemaSummaryDto[];
4749
4759
  /** Already-configured editor-route URL builders. */
4750
4760
  urls: CatalogEditNavigationUrls;
4751
4761
  /** Navigates the host to a URL built by `urls`. */
@@ -4776,7 +4786,10 @@ export declare interface UseCatalogEditNavigationParams {
4776
4786
  export declare interface UseCatalogEditNavigationResult {
4777
4787
  handleEdit: (item: CatalogItem) => void;
4778
4788
  handleDelete: (item: CatalogItem) => Promise<void>;
4789
+ /** The Create dropdown's items: runners sorted by label and capped at 7, then the static options, all filtered by `createSearch.value`. */
4779
4790
  createOptions: DropdownItem[];
4791
+ /** The Create menu's search field state, or `undefined` when no runner option is offered. */
4792
+ createSearch: CatalogCreateSearch | undefined;
4780
4793
  }
4781
4794
 
4782
4795
  /**
package/index.js CHANGED
@@ -31,120 +31,120 @@ import { McpResourceKind as rt, buildApplicationMcpUrl as it, buildConnectApi as
31
31
  import { getPublicCatalogEntityFolderPath as ct, isPublicCatalogEntityId as lt, mapPublishConversationResultDto as ut, mapPublishHistoryEntryDto as dt, toPublishEntityType as ft } from "./catalog/publish.js";
32
32
  import { deriveAvailableTabIds as pt, deriveFavoriteItems as mt, filterCatalogItemsBySelector as ht, filterHiddenOwnedItems as gt, reconcileFilterTopics as _t } from "./catalog/catalog-derivations.js";
33
33
  import { CatalogPrimaryActionType as vt, resolveCatalogPrimaryAction as yt } from "./catalog/catalog-primary-action.js";
34
- import { useCatalogEditNavigation as bt } from "./catalog/useCatalogEditNavigation/useCatalogEditNavigation.js";
35
- import { parseSkillManifestDocument as xt } from "./skill/skill-manifest.js";
36
- import { useSkillItemDetails as St } from "./catalog/useSkillItemDetails.js";
37
- import { useCatalogItemDetails as Ct } from "./catalog/useCatalogItemDetails.js";
38
- import { emitToolsetLoginSuccess as wt, subscribeToolsetLoginSuccess as Tt } from "./shared/toolset-login-events.js";
39
- import { getToolsetOAuthChannelName as Et, waitForToolsetOAuthResult as Dt } from "./oauth/handshake.js";
40
- import { buildToolsetAuthorizeUrl as Ot, getToolsetRedirectUri as kt } from "./oauth/authorize-url.js";
41
- import { initiateOAuthLogin as At, navigateToolsetOAuthPopup as jt, openToolsetOAuthPopup as Mt } from "./oauth/popup.js";
42
- import { ToolsetLoginOutcomeType as Nt, useToolsetLogin as Pt } from "./oauth/useToolsetLogin/useToolsetLogin.js";
43
- import { useCatalogToolsetCredentials as Ft } from "./catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js";
44
- import { useApplicationCredentials as It } from "./catalog/useApplicationCredentials/useApplicationCredentials.js";
45
- import { useSkillDetailsPanelData as Lt } from "./catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.js";
46
- import { FavoriteEntityType as Rt, useFavoriteEntitiesState as zt } from "./catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js";
47
- import { usePublishFolders as Bt } from "./catalog/usePublishFolders/usePublishFolders.js";
48
- import { buildAnnouncementSignature as Vt, hasAnnouncementContent as Ht, hasStructuredAnnouncement as Ut, sanitizeAnnouncementHtml as Wt, sanitizeAnnouncementMessageHtml as Gt } from "./conversation/announcement-message.js";
49
- import { DEFAULT_GENERATION_CONFLICT_MESSAGE as Kt, DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE as qt, DEFAULT_STREAM_IDLE_TIMEOUT_MS as Jt, GenerationConflictError as Yt, GenerationPersistenceError as Xt, StreamInterruptedError as Zt, StreamUpstreamError as Qt, createChatStreamApi as $t } from "./conversation/create-chat-stream-api.js";
50
- import { shouldWatchForDisplayNameUpdate as en } from "./conversation/display-name-watch.js";
51
- import { formatAppVersion as tn, sanitizeFooterHtml as nn } from "./conversation/footer-message.js";
52
- import { getModelIdFromConversationId as rn } from "./conversation/get-model-id-from-conversation-id.js";
53
- import { getTimeOfDayGreeting as an } from "./conversation/greeting.js";
54
- import { createDeploymentChangedMessage as on } from "./conversation/message-factory.js";
55
- import { getFormSchemaToolSyncKey as sn, getLastDeploymentId as cn, getLastUserMessageToolConfiguration as ln, getLatestToolConfiguration as un, getToolConfigurationFromFormSchema as dn, isMessageStreaming as fn, messageHasStages as pn, normalizeResponseFormat as mn } from "./conversation/message-utils.js";
56
- import { toOverlayMessages as hn } from "./conversation/overlay-messages.js";
57
- import { getQuickAppConversationStarters as gn } from "./conversation/quick-app-conversation-starters.js";
58
- import { mapStages as _n, toStage as vn } from "./conversation/stage.js";
59
- import { getStarterPopulateText as yn, getStartersFromSchema as bn } from "./conversation/starter-option.js";
60
- import { useOAuthCallbackCompletion as xn } from "./oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js";
61
- import { buildPromptExportEnvelope as Sn, buildPromptExportFileName as Cn, serializePromptExport as wn } from "./prompt/export-prompt.js";
62
- import { PROMPT_CONTENT_MAX_LENGTH as Tn, PROMPT_COUNTER_ANNOUNCE_THRESHOLD as En, PROMPT_DESCRIPTION_MAX_LENGTH as Dn, PROMPT_NAME_MAX_LENGTH as On, PromptFieldError as kn, buildPromptPath as An, getRemainingCharacters as jn, validatePromptContent as Mn, validatePromptDescription as Nn, validatePromptName as Pn } from "./prompt/prompt.js";
63
- import { usePromptsState as Fn } from "./prompt/usePromptsState/usePromptsState.js";
64
- import { UnsupportedTriggerReason as In } from "./scheduled-task/scheduled-task-mapping.js";
65
- import { ScheduledTaskTriggerDescriptionKind as Ln, describeScheduledTaskTrigger as Rn } from "./scheduled-task/scheduled-task-description.js";
66
- import { apSchedulerDayToJsDay as zn, jsDayToApSchedulerDay as Bn } from "./shared/cron-weekday.js";
67
- import { mapFormValuesToCreateBody as Vn, mapFormValuesToUpdateBody as Hn, mapScheduledTaskDtoToFormValues as Un } from "./scheduled-task/scheduled-task-trigger.js";
68
- import { prepareScheduledTaskCreateBody as Wn, prepareScheduledTaskUpdateBody as Gn } from "./scheduled-task/scheduled-task-preparation.js";
69
- import { createScheduledTasksApiClient as Kn } from "./scheduled-task/scheduled-tasks-api-client.js";
70
- import { useScheduledTasks as qn } from "./scheduled-task/use-scheduled-tasks.js";
71
- import { mergeRunsById as Jn, useScheduledTaskRuns as Yn } from "./scheduled-task/use-scheduled-task-runs.js";
72
- import { validateSkillFileBatch as Xn } from "./skill/skill-file-batch-validation.js";
73
- import { skillFileToAttachment as Zn } from "./skill/skill-file-preview.js";
74
- import { SkillEditorLoadState as Qn, useSkillEditorLoad as $n } from "./skill/useSkillEditorLoad.js";
75
- import { useSkillEditorSubmit as er } from "./skill/useSkillEditorSubmit.js";
76
- import { useSkillFileActions as tr } from "./skill/useSkillFileActions.js";
77
- import { SkillPreviewErrorKind as nr, useSkillFilePreview as rr } from "./skill/useSkillFilePreview.js";
78
- import { useSkillsState as ir } from "./skill/useSkillsState/useSkillsState.js";
79
- import { SkillArchiveImportErrorKind as ar, SkillArchiveImportStatus as or, SkillArchiveSelectionRejectionReason as sr, classifySkillArchiveImportError as cr, useSkillArchiveImport as lr } from "./skill/useSkillArchiveImport/useSkillArchiveImport.js";
80
- import { RecipientsCountStatus as ur, useShareRecipientsCount as dr } from "./useShareRecipientsCount/useShareRecipientsCount.js";
81
- import { deriveConversationRowActionState as fr } from "./conversation/deriveConversationRowActionState/deriveConversationRowActionState.js";
82
- import { useActiveConversationSync as pr } from "./conversation/useActiveConversationSync/useActiveConversationSync.js";
83
- import { useAsyncConfirmDialog as mr } from "./conversation/useAsyncConfirmDialog/useAsyncConfirmDialog.js";
84
- import { useConversationLookupMaps as hr } from "./conversation/useConversationLookupMaps/useConversationLookupMaps.js";
85
- import { getConversationSource as gr, useConversationPanelItems as _r } from "./conversation/useConversationPanelItems/useConversationPanelItems.js";
86
- import { useImportFilePicker as vr } from "./conversation/useImportFilePicker/useImportFilePicker.js";
87
- import { useMessageSelectionReply as yr } from "./conversation/useMessageSelectionReply/useMessageSelectionReply.js";
88
- import { sanitizeFileName as br, splitFileNameExtension as xr, trimFileNameToByteLimit as Sr } from "./files/file-name.js";
89
- import { useAttachmentUpload as Cr } from "./conversation/useAttachmentUpload/useAttachmentUpload.js";
90
- import { AudioTranscriptionError as wr, AudioTranscriptionErrorReason as Tr } from "./conversation/useTranscribeAudio/audio-transcription-error.js";
91
- import { useTranscribeAudio as Er } from "./conversation/useTranscribeAudio/useTranscribeAudio.js";
92
- import { DEFAULT_MAX_ARCHIVE_BYTES as Dr, useConversationExport as Or } from "./conversation/useConversationExport/useConversationExport.js";
93
- import { attachmentToDto as kr, attachmentsToDtos as Ar } from "./conversation/useConversationHandlers/attachment-to-dto.js";
94
- import { createMessagePair as jr } from "./conversation/useConversationHandlers/message-factory.js";
95
- import { hasActiveToolConfig as Mr, isAnswerIncomplete as Nr, isMessageChanged as Pr, shouldRerunGenerationOnEdit as Fr } from "./conversation/useConversationHandlers/message-utils.js";
96
- import { getStarterConversationText as Ir, getStarterDisplayText as Lr, getStarterSubmitText as Rr } from "./conversation/useConversationHandlers/starter-option.js";
97
- import { getConversationPath as zr } from "./conversation/useConversationStream/conversation-path.js";
98
- import { useConversationHandlers as Br } from "./conversation/useConversationHandlers/useConversationHandlers.js";
99
- import { useConversationImport as Vr } from "./conversation/useConversationImport/useConversationImport.js";
100
- import { useConversationScroll as Hr } from "./conversation/useConversationScroll/useConversationScroll.js";
101
- import { applyChunkToMessages as Ur, mergeStages as Wr } from "./conversation/useConversationStream/apply-chunk.js";
102
- import { isAwaitingGenerationResume as Gr } from "./conversation/useConversationStream/generation-resume.js";
103
- import { useConversationStream as Kr } from "./conversation/useConversationStream/useConversationStream.js";
104
- import { useConversationSources as qr } from "./conversation-sources/useConversationSources/useConversationSources.js";
105
- import { DialFilesApiUploadMode as Jr } from "./files/dial-files-api.js";
106
- import { FileManagerNotificationReason as Yr, FileNameValidationErrorReason as Xr, FileOperationKind as Zr } from "./files/dial-file-manager.types.js";
107
- import { COLUMNS_WITHOUT_AUTHOR as Qr, COLUMNS_WITH_AUTHOR as $r, CORE_PERMISSION_MAP as ei, DATE_OPTIONS as ti, DIAL_FILE_MANAGER_SECTION_TABS as ni, PATH_SEPARATOR_REGEXP as ri, RESERVED_MARKER_NAME as ii, UPLOAD_CONCURRENCY as ai } from "./files/dial-file-manager.model.js";
108
- import { DialFileManagerActionProfile as oi, DialFileManagerVariant as si, deriveActionProfile as ci } from "./files/file-manager-variant.js";
109
- import { buildSharedItemVirtualPath as li, dialCorePathToRelative as ui, findDialFileByPath as di, findFolderByVirtualPath as fi, formatOperationFolderName as pi, getVirtualPathName as mi, hasDialFileWritePermission as hi, hasForbiddenNameSymbols as gi, hasSamePaths as _i, isCopyMoveDuplicateAllowed as vi, isShareActionsAllowed as yi, normalizeVirtualPath as bi, parseNewFolderVirtualPath as xi, resolveOwnerCoords as Si, resolveSectionByPath as Ci, unionPathSets as wi, withRoutableRootLabels as Ti } from "./files/dial-file-manager-path.util.js";
110
- import { getParentFolderPath as Ei, resolveDialFileApiPath as Di, virtualPathToApiPath as Oi } from "./files/resolve-dial-file-api-path.js";
111
- import { prepareCopyItems as ki, prepareMoveRenameItems as Ai } from "./files/dial-file-manager-copy-move.util.js";
112
- import { buildFromCache as ji, fetchByTab as Mi, fetchForSearch as Ni, findFirstSuccessfulCopyMoveItem as Pi, mapCorePermissions as Fi, mapFileMetadataToDialFile as Ii, mapSearchItem as Li, mergeCreatedFolderIntoCache as Ri, updateEntry as zi } from "./files/dial-file-manager-mapping.util.js";
113
- import { createFilesApiClient as Bi } from "./files/create-files-api.js";
114
- import { createUploadFileWithProgress as Vi } from "./files/create-upload-file-with-progress.js";
115
- import { openAnnotationAttachment as Hi } from "./files/annotation.js";
116
- import { annotationToOoxmlCanvasContent as Ui, annotationToPdfCanvasContent as Wi, clearAttachmentCache as Gi, hasAttachmentTextSource as Ki, referenceAttachmentToPdfCanvasContent as qi, resolveCodeCanvasContent as Ji, resolveGroupedVisualizerCanvasContent as Yi, resolveHtmlCanvasContent as Xi, resolveImageCanvasContent as Zi, resolveJsonCanvasContent as Qi, resolveMarkdownCanvasContent as $i, resolveOoxmlCanvasContent as ea, resolvePdfCanvasContent as ta, resolveTextCanvasContent as na, resolveVisualizerCanvasContent as ra } from "./files/attachment-canvas.js";
117
- import { getUrlFileName as ia, isExternalSourcePreviewable as aa, resolveExternalSourceContentType as oa } from "./files/source-content.js";
118
- import { annotationToDisplayAttachment as sa, attachmentDtoToDisplayAttachment as ca, attachmentDtosToDisplayAttachments as la } from "./files/attachment-dto-to-display.js";
119
- import { dialFileToAttachment as ua, dialFilesToAttachments as da, dialFolderPathToAttachment as fa } from "./files/dial-file-to-attachment.js";
120
- import { DownloadDestinationType as pa } from "./files/download-destination.js";
121
- import { prepareDownloadDestination as ma } from "./files/prepare-download-destination.js";
122
- import { useDialFileListing as ha } from "./files/useDialFileListing/useDialFileListing.js";
123
- import { useDialFileMetadata as ga } from "./files/useDialFileMetadata/useDialFileMetadata.js";
124
- import { useDialFileMutations as _a } from "./files/useDialFileMutations/useDialFileMutations.js";
125
- import { useDialFileSharing as va } from "./files/useDialFileSharing/useDialFileSharing.js";
126
- import { useDialFileUploadBatch as ya } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
127
- import { useDialFileManager as ba } from "./files/useDialFileManager/useDialFileManager.js";
128
- import { useDialFileManagerSections as xa } from "./files/useDialFileManagerSections/useDialFileManagerSections.js";
129
- import { useDialFileManagerTabConfig as Sa } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
130
- import { useFileAttachmentPicker as Ca } from "./files/useFileAttachmentPicker/useFileAttachmentPicker.js";
131
- import { isCustomAppSchema as wa, isQuickAppSchema as Ta } from "./shared/application-schema.js";
132
- import { getBrowserTimezone as Ea } from "./shared/browser-timezone.js";
133
- import { isValidAbsoluteUrl as Da, isValidFeaturesData as Oa, parseFeaturesData as ka } from "./shared/custom-apps.js";
134
- import { buildExternalServiceScopeId as Aa, getExternalServiceFallbackName as ja, parseExternalServiceUrl as Ma } from "./shared/external-services.js";
135
- import { useChatSettingsFormConfig as Na } from "./useChatSettingsFormConfig/useChatSettingsFormConfig.js";
136
- import { usePageFileDrag as Pa } from "./usePageFileDrag/usePageFileDrag.js";
137
- import { useViewportWidth as Fa } from "./useViewportWidth/useViewportWidth.js";
138
- import { usePanelMaxWidth as Ia } from "./usePanelMaxWidth/usePanelMaxWidth.js";
139
- import { useShareLink as La } from "./useShareLink/useShareLink.js";
140
- import { useToolsMenu as Ra } from "./useToolsMenu/useToolsMenu.js";
141
- import { USAGE_DATA_I18N_KEYS as za, mapUsageDataToDashboard as Ba } from "./usage/map-usage-data-to-dashboard.js";
142
- import { USAGE_MODEL_LIMITS_I18N_KEYS as Va, mapOverallCostLimitsToPeriodStatuses as Ha, mapUserUsageToModelLimits as Ua } from "./usage/map-user-usage-to-model-limits.js";
143
- import { useUsageData as Wa } from "./usage/useUsageData/useUsageData.js";
144
- import { McpAppResourceFetchError as Ga, createMcpAppsApiClient as Ka } from "./mcp-apps/mcp-apps-api-client.js";
145
- import { useMcpAppTools as qa } from "./mcp-apps/useMcpAppTools/useMcpAppTools.js";
146
- import { useMcpAppHostContext as Ja } from "./mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js";
147
- import { useMcpAppHostAdapter as Ya } from "./mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.js";
148
- import { useOpenMcpAppCanvas as Xa } from "./mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.js";
149
- import { useGridEditingScroll as Za } from "@epam/ai-dial-chat-shared";
150
- export { x as AttachmentValidationErrorReason, wr as AudioTranscriptionError, Tr as AudioTranscriptionErrorReason, B as AuthenticationType, Qr as COLUMNS_WITHOUT_AUTHOR, $r as COLUMNS_WITH_AUTHOR, ei as CORE_PERMISSION_MAP, vt as CatalogPrimaryActionType, T as ConversationExportMode, E as ConversationTransferErrorCode, D as ConversationTransferWarningCode, ti as DATE_OPTIONS, Kt as DEFAULT_GENERATION_CONFLICT_MESSAGE, qt as DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE, Dr as DEFAULT_MAX_ARCHIVE_BYTES, Jt as DEFAULT_STREAM_IDLE_TIMEOUT_MS, ni as DIAL_FILE_MANAGER_SECTION_TABS, oi as DialFileManagerActionProfile, si as DialFileManagerVariant, Jr as DialFilesApiUploadMode, pa as DownloadDestinationType, k as EXPORT_APP_NAME, O as ExportFileNameKind, Rt as FavoriteEntityType, Yr as FileManagerNotificationReason, Xr as FileNameValidationErrorReason, Zr as FileOperationKind, Yt as GenerationConflictError, Xt as GenerationPersistenceError, Ga as McpAppResourceFetchError, rt as McpResourceKind, U as OAuthResourceKind, ri as PATH_SEPARATOR_REGEXP, Tn as PROMPT_CONTENT_MAX_LENGTH, En as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, Dn as PROMPT_DESCRIPTION_MAX_LENGTH, On as PROMPT_NAME_MAX_LENGTH, Ue as PUBLIC_SKILL_BUCKET, kn as PromptFieldError, xe as PromptSource, ii as RESERVED_MARKER_NAME, ur as RecipientsCountStatus, Ee as SKILL_FILE_UPLOAD_MAX_BYTES, We as SKILL_LISTING_MAX_PAGES, Ge as SKILL_LISTING_PAGE_SIZE, De as SKILL_MANIFEST_FILE, Ke as SKILL_MANIFEST_MAX_BYTES, Oe as SKILL_TEXT_FIELD_MAX_LENGTHS, ke as SKILL_UPLOAD_MAX_FILES, Ae as SKILL_UPLOAD_MAX_TOTAL_BYTES, Ln as ScheduledTaskTriggerDescriptionKind, ar as SkillArchiveImportErrorKind, or as SkillArchiveImportStatus, sr as SkillArchiveSelectionRejectionReason, Qn as SkillEditorLoadState, nr as SkillPreviewErrorKind, qe as SkillSource, Zt as StreamInterruptedError, Qt as StreamUpstreamError, W as TOOLSET_REDIRECT_STATE_KEY, G as ToolsetAuthStatus, K as ToolsetAuthTypes, q as ToolsetCredentialsLevel, Nt as ToolsetLoginOutcomeType, J as ToolsetOAuthCallbackQuery, Y as ToolsetOAuthChannelControlType, X as ToolsetOAuthFailureReason, Z as ToolsetOAuthInitiationResultType, Q as ToolsetOAuthResultType, ai as UPLOAD_CONCURRENCY, za as USAGE_DATA_I18N_KEYS, Va as USAGE_MODEL_LIMITS_I18N_KEYS, In as UnsupportedTriggerReason, $ as WithLogin, sa as annotationToDisplayAttachment, Ui as annotationToOoxmlCanvasContent, Wi as annotationToPdfCanvasContent, zn as apSchedulerDayToJsDay, oe as appendLocaleCode, Ur as applyChunkToMessages, ca as attachmentDtoToDisplayAttachment, la as attachmentDtosToDisplayAttachments, kr as attachmentToDto, Ar as attachmentsToDtos, se as buildAdditionalLocaleOptions, Vt as buildAnnouncementSignature, it as buildApplicationMcpUrl, N as buildChatCompletionsUrl, at as buildConnectApi, P as buildDeploymentConnectApi, Aa as buildExternalServiceScopeId, ji as buildFromCache, Sn as buildPromptExportEnvelope, Cn as buildPromptExportFileName, Ce as buildPromptOverview, An as buildPromptPath, F as buildResponsesUrl, li as buildSharedItemVirtualPath, Ye as buildSkillContentTree, je as buildSkillFilesPayload, Me as buildSkillManifest, Ne as buildSkillManifestForSubmit, Pe as buildSkillManifestFromFrontmatter, Xe as buildSkillOverview, Ot as buildToolsetAuthorizeUrl, ot as buildToolsetMcpUrl, cr as classifySkillArchiveImportError, Gi as clearAttachmentCache, ce as composeLocalePayload, $t as createChatStreamApi, i as createCsrfMiddleware, on as createDeploymentChangedMessage, Bi as createFilesApiClient, Ka as createMcpAppsApiClient, jr as createMessagePair, j as createPublishApiClient, Kn as createScheduledTasksApiClient, a as createUnauthorizedMiddleware, Vi as createUploadFileWithProgress, I as decodeDeploymentId, ee as decodeToolsetId, le as decomposeLocalizedFields, ci as deriveActionProfile, pt as deriveAvailableTabIds, fr as deriveConversationRowActionState, mt as deriveFavoriteItems, Rn as describeScheduledTaskTrigger, ui as dialCorePathToRelative, ua as dialFileToAttachment, da as dialFilesToAttachments, fa as dialFolderPathToAttachment, m as downloadAttachment, wt as emitToolsetLoginSuccess, L as encodeDeploymentId, te as encodeToolsetId, Mi as fetchByTab, Ni as fetchForSearch, ht as filterCatalogItemsBySelector, gt as filterHiddenOwnedItems, R as findDeploymentByIdOrReference, di as findDialFileByPath, Pi as findFirstSuccessfulCopyMoveItem, fi as findFolderByVirtualPath, tn as formatAppVersion, fe as formatCalendarDate, C as formatDateYM, w as formatDateYMD, pi as formatOperationFolderName, A as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, Ea as getBrowserTimezone, zr as getConversationPath, gr as getConversationSource, ja as getExternalServiceFallbackName, sn as getFormSchemaToolSyncKey, cn as getLastDeploymentId, ln as getLastUserMessageToolConfiguration, un as getLatestToolConfiguration, rn as getModelIdFromConversationId, Ei as getParentFolderPath, ct as getPublicCatalogEntityFolderPath, gn as getQuickAppConversationStarters, jn as getRemainingCharacters, Fe as getSkillFieldLengthViolations, Ir as getStarterConversationText, Lr as getStarterDisplayText, yn as getStarterPopulateText, Rr as getStarterSubmitText, bn as getStartersFromSchema, an as getTimeOfDayGreeting, dn as getToolConfigurationFromFormSchema, Et as getToolsetOAuthChannelName, kt as getToolsetRedirectUri, ia as getUrlFileName, mi as getVirtualPathName, Mr as hasActiveToolConfig, Ht as hasAnnouncementContent, Ki as hasAttachmentTextSource, hi as hasDialFileWritePermission, gi as hasForbiddenNameSymbols, _i as hasSamePaths, Ut as hasStructuredAnnouncement, o as includesIgnoreCase, At as initiateOAuthLogin, Nr as isAnswerIncomplete, Gr as isAwaitingGenerationResume, r as isConversationNotFoundError, vi as isCopyMoveDuplicateAllowed, wa as isCustomAppSchema, _ as isDialFileAcceptType, d as isDialFileId, h as isDownloadableAttachment, aa as isExternalSourcePreviewable, Pr as isMessageChanged, fn as isMessageStreaming, we as isOrganisationPromptItem, lt as isPublicCatalogEntityId, ne as isPublicToolsetId, Ta as isQuickAppSchema, yi as isShareActionsAllowed, Da as isValidAbsoluteUrl, Oa as isValidFeaturesData, Ie as isValidSkillRelativePath, Bn as jsDayToApSchedulerDay, Fi as mapCorePermissions, me as mapDeploymentDetailsDtoToEntityDetails, V as mapDeploymentLimitsDtoToCatalogLimits, H as mapDeploymentLimitsToInput, _e as mapDeploymentToCatalogItem, ve as mapDeploymentToolsetCredentials, he as mapEntityDetailsToCatalogDetails, Ii as mapFileMetadataToDialFile, Vn as mapFormValuesToCreateBody, Hn as mapFormValuesToUpdateBody, Ha as mapOverallCostLimitsToPeriodStatuses, Te as mapPromptToCatalogItem, ut as mapPublishConversationResultDto, dt as mapPublishHistoryEntryDto, Un as mapScheduledTaskDtoToFormValues, Li as mapSearchItem, Ze as mapSkillToCatalogItem, _n as mapStages, ge as mapToolsetCredentials, ye as mapToolsetToCatalogItem, Ba as mapUsageDataToDashboard, Ua as mapUserUsageToModelLimits, Ri as mergeCreatedFolderIntoCache, Jn as mergeRunsById, Wr as mergeStages, pn as messageHasStages, v as mimeTypesToAttachmentExtensionLabels, y as mimeTypesToDialFileAcceptTypes, b as mimeTypesToFileAccept, Le as nameFromPath, jt as navigateToolsetOAuthPopup, z as normalizeDeploymentId, mn as normalizeResponseFormat, Re as normalizeSkillName, re as normalizeToolsetId, bi as normalizeVirtualPath, Hi as openAnnotationAttachment, Mt as openToolsetOAuthPopup, pe as padTwoDigits, Ma as parseExternalServiceUrl, ka as parseFeaturesData, xi as parseNewFolderVirtualPath, Se as parsePromptResourceUrl, ze as parseSkillManifest, xt as parseSkillManifestDocument, Je as parseSkillResourceUrl, ki as prepareCopyItems, ma as prepareDownloadDestination, Ai as prepareMoveRenameItems, Wn as prepareScheduledTaskCreateBody, Gn as prepareScheduledTaskUpdateBody, Qe as readSkillFileBytes, $e as readSkillFilePreviewBytes, et as readSkillManifest, _t as reconcileFilterTopics, qi as referenceAttachmentToPdfCanvasContent, yt as resolveCatalogPrimaryAction, Ji as resolveCodeCanvasContent, be as resolveDeploymentFolder, Di as resolveDialFileApiPath, f as resolveDialFileBucketAndPath, oa as resolveExternalSourceContentType, Yi as resolveGroupedVisualizerCanvasContent, Xi as resolveHtmlCanvasContent, Zi as resolveImageCanvasContent, Qi as resolveJsonCanvasContent, ue as resolveLocalizedText, $i as resolveMarkdownCanvasContent, st as resolveMcpResourceKind, ea as resolveOoxmlCanvasContent, Si as resolveOwnerCoords, ta as resolvePdfCanvasContent, p as resolveRelativeDialFilePath, Ci as resolveSectionByPath, tt as resolveSkillFileDownloadPath, nt as resolveSkillManifestFileId, na as resolveTextCanvasContent, ie as resolveToolsetCredentialsLevel, ra as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, Wt as sanitizeAnnouncementHtml, Gt as sanitizeAnnouncementMessageHtml, br as sanitizeFileName, nn as sanitizeFooterHtml, ae as selectToolsetAuthStatus, wn as serializePromptExport, Fr as shouldRerunGenerationOnEdit, en as shouldWatchForDisplayNameUpdate, Be as skillFileBytesToBlob, Zn as skillFileToAttachment, xr as splitFileNameExtension, Ve as startsWithFrontmatterBlock, l as stripSurroundingSlashes, u as stripTrailingSlashes, Tt as subscribeToolsetLoginSuccess, de as toBaseLocale, hn as toOverlayMessages, ft as toPublishEntityType, M as toPublishRuleDto, vn as toStage, Sr as trimFileNameToByteLimit, wi as unionPathSets, He as unpackSkillArchive, zi as updateEntry, pr as useActiveConversationSync, It as useApplicationCredentials, mr as useAsyncConfirmDialog, g as useAttachmentAction, Cr as useAttachmentUpload, S as useAttachmentValidation, bt as useCatalogEditNavigation, Ct as useCatalogItemDetails, Ft as useCatalogToolsetCredentials, Na as useChatSettingsFormConfig, Or as useConversationExport, Br as useConversationHandlers, Vr as useConversationImport, hr as useConversationLookupMaps, _r as useConversationPanelItems, Hr as useConversationScroll, qr as useConversationSources, Kr as useConversationStream, ha as useDialFileListing, ba as useDialFileManager, xa as useDialFileManagerSections, Sa as useDialFileManagerTabConfig, ga as useDialFileMetadata, _a as useDialFileMutations, va as useDialFileSharing, ya as useDialFileUploadBatch, zt as useFavoriteEntitiesState, Ca as useFileAttachmentPicker, Za as useGridEditingScroll, vr as useImportFilePicker, Ya as useMcpAppHostAdapter, Ja as useMcpAppHostContext, qa as useMcpAppTools, yr as useMessageSelectionReply, xn as useOAuthCallbackCompletion, Xa as useOpenMcpAppCanvas, Pa as usePageFileDrag, Ia as usePanelMaxWidth, Fn as usePromptsState, Bt as usePublishFolders, Yn as useScheduledTaskRuns, qn as useScheduledTasks, La as useShareLink, dr as useShareRecipientsCount, lr as useSkillArchiveImport, Lt as useSkillDetailsPanelData, $n as useSkillEditorLoad, er as useSkillEditorSubmit, tr as useSkillFileActions, rr as useSkillFilePreview, St as useSkillItemDetails, ir as useSkillsState, Ra as useToolsMenu, Pt as useToolsetLogin, Er as useTranscribeAudio, Wa as useUsageData, Fa as useViewportWidth, Mn as validatePromptContent, Nn as validatePromptDescription, Pn as validatePromptName, Xn as validateSkillFileBatch, Oi as virtualPathToApiPath, Dt as waitForToolsetOAuthResult, Ti as withRoutableRootLabels };
34
+ import { getRunnerSchemas as bt, isCustomAppSchema as xt, isQuickAppSchema as St } from "./shared/application-schema.js";
35
+ import { useCatalogEditNavigation as Ct } from "./catalog/useCatalogEditNavigation/useCatalogEditNavigation.js";
36
+ import { parseSkillManifestDocument as wt } from "./skill/skill-manifest.js";
37
+ import { useSkillItemDetails as Tt } from "./catalog/useSkillItemDetails.js";
38
+ import { useCatalogItemDetails as Et } from "./catalog/useCatalogItemDetails.js";
39
+ import { emitToolsetLoginSuccess as Dt, subscribeToolsetLoginSuccess as Ot } from "./shared/toolset-login-events.js";
40
+ import { getToolsetOAuthChannelName as kt, waitForToolsetOAuthResult as At } from "./oauth/handshake.js";
41
+ import { buildToolsetAuthorizeUrl as jt, getToolsetRedirectUri as Mt } from "./oauth/authorize-url.js";
42
+ import { initiateOAuthLogin as Nt, navigateToolsetOAuthPopup as Pt, openToolsetOAuthPopup as Ft } from "./oauth/popup.js";
43
+ import { ToolsetLoginOutcomeType as It, useToolsetLogin as Lt } from "./oauth/useToolsetLogin/useToolsetLogin.js";
44
+ import { useCatalogToolsetCredentials as Rt } from "./catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js";
45
+ import { useApplicationCredentials as zt } from "./catalog/useApplicationCredentials/useApplicationCredentials.js";
46
+ import { useSkillDetailsPanelData as Bt } from "./catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.js";
47
+ import { FavoriteEntityType as Vt, useFavoriteEntitiesState as Ht } from "./catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js";
48
+ import { usePublishFolders as Ut } from "./catalog/usePublishFolders/usePublishFolders.js";
49
+ import { buildAnnouncementSignature as Wt, hasAnnouncementContent as Gt, hasStructuredAnnouncement as Kt, sanitizeAnnouncementHtml as qt, sanitizeAnnouncementMessageHtml as Jt } from "./conversation/announcement-message.js";
50
+ import { DEFAULT_GENERATION_CONFLICT_MESSAGE as Yt, DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE as Xt, DEFAULT_STREAM_IDLE_TIMEOUT_MS as Zt, GenerationConflictError as Qt, GenerationPersistenceError as $t, StreamInterruptedError as en, StreamUpstreamError as tn, createChatStreamApi as nn } from "./conversation/create-chat-stream-api.js";
51
+ import { shouldWatchForDisplayNameUpdate as rn } from "./conversation/display-name-watch.js";
52
+ import { formatAppVersion as an, sanitizeFooterHtml as on } from "./conversation/footer-message.js";
53
+ import { getModelIdFromConversationId as sn } from "./conversation/get-model-id-from-conversation-id.js";
54
+ import { getTimeOfDayGreeting as cn } from "./conversation/greeting.js";
55
+ import { createDeploymentChangedMessage as ln } from "./conversation/message-factory.js";
56
+ import { getFormSchemaToolSyncKey as un, getLastDeploymentId as dn, getLastUserMessageToolConfiguration as fn, getLatestToolConfiguration as pn, getToolConfigurationFromFormSchema as mn, isMessageStreaming as hn, messageHasStages as gn, normalizeResponseFormat as _n } from "./conversation/message-utils.js";
57
+ import { toOverlayMessages as vn } from "./conversation/overlay-messages.js";
58
+ import { getQuickAppConversationStarters as yn } from "./conversation/quick-app-conversation-starters.js";
59
+ import { mapStages as bn, toStage as xn } from "./conversation/stage.js";
60
+ import { getStarterPopulateText as Sn, getStartersFromSchema as Cn } from "./conversation/starter-option.js";
61
+ import { useOAuthCallbackCompletion as wn } from "./oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js";
62
+ import { buildPromptExportEnvelope as Tn, buildPromptExportFileName as En, serializePromptExport as Dn } from "./prompt/export-prompt.js";
63
+ import { PROMPT_CONTENT_MAX_LENGTH as On, PROMPT_COUNTER_ANNOUNCE_THRESHOLD as kn, PROMPT_DESCRIPTION_MAX_LENGTH as An, PROMPT_NAME_MAX_LENGTH as jn, PromptFieldError as Mn, buildPromptPath as Nn, getRemainingCharacters as Pn, validatePromptContent as Fn, validatePromptDescription as In, validatePromptName as Ln } from "./prompt/prompt.js";
64
+ import { usePromptsState as Rn } from "./prompt/usePromptsState/usePromptsState.js";
65
+ import { UnsupportedTriggerReason as zn } from "./scheduled-task/scheduled-task-mapping.js";
66
+ import { ScheduledTaskTriggerDescriptionKind as Bn, describeScheduledTaskTrigger as Vn } from "./scheduled-task/scheduled-task-description.js";
67
+ import { apSchedulerDayToJsDay as Hn, jsDayToApSchedulerDay as Un } from "./shared/cron-weekday.js";
68
+ import { mapFormValuesToCreateBody as Wn, mapFormValuesToUpdateBody as Gn, mapScheduledTaskDtoToFormValues as Kn } from "./scheduled-task/scheduled-task-trigger.js";
69
+ import { prepareScheduledTaskCreateBody as qn, prepareScheduledTaskUpdateBody as Jn } from "./scheduled-task/scheduled-task-preparation.js";
70
+ import { createScheduledTasksApiClient as Yn } from "./scheduled-task/scheduled-tasks-api-client.js";
71
+ import { useScheduledTasks as Xn } from "./scheduled-task/use-scheduled-tasks.js";
72
+ import { mergeRunsById as Zn, useScheduledTaskRuns as Qn } from "./scheduled-task/use-scheduled-task-runs.js";
73
+ import { validateSkillFileBatch as $n } from "./skill/skill-file-batch-validation.js";
74
+ import { skillFileToAttachment as er } from "./skill/skill-file-preview.js";
75
+ import { SkillEditorLoadState as tr, useSkillEditorLoad as nr } from "./skill/useSkillEditorLoad.js";
76
+ import { useSkillEditorSubmit as rr } from "./skill/useSkillEditorSubmit.js";
77
+ import { useSkillFileActions as ir } from "./skill/useSkillFileActions.js";
78
+ import { SkillPreviewErrorKind as ar, useSkillFilePreview as or } from "./skill/useSkillFilePreview.js";
79
+ import { useSkillsState as sr } from "./skill/useSkillsState/useSkillsState.js";
80
+ import { SkillArchiveImportErrorKind as cr, SkillArchiveImportStatus as lr, SkillArchiveSelectionRejectionReason as ur, classifySkillArchiveImportError as dr, useSkillArchiveImport as fr } from "./skill/useSkillArchiveImport/useSkillArchiveImport.js";
81
+ import { RecipientsCountStatus as pr, useShareRecipientsCount as mr } from "./useShareRecipientsCount/useShareRecipientsCount.js";
82
+ import { deriveConversationRowActionState as hr } from "./conversation/deriveConversationRowActionState/deriveConversationRowActionState.js";
83
+ import { useActiveConversationSync as gr } from "./conversation/useActiveConversationSync/useActiveConversationSync.js";
84
+ import { useAsyncConfirmDialog as _r } from "./conversation/useAsyncConfirmDialog/useAsyncConfirmDialog.js";
85
+ import { useConversationLookupMaps as vr } from "./conversation/useConversationLookupMaps/useConversationLookupMaps.js";
86
+ import { getConversationSource as yr, useConversationPanelItems as br } from "./conversation/useConversationPanelItems/useConversationPanelItems.js";
87
+ import { useImportFilePicker as xr } from "./conversation/useImportFilePicker/useImportFilePicker.js";
88
+ import { useMessageSelectionReply as Sr } from "./conversation/useMessageSelectionReply/useMessageSelectionReply.js";
89
+ import { sanitizeFileName as Cr, splitFileNameExtension as wr, trimFileNameToByteLimit as Tr } from "./files/file-name.js";
90
+ import { useAttachmentUpload as Er } from "./conversation/useAttachmentUpload/useAttachmentUpload.js";
91
+ import { AudioTranscriptionError as Dr, AudioTranscriptionErrorReason as Or } from "./conversation/useTranscribeAudio/audio-transcription-error.js";
92
+ import { useTranscribeAudio as kr } from "./conversation/useTranscribeAudio/useTranscribeAudio.js";
93
+ import { DEFAULT_MAX_ARCHIVE_BYTES as Ar, useConversationExport as jr } from "./conversation/useConversationExport/useConversationExport.js";
94
+ import { attachmentToDto as Mr, attachmentsToDtos as Nr } from "./conversation/useConversationHandlers/attachment-to-dto.js";
95
+ import { createMessagePair as Pr } from "./conversation/useConversationHandlers/message-factory.js";
96
+ import { hasActiveToolConfig as Fr, isAnswerIncomplete as Ir, isMessageChanged as Lr, shouldRerunGenerationOnEdit as Rr } from "./conversation/useConversationHandlers/message-utils.js";
97
+ import { getStarterConversationText as zr, getStarterDisplayText as Br, getStarterSubmitText as Vr } from "./conversation/useConversationHandlers/starter-option.js";
98
+ import { getConversationPath as Hr } from "./conversation/useConversationStream/conversation-path.js";
99
+ import { useConversationHandlers as Ur } from "./conversation/useConversationHandlers/useConversationHandlers.js";
100
+ import { useConversationImport as Wr } from "./conversation/useConversationImport/useConversationImport.js";
101
+ import { useConversationScroll as Gr } from "./conversation/useConversationScroll/useConversationScroll.js";
102
+ import { applyChunkToMessages as Kr, mergeStages as qr } from "./conversation/useConversationStream/apply-chunk.js";
103
+ import { isAwaitingGenerationResume as Jr } from "./conversation/useConversationStream/generation-resume.js";
104
+ import { useConversationStream as Yr } from "./conversation/useConversationStream/useConversationStream.js";
105
+ import { useConversationSources as Xr } from "./conversation-sources/useConversationSources/useConversationSources.js";
106
+ import { DialFilesApiUploadMode as Zr } from "./files/dial-files-api.js";
107
+ import { FileManagerNotificationReason as Qr, FileNameValidationErrorReason as $r, FileOperationKind as ei } from "./files/dial-file-manager.types.js";
108
+ import { COLUMNS_WITHOUT_AUTHOR as ti, COLUMNS_WITH_AUTHOR as ni, CORE_PERMISSION_MAP as ri, DATE_OPTIONS as ii, DIAL_FILE_MANAGER_SECTION_TABS as ai, PATH_SEPARATOR_REGEXP as oi, RESERVED_MARKER_NAME as si, UPLOAD_CONCURRENCY as ci } from "./files/dial-file-manager.model.js";
109
+ import { DialFileManagerActionProfile as li, DialFileManagerVariant as ui, deriveActionProfile as di } from "./files/file-manager-variant.js";
110
+ import { buildSharedItemVirtualPath as fi, dialCorePathToRelative as pi, findDialFileByPath as mi, findFolderByVirtualPath as hi, formatOperationFolderName as gi, getVirtualPathName as _i, hasDialFileWritePermission as vi, hasForbiddenNameSymbols as yi, hasSamePaths as bi, isCopyMoveDuplicateAllowed as xi, isShareActionsAllowed as Si, normalizeVirtualPath as Ci, parseNewFolderVirtualPath as wi, resolveOwnerCoords as Ti, resolveSectionByPath as Ei, unionPathSets as Di, withRoutableRootLabels as Oi } from "./files/dial-file-manager-path.util.js";
111
+ import { getParentFolderPath as ki, resolveDialFileApiPath as Ai, virtualPathToApiPath as ji } from "./files/resolve-dial-file-api-path.js";
112
+ import { prepareCopyItems as Mi, prepareMoveRenameItems as Ni } from "./files/dial-file-manager-copy-move.util.js";
113
+ import { buildFromCache as Pi, fetchByTab as Fi, fetchForSearch as Ii, findFirstSuccessfulCopyMoveItem as Li, mapCorePermissions as Ri, mapFileMetadataToDialFile as zi, mapSearchItem as Bi, mergeCreatedFolderIntoCache as Vi, updateEntry as Hi } from "./files/dial-file-manager-mapping.util.js";
114
+ import { createFilesApiClient as Ui } from "./files/create-files-api.js";
115
+ import { createUploadFileWithProgress as Wi } from "./files/create-upload-file-with-progress.js";
116
+ import { openAnnotationAttachment as Gi } from "./files/annotation.js";
117
+ import { annotationToOoxmlCanvasContent as Ki, annotationToPdfCanvasContent as qi, clearAttachmentCache as Ji, hasAttachmentTextSource as Yi, referenceAttachmentToPdfCanvasContent as Xi, resolveCodeCanvasContent as Zi, resolveGroupedVisualizerCanvasContent as Qi, resolveHtmlCanvasContent as $i, resolveImageCanvasContent as ea, resolveJsonCanvasContent as ta, resolveMarkdownCanvasContent as na, resolveOoxmlCanvasContent as ra, resolvePdfCanvasContent as ia, resolveTextCanvasContent as aa, resolveVisualizerCanvasContent as oa } from "./files/attachment-canvas.js";
118
+ import { getUrlFileName as sa, isExternalSourcePreviewable as ca, resolveExternalSourceContentType as la } from "./files/source-content.js";
119
+ import { annotationToDisplayAttachment as ua, attachmentDtoToDisplayAttachment as da, attachmentDtosToDisplayAttachments as fa } from "./files/attachment-dto-to-display.js";
120
+ import { dialFileToAttachment as pa, dialFilesToAttachments as ma, dialFolderPathToAttachment as ha } from "./files/dial-file-to-attachment.js";
121
+ import { DownloadDestinationType as ga } from "./files/download-destination.js";
122
+ import { prepareDownloadDestination as _a } from "./files/prepare-download-destination.js";
123
+ import { useDialFileListing as va } from "./files/useDialFileListing/useDialFileListing.js";
124
+ import { useDialFileMetadata as ya } from "./files/useDialFileMetadata/useDialFileMetadata.js";
125
+ import { useDialFileMutations as ba } from "./files/useDialFileMutations/useDialFileMutations.js";
126
+ import { useDialFileSharing as xa } from "./files/useDialFileSharing/useDialFileSharing.js";
127
+ import { useDialFileUploadBatch as Sa } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
128
+ import { useDialFileManager as Ca } from "./files/useDialFileManager/useDialFileManager.js";
129
+ import { useDialFileManagerSections as wa } from "./files/useDialFileManagerSections/useDialFileManagerSections.js";
130
+ import { useDialFileManagerTabConfig as Ta } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
131
+ import { useFileAttachmentPicker as Ea } from "./files/useFileAttachmentPicker/useFileAttachmentPicker.js";
132
+ import { getBrowserTimezone as Da } from "./shared/browser-timezone.js";
133
+ import { isValidAbsoluteUrl as Oa, isValidFeaturesData as ka, parseFeaturesData as Aa } from "./shared/custom-apps.js";
134
+ import { buildExternalServiceScopeId as ja, getExternalServiceFallbackName as Ma, parseExternalServiceUrl as Na } from "./shared/external-services.js";
135
+ import { useChatSettingsFormConfig as Pa } from "./useChatSettingsFormConfig/useChatSettingsFormConfig.js";
136
+ import { usePageFileDrag as Fa } from "./usePageFileDrag/usePageFileDrag.js";
137
+ import { useViewportWidth as Ia } from "./useViewportWidth/useViewportWidth.js";
138
+ import { usePanelMaxWidth as La } from "./usePanelMaxWidth/usePanelMaxWidth.js";
139
+ import { useShareLink as Ra } from "./useShareLink/useShareLink.js";
140
+ import { useToolsMenu as za } from "./useToolsMenu/useToolsMenu.js";
141
+ import { USAGE_DATA_I18N_KEYS as Ba, mapUsageDataToDashboard as Va } from "./usage/map-usage-data-to-dashboard.js";
142
+ import { USAGE_MODEL_LIMITS_I18N_KEYS as Ha, mapOverallCostLimitsToPeriodStatuses as Ua, mapUserUsageToModelLimits as Wa } from "./usage/map-user-usage-to-model-limits.js";
143
+ import { useUsageData as Ga } from "./usage/useUsageData/useUsageData.js";
144
+ import { McpAppResourceFetchError as Ka, createMcpAppsApiClient as qa } from "./mcp-apps/mcp-apps-api-client.js";
145
+ import { useMcpAppTools as Ja } from "./mcp-apps/useMcpAppTools/useMcpAppTools.js";
146
+ import { useMcpAppHostContext as Ya } from "./mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js";
147
+ import { useMcpAppHostAdapter as Xa } from "./mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.js";
148
+ import { useOpenMcpAppCanvas as Za } from "./mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.js";
149
+ import { useGridEditingScroll as Qa } from "@epam/ai-dial-chat-shared";
150
+ export { x as AttachmentValidationErrorReason, Dr as AudioTranscriptionError, Or as AudioTranscriptionErrorReason, B as AuthenticationType, ti as COLUMNS_WITHOUT_AUTHOR, ni as COLUMNS_WITH_AUTHOR, ri as CORE_PERMISSION_MAP, vt as CatalogPrimaryActionType, T as ConversationExportMode, E as ConversationTransferErrorCode, D as ConversationTransferWarningCode, ii as DATE_OPTIONS, Yt as DEFAULT_GENERATION_CONFLICT_MESSAGE, Xt as DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE, Ar as DEFAULT_MAX_ARCHIVE_BYTES, Zt as DEFAULT_STREAM_IDLE_TIMEOUT_MS, ai as DIAL_FILE_MANAGER_SECTION_TABS, li as DialFileManagerActionProfile, ui as DialFileManagerVariant, Zr as DialFilesApiUploadMode, ga as DownloadDestinationType, k as EXPORT_APP_NAME, O as ExportFileNameKind, Vt as FavoriteEntityType, Qr as FileManagerNotificationReason, $r as FileNameValidationErrorReason, ei as FileOperationKind, Qt as GenerationConflictError, $t as GenerationPersistenceError, Ka as McpAppResourceFetchError, rt as McpResourceKind, U as OAuthResourceKind, oi as PATH_SEPARATOR_REGEXP, On as PROMPT_CONTENT_MAX_LENGTH, kn as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, An as PROMPT_DESCRIPTION_MAX_LENGTH, jn as PROMPT_NAME_MAX_LENGTH, Ue as PUBLIC_SKILL_BUCKET, Mn as PromptFieldError, xe as PromptSource, si as RESERVED_MARKER_NAME, pr as RecipientsCountStatus, Ee as SKILL_FILE_UPLOAD_MAX_BYTES, We as SKILL_LISTING_MAX_PAGES, Ge as SKILL_LISTING_PAGE_SIZE, De as SKILL_MANIFEST_FILE, Ke as SKILL_MANIFEST_MAX_BYTES, Oe as SKILL_TEXT_FIELD_MAX_LENGTHS, ke as SKILL_UPLOAD_MAX_FILES, Ae as SKILL_UPLOAD_MAX_TOTAL_BYTES, Bn as ScheduledTaskTriggerDescriptionKind, cr as SkillArchiveImportErrorKind, lr as SkillArchiveImportStatus, ur as SkillArchiveSelectionRejectionReason, tr as SkillEditorLoadState, ar as SkillPreviewErrorKind, qe as SkillSource, en as StreamInterruptedError, tn as StreamUpstreamError, W as TOOLSET_REDIRECT_STATE_KEY, G as ToolsetAuthStatus, K as ToolsetAuthTypes, q as ToolsetCredentialsLevel, It as ToolsetLoginOutcomeType, J as ToolsetOAuthCallbackQuery, Y as ToolsetOAuthChannelControlType, X as ToolsetOAuthFailureReason, Z as ToolsetOAuthInitiationResultType, Q as ToolsetOAuthResultType, ci as UPLOAD_CONCURRENCY, Ba as USAGE_DATA_I18N_KEYS, Ha as USAGE_MODEL_LIMITS_I18N_KEYS, zn as UnsupportedTriggerReason, $ as WithLogin, ua as annotationToDisplayAttachment, Ki as annotationToOoxmlCanvasContent, qi as annotationToPdfCanvasContent, Hn as apSchedulerDayToJsDay, oe as appendLocaleCode, Kr as applyChunkToMessages, da as attachmentDtoToDisplayAttachment, fa as attachmentDtosToDisplayAttachments, Mr as attachmentToDto, Nr as attachmentsToDtos, se as buildAdditionalLocaleOptions, Wt as buildAnnouncementSignature, it as buildApplicationMcpUrl, N as buildChatCompletionsUrl, at as buildConnectApi, P as buildDeploymentConnectApi, ja as buildExternalServiceScopeId, Pi as buildFromCache, Tn as buildPromptExportEnvelope, En as buildPromptExportFileName, Ce as buildPromptOverview, Nn as buildPromptPath, F as buildResponsesUrl, fi as buildSharedItemVirtualPath, Ye as buildSkillContentTree, je as buildSkillFilesPayload, Me as buildSkillManifest, Ne as buildSkillManifestForSubmit, Pe as buildSkillManifestFromFrontmatter, Xe as buildSkillOverview, jt as buildToolsetAuthorizeUrl, ot as buildToolsetMcpUrl, dr as classifySkillArchiveImportError, Ji as clearAttachmentCache, ce as composeLocalePayload, nn as createChatStreamApi, i as createCsrfMiddleware, ln as createDeploymentChangedMessage, Ui as createFilesApiClient, qa as createMcpAppsApiClient, Pr as createMessagePair, j as createPublishApiClient, Yn as createScheduledTasksApiClient, a as createUnauthorizedMiddleware, Wi as createUploadFileWithProgress, I as decodeDeploymentId, ee as decodeToolsetId, le as decomposeLocalizedFields, di as deriveActionProfile, pt as deriveAvailableTabIds, hr as deriveConversationRowActionState, mt as deriveFavoriteItems, Vn as describeScheduledTaskTrigger, pi as dialCorePathToRelative, pa as dialFileToAttachment, ma as dialFilesToAttachments, ha as dialFolderPathToAttachment, m as downloadAttachment, Dt as emitToolsetLoginSuccess, L as encodeDeploymentId, te as encodeToolsetId, Fi as fetchByTab, Ii as fetchForSearch, ht as filterCatalogItemsBySelector, gt as filterHiddenOwnedItems, R as findDeploymentByIdOrReference, mi as findDialFileByPath, Li as findFirstSuccessfulCopyMoveItem, hi as findFolderByVirtualPath, an as formatAppVersion, fe as formatCalendarDate, C as formatDateYM, w as formatDateYMD, gi as formatOperationFolderName, A as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, Da as getBrowserTimezone, Hr as getConversationPath, yr as getConversationSource, Ma as getExternalServiceFallbackName, un as getFormSchemaToolSyncKey, dn as getLastDeploymentId, fn as getLastUserMessageToolConfiguration, pn as getLatestToolConfiguration, sn as getModelIdFromConversationId, ki as getParentFolderPath, ct as getPublicCatalogEntityFolderPath, yn as getQuickAppConversationStarters, Pn as getRemainingCharacters, bt as getRunnerSchemas, Fe as getSkillFieldLengthViolations, zr as getStarterConversationText, Br as getStarterDisplayText, Sn as getStarterPopulateText, Vr as getStarterSubmitText, Cn as getStartersFromSchema, cn as getTimeOfDayGreeting, mn as getToolConfigurationFromFormSchema, kt as getToolsetOAuthChannelName, Mt as getToolsetRedirectUri, sa as getUrlFileName, _i as getVirtualPathName, Fr as hasActiveToolConfig, Gt as hasAnnouncementContent, Yi as hasAttachmentTextSource, vi as hasDialFileWritePermission, yi as hasForbiddenNameSymbols, bi as hasSamePaths, Kt as hasStructuredAnnouncement, o as includesIgnoreCase, Nt as initiateOAuthLogin, Ir as isAnswerIncomplete, Jr as isAwaitingGenerationResume, r as isConversationNotFoundError, xi as isCopyMoveDuplicateAllowed, xt as isCustomAppSchema, _ as isDialFileAcceptType, d as isDialFileId, h as isDownloadableAttachment, ca as isExternalSourcePreviewable, Lr as isMessageChanged, hn as isMessageStreaming, we as isOrganisationPromptItem, lt as isPublicCatalogEntityId, ne as isPublicToolsetId, St as isQuickAppSchema, Si as isShareActionsAllowed, Oa as isValidAbsoluteUrl, ka as isValidFeaturesData, Ie as isValidSkillRelativePath, Un as jsDayToApSchedulerDay, Ri as mapCorePermissions, me as mapDeploymentDetailsDtoToEntityDetails, V as mapDeploymentLimitsDtoToCatalogLimits, H as mapDeploymentLimitsToInput, _e as mapDeploymentToCatalogItem, ve as mapDeploymentToolsetCredentials, he as mapEntityDetailsToCatalogDetails, zi as mapFileMetadataToDialFile, Wn as mapFormValuesToCreateBody, Gn as mapFormValuesToUpdateBody, Ua as mapOverallCostLimitsToPeriodStatuses, Te as mapPromptToCatalogItem, ut as mapPublishConversationResultDto, dt as mapPublishHistoryEntryDto, Kn as mapScheduledTaskDtoToFormValues, Bi as mapSearchItem, Ze as mapSkillToCatalogItem, bn as mapStages, ge as mapToolsetCredentials, ye as mapToolsetToCatalogItem, Va as mapUsageDataToDashboard, Wa as mapUserUsageToModelLimits, Vi as mergeCreatedFolderIntoCache, Zn as mergeRunsById, qr as mergeStages, gn as messageHasStages, v as mimeTypesToAttachmentExtensionLabels, y as mimeTypesToDialFileAcceptTypes, b as mimeTypesToFileAccept, Le as nameFromPath, Pt as navigateToolsetOAuthPopup, z as normalizeDeploymentId, _n as normalizeResponseFormat, Re as normalizeSkillName, re as normalizeToolsetId, Ci as normalizeVirtualPath, Gi as openAnnotationAttachment, Ft as openToolsetOAuthPopup, pe as padTwoDigits, Na as parseExternalServiceUrl, Aa as parseFeaturesData, wi as parseNewFolderVirtualPath, Se as parsePromptResourceUrl, ze as parseSkillManifest, wt as parseSkillManifestDocument, Je as parseSkillResourceUrl, Mi as prepareCopyItems, _a as prepareDownloadDestination, Ni as prepareMoveRenameItems, qn as prepareScheduledTaskCreateBody, Jn as prepareScheduledTaskUpdateBody, Qe as readSkillFileBytes, $e as readSkillFilePreviewBytes, et as readSkillManifest, _t as reconcileFilterTopics, Xi as referenceAttachmentToPdfCanvasContent, yt as resolveCatalogPrimaryAction, Zi as resolveCodeCanvasContent, be as resolveDeploymentFolder, Ai as resolveDialFileApiPath, f as resolveDialFileBucketAndPath, la as resolveExternalSourceContentType, Qi as resolveGroupedVisualizerCanvasContent, $i as resolveHtmlCanvasContent, ea as resolveImageCanvasContent, ta as resolveJsonCanvasContent, ue as resolveLocalizedText, na as resolveMarkdownCanvasContent, st as resolveMcpResourceKind, ra as resolveOoxmlCanvasContent, Ti as resolveOwnerCoords, ia as resolvePdfCanvasContent, p as resolveRelativeDialFilePath, Ei as resolveSectionByPath, tt as resolveSkillFileDownloadPath, nt as resolveSkillManifestFileId, aa as resolveTextCanvasContent, ie as resolveToolsetCredentialsLevel, oa as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, qt as sanitizeAnnouncementHtml, Jt as sanitizeAnnouncementMessageHtml, Cr as sanitizeFileName, on as sanitizeFooterHtml, ae as selectToolsetAuthStatus, Dn as serializePromptExport, Rr as shouldRerunGenerationOnEdit, rn as shouldWatchForDisplayNameUpdate, Be as skillFileBytesToBlob, er as skillFileToAttachment, wr as splitFileNameExtension, Ve as startsWithFrontmatterBlock, l as stripSurroundingSlashes, u as stripTrailingSlashes, Ot as subscribeToolsetLoginSuccess, de as toBaseLocale, vn as toOverlayMessages, ft as toPublishEntityType, M as toPublishRuleDto, xn as toStage, Tr as trimFileNameToByteLimit, Di as unionPathSets, He as unpackSkillArchive, Hi as updateEntry, gr as useActiveConversationSync, zt as useApplicationCredentials, _r as useAsyncConfirmDialog, g as useAttachmentAction, Er as useAttachmentUpload, S as useAttachmentValidation, Ct as useCatalogEditNavigation, Et as useCatalogItemDetails, Rt as useCatalogToolsetCredentials, Pa as useChatSettingsFormConfig, jr as useConversationExport, Ur as useConversationHandlers, Wr as useConversationImport, vr as useConversationLookupMaps, br as useConversationPanelItems, Gr as useConversationScroll, Xr as useConversationSources, Yr as useConversationStream, va as useDialFileListing, Ca as useDialFileManager, wa as useDialFileManagerSections, Ta as useDialFileManagerTabConfig, ya as useDialFileMetadata, ba as useDialFileMutations, xa as useDialFileSharing, Sa as useDialFileUploadBatch, Ht as useFavoriteEntitiesState, Ea as useFileAttachmentPicker, Qa as useGridEditingScroll, xr as useImportFilePicker, Xa as useMcpAppHostAdapter, Ya as useMcpAppHostContext, Ja as useMcpAppTools, Sr as useMessageSelectionReply, wn as useOAuthCallbackCompletion, Za as useOpenMcpAppCanvas, Fa as usePageFileDrag, La as usePanelMaxWidth, Rn as usePromptsState, Ut as usePublishFolders, Qn as useScheduledTaskRuns, Xn as useScheduledTasks, Ra as useShareLink, mr as useShareRecipientsCount, fr as useSkillArchiveImport, Bt as useSkillDetailsPanelData, nr as useSkillEditorLoad, rr as useSkillEditorSubmit, ir as useSkillFileActions, or as useSkillFilePreview, Tt as useSkillItemDetails, sr as useSkillsState, za as useToolsMenu, Lt as useToolsetLogin, kr as useTranscribeAudio, Ga as useUsageData, Ia as useViewportWidth, Fn as validatePromptContent, In as validatePromptDescription, Ln as validatePromptName, $n as validateSkillFileBatch, ji as virtualPathToApiPath, At as waitForToolsetOAuthResult, Oi as withRoutableRootLabels };
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.229",
4
+ "version": "1.2.0-dev.231",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -111,8 +111,8 @@
111
111
  }
112
112
  },
113
113
  "dependencies": {
114
- "@epam/ai-dial-chat-api-client": "1.2.0-dev.229",
115
- "dompurify": "3.4.15",
114
+ "@epam/ai-dial-chat-api-client": "1.2.0-dev.231",
115
+ "dompurify": "3.4.16",
116
116
  "fflate": "^0.8.3",
117
117
  "lru-cache": "^10.4.3",
118
118
  "mime-types": "^3.0.2",
@@ -120,21 +120,21 @@
120
120
  },
121
121
  "peerDependencies": {
122
122
  "react": "^19.2.8",
123
- "@epam/ai-dial-attachment-canvas": "1.2.0-dev.229",
124
- "@epam/ai-dial-attachment-input": "1.2.0-dev.229",
125
- "@epam/ai-dial-catalog": "1.2.0-dev.229",
126
- "@epam/ai-dial-chat-overlay": "1.2.0-dev.229",
127
- "@epam/ai-dial-chat-shared": "1.2.0-dev.229",
128
- "@epam/ai-dial-mcp-apps": "1.2.0-dev.229",
129
- "@epam/ai-dial-publish-panel": "1.2.0-dev.229",
130
- "@epam/ai-dial-quotations": "1.2.0-dev.229",
123
+ "@epam/ai-dial-attachment-canvas": "1.2.0-dev.231",
124
+ "@epam/ai-dial-attachment-input": "1.2.0-dev.231",
125
+ "@epam/ai-dial-catalog": "1.2.0-dev.231",
126
+ "@epam/ai-dial-chat-overlay": "1.2.0-dev.231",
127
+ "@epam/ai-dial-chat-shared": "1.2.0-dev.231",
128
+ "@epam/ai-dial-mcp-apps": "1.2.0-dev.231",
129
+ "@epam/ai-dial-publish-panel": "1.2.0-dev.231",
130
+ "@epam/ai-dial-quotations": "1.2.0-dev.231",
131
131
  "@epam/ai-dial-react-file-manager": "^0.3.0-dev.20",
132
- "@epam/ai-dial-scheduled-tasks": "1.2.0-dev.229",
133
- "@epam/ai-dial-share": "1.2.0-dev.229",
134
- "@epam/ai-dial-skill-editor": "1.2.0-dev.229",
135
- "@epam/ai-dial-source-panel": "1.2.0-dev.229",
132
+ "@epam/ai-dial-scheduled-tasks": "1.2.0-dev.231",
133
+ "@epam/ai-dial-share": "1.2.0-dev.231",
134
+ "@epam/ai-dial-skill-editor": "1.2.0-dev.231",
135
+ "@epam/ai-dial-source-panel": "1.2.0-dev.231",
136
136
  "@epam/ai-dial-ui-kit": "^0.15.0-dev.30",
137
- "@epam/ai-dial-usage-dashboard": "1.2.0-dev.229",
137
+ "@epam/ai-dial-usage-dashboard": "1.2.0-dev.231",
138
138
  "@modelcontextprotocol/sdk": "^1.29.0",
139
139
  "@epam/pdf-highlighter-kit": "^0.0.19",
140
140
  "@mcp-ui/client": "^7.1.1"
@@ -1,4 +1,7 @@
1
1
  //#region src/shared/application-schema.ts
2
- var e = "custom_app", t = (t) => !!t && t.id === e, n = (e) => !!e && (!!e.id?.endsWith("quickapps2") || e.displayName === "Quick app 2.0");
2
+ var e = "custom_app", t = (t) => !!t && t.id === e, n = (e) => !!e && (!!e.id?.endsWith("quickapps2") || e.displayName === "Quick app 2.0"), r = (e) => {
3
+ let n = /* @__PURE__ */ new Set();
4
+ return e.filter((e) => !e.id || t(e) || n.has(e.id) ? !1 : (n.add(e.id), !0));
5
+ };
3
6
  //#endregion
4
- export { t as isCustomAppSchema, n as isQuickAppSchema };
7
+ export { r as getRunnerSchemas, t as isCustomAppSchema, n as isQuickAppSchema };
package/utils.d.ts CHANGED
@@ -174,6 +174,9 @@ export declare const getExternalServiceFallbackName: (serviceName: string) => st
174
174
  */
175
175
  export declare const getRemainingCharacters: (value: string, maxLength: number) => number | null;
176
176
 
177
+ /** Returns the schemas that create schema-based apps: unique by id, without id-less entries or the custom-app schema. */
178
+ export declare const getRunnerSchemas: <T extends QuickAppSchemaLike>(schemas: T[]) => RunnerSchema<T>[];
179
+
177
180
  /** Case-insensitive substring match. */
178
181
  export declare const includesIgnoreCase: (str: string, query: string) => boolean;
179
182
 
@@ -297,6 +300,11 @@ export declare interface QuickAppSchemaLike {
297
300
  */
298
301
  export declare const resolveLocalizedText: (value: LocalizedText | undefined | null, activeLocale: string, primaryLocale: string) => string;
299
302
 
303
+ /** An application schema with a resolved id, as returned by {@link getRunnerSchemas}. */
304
+ export declare type RunnerSchema<T extends QuickAppSchemaLike> = T & {
305
+ id: string;
306
+ };
307
+
300
308
  /** Decodes a URI-encoded path segment, returning the original string if decoding fails. */
301
309
  export declare const safeDecodeURI: (path: string) => string;
302
310
 
package/utils.js CHANGED
@@ -5,13 +5,13 @@ import { includesIgnoreCase as o, safeDecodeURI as s, safeDecodeURIComponent as
5
5
  import { appendLocaleCode as d, buildAdditionalLocaleOptions as f, composeLocalePayload as p, decomposeLocalizedFields as m, resolveLocalizedText as h, toBaseLocale as g } from "./shared/locale.js";
6
6
  import { formatCalendarDate as _, padTwoDigits as v } from "./shared/formatting.js";
7
7
  import { PromptSource as y, parsePromptResourceUrl as b } from "./prompt/prompt-resource.js";
8
- import { buildPromptExportEnvelope as x, buildPromptExportFileName as S, serializePromptExport as C } from "./prompt/export-prompt.js";
9
- import { PROMPT_CONTENT_MAX_LENGTH as w, PROMPT_COUNTER_ANNOUNCE_THRESHOLD as T, PROMPT_DESCRIPTION_MAX_LENGTH as E, PROMPT_NAME_MAX_LENGTH as D, PromptFieldError as O, buildPromptPath as k, getRemainingCharacters as A, validatePromptContent as j, validatePromptDescription as M, validatePromptName as N } from "./prompt/prompt.js";
10
- import { usePromptsState as P } from "./prompt/usePromptsState/usePromptsState.js";
11
- import { apSchedulerDayToJsDay as F, jsDayToApSchedulerDay as I } from "./shared/cron-weekday.js";
12
- import { isCustomAppSchema as L, isQuickAppSchema as R } from "./shared/application-schema.js";
13
- import { getBrowserTimezone as z } from "./shared/browser-timezone.js";
14
- import { isValidAbsoluteUrl as B, isValidFeaturesData as V, parseFeaturesData as H } from "./shared/custom-apps.js";
15
- import { buildExternalServiceScopeId as U, getExternalServiceFallbackName as W, parseExternalServiceUrl as G } from "./shared/external-services.js";
16
- import { useUsageData as K } from "./usage/useUsageData/useUsageData.js";
17
- export { w as PROMPT_CONTENT_MAX_LENGTH, T as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, E as PROMPT_DESCRIPTION_MAX_LENGTH, D as PROMPT_NAME_MAX_LENGTH, O as PromptFieldError, y as PromptSource, F as apSchedulerDayToJsDay, d as appendLocaleCode, f as buildAdditionalLocaleOptions, U as buildExternalServiceScopeId, x as buildPromptExportEnvelope, S as buildPromptExportFileName, k as buildPromptPath, p as composeLocalePayload, i as createCsrfMiddleware, a as createUnauthorizedMiddleware, m as decomposeLocalizedFields, _ as formatCalendarDate, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, z as getBrowserTimezone, W as getExternalServiceFallbackName, A as getRemainingCharacters, o as includesIgnoreCase, r as isConversationNotFoundError, L as isCustomAppSchema, R as isQuickAppSchema, B as isValidAbsoluteUrl, V as isValidFeaturesData, I as jsDayToApSchedulerDay, v as padTwoDigits, G as parseExternalServiceUrl, H as parseFeaturesData, b as parsePromptResourceUrl, h as resolveLocalizedText, s as safeDecodeURI, c as safeDecodeURIComponent, C as serializePromptExport, l as stripSurroundingSlashes, u as stripTrailingSlashes, g as toBaseLocale, P as usePromptsState, K as useUsageData, j as validatePromptContent, M as validatePromptDescription, N as validatePromptName };
8
+ import { getRunnerSchemas as x, isCustomAppSchema as S, isQuickAppSchema as C } from "./shared/application-schema.js";
9
+ import { buildPromptExportEnvelope as w, buildPromptExportFileName as T, serializePromptExport as E } from "./prompt/export-prompt.js";
10
+ import { PROMPT_CONTENT_MAX_LENGTH as D, PROMPT_COUNTER_ANNOUNCE_THRESHOLD as O, PROMPT_DESCRIPTION_MAX_LENGTH as k, PROMPT_NAME_MAX_LENGTH as A, PromptFieldError as j, buildPromptPath as M, getRemainingCharacters as N, validatePromptContent as P, validatePromptDescription as F, validatePromptName as I } from "./prompt/prompt.js";
11
+ import { usePromptsState as L } from "./prompt/usePromptsState/usePromptsState.js";
12
+ import { apSchedulerDayToJsDay as R, jsDayToApSchedulerDay as z } from "./shared/cron-weekday.js";
13
+ import { getBrowserTimezone as B } from "./shared/browser-timezone.js";
14
+ import { isValidAbsoluteUrl as V, isValidFeaturesData as H, parseFeaturesData as U } from "./shared/custom-apps.js";
15
+ import { buildExternalServiceScopeId as W, getExternalServiceFallbackName as G, parseExternalServiceUrl as K } from "./shared/external-services.js";
16
+ import { useUsageData as q } from "./usage/useUsageData/useUsageData.js";
17
+ export { D as PROMPT_CONTENT_MAX_LENGTH, O as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, k as PROMPT_DESCRIPTION_MAX_LENGTH, A as PROMPT_NAME_MAX_LENGTH, j as PromptFieldError, y as PromptSource, R as apSchedulerDayToJsDay, d as appendLocaleCode, f as buildAdditionalLocaleOptions, W as buildExternalServiceScopeId, w as buildPromptExportEnvelope, T as buildPromptExportFileName, M as buildPromptPath, p as composeLocalePayload, i as createCsrfMiddleware, a as createUnauthorizedMiddleware, m as decomposeLocalizedFields, _ as formatCalendarDate, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, B as getBrowserTimezone, G as getExternalServiceFallbackName, N as getRemainingCharacters, x as getRunnerSchemas, o as includesIgnoreCase, r as isConversationNotFoundError, S as isCustomAppSchema, C as isQuickAppSchema, V as isValidAbsoluteUrl, H as isValidFeaturesData, z as jsDayToApSchedulerDay, v as padTwoDigits, K as parseExternalServiceUrl, U as parseFeaturesData, b as parsePromptResourceUrl, h as resolveLocalizedText, s as safeDecodeURI, c as safeDecodeURIComponent, E as serializePromptExport, l as stripSurroundingSlashes, u as stripTrailingSlashes, g as toBaseLocale, L as usePromptsState, q as useUsageData, P as validatePromptContent, F as validatePromptDescription, I as validatePromptName };