@epam/ai-dial-chat-hooks 1.3.0-dev.356 → 1.3.0-dev.358

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.
Files changed (26) hide show
  1. package/conversation/useConversationStream/conversation-stream.types.d.ts +136 -0
  2. package/conversation/useConversationStream/conversation-stream.types.d.ts.map +1 -0
  3. package/conversation/useConversationStream/generation-resume.d.ts +1 -1
  4. package/conversation/useConversationStream/generation-resume.d.ts.map +1 -1
  5. package/conversation/useConversationStream/stream-errors.d.ts +10 -0
  6. package/conversation/useConversationStream/stream-errors.d.ts.map +1 -0
  7. package/conversation/useConversationStream/stream-errors.js +10 -0
  8. package/conversation/useConversationStream/stream-session.d.ts +51 -0
  9. package/conversation/useConversationStream/stream-session.d.ts.map +1 -0
  10. package/conversation/useConversationStream/stream-session.js +179 -0
  11. package/conversation/useConversationStream/useConversationReloadErrors.d.ts +25 -0
  12. package/conversation/useConversationStream/useConversationReloadErrors.d.ts.map +1 -0
  13. package/conversation/useConversationStream/useConversationReloadErrors.js +38 -0
  14. package/conversation/useConversationStream/useConversationStream.d.ts +2 -135
  15. package/conversation/useConversationStream/useConversationStream.d.ts.map +1 -1
  16. package/conversation/useConversationStream/useConversationStream.js +134 -332
  17. package/conversation/useConversationStream/useStopGeneration.d.ts +29 -0
  18. package/conversation/useConversationStream/useStopGeneration.d.ts.map +1 -0
  19. package/conversation/useConversationStream/useStopGeneration.js +48 -0
  20. package/conversation/useConversationStream/useStreamPathState.d.ts +39 -0
  21. package/conversation/useConversationStream/useStreamPathState.d.ts.map +1 -0
  22. package/conversation/useConversationStream/useStreamPathState.js +55 -0
  23. package/package.json +17 -17
  24. package/project/use-project-actions.d.ts +1 -0
  25. package/project/use-project-actions.d.ts.map +1 -1
  26. package/project/use-project-actions.js +2 -2
@@ -0,0 +1,55 @@
1
+ import { getConversationPath as e } from "./conversation-path.js";
2
+ import { useCallback as t, useEffect as n, useRef as r, useState as i } from "react";
3
+ //#region src/conversation/useConversationStream/useStreamPathState.ts
4
+ var a = ({ conversationId: a, frameScheduler: o, mountedRef: s, clearReloadError: c }) => {
5
+ let [l, u] = i(() => /* @__PURE__ */ new Set()), d = r(l);
6
+ d.current = l;
7
+ let [f, p] = i(() => /* @__PURE__ */ new Set()), m = r(/* @__PURE__ */ new Map()), h = r(/* @__PURE__ */ new Map()), g = r(/* @__PURE__ */ new Set()), _ = r(/* @__PURE__ */ new Map()), v = r(/* @__PURE__ */ new Set()), y = r(/* @__PURE__ */ new Set()), b = r(/* @__PURE__ */ new Map()), x = r(a);
8
+ n(() => (x.current = a, () => o.cancelAll()), [a, o]);
9
+ let S = t((t) => s.current && e(x.current ?? "") === t, [s]), C = t((e) => {
10
+ c(e), u((t) => {
11
+ if (t.has(e)) return t;
12
+ let n = new Set(t);
13
+ return n.add(e), n;
14
+ });
15
+ }, [c]), w = t((e) => {
16
+ u((t) => {
17
+ if (!t.has(e)) return t;
18
+ let n = new Set(t);
19
+ return n.delete(e), n;
20
+ });
21
+ }, []), T = t((e, t) => {
22
+ p((n) => {
23
+ if (n.has(e) === t) return n;
24
+ let r = new Set(n);
25
+ return t ? r.add(e) : r.delete(e), r;
26
+ });
27
+ }, []);
28
+ return {
29
+ streamingPaths: l,
30
+ streamingPathsRef: d,
31
+ stoppablePaths: f,
32
+ activeGenerationIdsRef: m,
33
+ resumedGenerationIdsRef: h,
34
+ resumingPathsRef: g,
35
+ bufferedGenerationsRef: _,
36
+ stoppedGenerationIdsRef: v,
37
+ stopRequestedIdsRef: y,
38
+ latestGenerationIdsRef: b,
39
+ isPathDisplayed: S,
40
+ addStreamingPath: C,
41
+ removeStreamingPath: w,
42
+ setPathStoppable: T,
43
+ releaseActiveGeneration: t((e, t) => {
44
+ m.current.get(e) === t && (m.current.delete(e), T(e, !1));
45
+ }, [T]),
46
+ rememberResumedGenerationId: t((e, t) => {
47
+ m.current.has(e) || (h.current.set(e, t), T(e, !0));
48
+ }, [T]),
49
+ forgetResumedGenerationId: t((e, t) => {
50
+ h.current.get(e) === t && (h.current.delete(e), m.current.has(e) || T(e, !1));
51
+ }, [T])
52
+ };
53
+ };
54
+ //#endregion
55
+ export { a as useStreamPathState };
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.3.0-dev.356",
4
+ "version": "1.3.0-dev.358",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -131,7 +131,7 @@
131
131
  }
