@mindstudio-ai/remy 0.1.128 → 0.1.130

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
@@ -2822,10 +2822,12 @@ Current date: ${dateStr}`;
2822
2822
  const excludeToolsFromClearing = tools2.filter((t) => t.clearable === false).map((t) => t.name);
2823
2823
  let turns = 0;
2824
2824
  const run = async () => {
2825
+ const historyLen = (history ?? []).length;
2825
2826
  const messages = [
2826
2827
  ...history ?? [],
2827
2828
  { role: "user", content: task }
2828
2829
  ];
2830
+ const thisInvocation = () => messages.slice(historyLen);
2829
2831
  function getPartialText(blocks) {
2830
2832
  return blocks.filter((b) => b.type === "text").map((b) => b.text).join("");
2831
2833
  }
@@ -2836,10 +2838,10 @@ Current date: ${dateStr}`;
2836
2838
  text: partial ? `[INTERRUPTED - PARTIAL OUTPUT RETRIEVED] Note that partial output may include thinking text or other unfinalized decisions. It is NOT an authoritative response from this agent.
2837
2839
 
2838
2840
  ${partial}` : "[INTERRUPTED] Agent was interrupted before producing output.",
2839
- messages
2841
+ messages: thisInvocation()
2840
2842
  };
2841
2843
  }
2842
- return { text: "Error: cancelled", messages };
2844
+ return { text: "Error: cancelled", messages: thisInvocation() };
2843
2845
  }
2844
2846
  let lastToolResult = "";
2845
2847
  while (true) {
@@ -2946,7 +2948,10 @@ ${partial}` : "[INTERRUPTED] Agent was interrupted before producing output.",
2946
2948
  stopReason = event.stopReason;
2947
2949
  break;
2948
2950
  case "error":
2949
- return { text: `Error: ${event.error}`, messages };
2951
+ return {
2952
+ text: `Error: ${event.error}`,
2953
+ messages: thisInvocation()
2954
+ };
2950
2955
  }
2951
2956
  }
2952
2957
  } catch (err) {
@@ -2968,7 +2973,7 @@ ${partial}` : "[INTERRUPTED] Agent was interrupted before producing output.",
2968
2973
  if (stopReason !== "tool_use" || toolCalls.length === 0) {
2969
2974
  statusWatcher.stop();
2970
2975
  const text = getPartialText(contentBlocks);
2971
- return { text, messages };
2976
+ return { text, messages: thisInvocation() };
2972
2977
  }
2973
2978
  log5.info("Tools executing", {
2974
2979
  requestId,
@@ -4685,10 +4690,11 @@ Use <current_deck> as your starting point and replace or update the content as n
4685
4690
  ### Rules
4686
4691
  - The deck must be a single HTML file \u2014 it will be rendered in an iframe.
4687
4692
  - Must look beautiful on desktop and mobile.
4688
- - Animation between slides must be seamless, no flicker or flashing.
4693
+ - Animation between slides must be seamless, no flicker or flashing. For reveal animations: hide elements with CSS \`opacity: 0\` only (no transform in CSS). Let GSAP handle transforms via inline styles and never use \`clearProps\`.
4689
4694
  - Be bold and impactful.
4690
4695
  - 6-8 slides max. No fluff, just impact.
4691
4696
  - Code must be clean, bug free, and easy to parse. Use GSAP for animations.
4697
+ - Keep the progress bar and edge chevrons from the shell \u2014 they are part of the navigation UX.
4692
4698
 
4693
4699
  Respond only with the complete HTML file and absolutely no other text. Your response will be written directly to an html file.`;
4694
4700
  const result = await designExpertTool.execute({ task }, context);
package/dist/index.js CHANGED
@@ -2535,10 +2535,12 @@ Current date: ${dateStr}`;
2535
2535
  const excludeToolsFromClearing = tools2.filter((t) => t.clearable === false).map((t) => t.name);
2536
2536
  let turns = 0;
2537
2537
  const run = async () => {
2538
+ const historyLen = (history ?? []).length;
2538
2539
  const messages = [
2539
2540
  ...history ?? [],
2540
2541
  { role: "user", content: task }
2541
2542
  ];
2543
+ const thisInvocation = () => messages.slice(historyLen);
2542
2544
  function getPartialText(blocks) {
2543
2545
  return blocks.filter((b) => b.type === "text").map((b) => b.text).join("");
2544
2546
  }
@@ -2549,10 +2551,10 @@ Current date: ${dateStr}`;
2549
2551
  text: partial ? `[INTERRUPTED - PARTIAL OUTPUT RETRIEVED] Note that partial output may include thinking text or other unfinalized decisions. It is NOT an authoritative response from this agent.
2550
2552
 
2551
2553
  ${partial}` : "[INTERRUPTED] Agent was interrupted before producing output.",
2552
- messages
2554
+ messages: thisInvocation()
2553
2555
  };
2554
2556
  }
2555
- return { text: "Error: cancelled", messages };
2557
+ return { text: "Error: cancelled", messages: thisInvocation() };
2556
2558
  }
