ai 3.1.8 → 3.1.10
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 +87 -1
- package/dist/index.d.ts +87 -1
- package/dist/index.js +60 -20
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +58 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
- package/react/dist/index.d.mts +34 -33
- package/react/dist/index.d.ts +34 -33
- package/react/dist/index.js +1 -2
- package/react/dist/index.js.map +1 -1
- package/react/dist/index.mjs +1 -2
- package/react/dist/index.mjs.map +1 -1
- package/svelte/dist/index.d.mts +80 -1
- package/svelte/dist/index.d.ts +80 -1
- package/svelte/dist/index.js +152 -0
- package/svelte/dist/index.js.map +1 -1
- package/svelte/dist/index.mjs +151 -0
- package/svelte/dist/index.mjs.map +1 -1
package/svelte/dist/index.mjs
CHANGED
@@ -1591,7 +1591,158 @@ function useCompletion({
|
|
1591
1591
|
data: streamData
|
1592
1592
|
};
|
1593
1593
|
}
|
1594
|
+
|
1595
|
+
// svelte/use-assistant.ts
|
1596
|
+
import { isAbortError } from "@ai-sdk/provider-utils";
|
1597
|
+
import { get as get3, writable as writable3 } from "svelte/store";
|
1598
|
+
var uniqueId3 = 0;
|
1599
|
+
var store3 = {};
|
1600
|
+
function useAssistant({
|
1601
|
+
api,
|
1602
|
+
threadId: threadIdParam,
|
1603
|
+
credentials,
|
1604
|
+
headers,
|
1605
|
+
body,
|
1606
|
+
onError
|
1607
|
+
}) {
|
1608
|
+
const threadIdStore = writable3(threadIdParam);
|
1609
|
+
const key = `${api}|${threadIdParam != null ? threadIdParam : `completion-${uniqueId3++}`}`;
|
1610
|
+
const messages = writable3(store3[key] || []);
|
1611
|
+
const input = writable3("");
|
1612
|
+
const status = writable3("awaiting_message");
|
1613
|
+
const error = writable3(void 0);
|
1614
|
+
let abortController = null;
|
1615
|
+
const mutateMessages = (newMessages) => {
|
1616
|
+
store3[key] = newMessages;
|
1617
|
+
messages.set(newMessages);
|
1618
|
+
};
|
1619
|
+
async function append(message, requestOptions) {
|
1620
|
+
var _a, _b, _c, _d;
|
1621
|
+
status.set("in_progress");
|
1622
|
+
abortController = new AbortController();
|
1623
|
+
mutateMessages([
|
1624
|
+
...get3(messages),
|
1625
|
+
{ ...message, id: (_a = message.id) != null ? _a : generateId() }
|
1626
|
+
]);
|
1627
|
+
input.set("");
|
1628
|
+
try {
|
1629
|
+
const result = await fetch(api, {
|
1630
|
+
method: "POST",
|
1631
|
+
credentials,
|
1632
|
+
signal: abortController.signal,
|
1633
|
+
headers: { "Content-Type": "application/json", ...headers },
|
1634
|
+
body: JSON.stringify({
|
1635
|
+
...body,
|
1636
|
+
// always use user-provided threadId when available:
|
1637
|
+
threadId: (_b = threadIdParam != null ? threadIdParam : get3(threadIdStore)) != null ? _b : null,
|
1638
|
+
message: message.content,
|
1639
|
+
// optional request data:
|
1640
|
+
data: requestOptions == null ? void 0 : requestOptions.data
|
1641
|
+
})
|
1642
|
+
});
|
1643
|
+
if (result.body == null) {
|
1644
|
+
throw new Error("The response body is empty.");
|
1645
|
+
}
|
1646
|
+
for await (const { type, value } of readDataStream(
|
1647
|
+
result.body.getReader()
|
1648
|
+
)) {
|
1649
|
+
switch (type) {
|
1650
|
+
case "assistant_message": {
|
1651
|
+
mutateMessages([
|
1652
|
+
...get3(messages),
|
1653
|
+
{
|
1654
|
+
id: value.id,
|
1655
|
+
role: value.role,
|
1656
|
+
content: value.content[0].text.value
|
1657
|
+
}
|
1658
|
+
]);
|
1659
|
+
break;
|
1660
|
+
}
|
1661
|
+
case "text": {
|
1662
|
+
mutateMessages(
|
1663
|
+
get3(messages).map((msg, index, array) => {
|
1664
|
+
if (index === array.length - 1) {
|
1665
|
+
return { ...msg, content: msg.content + value };
|
1666
|
+
}
|
1667
|
+
return msg;
|
1668
|
+
})
|
1669
|
+
);
|
1670
|
+
break;
|
1671
|
+
}
|
1672
|
+
case "data_message": {
|
1673
|
+
mutateMessages([
|
1674
|
+
...get3(messages),
|
1675
|
+
{
|
1676
|
+
id: (_c = value.id) != null ? _c : generateId(),
|
1677
|
+
role: "data",
|
1678
|
+
content: "",
|
1679
|
+
data: value.data
|
1680
|
+
}
|
1681
|
+
]);
|
1682
|
+
break;
|
1683
|
+
}
|
1684
|
+
case "assistant_control_data": {
|
1685
|
+
threadIdStore.set(value.threadId);
|
1686
|
+
mutateMessages(
|
1687
|
+
get3(messages).map((msg, index, array) => {
|
1688
|
+
if (index === array.length - 1) {
|
1689
|
+
return { ...msg, id: value.messageId };
|
1690
|
+
}
|
1691
|
+
return msg;
|
1692
|
+
})
|
1693
|
+
);
|
1694
|
+
break;
|
1695
|
+
}
|
1696
|
+
case "error": {
|
1697
|
+
error.set(new Error(value));
|
1698
|
+
break;
|
1699
|
+
}
|
1700
|
+
}
|
1701
|
+
}
|
1702
|
+
} catch (err) {
|
1703
|
+
if (isAbortError(error) && ((_d = abortController == null ? void 0 : abortController.signal) == null ? void 0 : _d.aborted)) {
|
1704
|
+
abortController = null;
|
1705
|
+
return;
|
1706
|
+
}
|
1707
|
+
if (onError && err instanceof Error) {
|
1708
|
+
onError(err);
|
1709
|
+
}
|
1710
|
+
error.set(err);
|
1711
|
+
} finally {
|
1712
|
+
abortController = null;
|
1713
|
+
status.set("awaiting_message");
|
1714
|
+
}
|
1715
|
+
}
|
1716
|
+
function setMessages(messages2) {
|
1717
|
+
mutateMessages(messages2);
|
1718
|
+
}
|
1719
|
+
function stop() {
|
1720
|
+
if (abortController) {
|
1721
|
+
abortController.abort();
|
1722
|
+
abortController = null;
|
1723
|
+
}
|
1724
|
+
}
|
1725
|
+
async function submitMessage(e, requestOptions) {
|
1726
|
+
e.preventDefault();
|
1727
|
+
const inputValue = get3(input);
|
1728
|
+
if (!inputValue)
|
1729
|
+
return;
|
1730
|
+
await append({ role: "user", content: inputValue }, requestOptions);
|
1731
|
+
}
|
1732
|
+
return {
|
1733
|
+
messages,
|
1734
|
+
error,
|
1735
|
+
threadId: threadIdStore,
|
1736
|
+
input,
|
1737
|
+
append,
|
1738
|
+
submitMessage,
|
1739
|
+
status,
|
1740
|
+
setMessages,
|
1741
|
+
stop
|
1742
|
+
};
|
1743
|
+
}
|
1594
1744
|
export {
|
1745
|
+
useAssistant,
|
1595
1746
|
useChat,
|
1596
1747
|
useCompletion
|
1597
1748
|
};
|