@superdesign/cli 0.1.8 → 0.1.9

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/README.md CHANGED
@@ -39,9 +39,9 @@ Use these to discover style direction, references, and brand context:
39
39
  - **Search prompt library** (style/components/pages)
40
40
 
41
41
  ```bash
42
- superdesign search-prompts --keyword "<keyword>" --json
42
+ superdesign search-prompts --query "<query>" --json
43
43
  superdesign search-prompts --tags "style" --json
44
- superdesign search-prompts --tags "style" --keyword "<style keyword>" --json
44
+ superdesign search-prompts --tags "style" --query "<style query>" --json
45
45
  ```
46
46
 
47
47
  - **Get full prompt details**
@@ -59,7 +59,7 @@ Use these to discover style direction, references, and brand context:
59
59
 
60
60
  Use design agent to generate high quality design drafts:
61
61
 
62
- - Create project (supports prompt / prompt file / HTML)
62
+ - Create project (auto-detects `.superdesign/design-system.md` as prompt)
63
63
  - Create design draft
64
64
  - Iterate design draft (replace / branch)
65
65
  - Plan flow pages → execute flow pages
@@ -75,7 +75,7 @@ Use design agent to generate high quality design drafts:
75
75
  4. Ask user whether ready to design in superdesign OR implement UI directly
76
76
  5. If yes to superdesign
77
77
  5.1 Create/update a pixel perfect html replica of current UI of page that we will design on top of in `.superdesign/replica_html_template/<name>.html` (html should only contain & reflect how UI look now, the actual design should be handled by superdesign agent)
78
- 5.2 Create project with this replica html + design system guide
78
+ 5.2 Create project with this replica html
79
79
  5.3 Start desigining by iterating & branching design draft based on designDraft ID returned from project
80
80
 
81
81
  ## Always-on rules
@@ -192,11 +192,11 @@ Then in the iterate command:
192
192
  ```bash
193
193
  superdesign create-project \
194
194
  --title "<feature>" \
195
- --html-file .superdesign/replica_html_template/<file>.html \
196
- --set-project-prompt-file .superdesign/design-system.md \
195
+ --template .superdesign/replica_html_template/<file>.html \
197
196
  --json
198
197
  ```
199
198
  → Note: `draftId` in response is the baseline draft
199
+ → Auto-detects `.superdesign/design-system.md` as project prompt
200
200
  3.4 Branch designs from baseline (use `draftId` from step 3.3)
201
201
  ```bash
202
202
  superdesign iterate-design-draft \
@@ -225,7 +225,7 @@ superdesign execute-flow-pages \
225
225
  #### Get HTML reference from a draft
226
226
 
227
227
  ```bash
228
- superdesign get-design --draft-id <draftId> --output ./design.html
228
+ superdesign get-design --draft-id <draftId>
229
229
  ```
230
230
 
231
231
  ---
@@ -234,16 +234,14 @@ superdesign get-design --draft-id <draftId> --output ./design.html
234
234
 
235
235
  ```bash
236
236
  # Inspirations
237
- superdesign search-prompts --keyword "<keyword>" --json
237
+ superdesign search-prompts --query "<query>" --json
238
238
  superdesign search-prompts --tags "style" --json
239
239
  superdesign get-prompts --slugs "<slug1,slug2>" --json
240
240
  superdesign extract-brand-guide --url https://example.com --json
241
241
 
242
- # Canvas - Create project
243
- # Options: -s/--set-project-prompt (inline), --set-project-prompt-file (from file)
244
- superdesign create-project --title "X" --set-project-prompt "..." --json
245
- superdesign create-project --title "X" --set-project-prompt-file .superdesign/design-system.md --json
246
- superdesign create-project --title "X" --html-file ./index.html --set-project-prompt-file .superdesign/design-system.md --json
242
+ # Canvas - Create project (auto-detects .superdesign/design-system.md as prompt)
243
+ superdesign create-project --title "X" --json
244
+ superdesign create-project --title "X" --template ./index.html --json
247
245
 
248
246
  # Iterate: replace mode (single variation, updates in place)
249
247
  superdesign iterate-design-draft --draft-id <id> -p "..." --mode replace --json
@@ -12,7 +12,7 @@ export declare const POLL_TIMEOUT_MS: number;
12
12
  export declare const AUTH_POLL_INTERVAL_MS = 2000;