2557
2559
  let lastToolResult = "";
2558
2560
  while (true) {
@@ -2659,7 +2661,10 @@ ${partial}` : "[INTERRUPTED] Agent was interrupted before producing output.",
2659
2661
  stopReason = event.stopReason;
2660
2662
  break;
2661
2663
  case "error":
2662
- return { text: `Error: ${event.error}`, messages };
2664
+ return {
2665
+ text: `Error: ${event.error}`,
2666
+ messages: thisInvocation()
2667
+ };
2663
2668
  }
2664
2669
  }
2665
2670
  } catch (err) {
@@ -2681,7 +2686,7 @@ ${partial}` : "[INTERRUPTED] Agent was interrupted before producing output.",
2681
2686
  if (stopReason !== "tool_use" || toolCalls.length === 0) {
2682
2687
  statusWatcher.stop();
2683
2688
  const text = getPartialText(contentBlocks);
2684
- return { text, messages };
2689
+ return { text, messages: thisInvocation() };
2685
2690
  }
2686
2691
  log3.info("Tools executing", {
2687
2692
  requestId,
@@ -4642,10 +4647,11 @@ Use <current_deck> as your starting point and replace or update the content as n
4642
4647
  ### Rules
4643
4648
  - The deck must be a single HTML file \u2014 it will be rendered in an iframe.
4644
4649
  - Must look beautiful on desktop and mobile.
4645
- - Animation between slides must be seamless, no flicker or flashing.
4650
+ - Animation between slides must be seamless, no flicker or flashing. For reveal animations: hide elements with CSS \`opacity: 0\` only (no transform in CSS). Let GSAP handle transforms via inline styles and never use \`clearProps\`.
4646
4651
  - Be bold and impactful.
4647
4652
  - 6-8 slides max. No fluff, just impact.
4648
4653
  - Code must be clean, bug free, and easy to parse. Use GSAP for animations.
4654
+ - Keep the progress bar and edge chevrons from the shell \u2014 they are part of the navigation UX.
4649
4655
 
4650
4656
  Respond only with the complete HTML file and absolutely no other text. Your response will be written directly to an html file.`;
4651
4657
  const result = await designExpertTool.execute({ task }, context);
@@ -88,7 +88,7 @@ Common operations:
88
88
 
89
89
  For each new roadmap item:
90
90
  - **name** — short, exciting, user-facing. No technical jargon.
91
- - **description** — 1-2 sentences explaining what the user gets.
91
+ - **description** — 1 sentence, high-level elevator pitch/teaser for the feature. Used as a subtitle when displaying roadmap items in cards.
92
92
  - **effort** — `quick`, `small`, `medium`, or `large`
93
93
  - **body** — a structured MSFM document - keep it brief and focused on the big picture, it will be filled in later:
94
94
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindstudio-ai/remy",
3
- "version": "0.1.128",
3
+ "version": "0.1.130",
4
4
  "description": "MindStudio coding agent",
5
5
  "repository": {
6
6
  "type": "git",