@superdesign/cli 0.1.8 → 0.1.10
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 +11 -13
- package/dist/config/constants.d.ts +1 -1
- package/dist/index.cjs +35 -24
- package/dist/index.js +36 -25
- package/package.json +1 -1
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 --
|
|
42
|
+
superdesign search-prompts --query "<query>" --json
|
|
43
43
|
superdesign search-prompts --tags "style" --json
|
|
44
|
-
superdesign search-prompts --tags "style" --
|
|
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 (
|
|
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
|
|
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
|
-
--
|
|
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>
|
|
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 --
|
|
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
|
-
|
|
244
|
-
superdesign create-project --title "X" --
|
|
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.
|
|
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.
|
|
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
|
|
728
|
-
if (filePath)
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
}
|
|
733
|
-
|
|
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
|
|
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('--
|
|
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 =
|
|
743
|
-
const
|
|
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
|
-
|
|
754
|
-
|
|
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
|
|
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,17 @@ superdesign --help
|
|
|
876
875
|
};
|
|
877
876
|
}
|
|
878
877
|
function createIterateDesignDraftCommand() {
|
|
879
|
-
const command = new external_commander_namespaceObject.Command('iterate-design-draft').description(
|
|
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
|
|
879
|
+
|
|
880
|
+
Usage Examples:
|
|
881
|
+
# Iterate: replace mode (single variation, updates in place)
|
|
882
|
+
superdesign iterate-design-draft --draft-id <id> -p "..." --mode replace --json
|
|
883
|
+
|
|
884
|
+
# Iterate: Explore multiple versions & variations (each prompt = one variation, prompt should be just directional, do not specify color, style, let superdesign design expert fill in details, you just give direction)
|
|
885
|
+
superdesign iterate-design-draft --draft-id <id> -p "dark theme" -p "minimal" -p "bold" --mode branch --json
|
|
886
|
+
|
|
887
|
+
# Iterate: Auto explore (only give exploration direction, and let Superdesign fill in details, e.g. explore different styles; Default do NOT use auto explore mode)
|
|
888
|
+
superdesign iterate-design-draft --draft-id <id> -p "..." --mode branch --count 3 --json`).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
889
|
if (options.json) setJsonMode(true);
|
|
881
890
|
job_runner_requireAuth(manager_isAuthenticated);
|
|
882
891
|
const { prompts, count, mode } = validateOptions(options);
|
|
@@ -1111,7 +1120,7 @@ superdesign --help
|
|
|
1111
1120
|
return response.data;
|
|
1112
1121
|
}
|
|
1113
1122
|
function createSearchPromptsCommand() {
|
|
1114
|
-
const command = new external_commander_namespaceObject.Command('search-prompts').description('Search public prompts in the library').option('--
|
|
1123
|
+
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
1124
|
if (options.json) setJsonMode(true);
|
|
1116
1125
|
job_runner_requireAuth(manager_isAuthenticated);
|
|
1117
1126
|
const spinner = isJsonMode() ? null : external_ora_default()('Searching prompts...').start();
|
|
@@ -1120,7 +1129,7 @@ superdesign --help
|
|
|
1120
1129
|
const limit = options.limit ? parseInt(options.limit, 10) : 20;
|
|
1121
1130
|
const offset = options.offset ? parseInt(options.offset, 10) : 0;
|
|
1122
1131
|
const result = await searchPrompts({
|
|
1123
|
-
keyword: options.
|
|
1132
|
+
keyword: options.query,
|
|
1124
1133
|
tags,
|
|
1125
1134
|
limit,
|
|
1126
1135
|
offset
|
|
@@ -1306,7 +1315,7 @@ superdesign --help
|
|
|
1306
1315
|
durationMs: opts.durationMs,
|
|
1307
1316
|
errorCode: opts.errorCode,
|
|
1308
1317
|
options: opts.options,
|
|
1309
|
-
cliVersion: "0.1.
|
|
1318
|
+
cliVersion: "0.1.9",
|
|
1310
1319
|
os: `${external_os_default().platform()} ${external_os_default().release()}`
|
|
1311
1320
|
};
|
|
1312
1321
|
const posthog = getPostHog();
|
|
@@ -1343,7 +1352,7 @@ superdesign --help
|
|
|
1343
1352
|
(0, external_dotenv_namespaceObject.config)();
|
|
1344
1353
|
function createProgram() {
|
|
1345
1354
|
const program = new external_commander_namespaceObject.Command();
|
|
1346
|
-
program.name('superdesign').description('SuperDesign CLI - AI product designer for coding agents').version("0.1.
|
|
1355
|
+
program.name('superdesign').description('SuperDesign CLI - AI product designer for coding agents').version("0.1.9");
|
|
1347
1356
|
let startTime = 0;
|
|
1348
1357
|
program.hook('preAction', ()=>{
|
|
1349
1358
|
startTime = Date.now();
|
|
@@ -1361,15 +1370,17 @@ superdesign --help
|
|
|
1361
1370
|
program.addCommand(createLogoutCommand());
|
|
1362
1371
|
program.addCommand(createInitCommand());
|
|
1363
1372
|
program.addCommand(createCreateProjectCommand());
|
|
1364
|
-
program.addCommand(createCreateDesignDraftCommand());
|
|
1365
1373
|
program.addCommand(createIterateDesignDraftCommand());
|
|
1366
|
-
program.addCommand(createPlanFlowPagesCommand()
|
|
1374
|
+
program.addCommand(createPlanFlowPagesCommand(), {
|
|
1375
|
+
hidden: true
|
|
1376
|
+
});
|
|
1367
1377
|
program.addCommand(createExecuteFlowPagesCommand());
|
|
1368
1378
|
program.addCommand(createExtractBrandGuideCommand());
|
|
1369
1379
|
program.addCommand(createSearchPromptsCommand());
|
|
1370
1380
|
program.addCommand(createGetPromptsCommand());
|
|
1371
1381
|
program.addCommand(createFetchDesignNodesCommand());
|
|
1372
1382
|
program.addCommand(createGetDesignCommand());
|
|
1383
|
+
program.addCommand(createCreateDesignDraftCommand());
|
|
1373
1384
|
return program;
|
|
1374
1385
|
}
|
|
1375
1386
|
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.
|
|
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
|
|
638
|
-
if (filePath)
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
}
|
|
643
|
-
|
|
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
|
|
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('--
|
|
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 =
|
|
653
|
-
const
|
|
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
|
-
|
|
664
|
-
|
|
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
|
|
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,17 @@ function validateOptions(options) {
|
|
|
786
785
|
};
|
|
787
786
|
}
|
|
788
787
|
function createIterateDesignDraftCommand() {
|
|
789
|
-
const command = new Command('iterate-design-draft').description(
|
|
788
|
+
const command = new Command('iterate-design-draft').description(`Generate design based on existing draft or template, the main design exploration tool
|
|
789
|
+
|
|
790
|
+
Usage Examples:
|
|
791
|
+
# Iterate: replace mode (single variation, updates in place)
|
|
792
|
+
superdesign iterate-design-draft --draft-id <id> -p "..." --mode replace --json
|
|
793
|
+
|
|
794
|
+
# Iterate: Explore multiple versions & variations (each prompt = one variation, prompt should be just directional, do not specify color, style, let superdesign design expert fill in details, you just give direction)
|
|
795
|
+
superdesign iterate-design-draft --draft-id <id> -p "dark theme" -p "minimal" -p "bold" --mode branch --json
|
|
796
|
+
|
|
797
|
+
# Iterate: Auto explore (only give exploration direction, and let Superdesign fill in details, e.g. explore different styles; Default do NOT use auto explore mode)
|
|
798
|
+
superdesign iterate-design-draft --draft-id <id> -p "..." --mode branch --count 3 --json`).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
799
|
if (options.json) setJsonMode(true);
|
|
791
800
|
job_runner_requireAuth(manager_isAuthenticated);
|
|
792
801
|
const { prompts, count, mode } = validateOptions(options);
|
|
@@ -1021,7 +1030,7 @@ async function getPrompts(data) {
|
|
|
1021
1030
|
return response.data;
|
|
1022
1031
|
}
|
|
1023
1032
|
function createSearchPromptsCommand() {
|
|
1024
|
-
const command = new Command('search-prompts').description('Search public prompts in the library').option('--
|
|
1033
|
+
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
1034
|
if (options.json) setJsonMode(true);
|
|
1026
1035
|
job_runner_requireAuth(manager_isAuthenticated);
|
|
1027
1036
|
const spinner = isJsonMode() ? null : ora('Searching prompts...').start();
|
|
@@ -1030,7 +1039,7 @@ function createSearchPromptsCommand() {
|
|
|
1030
1039
|
const limit = options.limit ? parseInt(options.limit, 10) : 20;
|
|
1031
1040
|
const offset = options.offset ? parseInt(options.offset, 10) : 0;
|
|
1032
1041
|
const result = await searchPrompts({
|
|
1033
|
-
keyword: options.
|
|
1042
|
+
keyword: options.query,
|
|
1034
1043
|
tags,
|
|
1035
1044
|
limit,
|
|
1036
1045
|
offset
|
|
@@ -1214,7 +1223,7 @@ async function trackCommand(opts) {
|
|
|
1214
1223
|
durationMs: opts.durationMs,
|
|
1215
1224
|
errorCode: opts.errorCode,
|
|
1216
1225
|
options: opts.options,
|
|
1217
|
-
cliVersion: "0.1.
|
|
1226
|
+
cliVersion: "0.1.9",
|
|
1218
1227
|
os: `${os.platform()} ${os.release()}`
|
|
1219
1228
|
};
|
|
1220
1229
|
const posthog = getPostHog();
|
|
@@ -1251,7 +1260,7 @@ external_dotenv_config({
|
|
|
1251
1260
|
external_dotenv_config();
|
|
1252
1261
|
function createProgram() {
|
|
1253
1262
|
const program = new Command();
|
|
1254
|
-
program.name('superdesign').description('SuperDesign CLI - AI product designer for coding agents').version("0.1.
|
|
1263
|
+
program.name('superdesign').description('SuperDesign CLI - AI product designer for coding agents').version("0.1.9");
|
|
1255
1264
|
let startTime = 0;
|
|
1256
1265
|
program.hook('preAction', ()=>{
|
|
1257
1266
|
startTime = Date.now();
|
|
@@ -1269,15 +1278,17 @@ function createProgram() {
|
|
|
1269
1278
|
program.addCommand(createLogoutCommand());
|
|
1270
1279
|
program.addCommand(createInitCommand());
|
|
1271
1280
|
program.addCommand(createCreateProjectCommand());
|
|
1272
|
-
program.addCommand(createCreateDesignDraftCommand());
|
|
1273
1281
|
program.addCommand(createIterateDesignDraftCommand());
|
|
1274
|
-
program.addCommand(createPlanFlowPagesCommand()
|
|
1282
|
+
program.addCommand(createPlanFlowPagesCommand(), {
|
|
1283
|
+
hidden: true
|
|
1284
|
+
});
|
|
1275
1285
|
program.addCommand(createExecuteFlowPagesCommand());
|
|
1276
1286
|
program.addCommand(createExtractBrandGuideCommand());
|
|
1277
1287
|
program.addCommand(createSearchPromptsCommand());
|
|
1278
1288
|
program.addCommand(createGetPromptsCommand());
|
|
1279
1289
|
program.addCommand(createFetchDesignNodesCommand());
|
|
1280
1290
|
program.addCommand(createGetDesignCommand());
|
|
1291
|
+
program.addCommand(createCreateDesignDraftCommand());
|
|
1281
1292
|
return program;
|
|
1282
1293
|
}
|
|
1283
1294
|
async function run() {
|