@copilotz/chat-adapter 0.9.31 → 0.9.32
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.js +29 -5
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1605,15 +1605,36 @@ var prepareHydratedMessages = async (rawMessages, options = {}) => {
|
|
|
1605
1605
|
};
|
|
1606
1606
|
};
|
|
1607
1607
|
|
|
1608
|
+
// src/streamEvents.ts
|
|
1609
|
+
var isRecord2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1610
|
+
var hasValues = (value) => Array.isArray(value) && value.length > 0;
|
|
1611
|
+
var getStreamEventPayload = (event) => {
|
|
1612
|
+
if (!isRecord2(event)) return event;
|
|
1613
|
+
return "payload" in event ? event.payload : event;
|
|
1614
|
+
};
|
|
1615
|
+
var isTerminalEmptyLlmResultEvent = (event) => {
|
|
1616
|
+
if (!isRecord2(event) || event.type !== "LLM_RESULT") return false;
|
|
1617
|
+
const payload = getStreamEventPayload(event);
|
|
1618
|
+
if (!isRecord2(payload)) return false;
|
|
1619
|
+
if (payload.answer !== "") return false;
|
|
1620
|
+
if (payload.finishReason === "tool_calls") return false;
|
|
1621
|
+
if (hasValues(payload.toolCalls)) return false;
|
|
1622
|
+
const metadata = isRecord2(event.metadata) ? event.metadata : {};
|
|
1623
|
+
const routing = isRecord2(metadata.routing) ? metadata.routing : {};
|
|
1624
|
+
if (hasValues(routing.routeTo) || hasValues(routing.askTo)) return false;
|
|
1625
|
+
if (hasValues(metadata.targetQueue)) return false;
|
|
1626
|
+
return true;
|
|
1627
|
+
};
|
|
1628
|
+
|
|
1608
1629
|
// src/useCopilotzChat.ts
|
|
1609
1630
|
var nowTs = () => Date.now();
|
|
1610
1631
|
var generateId = () => globalThis.crypto?.randomUUID?.() ?? `id-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
1611
1632
|
var isAbortError = (error) => error instanceof DOMException && error.name === "AbortError" || typeof error === "object" && error !== null && "name" in error && error.name === "AbortError";
|
|
1612
|
-
var getEventPayload = (event) => event
|
|
1633
|
+
var getEventPayload = (event) => getStreamEventPayload(event);
|
|
1613
1634
|
var getEventSenderType = (payload) => payload?.senderType || payload?.sender?.type;
|
|
1614
|
-
var
|
|
1635
|
+
var isRecord3 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1615
1636
|
var normalizeThreadTag = (value) => {
|
|
1616
|
-
if (!
|
|
1637
|
+
if (!isRecord3(value)) return null;
|
|
1617
1638
|
const id = typeof value.id === "string" ? value.id.trim() : "";
|
|
1618
1639
|
const name = typeof value.name === "string" ? value.name.trim() : "";
|
|
1619
1640
|
const color = typeof value.color === "string" && value.color.trim() ? value.color.trim() : void 0;
|
|
@@ -1621,7 +1642,7 @@ var normalizeThreadTag = (value) => {
|
|
|
1621
1642
|
return color ? { id, name, color } : { id, name };
|
|
1622
1643
|
};
|
|
1623
1644
|
var getThreadTagsFromMetadata = (metadata) => {
|
|
1624
|
-
if (!
|
|
1645
|
+
if (!isRecord3(metadata) || !isRecord3(metadata.public)) return [];
|
|
1625
1646
|
const tags = metadata.public.tags;
|
|
1626
1647
|
if (!Array.isArray(tags)) return [];
|
|
1627
1648
|
return tags.map(normalizeThreadTag).filter((tag) => !!tag);
|
|
@@ -1629,7 +1650,7 @@ var getThreadTagsFromMetadata = (metadata) => {
|
|
|
1629
1650
|
var patchMetadataPublicTags = (metadata, tags) => ({
|
|
1630
1651
|
...metadata ?? {},
|
|
1631
1652
|
public: {
|
|
1632
|
-
...
|
|
1653
|
+
...isRecord3(metadata?.public) ? metadata.public : {},
|
|
1633
1654
|
tags
|
|
1634
1655
|
}
|
|
1635
1656
|
});
|
|
@@ -2519,6 +2540,9 @@ function useCopilotz({ userId, userName, userAvatar, assistantName, agentOptions
|
|
|
2519
2540
|
if (type === "LLM_RESULT") {
|
|
2520
2541
|
const finalAnswer = typeof payload?.answer === "string" ? payload.answer : void 0;
|
|
2521
2542
|
finalizeActiveAssistantTurn(finalAnswer);
|
|
2543
|
+
if (isTerminalEmptyLlmResultEvent(event)) {
|
|
2544
|
+
finalizeStreamingPlaceholders();
|
|
2545
|
+
}
|
|
2522
2546
|
return;
|
|
2523
2547
|
}
|
|
2524
2548
|
if (type === "MESSAGE" || type === "NEW_MESSAGE") {
|