@mindstudio-ai/remy 0.1.39 → 0.1.40

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
@@ -1491,9 +1491,9 @@ var setProjectMetadataTool = {
1491
1491
  import fs9 from "fs/promises";
1492
1492
  var DEFAULT_MAX_LINES2 = 500;
1493
1493
  function isBinary(buffer) {
1494
- const sample3 = buffer.subarray(0, 8192);
1495
- for (let i = 0; i < sample3.length; i++) {
1496
- if (sample3[i] === 0) {
1494
+ const sample4 = buffer.subarray(0, 8192);
1495
+ for (let i = 0; i < sample4.length; i++) {
1496
+ if (sample4[i] === 0) {
1497
1497
  return true;
1498
1498
  }
1499
1499
  }
@@ -3387,9 +3387,44 @@ This is what the bar looks like. These are real sites that made it onto curated
3387
3387
  ${imageList}`.trim();
3388
3388
  }
3389
3389
 
3390
+ // src/subagents/designExpert/data/getUiInspirationSample.ts
3391
+ var uiScreens = readJsonAsset(
3392
+ { screens: [] },
3393
+ "subagents/designExpert/data/sources/ui_inspiration_compiled.json"
3394
+ ).screens;
3395
+ function sample3(arr, n) {
3396
+ if (arr.length <= n) {
3397
+ return [...arr];
3398
+ }
3399
+ const copy = [...arr];
3400
+ for (let i = copy.length - 1; i > 0; i--) {
3401
+ const j = Math.floor(Math.random() * (i + 1));
3402
+ [copy[i], copy[j]] = [copy[j], copy[i]];
3403
+ }
3404
+ return copy.slice(0, n);
3405
+ }
3406
+ function getUiInspirationSample() {
3407
+ const screens = sample3(uiScreens, 20);
3408
+ if (!screens.length) {
3409
+ return "";
3410
+ }
3411
+ const screenList = screens.map((s, i) => `### Screen ${i + 1}
3412
+ ${s.analysis}`).join("\n\n");
3413
+ return `
3414
+ ## UI Pattern References
3415
+
3416
+ There are real app screens from well-designed products, sourced and curated by hand as a reference by a desigher. Use them as inspiration and let the takeaways guide your work. Your designs should feel like they belong in this company.
3417
+
3418
+ ${screenList}`.trim();
3419
+ }
3420
+
3390
3421
  // src/subagents/designExpert/prompt.ts
3391
3422
  var SUBAGENT = "subagents/designExpert";
3392
- var RUNTIME_PLACEHOLDERS = /* @__PURE__ */ new Set(["font_library", "design_references"]);
3423
+ var RUNTIME_PLACEHOLDERS = /* @__PURE__ */ new Set([
3424
+ "font_library",
3425
+ "design_references",
3426
+ "ui_patterns"
3427
+ ]);
3393
3428
  var PROMPT_TEMPLATE = readAsset(SUBAGENT, "prompt.md").replace(/\{\{([^}]+)\}\}/g, (match, key) => {
3394
3429
  const k = key.trim();
3395
3430
  return RUNTIME_PLACEHOLDERS.has(k) ? match : readAsset(SUBAGENT, k);
@@ -3399,7 +3434,7 @@ function getDesignExpertPrompt() {
3399
3434
  let prompt = PROMPT_TEMPLATE.replace(
3400
3435
  "{{font_library}}",
3401
3436
  getFontLibrarySample()
3402
- ).replace("{{design_references}}", getDesignReferencesSample());
3437
+ ).replace("{{design_references}}", getDesignReferencesSample()).replace("{{ui_patterns}}", getUiInspirationSample());
3403
3438
  if (specContext) {
3404
3439
  prompt += `
3405
3440
 
package/dist/index.js CHANGED
@@ -1267,9 +1267,9 @@ var init_setProjectMetadata = __esm({
1267
1267
  // src/tools/code/readFile.ts
1268
1268
  import fs6 from "fs/promises";
1269
1269
  function isBinary(buffer) {
1270
- const sample3 = buffer.subarray(0, 8192);
1271
- for (let i = 0; i < sample3.length; i++) {
1272
- if (sample3[i] === 0) {
1270
+ const sample4 = buffer.subarray(0, 8192);
1271
+ for (let i = 0; i < sample4.length; i++) {
1272
+ if (sample4[i] === 0) {
1273
1273
  return true;
1274
1274
  }
1275
1275
  }
@@ -3489,6 +3489,44 @@ var init_getDesignReferencesSample = __esm({
3489
3489
  }
3490
3490
  });
3491
3491
 
3492
+ // src/subagents/designExpert/data/getUiInspirationSample.ts
3493
+ function sample3(arr, n) {
3494
+ if (arr.length <= n) {
3495
+ return [...arr];
3496
+ }
3497
+ const copy = [...arr];
3498
+ for (let i = copy.length - 1; i > 0; i--) {
3499
+ const j = Math.floor(Math.random() * (i + 1));
3500
+ [copy[i], copy[j]] = [copy[j], copy[i]];
3501
+ }
3502
+ return copy.slice(0, n);
3503
+ }
3504
+ function getUiInspirationSample() {
3505
+ const screens = sample3(uiScreens, 20);
3506
+ if (!screens.length) {
3507
+ return "";
3508
+ }
3509
+ const screenList = screens.map((s, i) => `### Screen ${i + 1}
3510
+ ${s.analysis}`).join("\n\n");
3511
+ return `
3512
+ ## UI Pattern References
3513
+
3514
+ There are real app screens from well-designed products, sourced and curated by hand as a reference by a desigher. Use them as inspiration and let the takeaways guide your work. Your designs should feel like they belong in this company.
3515
+
3516
+ ${screenList}`.trim();
3517
+ }
3518
+ var uiScreens;
3519
+ var init_getUiInspirationSample = __esm({
3520
+ "src/subagents/designExpert/data/getUiInspirationSample.ts"() {
3521
+ "use strict";
3522
+ init_assets();
3523
+ uiScreens = readJsonAsset(
3524
+ { screens: [] },
3525
+ "subagents/designExpert/data/sources/ui_inspiration_compiled.json"
3526
+ ).screens;
3527
+ }
3528
+ });
3529
+
3492
3530
  // src/subagents/designExpert/prompt.ts
3493
3531
  import fs13 from "fs";
3494
3532
  function getDesignExpertPrompt() {
@@ -3496,7 +3534,7 @@ function getDesignExpertPrompt() {
3496
3534
  let prompt = PROMPT_TEMPLATE.replace(
3497
3535
  "{{font_library}}",
3498
3536
  getFontLibrarySample()
3499
- ).replace("{{design_references}}", getDesignReferencesSample());
3537
+ ).replace("{{design_references}}", getDesignReferencesSample()).replace("{{ui_patterns}}", getUiInspirationSample());
3500
3538
  if (specContext) {
3501
3539
  prompt += `
3502
3540
 
@@ -3516,8 +3554,13 @@ var init_prompt2 = __esm({
3516
3554
  init_context();
3517
3555
  init_getFontLibrarySample();
3518
3556
  init_getDesignReferencesSample();
3557
+ init_getUiInspirationSample();
3519
3558
  SUBAGENT = "subagents/designExpert";
3520
- RUNTIME_PLACEHOLDERS = /* @__PURE__ */ new Set(["font_library", "design_references"]);
3559
+ RUNTIME_PLACEHOLDERS = /* @__PURE__ */ new Set([
3560
+ "font_library",
3561
+ "design_references",
3562
+ "ui_patterns"
3563
+ ]);
3521
3564
  PROMPT_TEMPLATE = readAsset(SUBAGENT, "prompt.md").replace(/\{\{([^}]+)\}\}/g, (match, key) => {
3522
3565
  const k = key.trim();
3523
3566
  return RUNTIME_PLACEHOLDERS.has(k) ? match : readAsset(SUBAGENT, k);
@@ -0,0 +1,132 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # Compile ui_inspiration.json → ui_inspiration_compiled.json
4
+ #
5
+ # Reads each image URL from ui_inspiration.json (flat array of URLs),
6
+ # runs analyze-image via the mindstudio CLI with the UI analysis prompt,
7
+ # and writes the compiled output with URL + analysis.
8
+ #
9
+ # Run manually: bash src/subagents/designExpert/data/sources/compile-ui-inspiration.sh
10
+ # Processes images in batches of 5 (parallel within batch).
11
+ # Supports resuming — skips URLs already present in the output file.
12
+
13
+ set -euo pipefail
14
+
15
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
16
+ RAW_FILE="$SCRIPT_DIR/ui_inspiration.json"
17
+ OUT_FILE="$SCRIPT_DIR/ui_inspiration_compiled.json"
18
+
19
+ PROMPT_FILE="$SCRIPT_DIR/prompts/ui-analysis.md"
20
+ if [ ! -f "$PROMPT_FILE" ]; then
21
+ echo "Error: $PROMPT_FILE not found"
22
+ exit 1
23
+ fi
24
+ PROMPT=$(cat "$PROMPT_FILE")
25
+
26
+ if [ ! -f "$RAW_FILE" ]; then
27
+ echo "Error: $RAW_FILE not found"
28
+ exit 1
29
+ fi
30
+
31
+ # Initialize output file if it doesn't exist
32
+ if [ ! -f "$OUT_FILE" ]; then
33
+ echo '{"screens":[]}' > "$OUT_FILE"
34
+ fi
35
+
36
+ TOTAL=$(python3 -c "import json; print(len(json.load(open('$RAW_FILE'))))")
37
+ DONE=$(python3 -c "import json; print(len(json.load(open('$OUT_FILE'))['screens']))")
38
+ echo "Compiling UI inspiration: $DONE/$TOTAL already done"
39
+
40
+ # Get URLs that haven't been compiled yet
41
+ URLS=$(python3 -c "
42
+ import json
43
+ raw = json.load(open('$RAW_FILE'))
44
+ done = set(s['url'] for s in json.load(open('$OUT_FILE'))['screens'])
45
+ remaining = [u for u in raw if u not in done]
46
+ print('\n'.join(remaining))
47
+ ")
48
+
49
+ if [ -z "$URLS" ]; then
50
+ echo "All images already compiled."
51
+ exit 0
52
+ fi
53
+
54
+ REMAINING=$(echo "$URLS" | wc -l | tr -d ' ')
55
+ echo "Processing $REMAINING remaining images (5 at a time)..."
56
+ BATCH_COUNT=0
57
+ TMPDIR=$(mktemp -d)
58
+
59
+ # Process a single URL — writes result to a temp file
60
+ process_one() {
61
+ local url="$1"
62
+ local idx="$2"
63
+ local outfile="$TMPDIR/$idx.json"
64
+
65
+ ANALYSIS=$(mindstudio analyze-image \
66
+ --prompt "$PROMPT" \
67
+ --image-url "$url" \
68
+ --output-key analysis \
69
+ --no-meta 2>&1) || true
70
+
71
+ if echo "$ANALYSIS" | grep -q '"error"'; then
72
+ echo " FAILED — $url"
73
+ return
74
+ fi
75
+
76
+ python3 -c "
77
+ import json, sys
78
+ json.dump({'url': sys.argv[1], 'analysis': sys.argv[2]}, open(sys.argv[3], 'w'))
79
+ " "$url" "$ANALYSIS" "$outfile"
80
+
81
+ echo " OK — $url"
82
+ }
83
+
84
+ # Merge all temp files from a batch into the output
85
+ merge_batch() {
86
+ python3 -c "
87
+ import json, glob, os
88
+ out = '$OUT_FILE'
89
+ tmp = '$TMPDIR'
90
+ with open(out, 'r') as f:
91
+ data = json.load(f)
92
+ for p in sorted(glob.glob(os.path.join(tmp, '*.json'))):
93
+ with open(p) as f:
94
+ data['screens'].append(json.load(f))
95
+ os.remove(p)
96
+ with open(out, 'w') as f:
97
+ json.dump(data, f, indent=2)
98
+ "
99
+ }
100
+
101
+ # Process in batches of 5
102
+ BATCH=()
103
+ IDX=0
104
+ while IFS= read -r url; do
105
+ BATCH+=("$url")
106
+ IDX=$((IDX + 1))
107
+ if [ ${#BATCH[@]} -eq 5 ]; then
108
+ BATCH_COUNT=$((BATCH_COUNT + 5))
109
+ echo " Batch $BATCH_COUNT/$REMAINING"
110
+ for i in "${!BATCH[@]}"; do
111
+ process_one "${BATCH[$i]}" "$((BATCH_COUNT - 5 + i))" &
112
+ done
113
+ wait
114
+ merge_batch
115
+ BATCH=()
116
+ fi
117
+ done <<< "$URLS"
118
+
119
+ # Process remaining
120
+ if [ ${#BATCH[@]} -gt 0 ]; then
121
+ BATCH_COUNT=$((BATCH_COUNT + ${#BATCH[@]}))
122
+ echo " Batch $BATCH_COUNT/$REMAINING"
123
+ for i in "${!BATCH[@]}"; do
124
+ process_one "${BATCH[$i]}" "$((BATCH_COUNT - ${#BATCH[@]} + i))" &
125
+ done
126
+ wait
127
+ merge_batch
128
+ fi
129
+
130
+ rm -rf "$TMPDIR"
131
+ FINAL=$(python3 -c "import json; print(len(json.load(open('$OUT_FILE'))['screens']))")
132
+ echo "Done. $FINAL/$TOTAL screens compiled."
@@ -0,0 +1,25 @@
1
+ You are analyzing a screenshot of a real mobile app screen for a designer's personal UI pattern reference notes.
2
+
3
+ Focus on what makes this screen well-crafted as a piece of interface design. What patterns does it use? How does it organize information? What would a designer building a similar screen want to know?
4
+
5
+ Provide the following analysis:
6
+
7
+ ## Screen
8
+ What is this screen? App type, purpose, and where this screen sits in a typical flow. Describe the layout structure. What are the primary interactive elements? Keep it concise and do not mention any brand names
9
+
10
+ ## Layout & Spacing
11
+ How is the content organized? Note any interesting spacing decisions.
12
+
13
+ ## Components
14
+ List the UI components visible and how they're styled. For each notable component, describe its visual treatment briefly.
15
+
16
+ ## Typography & Color
17
+ Brief description of the type hierarchy. Note the color palette and how color is used functionally .
18
+
19
+ ## Patterns
20
+ The specific UI/UX patterns that make this screen worth studying. Focus on non-obvious decisions and creative, interesting, compelling choices. Skip basics like "has a bottom nav bar."
21
+
22
+ ## Notes
23
+ Quick shorthand notes — fragments a designer would scribble as inspiration or ideas.
24
+
25
+ Respond only with the analysis and absolutely no other text.
@@ -0,0 +1,83 @@
1
+ [
2
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.06.41_1.png",
3
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.06.41_2.png",
4
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.06.41_3.png",
5
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.06.52_1.png",
6
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.06.52_2.png",
7
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.06.52_3.png",
8
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.06.58_1.png",
9
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.06.58_2.png",
10
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.06.58_3.png",
11
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.16_1.png",
12
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.16_2.png",
13
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.16_3.png",
14
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.23_1.png",
15
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.23_2.png",
16
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.23_3.png",
17
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.32_1.png",
18
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.32_2.png",
19
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.32_3.png",
20
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.43_1.png",
21
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.43_2.png",
22
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.43_3.png",
23
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.48_1.png",
24
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.48_2.png",
25
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.48_3.png",
26
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.53_1.png",
27
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.53_2.png",
28
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.07.53_3.png",
29
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.06_1.png",
30
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.06_2.png",
31
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.06_3.png",
32
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.20_1.png",
33
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.20_2.png",
34
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.20_3.png",
35
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.23_1.png",
36
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.23_2.png",
37
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.23_3.png",
38
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.44_1.png",
39
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.44_2.png",
40
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.44_3.png",
41
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.50_1.png",
42
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.50_2.png",
43
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.50_3.png",
44
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.54_1.png",
45
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.54_2.png",
46
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.54_3.png",
47
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.59_1.png",
48
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.59_2.png",
49
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.08.59_3.png",
50
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.02_1.png",
51
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.02_2.png",
52
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.02_3.png",
53
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.05_1.png",
54
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.05_2.png",
55
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.05_3.png",
56
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.10_1.png",
57
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.10_2.png",
58
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.10_3.png",
59
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.13_1.png",
60
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.13_2.png",
61
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.13_3.png",
62
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.27_1.png",
63
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.27_2.png",
64
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.27_3.png",
65
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.31_1.png",
66
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.31_2.png",
67
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.31_3.png",
68
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.49_1.png",
69
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.49_2.png",
70
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.49_3.png",
71
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.52_1.png",
72
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.52_2.png",
73
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.52_3.png",
74
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.55_1.png",
75
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.55_2.png",
76
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.55_3.png",
77
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.58_1.png",
78
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.58_2.png",
79
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.09.58_3.png",
80
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.10.01_1.png",
81
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.10.01_2.png",
82
+ "https://i.mscdn.ai/remy-ui-inspo/Screenshot%202026-03-25%20at%2021.10.01_3.png"
83
+ ]