@epam/ai-dial-chat-hooks 1.3.0-dev.358 → 1.3.0-dev.364
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/catalog/resource-name-conflict.d.ts +22 -0
- package/catalog/resource-name-conflict.d.ts.map +1 -0
- package/catalog/resource-name-conflict.js +32 -0
- package/catalog.js +6 -5
- package/conversation/create-chat-stream-api.d.ts +2 -0
- package/conversation/create-chat-stream-api.d.ts.map +1 -1
- package/conversation/create-chat-stream-api.js +33 -33
- package/conversation/useConversationStream/conversation-stream.types.d.ts +6 -0
- package/conversation/useConversationStream/conversation-stream.types.d.ts.map +1 -1
- package/conversation/useConversationStream/generation-resume.d.ts +10 -1
- package/conversation/useConversationStream/generation-resume.d.ts.map +1 -1
- package/conversation/useConversationStream/generation-resume.js +110 -92
- package/conversation/useConversationStream/useConversationStream.d.ts +1 -1
- package/conversation/useConversationStream/useConversationStream.d.ts.map +1 -1
- package/conversation/useConversationStream/useConversationStream.js +106 -101
- package/conversation.js +43 -43
- package/entry-points/catalog.d.ts +1 -0
- package/entry-points/catalog.d.ts.map +1 -1
- package/index.d.ts +1 -0
- package/index.d.ts.map +1 -1
- package/index.js +178 -177
- package/package.json +17 -17
- package/project/project-file-preview.d.ts +4 -0
- package/project/project-file-preview.d.ts.map +1 -1
- package/project/project-file-preview.js +15 -10
- package/project/projects-api-client.d.ts +7 -1
- package/project/projects-api-client.d.ts.map +1 -1
- package/project/projects-api-client.js +1 -0
- package/project/use-project-conversations.d.ts +2 -1
- package/project/use-project-conversations.d.ts.map +1 -1
- package/project/use-project-conversations.js +11 -7
- package/project/use-project-file-preview.d.ts +6 -1
- package/project/use-project-file-preview.d.ts.map +1 -1
- package/project/use-project-file-preview.js +35 -31
- package/project.js +16 -16
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ResourceSaveAdapter } from './resource-save-adapter';
|
|
2
|
+
/** The kind of entity that already holds a displayed name and version a write asked for. */
|
|
3
|
+
export declare enum ResourceNameConflictKind {
|
|
4
|
+
/** An application shown as an agent. */
|
|
5
|
+
Agent = "agent",
|
|
6
|
+
/** A toolset resource. */
|
|
7
|
+
Toolset = "toolset"
|
|
8
|
+
}
|
|
9
|
+
/** The translated message for each kind of entity a duplicate can collide with. */
|
|
10
|
+
export type ResourceNameConflictMessages = Record<ResourceNameConflictKind, string>;
|
|
11
|
+
/**
|
|
12
|
+
* Returns the kind of entity holding the requested name and version when `error` is a duplicate `409`, otherwise `undefined`.
|
|
13
|
+
* @param error - the rejection of a generated-client call
|
|
14
|
+
*/
|
|
15
|
+
export declare const getResourceNameConflictKind: (error: unknown) => Promise<ResourceNameConflictKind | undefined>;
|
|
16
|
+
/**
|
|
17
|
+
* Returns `adapter` with its create, in-place and new-version steps rejecting a duplicate `409` as a `ResourceSaveError` carrying the matching message.
|
|
18
|
+
* @param adapter - the editor's Save panel adapter
|
|
19
|
+
* @param messages - the translated message for each kind of conflicting entity
|
|
20
|
+
*/
|
|
21
|
+
export declare const withResourceNameConflictMessages: (adapter: ResourceSaveAdapter, messages: ResourceNameConflictMessages) => ResourceSaveAdapter;
|
|
22
|
+
//# sourceMappingURL=resource-name-conflict.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource-name-conflict.d.ts","sourceRoot":"","sources":["../../src/catalog/resource-name-conflict.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AAEjC,4FAA4F;AAC5F,oBAAY,wBAAwB;IAClC,wCAAwC;IACxC,KAAK,UAAU;IACf,0BAA0B;IAC1B,OAAO,YAAY;CACpB;AAED,mFAAmF;AACnF,MAAM,MAAM,4BAA4B,GAAG,MAAM,CAC/C,wBAAwB,EACxB,MAAM,CACP,CAAC;AAUF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,GACtC,OAAO,OAAO,KACb,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAI9C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,GAC3C,SAAS,mBAAmB,EAC5B,UAAU,4BAA4B,KACrC,mBA+BF,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { getApiErrorDetails as e } from "../api-error/api-error.js";
|
|
2
|
+
import { ResourceSaveError as t, isResourceCreateAdapter as n } from "./resource-save-adapter.js";
|
|
3
|
+
import { ResourceNameConflictCode as r } from "@epam/ai-dial-chat-api-client";
|
|
4
|
+
//#region src/catalog/resource-name-conflict.ts
|
|
5
|
+
var i = /* @__PURE__ */ function(e) {
|
|
6
|
+
return e.Agent = "agent", e.Toolset = "toolset", e;
|
|
7
|
+
}({}), a = {
|
|
8
|
+
[r.NameTakenAgent]: "agent",
|
|
9
|
+
[r.NameTakenToolset]: "toolset"
|
|
10
|
+
}, o = async (t) => {
|
|
11
|
+
let { status: n, code: r } = await e(t);
|
|
12
|
+
if (n === 409 && r != null) return a[r];
|
|
13
|
+
}, s = (e, r) => {
|
|
14
|
+
let i = (e) => async (...n) => {
|
|
15
|
+
try {
|
|
16
|
+
return await e(...n);
|
|
17
|
+
} catch (e) {
|
|
18
|
+
let n = await o(e);
|
|
19
|
+
throw n == null ? e : new t(r[n]);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
return n(e) ? {
|
|
23
|
+
...e,
|
|
24
|
+
createIn: i(e.createIn)
|
|
25
|
+
} : {
|
|
26
|
+
...e,
|
|
27
|
+
saveInPlace: i(e.saveInPlace),
|
|
28
|
+
...e.saveAsNewVersion && { saveAsNewVersion: i(e.saveAsNewVersion) }
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
//#endregion
|
|
32
|
+
export { i as ResourceNameConflictKind, o as getResourceNameConflictKind, s as withResourceNameConflictMessages };
|
package/catalog.js
CHANGED
|
@@ -32,8 +32,9 @@ import { hasPublishFolderWriteAccess as Ee, rememberPublishFolderKey as De, useP
|
|
|
32
32
|
import { useResourceFolders as ke } from "./catalog/useResourceFolders/useResourceFolders.js";
|
|
33
33
|
import { parseResourceFolderPath as Ae } from "./catalog/resource-folder.js";
|
|
34
34
|
import { ResourceSaveError as je, isResourceCreateAdapter as Me } from "./catalog/resource-save-adapter.js";
|
|
35
|
-
import {
|
|
36
|
-
import {
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
|
|
35
|
+
import { ResourceNameConflictKind as Ne, getResourceNameConflictKind as Pe, withResourceNameConflictMessages as Fe } from "./catalog/resource-name-conflict.js";
|
|
36
|
+
import { ResourceSaveOutcome as Ie, ResourceSaveVersionError as Le, SaveDestinationRoot as Re, createPublishSavedResource as ze, runResourceSave as Be } from "./catalog/resource-save.js";
|
|
37
|
+
import { createEmbeddedApplicationSaveAdapter as Ve, createHostApplicationSaveAdapter as He, createPromptCreateAdapter as Ue, createPromptFolderLister as We, createPromptSaveAdapter as Ge, createSkillFolderLister as Ke, createToolsetCreateAdapter as qe, createToolsetSaveAdapter as Je } from "./catalog/resource-save-adapters.js";
|
|
38
|
+
import { useResourceSavePanel as Ye } from "./catalog/useResourceSavePanel/useResourceSavePanel.js";
|
|
39
|
+
import { SkillPreviewErrorKind as Xe, useSkillFilePreview as Ze } from "./skill/useSkillFilePreview.js";
|
|
40
|
+
export { u as AuthenticationType, re as CatalogEntityKind, pe as CatalogPrimaryActionType, Ce as DEFAULT_APPLICATION_CREDENTIAL_ACTIONS_LABELS, m as DEFAULT_ENTITY_DETAILS_LABELS, oe as FavoriteEntityType, B as McpResourceKind, E as PUBLIC_SKILL_BUCKET, Ne as ResourceNameConflictKind, je as ResourceSaveError, Ie as ResourceSaveOutcome, Le as ResourceSaveVersionError, D as SKILL_LISTING_MAX_PAGES, O as SKILL_LISTING_PAGE_SIZE, k as SKILL_MANIFEST_MAX_BYTES, Re as SaveDestinationRoot, Xe as SkillPreviewErrorKind, A as SkillSource, be as buildApplicationCredentialLoginParams, V as buildApplicationMcpUrl, n as buildChatCompletionsUrl, H as buildConnectApi, r as buildDeploymentConnectApi, C as buildPromptOverview, d as buildResetFields, i as buildResponsesUrl, M as buildSkillContentTree, N as buildSkillOverview, U as buildToolsetMcpUrl, Z as canEditShareAccess, a as createDeploymentLookup, Ve as createEmbeddedApplicationSaveAdapter, He as createHostApplicationSaveAdapter, Ue as createPromptCreateAdapter, We as createPromptFolderLister, Ge as createPromptSaveAdapter, e as createPublishApiClient, ze as createPublishSavedResource, Ke as createSkillFolderLister, qe as createToolsetCreateAdapter, Je as createToolsetSaveAdapter, o as decodeDeploymentId, Q as deriveAvailableTabIds, $ as deriveFavoriteItems, s as encodeDeploymentId, ee as filterCatalogItemsBySelector, te as filterHiddenOwnedItems, c as findDeploymentByIdOrReference, ie as findSchemaDisplayName, fe as findWorstCappedRow, G as getPublicCatalogEntityFolderPath, Pe as getResourceNameConflictKind, Ee as hasPublishFolderWriteAccess, w as isOrganisationPromptItem, K as isPublicCatalogEntityId, Me as isResourceCreateAdapter, xe as mapApplicationCredentials, h as mapDeploymentDetailsDtoToEntityDetails, p as mapDeploymentLimitsDtoToCatalogLimits, f as mapDeploymentLimitsToInput, v as mapDeploymentToCatalogItem, y as mapDeploymentToolsetCredentials, g as mapEntityDetailsToCatalogDetails, T as mapPromptToCatalogItem, q as mapPublishConversationResultDto, J as mapPublishHistoryEntryDto, P as mapSkillToCatalogItem, _ as mapToolsetCredentials, b as mapToolsetToCatalogItem, l as normalizeDeploymentId, le as parseCatalogFilterTopics, Ae as parseResourceFolderPath, j as parseSkillResourceUrl, F as readSkillFileBytes, I as readSkillFilePreviewBytes, L as readSkillManifest, ne as reconcileFilterTopics, De as rememberPublishFolderKey, ue as resolveCatalogActiveTab, ae as resolveCatalogEntityKind, me as resolveCatalogPrimaryAction, de as resolveCatalogSortKey, x as resolveDeploymentFolder, ce as resolveFavoriteEntityType, W as resolveMcpResourceKind, R as resolveSkillFileDownloadPath, z as resolveSkillManifestFileId, Be as runResourceSave, S as supportsChatInterface, Y as toPublishEntityType, t as toPublishRuleDto, we as useApplicationCredentialActions, Se as useApplicationCredentials, ge as useCatalogEditNavigation, he as useCatalogItemDelete, ve as useCatalogItemDetails, ye as useCatalogToolsetCredentials, se as useFavoriteEntitiesState, Oe as usePublishFolders, X as usePublishHistory, ke as useResourceFolders, Ye as useResourceSavePanel, Te as useSkillDetailsPanelData, Ze as useSkillFilePreview, _e as useSkillItemDetails, Fe as withResourceNameConflictMessages };
|
|
@@ -2,6 +2,8 @@ import { SendCompletionDtoModeEnum } from '@epam/ai-dial-chat-api-client';
|
|
|
2
2
|
import { MessageCustomContent, StreamChunk } from '@epam/ai-dial-chat-shared';
|
|
3
3
|
/** Safe fallback for hosts that do not supply a translated persistence warning. */
|
|
4
4
|
export declare const DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE = "The response could not be saved. It is still shown here, but may be lost if you reload or leave this page. Copy it before continuing.";
|
|
5
|
+
/** Safe fallback for hosts that do not supply a translated interrupted-generation text. */
|
|
6
|
+
export declare const DEFAULT_GENERATION_INTERRUPTED_ERROR_MESSAGE = "No answer was received for this message. The response may have been interrupted. Try again.";
|
|
5
7
|
/** Terminal markers the rejected write of a stopped, aborted, or failed answer carried. */
|
|
6
8
|
export interface GenerationPersistenceTerminalMarker {
|
|
7
9
|
/** Error text the failed write stored; `''` asks the host for its localized fallback. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-chat-stream-api.d.ts","sourceRoot":"","sources":["../../src/conversation/create-chat-stream-api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"create-chat-stream-api.d.ts","sourceRoot":"","sources":["../../src/conversation/create-chat-stream-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
//#region src/conversation/create-chat-stream-api.ts
|
|
2
|
-
var e = { "Content-Type": "application/json" }, t = 409, n = "The response could not be saved. It is still shown here, but may be lost if you reload or leave this page. Copy it before continuing.", r = class extends Error {
|
|
2
|
+
var e = { "Content-Type": "application/json" }, t = 409, n = "The response could not be saved. It is still shown here, but may be lost if you reload or leave this page. Copy it before continuing.", r = "No answer was received for this message. The response may have been interrupted. Try again.", i = class extends Error {
|
|
3
3
|
static type = "conversation_save_failed";
|
|
4
4
|
status;
|
|
5
5
|
terminalMarker;
|
|
6
6
|
constructor(e, t) {
|
|
7
7
|
super(n), this.name = "GenerationPersistenceError", this.status = e, this.terminalMarker = t;
|
|
8
8
|
}
|
|
9
|
-
},
|
|
10
|
-
constructor(e =
|
|
9
|
+
}, a = "A response is already being generated in this conversation. Wait for it to finish or stop it before sending another message.", o = class extends Error {
|
|
10
|
+
constructor(e = a) {
|
|
11
11
|
super(e), this.name = "GenerationConflictError";
|
|
12
12
|
}
|
|
13
|
-
},
|
|
13
|
+
}, s = class extends Error {
|
|
14
14
|
constructor(e) {
|
|
15
15
|
super(e), this.name = "StreamUpstreamError";
|
|
16
16
|
}
|
|
17
|
-
},
|
|
17
|
+
}, c = class extends Error {
|
|
18
18
|
constructor(e) {
|
|
19
19
|
super("The completion stream was interrupted", { cause: e }), this.name = "StreamInterruptedError";
|
|
20
20
|
}
|
|
21
|
-
},
|
|
21
|
+
}, l = class extends Error {
|
|
22
22
|
status;
|
|
23
23
|
constructor(e) {
|
|
24
24
|
super(`stopCompletion failed: ${e}`), this.name = "StopCompletionError", this.status = e;
|
|
25
25
|
}
|
|
26
|
-
},
|
|
26
|
+
}, u = 45e3, d = (e, t) => {
|
|
27
27
|
let n = Date.now(), r, i = !1, a = () => {
|
|
28
28
|
if (i) return;
|
|
29
29
|
let o = Date.now() - n;
|
|
@@ -39,34 +39,34 @@ var e = { "Content-Type": "application/json" }, t = 409, n = "The response could
|
|
|
39
39
|
i || (i = !0, clearTimeout(r), s && (document.removeEventListener("visibilitychange", o), window.removeEventListener("online", a), window.removeEventListener("pageshow", a)));
|
|
40
40
|
}
|
|
41
41
|
};
|
|
42
|
-
},
|
|
42
|
+
}, f = (e) => typeof e == "object" && !!e && e.name === "AbortError", p = (e) => {
|
|
43
43
|
let { status: t } = e;
|
|
44
44
|
return typeof t == "number" ? t : void 0;
|
|
45
|
-
},
|
|
45
|
+
}, m = (e) => {
|
|
46
46
|
let { streamErrorMessage: t, wasStoppedByUser: n } = e;
|
|
47
47
|
if (n === !0) return { wasStoppedByUser: !0 };
|
|
48
48
|
if (typeof t == "string") return { streamErrorMessage: t };
|
|
49
|
-
},
|
|
50
|
-
let
|
|
51
|
-
if (!
|
|
52
|
-
let a =
|
|
49
|
+
}, h = (e, t, n) => {
|
|
50
|
+
let r = e.trim();
|
|
51
|
+
if (!r || r.startsWith(":") || !r.startsWith("data: ")) return;
|
|
52
|
+
let a = r.slice(6);
|
|
53
53
|
if (a !== "[DONE]") try {
|
|
54
54
|
let e = JSON.parse(a);
|
|
55
55
|
if (e.error) {
|
|
56
|
-
n(e.error.type ===
|
|
56
|
+
n(e.error.type === i.type ? new i(p(e.error), m(e.error)) : new s(e.error.display_message ?? e.error.message));
|
|
57
57
|
return;
|
|
58
58
|
}
|
|
59
59
|
t(e);
|
|
60
60
|
} catch {}
|
|
61
|
-
},
|
|
61
|
+
}, g = (n) => {
|
|
62
62
|
let { completionsBasePath: r } = n, i = (...e) => (n.fetchImpl ?? fetch)(...e);
|
|
63
63
|
return {
|
|
64
|
-
streamCompletion: (
|
|
64
|
+
streamCompletion: (a, l, u, p, m, g, _, v, y) => {
|
|
65
65
|
let { onChunk: b, onComplete: x, onError: S, signal: C } = p;
|
|
66
66
|
(async () => {
|
|
67
67
|
let p;
|
|
68
68
|
try {
|
|
69
|
-
let t = n.getTimezone?.(),
|
|
69
|
+
let t = n.getTimezone?.(), o = n.getLanguage?.();
|
|
70
70
|
p = await i(`${r}/completions`, {
|
|
71
71
|
method: "POST",
|
|
72
72
|
credentials: "include",
|
|
@@ -75,13 +75,13 @@ var e = { "Content-Type": "application/json" }, t = 409, n = "The response could
|
|
|
75
75
|
...e,
|
|
76
76
|
...n.getCsrfToken() == null ? {} : { "X-CSRF-Token": n.getCsrfToken() },
|
|
77
77
|
...t ? { "X-Timezone": t } : {},
|
|
78
|
-
...
|
|
78
|
+
...o ? { "X-Lang": o } : {}
|
|
79
79
|
},
|
|
80
80
|
body: JSON.stringify({
|
|
81
|
-
path:
|
|
81
|
+
path: a,
|
|
82
82
|
message: l ?? "",
|
|
83
|
-
model:
|
|
84
|
-
custom_content:
|
|
83
|
+
model: u,
|
|
84
|
+
custom_content: m || {},
|
|
85
85
|
...g != null && { generationId: g },
|
|
86
86
|
..._ != null && { mode: _ },
|
|
87
87
|
...v != null && { messageIndex: v },
|
|
@@ -89,14 +89,14 @@ var e = { "Content-Type": "application/json" }, t = 409, n = "The response could
|
|
|
89
89
|
})
|
|
90
90
|
});
|
|
91
91
|
} catch (e) {
|
|
92
|
-
if (
|
|
93
|
-
S(new
|
|
92
|
+
if (f(e)) return;
|
|
93
|
+
S(new c(e));
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
96
96
|
let w = p.headers.get("x-csrf-token");
|
|
97
97
|
if (w && n.setCsrfToken(w), !p.ok) {
|
|
98
98
|
if (p.status === t) {
|
|
99
|
-
S(new
|
|
99
|
+
S(new o());
|
|
100
100
|
return;
|
|
101
101
|
}
|
|
102
102
|
S(/* @__PURE__ */ Error(`Stream request failed with status ${p.status}`));
|
|
@@ -109,29 +109,29 @@ var e = { "Content-Type": "application/json" }, t = 409, n = "The response could
|
|
|
109
109
|
let T = p.body.getReader(), E = new TextDecoder(), D = "", O = !1, k = !1, A, j = (e) => {
|
|
110
110
|
O || (O = !0, P.stop(), S(e));
|
|
111
111
|
}, M = (e) => {
|
|
112
|
-
e instanceof
|
|
112
|
+
e instanceof s ? A ??= e : j(e);
|
|
113
113
|
}, N = (e) => {
|
|
114
114
|
A ?? b(e);
|
|
115
|
-
}, P =
|
|
116
|
-
k = !0, j(A ?? new
|
|
115
|
+
}, P = d(n.idleTimeoutMs ?? 45e3, () => {
|
|
116
|
+
k = !0, j(A ?? new c()), T.cancel().catch(() => void 0);
|
|
117
117
|
});
|
|
118
118
|
try {
|
|
119
119
|
for (;;) {
|
|
120
120
|
let { done: e, value: t } = await T.read();
|
|
121
121
|
if (k) break;
|
|
122
122
|
if (e) {
|
|
123
|
-
D.trim() &&
|
|
123
|
+
D.trim() && h(D, N, M);
|
|
124
124
|
break;
|
|
125
125
|
}
|
|
126
126
|
P.touch(), D += E.decode(t, { stream: !0 });
|
|
127
127
|
let n = D.split("\n");
|
|
128
128
|
D = n.pop() ?? "";
|
|
129
|
-
for (let e of n)
|
|
129
|
+
for (let e of n) h(e, N, M);
|
|
130
130
|
}
|
|
131
131
|
A ? j(A) : O || (O = !0, x());
|
|
132
132
|
} catch (e) {
|
|
133
|
-
if (
|
|
134
|
-
j(A ?? new
|
|
133
|
+
if (f(e)) return;
|
|
134
|
+
j(A ?? new c(e));
|
|
135
135
|
} finally {
|
|
136
136
|
P.stop(), T.releaseLock();
|
|
137
137
|
}
|
|
@@ -147,9 +147,9 @@ var e = { "Content-Type": "application/json" }, t = 409, n = "The response could
|
|
|
147
147
|
},
|
|
148
148
|
body: JSON.stringify(t)
|
|
149
149
|
}), o = a.headers.get("x-csrf-token");
|
|
150
|
-
if (o && n.setCsrfToken(o), !a.ok) throw new
|
|
150
|
+
if (o && n.setCsrfToken(o), !a.ok) throw new l(a.status);
|
|
151
151
|
}
|
|
152
152
|
};
|
|
153
153
|
};
|
|
154
154
|
//#endregion
|
|
155
|
-
export {
|
|
155
|
+
export { a as DEFAULT_GENERATION_CONFLICT_MESSAGE, r as DEFAULT_GENERATION_INTERRUPTED_ERROR_MESSAGE, n as DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE, u as DEFAULT_STREAM_IDLE_TIMEOUT_MS, o as GenerationConflictError, i as GenerationPersistenceError, l as StopCompletionError, c as StreamInterruptedError, s as StreamUpstreamError, g as createChatStreamApi };
|
|
@@ -91,6 +91,12 @@ export interface UseConversationStreamParams {
|
|
|
91
91
|
generationConflictMessage?: string;
|
|
92
92
|
/** Host-translated warning shown when the received answer could not be saved. */
|
|
93
93
|
generationPersistenceErrorMessage?: string;
|
|
94
|
+
/**
|
|
95
|
+
* Host-translated text shown on an assistant message whose generation was lost: a reloaded
|
|
96
|
+
* chat whose stored copy still ends in the empty placeholder while attach finds nothing
|
|
97
|
+
* running. Defaults to {@link DEFAULT_GENERATION_INTERRUPTED_ERROR_MESSAGE}.
|
|
98
|
+
*/
|
|
99
|
+
generationInterruptedMessage?: string;
|
|
94
100
|
/**
|
|
95
101
|
* Receives the original error of every failed stream. The hook shows only
|
|
96
102
|
* host-supplied or upstream-supplied text on the message bubble and hides
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-stream.types.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/conversation-stream.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"conversation-stream.types.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/conversation-stream.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,13 @@ export interface ResumeGenerationOptions {
|
|
|
48
48
|
* already knows its local id, and the conflict handover keeps Stop unavailable.
|
|
49
49
|
*/
|
|
50
50
|
trackAttachGenerationId?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Releases the chat and shows an unresolved placeholder as interrupted once nothing is
|
|
53
|
+
* producing the answer here (attach unavailable, stored copy still the placeholder). Set
|
|
54
|
+
* only by the public entry point: stream recovery and the conflict handover know a
|
|
55
|
+
* generation exists, so they keep their own behaviour.
|
|
56
|
+
*/
|
|
57
|
+
shouldMarkOrphanedAsInterrupted?: boolean;
|
|
51
58
|
}
|
|
52
59
|
/** Host-owned state {@link createResumeIfAwaitingGeneration} reads/writes through. */
|
|
53
60
|
export interface ResumeIfAwaitingGenerationDeps {
|
|
@@ -60,6 +67,8 @@ export interface ResumeIfAwaitingGenerationDeps {
|
|
|
60
67
|
removeStreamingPath: (path: string) => void;
|
|
61
68
|
isPathDisplayed: (path: string) => boolean;
|
|
62
69
|
generationPersistenceErrorMessage?: string;
|
|
70
|
+
/** Host-translated text shown on a placeholder nothing is producing. Defaults to {@link DEFAULT_GENERATION_INTERRUPTED_ERROR_MESSAGE}. */
|
|
71
|
+
generationInterruptedMessage?: string;
|
|
63
72
|
/** Records a terminal read failure and its guarded read-only retry. */
|
|
64
73
|
onReloadError?: (path: string, retry: () => Promise<void>, isCurrent: () => boolean) => void;
|
|
65
74
|
/** Clears a previous read failure after reconciliation. */
|
|
@@ -94,5 +103,5 @@ export interface ResumeIfAwaitingGenerationDeps {
|
|
|
94
103
|
* backend's finalize save resolves the placeholder whenever attach is
|
|
95
104
|
* unavailable or ends without a terminal event.
|
|
96
105
|
*/
|
|
97
|
-
export declare const createResumeIfAwaitingGeneration: ({ transport, setConversation, conversationRef, resumingPathsRef, bufferedGenerationsRef, addStreamingPath, removeStreamingPath, isPathDisplayed, generationPersistenceErrorMessage, frameScheduler, stoppedGenerationIdsRef, rememberResumedGenerationId, forgetResumedGenerationId, onReloadError, onReloadSuccess, }: ResumeIfAwaitingGenerationDeps) => (currentConversationId: string, conversation: Conversation, options?: ResumeGenerationOptions) => void;
|
|
106
|
+
export declare const createResumeIfAwaitingGeneration: ({ transport, setConversation, conversationRef, resumingPathsRef, bufferedGenerationsRef, addStreamingPath, removeStreamingPath, isPathDisplayed, generationPersistenceErrorMessage, generationInterruptedMessage, frameScheduler, stoppedGenerationIdsRef, rememberResumedGenerationId, forgetResumedGenerationId, onReloadError, onReloadSuccess, }: ResumeIfAwaitingGenerationDeps) => (currentConversationId: string, conversation: Conversation, options?: ResumeGenerationOptions) => void;
|
|
98
107
|
//# sourceMappingURL=generation-resume.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generation-resume.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/generation-resume.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EAEjB,KAAK,OAAO,EAEb,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"generation-resume.d.ts","sourceRoot":"","sources":["../../../src/conversation/useConversationStream/generation-resume.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,155 +1,173 @@
|
|
|
1
1
|
import { safeDecodeURI as e } from "../../shared/string-utils.js";
|
|
2
|
-
import {
|
|
3
|
-
import { readSseEvents as
|
|
4
|
-
import { getConversationPath as
|
|
5
|
-
import { applyChunkToMessages as
|
|
6
|
-
import { restoreBufferedMessage as
|
|
7
|
-
import { BackgroundGenerationStatus as
|
|
2
|
+
import { DEFAULT_GENERATION_INTERRUPTED_ERROR_MESSAGE as t, DEFAULT_GENERATION_PERSISTENCE_ERROR_MESSAGE as n, GenerationPersistenceError as r } from "../create-chat-stream-api.js";
|
|
3
|
+
import { readSseEvents as i } from "../../shared/read-sse-events.js";
|
|
4
|
+
import { getConversationPath as a } from "./conversation-path.js";
|
|
5
|
+
import { applyChunkToMessages as o } from "./apply-chunk.js";
|
|
6
|
+
import { restoreBufferedMessage as s } from "./buffered-generation.js";
|
|
7
|
+
import { BackgroundGenerationStatus as c, MessageRole as l } from "@epam/ai-dial-chat-shared";
|
|
8
8
|
//#region src/conversation/useConversationStream/generation-resume.ts
|
|
9
|
-
var
|
|
9
|
+
var u = (e) => {
|
|
10
10
|
let t = e.custom_content;
|
|
11
11
|
return !!e.content || e.responseId != null || !!t?.attachments?.length || !!t?.stages?.length || !!t?.annotations?.length || !!t?.form_schema || t?.state != null;
|
|
12
|
-
},
|
|
13
|
-
if (
|
|
12
|
+
}, d = (e) => e.messages.findIndex((e) => e.backgroundGeneration?.status === c.Pending), f = (e) => {
|
|
13
|
+
if (d(e) !== -1) return !0;
|
|
14
14
|
let t = e.messages[e.messages.length - 1];
|
|
15
|
-
return !!t && t.role ===
|
|
16
|
-
},
|
|
15
|
+
return !!t && t.role === l.Assistant && !u(t) && t.streamErrorMessage == null && !t.wasStoppedByUser;
|
|
16
|
+
}, p = 3e5, m = "awaiting-resume", h = [
|
|
17
17
|
1e3,
|
|
18
18
|
2e3,
|
|
19
19
|
4e3,
|
|
20
20
|
8e3,
|
|
21
21
|
16e3
|
|
22
|
-
],
|
|
22
|
+
], g = (e) => new Promise((t) => {
|
|
23
23
|
let n = typeof window < "u", r = () => {
|
|
24
24
|
clearTimeout(i), n && window.removeEventListener("online", r), t();
|
|
25
25
|
}, i = setTimeout(r, e);
|
|
26
26
|
n && window.addEventListener("online", r);
|
|
27
|
-
}),
|
|
28
|
-
for (let r = 0; r <=
|
|
27
|
+
}), _ = async (e, t, n) => {
|
|
28
|
+
for (let r = 0; r <= h.length; r++) {
|
|
29
29
|
if (t()) return null;
|
|
30
30
|
try {
|
|
31
31
|
let t = await e();
|
|
32
32
|
if (!n?.(t)) return t;
|
|
33
33
|
} catch {}
|
|
34
|
-
if (r ===
|
|
35
|
-
await h
|
|
34
|
+
if (r === h.length) return null;
|
|
35
|
+
await g(h[r]);
|
|
36
36
|
}
|
|
37
37
|
return null;
|
|
38
|
-
},
|
|
39
|
-
if (!
|
|
40
|
-
|
|
38
|
+
}, v = ({ transport: c, setConversation: l, conversationRef: h, resumingPathsRef: g, bufferedGenerationsRef: _, addStreamingPath: v, removeStreamingPath: y, isPathDisplayed: b, generationPersistenceErrorMessage: x = n, generationInterruptedMessage: S = t, frameScheduler: C, stoppedGenerationIdsRef: w, rememberResumedGenerationId: T, forgetResumedGenerationId: E, onReloadError: D, onReloadSuccess: O }) => (t, n, k = {}) => {
|
|
39
|
+
if (!f(n)) {
|
|
40
|
+
k.onSettled?.();
|
|
41
41
|
return;
|
|
42
42
|
}
|
|
43
|
-
let
|
|
44
|
-
if (!
|
|
45
|
-
|
|
46
|
-
let
|
|
47
|
-
generationId:
|
|
48
|
-
messageIndex:
|
|
49
|
-
message:
|
|
43
|
+
let A = a(t);
|
|
44
|
+
if (!k.skipDedupe && g.current.has(A)) return;
|
|
45
|
+
g.current.add(A), v(A);
|
|
46
|
+
let j = d(n), M = j !== -1, N = M ? j : n.messages.length - 1, P = {
|
|
47
|
+
generationId: m,
|
|
48
|
+
messageIndex: N,
|
|
49
|
+
message: k.seedMessage ?? n.messages[N]
|
|
50
50
|
};
|
|
51
|
-
|
|
52
|
-
let
|
|
53
|
-
let e =
|
|
54
|
-
return e != null && (
|
|
55
|
-
},
|
|
56
|
-
|
|
57
|
-
},
|
|
58
|
-
if (
|
|
59
|
-
let e =
|
|
60
|
-
|
|
61
|
-
},
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
51
|
+
_.current.set(A, P);
|
|
52
|
+
let F = () => _.current.get(A) === P, I = M ? n.messages[N].backgroundGeneration?.generationId : void 0, L, R = () => {
|
|
53
|
+
let e = I ?? L;
|
|
54
|
+
return e != null && (w?.current.has(e) ?? !1);
|
|
55
|
+
}, z = (e) => {
|
|
56
|
+
k.trackAttachGenerationId && !M && e != null && F() && (L = e, T?.(A, e));
|
|
57
|
+
}, B = () => {
|
|
58
|
+
if (L == null) return;
|
|
59
|
+
let e = L;
|
|
60
|
+
L = void 0, w?.current.delete(e), E?.(A, e);
|
|
61
|
+
}, V = (e) => !!k.shouldMarkOrphanedAsInterrupted && !M && !!e && e.messages.length - 1 === N && d(e) === -1 && f(e) && !u(P.message), H = () => {
|
|
62
|
+
P.message = {
|
|
63
|
+
...P.message,
|
|
64
|
+
streamErrorMessage: S
|
|
65
|
+
};
|
|
66
|
+
}, U = () => {
|
|
67
|
+
F() && (H(), g.current.delete(A), y(A), B(), b(A) && l((e) => {
|
|
68
|
+
if (!e || !F() || !b(A)) return e;
|
|
69
|
+
let t = s(e, P);
|
|
70
|
+
return h.current = t, t;
|
|
71
|
+
}));
|
|
72
|
+
}, W = (e, t = !1) => {
|
|
73
|
+
if (C?.flush(A), I != null && w?.current.delete(I), B(), !F()) return;
|
|
74
|
+
g.current.delete(A), y(A);
|
|
75
|
+
let n = !M && e && e.messages.length - 1 === N && f(e) && u(P.message);
|
|
76
|
+
if (t || n) P.message = {
|
|
77
|
+
...P.message,
|
|
78
|
+
streamErrorMessage: x
|
|
79
|
+
}, b(A) && l((e) => {
|
|
80
|
+
if (!e || !F() || !b(A)) return e;
|
|
81
|
+
let t = s(e, P);
|
|
82
|
+
return h.current = t, t;
|
|
83
|
+
});
|
|
84
|
+
else if (_.current.delete(A), e && b(A)) {
|
|
85
|
+
let t = V(e);
|
|
86
|
+
t && H();
|
|
87
|
+
let n = t ? s(e, P) : e;
|
|
88
|
+
l(n), h.current = n;
|
|
89
|
+
}
|
|
90
|
+
}, G = async () => {
|
|
91
|
+
if (F()) try {
|
|
92
|
+
let n = await c.getConversation(e(t));
|
|
93
|
+
if (!F()) return;
|
|
94
|
+
O?.(A), W(n);
|
|
78
95
|
} catch {
|
|
79
|
-
if (!
|
|
80
|
-
|
|
96
|
+
if (!F()) return;
|
|
97
|
+
C?.flush(A), g.current.delete(A), y(A), I != null && w?.current.delete(I), B(), D?.(A, G, F);
|
|
81
98
|
}
|
|
82
|
-
},
|
|
83
|
-
|
|
84
|
-
if (!e || !
|
|
85
|
-
let t =
|
|
86
|
-
return
|
|
99
|
+
}, K = (e) => {
|
|
100
|
+
C?.cancel(A), F() && (P.message = e, b(A) && l((e) => {
|
|
101
|
+
if (!e || !F() || !b(A)) return e;
|
|
102
|
+
let t = s(e, P);
|
|
103
|
+
return h.current = t, t;
|
|
87
104
|
}));
|
|
88
|
-
},
|
|
89
|
-
if (!e || !
|
|
90
|
-
let t =
|
|
91
|
-
return
|
|
92
|
-
}),
|
|
93
|
-
if (!
|
|
94
|
-
let t =
|
|
95
|
-
t && (
|
|
96
|
-
},
|
|
97
|
-
let n = new AbortController(),
|
|
105
|
+
}, q = () => l((e) => {
|
|
106
|
+
if (!e || !F() || !b(A)) return e;
|
|
107
|
+
let t = s(e, P);
|
|
108
|
+
return h.current = t, t;
|
|
109
|
+
}), J = (e) => {
|
|
110
|
+
if (!F() || R()) return;
|
|
111
|
+
let t = o([P.message], 0, e);
|
|
112
|
+
t && (P.message = t[0]), b(A) && (C ? C.schedule(A, q) : q());
|
|
113
|
+
}, Y = async () => {
|
|
114
|
+
let n = new AbortController(), r;
|
|
98
115
|
try {
|
|
99
|
-
|
|
116
|
+
r = await c.watchConversation(A, n.signal);
|
|
100
117
|
} catch {
|
|
101
|
-
await
|
|
118
|
+
await G();
|
|
102
119
|
return;
|
|
103
120
|
}
|
|
104
121
|
try {
|
|
105
|
-
let
|
|
106
|
-
if (!
|
|
107
|
-
n.abort(),
|
|
122
|
+
let i = await c.getConversation(e(t));
|
|
123
|
+
if (!f(i)) {
|
|
124
|
+
n.abort(), r.cancel().catch(() => void 0), W(i);
|
|
108
125
|
return;
|
|
109
126
|
}
|
|
127
|
+
V(i) && U();
|
|
110
128
|
} catch {}
|
|
111
129
|
let a = !1, o = window.setTimeout(() => {
|
|
112
130
|
n.abort();
|
|
113
|
-
},
|
|
131
|
+
}, p);
|
|
114
132
|
try {
|
|
115
|
-
await r
|
|
133
|
+
await i(r, async (n) => {
|
|
116
134
|
if (n?.action !== "UPDATE") return !1;
|
|
117
135
|
try {
|
|
118
|
-
let n = await
|
|
119
|
-
if (!
|
|
136
|
+
let n = await c.getConversation(e(t));
|
|
137
|
+
if (!f(n)) return W(n), a = !0, !0;
|
|
120
138
|
} catch {}
|
|
121
139
|
return !1;
|
|
122
140
|
});
|
|
123
141
|
} finally {
|
|
124
142
|
clearTimeout(o);
|
|
125
143
|
}
|
|
126
|
-
a || await
|
|
127
|
-
},
|
|
144
|
+
a || await G();
|
|
145
|
+
}, X = async () => {
|
|
128
146
|
let e = new AbortController(), t;
|
|
129
147
|
try {
|
|
130
|
-
t = await
|
|
148
|
+
t = await c.attachToGeneration(A, e.signal);
|
|
131
149
|
} catch {
|
|
132
150
|
return !1;
|
|
133
151
|
}
|
|
134
|
-
let
|
|
135
|
-
return await
|
|
136
|
-
if (!
|
|
152
|
+
let n = !1, a = !1;
|
|
153
|
+
return await i(t, (e) => {
|
|
154
|
+
if (!F()) return !0;
|
|
137
155
|
switch (e.type) {
|
|
138
|
-
case "snapshot": return
|
|
139
|
-
case "chunk": return
|
|
156
|
+
case "snapshot": return z(e.generationId), K(e.message), !1;
|
|
157
|
+
case "chunk": return J(e.chunk), !1;
|
|
140
158
|
case "done":
|
|
141
159
|
case "error":
|
|
142
|
-
case "stopped": return a = e.type === "error" && e.errorType ===
|
|
160
|
+
case "stopped": return a = e.type === "error" && e.errorType === r.type, n = !0, !0;
|
|
143
161
|
}
|
|
144
|
-
}),
|
|
162
|
+
}), n ? (a ? W(void 0, !0) : await G(), !0) : (B(), !F());
|
|
145
163
|
};
|
|
146
164
|
(async () => {
|
|
147
165
|
try {
|
|
148
|
-
await
|
|
166
|
+
await X() || await Y();
|
|
149
167
|
} finally {
|
|
150
|
-
|
|
168
|
+
k.onSettled?.();
|
|
151
169
|
}
|
|
152
170
|
})();
|
|
153
171
|
};
|
|
154
172
|
//#endregion
|
|
155
|
-
export {
|
|
173
|
+
export { h as RECOVERY_REFETCH_DELAYS_MS, v as createResumeIfAwaitingGeneration, _ as fetchConversationForRecovery, d as findPendingBackgroundMessageIndex, u as hasGeneratedPayload, f as isAwaitingGenerationResume };
|