assistant-ui 0.0.92 → 0.0.94
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/utils/createTransformer.d.ts +17 -13
- package/dist/codemods/utils/createTransformer.d.ts.map +1 -1
- package/dist/codemods/utils/createTransformer.js +18 -15
- package/dist/codemods/utils/createTransformer.js.map +1 -1
- package/dist/codemods/v0-11/content-part-to-message-part.d.ts +3 -1
- package/dist/codemods/v0-11/content-part-to-message-part.d.ts.map +1 -1
- package/dist/codemods/v0-11/content-part-to-message-part.js +98 -135
- package/dist/codemods/v0-11/content-part-to-message-part.js.map +1 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.d.ts +3 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.d.ts.map +1 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.js +126 -213
- package/dist/codemods/v0-12/assistant-api-to-aui.js.map +1 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.d.ts +3 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.d.ts.map +1 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.js +33 -38
- package/dist/codemods/v0-12/event-names-to-camelcase.js.map +1 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts +3 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts.map +1 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.js +212 -297
- package/dist/codemods/v0-12/primitive-if-to-aui-if.js.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.d.ts +3 -1
- package/dist/codemods/v0-8/ui-package-split.d.ts.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.js +121 -164
- package/dist/codemods/v0-8/ui-package-split.js.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.d.ts +3 -1
- package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.js +96 -140
- package/dist/codemods/v0-9/edge-package-split.js.map +1 -1
- package/dist/commands/add.d.ts +16 -12
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +53 -64
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/agent.d.ts +5 -1
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +16 -25
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/create.d.ts +34 -30
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +446 -527
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/info.d.ts +5 -1
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +233 -314
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.d.ts +12 -9
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +98 -107
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.d.ts +5 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +175 -214
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/update.d.ts +5 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +46 -55
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upgrade.d.ts +11 -7
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +26 -38
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.js +15 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/create-project.d.ts +24 -21
- package/dist/lib/create-project.d.ts.map +1 -1
- package/dist/lib/create-project.js +227 -297
- package/dist/lib/create-project.js.map +1 -1
- package/dist/lib/install-ai-sdk-lib.d.ts +4 -1
- package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -1
- package/dist/lib/install-ai-sdk-lib.js +12 -8
- package/dist/lib/install-ai-sdk-lib.js.map +1 -1
- package/dist/lib/install-edge-lib.d.ts +4 -1
- package/dist/lib/install-edge-lib.d.ts.map +1 -1
- package/dist/lib/install-edge-lib.js +16 -12
- package/dist/lib/install-edge-lib.js.map +1 -1
- package/dist/lib/install-ui-lib.d.ts +4 -1
- package/dist/lib/install-ui-lib.d.ts.map +1 -1
- package/dist/lib/install-ui-lib.js +12 -8
- package/dist/lib/install-ui-lib.js.map +1 -1
- package/dist/lib/run-spawn.d.ts +7 -4
- package/dist/lib/run-spawn.d.ts.map +1 -1
- package/dist/lib/run-spawn.js +23 -23
- package/dist/lib/run-spawn.js.map +1 -1
- package/dist/lib/transform-options.d.ts +8 -5
- package/dist/lib/transform-options.d.ts.map +1 -1
- package/dist/lib/transform-options.js +0 -2
- package/dist/lib/transform.d.ts +15 -11
- package/dist/lib/transform.d.ts.map +1 -1
- package/dist/lib/transform.js +97 -114
- package/dist/lib/transform.js.map +1 -1
- package/dist/lib/upgrade.d.ts +6 -2
- package/dist/lib/upgrade.d.ts.map +1 -1
- package/dist/lib/upgrade.js +62 -64
- package/dist/lib/upgrade.js.map +1 -1
- package/dist/lib/utils/config.d.ts +21 -18
- package/dist/lib/utils/config.d.ts.map +1 -1
- package/dist/lib/utils/config.js +24 -28
- package/dist/lib/utils/config.js.map +1 -1
- package/dist/lib/utils/file-scanner.d.ts +9 -6
- package/dist/lib/utils/file-scanner.d.ts.map +1 -1
- package/dist/lib/utils/file-scanner.js +44 -51
- package/dist/lib/utils/file-scanner.js.map +1 -1
- package/dist/lib/utils/logger.d.ts +10 -7
- package/dist/lib/utils/logger.d.ts.map +1 -1
- package/dist/lib/utils/logger.js +23 -19
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/package-installer.d.ts +10 -7
- package/dist/lib/utils/package-installer.d.ts.map +1 -1
- package/dist/lib/utils/package-installer.js +18 -19
- package/dist/lib/utils/package-installer.js.map +1 -1
- package/dist/lib/utils/package-manager.d.ts +10 -7
- package/dist/lib/utils/package-manager.d.ts.map +1 -1
- package/dist/lib/utils/package-manager.js +68 -59
- package/dist/lib/utils/package-manager.js.map +1 -1
- package/package.json +7 -7
- package/src/commands/create.ts +1 -9
- package/dist/index.d.ts.map +0 -1
- package/dist/lib/transform-options.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-package-split.js","
|
|
1
|
+
{"version":3,"file":"edge-package-split.js","names":[],"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":";;AAGA,MAAM,oBAA8B;CAElC;CAGA;CACA;CACA;CACA;CACA;CACA;CACA;CAGA;CACA;CACA;CACA;CAGA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,uBAAuB,mBAAmB,EAAE,GAAG,MAAM,oBAAoB;CAC7E,MAAM,mBAA6B,CAAC,qBAAqB;CACzD,MAAM,uBAA8B,CAAC;CACrC,IAAI,yBAA8B;CAElC,KACG,KAAK,EAAE,iBAAiB,EACxB,QAAQ,SAAc,iBAAiB,SAAS,KAAK,MAAM,OAAO,KAAK,CAAC,EACxE,SAAS,SAAc;EACtB,IAAI,wBAAwB;EAC5B,MAAM,sBAA6B,CAAC;EACpC,KAAK,MAAM,WAAW,SAAS,cAAmB;GAChD,IACE,EAAE,gBAAgB,MAAM,SAAS,KACjC,kBAAkB,SAAS,UAAU,SAAS,IAAc,GAC5D;IACA,qBAAqB,KAAK,SAAS;IACnC,wBAAwB;GAC1B,OACE,oBAAoB,KAAK,SAAS;EAEtC,CAAC;EACD,IAAI,uBACF,yBAAyB;EAE3B,IAAI,oBAAoB,WAAW,GAAG;GACpC,EAAE,IAAI,EAAE,OAAO;GACf,cAAc;EAChB,OAAO,IAAI,oBAAoB,WAAW,KAAK,MAAM,WAAW,QAAQ;GACtE,KAAK,MAAM,aAAa;GACxB,cAAc;EAChB;CACF,CAAC;CAGH,IAAI,qBAAqB,SAAS,GAAG;EACnC,MAAM,sBAAsB,KAAK,KAAK,EAAE,mBAAmB,EACzD,QAAQ,EAAE,OAAO,6BAA6B,EAChD,CAAC;EACD,IAAI,oBAAoB,KAAK,IAAI,GAC/B,oBAAoB,SAAS,SAAc;GACzC,qBAAqB,SAAS,cAAmB;IAC/C,IACE,CAAC,KAAK,MAAM,WAAW,MACpB,MAAW,EAAE,SAAS,SAAS,UAAU,SAAS,IACrD,GAEA,KAAK,MAAM,WAAW,KAAK,SAAS;GAExC,CAAC;EACH,CAAC;OACI;GACL,MAAM,YAAY,EAAE,kBAClB,sBACA,EAAE,QAAQ,4BAA4B,CACxC;GACA,IAAI,wBACF,EAAE,sBAAsB,EAAE,YAAY,SAAS;QAC1C;IACL,MAAM,cAAc,KAAK,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC;IACvD,IAAI,YAAY,KAAK,IAAI,GACvB,YAAY,aAAa,SAAS;SAElC,KAAK,IAAI,EAAE,KAAK,QAAQ,KAAK,QAAQ,SAAS;GAElD;EACF;EACA,cAAc;CAChB;CAGA,KAAK,KAAK,EAAE,iBAAiB,EAAE,SAAS,SAAc;EACpD,MAAM,cAAsB,KAAK,MAAM,OAAO;EAC9C,IACE,YAAY,WAAW,sBAAsB,MAC5C,YAAY,SAAS,OAAO,KAC3B,YAAY,SAAS,uBAAuB,IAC9C;GACA,KAAK,MAAM,SAAS,EAAE,QACpB,YAAY,QACV,wBACA,6BACF,CACF;GACA,cAAc;EAChB;CACF,CAAC;CAGD,KAAK,KAAK,EAAE,iBAAiB,EAAE,SAAS,SAAc;EACpD,MAAM,cAAsB,KAAK,MAAM,OAAO;EAC9C,IACE,gBAAgB,8BAChB,gBAAgB,uBAChB;GACA,IAAI,6BAA6B;GACjC,MAAM,sBAA6B,CAAC;GACpC,MAAM,kBAAyB,CAAC;GAEhC,KAAK,MAAM,WAAW,SAAS,cAAmB;IAChD,IACE,EAAE,gBAAgB,MAAM,SAAS,KACjC,kBAAkB,SAAS,UAAU,SAAS,IAAc,GAC5D;KACA,gBAAgB,KAAK,SAAS;KAC9B,6BAA6B;IAC/B,OACE,oBAAoB,KAAK,SAAS;GAEtC,CAAC;GAED,IAAI,4BAA4B;IAC9B,IAAI,oBAAoB,WAAW,GACjC,EAAE,IAAI,EAAE,OAAO;SAEf,KAAK,MAAM,aAAa;IAG1B,MAAM,sBAAsB,KAAK,KAAK,EAAE,mBAAmB,EACzD,QAAQ,EAAE,OAAO,6BAA6B,EAChD,CAAC;IAED,IAAI,oBAAoB,KAAK,IAAI,GAC/B,oBAAoB,SAAS,eAAoB;KAC/C,gBAAgB,SAAS,cAAmB;MAC1C,IACE,CAAC,WAAW,MAAM,WAAW,MAC1B,MAAW,EAAE,SAAS,SAAS,UAAU,SAAS,IACrD,GAEA,WAAW,MAAM,WAAW,KAAK,SAAS;KAE9C,CAAC;IACH,CAAC;SACI;KACL,MAAM,YAAY,EAAE,kBAClB,iBACA,EAAE,QAAQ,4BAA4B,CACxC;KACA,EAAE,IAAI,EAAE,YAAY,SAAS;IAC/B;IAEA,cAAc;GAChB;EACF;CACF,CAAC;AACH,CAAC"}
|
package/dist/commands/add.d.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
|
+
import { PackageManagerName } from "../lib/create-project.js";
|
|
1
2
|
import { Command } from "commander";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
|
|
4
|
+
//#region src/commands/add.d.ts
|
|
5
|
+
interface AddComponentsPlan {
|
|
6
|
+
command: string;
|
|
7
|
+
args: string[];
|
|
6
8
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
declare function createAddComponentsPlan(params: {
|
|
10
|
+
components: string[];
|
|
11
|
+
packageManager: PackageManagerName;
|
|
12
|
+
yes?: boolean;
|
|
13
|
+
overwrite?: boolean;
|
|
14
|
+
cwd?: string;
|
|
15
|
+
path?: string;
|
|
14
16
|
}): AddComponentsPlan;
|
|
15
|
-
|
|
17
|
+
declare const add: Command;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { AddComponentsPlan, add, createAddComponentsPlan };
|
|
16
20
|
//# sourceMappingURL=add.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","
|
|
1
|
+
{"version":3,"file":"add.d.ts","names":[],"sources":["../../src/commands/add.ts"],"mappings":";;;;UAaiB,iBAAA;EACf,OAAA;EACA,IAAI;AAAA;AAAA,iBAGU,uBAAA,CAAwB,MAAA;EACtC,UAAA;EACA,cAAA,EAAgB,kBAAA;EAChB,GAAA;EACA,SAAA;EACA,GAAA;EACA,IAAA;AAAA,IACE,iBAAiB;AAAA,cAqBR,GAAA,EAAG,OAqDZ"}
|
package/dist/commands/add.js
CHANGED
|
@@ -1,70 +1,59 @@
|
|
|
1
|
-
import { Command } from "commander";
|
|
2
1
|
import { logger } from "../lib/utils/logger.js";
|
|
2
|
+
import { SpawnExitError, runSpawn } from "../lib/run-spawn.js";
|
|
3
|
+
import { dlxCommand, resolvePackageManager, resolvePackageManagerForCwd } from "../lib/create-project.js";
|
|
3
4
|
import { hasConfig } from "../lib/utils/config.js";
|
|
4
|
-
import {
|
|
5
|
-
|
|
5
|
+
import { Command } from "commander";
|
|
6
|
+
//#region src/commands/add.ts
|
|
6
7
|
const REGISTRY_BASE_URL = "https://r.assistant-ui.com";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
8
|
+
function createAddComponentsPlan(params) {
|
|
9
|
+
const componentsToAdd = params.components.map((c) => {
|
|
10
|
+
if (!/^[a-zA-Z0-9-/]+$/.test(c)) throw new Error(`Invalid component name: ${c}`);
|
|
11
|
+
return `${REGISTRY_BASE_URL}/${encodeURIComponent(c)}.json`;
|
|
12
|
+
});
|
|
13
|
+
const [command, dlxArgs] = dlxCommand(params.packageManager);
|
|
14
|
+
const args = [
|
|
15
|
+
...dlxArgs,
|
|
16
|
+
"shadcn@latest",
|
|
17
|
+
"add",
|
|
18
|
+
...componentsToAdd
|
|
19
|
+
];
|
|
20
|
+
if (params.yes) args.push("--yes");
|
|
21
|
+
if (params.overwrite) args.push("--overwrite");
|
|
22
|
+
if (params.cwd) args.push("--cwd", params.cwd);
|
|
23
|
+
if (params.path) args.push("--path", params.path);
|
|
24
|
+
return {
|
|
25
|
+
command,
|
|
26
|
+
args
|
|
27
|
+
};
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
path: opts.path,
|
|
55
|
-
});
|
|
56
|
-
try {
|
|
57
|
-
await runSpawn(command, args, opts.cwd);
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
if (error instanceof SpawnExitError) {
|
|
61
|
-
logger.error(`Process exited with code ${error.code}`);
|
|
62
|
-
process.exit(error.code);
|
|
63
|
-
}
|
|
64
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
65
|
-
logger.error(`Failed to add components: ${message}`);
|
|
66
|
-
process.exit(1);
|
|
67
|
-
}
|
|
68
|
-
logger.success("Components added successfully!");
|
|
29
|
+
const add = new Command().name("add").description("add a component to your project").argument("<components...>", "the components to add").option("-y, --yes", "skip confirmation prompt.", true).option("-o, --overwrite", "overwrite existing files.", false).option("-c, --cwd <cwd>", "the working directory. defaults to the current directory.", process.cwd()).option("-p, --path <path>", "the path to add the component to.").option("--use-npm", "explicitly use npm").option("--use-pnpm", "explicitly use pnpm").option("--use-yarn", "explicitly use yarn").option("--use-bun", "explicitly use bun").action(async (components, opts) => {
|
|
30
|
+
if (!hasConfig(opts.cwd)) {
|
|
31
|
+
logger.warn("It looks like you haven't initialized your project yet. Run 'assistant-ui init' first.");
|
|
32
|
+
logger.break();
|
|
33
|
+
}
|
|
34
|
+
logger.step(`Adding ${components.length} component(s)...`);
|
|
35
|
+
const { command, args } = createAddComponentsPlan({
|
|
36
|
+
components,
|
|
37
|
+
packageManager: await resolvePackageManagerForCwd(opts.cwd, resolvePackageManager(opts)),
|
|
38
|
+
yes: opts.yes,
|
|
39
|
+
overwrite: opts.overwrite,
|
|
40
|
+
cwd: opts.cwd,
|
|
41
|
+
path: opts.path
|
|
42
|
+
});
|
|
43
|
+
try {
|
|
44
|
+
await runSpawn(command, args, opts.cwd);
|
|
45
|
+
} catch (error) {
|
|
46
|
+
if (error instanceof SpawnExitError) {
|
|
47
|
+
logger.error(`Process exited with code ${error.code}`);
|
|
48
|
+
process.exit(error.code);
|
|
49
|
+
}
|
|
50
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
51
|
+
logger.error(`Failed to add components: ${message}`);
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
logger.success("Components added successfully!");
|
|
69
55
|
});
|
|
56
|
+
//#endregion
|
|
57
|
+
export { add, createAddComponentsPlan };
|
|
58
|
+
|
|
70
59
|
//# sourceMappingURL=add.js.map
|
package/dist/commands/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","
|
|
1
|
+
{"version":3,"file":"add.js","names":[],"sources":["../../src/commands/add.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { logger } from \"../lib/utils/logger\";\nimport { hasConfig } from \"../lib/utils/config\";\nimport {\n dlxCommand,\n resolvePackageManager,\n resolvePackageManagerForCwd,\n type PackageManagerName,\n} from \"../lib/create-project\";\nimport { runSpawn, SpawnExitError } from \"../lib/run-spawn\";\n\nconst REGISTRY_BASE_URL = \"https://r.assistant-ui.com\";\n\nexport interface AddComponentsPlan {\n command: string;\n args: string[];\n}\n\nexport function createAddComponentsPlan(params: {\n components: string[];\n packageManager: PackageManagerName;\n yes?: boolean;\n overwrite?: boolean;\n cwd?: string;\n path?: string;\n}): AddComponentsPlan {\n const componentsToAdd = params.components.map((c) => {\n if (!/^[a-zA-Z0-9-/]+$/.test(c)) {\n throw new Error(`Invalid component name: ${c}`);\n }\n return `${REGISTRY_BASE_URL}/${encodeURIComponent(c)}.json`;\n });\n\n const [command, dlxArgs] = dlxCommand(params.packageManager);\n const args = [...dlxArgs, \"shadcn@latest\", \"add\", ...componentsToAdd];\n\n // For npm, dlxArgs may already include `--yes` for npx auto-install.\n // This flag is for shadcn's own confirmation prompt.\n if (params.yes) args.push(\"--yes\");\n if (params.overwrite) args.push(\"--overwrite\");\n if (params.cwd) args.push(\"--cwd\", params.cwd);\n if (params.path) args.push(\"--path\", params.path);\n\n return { command, args };\n}\n\nexport const add = new Command()\n .name(\"add\")\n .description(\"add a component to your project\")\n .argument(\"<components...>\", \"the components to add\")\n .option(\"-y, --yes\", \"skip confirmation prompt.\", true)\n .option(\"-o, --overwrite\", \"overwrite existing files.\", false)\n .option(\n \"-c, --cwd <cwd>\",\n \"the working directory. defaults to the current directory.\",\n process.cwd(),\n )\n .option(\"-p, --path <path>\", \"the path to add the component to.\")\n .option(\"--use-npm\", \"explicitly use npm\")\n .option(\"--use-pnpm\", \"explicitly use pnpm\")\n .option(\"--use-yarn\", \"explicitly use yarn\")\n .option(\"--use-bun\", \"explicitly use bun\")\n .action(async (components: string[], opts) => {\n // Check if project is initialized\n if (!hasConfig(opts.cwd)) {\n logger.warn(\n \"It looks like you haven't initialized your project yet. Run 'assistant-ui init' first.\",\n );\n logger.break();\n }\n\n logger.step(`Adding ${components.length} component(s)...`);\n\n const packageManager = await resolvePackageManagerForCwd(\n opts.cwd,\n resolvePackageManager(opts),\n );\n const { command, args } = createAddComponentsPlan({\n components,\n packageManager,\n yes: opts.yes,\n overwrite: opts.overwrite,\n cwd: opts.cwd,\n path: opts.path,\n });\n\n try {\n await runSpawn(command, args, opts.cwd);\n } catch (error) {\n if (error instanceof SpawnExitError) {\n logger.error(`Process exited with code ${error.code}`);\n process.exit(error.code);\n }\n const message = error instanceof Error ? error.message : String(error);\n logger.error(`Failed to add components: ${message}`);\n process.exit(1);\n }\n\n logger.success(\"Components added successfully!\");\n });\n"],"mappings":";;;;;;AAWA,MAAM,oBAAoB;AAO1B,SAAgB,wBAAwB,QAOlB;CACpB,MAAM,kBAAkB,OAAO,WAAW,KAAK,MAAM;EACnD,IAAI,CAAC,mBAAmB,KAAK,CAAC,GAC5B,MAAM,IAAI,MAAM,2BAA2B,GAAG;EAEhD,OAAO,GAAG,kBAAkB,GAAG,mBAAmB,CAAC,EAAE;CACvD,CAAC;CAED,MAAM,CAAC,SAAS,WAAW,WAAW,OAAO,cAAc;CAC3D,MAAM,OAAO;EAAC,GAAG;EAAS;EAAiB;EAAO,GAAG;CAAe;CAIpE,IAAI,OAAO,KAAK,KAAK,KAAK,OAAO;CACjC,IAAI,OAAO,WAAW,KAAK,KAAK,aAAa;CAC7C,IAAI,OAAO,KAAK,KAAK,KAAK,SAAS,OAAO,GAAG;CAC7C,IAAI,OAAO,MAAM,KAAK,KAAK,UAAU,OAAO,IAAI;CAEhD,OAAO;EAAE;EAAS;CAAK;AACzB;AAEA,MAAa,MAAM,IAAI,QAAQ,EAC5B,KAAK,KAAK,EACV,YAAY,iCAAiC,EAC7C,SAAS,mBAAmB,uBAAuB,EACnD,OAAO,aAAa,6BAA6B,IAAI,EACrD,OAAO,mBAAmB,6BAA6B,KAAK,EAC5D,OACC,mBACA,6DACA,QAAQ,IAAI,CACd,EACC,OAAO,qBAAqB,mCAAmC,EAC/D,OAAO,aAAa,oBAAoB,EACxC,OAAO,cAAc,qBAAqB,EAC1C,OAAO,cAAc,qBAAqB,EAC1C,OAAO,aAAa,oBAAoB,EACxC,OAAO,OAAO,YAAsB,SAAS;CAE5C,IAAI,CAAC,UAAU,KAAK,GAAG,GAAG;EACxB,OAAO,KACL,wFACF;EACA,OAAO,MAAM;CACf;CAEA,OAAO,KAAK,UAAU,WAAW,OAAO,iBAAiB;CAMzD,MAAM,EAAE,SAAS,SAAS,wBAAwB;EAChD;EACA,gBAAA,MAN2B,4BAC3B,KAAK,KACL,sBAAsB,IAAI,CAC5B;EAIE,KAAK,KAAK;EACV,WAAW,KAAK;EAChB,KAAK,KAAK;EACV,MAAM,KAAK;CACb,CAAC;CAED,IAAI;EACF,MAAM,SAAS,SAAS,MAAM,KAAK,GAAG;CACxC,SAAS,OAAO;EACd,IAAI,iBAAiB,gBAAgB;GACnC,OAAO,MAAM,4BAA4B,MAAM,MAAM;GACrD,QAAQ,KAAK,MAAM,IAAI;EACzB;EACA,MAAM,UAAU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;EACrE,OAAO,MAAM,6BAA6B,SAAS;EACnD,QAAQ,KAAK,CAAC;CAChB;CAEA,OAAO,QAAQ,gCAAgC;AACjD,CAAC"}
|
package/dist/commands/agent.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","
|
|
1
|
+
{"version":3,"file":"agent.d.ts","names":[],"sources":["../../src/commands/agent.ts"],"mappings":";;;cAuBa,KAAA,EAAK,OAcd"}
|
package/dist/commands/agent.js
CHANGED
|
@@ -1,34 +1,25 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
|
-
import { resolve, dirname } from "node:path";
|
|
3
2
|
import { existsSync } from "node:fs";
|
|
3
|
+
import { dirname, resolve } from "node:path";
|
|
4
4
|
import { fileURLToPath } from "node:url";
|
|
5
5
|
import { launch } from "@assistant-ui/agent-launcher";
|
|
6
|
+
//#region src/commands/agent.ts
|
|
6
7
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
8
|
function getPluginPath() {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
resolve(__dirname, "..", "..", "plugin"),
|
|
12
|
-
resolve(__dirname, "..", "plugin"),
|
|
13
|
-
];
|
|
14
|
-
for (const candidate of candidates) {
|
|
15
|
-
if (existsSync(candidate))
|
|
16
|
-
return candidate;
|
|
17
|
-
}
|
|
18
|
-
throw new Error(`Could not locate the assistant-ui plugin directory. Checked:\n${candidates.map((c) => ` ${c}`).join("\n")}`);
|
|
9
|
+
const candidates = [resolve(__dirname, "..", "..", "plugin"), resolve(__dirname, "..", "plugin")];
|
|
10
|
+
for (const candidate of candidates) if (existsSync(candidate)) return candidate;
|
|
11
|
+
throw new Error(`Could not locate the assistant-ui plugin directory. Checked:\n${candidates.map((c) => ` ${c}`).join("\n")}`);
|
|
19
12
|
}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
pluginDir: getPluginPath(),
|
|
29
|
-
skillName: "assistant-ui",
|
|
30
|
-
prompt,
|
|
31
|
-
dry: opts.dry,
|
|
32
|
-
});
|
|
13
|
+
const agent = new Command().name("agent").description("launch Claude Code with assistant-ui skills").argument("<prompt...>", "prompt for the agent").option("--dry", "print the command instead of running it").action((promptParts, opts) => {
|
|
14
|
+
const prompt = promptParts.join(" ");
|
|
15
|
+
launch({
|
|
16
|
+
pluginDir: getPluginPath(),
|
|
17
|
+
skillName: "assistant-ui",
|
|
18
|
+
prompt,
|
|
19
|
+
dry: opts.dry
|
|
20
|
+
});
|
|
33
21
|
});
|
|
22
|
+
//#endregion
|
|
23
|
+
export { agent };
|
|
24
|
+
|
|
34
25
|
//# sourceMappingURL=agent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","
|
|
1
|
+
{"version":3,"file":"agent.js","names":[],"sources":["../../src/commands/agent.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { resolve, dirname } from \"node:path\";\nimport { existsSync } from \"node:fs\";\nimport { fileURLToPath } from \"node:url\";\nimport { launch } from \"@assistant-ui/agent-launcher\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nfunction getPluginPath(): string {\n // In dist/, plugin is at ../../plugin relative to dist/commands/agent.js\n // In dev (src/), plugin is at ../../plugin relative to src/commands/\n const candidates = [\n resolve(__dirname, \"..\", \"..\", \"plugin\"),\n resolve(__dirname, \"..\", \"plugin\"),\n ];\n for (const candidate of candidates) {\n if (existsSync(candidate)) return candidate;\n }\n throw new Error(\n `Could not locate the assistant-ui plugin directory. Checked:\\n${candidates.map((c) => ` ${c}`).join(\"\\n\")}`,\n );\n}\n\nexport const agent = new Command()\n .name(\"agent\")\n .description(\"launch Claude Code with assistant-ui skills\")\n .argument(\"<prompt...>\", \"prompt for the agent\")\n .option(\"--dry\", \"print the command instead of running it\")\n .action((promptParts: string[], opts) => {\n const prompt = promptParts.join(\" \");\n\n launch({\n pluginDir: getPluginPath(),\n skillName: \"assistant-ui\",\n prompt,\n dry: opts.dry,\n });\n });\n"],"mappings":";;;;;;AAMA,MAAM,YAAY,QAAQ,cAAc,OAAO,KAAK,GAAG,CAAC;AAExD,SAAS,gBAAwB;CAG/B,MAAM,aAAa,CACjB,QAAQ,WAAW,MAAM,MAAM,QAAQ,GACvC,QAAQ,WAAW,MAAM,QAAQ,CACnC;CACA,KAAK,MAAM,aAAa,YACtB,IAAI,WAAW,SAAS,GAAG,OAAO;CAEpC,MAAM,IAAI,MACR,iEAAiE,WAAW,KAAK,MAAM,KAAK,GAAG,EAAE,KAAK,IAAI,GAC5G;AACF;AAEA,MAAa,QAAQ,IAAI,QAAQ,EAC9B,KAAK,OAAO,EACZ,YAAY,6CAA6C,EACzD,SAAS,eAAe,sBAAsB,EAC9C,OAAO,SAAS,yCAAyC,EACzD,QAAQ,aAAuB,SAAS;CACvC,MAAM,SAAS,YAAY,KAAK,GAAG;CAEnC,OAAO;EACL,WAAW,cAAc;EACzB,WAAW;EACX;EACA,KAAK,KAAK;CACZ,CAAC;AACH,CAAC"}
|
|
@@ -1,38 +1,42 @@
|
|
|
1
1
|
import { Command } from "commander";
|
|
2
2
|
import * as p from "@clack/prompts";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
|
|
4
|
+
//#region src/commands/create.d.ts
|
|
5
|
+
interface ProjectMetadata {
|
|
6
|
+
name: string;
|
|
7
|
+
label: string;
|
|
8
|
+
description?: string;
|
|
9
|
+
category: "template" | "example";
|
|
10
|
+
path: string;
|
|
11
|
+
hasLocalComponents: boolean;
|
|
10
12
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
declare const PROJECT_METADATA: ProjectMetadata[];
|
|
14
|
+
declare function resolveProject(params: {
|
|
15
|
+
template?: string;
|
|
16
|
+
example?: string;
|
|
17
|
+
stdinIsTTY?: boolean;
|
|
18
|
+
select?: typeof p.select;
|
|
19
|
+
isCancel?: typeof p.isCancel;
|
|
18
20
|
}): Promise<ProjectMetadata | null>;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
declare function resolveCreateProjectDirectory(params: {
|
|
22
|
+
projectDirectory?: string;
|
|
23
|
+
stdinIsTTY?: boolean;
|
|
22
24
|
}): string | undefined;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
declare function resolvePresetUrl(preset: string): string;
|
|
26
|
+
interface ScaffoldSelectorOptions {
|
|
27
|
+
template?: string;
|
|
28
|
+
example?: string;
|
|
29
|
+
preset?: string;
|
|
30
|
+
native?: boolean;
|
|
31
|
+
ink?: boolean;
|
|
30
32
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
interface ResolvedScaffoldSelector {
|
|
34
|
+
template?: string;
|
|
35
|
+
example?: string;
|
|
36
|
+
preset?: string;
|
|
35
37
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
+
declare function resolveScaffoldSelector(opts: ScaffoldSelectorOptions): ResolvedScaffoldSelector;
|
|
39
|
+
declare const create: Command;
|
|
40
|
+
//#endregion
|
|
41
|
+
export { PROJECT_METADATA, ProjectMetadata, ResolvedScaffoldSelector, ScaffoldSelectorOptions, create, resolveCreateProjectDirectory, resolvePresetUrl, resolveProject, resolveScaffoldSelector };
|
|
38
42
|
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","
|
|
1
|
+
{"version":3,"file":"create.d.ts","names":[],"sources":["../../src/commands/create.ts"],"mappings":";;;;UAiBiB,eAAA;EACf,IAAA;EACA,KAAA;EACA,WAAA;EACA,QAAA;EACA,IAAA;EACA,kBAAA;AAAA;AAAA,cAGW,gBAAA,EAAkB,eAAe;AAAA,iBAsOxB,cAAA,CAAe,MAAA;EACnC,QAAA;EACA,OAAA;EACA,UAAA;EACA,MAAA,UAAgB,CAAA,CAAE,MAAA;EAClB,QAAA,UAAkB,CAAA,CAAE,QAAA;AAAA,IAClB,OAAA,CAAQ,eAAA;AAAA,iBA2EI,6BAAA,CAA8B,MAAA;EAC5C,gBAAA;EACA,UAAA;AAAA;AAAA,iBAYc,gBAAA,CAAiB,MAAc;AAAA,UAO9B,uBAAA;EACf,QAAA;EACA,OAAA;EACA,MAAA;EACA,MAAA;EACA,GAAA;AAAA;AAAA,UAGe,wBAAA;EACf,QAAA;EACA,OAAA;EACA,MAAA;AAAA;AAAA,iBAac,uBAAA,CACd,IAAA,EAAM,uBAAA,GACL,wBAAwB;AAAA,cAoCd,MAAA,EAAM,OAmPf"}
|