@assistant-ui/react-ai-sdk 0.10.14 → 0.10.16

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.
Files changed (57) hide show
  1. package/dist/converters/fromLanguageModelTools.d.ts +7 -0
  2. package/dist/converters/fromLanguageModelTools.d.ts.map +1 -0
  3. package/dist/converters/fromLanguageModelTools.js +16 -0
  4. package/dist/converters/fromLanguageModelTools.js.map +1 -0
  5. package/dist/converters/index.d.ts +4 -0
  6. package/dist/converters/index.d.ts.map +1 -0
  7. package/dist/converters/index.js +10 -0
  8. package/dist/converters/index.js.map +1 -0
  9. package/dist/converters/toLanguageModelMessages.d.ts +9 -0
  10. package/dist/converters/toLanguageModelMessages.d.ts.map +1 -0
  11. package/dist/converters/toLanguageModelMessages.js +143 -0
  12. package/dist/converters/toLanguageModelMessages.js.map +1 -0
  13. package/dist/converters/toLanguageModelTools.d.ts +7 -0
  14. package/dist/converters/toLanguageModelTools.d.ts.map +1 -0
  15. package/dist/converters/toLanguageModelTools.js +15 -0
  16. package/dist/converters/toLanguageModelTools.js.map +1 -0
  17. package/dist/dangerous-in-browser/DangerousInBrowserAdapter.d.ts +9 -0
  18. package/dist/dangerous-in-browser/DangerousInBrowserAdapter.d.ts.map +1 -0
  19. package/dist/dangerous-in-browser/DangerousInBrowserAdapter.js +38 -0
  20. package/dist/dangerous-in-browser/DangerousInBrowserAdapter.js.map +1 -0
  21. package/dist/dangerous-in-browser/createEdgeRuntimeAPI.d.ts +56 -0
  22. package/dist/dangerous-in-browser/createEdgeRuntimeAPI.d.ts.map +1 -0
  23. package/dist/dangerous-in-browser/createEdgeRuntimeAPI.js +65 -0
  24. package/dist/dangerous-in-browser/createEdgeRuntimeAPI.js.map +1 -0
  25. package/dist/dangerous-in-browser/index.d.ts +2 -0
  26. package/dist/dangerous-in-browser/index.d.ts.map +1 -0
  27. package/dist/dangerous-in-browser/index.js +8 -0
  28. package/dist/dangerous-in-browser/index.js.map +1 -0
  29. package/dist/dangerous-in-browser/useDangerousInBrowserRuntime.d.ts +5 -0
  30. package/dist/dangerous-in-browser/useDangerousInBrowserRuntime.d.ts.map +1 -0
  31. package/dist/dangerous-in-browser/useDangerousInBrowserRuntime.js +21 -0
  32. package/dist/dangerous-in-browser/useDangerousInBrowserRuntime.js.map +1 -0
  33. package/dist/frontendTools.d.ts +1 -1
  34. package/dist/index.d.ts +2 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +3 -13
  37. package/dist/index.js.map +1 -1
  38. package/dist/ui/utils/convertMessage.js.map +1 -1
  39. package/dist/ui/utils/sliceMessagesUntil.js +1 -1
  40. package/dist/ui/utils/sliceMessagesUntil.js.map +1 -1
  41. package/dist/useChatRuntime.d.ts +15 -3
  42. package/dist/useChatRuntime.d.ts.map +1 -1
  43. package/dist/useChatRuntime.js +99 -5
  44. package/dist/useChatRuntime.js.map +1 -1
  45. package/package.json +11 -7
  46. package/src/converters/fromLanguageModelTools.ts +19 -0
  47. package/src/converters/index.ts +3 -0
  48. package/src/converters/toLanguageModelMessages.ts +185 -0
  49. package/src/converters/toLanguageModelTools.ts +21 -0
  50. package/src/dangerous-in-browser/DangerousInBrowserAdapter.ts +41 -0
  51. package/src/dangerous-in-browser/createEdgeRuntimeAPI.ts +145 -0
  52. package/src/dangerous-in-browser/index.ts +4 -0
  53. package/src/dangerous-in-browser/useDangerousInBrowserRuntime.ts +26 -0
  54. package/src/index.ts +2 -8
  55. package/src/ui/utils/convertMessage.ts +12 -12
  56. package/src/ui/utils/sliceMessagesUntil.tsx +1 -1
  57. package/src/useChatRuntime.ts +156 -12