13
13
  export declare const AUTH_POLL_TIMEOUT_MS: number;
14
14
  /** CLI version - should match package.json */
15
- export declare const CLI_VERSION = "0.1.8";
15
+ export declare const CLI_VERSION = "0.1.9";
16
16
  /** PostHog analytics configuration */
17
17
  export declare const POSTHOG_KEY: string;
18
18
  export declare const POSTHOG_HOST: string;
package/dist/index.cjs CHANGED
@@ -316,7 +316,7 @@ var __webpack_exports__ = {};
316
316
  try {
317
317
  startSpinner('Creating auth session...');
318
318
  const session = await createSession({
319
- cliVersion: "0.1.8",
319
+ cliVersion: "0.1.9",
320
320
  os: `${external_os_namespaceObject.platform()} ${external_os_namespaceObject.release()}`,
321
321
  hostname: external_os_namespaceObject.hostname()
322
322
  });
@@ -724,23 +724,24 @@ superdesign --help
724
724
  process.exit(EXIT_CODES.VALIDATION_ERROR);
725
725
  }
726
726
  }
727
- function readFileContent(filePath, inlineContent, fileType) {
728
- if (filePath) {
729
- if (!(0, external_fs_namespaceObject.existsSync)(filePath)) {
730
- output_error(`${fileType} file not found: ${filePath}`);
731
- process.exit(EXIT_CODES.VALIDATION_ERROR);
732
- }
733
- return (0, external_fs_namespaceObject.readFileSync)(filePath, 'utf-8');
727
+ function readFileIfExists(filePath) {
728
+ if ((0, external_fs_namespaceObject.existsSync)(filePath)) return (0, external_fs_namespaceObject.readFileSync)(filePath, 'utf-8');
729
+ }
730
+ function readFileOrError(filePath, fileType) {
731
+ if (!(0, external_fs_namespaceObject.existsSync)(filePath)) {
732
+ output_error(`${fileType} file not found: ${filePath}`);
733
+ process.exit(EXIT_CODES.VALIDATION_ERROR);
734
734
  }
735
- return inlineContent;
735
+ return (0, external_fs_namespaceObject.readFileSync)(filePath, 'utf-8');
736
736
  }
737
737
  function createCreateProjectCommand() {
738
- const command = new external_commander_namespaceObject.Command('create-project').description('Create a new SuperDesign project').requiredOption('--title <title>', 'Project title').option('--html <html>', 'Initial HTML content for first draft').option('--html-file <path>', 'Path to HTML file for first draft').option('-s, --set-project-prompt <prompt>', 'System prompt for the AI agent').option('--set-project-prompt-file <path>', 'Path to markdown file containing system prompt').option('--device <mode>', 'Device mode for draft (mobile, tablet, desktop)', 'desktop').option('--json', 'Output in JSON format').option('--no-open', 'Do not open project in browser after creation').action(async (options)=>{
738
+ const command = new external_commander_namespaceObject.Command('create-project').description('Create a new SuperDesign project').requiredOption('--title <title>', 'Project title').option('--template <path>', 'Path to HTML template file for first draft').option('--device <mode>', 'Device mode for html template (mobile, tablet, desktop)', 'desktop').option('--json', 'Output in JSON format').action(async (options)=>{
739
739
  if (options.json) setJsonMode(true);
740
740
  job_runner_requireAuth(manager_isAuthenticated);
741
741
  validateDeviceMode(options.device);
742
- const htmlContent = readFileContent(options.htmlFile, options.html, 'HTML');
743
- const promptContent = readFileContent(options.setProjectPromptFile, options.setProjectPrompt, 'Prompt');
742
+ const htmlContent = options.template ? readFileOrError(options.template, 'Template') : void 0;
743
+ const designSystemPath = '.superdesign/design-system.md';
744
+ const promptContent = readFileIfExists(designSystemPath);
744
745
  startSpinner('Creating project...');
745
746
  try {
746
747
  const project = await createProject({
@@ -750,10 +751,8 @@ superdesign --help
750
751
  deviceMode: options.device
751
752
  });
752
753
  succeedSpinner('Project created successfully!');
753
- if (options.open) {
754
- const urlWithLive = `${project.projectUrl}?live=1`;
755
- await openBrowser(urlWithLive);
756
- }
754
+ const urlWithLive = `${project.projectUrl}?live=1`;
755
+ await openBrowser(urlWithLive);
757
756
  if (isJsonMode()) output({
758
757
  projectId: project.projectId,
759
758
  title: project.title,
@@ -801,7 +800,7 @@ superdesign --help
801
800
  return response.data;
802
801
  }
803
802
  function createCreateDesignDraftCommand() {
804
- const command = new external_commander_namespaceObject.Command('create-design-draft').description('Create a design draft using AI generation').requiredOption('--project-id <id>', 'Project ID').requiredOption('--title <title>', 'Draft title').requiredOption('-p, --prompt <prompt>', 'Design prompt for AI generation').option('--device <mode>', 'Device mode (mobile, tablet, desktop)', 'desktop').option('--json', 'Output in JSON format').action(async (options)=>{
803
+ const command = new external_commander_namespaceObject.Command('create-design-draft').description('Create a design draft from scratch without any reference, Default dont use this, use iterate-design-draft instead').requiredOption('--project-id <id>', 'Project ID').requiredOption('--title <title>', 'Draft title').requiredOption('-p, --prompt <prompt>', 'Design prompt for AI generation').option('--device <mode>', 'Device mode (mobile, tablet, desktop)', 'desktop').option('--json', 'Output in JSON format').action(async (options)=>{
805
804
  if (options.json) setJsonMode(true);
806
805
  job_runner_requireAuth(manager_isAuthenticated);
807
806
  validateDeviceMode(options.device);
@@ -876,7 +875,7 @@ superdesign --help
876
875
  };
877
876
  }
878
877
  function createIterateDesignDraftCommand() {
879
- const command = new external_commander_namespaceObject.Command('iterate-design-draft').description('Iterate on an existing draft using AI').requiredOption('--draft-id <id>', 'Draft ID to iterate on').requiredOption('-p, --prompt <prompt...>', 'Iteration prompt(s). Use multiple -p for specific prompts per variation.').requiredOption('--mode <mode>', 'Iteration mode (replace or branch)').option('--count <count>', 'Number of variations (1-4). Only used when single prompt provided.').option('--json', 'Output in JSON format').action(async (options)=>{
878
+ const command = new external_commander_namespaceObject.Command('iterate-design-draft').description('Generate design based on existing draft or template, the main design exploration tool').requiredOption('--draft-id <id>', 'Draft ID to iterate on').requiredOption('-p, --prompt <prompt...>', 'Iteration prompt(s). Use multiple -p for specific prompts per variation.').requiredOption('--mode <mode>', 'Iteration mode (replace or branch)').option('--count <count>', 'Number of variations (1-4). Only used when single prompt provided.').option('--json', 'Output in JSON format').addOption(new external_commander_namespaceObject.Option('--project-id <id>').hideHelp()).action(async (options)=>{
880
879
  if (options.json) setJsonMode(true);
881
880
  job_runner_requireAuth(manager_isAuthenticated);
882
881
  const { prompts, count, mode } = validateOptions(options);
@@ -1111,7 +1110,7 @@ superdesign --help
1111
1110
  return response.data;
1112
1111
  }
1113
1112
  function createSearchPromptsCommand() {
1114
- const command = new external_commander_namespaceObject.Command('search-prompts').description('Search public prompts in the library').option('--keyword <text>', "Search keyword (searches title and description)").option('--tags <tags>', 'Comma-separated tags to filter by').option('--limit <n>', 'Maximum number of results (default: 20, max: 100)').option('--offset <n>', 'Number of results to skip (for pagination)').option('--json', 'Output in JSON format').action(async (options)=>{
1113
+ const command = new external_commander_namespaceObject.Command('search-prompts').description('Search public prompts in the library').option('--query <text>', "Search query (searches title and description)").option('--tags <tags>', 'Comma-separated tags to filter by').option('--limit <n>', 'Maximum number of results (default: 20, max: 100)').option('--offset <n>', 'Number of results to skip (for pagination)').option('--json', 'Output in JSON format').action(async (options)=>{
1115
1114
  if (options.json) setJsonMode(true);
1116
1115
  job_runner_requireAuth(manager_isAuthenticated);
1117
1116
  const spinner = isJsonMode() ? null : external_ora_default()('Searching prompts...').start();
@@ -1120,7 +1119,7 @@ superdesign --help
1120
1119
  const limit = options.limit ? parseInt(options.limit, 10) : 20;
1121
1120
  const offset = options.offset ? parseInt(options.offset, 10) : 0;
1122
1121
  const result = await searchPrompts({
1123
- keyword: options.keyword,
1122
+ keyword: options.query,
1124
1123
  tags,
1125
1124
  limit,
1126
1125
  offset
@@ -1306,7 +1305,7 @@ superdesign --help
1306
1305
  durationMs: opts.durationMs,
1307
1306
  errorCode: opts.errorCode,
1308
1307
  options: opts.options,
1309
- cliVersion: "0.1.8",
1308
+ cliVersion: "0.1.9",
1310
1309
  os: `${external_os_default().platform()} ${external_os_default().release()}`
1311
1310
  };
1312
1311
  const posthog = getPostHog();
@@ -1343,7 +1342,7 @@ superdesign --help
1343
1342
  (0, external_dotenv_namespaceObject.config)();
1344
1343
  function createProgram() {
1345
1344
  const program = new external_commander_namespaceObject.Command();
1346
- program.name('superdesign').description('SuperDesign CLI - AI product designer for coding agents').version("0.1.8");
1345
+ program.name('superdesign').description('SuperDesign CLI - AI product designer for coding agents').version("0.1.9");
1347
1346
  let startTime = 0;
1348
1347
  program.hook('preAction', ()=>{
1349
1348
  startTime = Date.now();
@@ -1361,15 +1360,17 @@ superdesign --help
1361
1360
  program.addCommand(createLogoutCommand());
1362
1361
  program.addCommand(createInitCommand());
1363
1362
  program.addCommand(createCreateProjectCommand());
1364
- program.addCommand(createCreateDesignDraftCommand());
1365
1363
  program.addCommand(createIterateDesignDraftCommand());
1366
- program.addCommand(createPlanFlowPagesCommand());
1364
+ program.addCommand(createPlanFlowPagesCommand(), {
1365
+ hidden: true
1366
+ });
1367
1367
  program.addCommand(createExecuteFlowPagesCommand());
1368
1368
  program.addCommand(createExtractBrandGuideCommand());
1369
1369
  program.addCommand(createSearchPromptsCommand());
1370
1370
  program.addCommand(createGetPromptsCommand());
1371
1371
  program.addCommand(createFetchDesignNodesCommand());
1372
1372
  program.addCommand(createGetDesignCommand());
1373
+ program.addCommand(createCreateDesignDraftCommand());
1373
1374
  return program;
1374
1375
  }
1375
1376
  async function run() {
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { config as external_dotenv_config } from "dotenv";
2
2
  import { fileURLToPath } from "url";
3
3
  import { dirname, join, resolve as external_path_resolve } from "path";
4
- import { Command } from "commander";
4
+ import { Command, Option } from "commander";
5
5
  import { appendFileSync, existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync } from "fs";
6
6
  import os, { homedir, hostname, platform, release } from "os";
7
7
  import axios from "axios";
@@ -226,7 +226,7 @@ async function runAuthFlow(options = {}) {
226
226
  try {
227
227
  startSpinner('Creating auth session...');
228
228
  const session = await createSession({
229
- cliVersion: "0.1.8",
229
+ cliVersion: "0.1.9",
230
230
  os: `${platform()} ${release()}`,
231
231
  hostname: hostname()
232
232
  });
@@ -634,23 +634,24 @@ function validateDeviceMode(device) {
634
634
  process.exit(EXIT_CODES.VALIDATION_ERROR);
635
635
  }
636
636
  }
637
- function readFileContent(filePath, inlineContent, fileType) {
638
- if (filePath) {
639
- if (!existsSync(filePath)) {
640
- output_error(`${fileType} file not found: ${filePath}`);
641
- process.exit(EXIT_CODES.VALIDATION_ERROR);
642
- }
643
- return readFileSync(filePath, 'utf-8');
637
+ function readFileIfExists(filePath) {
638
+ if (existsSync(filePath)) return readFileSync(filePath, 'utf-8');
639
+ }
640
+ function readFileOrError(filePath, fileType) {
641
+ if (!existsSync(filePath)) {
642
+ output_error(`${fileType} file not found: ${filePath}`);
643
+ process.exit(EXIT_CODES.VALIDATION_ERROR);
644
644
  }
645
- return inlineContent;
645
+ return readFileSync(filePath, 'utf-8');
646
646
  }
647
647
  function createCreateProjectCommand() {
648
- const command = new Command('create-project').description('Create a new SuperDesign project').requiredOption('--title <title>', 'Project title').option('--html <html>', 'Initial HTML content for first draft').option('--html-file <path>', 'Path to HTML file for first draft').option('-s, --set-project-prompt <prompt>', 'System prompt for the AI agent').option('--set-project-prompt-file <path>', 'Path to markdown file containing system prompt').option('--device <mode>', 'Device mode for draft (mobile, tablet, desktop)', 'desktop').option('--json', 'Output in JSON format').option('--no-open', 'Do not open project in browser after creation').action(async (options)=>{
648
+ const command = new Command('create-project').description('Create a new SuperDesign project').requiredOption('--title <title>', 'Project title').option('--template <path>', 'Path to HTML template file for first draft').option('--device <mode>', 'Device mode for html template (mobile, tablet, desktop)', 'desktop').option('--json', 'Output in JSON format').action(async (options)=>{
649
649
  if (options.json) setJsonMode(true);
650
650
  job_runner_requireAuth(manager_isAuthenticated);
651
651
  validateDeviceMode(options.device);
652
- const htmlContent = readFileContent(options.htmlFile, options.html, 'HTML');
653
- const promptContent = readFileContent(options.setProjectPromptFile, options.setProjectPrompt, 'Prompt');
652
+ const htmlContent = options.template ? readFileOrError(options.template, 'Template') : void 0;
653
+ const designSystemPath = '.superdesign/design-system.md';
654
+ const promptContent = readFileIfExists(designSystemPath);
654
655
  startSpinner('Creating project...');
655
656
  try {
656
657
  const project = await createProject({
@@ -660,10 +661,8 @@ function createCreateProjectCommand() {
660
661
  deviceMode: options.device
661
662
  });
662
663
  succeedSpinner('Project created successfully!');
663
- if (options.open) {
664
- const urlWithLive = `${project.projectUrl}?live=1`;
665
- await openBrowser(urlWithLive);
666
- }
664
+ const urlWithLive = `${project.projectUrl}?live=1`;
665
+ await openBrowser(urlWithLive);
667
666
  if (isJsonMode()) output({
668
667
  projectId: project.projectId,
669
668
  title: project.title,
@@ -711,7 +710,7 @@ async function executeFlowPages(draftId, data) {
711
710
  return response.data;
712
711
  }
713
712
  function createCreateDesignDraftCommand() {
714
- const command = new Command('create-design-draft').description('Create a design draft using AI generation').requiredOption('--project-id <id>', 'Project ID').requiredOption('--title <title>', 'Draft title').requiredOption('-p, --prompt <prompt>', 'Design prompt for AI generation').option('--device <mode>', 'Device mode (mobile, tablet, desktop)', 'desktop').option('--json', 'Output in JSON format').action(async (options)=>{
713
+ const command = new Command('create-design-draft').description('Create a design draft from scratch without any reference, Default dont use this, use iterate-design-draft instead').requiredOption('--project-id <id>', 'Project ID').requiredOption('--title <title>', 'Draft title').requiredOption('-p, --prompt <prompt>', 'Design prompt for AI generation').option('--device <mode>', 'Device mode (mobile, tablet, desktop)', 'desktop').option('--json', 'Output in JSON format').action(async (options)=>{
715
714
  if (options.json) setJsonMode(true);
716
715
  job_runner_requireAuth(manager_isAuthenticated);
717
716
  validateDeviceMode(options.device);
@@ -786,7 +785,7 @@ function validateOptions(options) {
786
785
  };
787
786
  }
788
787
  function createIterateDesignDraftCommand() {
789
- const command = new Command('iterate-design-draft').description('Iterate on an existing draft using AI').requiredOption('--draft-id <id>', 'Draft ID to iterate on').requiredOption('-p, --prompt <prompt...>', 'Iteration prompt(s). Use multiple -p for specific prompts per variation.').requiredOption('--mode <mode>', 'Iteration mode (replace or branch)').option('--count <count>', 'Number of variations (1-4). Only used when single prompt provided.').option('--json', 'Output in JSON format').action(async (options)=>{
788
+ const command = new Command('iterate-design-draft').description('Generate design based on existing draft or template, the main design exploration tool').requiredOption('--draft-id <id>', 'Draft ID to iterate on').requiredOption('-p, --prompt <prompt...>', 'Iteration prompt(s). Use multiple -p for specific prompts per variation.').requiredOption('--mode <mode>', 'Iteration mode (replace or branch)').option('--count <count>', 'Number of variations (1-4). Only used when single prompt provided.').option('--json', 'Output in JSON format').addOption(new Option('--project-id <id>').hideHelp()).action(async (options)=>{
790
789
  if (options.json) setJsonMode(true);
791
790
  job_runner_requireAuth(manager_isAuthenticated);
792
791
  const { prompts, count, mode } = validateOptions(options);
@@ -1021,7 +1020,7 @@ async function getPrompts(data) {
1021
1020
  return response.data;
1022
1021
  }
1023
1022
  function createSearchPromptsCommand() {
1024
- const command = new Command('search-prompts').description('Search public prompts in the library').option('--keyword <text>', "Search keyword (searches title and description)").option('--tags <tags>', 'Comma-separated tags to filter by').option('--limit <n>', 'Maximum number of results (default: 20, max: 100)').option('--offset <n>', 'Number of results to skip (for pagination)').option('--json', 'Output in JSON format').action(async (options)=>{
1023
+ const command = new Command('search-prompts').description('Search public prompts in the library').option('--query <text>', "Search query (searches title and description)").option('--tags <tags>', 'Comma-separated tags to filter by').option('--limit <n>', 'Maximum number of results (default: 20, max: 100)').option('--offset <n>', 'Number of results to skip (for pagination)').option('--json', 'Output in JSON format').action(async (options)=>{
1025
1024
  if (options.json) setJsonMode(true);
1026
1025
  job_runner_requireAuth(manager_isAuthenticated);
1027
1026
  const spinner = isJsonMode() ? null : ora('Searching prompts...').start();
@@ -1030,7 +1029,7 @@ function createSearchPromptsCommand() {
1030
1029
  const limit = options.limit ? parseInt(options.limit, 10) : 20;
1031
1030
  const offset = options.offset ? parseInt(options.offset, 10) : 0;
1032
1031
  const result = await searchPrompts({
1033
- keyword: options.keyword,
1032
+ keyword: options.query,
1034
1033
  tags,
1035
1034
  limit,
1036
1035
  offset
@@ -1214,7 +1213,7 @@ async function trackCommand(opts) {
1214
1213
  durationMs: opts.durationMs,
1215
1214
  errorCode: opts.errorCode,
1216
1215
  options: opts.options,
1217
- cliVersion: "0.1.8",
1216
+ cliVersion: "0.1.9",
1218
1217
  os: `${os.platform()} ${os.release()}`
1219
1218
  };
1220
1219
  const posthog = getPostHog();
@@ -1251,7 +1250,7 @@ external_dotenv_config({
1251
1250
  external_dotenv_config();
1252
1251
  function createProgram() {
1253
1252
  const program = new Command();
1254
- program.name('superdesign').description('SuperDesign CLI - AI product designer for coding agents').version("0.1.8");
1253
+ program.name('superdesign').description('SuperDesign CLI - AI product designer for coding agents').version("0.1.9");
1255
1254
  let startTime = 0;
1256
1255
  program.hook('preAction', ()=>{
1257
1256
  startTime = Date.now();
@@ -1269,15 +1268,17 @@ function createProgram() {
1269
1268
  program.addCommand(createLogoutCommand());
1270
1269
  program.addCommand(createInitCommand());
1271
1270
  program.addCommand(createCreateProjectCommand());
1272
- program.addCommand(createCreateDesignDraftCommand());
1273
1271
  program.addCommand(createIterateDesignDraftCommand());
1274
- program.addCommand(createPlanFlowPagesCommand());
1272
+ program.addCommand(createPlanFlowPagesCommand(), {
1273
+ hidden: true
1274
+ });
1275
1275
  program.addCommand(createExecuteFlowPagesCommand());
1276
1276
  program.addCommand(createExtractBrandGuideCommand());
1277
1277
  program.addCommand(createSearchPromptsCommand());
1278
1278
  program.addCommand(createGetPromptsCommand());
1279
1279
  program.addCommand(createFetchDesignNodesCommand());
1280
1280
  program.addCommand(createGetDesignCommand());
1281
+ program.addCommand(createCreateDesignDraftCommand());
1281
1282
  return program;
1282
1283
  }
1283
1284
  async function run() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@superdesign/cli",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "CLI for SuperDesign Platform - agent skills for Claude Code",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",