@epam/ai-dial-chat-hooks 1.2.0-dev.174 → 1.2.0-dev.181

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,6 +1,12 @@
1
1
  //#region src/catalog/deployment-id.ts
2
- var e = (e) => e.split("/").map((e) => encodeURIComponent(e)).join("/"), t = (e, t) => {
2
+ var e = (e) => e.split("/").map((e) => encodeURIComponent(e)).join("/"), t = (e) => e.split("/").map((e) => {
3
+ try {
4
+ return decodeURIComponent(e);
5
+ } catch {
6
+ return e;
7
+ }
8
+ }).join("/"), n = (n) => e(t(n)), r = (e, t) => {
3
9
  if (t) return e.find((e) => e.id === t) ?? e.find((e) => e.reference === t);
4
10
  };
5
11
  //#endregion
6
- export { e as encodeDeploymentId, t as findDeploymentByIdOrReference };
12
+ export { t as decodeDeploymentId, e as encodeDeploymentId, r as findDeploymentByIdOrReference, n as normalizeDeploymentId };
package/catalog.d.ts CHANGED
@@ -278,6 +278,15 @@ export declare interface ConversationInputLimitsLabels {
278
278
  */
279
279
  export declare const createPublishApiClient: (publishApi: PublishApi) => PublishApiClient;
280
280
 
281
+ /**
282
+ * Inverse of `encodeDeploymentId` — decodes each `/`-separated segment back
283
+ * to its raw, human-readable form. A segment that isn't valid
284
+ * percent-encoding is passed through unchanged rather than throwing, since
285
+ * this decodes externally-sourced ids (the settings iframe's postMessage
286
+ * protocol).
287
+ */
288
+ export declare const decodeDeploymentId: (id: string) => string;
289
+
281
290
  /** Translated folder-path labels for the Personal/Shared/Public deployment groupings. */
282
291
  export declare interface DeploymentFolderLabels {
283
292
  personal: string;
@@ -616,6 +625,20 @@ export declare interface ModelSpecification {
616
625
  createdAt?: number;
617
626
  }
618
627
 
628
+ /**
629
+ * Encodes a deployment/application id to its single-encoded form regardless
630
+ * of whether the value it received was already percent-encoded or the raw,
631
+ * human-readable form — decoding first then re-encoding once is idempotent
632
+ * either way, since `decodeDeploymentId` on a raw (unencoded) id is a no-op.
633
+ * Use this instead of `encodeDeploymentId` at a boundary that cannot
634
+ * guarantee which form it receives, such as a `postMessage` payload from the
635
+ * settings iframe: calling `encodeDeploymentId` directly on a value the
636
+ * sender already encoded escapes the existing `%` characters a second time
637
+ * (`%20` becomes `%2520`), which the backend only ever undoes once and so
638
+ * 404s on.
639
+ */
640
+ export declare const normalizeDeploymentId: (id: string) => string;
641
+
619
642
  /** A skill resource URL split into the bucket and the path within it. */
620
643
  export declare interface ParsedSkillResourceUrl {
621
644
  /** DIAL Core bucket name. */
package/catalog.js CHANGED
@@ -1,25 +1,25 @@
1
1
  import { createPublishApiClient as e, toPublishRuleDto as t } from "./catalog/create-publish-api.js";
2
2
  import { buildChatCompletionsUrl as n, buildDeploymentConnectApi as r, buildResponsesUrl as i } from "./catalog/deployment-endpoint-url.js";
3
- import { encodeDeploymentId as a, findDeploymentByIdOrReference as o } from "./catalog/deployment-id.js";
4
- import { AuthenticationType as s } from "./catalog/entity-details.js";
5
- import { mapDeploymentLimitsDtoToCatalogLimits as c } from "./catalog/map-deployment-limits-to-catalog.js";
6
- import { mapDeploymentLimitsToInput as l } from "./catalog/map-deployment-limits-to-input.js";
7
- import { mapDeploymentDetailsDtoToEntityDetails as u, mapEntityDetailsToCatalogDetails as d, mapToolsetCredentials as f } from "./catalog/map-entity-details-to-catalog.js";
8
- import { mapDeploymentToCatalogItem as p, mapDeploymentToolsetCredentials as m, mapToolsetToCatalogItem as h, resolveDeploymentFolder as g } from "./catalog/map-deployment-to-catalog-item.js";
9
- import { buildPromptOverview as _, isOrganisationPromptItem as v, mapPromptToCatalogItem as y } from "./catalog/map-prompt-to-catalog-item.js";
10
- import { PUBLIC_SKILL_BUCKET as b, SKILL_LISTING_MAX_PAGES as x, SKILL_LISTING_PAGE_SIZE as S, SKILL_MANIFEST_MAX_BYTES as C, SkillSource as w, parseSkillResourceUrl as T } from "./skill/skill-types.js";
11
- import { buildSkillContentTree as E, buildSkillOverview as D, mapSkillToCatalogItem as O, readSkillFileBytes as k, readSkillFilePreviewBytes as A, readSkillManifest as j, resolveSkillFileDownloadPath as M, resolveSkillManifestFileId as N } from "./catalog/map-skill-to-catalog-item.js";
12
- import { McpResourceKind as P, buildApplicationMcpUrl as F, buildConnectApi as I, buildToolsetMcpUrl as L, resolveMcpResourceKind as R } from "./catalog/mcp-endpoint-url.js";
13
- import { getPublicCatalogEntityFolderPath as z, isPublicCatalogEntityId as B, mapPublishConversationResultDto as V, mapPublishHistoryEntryDto as H, toPublishEntityType as U } from "./catalog/publish.js";
14
- import { deriveAvailableTabIds as W, deriveFavoriteItems as G, filterCatalogItemsBySelector as K, filterHiddenOwnedItems as q, reconcileFilterTopics as J } from "./catalog/catalog-derivations.js";
15
- import { CatalogPrimaryActionType as Y, resolveCatalogPrimaryAction as X } from "./catalog/catalog-primary-action.js";
16
- import { useCatalogEditNavigation as Z } from "./catalog/useCatalogEditNavigation/useCatalogEditNavigation.js";
17
- import { useSkillItemDetails as Q } from "./catalog/useSkillItemDetails.js";
18
- import { useCatalogItemDetails as $ } from "./catalog/useCatalogItemDetails.js";
19
- import { useCatalogToolsetCredentials as ee } from "./catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js";
20
- import { useApplicationCredentials as te } from "./catalog/useApplicationCredentials/useApplicationCredentials.js";
21
- import { useSkillDetailsPanelData as ne } from "./catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.js";
22
- import { FavoriteEntityType as re, useFavoriteEntitiesState as ie } from "./catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js";
23
- import { usePublishFolders as ae } from "./catalog/usePublishFolders/usePublishFolders.js";
24
- import { SkillPreviewErrorKind as oe, useSkillFilePreview as se } from "./skill/useSkillFilePreview.js";
25
- export { s as AuthenticationType, Y as CatalogPrimaryActionType, re as FavoriteEntityType, P as McpResourceKind, b as PUBLIC_SKILL_BUCKET, x as SKILL_LISTING_MAX_PAGES, S as SKILL_LISTING_PAGE_SIZE, C as SKILL_MANIFEST_MAX_BYTES, oe as SkillPreviewErrorKind, w as SkillSource, F as buildApplicationMcpUrl, n as buildChatCompletionsUrl, I as buildConnectApi, r as buildDeploymentConnectApi, _ as buildPromptOverview, i as buildResponsesUrl, E as buildSkillContentTree, D as buildSkillOverview, L as buildToolsetMcpUrl, e as createPublishApiClient, W as deriveAvailableTabIds, G as deriveFavoriteItems, a as encodeDeploymentId, K as filterCatalogItemsBySelector, q as filterHiddenOwnedItems, o as findDeploymentByIdOrReference, z as getPublicCatalogEntityFolderPath, v as isOrganisationPromptItem, B as isPublicCatalogEntityId, u as mapDeploymentDetailsDtoToEntityDetails, c as mapDeploymentLimitsDtoToCatalogLimits, l as mapDeploymentLimitsToInput, p as mapDeploymentToCatalogItem, m as mapDeploymentToolsetCredentials, d as mapEntityDetailsToCatalogDetails, y as mapPromptToCatalogItem, V as mapPublishConversationResultDto, H as mapPublishHistoryEntryDto, O as mapSkillToCatalogItem, f as mapToolsetCredentials, h as mapToolsetToCatalogItem, T as parseSkillResourceUrl, k as readSkillFileBytes, A as readSkillFilePreviewBytes, j as readSkillManifest, J as reconcileFilterTopics, X as resolveCatalogPrimaryAction, g as resolveDeploymentFolder, R as resolveMcpResourceKind, M as resolveSkillFileDownloadPath, N as resolveSkillManifestFileId, U as toPublishEntityType, t as toPublishRuleDto, te as useApplicationCredentials, Z as useCatalogEditNavigation, $ as useCatalogItemDetails, ee as useCatalogToolsetCredentials, ie as useFavoriteEntitiesState, ae as usePublishFolders, ne as useSkillDetailsPanelData, se as useSkillFilePreview, Q as useSkillItemDetails };
3
+ import { decodeDeploymentId as a, encodeDeploymentId as o, findDeploymentByIdOrReference as s, normalizeDeploymentId as c } from "./catalog/deployment-id.js";
4
+ import { AuthenticationType as l } from "./catalog/entity-details.js";
5
+ import { mapDeploymentLimitsDtoToCatalogLimits as u } from "./catalog/map-deployment-limits-to-catalog.js";
6
+ import { mapDeploymentLimitsToInput as d } from "./catalog/map-deployment-limits-to-input.js";
7
+ import { mapDeploymentDetailsDtoToEntityDetails as f, mapEntityDetailsToCatalogDetails as p, mapToolsetCredentials as m } from "./catalog/map-entity-details-to-catalog.js";
8
+ import { mapDeploymentToCatalogItem as h, mapDeploymentToolsetCredentials as g, mapToolsetToCatalogItem as _, resolveDeploymentFolder as v } from "./catalog/map-deployment-to-catalog-item.js";
9
+ import { buildPromptOverview as y, isOrganisationPromptItem as b, mapPromptToCatalogItem as x } from "./catalog/map-prompt-to-catalog-item.js";
10
+ import { PUBLIC_SKILL_BUCKET as S, SKILL_LISTING_MAX_PAGES as C, SKILL_LISTING_PAGE_SIZE as w, SKILL_MANIFEST_MAX_BYTES as T, SkillSource as E, parseSkillResourceUrl as D } from "./skill/skill-types.js";
11
+ import { buildSkillContentTree as O, buildSkillOverview as k, mapSkillToCatalogItem as A, readSkillFileBytes as j, readSkillFilePreviewBytes as M, readSkillManifest as N, resolveSkillFileDownloadPath as P, resolveSkillManifestFileId as F } from "./catalog/map-skill-to-catalog-item.js";
12
+ import { McpResourceKind as I, buildApplicationMcpUrl as L, buildConnectApi as R, buildToolsetMcpUrl as z, resolveMcpResourceKind as B } from "./catalog/mcp-endpoint-url.js";
13
+ import { getPublicCatalogEntityFolderPath as V, isPublicCatalogEntityId as H, mapPublishConversationResultDto as U, mapPublishHistoryEntryDto as W, toPublishEntityType as G } from "./catalog/publish.js";
14
+ import { deriveAvailableTabIds as K, deriveFavoriteItems as q, filterCatalogItemsBySelector as J, filterHiddenOwnedItems as Y, reconcileFilterTopics as X } from "./catalog/catalog-derivations.js";
15
+ import { CatalogPrimaryActionType as Z, resolveCatalogPrimaryAction as Q } from "./catalog/catalog-primary-action.js";
16
+ import { useCatalogEditNavigation as $ } from "./catalog/useCatalogEditNavigation/useCatalogEditNavigation.js";
17
+ import { useSkillItemDetails as ee } from "./catalog/useSkillItemDetails.js";
18
+ import { useCatalogItemDetails as te } from "./catalog/useCatalogItemDetails.js";
19
+ import { useCatalogToolsetCredentials as ne } from "./catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js";
20
+ import { useApplicationCredentials as re } from "./catalog/useApplicationCredentials/useApplicationCredentials.js";
21
+ import { useSkillDetailsPanelData as ie } from "./catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.js";
22
+ import { FavoriteEntityType as ae, useFavoriteEntitiesState as oe } from "./catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js";
23
+ import { usePublishFolders as se } from "./catalog/usePublishFolders/usePublishFolders.js";
24
+ import { SkillPreviewErrorKind as ce, useSkillFilePreview as le } from "./skill/useSkillFilePreview.js";
25
+ export { l as AuthenticationType, Z as CatalogPrimaryActionType, ae as FavoriteEntityType, I as McpResourceKind, S as PUBLIC_SKILL_BUCKET, C as SKILL_LISTING_MAX_PAGES, w as SKILL_LISTING_PAGE_SIZE, T as SKILL_MANIFEST_MAX_BYTES, ce as SkillPreviewErrorKind, E as SkillSource, L as buildApplicationMcpUrl, n as buildChatCompletionsUrl, R as buildConnectApi, r as buildDeploymentConnectApi, y as buildPromptOverview, i as buildResponsesUrl, O as buildSkillContentTree, k as buildSkillOverview, z as buildToolsetMcpUrl, e as createPublishApiClient, a as decodeDeploymentId, K as deriveAvailableTabIds, q as deriveFavoriteItems, o as encodeDeploymentId, J as filterCatalogItemsBySelector, Y as filterHiddenOwnedItems, s as findDeploymentByIdOrReference, V as getPublicCatalogEntityFolderPath, b as isOrganisationPromptItem, H as isPublicCatalogEntityId, f as mapDeploymentDetailsDtoToEntityDetails, u as mapDeploymentLimitsDtoToCatalogLimits, d as mapDeploymentLimitsToInput, h as mapDeploymentToCatalogItem, g as mapDeploymentToolsetCredentials, p as mapEntityDetailsToCatalogDetails, x as mapPromptToCatalogItem, U as mapPublishConversationResultDto, W as mapPublishHistoryEntryDto, A as mapSkillToCatalogItem, m as mapToolsetCredentials, _ as mapToolsetToCatalogItem, c as normalizeDeploymentId, D as parseSkillResourceUrl, j as readSkillFileBytes, M as readSkillFilePreviewBytes, N as readSkillManifest, X as reconcileFilterTopics, Q as resolveCatalogPrimaryAction, v as resolveDeploymentFolder, B as resolveMcpResourceKind, P as resolveSkillFileDownloadPath, F as resolveSkillManifestFileId, G as toPublishEntityType, t as toPublishRuleDto, re as useApplicationCredentials, $ as useCatalogEditNavigation, te as useCatalogItemDetails, ne as useCatalogToolsetCredentials, oe as useFavoriteEntitiesState, se as usePublishFolders, ie as useSkillDetailsPanelData, le as useSkillFilePreview, ee as useSkillItemDetails };
package/index.d.ts CHANGED
@@ -37,8 +37,6 @@ import type { CustomVisualizerDataLayout } from '@epam/ai-dial-chat-shared';
37
37
  import { DeleteFilesResponseDto } from '@epam/ai-dial-chat-api-client';
38
38
  import { DeleteItemDto } from '@epam/ai-dial-chat-api-client';
39
39
  import { DeploymentConfigurationSchema } from '@epam/ai-dial-chat-shared';
40
- import { DeploymentCreationFormLocaleEntry } from '@epam/ai-dial-builder-form';
41
- import { DeploymentCreationFormLocaleOption } from '@epam/ai-dial-builder-form';
42
40
  import { DeploymentDetailsDto } from '@epam/ai-dial-chat-api-client';
43
41
  import { DeploymentFeatures } from '@epam/ai-dial-chat-shared';
44
42
  import { DeploymentItemDto } from '@epam/ai-dial-chat-api-client';
@@ -86,7 +84,9 @@ import { ListScheduledTaskRunsResponseDto } from '@epam/ai-dial-chat-api-client'
86
84
  import { ListScheduledTasksResponseDto } from '@epam/ai-dial-chat-api-client';
87
85
  import { ListScheduledTasksSortEnum } from '@epam/ai-dial-chat-api-client';
88
86
  import { ListSharedFilesRequest } from '@epam/ai-dial-chat-api-client';
87
+ import { LocaleOption } from '@epam/ai-dial-chat-shared';
89
88
  import { LocaleTextEntryDto } from '@epam/ai-dial-chat-api-client';
89
+ import { LocalizedTextEntry } from '@epam/ai-dial-chat-shared';
90
90
  import { McpAppToolSummaryDto } from '@epam/ai-dial-chat-api-client';
91
91
  import { McpUiHostContext } from '@mcp-ui/client';
92
92
  import { Message } from '@epam/ai-dial-chat-shared';
@@ -439,7 +439,7 @@ export declare enum AuthenticationType {
439
439
  * `additionalLocaleCodes` and excluding whichever code is already the
440
440
  * primary Name/Description field.
441
441
  */
442
- export declare const buildAdditionalLocaleOptions: (additionalLocaleCodes: string[], primaryLocale: string) => DeploymentCreationFormLocaleOption[];
442
+ export declare const buildAdditionalLocaleOptions: (additionalLocaleCodes: string[], primaryLocale: string) => LocaleOption[];
443
443
 
444
444
  /**
445
445
  * Builds the value persisted under `StorageKey.TextOfClosedAnnouncement` when
@@ -805,7 +805,7 @@ export declare const COLUMNS_WITHOUT_AUTHOR: FileManagerColumnKey[];
805
805
  * `undefined` (not `[]`) when nothing remains, so a request untouched by
806
806
  * this feature stays byte-identical to today.
807
807
  */
808
- export declare const composeLocalePayload: (otherLocales: DeploymentCreationFormLocaleEntry[], primaryLocale: string) => LocaleTextEntryDto[] | undefined;
808
+ export declare const composeLocalePayload: (otherLocales: LocalizedTextEntry[], primaryLocale: string) => LocaleTextEntryDto[] | undefined;
809
809
 
810
810
  /** Whether an export includes the conversation's attachments. */
811
811
  export declare enum ConversationExportMode {
@@ -1116,6 +1116,15 @@ export declare type CsrfRefreshOutcome = {
1116
1116
 
1117
1117
  export declare const DATE_OPTIONS: Intl.DateTimeFormatOptions;
1118
1118
 
1119
+ /**
1120
+ * Inverse of `encodeDeploymentId` — decodes each `/`-separated segment back
1121
+ * to its raw, human-readable form. A segment that isn't valid
1122
+ * percent-encoding is passed through unchanged rather than throwing, since
1123
+ * this decodes externally-sourced ids (the settings iframe's postMessage
1124
+ * protocol).
1125
+ */
1126
+ export declare const decodeDeploymentId: (id: string) => string;
1127
+
1119
1128
  /**
1120
1129
  * Inverse of `encodeToolsetId` — decodes each `/`-separated segment back to
1121
1130
  * its raw, human-readable form. A segment that isn't valid percent-encoding
@@ -1132,7 +1141,7 @@ export declare const decodeToolsetId: (id: string) => string;
1132
1141
  * present in either map, excluding `primaryLocale` — that key is already the
1133
1142
  * primary Name/Description field, not a row in the popup.
1134
1143
  */
1135
- export declare const decomposeLocalizedFields: (displayName: LocalizedText | undefined, description: LocalizedText | undefined, primaryLocale: string) => DeploymentCreationFormLocaleEntry[];
1144
+ export declare const decomposeLocalizedFields: (displayName: LocalizedText | undefined, description: LocalizedText | undefined, primaryLocale: string) => LocalizedTextEntry[];
1136
1145
 
1137
1146
  /** Fallback text of a {@link GenerationConflictError} when no message is supplied. */
1138
1147
  export declare const DEFAULT_GENERATION_CONFLICT_MESSAGE = "A response is already being generated in this conversation. Wait for it to finish or stop it before sending another message.";
@@ -2706,6 +2715,20 @@ export declare const nameFromPath: (path: string) => string;
2706
2715
  */
2707
2716
  export declare const navigateToolsetOAuthPopup: (popup: Window, auth: ToolsetOAuthSettings, toolsetId: string, callbackPath: string, credentialsLevel?: ToolsetCredentialsLevel, resourceKind?: OAuthResourceKind, offlineUsageConsent?: boolean) => ToolsetOAuthInitiationResult;
2708
2717
 
2718
+ /**
2719
+ * Encodes a deployment/application id to its single-encoded form regardless
2720
+ * of whether the value it received was already percent-encoded or the raw,
2721
+ * human-readable form — decoding first then re-encoding once is idempotent
2722
+ * either way, since `decodeDeploymentId` on a raw (unencoded) id is a no-op.
2723
+ * Use this instead of `encodeDeploymentId` at a boundary that cannot
2724
+ * guarantee which form it receives, such as a `postMessage` payload from the
2725
+ * settings iframe: calling `encodeDeploymentId` directly on a value the
2726
+ * sender already encoded escapes the existing `%` characters a second time
2727
+ * (`%20` becomes `%2520`), which the backend only ever undoes once and so
2728
+ * 404s on.
2729
+ */
2730
+ export declare const normalizeDeploymentId: (id: string) => string;
2731
+
2709
2732
  /**
2710
2733
  * Normalises a stored response-format string to the current enum. Legacy data
2711
2734
  * may contain `'Markdown'` or `'PlainText'` (capital-first) instead of the
@@ -2721,6 +2744,19 @@ export declare const normalizeResponseFormat: (value: string | undefined) => Res
2721
2744
  */
2722
2745
  export declare const normalizeSkillName: (input: string) => string;
2723
2746
 
2747
+ /**
2748
+ * Encodes a toolset id to its single-encoded form regardless of whether the
2749
+ * value received it in was already percent-encoded or the raw,
2750
+ * human-readable form — decoding first then re-encoding once is idempotent
2751
+ * either way, since `decodeToolsetId` on a raw (unencoded) id is a no-op.
2752
+ * Use this instead of `encodeToolsetId` at a boundary that cannot guarantee
2753
+ * which form it receives, such as a `postMessage` payload from an embedded
2754
+ * iframe: calling `encodeToolsetId` directly on a value the sender already
2755
+ * encoded escapes the existing `%` characters a second time (`%20` becomes
2756
+ * `%2520`), which the backend only ever undoes once and so 404s on.
2757
+ */
2758
+ export declare const normalizeToolsetId: (toolsetId: string) => string;
2759
+
2724
2760
  export declare const normalizeVirtualPath: (value: string) => string;
2725
2761
 
2726
2762
  /** Arguments handed to the host's exchange callback. */
@@ -3435,6 +3471,16 @@ export declare const resolveSkillManifestFileId: (files: SkillMetadataItemDto[],
3435
3471
  /** Resolves a plain-text canvas content payload from a DisplayAttachment, or `null` if unavailable. */
3436
3472
  export declare const resolveTextCanvasContent: (attachment: DisplayAttachment, resolvers: AttachmentCanvasUrlResolvers) => Promise<PlainTextCanvasContent | ErrorCanvasContent | null>;
3437
3473
 
3474
+ /**
3475
+ * Resolves which credentials level a toolset's login applies to, per DIAL
3476
+ * Core's public/private toolset convention: a `public`-bucket toolset is
3477
+ * shared credentials-wise at `User` level, while a private/workspace toolset
3478
+ * is scoped at `Global` level. Every surface that drives a toolset login
3479
+ * (the sign-in-interrupt dialog, the QuickApps editor iframe bridge,
3480
+ * `useToolsetLogin`) must resolve the level this way rather than assuming one.
3481
+ */
3482
+ export declare const resolveToolsetCredentialsLevel: (toolsetId: string) => ToolsetCredentialsLevel.User | ToolsetCredentialsLevel.Global;
3483
+
3438
3484
  /**
3439
3485
  * Fetches the attachment payload and builds a `VisualizerCanvasContent` for the
3440
3486
  * given registry entry and theme. Returns `null` when the payload cannot be
@@ -3588,6 +3634,14 @@ export declare interface ScheduledTaskTriggerDescriptionOptions {
3588
3634
  referenceDate?: Date;
3589
3635
  }
3590
3636
 
3637
+ /**
3638
+ * Picks the auth-status field matching one credentials level out of a
3639
+ * toolset's `authSettings` — DIAL Core reports `userLevelAuthStatus` and
3640
+ * `globalAuthStatus` as independent fields rather than one status keyed by
3641
+ * level.
3642
+ */
3643
+ export declare const selectToolsetAuthStatus: (authSettings: Pick<DialToolsetAuthSettingsDto, "userLevelAuthStatus" | "globalAuthStatus"> | undefined, credentialsLevel: ToolsetCredentialsLevel) => string | undefined;
3644
+
3591
3645
  /** Serializes a prompt export envelope into a pretty-printed JSON blob. */
3592
3646
  export declare const serializePromptExport: (envelope: PromptExportFormat) => Blob;
3593
3647
 
package/index.js CHANGED
@@ -12,138 +12,138 @@ import { EXPORT_APP_NAME as k } from "./conversation/conversation-transfer/expor
12
12
  import { formatQuotedNameList as A } from "./conversation/conversation-transfer/import-conversation.js";
13
13
  import { createPublishApiClient as j, toPublishRuleDto as M } from "./catalog/create-publish-api.js";
14
14
  import { buildChatCompletionsUrl as N, buildDeploymentConnectApi as P, buildResponsesUrl as F } from "./catalog/deployment-endpoint-url.js";
15
- import { encodeDeploymentId as I, findDeploymentByIdOrReference as L } from "./catalog/deployment-id.js";
16
- import { AuthenticationType as R } from "./catalog/entity-details.js";
17
- import { mapDeploymentLimitsDtoToCatalogLimits as z } from "./catalog/map-deployment-limits-to-catalog.js";
18
- import { mapDeploymentLimitsToInput as B } from "./catalog/map-deployment-limits-to-input.js";
19
- import { decodeToolsetId as V, encodeToolsetId as H, isPublicToolsetId as U } from "./oauth/toolset-id.js";
20
- import { appendLocaleCode as W, buildAdditionalLocaleOptions as G, composeLocalePayload as K, decomposeLocalizedFields as q, resolveLocalizedText as J, toBaseLocale as Y } from "./shared/locale.js";
21
- import { formatCalendarDate as X, padTwoDigits as Z } from "./shared/formatting.js";
22
- import { mapDeploymentDetailsDtoToEntityDetails as Q, mapEntityDetailsToCatalogDetails as $, mapToolsetCredentials as ee } from "./catalog/map-entity-details-to-catalog.js";
23
- import { mapDeploymentToCatalogItem as te, mapDeploymentToolsetCredentials as ne, mapToolsetToCatalogItem as re, resolveDeploymentFolder as ie } from "./catalog/map-deployment-to-catalog-item.js";
24
- import { PromptSource as ae, parsePromptResourceUrl as oe } from "./prompt/prompt-resource.js";
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_TEXT_FIELD_MAX_LENGTHS as fe, SKILL_UPLOAD_MAX_FILES as pe, SKILL_UPLOAD_MAX_TOTAL_BYTES as me, buildSkillFilesPayload as he, buildSkillManifest as ge, buildSkillManifestForSubmit as _e, buildSkillManifestFromFrontmatter as ve, getSkillFieldLengthViolations as ye, isValidSkillRelativePath as be, nameFromPath as xe, normalizeSkillName as Se, parseSkillManifest as Ce, skillFileBytesToBlob as we, startsWithFrontmatterBlock as Te, unpackSkillArchive as Ee } from "./skill/skill.js";
27
- import { PUBLIC_SKILL_BUCKET as De, SKILL_LISTING_MAX_PAGES as Oe, SKILL_LISTING_PAGE_SIZE as ke, SKILL_MANIFEST_MAX_BYTES as Ae, SkillSource as je, parseSkillResourceUrl as Me } from "./skill/skill-types.js";
28
- import { buildSkillContentTree as Ne, buildSkillOverview as Pe, mapSkillToCatalogItem as Fe, readSkillFileBytes as Ie, readSkillFilePreviewBytes as Le, readSkillManifest as Re, resolveSkillFileDownloadPath as ze, resolveSkillManifestFileId as Be } from "./catalog/map-skill-to-catalog-item.js";
29
- import { McpResourceKind as Ve, buildApplicationMcpUrl as He, buildConnectApi as Ue, buildToolsetMcpUrl as We, resolveMcpResourceKind as Ge } from "./catalog/mcp-endpoint-url.js";
30
- import { getPublicCatalogEntityFolderPath as Ke, isPublicCatalogEntityId as qe, mapPublishConversationResultDto as Je, mapPublishHistoryEntryDto as Ye, toPublishEntityType as Xe } from "./catalog/publish.js";
31
- import { deriveAvailableTabIds as Ze, deriveFavoriteItems as Qe, filterCatalogItemsBySelector as $e, filterHiddenOwnedItems as et, reconcileFilterTopics as tt } from "./catalog/catalog-derivations.js";
32
- import { CatalogPrimaryActionType as nt, resolveCatalogPrimaryAction as rt } from "./catalog/catalog-primary-action.js";
33
- import { useCatalogEditNavigation as it } from "./catalog/useCatalogEditNavigation/useCatalogEditNavigation.js";
34
- import { parseSkillManifestDocument as at } from "./skill/skill-manifest.js";
35
- import { useSkillItemDetails as ot } from "./catalog/useSkillItemDetails.js";
36
- import { useCatalogItemDetails as st } from "./catalog/useCatalogItemDetails.js";
37
- import { OAuthResourceKind as ct, TOOLSET_REDIRECT_STATE_KEY as lt, ToolsetAuthStatus as ut, ToolsetAuthTypes as dt, ToolsetCredentialsLevel as ft, ToolsetOAuthCallbackQuery as pt, ToolsetOAuthChannelControlType as mt, ToolsetOAuthFailureReason as ht, ToolsetOAuthInitiationResultType as gt, ToolsetOAuthResultType as _t, WithLogin as vt } from "./oauth/types.js";
38
- import { emitToolsetLoginSuccess as yt, subscribeToolsetLoginSuccess as bt } from "./shared/toolset-login-events.js";
39
- import { getToolsetOAuthChannelName as xt, waitForToolsetOAuthResult as St } from "./oauth/handshake.js";
40
- import { buildToolsetAuthorizeUrl as Ct, getToolsetRedirectUri as wt } from "./oauth/authorize-url.js";
41
- import { initiateOAuthLogin as Tt, navigateToolsetOAuthPopup as Et, openToolsetOAuthPopup as Dt } from "./oauth/popup.js";
42
- import { ToolsetLoginOutcomeType as Ot, useToolsetLogin as kt } from "./oauth/useToolsetLogin/useToolsetLogin.js";
43
- import { useCatalogToolsetCredentials as At } from "./catalog/useCatalogToolsetCredentials/useCatalogToolsetCredentials.js";
44
- import { useApplicationCredentials as jt } from "./catalog/useApplicationCredentials/useApplicationCredentials.js";
45
- import { useSkillDetailsPanelData as Mt } from "./catalog/useSkillDetailsPanelData/useSkillDetailsPanelData.js";
46
- import { FavoriteEntityType as Nt, useFavoriteEntitiesState as Pt } from "./catalog/useFavoriteEntitiesState/useFavoriteEntitiesState.js";
47
- import { usePublishFolders as Ft } from "./catalog/usePublishFolders/usePublishFolders.js";
48
- import { buildAnnouncementSignature as It, hasAnnouncementContent as Lt, hasStructuredAnnouncement as Rt, sanitizeAnnouncementHtml as zt, sanitizeAnnouncementMessageHtml as Bt } from "./conversation/announcement-message.js";
49
- import { DEFAULT_GENERATION_CONFLICT_MESSAGE as Vt, DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE as Ht, DEFAULT_STREAM_IDLE_TIMEOUT_MS as Ut, GenerationConflictError as Wt, GenerationPersistenceError as Gt, StreamInterruptedError as Kt, StreamUpstreamError as qt, createChatStreamApi as Jt } from "./conversation/create-chat-stream-api.js";
50
- import { shouldWatchForDisplayNameUpdate as Yt } from "./conversation/display-name-watch.js";
51
- import { formatAppVersion as Xt, sanitizeFooterHtml as Zt } from "./conversation/footer-message.js";
52
- import { getModelIdFromConversationId as Qt } from "./conversation/get-model-id-from-conversation-id.js";
53
- import { getTimeOfDayGreeting as $t } from "./conversation/greeting.js";
54
- import { createDeploymentChangedMessage as en } from "./conversation/message-factory.js";
55
- import { getFormSchemaToolSyncKey as tn, getLastDeploymentId as nn, getLastUserMessageToolConfiguration as rn, getLatestToolConfiguration as an, getToolConfigurationFromFormSchema as on, isMessageStreaming as sn, messageHasStages as cn, normalizeResponseFormat as ln } from "./conversation/message-utils.js";
56
- import { toOverlayMessages as un } from "./conversation/overlay-messages.js";
57
- import { getQuickAppConversationStarters as dn } from "./conversation/quick-app-conversation-starters.js";
58
- import { mapStages as fn, toStage as pn } from "./conversation/stage.js";
59
- import { getStarterPopulateText as mn, getStartersFromSchema as hn } from "./conversation/starter-option.js";
60
- import { useOAuthCallbackCompletion as gn } from "./oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js";
61
- import { buildPromptExportEnvelope as _n, buildPromptExportFileName as vn, serializePromptExport as yn } from "./prompt/export-prompt.js";
62
- import { PROMPT_CONTENT_MAX_LENGTH as bn, PROMPT_COUNTER_ANNOUNCE_THRESHOLD as xn, PROMPT_DESCRIPTION_MAX_LENGTH as Sn, PROMPT_NAME_MAX_LENGTH as Cn, PromptFieldError as wn, buildPromptPath as Tn, getRemainingCharacters as En, validatePromptContent as Dn, validatePromptDescription as On, validatePromptName as kn } from "./prompt/prompt.js";
63
- import { usePromptsState as An } from "./prompt/usePromptsState/usePromptsState.js";
64
- import { UnsupportedTriggerReason as jn } from "./scheduled-task/scheduled-task-mapping.js";
65
- import { ScheduledTaskTriggerDescriptionKind as Mn, describeScheduledTaskTrigger as Nn } from "./scheduled-task/scheduled-task-description.js";
66
- import { apSchedulerDayToJsDay as Pn, jsDayToApSchedulerDay as Fn } from "./shared/cron-weekday.js";
67
- import { mapFormValuesToCreateBody as In, mapFormValuesToUpdateBody as Ln, mapScheduledTaskDtoToFormValues as Rn } from "./scheduled-task/scheduled-task-trigger.js";
68
- import { prepareScheduledTaskCreateBody as zn, prepareScheduledTaskUpdateBody as Bn } from "./scheduled-task/scheduled-task-preparation.js";
69
- import { createScheduledTasksApiClient as Vn } from "./scheduled-task/scheduled-tasks-api-client.js";
70
- import { useScheduledTasks as Hn } from "./scheduled-task/use-scheduled-tasks.js";
71
- import { mergeRunsById as Un, useScheduledTaskRuns as Wn } from "./scheduled-task/use-scheduled-task-runs.js";
72
- import { validateSkillFileBatch as Gn } from "./skill/skill-file-batch-validation.js";
73
- import { skillFileToAttachment as Kn } from "./skill/skill-file-preview.js";
74
- import { SkillEditorLoadState as qn, useSkillEditorLoad as Jn } from "./skill/useSkillEditorLoad.js";
75
- import { useSkillEditorSubmit as Yn } from "./skill/useSkillEditorSubmit.js";
76
- import { useSkillFileActions as Xn } from "./skill/useSkillFileActions.js";
77
- import { SkillPreviewErrorKind as Zn, useSkillFilePreview as Qn } from "./skill/useSkillFilePreview.js";
78
- import { useSkillsState as $n } from "./skill/useSkillsState/useSkillsState.js";
79
- import { SkillArchiveImportErrorKind as er, SkillArchiveImportStatus as tr, SkillArchiveSelectionRejectionReason as nr, classifySkillArchiveImportError as rr, useSkillArchiveImport as ir } from "./skill/useSkillArchiveImport/useSkillArchiveImport.js";
80
- import { RecipientsCountStatus as ar, useShareRecipientsCount as or } from "./useShareRecipientsCount/useShareRecipientsCount.js";
81
- import { deriveConversationRowActionState as sr } from "./conversation/deriveConversationRowActionState/deriveConversationRowActionState.js";
82
- import { useActiveConversationSync as cr } from "./conversation/useActiveConversationSync/useActiveConversationSync.js";
83
- import { useAsyncConfirmDialog as lr } from "./conversation/useAsyncConfirmDialog/useAsyncConfirmDialog.js";
84
- import { useConversationLookupMaps as ur } from "./conversation/useConversationLookupMaps/useConversationLookupMaps.js";
85
- import { getConversationSource as dr, useConversationPanelItems as fr } from "./conversation/useConversationPanelItems/useConversationPanelItems.js";
86
- import { useImportFilePicker as pr } from "./conversation/useImportFilePicker/useImportFilePicker.js";
87
- import { useMessageSelectionReply as mr } from "./conversation/useMessageSelectionReply/useMessageSelectionReply.js";
88
- import { sanitizeFileName as hr, splitFileNameExtension as gr, trimFileNameToByteLimit as _r } from "./files/file-name.js";
89
- import { useAttachmentUpload as vr } from "./conversation/useAttachmentUpload/useAttachmentUpload.js";
90
- import { AudioTranscriptionError as yr, AudioTranscriptionErrorReason as br } from "./conversation/useTranscribeAudio/audio-transcription-error.js";
91
- import { useTranscribeAudio as xr } from "./conversation/useTranscribeAudio/useTranscribeAudio.js";
92
- import { DEFAULT_MAX_ARCHIVE_BYTES as Sr, useConversationExport as Cr } from "./conversation/useConversationExport/useConversationExport.js";
93
- import { attachmentToDto as wr, attachmentsToDtos as Tr } from "./conversation/useConversationHandlers/attachment-to-dto.js";
94
- import { createMessagePair as Er } from "./conversation/useConversationHandlers/message-factory.js";
95
- import { hasActiveToolConfig as Dr, isAnswerIncomplete as Or, isMessageChanged as kr, shouldRerunGenerationOnEdit as Ar } from "./conversation/useConversationHandlers/message-utils.js";
96
- import { getStarterConversationText as jr, getStarterDisplayText as Mr, getStarterSubmitText as Nr } from "./conversation/useConversationHandlers/starter-option.js";
97
- import { getConversationPath as Pr } from "./conversation/useConversationStream/conversation-path.js";
98
- import { useConversationHandlers as Fr } from "./conversation/useConversationHandlers/useConversationHandlers.js";
99
- import { useConversationImport as Ir } from "./conversation/useConversationImport/useConversationImport.js";
100
- import { useConversationScroll as Lr } from "./conversation/useConversationScroll/useConversationScroll.js";
101
- import { applyChunkToMessages as Rr, mergeStages as zr } from "./conversation/useConversationStream/apply-chunk.js";
102
- import { isAwaitingGenerationResume as Br } from "./conversation/useConversationStream/generation-resume.js";
103
- import { useConversationStream as Vr } from "./conversation/useConversationStream/useConversationStream.js";
104
- import { useConversationSources as Hr } from "./conversation-sources/useConversationSources/useConversationSources.js";
105
- import { DialFilesApiUploadMode as Ur } from "./files/dial-files-api.js";
106
- import { FileManagerNotificationReason as Wr, FileNameValidationErrorReason as Gr, FileOperationKind as Kr } from "./files/dial-file-manager.types.js";
107
- import { COLUMNS_WITHOUT_AUTHOR as qr, COLUMNS_WITH_AUTHOR as Jr, CORE_PERMISSION_MAP as Yr, DATE_OPTIONS as Xr, PATH_SEPARATOR_REGEXP as Zr, RESERVED_MARKER_NAME as Qr, UPLOAD_CONCURRENCY as $r } from "./files/dial-file-manager.model.js";
108
- import { DialFileManagerActionProfile as ei, DialFileManagerVariant as ti, deriveActionProfile as ni } from "./files/file-manager-variant.js";
109
- import { buildSharedItemVirtualPath as ri, dialCorePathToRelative as ii, findDialFileByPath as ai, findFolderByVirtualPath as oi, formatOperationFolderName as si, getVirtualPathName as ci, hasDialFileWritePermission as li, hasForbiddenNameSymbols as ui, isCopyMoveDuplicateAllowed as di, isShareActionsAllowed as fi, normalizeVirtualPath as pi, parseNewFolderVirtualPath as mi, resolveOwnerCoords as hi } from "./files/dial-file-manager-path.util.js";
110
- import { getParentFolderPath as gi, resolveDialFileApiPath as _i, virtualPathToApiPath as vi } from "./files/resolve-dial-file-api-path.js";
111
- import { prepareCopyItems as yi, prepareMoveRenameItems as bi } from "./files/dial-file-manager-copy-move.util.js";
112
- import { buildFromCache as xi, fetchByTab as Si, fetchForSearch as Ci, findFirstSuccessfulCopyMoveItem as wi, mapCorePermissions as Ti, mapFileMetadataToDialFile as Ei, mapSearchItem as Di, mergeCreatedFolderIntoCache as Oi, updateEntry as ki } from "./files/dial-file-manager-mapping.util.js";
113
- import { createFilesApiClient as Ai } from "./files/create-files-api.js";
114
- import { createUploadFileWithProgress as ji } from "./files/create-upload-file-with-progress.js";
115
- import { openAnnotationAttachment as Mi } from "./files/annotation.js";
116
- import { annotationToOoxmlCanvasContent as Ni, annotationToPdfCanvasContent as Pi, clearAttachmentCache as Fi, hasAttachmentTextSource as Ii, referenceAttachmentToPdfCanvasContent as Li, resolveCodeCanvasContent as Ri, resolveGroupedVisualizerCanvasContent as zi, resolveHtmlCanvasContent as Bi, resolveImageCanvasContent as Vi, resolveJsonCanvasContent as Hi, resolveMarkdownCanvasContent as Ui, resolveOoxmlCanvasContent as Wi, resolvePdfCanvasContent as Gi, resolveTextCanvasContent as Ki, resolveVisualizerCanvasContent as qi } from "./files/attachment-canvas.js";
117
- import { getUrlFileName as Ji, isExternalSourcePreviewable as Yi, resolveExternalSourceContentType as Xi } from "./files/source-content.js";
118
- import { annotationToDisplayAttachment as Zi, attachmentDtoToDisplayAttachment as Qi, attachmentDtosToDisplayAttachments as $i } from "./files/attachment-dto-to-display.js";
119
- import { dialFileToAttachment as ea, dialFilesToAttachments as ta, dialFolderPathToAttachment as na } from "./files/dial-file-to-attachment.js";
120
- import { DownloadDestinationType as ra } from "./files/download-destination.js";
121
- import { prepareDownloadDestination as ia } from "./files/prepare-download-destination.js";
122
- import { useDialFileListing as aa } from "./files/useDialFileListing/useDialFileListing.js";
123
- import { useDialFileMetadata as oa } from "./files/useDialFileMetadata/useDialFileMetadata.js";
124
- import { useDialFileMutations as sa } from "./files/useDialFileMutations/useDialFileMutations.js";
125
- import { useDialFileSharing as ca } from "./files/useDialFileSharing/useDialFileSharing.js";
126
- import { useDialFileUploadBatch as la } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
127
- import { useDialFileManager as ua } from "./files/useDialFileManager/useDialFileManager.js";
128
- import { useDialFileManagerTabConfig as da } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
129
- import { useFileAttachmentPicker as fa } from "./files/useFileAttachmentPicker/useFileAttachmentPicker.js";
130
- import { isCustomAppSchema as pa, isQuickAppSchema as ma } from "./shared/application-schema.js";
131
- import { getBrowserTimezone as ha } from "./shared/browser-timezone.js";
132
- import { isValidAbsoluteUrl as ga, isValidFeaturesData as _a, parseFeaturesData as va } from "./shared/custom-apps.js";
133
- import { buildExternalServiceScopeId as ya, getExternalServiceFallbackName as ba, parseExternalServiceUrl as xa } from "./shared/external-services.js";
134
- import { useChatSettingsFormConfig as Sa } from "./useChatSettingsFormConfig/useChatSettingsFormConfig.js";
135
- import { usePageFileDrag as Ca } from "./usePageFileDrag/usePageFileDrag.js";
136
- import { useViewportWidth as wa } from "./useViewportWidth/useViewportWidth.js";
137
- import { usePanelMaxWidth as Ta } from "./usePanelMaxWidth/usePanelMaxWidth.js";
138
- import { useShareLink as Ea } from "./useShareLink/useShareLink.js";
139
- import { useToolsMenu as Da } from "./useToolsMenu/useToolsMenu.js";
140
- import { USAGE_DATA_I18N_KEYS as Oa, mapUsageDataToDashboard as ka } from "./usage/map-usage-data-to-dashboard.js";
141
- import { USAGE_MODEL_LIMITS_I18N_KEYS as Aa, mapOverallCostLimitsToPeriodStatuses as ja, mapUserUsageToModelLimits as Ma } from "./usage/map-user-usage-to-model-limits.js";
142
- import { useUsageData as Na } from "./usage/useUsageData/useUsageData.js";
143
- import { McpAppResourceFetchError as Pa, createMcpAppsApiClient as Fa } from "./mcp-apps/mcp-apps-api-client.js";
144
- import { useMcpAppTools as Ia } from "./mcp-apps/useMcpAppTools/useMcpAppTools.js";
145
- import { useMcpAppHostContext as La } from "./mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js";
146
- import { useMcpAppHostAdapter as Ra } from "./mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.js";
147
- import { useOpenMcpAppCanvas as za } from "./mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.js";
148
- import { useGridEditingScroll as Ba } from "@epam/ai-dial-chat-shared";
149
- export { x as AttachmentValidationErrorReason, yr as AudioTranscriptionError, br as AudioTranscriptionErrorReason, R as AuthenticationType, qr as COLUMNS_WITHOUT_AUTHOR, Jr as COLUMNS_WITH_AUTHOR, Yr as CORE_PERMISSION_MAP, nt as CatalogPrimaryActionType, T as ConversationExportMode, E as ConversationTransferErrorCode, D as ConversationTransferWarningCode, Xr as DATE_OPTIONS, Vt as DEFAULT_GENERATION_CONFLICT_MESSAGE, Ht as DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE, Sr as DEFAULT_MAX_ARCHIVE_BYTES, Ut as DEFAULT_STREAM_IDLE_TIMEOUT_MS, ei as DialFileManagerActionProfile, ti as DialFileManagerVariant, Ur as DialFilesApiUploadMode, ra as DownloadDestinationType, k as EXPORT_APP_NAME, O as ExportFileNameKind, Nt as FavoriteEntityType, Wr as FileManagerNotificationReason, Gr as FileNameValidationErrorReason, Kr as FileOperationKind, Wt as GenerationConflictError, Gt as GenerationPersistenceError, Pa as McpAppResourceFetchError, Ve as McpResourceKind, ct as OAuthResourceKind, Zr as PATH_SEPARATOR_REGEXP, bn as PROMPT_CONTENT_MAX_LENGTH, xn as PROMPT_COUNTER_ANNOUNCE_THRESHOLD, Sn as PROMPT_DESCRIPTION_MAX_LENGTH, Cn as PROMPT_NAME_MAX_LENGTH, De as PUBLIC_SKILL_BUCKET, wn as PromptFieldError, ae as PromptSource, Qr as RESERVED_MARKER_NAME, ar as RecipientsCountStatus, ue as SKILL_FILE_UPLOAD_MAX_BYTES, Oe as SKILL_LISTING_MAX_PAGES, ke as SKILL_LISTING_PAGE_SIZE, de as SKILL_MANIFEST_FILE, Ae as SKILL_MANIFEST_MAX_BYTES, fe as SKILL_TEXT_FIELD_MAX_LENGTHS, pe as SKILL_UPLOAD_MAX_FILES, me as SKILL_UPLOAD_MAX_TOTAL_BYTES, Mn as ScheduledTaskTriggerDescriptionKind, er as SkillArchiveImportErrorKind, tr as SkillArchiveImportStatus, nr as SkillArchiveSelectionRejectionReason, qn as SkillEditorLoadState, Zn as SkillPreviewErrorKind, je as SkillSource, Kt as StreamInterruptedError, qt as StreamUpstreamError, lt as TOOLSET_REDIRECT_STATE_KEY, ut as ToolsetAuthStatus, dt as ToolsetAuthTypes, ft as ToolsetCredentialsLevel, Ot as ToolsetLoginOutcomeType, pt as ToolsetOAuthCallbackQuery, mt as ToolsetOAuthChannelControlType, ht as ToolsetOAuthFailureReason, gt as ToolsetOAuthInitiationResultType, _t as ToolsetOAuthResultType, $r as UPLOAD_CONCURRENCY, Oa as USAGE_DATA_I18N_KEYS, Aa as USAGE_MODEL_LIMITS_I18N_KEYS, jn as UnsupportedTriggerReason, vt as WithLogin, Zi as annotationToDisplayAttachment, Ni as annotationToOoxmlCanvasContent, Pi as annotationToPdfCanvasContent, Pn as apSchedulerDayToJsDay, W as appendLocaleCode, Rr as applyChunkToMessages, Qi as attachmentDtoToDisplayAttachment, $i as attachmentDtosToDisplayAttachments, wr as attachmentToDto, Tr as attachmentsToDtos, G as buildAdditionalLocaleOptions, It as buildAnnouncementSignature, He as buildApplicationMcpUrl, N as buildChatCompletionsUrl, Ue as buildConnectApi, P as buildDeploymentConnectApi, ya as buildExternalServiceScopeId, xi as buildFromCache, _n as buildPromptExportEnvelope, vn as buildPromptExportFileName, se as buildPromptOverview, Tn as buildPromptPath, F as buildResponsesUrl, ri as buildSharedItemVirtualPath, Ne as buildSkillContentTree, he as buildSkillFilesPayload, ge as buildSkillManifest, _e as buildSkillManifestForSubmit, ve as buildSkillManifestFromFrontmatter, Pe as buildSkillOverview, Ct as buildToolsetAuthorizeUrl, We as buildToolsetMcpUrl, rr as classifySkillArchiveImportError, Fi as clearAttachmentCache, K as composeLocalePayload, Jt as createChatStreamApi, i as createCsrfMiddleware, en as createDeploymentChangedMessage, Ai as createFilesApiClient, Fa as createMcpAppsApiClient, Er as createMessagePair, j as createPublishApiClient, Vn as createScheduledTasksApiClient, a as createUnauthorizedMiddleware, ji as createUploadFileWithProgress, V as decodeToolsetId, q as decomposeLocalizedFields, ni as deriveActionProfile, Ze as deriveAvailableTabIds, sr as deriveConversationRowActionState, Qe as deriveFavoriteItems, Nn as describeScheduledTaskTrigger, ii as dialCorePathToRelative, ea as dialFileToAttachment, ta as dialFilesToAttachments, na as dialFolderPathToAttachment, m as downloadAttachment, yt as emitToolsetLoginSuccess, I as encodeDeploymentId, H as encodeToolsetId, Si as fetchByTab, Ci as fetchForSearch, $e as filterCatalogItemsBySelector, et as filterHiddenOwnedItems, L as findDeploymentByIdOrReference, ai as findDialFileByPath, wi as findFirstSuccessfulCopyMoveItem, oi as findFolderByVirtualPath, Xt as formatAppVersion, X as formatCalendarDate, C as formatDateYM, w as formatDateYMD, si as formatOperationFolderName, A as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, ha as getBrowserTimezone, Pr as getConversationPath, dr as getConversationSource, ba as getExternalServiceFallbackName, tn as getFormSchemaToolSyncKey, nn as getLastDeploymentId, rn as getLastUserMessageToolConfiguration, an as getLatestToolConfiguration, Qt as getModelIdFromConversationId, gi as getParentFolderPath, Ke as getPublicCatalogEntityFolderPath, dn as getQuickAppConversationStarters, En as getRemainingCharacters, ye as getSkillFieldLengthViolations, jr as getStarterConversationText, Mr as getStarterDisplayText, mn as getStarterPopulateText, Nr as getStarterSubmitText, hn as getStartersFromSchema, $t as getTimeOfDayGreeting, on as getToolConfigurationFromFormSchema, xt as getToolsetOAuthChannelName, wt as getToolsetRedirectUri, Ji as getUrlFileName, ci as getVirtualPathName, Dr as hasActiveToolConfig, Lt as hasAnnouncementContent, Ii as hasAttachmentTextSource, li as hasDialFileWritePermission, ui as hasForbiddenNameSymbols, Rt as hasStructuredAnnouncement, o as includesIgnoreCase, Tt as initiateOAuthLogin, Or as isAnswerIncomplete, Br as isAwaitingGenerationResume, r as isConversationNotFoundError, di as isCopyMoveDuplicateAllowed, pa as isCustomAppSchema, _ as isDialFileAcceptType, d as isDialFileId, h as isDownloadableAttachment, Yi as isExternalSourcePreviewable, kr as isMessageChanged, sn as isMessageStreaming, ce as isOrganisationPromptItem, qe as isPublicCatalogEntityId, U as isPublicToolsetId, ma as isQuickAppSchema, fi as isShareActionsAllowed, ga as isValidAbsoluteUrl, _a as isValidFeaturesData, be as isValidSkillRelativePath, Fn as jsDayToApSchedulerDay, Ti as mapCorePermissions, Q as mapDeploymentDetailsDtoToEntityDetails, z as mapDeploymentLimitsDtoToCatalogLimits, B as mapDeploymentLimitsToInput, te as mapDeploymentToCatalogItem, ne as mapDeploymentToolsetCredentials, $ as mapEntityDetailsToCatalogDetails, Ei as mapFileMetadataToDialFile, In as mapFormValuesToCreateBody, Ln as mapFormValuesToUpdateBody, ja as mapOverallCostLimitsToPeriodStatuses, le as mapPromptToCatalogItem, Je as mapPublishConversationResultDto, Ye as mapPublishHistoryEntryDto, Rn as mapScheduledTaskDtoToFormValues, Di as mapSearchItem, Fe as mapSkillToCatalogItem, fn as mapStages, ee as mapToolsetCredentials, re as mapToolsetToCatalogItem, ka as mapUsageDataToDashboard, Ma as mapUserUsageToModelLimits, Oi as mergeCreatedFolderIntoCache, Un as mergeRunsById, zr as mergeStages, cn as messageHasStages, v as mimeTypesToAttachmentExtensionLabels, y as mimeTypesToDialFileAcceptTypes, b as mimeTypesToFileAccept, xe as nameFromPath, Et as navigateToolsetOAuthPopup, ln as normalizeResponseFormat, Se as normalizeSkillName, pi as normalizeVirtualPath, Mi as openAnnotationAttachment, Dt as openToolsetOAuthPopup, Z as padTwoDigits, xa as parseExternalServiceUrl, va as parseFeaturesData, mi as parseNewFolderVirtualPath, oe as parsePromptResourceUrl, Ce as parseSkillManifest, at as parseSkillManifestDocument, Me as parseSkillResourceUrl, yi as prepareCopyItems, ia as prepareDownloadDestination, bi as prepareMoveRenameItems, zn as prepareScheduledTaskCreateBody, Bn as prepareScheduledTaskUpdateBody, Ie as readSkillFileBytes, Le as readSkillFilePreviewBytes, Re as readSkillManifest, tt as reconcileFilterTopics, Li as referenceAttachmentToPdfCanvasContent, rt as resolveCatalogPrimaryAction, Ri as resolveCodeCanvasContent, ie as resolveDeploymentFolder, _i as resolveDialFileApiPath, f as resolveDialFileBucketAndPath, Xi as resolveExternalSourceContentType, zi as resolveGroupedVisualizerCanvasContent, Bi as resolveHtmlCanvasContent, Vi as resolveImageCanvasContent, Hi as resolveJsonCanvasContent, J as resolveLocalizedText, Ui as resolveMarkdownCanvasContent, Ge as resolveMcpResourceKind, Wi as resolveOoxmlCanvasContent, hi as resolveOwnerCoords, Gi as resolvePdfCanvasContent, p as resolveRelativeDialFilePath, ze as resolveSkillFileDownloadPath, Be as resolveSkillManifestFileId, Ki as resolveTextCanvasContent, qi as resolveVisualizerCanvasContent, s as safeDecodeURI, c as safeDecodeURIComponent, zt as sanitizeAnnouncementHtml, Bt as sanitizeAnnouncementMessageHtml, hr as sanitizeFileName, Zt as sanitizeFooterHtml, yn as serializePromptExport, Ar as shouldRerunGenerationOnEdit, Yt as shouldWatchForDisplayNameUpdate, we as skillFileBytesToBlob, Kn as skillFileToAttachment, gr as splitFileNameExtension, Te as startsWithFrontmatterBlock, l as stripSurroundingSlashes, u as stripTrailingSlashes, bt as subscribeToolsetLoginSuccess, Y as toBaseLocale, un as toOverlayMessages, Xe as toPublishEntityType, M as toPublishRuleDto, pn as toStage, _r as trimFileNameToByteLimit, Ee as unpackSkillArchive, ki as updateEntry, cr as useActiveConversationSync, jt as useApplicationCredentials, lr as useAsyncConfirmDialog, g as useAttachmentAction, vr as useAttachmentUpload, S as useAttachmentValidation, it as useCatalogEditNavigation, st as useCatalogItemDetails, At as useCatalogToolsetCredentials, Sa as useChatSettingsFormConfig, Cr as useConversationExport, Fr as useConversationHandlers, Ir as useConversationImport, ur as useConversationLookupMaps, fr as useConversationPanelItems, Lr as useConversationScroll, Hr as useConversationSources, Vr as useConversationStream, aa as useDialFileListing, ua as useDialFileManager, da as useDialFileManagerTabConfig, oa as useDialFileMetadata, sa as useDialFileMutations, ca as useDialFileSharing, la as useDialFileUploadBatch, Pt as useFavoriteEntitiesState, fa as useFileAttachmentPicker, Ba as useGridEditingScroll, pr as useImportFilePicker, Ra as useMcpAppHostAdapter, La as useMcpAppHostContext, Ia as useMcpAppTools, mr as useMessageSelectionReply, gn as useOAuthCallbackCompletion, za as useOpenMcpAppCanvas, Ca as usePageFileDrag, Ta as usePanelMaxWidth, An as usePromptsState, Ft as usePublishFolders, Wn as useScheduledTaskRuns, Hn as useScheduledTasks, Ea as useShareLink, or as useShareRecipientsCount, ir as useSkillArchiveImport, Mt as useSkillDetailsPanelData, Jn as useSkillEditorLoad, Yn as useSkillEditorSubmit, Xn as useSkillFileActions, Qn as useSkillFilePreview, ot as useSkillItemDetails, $n as useSkillsState, Da as useToolsMenu, kt as useToolsetLogin, xr as useTranscribeAudio, Na as useUsageData, wa as useViewportWidth, Dn as validatePromptContent, On as validatePromptDescription, kn as validatePromptName, Gn as validateSkillFileBatch, vi as virtualPathToApiPath, St as waitForToolsetOAuthResult };
15
+ import { decodeDeploymentId as I, encodeDeploymentId as L, findDeploymentByIdOrReference as R, normalizeDeploymentId as z } from "./catalog/deployment-id.js";
16
+ import { AuthenticationType as B } from "./catalog/entity-details.js";
17
+ import { mapDeploymentLimitsDtoToCatalogLimits as V } from "./catalog/map-deployment-limits-to-catalog.js";
18
+ import { mapDeploymentLimitsToInput as H } from "./catalog/map-deployment-limits-to-input.js";
19
+ import { OAuthResourceKind as U, TOOLSET_REDIRECT_STATE_KEY as W, ToolsetAuthStatus as G, ToolsetAuthTypes as K, ToolsetCredentialsLevel as q, ToolsetOAuthCallbackQuery as J, ToolsetOAuthChannelControlType as Y, ToolsetOAuthFailureReason as X, ToolsetOAuthInitiationResultType as Z, ToolsetOAuthResultType as Q, WithLogin as $ } from "./oauth/types.js";
20
+ import { decodeToolsetId as ee, encodeToolsetId as te, isPublicToolsetId as ne, normalizeToolsetId as re, resolveToolsetCredentialsLevel as ie, selectToolsetAuthStatus as ae } from "./oauth/toolset-id.js";
21
+ import { appendLocaleCode as oe, buildAdditionalLocaleOptions as se, composeLocalePayload as ce, decomposeLocalizedFields as le, resolveLocalizedText as ue, toBaseLocale as de } from "./shared/locale.js";
22
+ import { formatCalendarDate as fe, padTwoDigits as pe } from "./shared/formatting.js";
23
+ import { mapDeploymentDetailsDtoToEntityDetails as me, mapEntityDetailsToCatalogDetails as he, mapToolsetCredentials as ge } from "./catalog/map-entity-details-to-catalog.js";
24
+ import { mapDeploymentToCatalogItem as _e, mapDeploymentToolsetCredentials as ve, mapToolsetToCatalogItem as ye, resolveDeploymentFolder as be } from "./catalog/map-deployment-to-catalog-item.js";
25
+ import { PromptSource as xe, parsePromptResourceUrl as Se } from "./prompt/prompt-resource.js";
26
+ import { buildPromptOverview as Ce, isOrganisationPromptItem as we, mapPromptToCatalogItem as Te } from "./catalog/map-prompt-to-catalog-item.js";
27
+ import { SKILL_FILE_UPLOAD_MAX_BYTES as Ee, SKILL_MANIFEST_FILE as De, SKILL_TEXT_FIELD_MAX_LENGTHS as Oe, SKILL_UPLOAD_MAX_FILES as ke, SKILL_UPLOAD_MAX_TOTAL_BYTES as Ae, buildSkillFilesPayload as je, buildSkillManifest as Me, buildSkillManifestForSubmit as Ne, buildSkillManifestFromFrontmatter as Pe, getSkillFieldLengthViolations as Fe, isValidSkillRelativePath as Ie, nameFromPath as Le, normalizeSkillName as Re, parseSkillManifest as ze, skillFileBytesToBlob as Be, startsWithFrontmatterBlock as Ve, unpackSkillArchive as He } from "./skill/skill.js";
28
+ import { PUBLIC_SKILL_BUCKET as Ue, SKILL_LISTING_MAX_PAGES as We, SKILL_LISTING_PAGE_SIZE as Ge, SKILL_MANIFEST_MAX_BYTES as Ke, SkillSource as qe, parseSkillResourceUrl as Je } from "./skill/skill-types.js";
29
+ import { buildSkillContentTree as Ye, buildSkillOverview as Xe, mapSkillToCatalogItem as Ze, readSkillFileBytes as Qe, readSkillFilePreviewBytes as $e, readSkillManifest as et, resolveSkillFileDownloadPath as tt, resolveSkillManifestFileId as nt } from "./catalog/map-skill-to-catalog-item.js";
30
+ import { McpResourceKind as rt, buildApplicationMcpUrl as it, buildConnectApi as at, buildToolsetMcpUrl as ot, resolveMcpResourceKind as st } from "./catalog/mcp-endpoint-url.js";
31
+ import { getPublicCatalogEntityFolderPath as ct, isPublicCatalogEntityId as lt, mapPublishConversationResultDto as ut, mapPublishHistoryEntryDto as dt, toPublishEntityType as ft } from "./catalog/publish.js";
32
+ import { deriveAvailableTabIds as pt, deriveFavoriteItems as mt, filterCatalogItemsBySelector as ht, filterHiddenOwnedItems as gt, reconcileFilterTopics as _t } from "./catalog/catalog-derivations.js";
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, PATH_SEPARATOR_REGEXP as ni, RESERVED_MARKER_NAME as ri, UPLOAD_CONCURRENCY as ii } from "./files/dial-file-manager.model.js";
108
+ import { DialFileManagerActionProfile as ai, DialFileManagerVariant as oi, deriveActionProfile as si } from "./files/file-manager-variant.js";
109
+ import { buildSharedItemVirtualPath as ci, dialCorePathToRelative as li, findDialFileByPath as ui, findFolderByVirtualPath as di, formatOperationFolderName as fi, getVirtualPathName as pi, hasDialFileWritePermission as mi, hasForbiddenNameSymbols as hi, isCopyMoveDuplicateAllowed as gi, isShareActionsAllowed as _i, normalizeVirtualPath as vi, parseNewFolderVirtualPath as yi, resolveOwnerCoords as bi } from "./files/dial-file-manager-path.util.js";
110
+ import { getParentFolderPath as xi, resolveDialFileApiPath as Si, virtualPathToApiPath as Ci } from "./files/resolve-dial-file-api-path.js";
111
+ import { prepareCopyItems as wi, prepareMoveRenameItems as Ti } from "./files/dial-file-manager-copy-move.util.js";
112
+ import { buildFromCache as Ei, fetchByTab as Di, fetchForSearch as Oi, findFirstSuccessfulCopyMoveItem as ki, mapCorePermissions as Ai, mapFileMetadataToDialFile as ji, mapSearchItem as Mi, mergeCreatedFolderIntoCache as Ni, updateEntry as Pi } from "./files/dial-file-manager-mapping.util.js";
113
+ import { createFilesApiClient as Fi } from "./files/create-files-api.js";
114
+ import { createUploadFileWithProgress as Ii } from "./files/create-upload-file-with-progress.js";
115
+ import { openAnnotationAttachment as Li } from "./files/annotation.js";
116
+ import { annotationToOoxmlCanvasContent as Ri, annotationToPdfCanvasContent as zi, clearAttachmentCache as Bi, hasAttachmentTextSource as Vi, referenceAttachmentToPdfCanvasContent as Hi, resolveCodeCanvasContent as Ui, resolveGroupedVisualizerCanvasContent as Wi, resolveHtmlCanvasContent as Gi, resolveImageCanvasContent as Ki, resolveJsonCanvasContent as qi, resolveMarkdownCanvasContent as Ji, resolveOoxmlCanvasContent as Yi, resolvePdfCanvasContent as Xi, resolveTextCanvasContent as Zi, resolveVisualizerCanvasContent as Qi } from "./files/attachment-canvas.js";
117
+ import { getUrlFileName as $i, isExternalSourcePreviewable as ea, resolveExternalSourceContentType as ta } from "./files/source-content.js";
118
+ import { annotationToDisplayAttachment as na, attachmentDtoToDisplayAttachment as ra, attachmentDtosToDisplayAttachments as ia } from "./files/attachment-dto-to-display.js";
119
+ import { dialFileToAttachment as aa, dialFilesToAttachments as oa, dialFolderPathToAttachment as sa } from "./files/dial-file-to-attachment.js";
120
+ import { DownloadDestinationType as ca } from "./files/download-destination.js";
121
+ import { prepareDownloadDestination as la } from "./files/prepare-download-destination.js";
122
+ import { useDialFileListing as ua } from "./files/useDialFileListing/useDialFileListing.js";
123
+ import { useDialFileMetadata as da } from "./files/useDialFileMetadata/useDialFileMetadata.js";
124
+ import { useDialFileMutations as fa } from "./files/useDialFileMutations/useDialFileMutations.js";
125
+ import { useDialFileSharing as pa } from "./files/useDialFileSharing/useDialFileSharing.js";
126
+ import { useDialFileUploadBatch as ma } from "./files/useDialFileUploadBatch/useDialFileUploadBatch.js";
127
+ import { useDialFileManager as ha } from "./files/useDialFileManager/useDialFileManager.js";
128
+ import { useDialFileManagerTabConfig as ga } from "./files/useDialFileManagerTabConfig/useDialFileManagerTabConfig.js";
129
+ import { useFileAttachmentPicker as _a } from "./files/useFileAttachmentPicker/useFileAttachmentPicker.js";
130
+ import { isCustomAppSchema as va, isQuickAppSchema as ya } from "./shared/application-schema.js";
131
+ import { getBrowserTimezone as ba } from "./shared/browser-timezone.js";
132
+ import { isValidAbsoluteUrl as xa, isValidFeaturesData as Sa, parseFeaturesData as Ca } from "./shared/custom-apps.js";
133
+ import { buildExternalServiceScopeId as wa, getExternalServiceFallbackName as Ta, parseExternalServiceUrl as Ea } from "./shared/external-services.js";
134
+ import { useChatSettingsFormConfig as Da } from "./useChatSettingsFormConfig/useChatSettingsFormConfig.js";
135
+ import { usePageFileDrag as Oa } from "./usePageFileDrag/usePageFileDrag.js";
136
+ import { useViewportWidth as ka } from "./useViewportWidth/useViewportWidth.js";
137
+ import { usePanelMaxWidth as Aa } from "./usePanelMaxWidth/usePanelMaxWidth.js";
138
+ import { useShareLink as ja } from "./useShareLink/useShareLink.js";
139
+ import { useToolsMenu as Ma } from "./useToolsMenu/useToolsMenu.js";
140
+ import { USAGE_DATA_I18N_KEYS as Na, mapUsageDataToDashboard as Pa } from "./usage/map-usage-data-to-dashboard.js";
141
+ import { USAGE_MODEL_LIMITS_I18N_KEYS as Fa, mapOverallCostLimitsToPeriodStatuses as Ia, mapUserUsageToModelLimits as La } from "./usage/map-user-usage-to-model-limits.js";
142
+ import { useUsageData as Ra } from "./usage/useUsageData/useUsageData.js";
143
+ import { McpAppResourceFetchError as za, createMcpAppsApiClient as Ba } from "./mcp-apps/mcp-apps-api-client.js";
144
+ import { useMcpAppTools as Va } from "./mcp-apps/useMcpAppTools/useMcpAppTools.js";
145
+ import { useMcpAppHostContext as Ha } from "./mcp-apps/useMcpAppHostContext/useMcpAppHostContext.js";
146
+ import { useMcpAppHostAdapter as Ua } from "./mcp-apps/useMcpAppHostAdapter/useMcpAppHostAdapter.js";
147
+ import { useOpenMcpAppCanvas as Wa } from "./mcp-apps/useOpenMcpAppCanvas/useOpenMcpAppCanvas.js";
148
+ import { useGridEditingScroll as Ga } from "@epam/ai-dial-chat-shared";
149
+ 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, ai as DialFileManagerActionProfile, oi as DialFileManagerVariant, Jr as DialFilesApiUploadMode, ca 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, za as McpAppResourceFetchError, rt as McpResourceKind, U as OAuthResourceKind, ni 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, ri 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, ii as UPLOAD_CONCURRENCY, Na as USAGE_DATA_I18N_KEYS, Fa as USAGE_MODEL_LIMITS_I18N_KEYS, In as UnsupportedTriggerReason, $ as WithLogin, na as annotationToDisplayAttachment, Ri as annotationToOoxmlCanvasContent, zi as annotationToPdfCanvasContent, zn as apSchedulerDayToJsDay, oe as appendLocaleCode, Ur as applyChunkToMessages, ra as attachmentDtoToDisplayAttachment, ia 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, wa as buildExternalServiceScopeId, Ei as buildFromCache, Sn as buildPromptExportEnvelope, Cn as buildPromptExportFileName, Ce as buildPromptOverview, An as buildPromptPath, F as buildResponsesUrl, ci 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, Bi as clearAttachmentCache, ce as composeLocalePayload, $t as createChatStreamApi, i as createCsrfMiddleware, on as createDeploymentChangedMessage, Fi as createFilesApiClient, Ba as createMcpAppsApiClient, jr as createMessagePair, j as createPublishApiClient, Kn as createScheduledTasksApiClient, a as createUnauthorizedMiddleware, Ii as createUploadFileWithProgress, I as decodeDeploymentId, ee as decodeToolsetId, le as decomposeLocalizedFields, si as deriveActionProfile, pt as deriveAvailableTabIds, fr as deriveConversationRowActionState, mt as deriveFavoriteItems, Rn as describeScheduledTaskTrigger, li as dialCorePathToRelative, aa as dialFileToAttachment, oa as dialFilesToAttachments, sa as dialFolderPathToAttachment, m as downloadAttachment, wt as emitToolsetLoginSuccess, L as encodeDeploymentId, te as encodeToolsetId, Di as fetchByTab, Oi as fetchForSearch, ht as filterCatalogItemsBySelector, gt as filterHiddenOwnedItems, R as findDeploymentByIdOrReference, ui as findDialFileByPath, ki as findFirstSuccessfulCopyMoveItem, di as findFolderByVirtualPath, tn as formatAppVersion, fe as formatCalendarDate, C as formatDateYM, w as formatDateYMD, fi as formatOperationFolderName, A as formatQuotedNameList, e as getApiErrorDetails, t as getApiErrorMessage, n as getApiErrorStatus, ba as getBrowserTimezone, zr as getConversationPath, gr as getConversationSource, Ta as getExternalServiceFallbackName, sn as getFormSchemaToolSyncKey, cn as getLastDeploymentId, ln as getLastUserMessageToolConfiguration, un as getLatestToolConfiguration, rn as getModelIdFromConversationId, xi 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, $i as getUrlFileName, pi as getVirtualPathName, Mr as hasActiveToolConfig, Ht as hasAnnouncementContent, Vi as hasAttachmentTextSource, mi as hasDialFileWritePermission, hi as hasForbiddenNameSymbols, Ut as hasStructuredAnnouncement, o as includesIgnoreCase, At as initiateOAuthLogin, Nr as isAnswerIncomplete, Gr as isAwaitingGenerationResume, r as isConversationNotFoundError, gi as isCopyMoveDuplicateAllowed, va as isCustomAppSchema, _ as isDialFileAcceptType, d as isDialFileId, h as isDownloadableAttachment, ea as isExternalSourcePreviewable, Pr as isMessageChanged, fn as isMessageStreaming, we as isOrganisationPromptItem, lt as isPublicCatalogEntityId, ne as isPublicToolsetId, ya as isQuickAppSchema, _i as isShareActionsAllowed, xa as isValidAbsoluteUrl, Sa as isValidFeaturesData, Ie as isValidSkillRelativePath, Bn as jsDayToApSchedulerDay, Ai as mapCorePermissions, me as mapDeploymentDetailsDtoToEntityDetails, V as mapDeploymentLimitsDtoToCatalogLimits, H as mapDeploymentLimitsToInput, _e as mapDeploymentToCatalogItem, ve as mapDeploymentToolsetCredentials, he as mapEntityDetailsToCatalogDetails, ji as mapFileMetadataToDialFile, Vn as mapFormValuesToCreateBody, Hn as mapFormValuesToUpdateBody, Ia as mapOverallCostLimitsToPeriodStatuses, Te as mapPromptToCatalogItem, ut as mapPublishConversationResultDto, dt as mapPublishHistoryEntryDto, Un as mapScheduledTaskDtoToFormValues, Mi as mapSearchItem, Ze as mapSkillToCatalogItem, _n as mapStages, ge as mapToolsetCredentials, ye as mapToolsetToCatalogItem, Pa as mapUsageDataToDashboard, La as mapUserUsageToModelLimits, Ni 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, vi as normalizeVirtualPath, Li as openAnnotationAttachment, Mt as openToolsetOAuthPopup, pe as padTwoDigits, Ea as parseExternalServiceUrl, Ca as parseFeaturesData, yi as parseNewFolderVirtualPath, Se as parsePromptResourceUrl, ze as parseSkillManifest, xt as parseSkillManifestDocument, Je as parseSkillResourceUrl, wi as prepareCopyItems, la as prepareDownloadDestination, Ti as prepareMoveRenameItems, Wn as prepareScheduledTaskCreateBody, Gn as prepareScheduledTaskUpdateBody, Qe as readSkillFileBytes, $e as readSkillFilePreviewBytes, et as readSkillManifest, _t as reconcileFilterTopics, Hi as referenceAttachmentToPdfCanvasContent, yt as resolveCatalogPrimaryAction, Ui as resolveCodeCanvasContent, be as resolveDeploymentFolder, Si as resolveDialFileApiPath, f as resolveDialFileBucketAndPath, ta as resolveExternalSourceContentType, Wi as resolveGroupedVisualizerCanvasContent, Gi as resolveHtmlCanvasContent, Ki as resolveImageCanvasContent, qi as resolveJsonCanvasContent, ue as resolveLocalizedText, Ji as resolveMarkdownCanvasContent, st as resolveMcpResourceKind, Yi as resolveOoxmlCanvasContent, bi as resolveOwnerCoords, Xi as resolvePdfCanvasContent, p as resolveRelativeDialFilePath, tt as resolveSkillFileDownloadPath, nt as resolveSkillManifestFileId, Zi as resolveTextCanvasContent, ie as resolveToolsetCredentialsLevel, Qi 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, He as unpackSkillArchive, Pi 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, Da 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, ua as useDialFileListing, ha as useDialFileManager, ga as useDialFileManagerTabConfig, da as useDialFileMetadata, fa as useDialFileMutations, pa as useDialFileSharing, ma as useDialFileUploadBatch, zt as useFavoriteEntitiesState, _a as useFileAttachmentPicker, Ga as useGridEditingScroll, vr as useImportFilePicker, Ua as useMcpAppHostAdapter, Ha as useMcpAppHostContext, Va as useMcpAppTools, yr as useMessageSelectionReply, xn as useOAuthCallbackCompletion, Wa as useOpenMcpAppCanvas, Oa as usePageFileDrag, Aa as usePanelMaxWidth, Fn as usePromptsState, Bt as usePublishFolders, Yn as useScheduledTaskRuns, qn as useScheduledTasks, ja 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, Ma as useToolsMenu, Pt as useToolsetLogin, Er as useTranscribeAudio, Ra as useUsageData, ka as useViewportWidth, Mn as validatePromptContent, Nn as validatePromptDescription, Pn as validatePromptName, Xn as validateSkillFileBatch, Ci as virtualPathToApiPath, Dt as waitForToolsetOAuthResult };
@@ -1,11 +1,12 @@
1
- import { PUBLIC_BUCKET as e } from "@epam/ai-dial-chat-shared";
1
+ import { ToolsetCredentialsLevel as e } from "./types.js";
2
+ import { PUBLIC_BUCKET as t } from "@epam/ai-dial-chat-shared";
2
3
  //#region src/oauth/toolset-id.ts
3
- var t = "toolsets/", n = (e) => e.split("/").map((e) => encodeURIComponent(e)).join("/"), r = (e) => e.split("/").map((e) => {
4
+ var n = "toolsets/", r = (e) => e.split("/").map((e) => encodeURIComponent(e)).join("/"), i = (e) => e.split("/").map((e) => {
4
5
  try {
5
6
  return decodeURIComponent(e);
6
7
  } catch {
7
8
  return e;
8
9
  }
9
- }).join("/"), i = (n) => n.startsWith(t) ? n.slice(9).split("/")[0] === e : !1;
10
+ }).join("/"), a = (e) => e.startsWith(n) ? e.slice(9).split("/")[0] === t : !1, o = (e) => r(i(e)), s = (t) => a(t) ? e.User : e.Global, c = (t, n) => n === e.User ? t?.userLevelAuthStatus : t?.globalAuthStatus;
10
11
  //#endregion
11
- export { r as decodeToolsetId, n as encodeToolsetId, i as isPublicToolsetId };
12
+ export { i as decodeToolsetId, r as encodeToolsetId, a as isPublicToolsetId, o as normalizeToolsetId, s as resolveToolsetCredentialsLevel, c as selectToolsetAuthStatus };
@@ -1,4 +1,5 @@
1
- import { OAuthResourceKind as e, ToolsetAuthStatus as t, ToolsetAuthTypes as n, ToolsetCredentialsLevel as r, ToolsetOAuthInitiationResultType as i, ToolsetOAuthResultType as a } from "../types.js";
1
+ import { OAuthResourceKind as e, ToolsetAuthStatus as t, ToolsetAuthTypes as n, ToolsetOAuthInitiationResultType as r, ToolsetOAuthResultType as i } from "../types.js";
2
+ import { selectToolsetAuthStatus as a } from "../toolset-id.js";
2
3
  import { emitToolsetLoginSuccess as o } from "../../shared/toolset-login-events.js";
3
4
  import { waitForToolsetOAuthResult as s } from "../handshake.js";
4
5
  import { initiateOAuthLogin as c, navigateToolsetOAuthPopup as l, openToolsetOAuthPopup as u } from "../popup.js";
@@ -24,23 +25,22 @@ var f = /* @__PURE__ */ function(e) {
24
25
  codeChallengeMethod: _?.codeChallengeMethod
25
26
  }, x = v ? await (async () => {
26
27
  let t = u();
27
- return t ? (await g(p, m, n.OAuth), l(t, b, p, f, m, e.Toolset, y)) : { type: i.Blocked };
28
+ return t ? (await g(p, m, n.OAuth), l(t, b, p, f, m, e.Toolset, y)) : { type: r.Blocked };
28
29
  })() : c(b, p, f, m, y);
29
- if (x.type === i.Blocked) return { type: "popup-blocked" };
30
- if (x.type !== i.Started) return { type: "failure" };
30
+ if (x.type === r.Blocked) return { type: "popup-blocked" };
31
+ if (x.type !== r.Started) return { type: "failure" };
31
32
  let S = await s(x.popup, x.flowId, {
32
33
  toolsetId: p,
33
34
  credentialsLevel: m,
34
35
  callbackPath: f
35
36
  });
36
- if (S.type === a.Success) return o({
37
+ if (S.type === i.Success) return o({
37
38
  toolsetId: p,
38
39
  credentialsLevel: m
39
40
  }), { type: "success" };
40
- if (S.type === a.Failure) return { type: "failure" };
41
+ if (S.type === i.Failure) return { type: "failure" };
41
42
  try {
42
- let e = await h(p);
43
- if ((m === r.User ? e.authSettings?.userLevelAuthStatus : e.authSettings?.globalAuthStatus) === t.SignedIn) return o({
43
+ if (a((await h(p)).authSettings, m) === t.SignedIn) return o({
44
44
  toolsetId: p,
45
45
  credentialsLevel: m
46
46
  }), { type: "success" };
package/oauth.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { DialToolsetAuthSettingsDto } from '@epam/ai-dial-chat-api-client';
1
2
  import { DialToolsetDto } from '@epam/ai-dial-chat-api-client';
2
3
  import { ToolsetLoginBodyDto } from '@epam/ai-dial-chat-api-client';
3
4
  import { ToolsetLogoutBodyDto } from '@epam/ai-dial-chat-api-client';
@@ -74,6 +75,19 @@ export declare const isPublicToolsetId: (toolsetId: string) => boolean;
74
75
  */
75
76
  export declare const navigateToolsetOAuthPopup: (popup: Window, auth: ToolsetOAuthSettings, toolsetId: string, callbackPath: string, credentialsLevel?: ToolsetCredentialsLevel, resourceKind?: OAuthResourceKind, offlineUsageConsent?: boolean) => ToolsetOAuthInitiationResult;
76
77
 
78
+ /**
79
+ * Encodes a toolset id to its single-encoded form regardless of whether the
80
+ * value received it in was already percent-encoded or the raw,
81
+ * human-readable form — decoding first then re-encoding once is idempotent
82
+ * either way, since `decodeToolsetId` on a raw (unencoded) id is a no-op.
83
+ * Use this instead of `encodeToolsetId` at a boundary that cannot guarantee
84
+ * which form it receives, such as a `postMessage` payload from an embedded
85
+ * iframe: calling `encodeToolsetId` directly on a value the sender already
86
+ * encoded escapes the existing `%` characters a second time (`%20` becomes
87
+ * `%2520`), which the backend only ever undoes once and so 404s on.
88
+ */
89
+ export declare const normalizeToolsetId: (toolsetId: string) => string;
90
+
77
91
  /** Arguments handed to the host's exchange callback. */
78
92
  export declare interface OAuthExchangeParams {
79
93
  /** One-time authorization code the provider returned. */
@@ -115,6 +129,24 @@ export declare enum OAuthResourceKind {
115
129
  */
116
130
  export declare const openToolsetOAuthPopup: () => Window | null;
117
131
 
132
+ /**
133
+ * Resolves which credentials level a toolset's login applies to, per DIAL
134
+ * Core's public/private toolset convention: a `public`-bucket toolset is
135
+ * shared credentials-wise at `User` level, while a private/workspace toolset
136
+ * is scoped at `Global` level. Every surface that drives a toolset login
137
+ * (the sign-in-interrupt dialog, the QuickApps editor iframe bridge,
138
+ * `useToolsetLogin`) must resolve the level this way rather than assuming one.
139
+ */
140
+ export declare const resolveToolsetCredentialsLevel: (toolsetId: string) => ToolsetCredentialsLevel.User | ToolsetCredentialsLevel.Global;
141
+
142
+ /**
143
+ * Picks the auth-status field matching one credentials level out of a
144
+ * toolset's `authSettings` — DIAL Core reports `userLevelAuthStatus` and
145
+ * `globalAuthStatus` as independent fields rather than one status keyed by
146
+ * level.
147
+ */
148
+ export declare const selectToolsetAuthStatus: (authSettings: Pick<DialToolsetAuthSettingsDto, "userLevelAuthStatus" | "globalAuthStatus"> | undefined, credentialsLevel: ToolsetCredentialsLevel) => string | undefined;
149
+
118
150
  export declare const subscribeToolsetLoginSuccess: <T>(listener: (detail: ToolsetLoginSuccessDetail<T>) => void) => (() => void);
119
151
 
120
152
  /** `sessionStorage` key the flow writes its `ToolsetRedirectState` under, in the popup it opens. */
package/oauth.js CHANGED
@@ -1,9 +1,9 @@
1
- import { decodeToolsetId as e, encodeToolsetId as t, isPublicToolsetId as n } from "./oauth/toolset-id.js";
2
- import { OAuthResourceKind as r, TOOLSET_REDIRECT_STATE_KEY as i, ToolsetAuthStatus as a, ToolsetAuthTypes as o, ToolsetCredentialsLevel as s, ToolsetOAuthCallbackQuery as c, ToolsetOAuthChannelControlType as l, ToolsetOAuthFailureReason as u, ToolsetOAuthInitiationResultType as d, ToolsetOAuthResultType as f, WithLogin as p } from "./oauth/types.js";
3
- import { emitToolsetLoginSuccess as m, subscribeToolsetLoginSuccess as h } from "./shared/toolset-login-events.js";
4
- import { getToolsetOAuthChannelName as g, waitForToolsetOAuthResult as _ } from "./oauth/handshake.js";
5
- import { buildToolsetAuthorizeUrl as v, getToolsetRedirectUri as y } from "./oauth/authorize-url.js";
6
- import { initiateOAuthLogin as b, navigateToolsetOAuthPopup as x, openToolsetOAuthPopup as S } from "./oauth/popup.js";
7
- import { ToolsetLoginOutcomeType as C, useToolsetLogin as w } from "./oauth/useToolsetLogin/useToolsetLogin.js";
8
- import { useOAuthCallbackCompletion as T } from "./oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js";
9
- export { r as OAuthResourceKind, i as TOOLSET_REDIRECT_STATE_KEY, a as ToolsetAuthStatus, o as ToolsetAuthTypes, s as ToolsetCredentialsLevel, C as ToolsetLoginOutcomeType, c as ToolsetOAuthCallbackQuery, l as ToolsetOAuthChannelControlType, u as ToolsetOAuthFailureReason, d as ToolsetOAuthInitiationResultType, f as ToolsetOAuthResultType, p as WithLogin, v as buildToolsetAuthorizeUrl, e as decodeToolsetId, m as emitToolsetLoginSuccess, t as encodeToolsetId, g as getToolsetOAuthChannelName, y as getToolsetRedirectUri, b as initiateOAuthLogin, n as isPublicToolsetId, x as navigateToolsetOAuthPopup, S as openToolsetOAuthPopup, h as subscribeToolsetLoginSuccess, T as useOAuthCallbackCompletion, w as useToolsetLogin, _ as waitForToolsetOAuthResult };
1
+ import { OAuthResourceKind as e, TOOLSET_REDIRECT_STATE_KEY as t, ToolsetAuthStatus as n, ToolsetAuthTypes as r, ToolsetCredentialsLevel as i, ToolsetOAuthCallbackQuery as a, ToolsetOAuthChannelControlType as o, ToolsetOAuthFailureReason as s, ToolsetOAuthInitiationResultType as c, ToolsetOAuthResultType as l, WithLogin as u } from "./oauth/types.js";
2
+ import { decodeToolsetId as d, encodeToolsetId as f, isPublicToolsetId as p, normalizeToolsetId as m, resolveToolsetCredentialsLevel as h, selectToolsetAuthStatus as g } from "./oauth/toolset-id.js";
3
+ import { emitToolsetLoginSuccess as _, subscribeToolsetLoginSuccess as v } from "./shared/toolset-login-events.js";
4
+ import { getToolsetOAuthChannelName as y, waitForToolsetOAuthResult as b } from "./oauth/handshake.js";
5
+ import { buildToolsetAuthorizeUrl as x, getToolsetRedirectUri as S } from "./oauth/authorize-url.js";
6
+ import { initiateOAuthLogin as C, navigateToolsetOAuthPopup as w, openToolsetOAuthPopup as T } from "./oauth/popup.js";
7
+ import { ToolsetLoginOutcomeType as E, useToolsetLogin as D } from "./oauth/useToolsetLogin/useToolsetLogin.js";
8
+ import { useOAuthCallbackCompletion as O } from "./oauth/useOAuthCallbackCompletion/useOAuthCallbackCompletion.js";
9
+ export { e as OAuthResourceKind, t as TOOLSET_REDIRECT_STATE_KEY, n as ToolsetAuthStatus, r as ToolsetAuthTypes, i as ToolsetCredentialsLevel, E as ToolsetLoginOutcomeType, a as ToolsetOAuthCallbackQuery, o as ToolsetOAuthChannelControlType, s as ToolsetOAuthFailureReason, c as ToolsetOAuthInitiationResultType, l as ToolsetOAuthResultType, u as WithLogin, x as buildToolsetAuthorizeUrl, d as decodeToolsetId, _ as emitToolsetLoginSuccess, f as encodeToolsetId, y as getToolsetOAuthChannelName, S as getToolsetRedirectUri, C as initiateOAuthLogin, p as isPublicToolsetId, w as navigateToolsetOAuthPopup, m as normalizeToolsetId, T as openToolsetOAuthPopup, h as resolveToolsetCredentialsLevel, g as selectToolsetAuthStatus, v as subscribeToolsetLoginSuccess, O as useOAuthCallbackCompletion, D as useToolsetLogin, b 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.174",
4
+ "version": "1.2.0-dev.181",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -111,7 +111,7 @@
111
111
  }
112
112
  },
113
113
  "dependencies": {
114
- "@epam/ai-dial-chat-api-client": "1.2.0-dev.174",
114
+ "@epam/ai-dial-chat-api-client": "1.2.0-dev.181",
115
115
  "dompurify": "3.4.15",
116
116
  "fflate": "^0.8.3",
117
117
  "lru-cache": "^10.4.3",
@@ -120,22 +120,21 @@
120
120
  },
121
121
  "peerDependencies": {
122
122
  "react": "^19.2.8",
123
- "@epam/ai-dial-attachment-canvas": "1.2.0-dev.174",
124
- "@epam/ai-dial-attachment-input": "1.2.0-dev.174",
125
- "@epam/ai-dial-builder-form": "1.2.0-dev.174",
126
- "@epam/ai-dial-catalog": "1.2.0-dev.174",
127
- "@epam/ai-dial-chat-overlay": "1.2.0-dev.174",
128
- "@epam/ai-dial-chat-shared": "1.2.0-dev.174",
129
- "@epam/ai-dial-mcp-apps": "1.2.0-dev.174",
130
- "@epam/ai-dial-publish-panel": "1.2.0-dev.174",
131
- "@epam/ai-dial-quotations": "1.2.0-dev.174",
132
- "@epam/ai-dial-react-file-manager": "^0.3.0-dev.13",
133
- "@epam/ai-dial-scheduled-tasks": "1.2.0-dev.174",
134
- "@epam/ai-dial-share": "1.2.0-dev.174",
135
- "@epam/ai-dial-skill-editor": "1.2.0-dev.174",
136
- "@epam/ai-dial-source-panel": "1.2.0-dev.174",
123
+ "@epam/ai-dial-attachment-canvas": "1.2.0-dev.181",
124
+ "@epam/ai-dial-attachment-input": "1.2.0-dev.181",
125
+ "@epam/ai-dial-catalog": "1.2.0-dev.181",
126
+ "@epam/ai-dial-chat-overlay": "1.2.0-dev.181",
127
+ "@epam/ai-dial-chat-shared": "1.2.0-dev.181",
128
+ "@epam/ai-dial-mcp-apps": "1.2.0-dev.181",
129
+ "@epam/ai-dial-publish-panel": "1.2.0-dev.181",
130
+ "@epam/ai-dial-quotations": "1.2.0-dev.181",
131
+ "@epam/ai-dial-react-file-manager": "^0.3.0-dev.15",
132
+ "@epam/ai-dial-scheduled-tasks": "1.2.0-dev.181",
133
+ "@epam/ai-dial-share": "1.2.0-dev.181",
134
+ "@epam/ai-dial-skill-editor": "1.2.0-dev.181",
135
+ "@epam/ai-dial-source-panel": "1.2.0-dev.181",
137
136
  "@epam/ai-dial-ui-kit": "^0.15.0-dev.21",
138
- "@epam/ai-dial-usage-dashboard": "1.2.0-dev.174",
137
+ "@epam/ai-dial-usage-dashboard": "1.2.0-dev.181",
139
138
  "@modelcontextprotocol/sdk": "^1.29.0",
140
139
  "@epam/pdf-highlighter-kit": "^0.0.19",
141
140
  "@mcp-ui/client": "^7.1.1"
@@ -147,9 +146,6 @@
147
146
  "@epam/ai-dial-attachment-input": {
148
147
  "optional": true
149
148
  },
150
- "@epam/ai-dial-builder-form": {
151
- "optional": true
152
- },
153
149
  "@epam/ai-dial-catalog": {
154
150
  "optional": true
155
151
  },
package/utils.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { DeploymentCreationFormLocaleEntry } from '@epam/ai-dial-builder-form';
2
- import { DeploymentCreationFormLocaleOption } from '@epam/ai-dial-builder-form';
3
1
  import { ExportFolder } from '@epam/ai-dial-chat-shared';
2
+ import { LocaleOption } from '@epam/ai-dial-chat-shared';
4
3
  import { LocaleTextEntryDto } from '@epam/ai-dial-chat-api-client';
4
+ import { LocalizedTextEntry } from '@epam/ai-dial-chat-shared';
5
5
  import { Middleware } from '@epam/ai-dial-chat-api-client';
6
6
  import { PromptFolderResponseDto } from '@epam/ai-dial-chat-api-client';
7
7
  import { PromptListResponseDto } from '@epam/ai-dial-chat-api-client';
@@ -31,7 +31,7 @@ export declare const apSchedulerDayToJsDay: (apSchedulerDay: number) => number;
31
31
  * `additionalLocaleCodes` and excluding whichever code is already the
32
32
  * primary Name/Description field.
33
33
  */
34
- export declare const buildAdditionalLocaleOptions: (additionalLocaleCodes: string[], primaryLocale: string) => DeploymentCreationFormLocaleOption[];
34
+ export declare const buildAdditionalLocaleOptions: (additionalLocaleCodes: string[], primaryLocale: string) => LocaleOption[];
35
35
 
36
36
  /** Reconstructs the exact scope id Core expects as `ResourceSignInRequest`/`ResourceSignOutRequest`'s `url` field. */
37
37
  export declare const buildExternalServiceScopeId: (appId: string, serviceName: string) => string;
@@ -54,7 +54,7 @@ export declare const buildPromptPath: (folderId: string, name: string) => string
54
54
  * `undefined` (not `[]`) when nothing remains, so a request untouched by
55
55
  * this feature stays byte-identical to today.
56
56
  */
57
- export declare const composeLocalePayload: (otherLocales: DeploymentCreationFormLocaleEntry[], primaryLocale: string) => LocaleTextEntryDto[] | undefined;
57
+ export declare const composeLocalePayload: (otherLocales: LocalizedTextEntry[], primaryLocale: string) => LocaleTextEntryDto[] | undefined;
58
58
 
59
59
  /**
60
60
  * Builds a generated-client `Middleware` that attaches `X-CSRF-Token` on every
@@ -115,7 +115,7 @@ export declare type CsrfRefreshOutcome = {
115
115
  * present in either map, excluding `primaryLocale` — that key is already the
116
116
  * primary Name/Description field, not a row in the popup.
117
117
  */
118
- export declare const decomposeLocalizedFields: (displayName: LocalizedText | undefined, description: LocalizedText | undefined, primaryLocale: string) => DeploymentCreationFormLocaleEntry[];
118
+ export declare const decomposeLocalizedFields: (displayName: LocalizedText | undefined, description: LocalizedText | undefined, primaryLocale: string) => LocalizedTextEntry[];
119
119
 
120
120
  /** A prompt record as it appears inside a downloaded prompt file. */
121
121
  export declare interface ExportedPrompt {