@@ -0,0 +1,7 @@
1
+ import { LanguageModelV1FunctionTool } from "@ai-sdk/provider";
2
+ import { Tool } from "@assistant-ui/react";
3
+ /**
4
+ * @deprecated This is an internal API and may change without notice.
5
+ */
6
+ export declare const fromLanguageModelTools: (tools: LanguageModelV1FunctionTool[]) => Record<string, Tool<any, any>>;
7
+ //# sourceMappingURL=fromLanguageModelTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fromLanguageModelTools.d.ts","sourceRoot":"","sources":["../../src/converters/fromLanguageModelTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,sBAAsB,GACjC,OAAO,2BAA2B,EAAE,KACnC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAU/B,CAAC"}
@@ -0,0 +1,16 @@
1
+ // src/converters/fromLanguageModelTools.ts
2
+ var fromLanguageModelTools = (tools) => {
3
+ return Object.fromEntries(
4
+ tools.map((tool) => [
5
+ tool.name,
6
+ {
7
+ description: tool.description,
8
+ parameters: tool.parameters
9
+ }
10
+ ])
11
+ );
12
+ };
13
+ export {
14
+ fromLanguageModelTools
15
+ };
16
+ //# sourceMappingURL=fromLanguageModelTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/converters/fromLanguageModelTools.ts"],"sourcesContent":["import { LanguageModelV1FunctionTool } from \"@ai-sdk/provider\";\nimport { Tool } from \"@assistant-ui/react\";\n\n/**\n * @deprecated This is an internal API and may change without notice.\n */\nexport const fromLanguageModelTools = (\n tools: LanguageModelV1FunctionTool[],\n): Record<string, Tool<any, any>> => {\n return Object.fromEntries(\n tools.map((tool) => [\n tool.name,\n {\n description: tool.description,\n parameters: tool.parameters,\n },\n ]),\n );\n};\n"],"mappings":";AAMO,IAAM,yBAAyB,CACpC,UACmC;AACnC,SAAO,OAAO;AAAA,IACZ,MAAM,IAAI,CAAC,SAAS;AAAA,MAClB,KAAK;AAAA,MACL;AAAA,QACE,aAAa,KAAK;AAAA,QAClB,YAAY,KAAK;AAAA,MACnB;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -0,0 +1,4 @@
1
+ export { toLanguageModelMessages } from "./toLanguageModelMessages";
2
+ export { fromLanguageModelTools } from "./fromLanguageModelTools";
3
+ export { toLanguageModelTools } from "./toLanguageModelTools";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/converters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,10 @@
1
+ // src/converters/index.ts
2
+ import { toLanguageModelMessages } from "./toLanguageModelMessages.js";
3
+ import { fromLanguageModelTools } from "./fromLanguageModelTools.js";
4
+ import { toLanguageModelTools } from "./toLanguageModelTools.js";
5
+ export {
6
+ fromLanguageModelTools,
7
+ toLanguageModelMessages,
8
+ toLanguageModelTools
9
+ };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/converters/index.ts"],"sourcesContent":["export { toLanguageModelMessages } from \"./toLanguageModelMessages\";\nexport { fromLanguageModelTools } from \"./fromLanguageModelTools\";\nexport { toLanguageModelTools } from \"./toLanguageModelTools\";\n"],"mappings":";AAAA,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AACvC,SAAS,4BAA4B;","names":[]}
@@ -0,0 +1,9 @@
1
+ import { LanguageModelV1Message } from "@ai-sdk/provider";
2
+ import { ThreadMessage } from "@assistant-ui/react";
3
+ /**
4
+ * @deprecated This is an internal API and may change without notice.
5
+ */
6
+ export declare function toLanguageModelMessages(message: readonly ThreadMessage[], options?: {
7
+ unstable_includeId?: boolean | undefined;
8
+ }): LanguageModelV1Message[];
9
+ //# sourceMappingURL=toLanguageModelMessages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toLanguageModelMessages.d.ts","sourceRoot":"","sources":["../../src/converters/toLanguageModelMessages.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,sBAAsB,EAIvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,aAAa,EAEd,MAAM,qBAAqB,CAAC;AAiE7B;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,SAAS,aAAa,EAAE,EACjC,OAAO,GAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAO,GACzD,sBAAsB,EAAE,CAqG1B"}
@@ -0,0 +1,143 @@
1
+ // src/converters/toLanguageModelMessages.ts
2
+ var assistantMessageSplitter = () => {
3
+ const stash = [];
4
+ let assistantMessage = {
5
+ role: "assistant",
6
+ content: []
7
+ };
8
+ let toolMessage = {
9
+ role: "tool",
10
+ content: []
11
+ };
12
+ return {
13
+ addTextMessagePart: (part) => {
14
+ if (toolMessage.content.length > 0) {
15
+ stash.push(assistantMessage);
16
+ stash.push(toolMessage);
17
+ assistantMessage = {
18
+ role: "assistant",
19
+ content: []
20
+ };
21
+ toolMessage = {
22
+ role: "tool",
23
+ content: []
24
+ };
25
+ }
26
+ assistantMessage.content.push(part);
27
+ },
28
+ addToolCallPart: (part) => {
29
+ assistantMessage.content.push({
30
+ type: "tool-call",
31
+ toolCallId: part.toolCallId,
32
+ toolName: part.toolName,
33
+ args: part.args
34
+ });
35
+ toolMessage.content.push({
36
+ type: "tool-result",
37
+ toolCallId: part.toolCallId,
38
+ toolName: part.toolName,
39
+ ..."artifact" in part ? { artifact: part.artifact } : {},
40
+ result: part.result === void 0 ? "Error: tool is has no configured code to run" : part.result,
41
+ isError: part.isError ?? part.result === void 0
42
+ });
43
+ },
44
+ getMessages: () => {
45
+ if (toolMessage.content.length > 0) {
46
+ return [...stash, assistantMessage, toolMessage];
47
+ }
48
+ return [...stash, assistantMessage];
49
+ }
50
+ };
51
+ };
52
+ function toLanguageModelMessages(message, options = {}) {
53
+ const includeId = options.unstable_includeId ?? false;
54
+ return message.flatMap((message2) => {
55
+ const role = message2.role;
56
+ switch (role) {
57
+ case "system": {
58
+ return [
59
+ {
60
+ ...includeId ? { unstable_id: message2.id } : {},
61
+ role: "system",
62
+ content: message2.content[0].text
63
+ }
64
+ ];
65
+ }
66
+ case "user": {
67
+ const attachments = "attachments" in message2 ? message2.attachments : [];
68
+ const content = [
69
+ ...message2.content,
70
+ ...attachments.map((a) => a.content).flat()
71
+ ];
72
+ const msg = {
73
+ ...includeId ? { unstable_id: message2.id } : {},
74
+ role: "user",
75
+ content: content.map(
76
+ (part) => {
77
+ const type = part.type;
78
+ switch (type) {
79
+ case "text": {
80
+ return part;
81
+ }
82
+ case "image": {
83
+ return {
84
+ type: "image",
85
+ image: new URL(part.image)
86
+ };
87
+ }
88
+ case "file": {
89
+ return {
90
+ type: "file",
91
+ data: new URL(part.data),
92
+ mimeType: part.mimeType
93
+ };
94
+ }
95
+ default: {
96
+ const unhandledType = type;
97
+ throw new Error(
98
+ `Unspported message part type: ${unhandledType}`
99
+ );
100
+ }
101
+ }
102
+ }
103
+ )
104
+ };
105
+ return [msg];
106
+ }
107
+ case "assistant": {
108
+ const splitter = assistantMessageSplitter();
109
+ for (const part of message2.content) {
110
+ const type = part.type;
111
+ switch (type) {
112
+ case "reasoning":
113
+ case "source":
114
+ case "file": {
115
+ break;
116
+ }
117
+ case "text": {
118
+ splitter.addTextMessagePart(part);
119
+ break;
120
+ }
121
+ case "tool-call": {
122
+ splitter.addToolCallPart(part);
123
+ break;
124
+ }
125
+ default: {
126
+ const unhandledType = type;
127
+ throw new Error(`Unhandled message part type: ${unhandledType}`);
128
+ }
129
+ }
130
+ }
131
+ return splitter.getMessages();
132
+ }
133
+ default: {
134
+ const unhandledRole = role;
135
+ throw new Error(`Unknown message role: ${unhandledRole}`);
136
+ }
137
+ }
138
+ });
139
+ }
140
+ export {
141
+ toLanguageModelMessages
142
+ };
143
+ //# sourceMappingURL=toLanguageModelMessages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/converters/toLanguageModelMessages.ts"],"sourcesContent":["import {\n LanguageModelV1FilePart,\n LanguageModelV1ImagePart,\n LanguageModelV1Message,\n LanguageModelV1TextPart,\n LanguageModelV1ToolCallPart,\n LanguageModelV1ToolResultPart,\n} from \"@ai-sdk/provider\";\nimport {\n TextMessagePart,\n ThreadMessage,\n ToolCallMessagePart,\n} from \"@assistant-ui/react\";\n\nconst assistantMessageSplitter = () => {\n const stash: LanguageModelV1Message[] = [];\n let assistantMessage = {\n role: \"assistant\" as const,\n content: [] as (LanguageModelV1TextPart | LanguageModelV1ToolCallPart)[],\n };\n let toolMessage = {\n role: \"tool\" as const,\n content: [] as LanguageModelV1ToolResultPart[],\n };\n\n return {\n addTextMessagePart: (part: TextMessagePart) => {\n if (toolMessage.content.length > 0) {\n stash.push(assistantMessage);\n stash.push(toolMessage);\n\n assistantMessage = {\n role: \"assistant\" as const,\n content: [] as (\n | LanguageModelV1TextPart\n | LanguageModelV1ToolCallPart\n )[],\n };\n\n toolMessage = {\n role: \"tool\" as const,\n content: [] as LanguageModelV1ToolResultPart[],\n };\n }\n\n assistantMessage.content.push(part);\n },\n addToolCallPart: (part: ToolCallMessagePart) => {\n assistantMessage.content.push({\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n args: part.args,\n });\n\n toolMessage.content.push({\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n ...(\"artifact\" in part ? { artifact: part.artifact } : {}),\n result:\n part.result === undefined\n ? \"Error: tool is has no configured code to run\"\n : part.result,\n isError: part.isError ?? part.result === undefined,\n });\n },\n getMessages: () => {\n if (toolMessage.content.length > 0) {\n return [...stash, assistantMessage, toolMessage];\n }\n\n return [...stash, assistantMessage];\n },\n };\n};\n\n/**\n * @deprecated This is an internal API and may change without notice.\n */\nexport function toLanguageModelMessages(\n message: readonly ThreadMessage[],\n options: { unstable_includeId?: boolean | undefined } = {},\n): LanguageModelV1Message[] {\n const includeId = options.unstable_includeId ?? false;\n return message.flatMap((message) => {\n const role = message.role;\n switch (role) {\n case \"system\": {\n return [\n {\n ...(includeId\n ? { unstable_id: (message as ThreadMessage).id }\n : {}),\n role: \"system\",\n content: message.content[0].text,\n },\n ];\n }\n\n case \"user\": {\n const attachments = \"attachments\" in message ? message.attachments : [];\n const content = [\n ...message.content,\n ...attachments.map((a) => a.content).flat(),\n ];\n const msg: LanguageModelV1Message = {\n ...(includeId ? { unstable_id: (message as ThreadMessage).id } : {}),\n role: \"user\",\n content: content.map(\n (\n part,\n ):\n | LanguageModelV1TextPart\n | LanguageModelV1ImagePart\n | LanguageModelV1FilePart => {\n const type = part.type;\n switch (type) {\n case \"text\": {\n return part;\n }\n\n case \"image\": {\n return {\n type: \"image\",\n image: new URL(part.image),\n };\n }\n\n case \"file\": {\n return {\n type: \"file\",\n data: new URL(part.data),\n mimeType: part.mimeType,\n };\n }\n\n default: {\n const unhandledType: \"audio\" = type;\n throw new Error(\n `Unspported message part type: ${unhandledType}`,\n );\n }\n }\n },\n ),\n };\n return [msg];\n }\n\n case \"assistant\": {\n const splitter = assistantMessageSplitter();\n for (const part of message.content) {\n const type = part.type;\n switch (type) {\n case \"reasoning\":\n case \"source\":\n case \"file\": {\n break; // reasoning, source, and file parts are omitted\n }\n\n case \"text\": {\n splitter.addTextMessagePart(part);\n break;\n }\n case \"tool-call\": {\n splitter.addToolCallPart(part);\n break;\n }\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled message part type: ${unhandledType}`);\n }\n }\n }\n return splitter.getMessages();\n }\n\n default: {\n const unhandledRole: never = role;\n throw new Error(`Unknown message role: ${unhandledRole}`);\n }\n }\n });\n}\n"],"mappings":"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","names":["message"]}
@@ -0,0 +1,7 @@
1
+ import { LanguageModelV1FunctionTool } from "@ai-sdk/provider";
2
+ import { Tool } from "@assistant-ui/react";
3
+ /**
4
+ * @deprecated This is an internal API and may change without notice.
5
+ */
6
+ export declare const toLanguageModelTools: (tools: Record<string, Tool<any, any>>) => LanguageModelV1FunctionTool[];
7
+ //# sourceMappingURL=toLanguageModelTools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toLanguageModelTools.d.ts","sourceRoot":"","sources":["../../src/converters/toLanguageModelTools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAI/D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KACpC,2BAA2B,EAS7B,CAAC"}
@@ -0,0 +1,15 @@
1
+ // src/converters/toLanguageModelTools.ts
2
+ import { z } from "zod";
3
+ import zodToJsonSchema from "zod-to-json-schema";
4
+ var toLanguageModelTools = (tools) => {
5
+ return Object.entries(tools).map(([name, tool]) => ({
6
+ type: "function",
7
+ name,
8
+ ...tool.description ? { description: tool.description } : void 0,
9
+ parameters: tool.parameters instanceof z.ZodType ? zodToJsonSchema(tool.parameters) : tool.parameters
10
+ }));
11
+ };
12
+ export {
13
+ toLanguageModelTools
14
+ };
15
+ //# sourceMappingURL=toLanguageModelTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/converters/toLanguageModelTools.ts"],"sourcesContent":["import { LanguageModelV1FunctionTool } from \"@ai-sdk/provider\";\nimport { JSONSchema7 } from \"json-schema\";\nimport { z } from \"zod\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\nimport { Tool } from \"@assistant-ui/react\";\n\n/**\n * @deprecated This is an internal API and may change without notice.\n */\nexport const toLanguageModelTools = (\n tools: Record<string, Tool<any, any>>,\n): LanguageModelV1FunctionTool[] => {\n return Object.entries(tools).map(([name, tool]) => ({\n type: \"function\",\n name,\n ...(tool.description ? { description: tool.description } : undefined),\n parameters: (tool.parameters instanceof z.ZodType\n ? zodToJsonSchema(tool.parameters)\n : tool.parameters) as JSONSchema7,\n }));\n};\n"],"mappings":";AAEA,SAAS,SAAS;AAClB,OAAO,qBAAqB;AAMrB,IAAM,uBAAuB,CAClC,UACkC;AAClC,SAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO;AAAA,IAClD,MAAM;AAAA,IACN;AAAA,IACA,GAAI,KAAK,cAAc,EAAE,aAAa,KAAK,YAAY,IAAI;AAAA,IAC3D,YAAa,KAAK,sBAAsB,EAAE,UACtC,gBAAgB,KAAK,UAAU,IAC/B,KAAK;AAAA,EACX,EAAE;AACJ;","names":[]}
@@ -0,0 +1,9 @@
1
+ import { ChatModelAdapter, ChatModelRunOptions } from "@assistant-ui/react";
2
+ import { CreateEdgeRuntimeAPIOptions } from "./createEdgeRuntimeAPI";
3
+ export type DangerousInBrowserAdapterOptions = CreateEdgeRuntimeAPIOptions;
4
+ export declare class DangerousInBrowserAdapter implements ChatModelAdapter {
5
+ private options;
6
+ constructor(options: DangerousInBrowserAdapterOptions);
7
+ run({ messages, abortSignal, context }: ChatModelRunOptions): AsyncGenerator<import("assistant-stream").AssistantMessage, void, any>;
8
+ }
9
+ //# sourceMappingURL=DangerousInBrowserAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DangerousInBrowserAdapter.d.ts","sourceRoot":"","sources":["../../src/dangerous-in-browser/DangerousInBrowserAdapter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACL,2BAA2B,EAE5B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,gCAAgC,GAAG,2BAA2B,CAAC;AAE3E,qBAAa,yBAA0B,YAAW,gBAAgB;IACpD,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,gCAAgC;IAEtD,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,mBAAmB;CAwBnE"}
@@ -0,0 +1,38 @@
1
+ // src/dangerous-in-browser/DangerousInBrowserAdapter.ts
2
+ import { asAsyncIterableStream } from "assistant-stream/utils";
3
+ import {
4
+ AssistantMessageAccumulator,
5
+ unstable_toolResultStream
6
+ } from "assistant-stream";
7
+ import {
8
+ getEdgeRuntimeStream
9
+ } from "./createEdgeRuntimeAPI.js";
10
+ var DangerousInBrowserAdapter = class {
11
+ constructor(options) {
12
+ this.options = options;
13
+ }
14
+ async *run({ messages, abortSignal, context }) {
15
+ const res = await getEdgeRuntimeStream({
16
+ options: {
17
+ ...this.options,
18
+ ...context.tools && { tools: context.tools }
19
+ },
20
+ abortSignal,
21
+ requestData: {
22
+ system: context.system,
23
+ messages,
24
+ ...Object.fromEntries(
25
+ Object.entries({ ...context.callSettings, ...context.config }).filter(
26
+ ([_, v]) => v !== void 0
27
+ )
28
+ )
29
+ }
30
+ });
31
+ const stream = res.pipeThrough(unstable_toolResultStream(context.tools, abortSignal)).pipeThrough(new AssistantMessageAccumulator());
32
+ yield* asAsyncIterableStream(stream);
33
+ }
34
+ };
35
+ export {
36
+ DangerousInBrowserAdapter
37
+ };
38
+ //# sourceMappingURL=DangerousInBrowserAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/dangerous-in-browser/DangerousInBrowserAdapter.ts"],"sourcesContent":["import { asAsyncIterableStream } from \"assistant-stream/utils\";\nimport {\n AssistantMessageAccumulator,\n unstable_toolResultStream,\n} from \"assistant-stream\";\nimport { ChatModelAdapter, ChatModelRunOptions } from \"@assistant-ui/react\";\nimport {\n CreateEdgeRuntimeAPIOptions,\n getEdgeRuntimeStream,\n} from \"./createEdgeRuntimeAPI\";\n\nexport type DangerousInBrowserAdapterOptions = CreateEdgeRuntimeAPIOptions;\n\nexport class DangerousInBrowserAdapter implements ChatModelAdapter {\n constructor(private options: DangerousInBrowserAdapterOptions) {}\n\n async *run({ messages, abortSignal, context }: ChatModelRunOptions) {\n const res = await getEdgeRuntimeStream({\n options: {\n ...this.options,\n ...(context.tools && { tools: context.tools }),\n },\n abortSignal,\n requestData: {\n system: context.system,\n messages: messages,\n ...Object.fromEntries(\n Object.entries({ ...context.callSettings, ...context.config }).filter(\n ([_, v]) => v !== undefined,\n ),\n ),\n },\n });\n\n const stream = res\n .pipeThrough(unstable_toolResultStream(context.tools, abortSignal))\n .pipeThrough(new AssistantMessageAccumulator());\n\n yield* asAsyncIterableStream(stream);\n }\n}\n"],"mappings":";AAAA,SAAS,6BAA6B;AACtC;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP;AAAA,EAEE;AAAA,OACK;AAIA,IAAM,4BAAN,MAA4D;AAAA,EACjE,YAAoB,SAA2C;AAA3C;AAAA,EAA4C;AAAA,EAEhE,OAAO,IAAI,EAAE,UAAU,aAAa,QAAQ,GAAwB;AAClE,UAAM,MAAM,MAAM,qBAAqB;AAAA,MACrC,SAAS;AAAA,QACP,GAAG,KAAK;AAAA,QACR,GAAI,QAAQ,SAAS,EAAE,OAAO,QAAQ,MAAM;AAAA,MAC9C;AAAA,MACA;AAAA,MACA,aAAa;AAAA,QACX,QAAQ,QAAQ;AAAA,QAChB;AAAA,QACA,GAAG,OAAO;AAAA,UACR,OAAO,QAAQ,EAAE,GAAG,QAAQ,cAAc,GAAG,QAAQ,OAAO,CAAC,EAAE;AAAA,YAC7D,CAAC,CAAC,GAAG,CAAC,MAAM,MAAM;AAAA,UACpB;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAED,UAAM,SAAS,IACZ,YAAY,0BAA0B,QAAQ,OAAO,WAAW,CAAC,EACjE,YAAY,IAAI,4BAA4B,CAAC;AAEhD,WAAO,sBAAsB,MAAM;AAAA,EACrC;AACF;","names":[]}
@@ -0,0 +1,56 @@
1
+ import { LanguageModelV1, LanguageModelV1ToolChoice } from "@ai-sdk/provider";
2
+ import { AssistantStreamChunk } from "assistant-stream";
3
+ import { ThreadMessage, Tool } from "@assistant-ui/react";
4
+ export type LanguageModelV1CallSettings = {
5
+ maxTokens?: number;
6
+ temperature?: number;
7
+ topP?: number;
8
+ presencePenalty?: number;
9
+ frequencyPenalty?: number;
10
+ seed?: number;
11
+ headers?: Record<string, string>;
12
+ };
13
+ export type LanguageModelConfig = {
14
+ apiKey?: string;
15
+ baseUrl?: string;
16
+ modelName?: string;
17
+ };
18
+ export type EdgeRuntimeRequestOptions = {
19
+ system?: string | undefined;
20
+ messages: readonly ThreadMessage[];
21
+ runConfig?: {
22
+ custom?: Record<string, unknown>;
23
+ };
24
+ tools?: any[];
25
+ unstable_assistantMessageId?: string;
26
+ state?: unknown;
27
+ } & LanguageModelV1CallSettings & LanguageModelConfig;
28
+ type LanguageModelCreator = (config: LanguageModelConfig) => Promise<LanguageModelV1> | LanguageModelV1;
29
+ type ThreadStep = {
30
+ readonly messageId?: string;
31
+ readonly usage?: {
32
+ readonly promptTokens: number;
33
+ readonly completionTokens: number;
34
+ } | undefined;
35
+ };
36
+ type FinishResult = {
37
+ messages: readonly ThreadMessage[];
38
+ metadata: {
39
+ steps: readonly ThreadStep[];
40
+ };
41
+ };
42
+ export type CreateEdgeRuntimeAPIOptions = LanguageModelV1CallSettings & {
43
+ model: LanguageModelV1 | LanguageModelCreator;
44
+ system?: string;
45
+ tools?: Record<string, Tool<any, any>>;
46
+ toolChoice?: LanguageModelV1ToolChoice;
47
+ onFinish?: (result: FinishResult) => void;
48
+ };
49
+ type GetEdgeRuntimeStreamOptions = {
50
+ abortSignal: AbortSignal;
51
+ requestData: EdgeRuntimeRequestOptions;
52
+ options: CreateEdgeRuntimeAPIOptions;
53
+ };
54
+ export declare const getEdgeRuntimeStream: ({ abortSignal, requestData: request, options: { model: modelOrCreator, system: serverSystem, tools: serverTools, toolChoice, onFinish, ...unsafeSettings }, }: GetEdgeRuntimeStreamOptions) => Promise<ReadableStream<AssistantStreamChunk>>;
55
+ export {};
56
+ //# sourceMappingURL=createEdgeRuntimeAPI.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createEdgeRuntimeAPI.d.ts","sourceRoot":"","sources":["../../src/dangerous-in-browser/createEdgeRuntimeAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,yBAAyB,EAI1B,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,MAAM,2BAA2B,GAAG;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IACnC,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,CAAC;IACF,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,2BAA2B,GAC7B,mBAAmB,CAAC;AAEtB,KAAK,oBAAoB,GAAG,CAC1B,MAAM,EAAE,mBAAmB,KACxB,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC;AAEhD,KAAK,UAAU,GAAG;IAChB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EACX;QACE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;KACnC,GACD,SAAS,CAAC;CACf,CAAC;AAEF,KAAK,YAAY,GAAG;IAClB,QAAQ,EAAE,SAAS,aAAa,EAAE,CAAC;IACnC,QAAQ,EAAE;QACR,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;KAC9B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,2BAA2B,GAAG;IACtE,KAAK,EAAE,eAAe,GAAG,oBAAoB,CAAC;IAC9C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACvC,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,yBAAyB,CAAC;IACvC,OAAO,EAAE,2BAA2B,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAU,+JAWxC,2BAA2B,KAAG,OAAO,CACtC,cAAc,CAAC,oBAAoB,CAAC,CAwDrC,CAAC"}
@@ -0,0 +1,65 @@
1
+ // src/dangerous-in-browser/createEdgeRuntimeAPI.ts
2
+ import { toLanguageModelMessages } from "../converters/toLanguageModelMessages.js";
3
+ import { toLanguageModelTools } from "../converters/toLanguageModelTools.js";
4
+ import { LanguageModelV1StreamDecoder } from "assistant-stream/ai-sdk";
5
+ var getEdgeRuntimeStream = async ({
6
+ abortSignal,
7
+ requestData: request,
8
+ options: {
9
+ model: modelOrCreator,
10
+ system: serverSystem,
11
+ tools: serverTools = {},
12
+ toolChoice,
13
+ onFinish,
14
+ ...unsafeSettings
15
+ }
16
+ }) => {
17
+ const model = typeof modelOrCreator === "function" ? await modelOrCreator(request) : modelOrCreator;
18
+ const messages = toLanguageModelMessages(
19
+ request.messages
20
+ );
21
+ if (serverSystem || request.system) {
22
+ messages.unshift({
23
+ role: "system",
24
+ content: serverSystem || request.system
25
+ });
26
+ }
27
+ const allTools = serverTools || {};
28
+ const tools = toLanguageModelTools(allTools);
29
+ const callOptions = {
30
+ inputFormat: "messages",
31
+ mode: tools.length > 0 ? {
32
+ type: "regular",
33
+ tools,
34
+ ...toolChoice && { toolChoice }
35
+ } : { type: "regular" },
36
+ prompt: messages,
37
+ ...request.maxTokens !== void 0 && { maxTokens: request.maxTokens },
38
+ ...request.temperature !== void 0 && {
39
+ temperature: request.temperature
40
+ },
41
+ ...request.topP !== void 0 && { topP: request.topP },
42
+ ...request.presencePenalty !== void 0 && {
43
+ presencePenalty: request.presencePenalty
44
+ },
45
+ ...request.frequencyPenalty !== void 0 && {
46
+ frequencyPenalty: request.frequencyPenalty
47
+ },
48
+ ...request.seed !== void 0 && { seed: request.seed },
49
+ ...request.headers && {
50
+ headers: Object.fromEntries(
51
+ Object.entries(request.headers).filter(([_, v]) => v !== void 0)
52
+ )
53
+ },
54
+ abortSignal,
55
+ ...Object.fromEntries(
56
+ Object.entries(unsafeSettings).filter(([_, v]) => v !== void 0)
57
+ )
58
+ };
59
+ const result = await model.doStream(callOptions);
60
+ return result.stream.pipeThrough(new LanguageModelV1StreamDecoder());
61
+ };
62
+ export {
63
+ getEdgeRuntimeStream
64
+ };
65
+ //# sourceMappingURL=createEdgeRuntimeAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/dangerous-in-browser/createEdgeRuntimeAPI.ts"],"sourcesContent":["import {\n LanguageModelV1,\n LanguageModelV1ToolChoice,\n LanguageModelV1FunctionTool,\n LanguageModelV1Prompt,\n LanguageModelV1CallOptions,\n} from \"@ai-sdk/provider\";\nimport { toLanguageModelMessages } from \"../converters/toLanguageModelMessages\";\nimport { toLanguageModelTools } from \"../converters/toLanguageModelTools\";\nimport { AssistantStreamChunk } from \"assistant-stream\";\nimport { LanguageModelV1StreamDecoder } from \"assistant-stream/ai-sdk\";\nimport { ThreadMessage, Tool } from \"@assistant-ui/react\";\n\nexport type LanguageModelV1CallSettings = {\n maxTokens?: number;\n temperature?: number;\n topP?: number;\n presencePenalty?: number;\n frequencyPenalty?: number;\n seed?: number;\n headers?: Record<string, string>;\n};\n\nexport type LanguageModelConfig = {\n apiKey?: string;\n baseUrl?: string;\n modelName?: string;\n};\n\nexport type EdgeRuntimeRequestOptions = {\n system?: string | undefined;\n messages: readonly ThreadMessage[];\n runConfig?: {\n custom?: Record<string, unknown>;\n };\n tools?: any[];\n unstable_assistantMessageId?: string;\n state?: unknown;\n} & LanguageModelV1CallSettings &\n LanguageModelConfig;\n\ntype LanguageModelCreator = (\n config: LanguageModelConfig,\n) => Promise<LanguageModelV1> | LanguageModelV1;\n\ntype ThreadStep = {\n readonly messageId?: string;\n readonly usage?:\n | {\n readonly promptTokens: number;\n readonly completionTokens: number;\n }\n | undefined;\n};\n\ntype FinishResult = {\n messages: readonly ThreadMessage[];\n metadata: {\n steps: readonly ThreadStep[];\n };\n};\n\nexport type CreateEdgeRuntimeAPIOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1 | LanguageModelCreator;\n system?: string;\n tools?: Record<string, Tool<any, any>>;\n toolChoice?: LanguageModelV1ToolChoice;\n onFinish?: (result: FinishResult) => void;\n};\n\ntype GetEdgeRuntimeStreamOptions = {\n abortSignal: AbortSignal;\n requestData: EdgeRuntimeRequestOptions;\n options: CreateEdgeRuntimeAPIOptions;\n};\n\nexport const getEdgeRuntimeStream = async ({\n abortSignal,\n requestData: request,\n options: {\n model: modelOrCreator,\n system: serverSystem,\n tools: serverTools = {},\n toolChoice,\n onFinish,\n ...unsafeSettings\n },\n}: GetEdgeRuntimeStreamOptions): Promise<\n ReadableStream<AssistantStreamChunk>\n> => {\n const model =\n typeof modelOrCreator === \"function\"\n ? await modelOrCreator(request)\n : modelOrCreator;\n\n const messages: LanguageModelV1Prompt = toLanguageModelMessages(\n request.messages,\n );\n\n if (serverSystem || request.system) {\n messages.unshift({\n role: \"system\",\n content: serverSystem || request.system!,\n });\n }\n\n const allTools = serverTools || {};\n const tools: LanguageModelV1FunctionTool[] = toLanguageModelTools(allTools);\n const callOptions: LanguageModelV1CallOptions = {\n inputFormat: \"messages\",\n mode:\n tools.length > 0\n ? {\n type: \"regular\",\n tools,\n ...(toolChoice && { toolChoice }),\n }\n : { type: \"regular\" },\n prompt: messages,\n ...(request.maxTokens !== undefined && { maxTokens: request.maxTokens }),\n ...(request.temperature !== undefined && {\n temperature: request.temperature,\n }),\n ...(request.topP !== undefined && { topP: request.topP }),\n ...(request.presencePenalty !== undefined && {\n presencePenalty: request.presencePenalty,\n }),\n ...(request.frequencyPenalty !== undefined && {\n frequencyPenalty: request.frequencyPenalty,\n }),\n ...(request.seed !== undefined && { seed: request.seed }),\n ...(request.headers && {\n headers: Object.fromEntries(\n Object.entries(request.headers).filter(([_, v]) => v !== undefined),\n ) as Record<string, string>,\n }),\n abortSignal,\n ...Object.fromEntries(\n Object.entries(unsafeSettings).filter(([_, v]) => v !== undefined),\n ),\n };\n\n const result = await model.doStream(callOptions);\n return result.stream.pipeThrough(new LanguageModelV1StreamDecoder());\n};\n"],"mappings":";AAOA,SAAS,+BAA+B;AACxC,SAAS,4BAA4B;AAErC,SAAS,oCAAoC;AAkEtC,IAAM,uBAAuB,OAAO;AAAA,EACzC;AAAA,EACA,aAAa;AAAA,EACb,SAAS;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,OAAO,cAAc,CAAC;AAAA,IACtB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AACF,MAEK;AACH,QAAM,QACJ,OAAO,mBAAmB,aACtB,MAAM,eAAe,OAAO,IAC5B;AAEN,QAAM,WAAkC;AAAA,IACtC,QAAQ;AAAA,EACV;AAEA,MAAI,gBAAgB,QAAQ,QAAQ;AAClC,aAAS,QAAQ;AAAA,MACf,MAAM;AAAA,MACN,SAAS,gBAAgB,QAAQ;AAAA,IACnC,CAAC;AAAA,EACH;AAEA,QAAM,WAAW,eAAe,CAAC;AACjC,QAAM,QAAuC,qBAAqB,QAAQ;AAC1E,QAAM,cAA0C;AAAA,IAC9C,aAAa;AAAA,IACb,MACE,MAAM,SAAS,IACX;AAAA,MACE,MAAM;AAAA,MACN;AAAA,MACA,GAAI,cAAc,EAAE,WAAW;AAAA,IACjC,IACA,EAAE,MAAM,UAAU;AAAA,IACxB,QAAQ;AAAA,IACR,GAAI,QAAQ,cAAc,UAAa,EAAE,WAAW,QAAQ,UAAU;AAAA,IACtE,GAAI,QAAQ,gBAAgB,UAAa;AAAA,MACvC,aAAa,QAAQ;AAAA,IACvB;AAAA,IACA,GAAI,QAAQ,SAAS,UAAa,EAAE,MAAM,QAAQ,KAAK;AAAA,IACvD,GAAI,QAAQ,oBAAoB,UAAa;AAAA,MAC3C,iBAAiB,QAAQ;AAAA,IAC3B;AAAA,IACA,GAAI,QAAQ,qBAAqB,UAAa;AAAA,MAC5C,kBAAkB,QAAQ;AAAA,IAC5B;AAAA,IACA,GAAI,QAAQ,SAAS,UAAa,EAAE,MAAM,QAAQ,KAAK;AAAA,IACvD,GAAI,QAAQ,WAAW;AAAA,MACrB,SAAS,OAAO;AAAA,QACd,OAAO,QAAQ,QAAQ,OAAO,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,MAAM,MAAS;AAAA,MACpE;AAAA,IACF;AAAA,IACA;AAAA,IACA,GAAG,OAAO;AAAA,MACR,OAAO,QAAQ,cAAc,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,MAAM,MAAS;AAAA,IACnE;AAAA,EACF;AAEA,QAAM,SAAS,MAAM,MAAM,SAAS,WAAW;AAC/C,SAAO,OAAO,OAAO,YAAY,IAAI,6BAA6B,CAAC;AACrE;","names":[]}
@@ -0,0 +1,2 @@
1
+ export { useDangerousInBrowserRuntime, type DangerousInBrowserRuntimeOptions, } from "./useDangerousInBrowserRuntime";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dangerous-in-browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,KAAK,gCAAgC,GACtC,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,8 @@
1
+ // src/dangerous-in-browser/index.ts
2
+ import {
3
+ useDangerousInBrowserRuntime
4
+ } from "./useDangerousInBrowserRuntime.js";
5
+ export {
6
+ useDangerousInBrowserRuntime
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/dangerous-in-browser/index.ts"],"sourcesContent":["export {\n useDangerousInBrowserRuntime,\n type DangerousInBrowserRuntimeOptions,\n} from \"./useDangerousInBrowserRuntime\";\n"],"mappings":";AAAA;AAAA,EACE;AAAA,OAEK;","names":[]}
@@ -0,0 +1,5 @@
1
+ import { DangerousInBrowserAdapterOptions } from "./DangerousInBrowserAdapter";
2
+ import { INTERNAL, LocalRuntimeOptions } from "@assistant-ui/react";
3
+ export type DangerousInBrowserRuntimeOptions = DangerousInBrowserAdapterOptions & LocalRuntimeOptions;
4
+ export declare const useDangerousInBrowserRuntime: (options: DangerousInBrowserRuntimeOptions) => INTERNAL.AssistantRuntimeImpl;
5
+ //# sourceMappingURL=useDangerousInBrowserRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDangerousInBrowserRuntime.d.ts","sourceRoot":"","sources":["../../src/dangerous-in-browser/useDangerousInBrowserRuntime.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,gCAAgC,EACjC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,QAAQ,EACR,mBAAmB,EAEpB,MAAM,qBAAqB,CAAC;AAI7B,MAAM,MAAM,gCAAgC,GAC1C,gCAAgC,GAAG,mBAAmB,CAAC;AAEzD,eAAO,MAAM,4BAA4B,GACvC,SAAS,gCAAgC,kCAM1C,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use client";
2
+
3
+ // src/dangerous-in-browser/useDangerousInBrowserRuntime.ts
4
+ import { useState } from "react";
5
+ import {
6
+ DangerousInBrowserAdapter
7
+ } from "./DangerousInBrowserAdapter.js";
8
+ import {
9
+ INTERNAL,
10
+ useLocalRuntime
11
+ } from "@assistant-ui/react";
12
+ var { splitLocalRuntimeOptions } = INTERNAL;
13
+ var useDangerousInBrowserRuntime = (options) => {
14
+ const { localRuntimeOptions, otherOptions } = splitLocalRuntimeOptions(options);
15
+ const [adapter] = useState(() => new DangerousInBrowserAdapter(otherOptions));
16
+ return useLocalRuntime(adapter, localRuntimeOptions);
17
+ };
18
+ export {
19
+ useDangerousInBrowserRuntime
20
+ };
21
+ //# sourceMappingURL=useDangerousInBrowserRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/dangerous-in-browser/useDangerousInBrowserRuntime.ts"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport {\n DangerousInBrowserAdapter,\n DangerousInBrowserAdapterOptions,\n} from \"./DangerousInBrowserAdapter\";\nimport {\n INTERNAL,\n LocalRuntimeOptions,\n useLocalRuntime,\n} from \"@assistant-ui/react\";\n\nconst { splitLocalRuntimeOptions } = INTERNAL;\n\nexport type DangerousInBrowserRuntimeOptions =\n DangerousInBrowserAdapterOptions & LocalRuntimeOptions;\n\nexport const useDangerousInBrowserRuntime = (\n options: DangerousInBrowserRuntimeOptions,\n) => {\n const { localRuntimeOptions, otherOptions } =\n splitLocalRuntimeOptions(options);\n const [adapter] = useState(() => new DangerousInBrowserAdapter(otherOptions));\n return useLocalRuntime(adapter, localRuntimeOptions);\n};\n"],"mappings":";;;AAEA,SAAS,gBAAgB;AACzB;AAAA,EACE;AAAA,OAEK;AACP;AAAA,EACE;AAAA,EAEA;AAAA,OACK;AAEP,IAAM,EAAE,yBAAyB,IAAI;AAK9B,IAAM,+BAA+B,CAC1C,YACG;AACH,QAAM,EAAE,qBAAqB,aAAa,IACxC,yBAAyB,OAAO;AAClC,QAAM,CAAC,OAAO,IAAI,SAAS,MAAM,IAAI,0BAA0B,YAAY,CAAC;AAC5E,SAAO,gBAAgB,SAAS,mBAAmB;AACrD;","names":[]}
@@ -4,7 +4,7 @@ export declare const frontendTools: (tools: Record<string, {
4
4
  parameters: JSONSchema7;
5
5
  }>) => {
6
6
  [k: string]: {
7
- parameters: import("@ai-sdk/ui-utils").Schema<unknown>;
7
+ parameters: import("ai").Schema<unknown>;
8
8
  description?: string;
9
9
  };
10
10
  };
