assistant-ui 0.0.91 → 0.0.93

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 (124) hide show
  1. package/README.md +32 -108
  2. package/dist/codemods/utils/createTransformer.d.ts +17 -13
  3. package/dist/codemods/utils/createTransformer.d.ts.map +1 -1
  4. package/dist/codemods/utils/createTransformer.js +18 -15
  5. package/dist/codemods/utils/createTransformer.js.map +1 -1
  6. package/dist/codemods/v0-11/content-part-to-message-part.d.ts +3 -1
  7. package/dist/codemods/v0-11/content-part-to-message-part.d.ts.map +1 -1
  8. package/dist/codemods/v0-11/content-part-to-message-part.js +98 -135
  9. package/dist/codemods/v0-11/content-part-to-message-part.js.map +1 -1
  10. package/dist/codemods/v0-12/assistant-api-to-aui.d.ts +3 -1
  11. package/dist/codemods/v0-12/assistant-api-to-aui.d.ts.map +1 -1
  12. package/dist/codemods/v0-12/assistant-api-to-aui.js +126 -213
  13. package/dist/codemods/v0-12/assistant-api-to-aui.js.map +1 -1
  14. package/dist/codemods/v0-12/event-names-to-camelcase.d.ts +3 -1
  15. package/dist/codemods/v0-12/event-names-to-camelcase.d.ts.map +1 -1
  16. package/dist/codemods/v0-12/event-names-to-camelcase.js +33 -38
  17. package/dist/codemods/v0-12/event-names-to-camelcase.js.map +1 -1
  18. package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts +3 -1
  19. package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts.map +1 -1
  20. package/dist/codemods/v0-12/primitive-if-to-aui-if.js +212 -297
  21. package/dist/codemods/v0-12/primitive-if-to-aui-if.js.map +1 -1
  22. package/dist/codemods/v0-8/ui-package-split.d.ts +3 -1
  23. package/dist/codemods/v0-8/ui-package-split.d.ts.map +1 -1
  24. package/dist/codemods/v0-8/ui-package-split.js +121 -164
  25. package/dist/codemods/v0-8/ui-package-split.js.map +1 -1
  26. package/dist/codemods/v0-9/edge-package-split.d.ts +3 -1
  27. package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -1
  28. package/dist/codemods/v0-9/edge-package-split.js +96 -140
  29. package/dist/codemods/v0-9/edge-package-split.js.map +1 -1
  30. package/dist/commands/add.d.ts +18 -1
  31. package/dist/commands/add.d.ts.map +1 -1
  32. package/dist/commands/add.js +54 -49
  33. package/dist/commands/add.js.map +1 -1
  34. package/dist/commands/agent.d.ts +5 -1
  35. package/dist/commands/agent.d.ts.map +1 -1
  36. package/dist/commands/agent.js +16 -25
  37. package/dist/commands/agent.js.map +1 -1
  38. package/dist/commands/create.d.ts +36 -26
  39. package/dist/commands/create.d.ts.map +1 -1
  40. package/dist/commands/create.js +458 -519
  41. package/dist/commands/create.js.map +1 -1
  42. package/dist/commands/info.d.ts +5 -1
  43. package/dist/commands/info.d.ts.map +1 -1
  44. package/dist/commands/info.js +233 -314
  45. package/dist/commands/info.js.map +1 -1
  46. package/dist/commands/init.d.ts +12 -9
  47. package/dist/commands/init.d.ts.map +1 -1
  48. package/dist/commands/init.js +98 -136
  49. package/dist/commands/init.js.map +1 -1
  50. package/dist/commands/mcp.d.ts +5 -1
  51. package/dist/commands/mcp.d.ts.map +1 -1
  52. package/dist/commands/mcp.js +175 -214
  53. package/dist/commands/mcp.js.map +1 -1
  54. package/dist/commands/update.d.ts +5 -1
  55. package/dist/commands/update.d.ts.map +1 -1
  56. package/dist/commands/update.js +46 -55
  57. package/dist/commands/update.js.map +1 -1
  58. package/dist/commands/upgrade.d.ts +11 -7
  59. package/dist/commands/upgrade.d.ts.map +1 -1
  60. package/dist/commands/upgrade.js +26 -38
  61. package/dist/commands/upgrade.js.map +1 -1
  62. package/dist/index.d.ts +1 -3
  63. package/dist/index.js +15 -14
  64. package/dist/index.js.map +1 -1
  65. package/dist/lib/create-project.d.ts +27 -10
  66. package/dist/lib/create-project.d.ts.map +1 -1
  67. package/dist/lib/create-project.js +239 -277
  68. package/dist/lib/create-project.js.map +1 -1
  69. package/dist/lib/install-ai-sdk-lib.d.ts +4 -1
  70. package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -1
  71. package/dist/lib/install-ai-sdk-lib.js +12 -8
  72. package/dist/lib/install-ai-sdk-lib.js.map +1 -1
  73. package/dist/lib/install-edge-lib.d.ts +4 -1
  74. package/dist/lib/install-edge-lib.d.ts.map +1 -1
  75. package/dist/lib/install-edge-lib.js +16 -12
  76. package/dist/lib/install-edge-lib.js.map +1 -1
  77. package/dist/lib/install-ui-lib.d.ts +4 -1
  78. package/dist/lib/install-ui-lib.d.ts.map +1 -1
  79. package/dist/lib/install-ui-lib.js +12 -8
  80. package/dist/lib/install-ui-lib.js.map +1 -1
  81. package/dist/lib/run-spawn.d.ts +9 -0
  82. package/dist/lib/run-spawn.d.ts.map +1 -0
  83. package/dist/lib/run-spawn.js +26 -0
  84. package/dist/lib/run-spawn.js.map +1 -0
  85. package/dist/lib/transform-options.d.ts +8 -5
  86. package/dist/lib/transform-options.d.ts.map +1 -1
  87. package/dist/lib/transform-options.js +0 -2
  88. package/dist/lib/transform.d.ts +15 -11
  89. package/dist/lib/transform.d.ts.map +1 -1
  90. package/dist/lib/transform.js +97 -114
  91. package/dist/lib/transform.js.map +1 -1
  92. package/dist/lib/upgrade.d.ts +6 -2
  93. package/dist/lib/upgrade.d.ts.map +1 -1
  94. package/dist/lib/upgrade.js +62 -64
  95. package/dist/lib/upgrade.js.map +1 -1
  96. package/dist/lib/utils/config.d.ts +21 -18
  97. package/dist/lib/utils/config.d.ts.map +1 -1
  98. package/dist/lib/utils/config.js +24 -28
  99. package/dist/lib/utils/config.js.map +1 -1
  100. package/dist/lib/utils/file-scanner.d.ts +9 -6
  101. package/dist/lib/utils/file-scanner.d.ts.map +1 -1
  102. package/dist/lib/utils/file-scanner.js +44 -51
  103. package/dist/lib/utils/file-scanner.js.map +1 -1
  104. package/dist/lib/utils/logger.d.ts +10 -7
  105. package/dist/lib/utils/logger.d.ts.map +1 -1
  106. package/dist/lib/utils/logger.js +23 -19
  107. package/dist/lib/utils/logger.js.map +1 -1
  108. package/dist/lib/utils/package-installer.d.ts +10 -7
  109. package/dist/lib/utils/package-installer.d.ts.map +1 -1
  110. package/dist/lib/utils/package-installer.js +18 -19
  111. package/dist/lib/utils/package-installer.js.map +1 -1
  112. package/dist/lib/utils/package-manager.d.ts +10 -7
  113. package/dist/lib/utils/package-manager.d.ts.map +1 -1
  114. package/dist/lib/utils/package-manager.js +68 -59
  115. package/dist/lib/utils/package-manager.js.map +1 -1
  116. package/package.json +7 -7
  117. package/plugin/skills/assistant-ui/SKILL.md +2 -2
  118. package/src/commands/add.ts +67 -30
  119. package/src/commands/create.ts +116 -84
  120. package/src/commands/init.ts +9 -42
  121. package/src/lib/create-project.ts +123 -74
  122. package/src/lib/run-spawn.ts +32 -0
  123. package/dist/index.d.ts.map +0 -1
  124. package/dist/lib/transform-options.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"edge-package-split.js","sourceRoot":"","sources":["../../../src/codemods/v0-9/edge-package-split.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sCAAmC;AAE/D,2DAA2D;AAC3D,MAAM,iBAAiB,GAAa;IAClC,uCAAuC;IACvC,gBAAgB;IAEhB,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,sBAAsB;IACtB,mBAAmB;IACnB,qBAAqB;IACrB,0BAA0B;IAC1B,yBAAyB;IAEzB,0BAA0B;IAC1B,kBAAkB;IAClB,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IAEf,4BAA4B;IAC5B,yBAAyB;IACzB,sBAAsB;IACtB,2BAA2B;IAC3B,wBAAwB;IACxB,8BAA8B;CAC/B,CAAC;AAEF,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE;IAC5E,MAAM,gBAAgB,GAAa,CAAC,qBAAqB,CAAC,CAAC;IAC3D,MAAM,oBAAoB,GAAU,EAAE,CAAC;IACvC,IAAI,sBAAsB,GAAQ,IAAI,CAAC;IAEvC,IAAI;SACD,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACzE,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;QACrB,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAClC,MAAM,mBAAmB,GAAU,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAc,EAAE,EAAE;YAC/C,IACE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;gBAClC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAc,CAAC,EAC7D,CAAC;gBACD,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACrC,qBAAqB,GAAG,IAAI,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,qBAAqB,EAAE,CAAC;YAC1B,sBAAsB,GAAG,IAAI,CAAC;QAChC,CAAC;QACD,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;QAClB,CAAC;aAAM,IAAI,mBAAmB,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC;YAC5C,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,sEAAsE;IACtE,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE;YACzD,MAAM,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE;SAChD,CAAC,CAAC;QACH,IAAI,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACnC,mBAAmB,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;gBACxC,oBAAoB,CAAC,OAAO,CAAC,CAAC,SAAc,EAAE,EAAE;oBAC9C,IACE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CACzB,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,CAAC,IAAI,CACxD,EACD,CAAC;wBACD,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,SAAS,GAAG,CAAC,CAAC,iBAAiB,CACnC,oBAAoB,EACpB,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CACxC,CAAC;YACF,IAAI,sBAAsB,EAAE,CAAC;gBAC3B,CAAC,CAAC,sBAAsB,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACnD,CAAC;iBAAM,CAAC;gBACN,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACzD,IAAI,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC3B,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;QACH,CAAC;QACD,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;QACnD,MAAM,WAAW,GAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACpD,IACE,WAAW,CAAC,UAAU,CAAC,sBAAsB,CAAC;YAC9C,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC5B,WAAW,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,EAChD,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAC3B,WAAW,CAAC,OAAO,CACjB,sBAAsB,EACtB,6BAA6B,CAC9B,CACF,CAAC;YACF,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;QACnD,MAAM,WAAW,GAAW,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QACpD,IACE,WAAW,KAAK,0BAA0B;YAC1C,WAAW,KAAK,qBAAqB,EACrC,CAAC;YACD,IAAI,0BAA0B,GAAG,KAAK,CAAC;YACvC,MAAM,mBAAmB,GAAU,EAAE,CAAC;YACtC,MAAM,eAAe,GAAU,EAAE,CAAC;YAElC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAc,EAAE,EAAE;gBAC/C,IACE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;oBAClC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAc,CAAC,EAC7D,CAAC;oBACD,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAChC,0BAA0B,GAAG,IAAI,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACN,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,0BAA0B,EAAE,CAAC;gBAC/B,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC;gBAC9C,CAAC;gBAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE;oBACzD,MAAM,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE;iBAChD,CAAC,CAAC;gBAEH,IAAI,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;oBACnC,mBAAmB,CAAC,OAAO,CAAC,CAAC,UAAe,EAAE,EAAE;wBAC9C,eAAe,CAAC,OAAO,CAAC,CAAC,SAAc,EAAE,EAAE;4BACzC,IACE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAC/B,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,CAAC,IAAI,CACxD,EACD,CAAC;gCACD,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;4BAC9C,CAAC;wBACH,CAAC,CAAC,CAAC;oBACL,CAAC,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,SAAS,GAAG,CAAC,CAAC,iBAAiB,CACnC,eAAe,EACf,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CACxC,CAAC;oBACF,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBACjC,CAAC;gBAED,aAAa,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
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":"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"}
@@ -1,3 +1,20 @@
1
+ import { PackageManagerName } from "../lib/create-project.js";
1
2
  import { Command } from "commander";
2
- export declare const add: Command;
3
+
4
+ //#region src/commands/add.d.ts
5
+ interface AddComponentsPlan {
6
+ command: string;
7
+ args: string[];
8
+ }
9
+ declare function createAddComponentsPlan(params: {
10
+ components: string[];
11
+ packageManager: PackageManagerName;
12
+ yes?: boolean;
13
+ overwrite?: boolean;
14
+ cwd?: string;
15
+ path?: string;
16
+ }): AddComponentsPlan;
17
+ declare const add: Command;
18
+ //#endregion
19
+ export { AddComponentsPlan, add, createAddComponentsPlan };
3
20
  //# sourceMappingURL=add.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,GAAG,SAuDZ,CAAC"}
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"}
@@ -1,54 +1,59 @@
1
- import { Command } from "commander";
2
- import { spawn } from "cross-spawn";
3
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";
4
4
  import { hasConfig } from "../lib/utils/config.js";
5
+ import { Command } from "commander";
6
+ //#region src/commands/add.ts
5
7
  const REGISTRY_BASE_URL = "https://r.assistant-ui.com";
6
- export const add = new Command()
7
- .name("add")
8
- .description("add a component to your project")
9
- .argument("<components...>", "the components to add")
10
- .option("-y, --yes", "skip confirmation prompt.", true)
11
- .option("-o, --overwrite", "overwrite existing files.", false)
12
- .option("-c, --cwd <cwd>", "the working directory. defaults to the current directory.", process.cwd())
13
- .option("-p, --path <path>", "the path to add the component to.")
14
- .action((components, opts) => {
15
- // Check if project is initialized
16
- if (!hasConfig(opts.cwd)) {
17
- logger.warn("It looks like you haven't initialized your project yet. Run 'assistant-ui init' first.");
18
- logger.break();
19
- }
20
- const componentsToAdd = components.map((c) => {
21
- if (!/^[a-zA-Z0-9-/]+$/.test(c)) {
22
- throw new Error(`Invalid component name: ${c}`);
23
- }
24
- return `${REGISTRY_BASE_URL}/${encodeURIComponent(c)}.json`;
25
- });
26
- logger.step(`Adding ${components.length} component(s)...`);
27
- const args = [`shadcn@latest`, "add", ...componentsToAdd];
28
- if (opts.yes)
29
- args.push("--yes");
30
- if (opts.overwrite)
31
- args.push("--overwrite");
32
- if (opts.cwd)
33
- args.push("--cwd", opts.cwd);
34
- if (opts.path)
35
- args.push("--path", opts.path);
36
- const child = spawn("npx", args, {
37
- stdio: "inherit",
38
- shell: true,
39
- });
40
- child.on("error", (error) => {
41
- logger.error(`Failed to add components: ${error.message}`);
42
- process.exit(1);
43
- });
44
- child.on("close", (code) => {
45
- if (code !== 0) {
46
- logger.error(`Process exited with code ${code}`);
47
- process.exit(code || 1);
48
- }
49
- else {
50
- logger.success("Components added successfully!");
51
- }
52
- });
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
+ };
28
+ }
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!");
53
55
  });
