@epam/ai-dial-chat-hooks 1.1.0-dev.395 → 1.1.0-dev.397

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/conversation.d.ts CHANGED
@@ -214,6 +214,8 @@ export declare interface ConversationStreamChannel {
214
214
  ensureConnected: () => void;
215
215
  /** Resolves with a channel id, waiting for an in-flight subscribe if one isn't established yet, so a completion sent immediately after mount can still carry it. */
216
216
  waitForChannel: (timeoutMs?: number) => Promise<string | null>;
217
+ /** Notifies the host that a generation just ended (completed or errored), so it can consider disconnecting an idle channel. */
218
+ notifyGenerationSettled?: () => void;
217
219
  }
218
220
 
219
221
  /** Optional host-owned overlay generation-lifecycle notifications. Each method is independently optional. */
package/conversation.js CHANGED
@@ -1,2 +1,2 @@
1
- import { A as e, B as t, C as n, D as r, E as i, F as a, H as o, I as s, L as c, M as l, N as u, O as d, P as f, R as p, S as m, T as h, V as g, _, a as v, b as y, c as b, d as x, f as S, g as C, h as w, i as T, j as E, k as D, l as O, m as k, n as A, o as j, p as M, r as N, s as P, t as F, u as I, v as L, w as R, x as z, y as B, z as V } from "./useToolsMenu-6HiNLoEy.js";
1
+ import { A as e, B as t, C as n, D as r, E as i, F as a, H as o, I as s, L as c, M as l, N as u, O as d, P as f, R as p, S as m, T as h, V as g, _, a as v, b as y, c as b, d as x, f as S, g as C, h as w, i as T, j as E, k as D, l as O, m as k, n as A, o as j, p as M, r as N, s as P, t as F, u as I, v as L, w as R, x as z, y as B, z as V } from "./useToolsMenu-DLd2C4uO.js";
2
2
  export { S as attachmentToDto, M as attachmentsToDtos, p as buildAnnouncementSignature, c as createChatStreamApi, E as createDeploymentChangedMessage, x as createMessagePair, z as deriveConversationRowActionState, f as formatAppVersion, j as getConversationPath, C as getConversationSource, i as getLastDeploymentId, r as getLastUserMessageToolConfiguration, u as getModelIdFromConversationId, R as getQuickAppConversationStarters, P as getStarterConversationText, m as getStarterPopulateText, b as getStarterSubmitText, n as getStartersFromSchema, l as getTimeOfDayGreeting, O as hasActiveToolConfig, V as hasAnnouncementContent, t as hasStructuredAnnouncement, T as isAwaitingGenerationResume, I as isMessageChanged, d as isMessageStreaming, D as messageHasStages, e as normalizeResponseFormat, g as sanitizeAnnouncementHtml, o as sanitizeAnnouncementMessageHtml, a as sanitizeFooterHtml, s as shouldWatchForDisplayNameUpdate, h as toOverlayMessages, y as useActiveConversationSync, B as useAsyncConfirmDialog, k as useAttachmentUpload, A as useChatSettingsFormConfig, v as useConversationHandlers, L as useConversationLookupMaps, _ as useConversationPanelItems, N as useConversationStream, w as useImportFilePicker, F as useToolsMenu };
package/index.d.ts CHANGED
@@ -735,6 +735,8 @@ export declare interface ConversationStreamChannel {
735
735
  ensureConnected: () => void;
736
736
  /** Resolves with a channel id, waiting for an in-flight subscribe if one isn't established yet, so a completion sent immediately after mount can still carry it. */
737
737
  waitForChannel: (timeoutMs?: number) => Promise<string | null>;
738
+ /** Notifies the host that a generation just ended (completed or errored), so it can consider disconnecting an idle channel. */
739
+ notifyGenerationSettled?: () => void;
738
740
  }
739
741
 
740
742
  /** Optional host-owned overlay generation-lifecycle notifications. Each method is independently optional. */
package/index.js CHANGED
@@ -11,7 +11,7 @@ import { C as at, S as ot, T as st, _ as ct, a as lt, b as ut, c as dt, d as ft,
11
11
  import { a as At, c as jt, i as Mt, n as Nt, o as Pt, r as Ft, s as It, t as Lt } from "./prompt-resource-Bt1I-8ri.js";
12
12
  import { n as Rt, t as zt } from "./formatting-CZyyxBG3.js";
13
13
  import { a as Bt, c as Vt, d as Ht, f as Ut, h as Wt, i as Gt, l as Kt, m as qt, n as Jt, o as Yt, p as Xt, r as Zt, s as Qt, t as $t, u as en } from "./skill-manifest-CCX8s4nn.js";
14
- import { A as tn, B as nn, C as rn, D as an, E as on, F as sn, H as cn, I as ln, L as un, M as dn, N as fn, O as pn, P as mn, R as hn, S as gn, T as _n, V as vn, _ as yn, a as bn, b as xn, c as Sn, d as Cn, f as wn, g as Tn, h as En, i as Dn, j as On, k as kn, l as An, m as jn, n as Mn, o as Nn, p as Pn, r as Fn, s as In, t as Ln, u as Rn, v as zn, w as Bn, x as Vn, y as Hn, z as Un } from "./useToolsMenu-6HiNLoEy.js";
14
+ import { A as tn, B as nn, C as rn, D as an, E as on, F as sn, H as cn, I as ln, L as un, M as dn, N as fn, O as pn, P as mn, R as hn, S as gn, T as _n, V as vn, _ as yn, a as bn, b as xn, c as Sn, d as Cn, f as wn, g as Tn, h as En, i as Dn, j as On, k as kn, l as An, m as jn, n as Mn, o as Nn, p as Pn, r as Fn, s as In, t as Ln, u as Rn, v as zn, w as Bn, x as Vn, y as Hn, z as Un } from "./useToolsMenu-DLd2C4uO.js";
15
15
  import { t as Wn } from "./useOAuthCallbackCompletion-CvyTKLER.js";
16
16
  import { i as Gn, n as Kn, r as qn, t as Jn } from "./scheduled-task-trigger-D9RZCk52.js";
17
17
  import { n as Yn, t as Xn } from "./cron-weekday-B4w29eAC.js";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-chat-hooks",
3
3
  "description": "Framework-level React hooks extracted from AI DIAL Chat for building custom chat interfaces",
4
- "version": "1.1.0-dev.395",
4
+ "version": "1.1.0-dev.397",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -87,20 +87,20 @@
87
87
  },
