@mindstudio-ai/remy 0.1.31 → 0.1.32
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/headless.js
CHANGED
|
@@ -1331,6 +1331,7 @@ var askMindStudioSdkTool = {
|
|
|
1331
1331
|
async execute(input) {
|
|
1332
1332
|
const query = input.query;
|
|
1333
1333
|
return runCli(`mindstudio ask ${JSON.stringify(query)}`, {
|
|
1334
|
+
timeout: 2e5,
|
|
1334
1335
|
maxBuffer: 512 * 1024
|
|
1335
1336
|
});
|
|
1336
1337
|
}
|
|
@@ -2100,7 +2101,8 @@ async function captureAndAnalyzeScreenshot(promptOrOptions) {
|
|
|
2100
2101
|
}
|
|
2101
2102
|
const analysisPrompt = prompt || SCREENSHOT_ANALYSIS_PROMPT;
|
|
2102
2103
|
const analysis = await runCli(
|
|
2103
|
-
`mindstudio analyze-image --prompt ${JSON.stringify(analysisPrompt)} --image-url ${JSON.stringify(url)} --output-key analysis --no-meta
|
|
2104
|
+
`mindstudio analyze-image --prompt ${JSON.stringify(analysisPrompt)} --image-url ${JSON.stringify(url)} --output-key analysis --no-meta`,
|
|
2105
|
+
{ timeout: 2e5 }
|
|
2104
2106
|
);
|
|
2105
2107
|
return JSON.stringify({ url, analysis });
|
|
2106
2108
|
}
|
|
@@ -2538,7 +2540,7 @@ var browserAutomationTool = {
|
|
|
2538
2540
|
}));
|
|
2539
2541
|
const batchResult = await runCli(
|
|
2540
2542
|
`mindstudio batch --no-meta ${JSON.stringify(JSON.stringify(batchInput))}`,
|
|
2541
|
-
{ timeout:
|
|
2543
|
+
{ timeout: 2e5 }
|
|
2542
2544
|
);
|
|
2543
2545
|
try {
|
|
2544
2546
|
const analyses = JSON.parse(batchResult);
|
|
@@ -2716,7 +2718,8 @@ async function executeDesignExpertTool(name, input, context, toolCallId) {
|
|
|
2716
2718
|
let imageUrl = url;
|
|
2717
2719
|
if (!isImageUrl) {
|
|
2718
2720
|
const ssUrl = await runCli(
|
|
2719
|
-
`mindstudio screenshot-url --url ${JSON.stringify(url)} --mode viewport --width 1440 --delay 2000 --output-key screenshotUrl --no-meta
|
|
2721
|
+
`mindstudio screenshot-url --url ${JSON.stringify(url)} --mode viewport --width 1440 --delay 2000 --output-key screenshotUrl --no-meta`,
|
|
2722
|
+
{ timeout: 12e4 }
|
|
2720
2723
|
);
|
|
2721
2724
|
if (ssUrl.startsWith("Error")) {
|
|
2722
2725
|
return `Could not screenshot ${url}: ${ssUrl}`;
|
|
@@ -2724,7 +2727,8 @@ async function executeDesignExpertTool(name, input, context, toolCallId) {
|
|
|
2724
2727
|
imageUrl = ssUrl;
|
|
2725
2728
|
}
|
|
2726
2729
|
const analysis = await runCli(
|
|
2727
|
-
`mindstudio analyze-image --prompt ${JSON.stringify(analysisPrompt)} --image-url ${JSON.stringify(imageUrl)} --output-key analysis --no-meta
|
|
2730
|
+
`mindstudio analyze-image --prompt ${JSON.stringify(analysisPrompt)} --image-url ${JSON.stringify(imageUrl)} --output-key analysis --no-meta`,
|
|
2731
|
+
{ timeout: 2e5 }
|
|
2728
2732
|
);
|
|
2729
2733
|
return isImageUrl ? analysis : `Screenshot: ${imageUrl}
|
|
2730
2734
|
|
|
@@ -2746,7 +2750,7 @@ ${analysis}`;
|
|
|
2746
2750
|
});
|
|
2747
2751
|
const url = await runCli(
|
|
2748
2752
|
`mindstudio generate-image '${step}' --output-key imageUrl --no-meta`,
|
|
2749
|
-
{ jsonLogs: true }
|
|
2753
|
+
{ jsonLogs: true, timeout: 2e5 }
|
|
2750
2754
|
);
|
|
2751
2755
|
imageUrls = [url];
|
|
2752
2756
|
} else {
|
|
@@ -2762,7 +2766,7 @@ ${analysis}`;
|
|
|
2762
2766
|
}));
|
|
2763
2767
|
const batchResult = await runCli(
|
|
2764
2768
|
`mindstudio batch '${JSON.stringify(steps)}' --no-meta`,
|
|
2765
|
-
{ jsonLogs: true }
|
|
2769
|
+
{ jsonLogs: true, timeout: 2e5 }
|
|
2766
2770
|
);
|
|
2767
2771
|
try {
|
|
2768
2772
|
const parsed = JSON.parse(batchResult);
|
|
@@ -2779,7 +2783,8 @@ ${analysis}`;
|
|
|
2779
2783
|
return { prompt: prompts[i], error: url };
|
|
2780
2784
|
}
|
|
2781
2785
|
const analysis = await runCli(
|
|
2782
|
-
`mindstudio analyze-image --prompt ${JSON.stringify(ANALYZE_PROMPT)} --image-url ${JSON.stringify(url)} --output-key analysis --no-meta
|
|
2786
|
+
`mindstudio analyze-image --prompt ${JSON.stringify(ANALYZE_PROMPT)} --image-url ${JSON.stringify(url)} --output-key analysis --no-meta`,
|
|
2787
|
+
{ timeout: 2e5 }
|
|
2783
2788
|
);
|
|
2784
2789
|
return { url, prompt: prompts[i], analysis, width, height };
|
|
2785
2790
|
})
|
package/dist/index.js
CHANGED
|
@@ -1114,6 +1114,7 @@ var init_sdkConsultant = __esm({
|
|
|
1114
1114
|
async execute(input) {
|
|
1115
1115
|
const query = input.query;
|
|
1116
1116
|
return runCli(`mindstudio ask ${JSON.stringify(query)}`, {
|
|
1117
|
+
timeout: 2e5,
|
|
1117
1118
|
maxBuffer: 512 * 1024
|
|
1118
1119
|
});
|
|
1119
1120
|
}
|
|
@@ -2041,7 +2042,8 @@ async function captureAndAnalyzeScreenshot(promptOrOptions) {
|
|
|
2041
2042
|
}
|
|
2042
2043
|
const analysisPrompt = prompt || SCREENSHOT_ANALYSIS_PROMPT;
|
|
2043
2044
|
const analysis = await runCli(
|
|
2044
|
-
`mindstudio analyze-image --prompt ${JSON.stringify(analysisPrompt)} --image-url ${JSON.stringify(url)} --output-key analysis --no-meta
|
|
2045
|
+
`mindstudio analyze-image --prompt ${JSON.stringify(analysisPrompt)} --image-url ${JSON.stringify(url)} --output-key analysis --no-meta`,
|
|
2046
|
+
{ timeout: 2e5 }
|
|
2045
2047
|
);
|
|
2046
2048
|
return JSON.stringify({ url, analysis });
|
|
2047
2049
|
}
|
|
@@ -2532,7 +2534,7 @@ var init_browserAutomation = __esm({
|
|
|
2532
2534
|
}));
|
|
2533
2535
|
const batchResult = await runCli(
|
|
2534
2536
|
`mindstudio batch --no-meta ${JSON.stringify(JSON.stringify(batchInput))}`,
|
|
2535
|
-
{ timeout:
|
|
2537
|
+
{ timeout: 2e5 }
|
|
2536
2538
|
);
|
|
2537
2539
|
try {
|
|
2538
2540
|
const analyses = JSON.parse(batchResult);
|
|
@@ -2602,7 +2604,8 @@ async function executeDesignExpertTool(name, input, context, toolCallId) {
|
|
|
2602
2604
|
let imageUrl = url;
|
|
2603
2605
|
if (!isImageUrl) {
|
|
2604
2606
|
const ssUrl = await runCli(
|
|
2605
|
-
`mindstudio screenshot-url --url ${JSON.stringify(url)} --mode viewport --width 1440 --delay 2000 --output-key screenshotUrl --no-meta
|
|
2607
|
+
`mindstudio screenshot-url --url ${JSON.stringify(url)} --mode viewport --width 1440 --delay 2000 --output-key screenshotUrl --no-meta`,
|
|
2608
|
+
{ timeout: 12e4 }
|
|
2606
2609
|
);
|
|
2607
2610
|
if (ssUrl.startsWith("Error")) {
|
|
2608
2611
|
return `Could not screenshot ${url}: ${ssUrl}`;
|
|
@@ -2610,7 +2613,8 @@ async function executeDesignExpertTool(name, input, context, toolCallId) {
|
|
|
2610
2613
|
imageUrl = ssUrl;
|
|
2611
2614
|
}
|
|
2612
2615
|
const analysis = await runCli(
|
|
2613
|
-
`mindstudio analyze-image --prompt ${JSON.stringify(analysisPrompt)} --image-url ${JSON.stringify(imageUrl)} --output-key analysis --no-meta
|
|
2616
|
+
`mindstudio analyze-image --prompt ${JSON.stringify(analysisPrompt)} --image-url ${JSON.stringify(imageUrl)} --output-key analysis --no-meta`,
|
|
2617
|
+
{ timeout: 2e5 }
|
|
2614
2618
|
);
|
|
2615
2619
|
return isImageUrl ? analysis : `Screenshot: ${imageUrl}
|
|
2616
2620
|
|
|
@@ -2632,7 +2636,7 @@ ${analysis}`;
|
|
|
2632
2636
|
});
|
|
2633
2637
|
const url = await runCli(
|
|
2634
2638
|
`mindstudio generate-image '${step}' --output-key imageUrl --no-meta`,
|
|
2635
|
-
{ jsonLogs: true }
|
|
2639
|
+
{ jsonLogs: true, timeout: 2e5 }
|
|
2636
2640
|
);
|
|
2637
2641
|
imageUrls = [url];
|
|
2638
2642
|
} else {
|
|
@@ -2648,7 +2652,7 @@ ${analysis}`;
|
|
|
2648
2652
|
}));
|
|
2649
2653
|
const batchResult = await runCli(
|
|
2650
2654
|
`mindstudio batch '${JSON.stringify(steps)}' --no-meta`,
|
|
2651
|
-
{ jsonLogs: true }
|
|
2655
|
+
{ jsonLogs: true, timeout: 2e5 }
|
|
2652
2656
|
);
|
|
2653
2657
|
try {
|
|
2654
2658
|
const parsed = JSON.parse(batchResult);
|
|
@@ -2665,7 +2669,8 @@ ${analysis}`;
|
|
|
2665
2669
|
return { prompt: prompts[i], error: url };
|
|
2666
2670
|
}
|
|
2667
2671
|
const analysis = await runCli(
|
|
2668
|
-
`mindstudio analyze-image --prompt ${JSON.stringify(ANALYZE_PROMPT)} --image-url ${JSON.stringify(url)} --output-key analysis --no-meta
|
|
2672
|
+
`mindstudio analyze-image --prompt ${JSON.stringify(ANALYZE_PROMPT)} --image-url ${JSON.stringify(url)} --output-key analysis --no-meta`,
|
|
2673
|
+
{ timeout: 2e5 }
|
|
2669
2674
|
);
|
|
2670
2675
|
return { url, prompt: prompts[i], analysis, width, height };
|
|
2671
2676
|
})
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
- Use `analyzeReferenceImageOrUrl` to analyze any image URL or website URL. Websites are automatically screenshotted. Omit the prompt for a standard design analysis, or provide a custom prompt for specific questions. Do not screenshot font specimen pages, documentation, or other text-heavy pages — use `fetchUrl` for those instead.
|
|
4
4
|
- Use `screenshot` to see the current state of the app preview. This is your primary tool for visual review. Use `fullPage: true` to see the entire page at once. Remember, the screenshot analysis is not overly precise - for example, it cannot reliably identify specific fonts by name — it can only describe what letterforms look like.
|
|
5
|
-
- Use `runBrowserTest`
|
|
6
|
-
- **screenshot vs runBrowserTest**: Screenshot to *see* the page. Browser test to *measure* specific
|
|
5
|
+
- Use `runBrowserTest` to smoke test and spot check the things most likely to be wrong — missing elements, colors that look off in the screenshot, transforms or animations that are hard to judge visually. Don't use it to verify every property in the spec. Trust that if the spec says something, like specifying fonts or layout sections, the coding agent probably implemented it - it's very good at following instructions. Reserve the browser agent for things you genuinely can't tell from looking.
|
|
6
|
+
- **screenshot vs runBrowserTest**: Screenshot to *see* the page. Browser test to *measure* specific values you're unsure about. Start with a screenshot — only reach for the browser agent if something looks off or can't be judged visually. The browser agent is not a screenshot tool — don't ask it to scroll around taking screenshots of sections. Your `screenshot` tool with `fullPage: true` captures the entire page in one call.
|
|
7
7
|
Use `searchGoogle` for research: modern design trends in industries or verticals, "best [domain] apps 2026", ui patterns, etc. Prioritize authoritative sources like Figma and other design leaders, avoid random blog spam. Pick one or more URLs and use `fetchUrl` to get their text content to read and inform your inspiration.
|
|
8
8
|
- Use `fetchUrl` when you need to get the text content of a site.
|
|
9
9
|
- Use `searchGoogle` and `fetchUrl` only when the user references something specific: a particular website to match, a brand to look up, a company whose identity you need to research. You already have curated fonts, inspiration references, and strong internal knowledge — don't search the web for generic inspiration or "best X apps." The web is for specific lookups, not creative direction.
|