package/dist/index.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from "./rsc";
2
2
  export * from "./ui";
3
3
  export * from "./useChatRuntime";
4
4
  export * from "./useCloudRuntime";
5
- export { toLanguageModelMessages, toLanguageModelTools, fromLanguageModelMessages, fromLanguageModelTools, useDangerousInBrowserRuntime, } from "@assistant-ui/react-edge";
5
+ export * from "./converters";
6
+ export * from "./dangerous-in-browser";
6
7
  export { frontendTools } from "./frontendTools";
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,MAAM,CAAC;AACrB,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAElC,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,MAAM,CAAC;AACrB,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -3,20 +3,10 @@ export * from "./rsc/index.js";
3
3
  export * from "./ui/index.js";
4
4
  export * from "./useChatRuntime.js";
5
5
  export * from "./useCloudRuntime.js";
6
- import {
7
- toLanguageModelMessages,
8
- toLanguageModelTools,
9
- fromLanguageModelMessages,
10
- fromLanguageModelTools,
11
- useDangerousInBrowserRuntime
12
- } from "@assistant-ui/react-edge";
6
+ export * from "./converters/index.js";
7
+ export * from "./dangerous-in-browser/index.js";
13
8
  import { frontendTools } from "./frontendTools.js";
14
9
  export {
15
- fromLanguageModelMessages,
16
- fromLanguageModelTools,
17
- frontendTools,
18
- toLanguageModelMessages,
19
- toLanguageModelTools,
20
- useDangerousInBrowserRuntime
10
+ frontendTools
21
11
  };
22
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./rsc\";\nexport * from \"./ui\";\nexport * from \"./useChatRuntime\";\nexport * from \"./useCloudRuntime\";\n\nexport {\n toLanguageModelMessages,\n toLanguageModelTools,\n fromLanguageModelMessages,\n fromLanguageModelTools,\n useDangerousInBrowserRuntime,\n} from \"@assistant-ui/react-edge\";\nexport { frontendTools } from \"./frontendTools\";\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,qBAAqB;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from \"./rsc\";\nexport * from \"./ui\";\nexport * from \"./useChatRuntime\";\nexport * from \"./useCloudRuntime\";\nexport * from \"./converters\";\nexport * from \"./dangerous-in-browser\";\nexport { frontendTools } from \"./frontendTools\";\n"],"mappings":";AAAA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,SAAS,qBAAqB;","names":[]}