@mindstudio-ai/remy 0.1.254 → 0.1.255

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
@@ -5249,6 +5249,11 @@ var PROMPT_TEMPLATE = readAsset(SUBAGENT, "prompt.md").replace(/\{\{([^}]+)\}\}/
5249
5249
  const k = key.trim();
5250
5250
  return RUNTIME_PLACEHOLDERS.has(k) ? match : readAsset(SUBAGENT, k);
5251
5251
  }).replace(/\n{3,}/g, "\n\n");
5252
+ var RENDER_TASK_BLOCK = `<render_task>
5253
+ This task is a render: you are the author of the artifact, not an advisor on it. Everything above describes your usual work \u2014 proposing a design to a developer who then builds it. Here there is no developer downstream. You write the file the brief names, using writeFile (or editFile when it already exists), and that file is the entire deliverable.
5254
+
5255
+ The guidance about specifying layouts in prose, writing implementation notes, and keeping wireframes small doesn't apply here: it exists to hand a design to someone else to build, and you are the one building it. Your reply is a receipt \u2014 one line naming what you wrote.
5256
+ </render_task>`;
5252
5257
  function renderDesignSystemBlock(designSystem) {
5253
5258
  if (!designSystem) {
5254
5259
  return "";
@@ -5259,7 +5264,7 @@ function renderDesignSystemBlock(designSystem) {
5259
5264
  "</design_system>"
5260
5265
  ].join("\n");
5261
5266
  }
5262
- function getDesignExpertPrompt(onboardingState) {
5267
+ function getDesignExpertPrompt(onboardingState, opts) {
5263
5268
  const specContext = loadSpecIndex();
5264
5269
  const indices = getSampleIndices(
5265
5270
  {
@@ -5304,6 +5309,11 @@ ${designSystemBlock}`;
5304
5309
  <project_phase>
5305
5310
  This project is in the "${state}" phase. The codebase is a placeholder scaffold or is being generated for the first time.
5306
5311
  </project_phase>`;
5312
+ }
5313
+ if (opts?.render) {
5314
+ prompt += `
5315
+
5316
+ ${RENDER_TASK_BLOCK}`;
5307
5317
  }
5308
5318
  return prompt;
5309
5319
  }
@@ -5365,17 +5375,19 @@ var DESIGN_EXPERT_RENDER_TOOLS = [
5365
5375
  async function runDesignExpert(opts, context) {
5366
5376
  const history = context.conversationMessages ? getSubAgentHistory(context.conversationMessages, "visualDesignExpert") : [];
5367
5377
  return runSubAgent({
5368
- system: getDesignExpertPrompt(context.onboardingState),
5378
+ system: getDesignExpertPrompt(context.onboardingState, {
5379
+ render: opts.render
5380
+ }),
5369
5381
  task: opts.task,
5370
5382
  history: history.length > 0 ? history : void 0,
5371
- tools: opts.enableWrite ? DESIGN_EXPERT_RENDER_TOOLS : DESIGN_EXPERT_TOOLS,
5383
+ tools: opts.render ? DESIGN_EXPERT_RENDER_TOOLS : DESIGN_EXPERT_TOOLS,
5372
5384
  externalTools: /* @__PURE__ */ new Set(),
5373
5385
  executeTool: (name, input, toolCallId, onLog, sams) => {
5374
5386
  const childCtx = toolCallId ? { ...deriveContext(context, toolCallId), subAgentMessages: sams } : { ...context, subAgentMessages: sams };
5375
5387
  if (COMMON_READ_TOOL_NAMES.has(name)) {
5376
5388
  return executeTool(name, input, childCtx);
5377
5389
  }
5378
- if (opts.enableWrite && RENDER_WRITE_TOOL_NAMES.has(name)) {
5390
+ if (opts.render && RENDER_WRITE_TOOL_NAMES.has(name)) {
5379
5391
  return executeTool(name, input, childCtx);
5380
5392
  }
5381
5393
  return executeDesignExpertTool(name, input, childCtx, toolCallId, onLog);
@@ -5436,7 +5448,7 @@ var designExpertTool = {
5436
5448
  }
5437
5449
  };
5438
5450
  async function runDesignExpertRender(opts, context) {
5439
- return runDesignExpert({ ...opts, enableWrite: true }, context);
5451
+ return runDesignExpert({ ...opts, render: true }, context);
5440
5452
  }
5441
5453
 
5442
5454
  // src/subagents/productVision/tools.ts
@@ -5547,14 +5559,14 @@ ${unifiedDiff(filePath, oldContent, "")}`;
5547
5559
  const delivery = exists ? `### Your deliverable
5548
5560
  The pitch deck already exists at \`${filePath}\`. Read it, then update it for the new <pitch_content>, keeping the presentation scaffolding intact \u2014 change only what needs to change.
5549
5561
 
5550
- Reply with a one-line summary of what you changed \u2014 not the HTML.` : `### Your deliverable
5562
+ Then reply with a one-line summary of what you changed.` : `### Your deliverable
5551
5563
  Write the complete pitch deck to \`${filePath}\`. It does not exist yet \u2014 start from this scaffold, keeping its progress bar, chevron navigation, keyboard navigation, and transition mechanics intact:
5552
5564
 
5553
5565
  <pitch_deck_shell>
5554
5566
  ${PITCH_DECK_SHELL}
5555
5567
  </pitch_deck_shell>
5556
5568
 
5557
- Reply with a one-line summary of what you wrote \u2014 not the HTML.`;
5569
+ Then reply with a one-line summary of what you wrote.`;
5558
5570
  const task = `
5559
5571
  <pitch_content>${input.task}</pitch_content>
5560
5572
 
@@ -5959,13 +5971,13 @@ Write the complete Build Overview to \`${OVERVIEW_FILE}\`. The file does not exi
5959
5971
  ${OVERVIEW_SHELL}
5960
5972
  </overview_shell>
5961
5973
 
5962
- Reply with a one-line summary of what you wrote \u2014 not the HTML.`;
5974
+ Then reply with a one-line summary of what you wrote.`;
5963
5975
  }
5964
5976
  function refreshDelivery() {
5965
5977
  return `### Your deliverable
5966
5978
  The Build Overview already exists at \`${OVERVIEW_FILE}\`. Read it, then update it to reflect <overview_copy>, preserving its established skin \u2014 change only what the copy changed.
5967
5979
 
5968
- Reply with a one-line summary of what you changed \u2014 not the HTML.`;
5980
+ Then reply with a one-line summary of what you changed.`;
5969
5981
  }
5970
5982
  var buildOverviewTool = {
5971
5983
  clearable: false,
package/dist/index.js CHANGED
@@ -6299,7 +6299,7 @@ function renderDesignSystemBlock(designSystem) {
6299
6299
  "</design_system>"
6300
6300
  ].join("\n");
6301
6301
  }
6302
- function getDesignExpertPrompt(onboardingState) {
6302
+ function getDesignExpertPrompt(onboardingState, opts) {
6303
6303
  const specContext = loadSpecIndex();
6304
6304
  const indices = getSampleIndices(
6305
6305
  {
@@ -6344,10 +6344,15 @@ ${designSystemBlock}`;
6344
6344
  <project_phase>
6345
6345
  This project is in the "${state}" phase. The codebase is a placeholder scaffold or is being generated for the first time.
6346
6346
  </project_phase>`;
6347
+ }
6348
+ if (opts?.render) {
6349
+ prompt += `
6350
+
6351
+ ${RENDER_TASK_BLOCK}`;
6347
6352
  }
6348
6353
  return prompt;
6349
6354
  }
6350
- var SUBAGENT, RUNTIME_PLACEHOLDERS, PROMPT_TEMPLATE;
6355
+ var SUBAGENT, RUNTIME_PLACEHOLDERS, PROMPT_TEMPLATE, RENDER_TASK_BLOCK;
6351
6356
  var init_prompt2 = __esm({
6352
6357
  "src/subagents/designExpert/prompt.ts"() {
6353
6358
  "use strict";
@@ -6368,6 +6373,11 @@ var init_prompt2 = __esm({
6368
6373
  const k = key.trim();
6369
6374
  return RUNTIME_PLACEHOLDERS.has(k) ? match : readAsset(SUBAGENT, k);
6370
6375
  }).replace(/\n{3,}/g, "\n\n");
6376
+ RENDER_TASK_BLOCK = `<render_task>
6377
+ This task is a render: you are the author of the artifact, not an advisor on it. Everything above describes your usual work \u2014 proposing a design to a developer who then builds it. Here there is no developer downstream. You write the file the brief names, using writeFile (or editFile when it already exists), and that file is the entire deliverable.
6378
+
6379
+ The guidance about specifying layouts in prose, writing implementation notes, and keeping wireframes small doesn't apply here: it exists to hand a design to someone else to build, and you are the one building it. Your reply is a receipt \u2014 one line naming what you wrote.
6380
+ </render_task>`;
6371
6381
  }
6372
6382
  });
6373
6383
 
@@ -6424,17 +6434,19 @@ var init_history = __esm({
6424
6434
  async function runDesignExpert(opts, context) {
6425
6435
  const history = context.conversationMessages ? getSubAgentHistory(context.conversationMessages, "visualDesignExpert") : [];
6426
6436
  return runSubAgent({
6427
- system: getDesignExpertPrompt(context.onboardingState),
6437
+ system: getDesignExpertPrompt(context.onboardingState, {
6438
+ render: opts.render
6439
+ }),
6428
6440
  task: opts.task,
6429
6441
  history: history.length > 0 ? history : void 0,
6430
- tools: opts.enableWrite ? DESIGN_EXPERT_RENDER_TOOLS : DESIGN_EXPERT_TOOLS,
6442
+ tools: opts.render ? DESIGN_EXPERT_RENDER_TOOLS : DESIGN_EXPERT_TOOLS,
6431
6443
  externalTools: /* @__PURE__ */ new Set(),
6432
6444
  executeTool: (name, input, toolCallId, onLog, sams) => {
6433
6445
  const childCtx = toolCallId ? { ...deriveContext(context, toolCallId), subAgentMessages: sams } : { ...context, subAgentMessages: sams };
6434
6446
  if (COMMON_READ_TOOL_NAMES.has(name)) {
6435
6447
  return executeTool(name, input, childCtx);
6436
6448
  }
6437
- if (opts.enableWrite && RENDER_WRITE_TOOL_NAMES.has(name)) {
6449
+ if (opts.render && RENDER_WRITE_TOOL_NAMES.has(name)) {
6438
6450
  return executeTool(name, input, childCtx);
6439
6451
  }
6440
6452
  return executeDesignExpertTool(name, input, childCtx, toolCallId, onLog);
@@ -6460,7 +6472,7 @@ async function runDesignExpert(opts, context) {
6460
6472
  });
6461
6473
  }
6462
6474
  async function runDesignExpertRender(opts, context) {
6463
- return runDesignExpert({ ...opts, enableWrite: true }, context);
6475
+ return runDesignExpert({ ...opts, render: true }, context);
6464
6476
  }
6465
6477
  var DESCRIPTION, RENDER_WRITE_TOOL_NAMES, DESIGN_EXPERT_RENDER_TOOLS, designExpertTool;
6466
6478
  var init_designExpert = __esm({
@@ -6632,14 +6644,14 @@ ${unifiedDiff(filePath, oldContent, "")}`;
6632
6644
  const delivery = exists ? `### Your deliverable
6633
6645
  The pitch deck already exists at \`${filePath}\`. Read it, then update it for the new <pitch_content>, keeping the presentation scaffolding intact \u2014 change only what needs to change.
6634
6646
 
6635
- Reply with a one-line summary of what you changed \u2014 not the HTML.` : `### Your deliverable
6647
+ Then reply with a one-line summary of what you changed.` : `### Your deliverable
6636
6648
  Write the complete pitch deck to \`${filePath}\`. It does not exist yet \u2014 start from this scaffold, keeping its progress bar, chevron navigation, keyboard navigation, and transition mechanics intact:
6637
6649
 
6638
6650
  <pitch_deck_shell>
6639
6651
  ${PITCH_DECK_SHELL}
6640
6652
  </pitch_deck_shell>
6641
6653
 
6642
- Reply with a one-line summary of what you wrote \u2014 not the HTML.`;
6654
+ Then reply with a one-line summary of what you wrote.`;
6643
6655
  const task = `
6644
6656
  <pitch_content>${input.task}</pitch_content>
6645
6657
 
@@ -7097,13 +7109,13 @@ Write the complete Build Overview to \`${OVERVIEW_FILE}\`. The file does not exi
7097
7109
  ${OVERVIEW_SHELL}
7098
7110
  </overview_shell>
7099
7111
 
7100
- Reply with a one-line summary of what you wrote \u2014 not the HTML.`;
7112
+ Then reply with a one-line summary of what you wrote.`;
7101
7113
  }
7102
7114
  function refreshDelivery() {
7103
7115
  return `### Your deliverable
7104
7116
  The Build Overview already exists at \`${OVERVIEW_FILE}\`. Read it, then update it to reflect <overview_copy>, preserving its established skin \u2014 change only what the copy changed.
7105
7117
 
7106
- Reply with a one-line summary of what you changed \u2014 not the HTML.`;
7118
+ Then reply with a one-line summary of what you changed.`;
7107
7119
  }
7108
7120
  var OVERVIEW_FILE, DESIGN_BRIEF, OVERVIEW_SHELL, buildOverviewTool;
7109
7121
  var init_writeBuildOverview = __esm({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindstudio-ai/remy",
3
- "version": "0.1.254",
3
+ "version": "0.1.255",
4
4
  "description": "Remy coding agent",
5
5
  "repository": {
6
6
  "type": "git",