@kite-copilot/chat-panel 0.2.27 → 0.2.28
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/auto.cjs +33 -9
- package/dist/auto.js +1 -1
- package/dist/{chunk-4KYS4INW.js → chunk-LYZAMTWZ.js} +33 -9
- package/dist/embed.global.js +9 -9
- package/dist/index.cjs +33 -9
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/auto.cjs
CHANGED
|
@@ -1322,6 +1322,11 @@ function ChatPanel({
|
|
|
1322
1322
|
const escalationWsRef = React4.useRef(null);
|
|
1323
1323
|
const resetSession = React4.useCallback(() => {
|
|
1324
1324
|
setSessionId(crypto.randomUUID());
|
|
1325
|
+
setIsEscalated(false);
|
|
1326
|
+
if (escalationWsRef.current) {
|
|
1327
|
+
escalationWsRef.current.close();
|
|
1328
|
+
escalationWsRef.current = null;
|
|
1329
|
+
}
|
|
1325
1330
|
}, []);
|
|
1326
1331
|
const streamIntervals = React4.useRef({});
|
|
1327
1332
|
const isEmpty = messages.length === 0;
|
|
@@ -1555,12 +1560,21 @@ function ChatPanel({
|
|
|
1555
1560
|
try {
|
|
1556
1561
|
const data = JSON.parse(event.data);
|
|
1557
1562
|
if (data.type === "agent_message") {
|
|
1558
|
-
setMessages((prev) =>
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1563
|
+
setMessages((prev) => {
|
|
1564
|
+
const content = data.content;
|
|
1565
|
+
const recentMessages = prev.slice(-5);
|
|
1566
|
+
const isDuplicate = recentMessages.some((m) => m.content === content);
|
|
1567
|
+
if (isDuplicate) {
|
|
1568
|
+
console.debug("[KiteChat] Skipping duplicate agent message");
|
|
1569
|
+
return prev;
|
|
1570
|
+
}
|
|
1571
|
+
return [...prev, {
|
|
1572
|
+
id: Date.now(),
|
|
1573
|
+
role: "agent",
|
|
1574
|
+
kind: "text",
|
|
1575
|
+
content
|
|
1576
|
+
}];
|
|
1577
|
+
});
|
|
1564
1578
|
} else if (data.type === "error") {
|
|
1565
1579
|
console.error("[KiteChat] Escalation error:", data.message);
|
|
1566
1580
|
}
|
|
@@ -1605,7 +1619,7 @@ function ChatPanel({
|
|
|
1605
1619
|
}
|
|
1606
1620
|
}, [isEscalated, sessionId, connectToEscalationWs]);
|
|
1607
1621
|
function streamAssistantMessage(messageId, fullText, followups) {
|
|
1608
|
-
let textToStream = fullText;
|
|
1622
|
+
let textToStream = fullText || "";
|
|
1609
1623
|
let extractedFollowups = followups;
|
|
1610
1624
|
if (fullText && fullText.startsWith("{") && fullText.includes('"response"')) {
|
|
1611
1625
|
try {
|
|
@@ -1905,6 +1919,12 @@ function ChatPanel({
|
|
|
1905
1919
|
if (data.status === "thinking") {
|
|
1906
1920
|
setPhase("thinking");
|
|
1907
1921
|
setProgressSteps([{ message: data.message, completed: false }]);
|
|
1922
|
+
} else if (data.status === "searching") {
|
|
1923
|
+
setPhase("thinking");
|
|
1924
|
+
setProgressSteps([{ message: data.message || "Searching knowledge base...", completed: false }]);
|
|
1925
|
+
} else if (data.status === "evaluating") {
|
|
1926
|
+
setPhase("thinking");
|
|
1927
|
+
setProgressSteps([{ message: data.message || "Evaluating sources...", completed: false }]);
|
|
1908
1928
|
} else if (data.status === "executing") {
|
|
1909
1929
|
setPhase("executing");
|
|
1910
1930
|
setProgressSteps((prev) => {
|
|
@@ -2006,7 +2026,7 @@ function ChatPanel({
|
|
|
2006
2026
|
setMessages((prev) => [...prev, assistantMessage]);
|
|
2007
2027
|
streamAssistantMessage(
|
|
2008
2028
|
assistantMessageId,
|
|
2009
|
-
agentResponse.response,
|
|
2029
|
+
agentResponse.response || "Action completed successfully.",
|
|
2010
2030
|
agentResponse.followups
|
|
2011
2031
|
);
|
|
2012
2032
|
streamCompleted = true;
|
|
@@ -2028,7 +2048,7 @@ function ChatPanel({
|
|
|
2028
2048
|
setMessages((prev) => [...prev, assistantMessage]);
|
|
2029
2049
|
streamAssistantMessage(
|
|
2030
2050
|
assistantMessageId,
|
|
2031
|
-
agentResponse.response,
|
|
2051
|
+
agentResponse.response || agentResponse.message || "",
|
|
2032
2052
|
agentResponse.followups
|
|
2033
2053
|
);
|
|
2034
2054
|
streamCompleted = true;
|
|
@@ -2064,6 +2084,10 @@ function ChatPanel({
|
|
|
2064
2084
|
content: data.message || "You've been connected to our support queue. An agent will be with you shortly."
|
|
2065
2085
|
};
|
|
2066
2086
|
setMessages((prev) => [...prev, escalationMessage]);
|
|
2087
|
+
} else if (eventType === "token") {
|
|
2088
|
+
if (process.env.NODE_ENV === "development") {
|
|
2089
|
+
console.debug("[SSE] Token delta:", data.delta?.length || 0, "chars");
|
|
2090
|
+
}
|
|
2067
2091
|
}
|
|
2068
2092
|
} catch (parseError) {
|
|
2069
2093
|
console.error("Failed to parse SSE event:", parseError);
|
package/dist/auto.js
CHANGED
|
@@ -1321,6 +1321,11 @@ function ChatPanel({
|
|
|
1321
1321
|
const escalationWsRef = React4.useRef(null);
|
|
1322
1322
|
const resetSession = React4.useCallback(() => {
|
|
1323
1323
|
setSessionId(crypto.randomUUID());
|
|
1324
|
+
setIsEscalated(false);
|
|
1325
|
+
if (escalationWsRef.current) {
|
|
1326
|
+
escalationWsRef.current.close();
|
|
1327
|
+
escalationWsRef.current = null;
|
|
1328
|
+
}
|
|
1324
1329
|
}, []);
|
|
1325
1330
|
const streamIntervals = React4.useRef({});
|
|
1326
1331
|
const isEmpty = messages.length === 0;
|
|
@@ -1554,12 +1559,21 @@ function ChatPanel({
|
|
|
1554
1559
|
try {
|
|
1555
1560
|
const data = JSON.parse(event.data);
|
|
1556
1561
|
if (data.type === "agent_message") {
|
|
1557
|
-
setMessages((prev) =>
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1562
|
+
setMessages((prev) => {
|
|
1563
|
+
const content = data.content;
|
|
1564
|
+
const recentMessages = prev.slice(-5);
|
|
1565
|
+
const isDuplicate = recentMessages.some((m) => m.content === content);
|
|
1566
|
+
if (isDuplicate) {
|
|
1567
|
+
console.debug("[KiteChat] Skipping duplicate agent message");
|
|
1568
|
+
return prev;
|
|
1569
|
+
}
|
|
1570
|
+
return [...prev, {
|
|
1571
|
+
id: Date.now(),
|
|
1572
|
+
role: "agent",
|
|
1573
|
+
kind: "text",
|
|
1574
|
+
content
|
|
1575
|
+
}];
|
|
1576
|
+
});
|
|
1563
1577
|
} else if (data.type === "error") {
|
|
1564
1578
|
console.error("[KiteChat] Escalation error:", data.message);
|
|
1565
1579
|
}
|
|
@@ -1604,7 +1618,7 @@ function ChatPanel({
|
|
|
1604
1618
|
}
|
|
1605
1619
|
}, [isEscalated, sessionId, connectToEscalationWs]);
|
|
1606
1620
|
function streamAssistantMessage(messageId, fullText, followups) {
|
|
1607
|
-
let textToStream = fullText;
|
|
1621
|
+
let textToStream = fullText || "";
|
|
1608
1622
|
let extractedFollowups = followups;
|
|
1609
1623
|
if (fullText && fullText.startsWith("{") && fullText.includes('"response"')) {
|
|
1610
1624
|
try {
|
|
@@ -1904,6 +1918,12 @@ function ChatPanel({
|
|
|
1904
1918
|
if (data.status === "thinking") {
|
|
1905
1919
|
setPhase("thinking");
|
|
1906
1920
|
setProgressSteps([{ message: data.message, completed: false }]);
|
|
1921
|
+
} else if (data.status === "searching") {
|
|
1922
|
+
setPhase("thinking");
|
|
1923
|
+
setProgressSteps([{ message: data.message || "Searching knowledge base...", completed: false }]);
|
|
1924
|
+
} else if (data.status === "evaluating") {
|
|
1925
|
+
setPhase("thinking");
|
|
1926
|
+
setProgressSteps([{ message: data.message || "Evaluating sources...", completed: false }]);
|
|
1907
1927
|
} else if (data.status === "executing") {
|
|
1908
1928
|
setPhase("executing");
|
|
1909
1929
|
setProgressSteps((prev) => {
|
|
@@ -2005,7 +2025,7 @@ function ChatPanel({
|
|
|
2005
2025
|
setMessages((prev) => [...prev, assistantMessage]);
|
|
2006
2026
|
streamAssistantMessage(
|
|
2007
2027
|
assistantMessageId,
|
|
2008
|
-
agentResponse.response,
|
|
2028
|
+
agentResponse.response || "Action completed successfully.",
|
|
2009
2029
|
agentResponse.followups
|
|
2010
2030
|
);
|
|
2011
2031
|
streamCompleted = true;
|
|
@@ -2027,7 +2047,7 @@ function ChatPanel({
|
|
|
2027
2047
|
setMessages((prev) => [...prev, assistantMessage]);
|
|
2028
2048
|
streamAssistantMessage(
|
|
2029
2049
|
assistantMessageId,
|
|
2030
|
-
agentResponse.response,
|
|
2050
|
+
agentResponse.response || agentResponse.message || "",
|
|
2031
2051
|
agentResponse.followups
|
|
2032
2052
|
);
|
|
2033
2053
|
streamCompleted = true;
|
|
@@ -2063,6 +2083,10 @@ function ChatPanel({
|
|
|
2063
2083
|
content: data.message || "You've been connected to our support queue. An agent will be with you shortly."
|
|
2064
2084
|
};
|
|
2065
2085
|
setMessages((prev) => [...prev, escalationMessage]);
|
|
2086
|
+
} else if (eventType === "token") {
|
|
2087
|
+
if (process.env.NODE_ENV === "development") {
|
|
2088
|
+
console.debug("[SSE] Token delta:", data.delta?.length || 0, "chars");
|
|
2089
|
+
}
|
|
2066
2090
|
}
|
|
2067
2091
|
} catch (parseError) {
|
|
2068
2092
|
console.error("Failed to parse SSE event:", parseError);
|