@codehz/ai 0.1.6 → 0.1.7
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.mjs +77 -69
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/adapters/messages.ts +11 -1
package/dist/index.mjs
CHANGED
|
@@ -1539,78 +1539,86 @@ var MessagesAdapter = class extends AdapterBase {
|
|
|
1539
1539
|
buildRequest(request) {
|
|
1540
1540
|
const messages = [];
|
|
1541
1541
|
let systemPrompt;
|
|
1542
|
+
let pendingToolResultMessage;
|
|
1542
1543
|
if (request.instructions) systemPrompt = instructionsToMessagesText(request.instructions);
|
|
1543
|
-
for (const item of request.input)
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
role
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
role
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
content
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
thinking: contentBlocksToText(ensureMessagesReasoningBlocks(item.content, "reasoning content"))
|
|
1591
|
-
};
|
|
1592
|
-
const lastMsg = messages[messages.length - 1];
|
|
1593
|
-
if (lastMsg && lastMsg.role === "assistant" && typeof lastMsg.content !== "string") lastMsg.content.push(block);
|
|
1594
|
-
else messages.push({
|
|
1595
|
-
role: "assistant",
|
|
1596
|
-
content: [block]
|
|
1597
|
-
});
|
|
1598
|
-
break;
|
|
1599
|
-
}
|
|
1600
|
-
case "opaque":
|
|
1601
|
-
if (item.purpose === "replay" && typeof item.payload === "object" && item.payload !== null) {
|
|
1602
|
-
const payload = item.payload;
|
|
1603
|
-
if (payload.role === "assistant" && Array.isArray(payload.content)) {
|
|
1604
|
-
if (payload.content.every((b) => typeof b === "object" && b !== null && "type" in b && (b.type === "text" || b.type === "thinking" || b.type === "redacted_thinking" || b.type === "tool_use" || b.type === "tool_result"))) {
|
|
1605
|
-
rollbackTrailingAssistantMessages$2(messages);
|
|
1606
|
-
messages.push({
|
|
1607
|
-
role: "assistant",
|
|
1608
|
-
content: payload.content
|
|
1609
|
-
});
|
|
1610
|
-
}
|
|
1544
|
+
for (const item of request.input) {
|
|
1545
|
+
if (item.type !== "tool_result") pendingToolResultMessage = void 0;
|
|
1546
|
+
switch (item.type) {
|
|
1547
|
+
case "message": {
|
|
1548
|
+
const role = item.role === "user" ? "user" : "assistant";
|
|
1549
|
+
const supportedContent = ensureMessagesTextBlocks(item.content, `input message (${item.role}) content`);
|
|
1550
|
+
if (supportedContent.length === 1 && supportedContent[0]?.type === "text") messages.push({
|
|
1551
|
+
role,
|
|
1552
|
+
content: supportedContent[0].text
|
|
1553
|
+
});
|
|
1554
|
+
else messages.push({
|
|
1555
|
+
role,
|
|
1556
|
+
content: supportedContent.map(canonicalToMessagesBlock)
|
|
1557
|
+
});
|
|
1558
|
+
break;
|
|
1559
|
+
}
|
|
1560
|
+
case "tool_call": {
|
|
1561
|
+
const lastMsg = messages[messages.length - 1];
|
|
1562
|
+
const toolBlock = {
|
|
1563
|
+
type: "tool_use",
|
|
1564
|
+
id: item.id,
|
|
1565
|
+
name: item.name,
|
|
1566
|
+
input: item.argumentsJson ?? parseToolUseInput(item.argumentsText)
|
|
1567
|
+
};
|
|
1568
|
+
if (lastMsg && lastMsg.role === "assistant" && typeof lastMsg.content !== "string") lastMsg.content.push(toolBlock);
|
|
1569
|
+
else messages.push({
|
|
1570
|
+
role: "assistant",
|
|
1571
|
+
content: [toolBlock]
|
|
1572
|
+
});
|
|
1573
|
+
break;
|
|
1574
|
+
}
|
|
1575
|
+
case "tool_result": {
|
|
1576
|
+
assertMessagesToolResultOutcome(item.outcome);
|
|
1577
|
+
const content = ensureMessagesTextBlocks(item.content, `tool_result ${item.callId} content`).map(blockToText).join("\n");
|
|
1578
|
+
const block = {
|
|
1579
|
+
type: "tool_result",
|
|
1580
|
+
tool_use_id: item.callId,
|
|
1581
|
+
content,
|
|
1582
|
+
is_error: item.outcome === "error"
|
|
1583
|
+
};
|
|
1584
|
+
if (pendingToolResultMessage && typeof pendingToolResultMessage.content !== "string") pendingToolResultMessage.content.push(block);
|
|
1585
|
+
else {
|
|
1586
|
+
pendingToolResultMessage = {
|
|
1587
|
+
role: "user",
|
|
1588
|
+
content: [block]
|
|
1589
|
+
};
|
|
1590
|
+
messages.push(pendingToolResultMessage);
|
|
1611
1591
|
}
|
|
1592
|
+
break;
|
|
1612
1593
|
}
|
|
1613
|
-
|
|
1594
|
+
case "reasoning": {
|
|
1595
|
+
const block = {
|
|
1596
|
+
type: "thinking",
|
|
1597
|
+
thinking: contentBlocksToText(ensureMessagesReasoningBlocks(item.content, "reasoning content"))
|
|
1598
|
+
};
|
|
1599
|
+
const lastMsg = messages[messages.length - 1];
|
|
1600
|
+
if (lastMsg && lastMsg.role === "assistant" && typeof lastMsg.content !== "string") lastMsg.content.push(block);
|
|
1601
|
+
else messages.push({
|
|
1602
|
+
role: "assistant",
|
|
1603
|
+
content: [block]
|
|
1604
|
+
});
|
|
1605
|
+
break;
|
|
1606
|
+
}
|
|
1607
|
+
case "opaque":
|
|
1608
|
+
if (item.purpose === "replay" && typeof item.payload === "object" && item.payload !== null) {
|
|
1609
|
+
const payload = item.payload;
|
|
1610
|
+
if (payload.role === "assistant" && Array.isArray(payload.content)) {
|
|
1611
|
+
if (payload.content.every((b) => typeof b === "object" && b !== null && "type" in b && (b.type === "text" || b.type === "thinking" || b.type === "redacted_thinking" || b.type === "tool_use" || b.type === "tool_result"))) {
|
|
1612
|
+
rollbackTrailingAssistantMessages$2(messages);
|
|
1613
|
+
messages.push({
|
|
1614
|
+
role: "assistant",
|
|
1615
|
+
content: payload.content
|
|
1616
|
+
});
|
|
1617
|
+
}
|
|
1618
|
+
}
|
|
1619
|
+
}
|
|
1620
|
+
break;
|
|
1621
|
+
}
|
|
1614
1622
|
}
|
|
1615
1623
|
const body = {
|
|
1616
1624
|
model: request.model,
|