132
132
  },
133
133
  "dependencies": {
134
- "@epam/ai-dial-chat-api-client": "1.3.0-dev.356",
134
+ "@epam/ai-dial-chat-api-client": "1.3.0-dev.358",
135
135
  "dompurify": "3.4.17",
136
136
  "fflate": "^0.8.3",
137
137
  "lru-cache": "^10.4.3",
@@ -140,23 +140,23 @@
140
140
  },
141
141
  "peerDependencies": {
142
142
  "react": "^19.2.8",
143
- "@epam/ai-dial-attachment-canvas": "1.3.0-dev.356",
144
- "@epam/ai-dial-attachment-input": "1.3.0-dev.356",
145
- "@epam/ai-dial-catalog": "1.3.0-dev.356",
146
- "@epam/ai-dial-chat-overlay": "1.3.0-dev.356",
147
- "@epam/ai-dial-chat-shared": "1.3.0-dev.356",
148
- "@epam/ai-dial-conversation-input": "1.3.0-dev.356",
149
- "@epam/ai-dial-mcp-apps": "1.3.0-dev.356",
150
- "@epam/ai-dial-projects": "1.3.0-dev.356",
151
- "@epam/ai-dial-publish-panel": "1.3.0-dev.356",
152
- "@epam/ai-dial-quotations": "1.3.0-dev.356",
143
+ "@epam/ai-dial-attachment-canvas": "1.3.0-dev.358",
144
+ "@epam/ai-dial-attachment-input": "1.3.0-dev.358",
145
+ "@epam/ai-dial-catalog": "1.3.0-dev.358",
146
+ "@epam/ai-dial-chat-overlay": "1.3.0-dev.358",
147
+ "@epam/ai-dial-chat-shared": "1.3.0-dev.358",
148
+ "@epam/ai-dial-conversation-input": "1.3.0-dev.358",
149
+ "@epam/ai-dial-mcp-apps": "1.3.0-dev.358",
150
+ "@epam/ai-dial-projects": "1.3.0-dev.358",
151
+ "@epam/ai-dial-publish-panel": "1.3.0-dev.358",
152
+ "@epam/ai-dial-quotations": "1.3.0-dev.358",
153
153
  "@epam/ai-dial-react-file-manager": "^0.4.1",
154
- "@epam/ai-dial-scheduled-tasks": "1.3.0-dev.356",
155
- "@epam/ai-dial-share": "1.3.0-dev.356",
156
- "@epam/ai-dial-skill-editor": "1.3.0-dev.356",
157
- "@epam/ai-dial-source-panel": "1.3.0-dev.356",
154
+ "@epam/ai-dial-scheduled-tasks": "1.3.0-dev.358",
155
+ "@epam/ai-dial-share": "1.3.0-dev.358",
156
+ "@epam/ai-dial-skill-editor": "1.3.0-dev.358",
157
+ "@epam/ai-dial-source-panel": "1.3.0-dev.358",
158
158
  "@epam/ai-dial-ui-kit": "^0.16.0",
159
- "@epam/ai-dial-usage-dashboard": "1.3.0-dev.356",
159
+ "@epam/ai-dial-usage-dashboard": "1.3.0-dev.358",
160
160
  "@modelcontextprotocol/sdk": "^1.32.2",
161
161
  "@epam/pdf-highlighter-kit": "^0.0.21"
162
162
  },
