assistant-ui 0.0.56 → 0.0.58
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/codemods/v0-9/edge-package-split.d.ts.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.js +8 -51
- package/dist/codemods/v0-9/edge-package-split.js.map +1 -1
- package/dist/lib/install-edge-lib.d.ts.map +1 -1
- package/dist/lib/install-edge-lib.js +8 -8
- package/dist/lib/install-edge-lib.js.map +1 -1
- package/package.json +5 -5
- package/src/codemods/v0-9/edge-package-split.ts +11 -58
- package/src/lib/install-edge-lib.ts +12 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-package-split.d.ts","sourceRoot":"","sources":["../../../src/codemods/v0-9/edge-package-split.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"edge-package-split.d.ts","sourceRoot":"","sources":["../../../src/codemods/v0-9/edge-package-split.ts"],"names":[],"mappings":"AA8BA,QAAA,MAAM,oBAAoB,6HAkJxB,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
// src/codemods/v0-9/edge-package-split.ts
|
|
2
2
|
import { createTransformer } from "../utils/createTransformer.js";
|
|
3
|
-
var
|
|
4
|
-
//
|
|
5
|
-
"
|
|
6
|
-
"EdgeRuntimeOptions",
|
|
7
|
-
"EdgeModelAdapter",
|
|
8
|
-
"EdgeChatAdapter",
|
|
9
|
-
"EdgeRuntimeRequestOptions",
|
|
10
|
-
"createEdgeRuntimeAPI",
|
|
11
|
-
"getEdgeRuntimeResponse",
|
|
3
|
+
var reactAiSdkExports = [
|
|
4
|
+
// Chat Runtime (replaces edge runtime)
|
|
5
|
+
"useChatRuntime",
|
|
12
6
|
// Core Types
|
|
13
7
|
"CoreMessage",
|
|
14
8
|
"CoreUserMessage",
|
|
@@ -21,9 +15,8 @@ var reactEdgeExports = [
|
|
|
21
15
|
"fromCoreMessages",
|
|
22
16
|
"fromCoreMessage",
|
|
23
17
|
"toCoreMessages",
|
|
24
|
-
"toCoreMessage"
|
|
25
|
-
|
|
26
|
-
var reactAiSdkExports = [
|
|
18
|
+
"toCoreMessage",
|
|
19
|
+
// Language model converters
|
|
27
20
|
"toLanguageModelMessages",
|
|
28
21
|
"toLanguageModelTools",
|
|
29
22
|
"fromLanguageModelMessages",
|
|
@@ -32,17 +25,13 @@ var reactAiSdkExports = [
|
|
|
32
25
|
];
|
|
33
26
|
var migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
|
|
34
27
|
const sourcesToMigrate = ["@assistant-ui/react"];
|
|
35
|
-
const movedEdgeSpecifiers = [];
|
|
36
28
|
const movedAiSdkSpecifiers = [];
|
|
37
29
|
let lastMigratedImportPath = null;
|
|
38
30
|
root.find(j.ImportDeclaration).filter((path) => sourcesToMigrate.includes(path.value.source.value)).forEach((path) => {
|
|
39
31
|
let hadMigratedSpecifiers = false;
|
|
40
32
|
const remainingSpecifiers = [];
|
|
41
33
|
path.value.specifiers.forEach((specifier) => {
|
|
42
|
-
if (j.ImportSpecifier.check(specifier) &&
|
|
43
|
-
movedEdgeSpecifiers.push(specifier);
|
|
44
|
-
hadMigratedSpecifiers = true;
|
|
45
|
-
} else if (j.ImportSpecifier.check(specifier) && reactAiSdkExports.includes(specifier.imported.name)) {
|
|
34
|
+
if (j.ImportSpecifier.check(specifier) && reactAiSdkExports.includes(specifier.imported.name)) {
|
|
46
35
|
movedAiSdkSpecifiers.push(specifier);
|
|
47
36
|
hadMigratedSpecifiers = true;
|
|
48
37
|
} else {
|
|
@@ -60,38 +49,6 @@ var migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
|
|
|
60
49
|
markAsChanged();
|
|
61
50
|
}
|
|
62
51
|
});
|
|
63
|
-
if (movedEdgeSpecifiers.length > 0) {
|
|
64
|
-
const existingEdgeImport = root.find(j.ImportDeclaration, {
|
|
65
|
-
source: { value: "@assistant-ui/react-edge" }
|
|
66
|
-
});
|
|
67
|
-
if (existingEdgeImport.size() > 0) {
|
|
68
|
-
existingEdgeImport.forEach((path) => {
|
|
69
|
-
movedEdgeSpecifiers.forEach((specifier) => {
|
|
70
|
-
if (!path.value.specifiers.some(
|
|
71
|
-
(s) => s.imported.name === specifier.imported.name
|
|
72
|
-
)) {
|
|
73
|
-
path.value.specifiers.push(specifier);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
} else {
|
|
78
|
-
const newImport = j.importDeclaration(
|
|
79
|
-
movedEdgeSpecifiers,
|
|
80
|
-
j.literal("@assistant-ui/react-edge")
|
|
81
|
-
);
|
|
82
|
-
if (lastMigratedImportPath) {
|
|
83
|
-
j(lastMigratedImportPath).insertAfter(newImport);
|
|
84
|
-
} else {
|
|
85
|
-
const firstImport = root.find(j.ImportDeclaration).at(0);
|
|
86
|
-
if (firstImport.size() > 0) {
|
|
87
|
-
firstImport.insertBefore(newImport);
|
|
88
|
-
} else {
|
|
89
|
-
root.get().node.program.body.unshift(newImport);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
markAsChanged();
|
|
94
|
-
}
|
|
95
52
|
if (movedAiSdkSpecifiers.length > 0) {
|
|
96
53
|
const existingAiSdkImport = root.find(j.ImportDeclaration, {
|
|
97
54
|
source: { value: "@assistant-ui/react-ai-sdk" }
|
|
@@ -130,7 +87,7 @@ var migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
|
|
|
130
87
|
path.value.source = j.literal(
|
|
131
88
|
sourceValue.replace(
|
|
132
89
|
"@assistant-ui/react/",
|
|
133
|
-
"@assistant-ui/react-
|
|
90
|
+
"@assistant-ui/react-ai-sdk/"
|
|
134
91
|
)
|
|
135
92
|
);
|
|
136
93
|
markAsChanged();
|
|
@@ -138,7 +95,7 @@ var migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
|
|
|
138
95
|
});
|
|
139
96
|
root.find(j.ImportDeclaration).forEach((path) => {
|
|
140
97
|
const sourceValue = path.value.source.value;
|
|
141
|
-
if (sourceValue === "@assistant-ui/react-edge") {
|
|
98
|
+
if (sourceValue === "@assistant-ui/react-edge" || sourceValue === "@assistant-ui/react") {
|
|
142
99
|
let hasLanguageModelConverters = false;
|
|
143
100
|
const remainingSpecifiers = [];
|
|
144
101
|
const aiSdkSpecifiers = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/codemods/v0-9/edge-package-split.ts"],"sourcesContent":["import { createTransformer } from \"../utils/createTransformer\";\n\nconst reactEdgeExports: string[] = [\n // Edge Runtime\n \"useEdgeRuntime\",\n \"EdgeRuntimeOptions\",\n \"EdgeModelAdapter\",\n \"EdgeChatAdapter\",\n \"EdgeRuntimeRequestOptions\",\n \"createEdgeRuntimeAPI\",\n \"getEdgeRuntimeResponse\",\n\n // Core Types\n \"CoreMessage\",\n \"CoreUserMessage\",\n \"CoreAssistantMessage\",\n \"CoreSystemMessage\",\n \"CoreUserMessagePart\",\n \"CoreAssistantMessagePart\",\n \"CoreToolCallMessagePart\",\n\n // Core message converters\n \"fromCoreMessages\",\n \"fromCoreMessage\",\n \"toCoreMessages\",\n \"toCoreMessage\",\n];\n\n// Language model converters to be moved to react-ai-sdk\nconst reactAiSdkExports: string[] = [\n \"toLanguageModelMessages\",\n \"toLanguageModelTools\",\n \"fromLanguageModelMessages\",\n \"fromLanguageModelTools\",\n \"useDangerousInBrowserRuntime\",\n];\n\nconst migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {\n const sourcesToMigrate: string[] = [\"@assistant-ui/react\"];\n const movedEdgeSpecifiers: any[] = [];\n const movedAiSdkSpecifiers: any[] = [];\n let lastMigratedImportPath: any = null;\n\n root\n .find(j.ImportDeclaration)\n .filter((path: any) => sourcesToMigrate.includes(path.value.source.value))\n .forEach((path: any) => {\n let hadMigratedSpecifiers = false;\n const remainingSpecifiers: any[] = [];\n path.value.specifiers.forEach((specifier: any) => {\n if (\n j.ImportSpecifier.check(specifier) &&\n reactEdgeExports.includes(specifier.imported.name as string)\n ) {\n movedEdgeSpecifiers.push(specifier);\n hadMigratedSpecifiers = true;\n } else if (\n j.ImportSpecifier.check(specifier) &&\n reactAiSdkExports.includes(specifier.imported.name as string)\n ) {\n movedAiSdkSpecifiers.push(specifier);\n hadMigratedSpecifiers = true;\n } else {\n remainingSpecifiers.push(specifier);\n }\n });\n if (hadMigratedSpecifiers) {\n lastMigratedImportPath = path;\n }\n if (remainingSpecifiers.length === 0) {\n j(path).remove();\n markAsChanged();\n } else if (remainingSpecifiers.length !== path.value.specifiers.length) {\n path.value.specifiers = remainingSpecifiers;\n markAsChanged();\n }\n });\n\n // Add imports for react-edge\n if (movedEdgeSpecifiers.length > 0) {\n const existingEdgeImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-edge\" },\n });\n if (existingEdgeImport.size() > 0) {\n existingEdgeImport.forEach((path: any) => {\n movedEdgeSpecifiers.forEach((specifier: any) => {\n if (\n !path.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n path.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n movedEdgeSpecifiers,\n j.literal(\"@assistant-ui/react-edge\"),\n );\n if (lastMigratedImportPath) {\n j(lastMigratedImportPath).insertAfter(newImport);\n } else {\n const firstImport = root.find(j.ImportDeclaration).at(0);\n if (firstImport.size() > 0) {\n firstImport.insertBefore(newImport);\n } else {\n root.get().node.program.body.unshift(newImport);\n }\n }\n }\n markAsChanged();\n }\n\n // Add imports for react-ai-sdk\n if (movedAiSdkSpecifiers.length > 0) {\n const existingAiSdkImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-ai-sdk\" },\n });\n if (existingAiSdkImport.size() > 0) {\n existingAiSdkImport.forEach((path: any) => {\n movedAiSdkSpecifiers.forEach((specifier: any) => {\n if (\n !path.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n path.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n movedAiSdkSpecifiers,\n j.literal(\"@assistant-ui/react-ai-sdk\"),\n );\n if (lastMigratedImportPath) {\n j(lastMigratedImportPath).insertAfter(newImport);\n } else {\n const firstImport = root.find(j.ImportDeclaration).at(0);\n if (firstImport.size() > 0) {\n firstImport.insertBefore(newImport);\n } else {\n root.get().node.program.body.unshift(newImport);\n }\n }\n }\n markAsChanged();\n }\n\n // Migrate imports from edge/converters\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const sourceValue: string = path.value.source.value;\n if (\n sourceValue.startsWith(\"@assistant-ui/react/\") &&\n (sourceValue.includes(\"edge/\") ||\n sourceValue.includes(\"dangerous-in-browser/\"))\n ) {\n path.value.source = j.literal(\n sourceValue.replace(\n \"@assistant-ui/react/\",\n \"@assistant-ui/react-edge/\",\n ),\n );\n markAsChanged();\n }\n });\n\n // Migrate language model converter imports from react-edge to react-ai-sdk\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const sourceValue: string = path.value.source.value;\n if (sourceValue === \"@assistant-ui/react-edge\") {\n let hasLanguageModelConverters = false;\n const remainingSpecifiers: any[] = [];\n const aiSdkSpecifiers: any[] = [];\n\n path.value.specifiers.forEach((specifier: any) => {\n if (\n j.ImportSpecifier.check(specifier) &&\n reactAiSdkExports.includes(specifier.imported.name as string)\n ) {\n aiSdkSpecifiers.push(specifier);\n hasLanguageModelConverters = true;\n } else {\n remainingSpecifiers.push(specifier);\n }\n });\n\n if (hasLanguageModelConverters) {\n if (remainingSpecifiers.length === 0) {\n j(path).remove();\n } else {\n path.value.specifiers = remainingSpecifiers;\n }\n\n const existingAiSdkImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-ai-sdk\" },\n });\n\n if (existingAiSdkImport.size() > 0) {\n existingAiSdkImport.forEach((importPath: any) => {\n aiSdkSpecifiers.forEach((specifier: any) => {\n if (\n !importPath.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n importPath.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n aiSdkSpecifiers,\n j.literal(\"@assistant-ui/react-ai-sdk\"),\n );\n j(path).insertAfter(newImport);\n }\n\n markAsChanged();\n }\n }\n });\n});\n\nexport default migrateToEdgePackage;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../src/codemods/v0-9/edge-package-split.ts"],"sourcesContent":["import { createTransformer } from \"../utils/createTransformer\";\n\n// Chat runtime and converter exports moved to react-ai-sdk\nconst reactAiSdkExports: string[] = [\n // Chat Runtime (replaces edge runtime)\n \"useChatRuntime\",\n\n // Core Types\n \"CoreMessage\",\n \"CoreUserMessage\",\n \"CoreAssistantMessage\",\n \"CoreSystemMessage\",\n \"CoreUserMessagePart\",\n \"CoreAssistantMessagePart\",\n \"CoreToolCallMessagePart\",\n\n // Core message converters\n \"fromCoreMessages\",\n \"fromCoreMessage\",\n \"toCoreMessages\",\n \"toCoreMessage\",\n\n // Language model converters\n \"toLanguageModelMessages\",\n \"toLanguageModelTools\",\n \"fromLanguageModelMessages\",\n \"fromLanguageModelTools\",\n \"useDangerousInBrowserRuntime\",\n];\n\nconst migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {\n const sourcesToMigrate: string[] = [\"@assistant-ui/react\"];\n const movedAiSdkSpecifiers: any[] = [];\n let lastMigratedImportPath: any = null;\n\n root\n .find(j.ImportDeclaration)\n .filter((path: any) => sourcesToMigrate.includes(path.value.source.value))\n .forEach((path: any) => {\n let hadMigratedSpecifiers = false;\n const remainingSpecifiers: any[] = [];\n path.value.specifiers.forEach((specifier: any) => {\n if (\n j.ImportSpecifier.check(specifier) &&\n reactAiSdkExports.includes(specifier.imported.name as string)\n ) {\n movedAiSdkSpecifiers.push(specifier);\n hadMigratedSpecifiers = true;\n } else {\n remainingSpecifiers.push(specifier);\n }\n });\n if (hadMigratedSpecifiers) {\n lastMigratedImportPath = path;\n }\n if (remainingSpecifiers.length === 0) {\n j(path).remove();\n markAsChanged();\n } else if (remainingSpecifiers.length !== path.value.specifiers.length) {\n path.value.specifiers = remainingSpecifiers;\n markAsChanged();\n }\n });\n\n // Add imports for react-ai-sdk (all edge-related imports now go here)\n if (movedAiSdkSpecifiers.length > 0) {\n const existingAiSdkImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-ai-sdk\" },\n });\n if (existingAiSdkImport.size() > 0) {\n existingAiSdkImport.forEach((path: any) => {\n movedAiSdkSpecifiers.forEach((specifier: any) => {\n if (\n !path.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n path.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n movedAiSdkSpecifiers,\n j.literal(\"@assistant-ui/react-ai-sdk\"),\n );\n if (lastMigratedImportPath) {\n j(lastMigratedImportPath).insertAfter(newImport);\n } else {\n const firstImport = root.find(j.ImportDeclaration).at(0);\n if (firstImport.size() > 0) {\n firstImport.insertBefore(newImport);\n } else {\n root.get().node.program.body.unshift(newImport);\n }\n }\n }\n markAsChanged();\n }\n\n // Migrate imports from edge/converters\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const sourceValue: string = path.value.source.value;\n if (\n sourceValue.startsWith(\"@assistant-ui/react/\") &&\n (sourceValue.includes(\"edge/\") ||\n sourceValue.includes(\"dangerous-in-browser/\"))\n ) {\n path.value.source = j.literal(\n sourceValue.replace(\n \"@assistant-ui/react/\",\n \"@assistant-ui/react-ai-sdk/\",\n ),\n );\n markAsChanged();\n }\n });\n\n // Migrate language model converter imports from react-edge to react-ai-sdk\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const sourceValue: string = path.value.source.value;\n if (\n sourceValue === \"@assistant-ui/react-edge\" ||\n sourceValue === \"@assistant-ui/react\"\n ) {\n let hasLanguageModelConverters = false;\n const remainingSpecifiers: any[] = [];\n const aiSdkSpecifiers: any[] = [];\n\n path.value.specifiers.forEach((specifier: any) => {\n if (\n j.ImportSpecifier.check(specifier) &&\n reactAiSdkExports.includes(specifier.imported.name as string)\n ) {\n aiSdkSpecifiers.push(specifier);\n hasLanguageModelConverters = true;\n } else {\n remainingSpecifiers.push(specifier);\n }\n });\n\n if (hasLanguageModelConverters) {\n if (remainingSpecifiers.length === 0) {\n j(path).remove();\n } else {\n path.value.specifiers = remainingSpecifiers;\n }\n\n const existingAiSdkImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-ai-sdk\" },\n });\n\n if (existingAiSdkImport.size() > 0) {\n existingAiSdkImport.forEach((importPath: any) => {\n aiSdkSpecifiers.forEach((specifier: any) => {\n if (\n !importPath.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n importPath.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n aiSdkSpecifiers,\n j.literal(\"@assistant-ui/react-ai-sdk\"),\n );\n j(path).insertAfter(newImport);\n }\n\n markAsChanged();\n }\n }\n });\n});\n\nexport default migrateToEdgePackage;\n"],"mappings":";AAAA,SAAS,yBAAyB;AAGlC,IAAM,oBAA8B;AAAA;AAAA,EAElC;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,uBAAuB,kBAAkB,CAAC,EAAE,GAAG,MAAM,cAAc,MAAM;AAC7E,QAAM,mBAA6B,CAAC,qBAAqB;AACzD,QAAM,uBAA8B,CAAC;AACrC,MAAI,yBAA8B;AAElC,OACG,KAAK,EAAE,iBAAiB,EACxB,OAAO,CAAC,SAAc,iBAAiB,SAAS,KAAK,MAAM,OAAO,KAAK,CAAC,EACxE,QAAQ,CAAC,SAAc;AACtB,QAAI,wBAAwB;AAC5B,UAAM,sBAA6B,CAAC;AACpC,SAAK,MAAM,WAAW,QAAQ,CAAC,cAAmB;AAChD,UACE,EAAE,gBAAgB,MAAM,SAAS,KACjC,kBAAkB,SAAS,UAAU,SAAS,IAAc,GAC5D;AACA,6BAAqB,KAAK,SAAS;AACnC,gCAAwB;AAAA,MAC1B,OAAO;AACL,4BAAoB,KAAK,SAAS;AAAA,MACpC;AAAA,IACF,CAAC;AACD,QAAI,uBAAuB;AACzB,+BAAyB;AAAA,IAC3B;AACA,QAAI,oBAAoB,WAAW,GAAG;AACpC,QAAE,IAAI,EAAE,OAAO;AACf,oBAAc;AAAA,IAChB,WAAW,oBAAoB,WAAW,KAAK,MAAM,WAAW,QAAQ;AACtE,WAAK,MAAM,aAAa;AACxB,oBAAc;AAAA,IAChB;AAAA,EACF,CAAC;AAGH,MAAI,qBAAqB,SAAS,GAAG;AACnC,UAAM,sBAAsB,KAAK,KAAK,EAAE,mBAAmB;AAAA,MACzD,QAAQ,EAAE,OAAO,6BAA6B;AAAA,IAChD,CAAC;AACD,QAAI,oBAAoB,KAAK,IAAI,GAAG;AAClC,0BAAoB,QAAQ,CAAC,SAAc;AACzC,6BAAqB,QAAQ,CAAC,cAAmB;AAC/C,cACE,CAAC,KAAK,MAAM,WAAW;AAAA,YACrB,CAAC,MAAW,EAAE,SAAS,SAAS,UAAU,SAAS;AAAA,UACrD,GACA;AACA,iBAAK,MAAM,WAAW,KAAK,SAAS;AAAA,UACtC;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAAA,IACH,OAAO;AACL,YAAM,YAAY,EAAE;AAAA,QAClB;AAAA,QACA,EAAE,QAAQ,4BAA4B;AAAA,MACxC;AACA,UAAI,wBAAwB;AAC1B,UAAE,sBAAsB,EAAE,YAAY,SAAS;AAAA,MACjD,OAAO;AACL,cAAM,cAAc,KAAK,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC;AACvD,YAAI,YAAY,KAAK,IAAI,GAAG;AAC1B,sBAAY,aAAa,SAAS;AAAA,QACpC,OAAO;AACL,eAAK,IAAI,EAAE,KAAK,QAAQ,KAAK,QAAQ,SAAS;AAAA,QAChD;AAAA,MACF;AAAA,IACF;AACA,kBAAc;AAAA,EAChB;AAGA,OAAK,KAAK,EAAE,iBAAiB,EAAE,QAAQ,CAAC,SAAc;AACpD,UAAM,cAAsB,KAAK,MAAM,OAAO;AAC9C,QACE,YAAY,WAAW,sBAAsB,MAC5C,YAAY,SAAS,OAAO,KAC3B,YAAY,SAAS,uBAAuB,IAC9C;AACA,WAAK,MAAM,SAAS,EAAE;AAAA,QACpB,YAAY;AAAA,UACV;AAAA,UACA;AAAA,QACF;AAAA,MACF;AACA,oBAAc;AAAA,IAChB;AAAA,EACF,CAAC;AAGD,OAAK,KAAK,EAAE,iBAAiB,EAAE,QAAQ,CAAC,SAAc;AACpD,UAAM,cAAsB,KAAK,MAAM,OAAO;AAC9C,QACE,gBAAgB,8BAChB,gBAAgB,uBAChB;AACA,UAAI,6BAA6B;AACjC,YAAM,sBAA6B,CAAC;AACpC,YAAM,kBAAyB,CAAC;AAEhC,WAAK,MAAM,WAAW,QAAQ,CAAC,cAAmB;AAChD,YACE,EAAE,gBAAgB,MAAM,SAAS,KACjC,kBAAkB,SAAS,UAAU,SAAS,IAAc,GAC5D;AACA,0BAAgB,KAAK,SAAS;AAC9B,uCAA6B;AAAA,QAC/B,OAAO;AACL,8BAAoB,KAAK,SAAS;AAAA,QACpC;AAAA,MACF,CAAC;AAED,UAAI,4BAA4B;AAC9B,YAAI,oBAAoB,WAAW,GAAG;AACpC,YAAE,IAAI,EAAE,OAAO;AAAA,QACjB,OAAO;AACL,eAAK,MAAM,aAAa;AAAA,QAC1B;AAEA,cAAM,sBAAsB,KAAK,KAAK,EAAE,mBAAmB;AAAA,UACzD,QAAQ,EAAE,OAAO,6BAA6B;AAAA,QAChD,CAAC;AAED,YAAI,oBAAoB,KAAK,IAAI,GAAG;AAClC,8BAAoB,QAAQ,CAAC,eAAoB;AAC/C,4BAAgB,QAAQ,CAAC,cAAmB;AAC1C,kBACE,CAAC,WAAW,MAAM,WAAW;AAAA,gBAC3B,CAAC,MAAW,EAAE,SAAS,SAAS,UAAU,SAAS;AAAA,cACrD,GACA;AACA,2BAAW,MAAM,WAAW,KAAK,SAAS;AAAA,cAC5C;AAAA,YACF,CAAC;AAAA,UACH,CAAC;AAAA,QACH,OAAO;AACL,gBAAM,YAAY,EAAE;AAAA,YAClB;AAAA,YACA,EAAE,QAAQ,4BAA4B;AAAA,UACxC;AACA,YAAE,IAAI,EAAE,YAAY,SAAS;AAAA,QAC/B;AAEA,sBAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;AAED,IAAO,6BAAQ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-edge-lib.d.ts","sourceRoot":"","sources":["../../src/lib/install-edge-lib.ts"],"names":[],"mappings":"AAuCA,wBAA8B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"install-edge-lib.d.ts","sourceRoot":"","sources":["../../src/lib/install-edge-lib.ts"],"names":[],"mappings":"AAuCA,wBAA8B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAwD5D"}
|
|
@@ -45,32 +45,32 @@ async function installEdgeLib() {
|
|
|
45
45
|
for (const file of files) {
|
|
46
46
|
const fullPath = path.join(cwd, file);
|
|
47
47
|
const content = fs.readFileSync(fullPath, "utf8");
|
|
48
|
-
if (content.includes("@assistant-ui/react-edge")) {
|
|
48
|
+
if (content.includes("@assistant-ui/react-edge") || content.includes("useChatRuntime") && content.includes("@assistant-ui/react-ai-sdk")) {
|
|
49
49
|
found = true;
|
|
50
50
|
break;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
53
53
|
if (found) {
|
|
54
|
-
if (isPackageInstalled("@assistant-ui/react-
|
|
54
|
+
if (isPackageInstalled("@assistant-ui/react-ai-sdk")) {
|
|
55
55
|
console.log(
|
|
56
|
-
"@assistant-ui/react-
|
|
56
|
+
"@assistant-ui/react-ai-sdk is already installed. Skipping installation."
|
|
57
57
|
);
|
|
58
58
|
return;
|
|
59
59
|
}
|
|
60
60
|
const answer = await askQuestion(
|
|
61
|
-
"Edge Runtime imports were
|
|
61
|
+
"Edge Runtime imports were detected but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) "
|
|
62
62
|
);
|
|
63
63
|
if (answer === "" || answer.toLowerCase().startsWith("y")) {
|
|
64
64
|
const pm = await detect();
|
|
65
65
|
let cmd = "";
|
|
66
66
|
if (pm === "yarn") {
|
|
67
|
-
cmd = "yarn add @assistant-ui/react-
|
|
67
|
+
cmd = "yarn add @assistant-ui/react-ai-sdk";
|
|
68
68
|
} else if (pm === "pnpm") {
|
|
69
|
-
cmd = "pnpm add @assistant-ui/react-
|
|
69
|
+
cmd = "pnpm add @assistant-ui/react-ai-sdk";
|
|
70
70
|
} else if (pm === "bun") {
|
|
71
|
-
cmd = "bun add @assistant-ui/react-
|
|
71
|
+
cmd = "bun add @assistant-ui/react-ai-sdk";
|
|
72
72
|
} else {
|
|
73
|
-
cmd = "npm install @assistant-ui/react-
|
|
73
|
+
cmd = "npm install @assistant-ui/react-ai-sdk";
|
|
74
74
|
}
|
|
75
75
|
try {
|
|
76
76
|
execSync(cmd, { stdio: "inherit" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/install-edge-lib.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { execSync } from \"child_process\";\nimport { sync as globSync } from \"glob\";\nimport * as readline from \"readline\";\nimport { detect } from \"detect-package-manager\";\n\nfunction askQuestion(query: string): Promise<string> {\n return new Promise((resolve) => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n rl.question(query, (answer) => {\n rl.close();\n resolve(answer);\n });\n });\n}\n\nfunction isPackageInstalled(pkg: string): boolean {\n const cwd = process.cwd();\n try {\n const pkgJsonPath = path.join(cwd, \"package.json\");\n if (fs.existsSync(pkgJsonPath)) {\n const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, \"utf8\"));\n const deps = pkgJson.dependencies || {};\n const devDeps = pkgJson.devDependencies || {};\n if (deps[pkg] || devDeps[pkg]) {\n return true;\n }\n }\n } catch {\n // Fall back to node_modules check below.\n }\n const modulePath = path.join(cwd, \"node_modules\", ...pkg.split(\"/\"));\n return fs.existsSync(modulePath);\n}\n\nexport default async function installEdgeLib(): Promise<void> {\n const cwd = process.cwd();\n const pattern = \"**/*.{js,jsx,ts,tsx}\";\n const files = globSync(pattern, {\n cwd,\n ignore: [\"**/node_modules/**\", \"**/dist/**\", \"**/build/**\"],\n });\n\n let found = false;\n for (const file of files) {\n const fullPath = path.join(cwd, file);\n const content = fs.readFileSync(fullPath, \"utf8\");\n if (content.includes(\"@assistant-ui/react-edge\")) {\n found = true;\n break;\n }\n }\n\n if (found) {\n if (isPackageInstalled(\"@assistant-ui/react-
|
|
1
|
+
{"version":3,"sources":["../../src/lib/install-edge-lib.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { execSync } from \"child_process\";\nimport { sync as globSync } from \"glob\";\nimport * as readline from \"readline\";\nimport { detect } from \"detect-package-manager\";\n\nfunction askQuestion(query: string): Promise<string> {\n return new Promise((resolve) => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n rl.question(query, (answer) => {\n rl.close();\n resolve(answer);\n });\n });\n}\n\nfunction isPackageInstalled(pkg: string): boolean {\n const cwd = process.cwd();\n try {\n const pkgJsonPath = path.join(cwd, \"package.json\");\n if (fs.existsSync(pkgJsonPath)) {\n const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, \"utf8\"));\n const deps = pkgJson.dependencies || {};\n const devDeps = pkgJson.devDependencies || {};\n if (deps[pkg] || devDeps[pkg]) {\n return true;\n }\n }\n } catch {\n // Fall back to node_modules check below.\n }\n const modulePath = path.join(cwd, \"node_modules\", ...pkg.split(\"/\"));\n return fs.existsSync(modulePath);\n}\n\nexport default async function installEdgeLib(): Promise<void> {\n const cwd = process.cwd();\n const pattern = \"**/*.{js,jsx,ts,tsx}\";\n const files = globSync(pattern, {\n cwd,\n ignore: [\"**/node_modules/**\", \"**/dist/**\", \"**/build/**\"],\n });\n\n let found = false;\n for (const file of files) {\n const fullPath = path.join(cwd, file);\n const content = fs.readFileSync(fullPath, \"utf8\");\n if (\n content.includes(\"@assistant-ui/react-edge\") ||\n (content.includes(\"useChatRuntime\") &&\n content.includes(\"@assistant-ui/react-ai-sdk\"))\n ) {\n found = true;\n break;\n }\n }\n\n if (found) {\n if (isPackageInstalled(\"@assistant-ui/react-ai-sdk\")) {\n console.log(\n \"@assistant-ui/react-ai-sdk is already installed. Skipping installation.\",\n );\n return;\n }\n\n const answer = await askQuestion(\n \"Edge Runtime imports were detected but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) \",\n );\n if (answer === \"\" || answer.toLowerCase().startsWith(\"y\")) {\n const pm = await detect();\n let cmd = \"\";\n if (pm === \"yarn\") {\n cmd = \"yarn add @assistant-ui/react-ai-sdk\";\n } else if (pm === \"pnpm\") {\n cmd = \"pnpm add @assistant-ui/react-ai-sdk\";\n } else if (pm === \"bun\") {\n cmd = \"bun add @assistant-ui/react-ai-sdk\";\n } else {\n cmd = \"npm install @assistant-ui/react-ai-sdk\";\n }\n try {\n execSync(cmd, { stdio: \"inherit\" });\n } catch (e) {\n console.error(\"Installation failed:\", e);\n }\n } else {\n console.log(\"Skipping installation.\");\n }\n } else {\n console.log(\"No Edge Runtime imports found; skipping installation.\");\n }\n}\n"],"mappings":";AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,gBAAgB;AACzB,SAAS,QAAQ,gBAAgB;AACjC,YAAY,cAAc;AAC1B,SAAS,cAAc;AAEvB,SAAS,YAAY,OAAgC;AACnD,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAM,KAAc,yBAAgB;AAAA,MAClC,OAAO,QAAQ;AAAA,MACf,QAAQ,QAAQ;AAAA,IAClB,CAAC;AACD,OAAG,SAAS,OAAO,CAAC,WAAW;AAC7B,SAAG,MAAM;AACT,cAAQ,MAAM;AAAA,IAChB,CAAC;AAAA,EACH,CAAC;AACH;AAEA,SAAS,mBAAmB,KAAsB;AAChD,QAAM,MAAM,QAAQ,IAAI;AACxB,MAAI;AACF,UAAM,cAAmB,UAAK,KAAK,cAAc;AACjD,QAAO,cAAW,WAAW,GAAG;AAC9B,YAAM,UAAU,KAAK,MAAS,gBAAa,aAAa,MAAM,CAAC;AAC/D,YAAM,OAAO,QAAQ,gBAAgB,CAAC;AACtC,YAAM,UAAU,QAAQ,mBAAmB,CAAC;AAC5C,UAAI,KAAK,GAAG,KAAK,QAAQ,GAAG,GAAG;AAC7B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,QAAQ;AAAA,EAER;AACA,QAAM,aAAkB,UAAK,KAAK,gBAAgB,GAAG,IAAI,MAAM,GAAG,CAAC;AACnE,SAAU,cAAW,UAAU;AACjC;AAEA,eAAO,iBAAuD;AAC5D,QAAM,MAAM,QAAQ,IAAI;AACxB,QAAM,UAAU;AAChB,QAAM,QAAQ,SAAS,SAAS;AAAA,IAC9B;AAAA,IACA,QAAQ,CAAC,sBAAsB,cAAc,aAAa;AAAA,EAC5D,CAAC;AAED,MAAI,QAAQ;AACZ,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAgB,UAAK,KAAK,IAAI;AACpC,UAAM,UAAa,gBAAa,UAAU,MAAM;AAChD,QACE,QAAQ,SAAS,0BAA0B,KAC1C,QAAQ,SAAS,gBAAgB,KAChC,QAAQ,SAAS,4BAA4B,GAC/C;AACA,cAAQ;AACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO;AACT,QAAI,mBAAmB,4BAA4B,GAAG;AACpD,cAAQ;AAAA,QACN;AAAA,MACF;AACA;AAAA,IACF;AAEA,UAAM,SAAS,MAAM;AAAA,MACnB;AAAA,IACF;AACA,QAAI,WAAW,MAAM,OAAO,YAAY,EAAE,WAAW,GAAG,GAAG;AACzD,YAAM,KAAK,MAAM,OAAO;AACxB,UAAI,MAAM;AACV,UAAI,OAAO,QAAQ;AACjB,cAAM;AAAA,MACR,WAAW,OAAO,QAAQ;AACxB,cAAM;AAAA,MACR,WAAW,OAAO,OAAO;AACvB,cAAM;AAAA,MACR,OAAO;AACL,cAAM;AAAA,MACR;AACA,UAAI;AACF,iBAAS,KAAK,EAAE,OAAO,UAAU,CAAC;AAAA,MACpC,SAAS,GAAG;AACV,gBAAQ,MAAM,wBAAwB,CAAC;AAAA,MACzC;AAAA,IACF,OAAO;AACL,cAAQ,IAAI,wBAAwB;AAAA,IACtC;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,uDAAuD;AAAA,EACrE;AACF;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "assistant-ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.58",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"source": "./src/index.ts",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"chalk": "^5.
|
|
7
|
+
"chalk": "^5.5.0",
|
|
8
8
|
"cli-progress": "^3.12.0",
|
|
9
9
|
"commander": "^14.0.0",
|
|
10
10
|
"cross-spawn": "^7.0.6",
|
|
@@ -20,11 +20,11 @@
|
|
|
20
20
|
"@types/cross-spawn": "^6.0.6",
|
|
21
21
|
"@types/debug": "^4.1.12",
|
|
22
22
|
"@types/jscodeshift": "^17.3.0",
|
|
23
|
-
"@types/node": "^24.0
|
|
23
|
+
"@types/node": "^24.3.0",
|
|
24
24
|
"@types/semver": "^7.7.0",
|
|
25
25
|
"eslint": "^9",
|
|
26
|
-
"eslint-config-next": "15.
|
|
27
|
-
"tsx": "^4.20.
|
|
26
|
+
"eslint-config-next": "15.4.6",
|
|
27
|
+
"tsx": "^4.20.4",
|
|
28
28
|
"@assistant-ui/x-buildutils": "0.0.1"
|
|
29
29
|
},
|
|
30
30
|
"files": [
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
import { createTransformer } from "../utils/createTransformer";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"
|
|
7
|
-
"EdgeModelAdapter",
|
|
8
|
-
"EdgeChatAdapter",
|
|
9
|
-
"EdgeRuntimeRequestOptions",
|
|
10
|
-
"createEdgeRuntimeAPI",
|
|
11
|
-
"getEdgeRuntimeResponse",
|
|
3
|
+
// Chat runtime and converter exports moved to react-ai-sdk
|
|
4
|
+
const reactAiSdkExports: string[] = [
|
|
5
|
+
// Chat Runtime (replaces edge runtime)
|
|
6
|
+
"useChatRuntime",
|
|
12
7
|
|
|
13
8
|
// Core Types
|
|
14
9
|
"CoreMessage",
|
|
@@ -24,10 +19,8 @@ const reactEdgeExports: string[] = [
|
|
|
24
19
|
"fromCoreMessage",
|
|
25
20
|
"toCoreMessages",
|
|
26
21
|
"toCoreMessage",
|
|
27
|
-
];
|
|
28
22
|
|
|
29
|
-
// Language model converters
|
|
30
|
-
const reactAiSdkExports: string[] = [
|
|
23
|
+
// Language model converters
|
|
31
24
|
"toLanguageModelMessages",
|
|
32
25
|
"toLanguageModelTools",
|
|
33
26
|
"fromLanguageModelMessages",
|
|
@@ -37,7 +30,6 @@ const reactAiSdkExports: string[] = [
|
|
|
37
30
|
|
|
38
31
|
const migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
|
|
39
32
|
const sourcesToMigrate: string[] = ["@assistant-ui/react"];
|
|
40
|
-
const movedEdgeSpecifiers: any[] = [];
|
|
41
33
|
const movedAiSdkSpecifiers: any[] = [];
|
|
42
34
|
let lastMigratedImportPath: any = null;
|
|
43
35
|
|
|
@@ -49,12 +41,6 @@ const migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
|
|
|
49
41
|
const remainingSpecifiers: any[] = [];
|
|
50
42
|
path.value.specifiers.forEach((specifier: any) => {
|
|
51
43
|
if (
|
|
52
|
-
j.ImportSpecifier.check(specifier) &&
|
|
53
|
-
reactEdgeExports.includes(specifier.imported.name as string)
|
|
54
|
-
) {
|
|
55
|
-
movedEdgeSpecifiers.push(specifier);
|
|
56
|
-
hadMigratedSpecifiers = true;
|
|
57
|
-
} else if (
|
|
58
44
|
j.ImportSpecifier.check(specifier) &&
|
|
59
45
|
reactAiSdkExports.includes(specifier.imported.name as string)
|
|
60
46
|
) {
|
|
@@ -76,43 +62,7 @@ const migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
|
|
|
76
62
|
}
|
|
77
63
|
});
|
|
78
64
|
|
|
79
|
-
// Add imports for react-edge
|
|
80
|
-
if (movedEdgeSpecifiers.length > 0) {
|
|
81
|
-
const existingEdgeImport = root.find(j.ImportDeclaration, {
|
|
82
|
-
source: { value: "@assistant-ui/react-edge" },
|
|
83
|
-
});
|
|
84
|
-
if (existingEdgeImport.size() > 0) {
|
|
85
|
-
existingEdgeImport.forEach((path: any) => {
|
|
86
|
-
movedEdgeSpecifiers.forEach((specifier: any) => {
|
|
87
|
-
if (
|
|
88
|
-
!path.value.specifiers.some(
|
|
89
|
-
(s: any) => s.imported.name === specifier.imported.name,
|
|
90
|
-
)
|
|
91
|
-
) {
|
|
92
|
-
path.value.specifiers.push(specifier);
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
} else {
|
|
97
|
-
const newImport = j.importDeclaration(
|
|
98
|
-
movedEdgeSpecifiers,
|
|
99
|
-
j.literal("@assistant-ui/react-edge"),
|
|
100
|
-
);
|
|
101
|
-
if (lastMigratedImportPath) {
|
|
102
|
-
j(lastMigratedImportPath).insertAfter(newImport);
|
|
103
|
-
} else {
|
|
104
|
-
const firstImport = root.find(j.ImportDeclaration).at(0);
|
|
105
|
-
if (firstImport.size() > 0) {
|
|
106
|
-
firstImport.insertBefore(newImport);
|
|
107
|
-
} else {
|
|
108
|
-
root.get().node.program.body.unshift(newImport);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
markAsChanged();
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
// Add imports for react-ai-sdk
|
|
65
|
+
// Add imports for react-ai-sdk (all edge-related imports now go here)
|
|
116
66
|
if (movedAiSdkSpecifiers.length > 0) {
|
|
117
67
|
const existingAiSdkImport = root.find(j.ImportDeclaration, {
|
|
118
68
|
source: { value: "@assistant-ui/react-ai-sdk" },
|
|
@@ -159,7 +109,7 @@ const migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
|
|
|
159
109
|
path.value.source = j.literal(
|
|
160
110
|
sourceValue.replace(
|
|
161
111
|
"@assistant-ui/react/",
|
|
162
|
-
"@assistant-ui/react-
|
|
112
|
+
"@assistant-ui/react-ai-sdk/",
|
|
163
113
|
),
|
|
164
114
|
);
|
|
165
115
|
markAsChanged();
|
|
@@ -169,7 +119,10 @@ const migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
|
|
|
169
119
|
// Migrate language model converter imports from react-edge to react-ai-sdk
|
|
170
120
|
root.find(j.ImportDeclaration).forEach((path: any) => {
|
|
171
121
|
const sourceValue: string = path.value.source.value;
|
|
172
|
-
if (
|
|
122
|
+
if (
|
|
123
|
+
sourceValue === "@assistant-ui/react-edge" ||
|
|
124
|
+
sourceValue === "@assistant-ui/react"
|
|
125
|
+
) {
|
|
173
126
|
let hasLanguageModelConverters = false;
|
|
174
127
|
const remainingSpecifiers: any[] = [];
|
|
175
128
|
const aiSdkSpecifiers: any[] = [];
|
|
@@ -49,34 +49,38 @@ export default async function installEdgeLib(): Promise<void> {
|
|
|
49
49
|
for (const file of files) {
|
|
50
50
|
const fullPath = path.join(cwd, file);
|
|
51
51
|
const content = fs.readFileSync(fullPath, "utf8");
|
|
52
|
-
if (
|
|
52
|
+
if (
|
|
53
|
+
content.includes("@assistant-ui/react-edge") ||
|
|
54
|
+
(content.includes("useChatRuntime") &&
|
|
55
|
+
content.includes("@assistant-ui/react-ai-sdk"))
|
|
56
|
+
) {
|
|
53
57
|
found = true;
|
|
54
58
|
break;
|
|
55
59
|
}
|
|
56
60
|
}
|
|
57
61
|
|
|
58
62
|
if (found) {
|
|
59
|
-
if (isPackageInstalled("@assistant-ui/react-
|
|
63
|
+
if (isPackageInstalled("@assistant-ui/react-ai-sdk")) {
|
|
60
64
|
console.log(
|
|
61
|
-
"@assistant-ui/react-
|
|
65
|
+
"@assistant-ui/react-ai-sdk is already installed. Skipping installation.",
|
|
62
66
|
);
|
|
63
67
|
return;
|
|
64
68
|
}
|
|
65
69
|
|
|
66
70
|
const answer = await askQuestion(
|
|
67
|
-
"Edge Runtime imports were
|
|
71
|
+
"Edge Runtime imports were detected but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) ",
|
|
68
72
|
);
|
|
69
73
|
if (answer === "" || answer.toLowerCase().startsWith("y")) {
|
|
70
74
|
const pm = await detect();
|
|
71
75
|
let cmd = "";
|
|
72
76
|
if (pm === "yarn") {
|
|
73
|
-
cmd = "yarn add @assistant-ui/react-
|
|
77
|
+
cmd = "yarn add @assistant-ui/react-ai-sdk";
|
|
74
78
|
} else if (pm === "pnpm") {
|
|
75
|
-
cmd = "pnpm add @assistant-ui/react-
|
|
79
|
+
cmd = "pnpm add @assistant-ui/react-ai-sdk";
|
|
76
80
|
} else if (pm === "bun") {
|
|
77
|
-
cmd = "bun add @assistant-ui/react-
|
|
81
|
+
cmd = "bun add @assistant-ui/react-ai-sdk";
|
|
78
82
|
} else {
|
|
79
|
-
cmd = "npm install @assistant-ui/react-
|
|
83
|
+
cmd = "npm install @assistant-ui/react-ai-sdk";
|
|
80
84
|
}
|
|
81
85
|
try {
|
|
82
86
|
execSync(cmd, { stdio: "inherit" });
|