56
+ //#endregion
57
+ export { add, createAddComponentsPlan };
58
+
54
59
  //# sourceMappingURL=add.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
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"}
@@ -1,3 +1,7 @@
1
1
  import { Command } from "commander";
2
- export declare const agent: Command;
2
+
3
+ //#region src/commands/agent.d.ts
4
+ declare const agent: Command;
5
+ //#endregion
6
+ export { agent };
3
7
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,KAAK,SAcd,CAAC"}
1
+ {"version":3,"file":"agent.d.ts","names":[],"sources":["../../src/commands/agent.ts"],"mappings":";;;cAuBa,KAAA,EAAK,OAcd"}
@@ -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
- // In dist/, plugin is at ../../plugin relative to dist/commands/agent.js
9
- // In dev (src/), plugin is at ../../plugin relative to src/commands/
10
- const candidates = [
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
- export const agent = new Command()
21
- .name("agent")
22
- .description("launch Claude Code with assistant-ui skills")
23
- .argument("<prompt...>", "prompt for the agent")
24
- .option("--dry", "print the command instead of running it")
25
- .action((promptParts, opts) => {
26
- const prompt = promptParts.join(" ");
27
- launch({
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","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,SAAS,aAAa;IACpB,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC;QACxC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC;KACnC,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAC9C,CAAC;IACD,MAAM,IAAI,KAAK,CACb,iEAAiE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9G,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE;KAC/B,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,6CAA6C,CAAC;KAC1D,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;KAC/C,MAAM,CAAC,OAAO,EAAE,yCAAyC,CAAC;KAC1D,MAAM,CAAC,CAAC,WAAqB,EAAE,IAAI,EAAE,EAAE;IACtC,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,CAAC;QACL,SAAS,EAAE,aAAa,EAAE;QAC1B,SAAS,EAAE,cAAc;QACzB,MAAM;QACN,GAAG,EAAE,IAAI,CAAC,GAAG;KACd,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
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,32 +1,42 @@
1
1
  import { Command } from "commander";
2
2
  import * as p from "@clack/prompts";
3
- import { type PackageManagerName } from "../lib/create-project.js";
4
- export interface ProjectMetadata {
5
- name: string;
6
- label: string;
7
- description?: string;
8
- category: "template" | "example";
9
- path: string;
10
- hasLocalComponents: boolean;
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;
11
12
  }
12
- export declare const PROJECT_METADATA: ProjectMetadata[];
13
- export declare function resolveProject(params: {
14
- template?: string;
15
- example?: string;
16
- stdinIsTTY?: boolean;
17
- select?: typeof p.select;
18
- isCancel?: typeof p.isCancel;
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;
19
20
  }): Promise<ProjectMetadata | null>;
20
- export declare function resolveCreateProjectDirectory(params: {
21
- projectDirectory?: string;
22
- stdinIsTTY?: boolean;
21
+ declare function resolveCreateProjectDirectory(params: {
22
+ projectDirectory?: string;
23
+ stdinIsTTY?: boolean;
23
24
  }): string | undefined;
24
- export declare function resolvePackageManager(opts: {
25
- useNpm?: boolean;
26
- usePnpm?: boolean;
27
- useYarn?: boolean;
28
- useBun?: boolean;
29
- }): PackageManagerName | undefined;
30
- export declare function resolvePresetUrl(preset: string): string;
31
- export declare const create: Command;
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;
32
+ }
33
+ interface ResolvedScaffoldSelector {
34
+ template?: string;
35
+ example?: string;
36
+ preset?: string;
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 };
32
42
  //# sourceMappingURL=create.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AAEpC,OAAO,EAML,KAAK,kBAAkB,EACxB,iCAA8B;AAE/B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,gBAAgB,EAAE,eAAe,EA2N7C,CAAC;AAmBF,wBAAsB,cAAc,CAAC,MAAM,EAAE;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC;CAC9B,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyElC;AAiCD,wBAAgB,6BAA6B,CAAC,MAAM,EAAE;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,MAAM,GAAG,SAAS,CAMrB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,kBAAkB,GAAG,SAAS,CAMjC;AAKD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKvD;AAED,eAAO,MAAM,MAAM,SAsOf,CAAC"}
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,iBA8OxB,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"}