@copilotz/chat-adapter 0.9.31 → 0.9.33
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 +35 -5
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1285,6 +1285,7 @@ var applyToolResultUpdateToMessages = (messages, update, assistantPatch) => {
|
|
|
1285
1285
|
nextMessages[i] = {
|
|
1286
1286
|
...applyAssistantToolResult(message, {
|
|
1287
1287
|
...update.id ? { id: update.id } : {},
|
|
1288
|
+
...update.toolExecutionId ? { toolExecutionId: update.toolExecutionId } : {},
|
|
1288
1289
|
name: update.name ?? toolItem.toolName ?? toolItem.id,
|
|
1289
1290
|
status: update.status,
|
|
1290
1291
|
...update.result !== void 0 ? { result: update.result } : {},
|
|
@@ -1302,6 +1303,7 @@ var extractLiveToolCall = (payload) => {
|
|
|
1302
1303
|
const tool = expectRecord(toolCall.tool, "TOOL_CALL payload.toolCall.tool");
|
|
1303
1304
|
return {
|
|
1304
1305
|
id: expectString(toolCall.id, "TOOL_CALL payload.toolCall.id"),
|
|
1306
|
+
...typeof payloadRecord.toolExecutionId === "string" ? { toolExecutionId: payloadRecord.toolExecutionId } : {},
|
|
1305
1307
|
name: expectToolName(tool, "TOOL_CALL payload.toolCall.tool.id"),
|
|
1306
1308
|
arguments: expectToolArguments(toolCall.args, "TOOL_CALL payload.toolCall.args"),
|
|
1307
1309
|
status: toolCall.status === void 0 ? "running" : expectToolStatus(toolCall.status, "TOOL_CALL payload.toolCall.status"),
|
|
@@ -1325,6 +1327,7 @@ var extractToolCallsFromServerMessage = (msg) => {
|
|
|
1325
1327
|
const metadata = msg.metadata === null || msg.metadata === void 0 ? void 0 : expectRecord(msg.metadata, "message.metadata");
|
|
1326
1328
|
const topLevelToolCalls = readToolCallArray(msg.toolCalls, "message.toolCalls");
|
|
1327
1329
|
const metadataToolCalls = readToolCallArray(metadata?.toolCalls, "message.metadata.toolCalls");
|
|
1330
|
+
const messageToolExecutionId = typeof metadata?.toolExecutionId === "string" ? metadata.toolExecutionId : void 0;
|
|
1328
1331
|
const usedMetadataIndexes = /* @__PURE__ */ new Set();
|
|
1329
1332
|
const parsed = [];
|
|
1330
1333
|
const findMatchingMetadataIndex = (toolCall) => {
|
|
@@ -1342,6 +1345,7 @@ var extractToolCallsFromServerMessage = (msg) => {
|
|
|
1342
1345
|
const rawStatus = primary.status ?? secondary?.status;
|
|
1343
1346
|
return {
|
|
1344
1347
|
id,
|
|
1348
|
+
...typeof primary.toolExecutionId === "string" ? { toolExecutionId: primary.toolExecutionId } : typeof secondary?.toolExecutionId === "string" ? { toolExecutionId: secondary.toolExecutionId } : messageToolExecutionId ? { toolExecutionId: messageToolExecutionId } : {},
|
|
1345
1349
|
name,
|
|
1346
1350
|
arguments: expectToolArguments(argsRaw, "toolCall.args"),
|
|
1347
1351
|
...result !== void 0 ? { result } : {},
|
|
@@ -1374,6 +1378,7 @@ var extractToolResultUpdateFromMessage = (msg, now = () => Date.now()) => {
|
|
|
1374
1378
|
expectStringValue(msg.createdAt, "tool result message.createdAt");
|
|
1375
1379
|
return {
|
|
1376
1380
|
id: firstToolCall.id,
|
|
1381
|
+
...firstToolCall.toolExecutionId ? { toolExecutionId: firstToolCall.toolExecutionId } : {},
|
|
1377
1382
|
name: firstToolCall.name,
|
|
1378
1383
|
result: firstToolCall.result,
|
|
1379
1384
|
status: firstToolCall.status,
|
|
@@ -1513,6 +1518,7 @@ var convertServerMessage = (msg, options = {}) => {
|
|
|
1513
1518
|
const shouldRenderToolCalls = msg.senderType !== "tool";
|
|
1514
1519
|
const mappedToolCalls = parsedToolCalls.map((toolCall) => ({
|
|
1515
1520
|
id: toolCall.id ?? (options.createId ?? defaultCreateId)(),
|
|
1521
|
+
...toolCall.toolExecutionId ? { toolExecutionId: toolCall.toolExecutionId } : {},
|
|
1516
1522
|
name: toolCall.name,
|
|
1517
1523
|
arguments: toolCall.arguments,
|
|
1518
1524
|
status: toolCall.status,
|
|
@@ -1605,15 +1611,36 @@ var prepareHydratedMessages = async (rawMessages, options = {}) => {
|
|
|
1605
1611
|
};
|
|
1606
1612
|
};
|
|
1607
1613
|
|
|
1614
|
+
// src/streamEvents.ts
|
|
1615
|
+
var isRecord2 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1616
|
+
var hasValues = (value) => Array.isArray(value) && value.length > 0;
|
|
1617
|
+
var getStreamEventPayload = (event) => {
|
|
1618
|
+
if (!isRecord2(event)) return event;
|
|
1619
|
+
return "payload" in event ? event.payload : event;
|
|
1620
|
+
};
|
|
1621
|
+
var isTerminalEmptyLlmResultEvent = (event) => {
|
|
1622
|
+
if (!isRecord2(event) || event.type !== "LLM_RESULT") return false;
|
|
1623
|
+
const payload = getStreamEventPayload(event);
|
|
1624
|
+
if (!isRecord2(payload)) return false;
|
|
1625
|
+
if (payload.answer !== "") return false;
|
|
1626
|
+
if (payload.finishReason === "tool_calls") return false;
|
|
1627
|
+
if (hasValues(payload.toolCalls)) return false;
|
|
1628
|
+
const metadata = isRecord2(event.metadata) ? event.metadata : {};
|
|
1629
|
+
const routing = isRecord2(metadata.routing) ? metadata.routing : {};
|
|
1630
|
+
if (hasValues(routing.routeTo) || hasValues(routing.askTo)) return false;
|
|
1631
|
+
if (hasValues(metadata.targetQueue)) return false;
|
|
1632
|
+
return true;
|
|
1633
|
+
};
|
|
1634
|
+
|
|
1608
1635
|
// src/useCopilotzChat.ts
|
|
1609
1636
|
var nowTs = () => Date.now();
|
|
1610
1637
|
var generateId = () => globalThis.crypto?.randomUUID?.() ?? `id-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
|
|
1611
1638
|
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
|
|
1639
|
+
var getEventPayload = (event) => getStreamEventPayload(event);
|
|
1613
1640
|
var getEventSenderType = (payload) => payload?.senderType || payload?.sender?.type;
|
|
1614
|
-
var
|
|
1641
|
+
var isRecord3 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
1615
1642
|
var normalizeThreadTag = (value) => {
|
|
1616
|
-
if (!
|
|
1643
|
+
if (!isRecord3(value)) return null;
|
|
1617
1644
|
const id = typeof value.id === "string" ? value.id.trim() : "";
|
|
1618
1645
|
const name = typeof value.name === "string" ? value.name.trim() : "";
|
|
1619
1646
|
const color = typeof value.color === "string" && value.color.trim() ? value.color.trim() : void 0;
|
|
@@ -1621,7 +1648,7 @@ var normalizeThreadTag = (value) => {
|
|
|
1621
1648
|
return color ? { id, name, color } : { id, name };
|
|
1622
1649
|
};
|
|
1623
1650
|
var getThreadTagsFromMetadata = (metadata) => {
|
|
1624
|
-
if (!
|
|
1651
|
+
if (!isRecord3(metadata) || !isRecord3(metadata.public)) return [];
|
|
1625
1652
|
const tags = metadata.public.tags;
|
|
1626
1653
|
if (!Array.isArray(tags)) return [];
|
|
1627
1654
|
return tags.map(normalizeThreadTag).filter((tag) => !!tag);
|
|
@@ -1629,7 +1656,7 @@ var getThreadTagsFromMetadata = (metadata) => {
|
|
|
1629
1656
|
var patchMetadataPublicTags = (metadata, tags) => ({
|
|
1630
1657
|
...metadata ?? {},
|
|
1631
1658
|
public: {
|
|
1632
|
-
...
|
|
1659
|
+
...isRecord3(metadata?.public) ? metadata.public : {},
|
|
1633
1660
|
tags
|
|
1634
1661
|
}
|
|
1635
1662
|
});
|
|
@@ -2519,6 +2546,9 @@ function useCopilotz({ userId, userName, userAvatar, assistantName, agentOptions
|
|
|
2519
2546
|
if (type === "LLM_RESULT") {
|
|
2520
2547
|
const finalAnswer = typeof payload?.answer === "string" ? payload.answer : void 0;
|
|
2521
2548
|
finalizeActiveAssistantTurn(finalAnswer);
|
|
2549
|
+
if (isTerminalEmptyLlmResultEvent(event)) {
|
|
2550
|
+
finalizeStreamingPlaceholders();
|
|
2551
|
+
}
|
|
2522
2552
|
return;
|
|
2523
2553
|
}
|
|
2524
2554
|
if (type === "MESSAGE" || type === "NEW_MESSAGE") {
|