@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: 12e4 }
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: 12e4 }
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` only to verify specific computed values that a screenshot can't tell you: exact font-family names, hex colors, pixel measurements, border-radius, box-shadow, transforms. Keep requests focused ask it to check specific properties on specific elements, not to take screenshots or scroll around.
6
- - **screenshot vs runBrowserTest**: Screenshot to *see* the page. Browser test to *measure* specific CSS values. Never use the browser agent for tasks your screenshot tool can handle, or vice versa.
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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindstudio-ai/remy",
3
- "version": "0.1.31",
3
+ "version": "0.1.32",
4
4
  "description": "MindStudio coding agent",
5
5
  "repository": {
6
6
  "type": "git",