@@ -3,6 +3,7 @@ import { ProjectsApiClient } from './projects-api-client';
3
3
  /** Which project action failed, for the host's error message. */
4
4
  export declare enum ProjectActionError {
5
5
  Pin = "pin",
6
+ Unpin = "unpin",
6
7
  Download = "download",
7
8
  Delete = "delete",
8
9
  /** The delete lost to a concurrent change; the project should be reloaded. */
@@ -1 +1 @@
1
- {"version":3,"file":"use-project-actions.d.ts","sourceRoot":"","sources":["../../src/project/use-project-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,iEAAiE;AACjE,oBAAY,kBAAkB;IAC5B,GAAG,QAAQ;IACX,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,8EAA8E;IAC9E,gBAAgB,sBAAsB;CACvC;AAED,sDAAsD;AACtD,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,yEAAyE;IACzE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,sFAAsF;IACtF,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,gFAAgF;IAChF,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,gHAAgH;IAChH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gIAAgI;IAChI,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,wBAAwB,CAAC,EAC3E,SAAS,iBAAiB,GAAG,IAAI,EACjC,+IAUG,sBAAsB;;;;;;;;;;CAyG1B,CAAC"}
1
+ {"version":3,"file":"use-project-actions.d.ts","sourceRoot":"","sources":["../../src/project/use-project-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,iEAAiE;AACjE,oBAAY,kBAAkB;IAC5B,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,8EAA8E;IAC9E,gBAAgB,sBAAsB;CACvC;AAED,sDAAsD;AACtD,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,yEAAyE;IACzE,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,sFAAsF;IACtF,SAAS,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAChD,gFAAgF;IAChF,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,6EAA6E;IAC7E,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,gHAAgH;IAChH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gIAAgI;IAChI,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,IAAI,CAAC,iBAAiB,EAAE,eAAe,GAAG,wBAAwB,CAAC,EAC3E,SAAS,iBAAiB,GAAG,IAAI,EACjC,+IAUG,sBAAsB;;;;;;;;;;CA4G1B,CAAC"}
@@ -4,7 +4,7 @@ import { ProjectCreateErrorCode as n } from "@epam/ai-dial-chat-api-client";
4
4
  import { useCallback as r, useMemo as i, useState as a } from "react";
5
5
  //#region src/project/use-project-actions.ts
6
6
  var o = /* @__PURE__ */ function(e) {
7
- return e.Pin = "pin", e.Download = "download", e.Delete = "delete", e.ChangedElsewhere = "changed-elsewhere", e;
7
+ return e.Pin = "pin", e.Unpin = "unpin", e.Download = "download", e.Delete = "delete", e.ChangedElsewhere = "changed-elsewhere", e;
8
8
  }({}), s = (o, s, { isPinned: c, setPinned: l, saveFile: u, onArchiveDownloaded: d, onDeleted: f, onError: p, onReload: m, isDeleteOpen: h, onDeleteOpenChange: g }) => {
9
9
  let [_, v] = a(!1), [y, b] = a(!1), [x, S] = a(!1), C = h != null, w = h ?? y, T = r((e) => {
10
10
  C || b(e), g?.(e);
@@ -17,7 +17,7 @@ var o = /* @__PURE__ */ function(e) {
17
17
  try {
18
18
  await l(s.id, !c);
19
19
  } catch (e) {
20
- await E(e, "pin");
20
+ await E(e, c ? "unpin" : "pin");
21
21
  } finally {
22
22
  v(!1);
23
23
  }