88
88
  "peerDependencies": {
89
89
  "react": "^19.2.6",
90
- "@epam/ai-dial-attachment-canvas": "1.1.0-dev.395",
91
- "@epam/ai-dial-attachment-input": "1.1.0-dev.395",
92
- "@epam/ai-dial-catalog": "1.1.0-dev.395",
93
- "@epam/ai-dial-chat-api-client": "1.1.0-dev.395",
94
- "@epam/ai-dial-chat-overlay": "1.1.0-dev.395",
95
- "@epam/ai-dial-chat-shared": "1.1.0-dev.395",
96
- "@epam/ai-dial-deployment-creation-form": "1.1.0-dev.395",
97
- "@epam/ai-dial-publish-panel": "1.1.0-dev.395",
98
- "@epam/ai-dial-quotations": "1.1.0-dev.395",
90
+ "@epam/ai-dial-attachment-canvas": "1.1.0-dev.397",
91
+ "@epam/ai-dial-attachment-input": "1.1.0-dev.397",
92
+ "@epam/ai-dial-catalog": "1.1.0-dev.397",
93
+ "@epam/ai-dial-chat-api-client": "1.1.0-dev.397",
94
+ "@epam/ai-dial-chat-overlay": "1.1.0-dev.397",
95
+ "@epam/ai-dial-chat-shared": "1.1.0-dev.397",
96
+ "@epam/ai-dial-deployment-creation-form": "1.1.0-dev.397",
97
+ "@epam/ai-dial-publish-panel": "1.1.0-dev.397",
98
+ "@epam/ai-dial-quotations": "1.1.0-dev.397",
99
99
  "@epam/ai-dial-react-file-manager": "*",
100
- "@epam/ai-dial-scheduled-tasks": "1.1.0-dev.395",
101
- "@epam/ai-dial-share": "1.1.0-dev.395",
102
- "@epam/ai-dial-skill-editor": "1.1.0-dev.395",
103
- "@epam/ai-dial-source-panel": "1.1.0-dev.395",
100
+ "@epam/ai-dial-scheduled-tasks": "1.1.0-dev.397",
101
+ "@epam/ai-dial-share": "1.1.0-dev.397",
102
+ "@epam/ai-dial-skill-editor": "1.1.0-dev.397",
103
+ "@epam/ai-dial-source-panel": "1.1.0-dev.397",
104
104
  "@epam/ai-dial-ui-kit": "*",
105
105
  "@epam/pdf-highlighter-kit": ">=0.0.14"
106
106
  },
@@ -1674,7 +1674,7 @@ var rt = (e) => et.sanitize(e, tt), it = (e) => et.sanitize(e, nt), at = (e) =>
1674
1674
  });
1675
1675
  },
1676
1676
  onComplete: async () => {
1677
- if (w.current.get(_)?.generationId === g && w.current.delete(_), O(_), x.current === g && (x.current = null, S.current = null, b(null)), o(_, g), ee.current.has(g) ? ee.current.delete(g) : c?.notifyGenerationEnd?.(), E(_)) try {
1677
+ if (w.current.get(_)?.generationId === g && w.current.delete(_), O(_), x.current === g && (x.current = null, S.current = null, b(null)), o(_, g), s?.notifyGenerationSettled?.(), ee.current.has(g) ? ee.current.delete(g) : c?.notifyGenerationEnd?.(), E(_)) try {
1678
1678
  let a = await i.getConversation(e(t));
1679
1679
  if (!E(_)) return;
1680
1680
  n(a), r.current = a;
@@ -1682,7 +1682,7 @@ var rt = (e) => et.sanitize(e, tt), it = (e) => et.sanitize(e, nt), at = (e) =>
1682
1682
  },
1683
1683
  onError: (e) => {
1684
1684
  let t = w.current.get(_), i = t?.generationId === g ? t : void 0;
1685
- i && w.current.delete(_), O(_), x.current === g && (x.current = null, S.current = null, b(null)), E(_) && n((t) => {
1685
+ i && w.current.delete(_), O(_), x.current === g && (x.current = null, S.current = null, b(null)), o(_, g), s?.notifyGenerationSettled?.(), E(_) && n((t) => {
1686
1686
  if (!t) return t;
1687
1687
  let n = i?.generationId === g ? Qt(t, i) : t, a = {
1688
1688
  ...n,
@@ -1712,6 +1712,7 @@ var rt = (e) => et.sanitize(e, tt), it = (e) => et.sanitize(e, nt), at = (e) =>
1712
1712
  s?.channelId,
1713
1713
  s?.ensureConnected,
1714
1714
  s?.waitForChannel,
1715
+ s?.notifyGenerationSettled,
1715
1716
  c,
1716
1717
  i
1717
1718
  ]), A = f((e, t) => {