buildwithnexus 0.8.5 → 0.8.7

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.
Files changed (2) hide show
  1. package/dist/bin.js +30 -7
  2. package/package.json +1 -1
package/dist/bin.js CHANGED
@@ -1190,7 +1190,6 @@ var TUI = class {
1190
1190
  return colors.muted(label);
1191
1191
  });
1192
1192
  console.log(parts.join(colors.muted(" \u2022 ")));
1193
- console.log(colors.muted("[s] switch mode"));
1194
1193
  console.log("");
1195
1194
  }
1196
1195
  displayModeHeader(mode) {
@@ -1230,8 +1229,6 @@ var TUI = class {
1230
1229
  );
1231
1230
  }
1232
1231
  displayBrainstormResponse(response) {
1233
- console.log("");
1234
- console.log(chalk.blue.bold("\u{1F4A1} Ideas & Analysis"));
1235
1232
  console.log("");
1236
1233
  const lines = response.split("\n");
1237
1234
  for (const line of lines) {
@@ -1246,6 +1243,21 @@ var TUI = class {
1246
1243
  displayPermissionPrompt(message) {
1247
1244
  return colors.accent.bold(message) + colors.muted(" (y/n) ");
1248
1245
  }
1246
+ displayInputBox(mode) {
1247
+ const width = 60;
1248
+ const innerWidth = width - 4;
1249
+ const modeName = mode === "PLAN" ? "\u{1F4CB} Planning" : mode === "BUILD" ? "\u2699\uFE0F Building" : "\u{1F4A1} Brainstorming";
1250
+ const top = colors.accent("\u250C" + "\u2500".repeat(innerWidth) + "\u2510");
1251
+ const bottom = colors.accent("\u2514" + "\u2500".repeat(innerWidth) + "\u2518");
1252
+ const modeDisplay = colors.muted(`Mode: ${modeName}`);
1253
+ console.log(top);
1254
+ return colors.accent("\u2502 ") + colors.muted("> ");
1255
+ }
1256
+ displayModeIndicator(mode) {
1257
+ const modeName = mode === "PLAN" ? "\u{1F4CB} Planning" : mode === "BUILD" ? "\u2699\uFE0F Building" : "\u{1F4A1} Brainstorming";
1258
+ console.log(colors.muted(`Mode: ${modeName}
1259
+ `));
1260
+ }
1249
1261
  padToWidth(text, targetWidth) {
1250
1262
  const visibleWidth = stringWidth(text);
1251
1263
  const padding = Math.max(0, targetWidth - visibleWidth);
@@ -1593,7 +1605,7 @@ init_secrets();
1593
1605
  init_docker();
1594
1606
 
1595
1607
  // src/core/version.ts
1596
- var resolvedVersion = true ? "0.8.5" : pkg.version;
1608
+ var resolvedVersion = true ? "0.8.7" : pkg.version;
1597
1609
 
1598
1610
  // src/cli/interactive.ts
1599
1611
  var appVersion = resolvedVersion;
@@ -1949,7 +1961,6 @@ async function brainstormModeLoop(task, backendUrl, currentMode, ask) {
1949
1961
  console.log(chalk3.gray('Ask follow-up questions. Type "done" to exit, "switch" to change mode.\n'));
1950
1962
  let currentQuestion = task;
1951
1963
  while (true) {
1952
- console.log(chalk3.bold.blue("\u{1F4A1} Thinking..."));
1953
1964
  try {
1954
1965
  const response = await fetch(`${backendUrl}/api/run`, {
1955
1966
  method: "POST",
@@ -1991,9 +2002,14 @@ async function brainstormModeLoop(task, backendUrl, currentMode, ask) {
1991
2002
  continue;
1992
2003
  }
1993
2004
  let responseText = "";
2005
+ let firstEvent = true;
1994
2006
  for await (const parsed of parseSSEStream(reader)) {
1995
2007
  const type = parsed.type;
1996
2008
  const data = parsed.data;
2009
+ if (firstEvent && type !== "done" && type !== "error") {
2010
+ console.log(chalk3.bold.blue("\u{1F4AD} Thinking...\n"));
2011
+ firstEvent = false;
2012
+ }
1997
2013
  if (type === "done" || type === "execution_complete" || type === "final_result") {
1998
2014
  const summary = data["summary"] || data["result"] || "";
1999
2015
  if (summary) responseText = summary;
@@ -2004,19 +2020,26 @@ async function brainstormModeLoop(task, backendUrl, currentMode, ask) {
2004
2020
  break;
2005
2021
  } else if (type === "thought" || type === "observation") {
2006
2022
  const content = data["content"] || "";
2007
- if (content) responseText += content + "\n";
2023
+ if (content) {
2024
+ console.log(chalk3.gray("\u2192 " + content));
2025
+ responseText += content + "\n";
2026
+ }
2008
2027
  } else if (type === "agent_response" || type === "agent_result") {
2009
2028
  const content = data["content"] || data["result"] || "";
2010
2029
  if (content) responseText += content + "\n";
2011
2030
  } else if (type === "action") {
2012
2031
  const content = data["content"] || "";
2013
- if (content) responseText += content + "\n";
2032
+ if (content) {
2033
+ console.log(chalk3.cyan("\u2699\uFE0F " + content));
2034
+ responseText += content + "\n";
2035
+ }
2014
2036
  } else if (type === "agent_working" || type === "started") {
2015
2037
  } else if (type !== "plan") {
2016
2038
  const content = data["content"] || data["response"] || "";
2017
2039
  if (content) responseText += content + "\n";
2018
2040
  }
2019
2041
  }
2042
+ console.log("");
2020
2043
  if (responseText.trim()) {
2021
2044
  tui.displayBrainstormResponse(responseText.trim());
2022
2045
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buildwithnexus",
3
- "version": "0.8.5",
3
+ "version": "0.8.7",
4
4
  "description": "Interactive AI agent orchestrator with intent-based planning, execution, and brainstorming modes",
5
5
  "type": "module",
6
6
  "bin": {