@paymanai/payman-typescript-ask-sdk 4.0.4 → 4.0.6
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/dist/index.d.mts +19 -4
- package/dist/index.d.ts +19 -4
- package/dist/index.js +69 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +69 -20
- package/dist/index.mjs.map +1 -1
- package/dist/index.native.js +69 -20
- package/dist/index.native.js.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -952,16 +952,40 @@ function createCancelledMessageUpdate(steps, currentMessage) {
|
|
|
952
952
|
var DEFAULT_STREAM_ENDPOINT = "/api/playground/ask/stream";
|
|
953
953
|
function buildRequestBody(config, userMessage, sessionId, options) {
|
|
954
954
|
const sessionOwner = config.sessionParams;
|
|
955
|
+
const sessionOwnerId = sessionOwner?.id?.trim();
|
|
956
|
+
if (!sessionOwnerId) {
|
|
957
|
+
throw new Error("ChatConfig.sessionParams.id is required to send ask requests.");
|
|
958
|
+
}
|
|
955
959
|
const sessionAttributes = sessionOwner?.attributes && Object.keys(sessionOwner.attributes).length > 0 ? sessionOwner.attributes : void 0;
|
|
956
960
|
return {
|
|
957
961
|
agentId: config.agentId,
|
|
958
962
|
userInput: userMessage,
|
|
959
963
|
sessionId,
|
|
964
|
+
sessionOwnerId,
|
|
960
965
|
sessionOwnerLabel: sessionOwner?.name || void 0,
|
|
961
966
|
sessionAttributes,
|
|
962
|
-
analysisMode: options?.analysisMode
|
|
967
|
+
analysisMode: options?.analysisMode,
|
|
968
|
+
locale: resolveLocale(config.locale),
|
|
969
|
+
timezone: resolveTimezone(config.timezone)
|
|
963
970
|
};
|
|
964
971
|
}
|
|
972
|
+
function resolveLocale(configured) {
|
|
973
|
+
if (configured && configured.trim().length > 0) return configured.trim();
|
|
974
|
+
if (typeof navigator !== "undefined") {
|
|
975
|
+
const navLocale = navigator.language;
|
|
976
|
+
if (navLocale && navLocale.length > 0) return navLocale;
|
|
977
|
+
}
|
|
978
|
+
return "en-US";
|
|
979
|
+
}
|
|
980
|
+
function resolveTimezone(configured) {
|
|
981
|
+
if (configured && configured.trim().length > 0) return configured.trim();
|
|
982
|
+
try {
|
|
983
|
+
const zone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
984
|
+
if (zone && zone.length > 0) return zone;
|
|
985
|
+
} catch {
|
|
986
|
+
}
|
|
987
|
+
return "UTC";
|
|
988
|
+
}
|
|
965
989
|
function buildStreamingUrl(config) {
|
|
966
990
|
const endpoint = config.api.streamEndpoint || DEFAULT_STREAM_ENDPOINT;
|
|
967
991
|
const stage = config.stage || "DEV";
|
|
@@ -1174,16 +1198,16 @@ function useStreamManagerV2(config, callbacks, setMessages, setIsWaitingForRespo
|
|
|
1174
1198
|
)
|
|
1175
1199
|
);
|
|
1176
1200
|
};
|
|
1177
|
-
const currentConfig = configRef.current;
|
|
1178
|
-
const requestBody = buildRequestBody(
|
|
1179
|
-
currentConfig,
|
|
1180
|
-
userMessage,
|
|
1181
|
-
sessionId,
|
|
1182
|
-
options
|
|
1183
|
-
);
|
|
1184
|
-
const url = buildStreamingUrl(currentConfig);
|
|
1185
|
-
const headers = buildRequestHeaders(currentConfig);
|
|
1186
1201
|
try {
|
|
1202
|
+
const currentConfig = configRef.current;
|
|
1203
|
+
const requestBody = buildRequestBody(
|
|
1204
|
+
currentConfig,
|
|
1205
|
+
userMessage,
|
|
1206
|
+
sessionId,
|
|
1207
|
+
options
|
|
1208
|
+
);
|
|
1209
|
+
const url = buildStreamingUrl(currentConfig);
|
|
1210
|
+
const headers = buildRequestHeaders(currentConfig);
|
|
1187
1211
|
await streamWorkflowEvents(url, requestBody, headers, {
|
|
1188
1212
|
signal: abortController.signal,
|
|
1189
1213
|
onEvent: (event) => {
|
|
@@ -1405,14 +1429,24 @@ function useStreamManagerV2(config, callbacks, setMessages, setIsWaitingForRespo
|
|
|
1405
1429
|
}
|
|
1406
1430
|
|
|
1407
1431
|
// src/hooks/useChatV2.ts
|
|
1432
|
+
function getStoredOrInitialMessages(config) {
|
|
1433
|
+
if (!config.userId) return config.initialMessages ?? [];
|
|
1434
|
+
const stored = chatStore.get(config.userId);
|
|
1435
|
+
if (stored.length > 0) return stored;
|
|
1436
|
+
if (config.initialMessages?.length) {
|
|
1437
|
+
chatStore.set(config.userId, config.initialMessages);
|
|
1438
|
+
return config.initialMessages;
|
|
1439
|
+
}
|
|
1440
|
+
return [];
|
|
1441
|
+
}
|
|
1442
|
+
function getSessionIdFromMessages(messages) {
|
|
1443
|
+
return messages.find((message) => message.sessionId)?.sessionId;
|
|
1444
|
+
}
|
|
1408
1445
|
function useChatV2(config, callbacks = {}) {
|
|
1409
|
-
const [messages, setMessages] = useState(() =>
|
|
1410
|
-
if (config.userId) return chatStore.get(config.userId);
|
|
1411
|
-
return config.initialMessages ?? [];
|
|
1412
|
-
});
|
|
1446
|
+
const [messages, setMessages] = useState(() => getStoredOrInitialMessages(config));
|
|
1413
1447
|
const [isWaitingForResponse, setIsWaitingForResponse] = useState(false);
|
|
1414
1448
|
const sessionIdRef = useRef(
|
|
1415
|
-
|
|
1449
|
+
getSessionIdFromMessages(getStoredOrInitialMessages(config)) ?? config.initialSessionId ?? void 0
|
|
1416
1450
|
);
|
|
1417
1451
|
const prevUserIdRef = useRef(config.userId);
|
|
1418
1452
|
const callbacksRef = useRef(callbacks);
|
|
@@ -1656,7 +1690,7 @@ function useChatV2(config, callbacks = {}) {
|
|
|
1656
1690
|
setIsWaitingForResponse(active.isWaiting);
|
|
1657
1691
|
}
|
|
1658
1692
|
return unsubscribe;
|
|
1659
|
-
}, []);
|
|
1693
|
+
}, [config.userId]);
|
|
1660
1694
|
useEffect(() => {
|
|
1661
1695
|
if (!config.userId) return;
|
|
1662
1696
|
const toSave = messages.filter((m) => !m.isStreaming);
|
|
@@ -1664,6 +1698,13 @@ function useChatV2(config, callbacks = {}) {
|
|
|
1664
1698
|
chatStore.set(config.userId, toSave);
|
|
1665
1699
|
}
|
|
1666
1700
|
}, [messages, config.userId]);
|
|
1701
|
+
useEffect(() => {
|
|
1702
|
+
if (!config.userId || activeStreamStore.has(config.userId)) return;
|
|
1703
|
+
if (!config.initialMessages?.length || messagesRef.current.length > 0) return;
|
|
1704
|
+
chatStore.set(config.userId, config.initialMessages);
|
|
1705
|
+
setMessages(config.initialMessages);
|
|
1706
|
+
sessionIdRef.current = getSessionIdFromMessages(config.initialMessages) ?? config.initialSessionId;
|
|
1707
|
+
}, [config.initialMessages, config.initialSessionId, config.userId]);
|
|
1667
1708
|
useEffect(() => {
|
|
1668
1709
|
const prevUserId = prevUserIdRef.current;
|
|
1669
1710
|
prevUserIdRef.current = config.userId;
|
|
@@ -1675,11 +1716,19 @@ function useChatV2(config, callbacks = {}) {
|
|
|
1675
1716
|
setIsWaitingForResponse(false);
|
|
1676
1717
|
setUserActionState({ request: null, result: null, clearOtpTrigger: 0 });
|
|
1677
1718
|
} else if (config.userId) {
|
|
1678
|
-
const
|
|
1679
|
-
|
|
1680
|
-
|
|
1719
|
+
const active = activeStreamStore.get(config.userId);
|
|
1720
|
+
if (active) {
|
|
1721
|
+
setMessages(active.messages);
|
|
1722
|
+
setIsWaitingForResponse(active.isWaiting);
|
|
1723
|
+
sessionIdRef.current = getSessionIdFromMessages(active.messages) ?? config.initialSessionId;
|
|
1724
|
+
return;
|
|
1725
|
+
}
|
|
1726
|
+
const nextMessages = getStoredOrInitialMessages(config);
|
|
1727
|
+
setMessages(nextMessages);
|
|
1728
|
+
sessionIdRef.current = getSessionIdFromMessages(nextMessages) ?? config.initialSessionId;
|
|
1729
|
+
setIsWaitingForResponse(false);
|
|
1681
1730
|
}
|
|
1682
|
-
}, [config
|
|
1731
|
+
}, [config]);
|
|
1683
1732
|
return {
|
|
1684
1733
|
messages,
|
|
1685
1734
|
sendMessage,
|