buildwithnexus 0.6.7 → 0.6.9

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/bin.js CHANGED
@@ -16,7 +16,7 @@ __export(init_command_exports, {
16
16
  });
17
17
  import fs from "fs";
18
18
  import path from "path";
19
- import { input, confirm } from "@inquirer/prompts";
19
+ import { input, confirm, password } from "@inquirer/prompts";
20
20
  async function deepAgentsInitCommand() {
21
21
  console.log(`
22
22
  \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557
@@ -38,19 +38,17 @@ async function deepAgentsInitCommand() {
38
38
  console.log(
39
39
  "Please provide your LLM API keys:\n(You can set these later by editing .env.local)\n"
40
40
  );
41
- const anthropicKey = await input({
41
+ const anthropicKey = await password({
42
42
  message: "ANTHROPIC_API_KEY (Claude)",
43
- default: "",
44
43
  validate: (val) => {
45
44
  if (!val) {
46
- return "At least one API key is required";
45
+ return "API key is required";
47
46
  }
48
47
  return true;
49
48
  }
50
49
  });
51
- const openaiKey = await input({
52
- message: "OPENAI_API_KEY (GPT - optional)",
53
- default: ""
50
+ const openaiKey = await password({
51
+ message: "OPENAI_API_KEY (GPT - optional, press Enter to skip)"
54
52
  });
55
53
  const backendUrl = await input({
56
54
  message: "Backend URL",
@@ -117,7 +115,7 @@ function getVersion() {
117
115
  const packageJson = JSON.parse(readFileSync(packagePath, "utf-8"));
118
116
  return packageJson.version;
119
117
  } catch {
120
- return true ? "0.6.7" : "0.0.0-unknown";
118
+ return true ? "0.6.9" : "0.0.0-unknown";
121
119
  }
122
120
  }
123
121
  function showBanner() {
@@ -409,13 +407,15 @@ async function runCommand(task, options) {
409
407
  );
410
408
  process.exit(1);
411
409
  }
410
+ const apiKey = process.env.ANTHROPIC_API_KEY || "";
412
411
  const response = await fetch(`${backendUrl}/api/run`, {
413
412
  method: "POST",
414
413
  headers: { "Content-Type": "application/json" },
415
414
  body: JSON.stringify({
416
415
  task,
417
416
  agent_role: options.agent,
418
- agent_goal: options.goal || ""
417
+ agent_goal: options.goal || "",
418
+ api_key: apiKey
419
419
  })
420
420
  });
421
421
  if (!response.ok) {
@@ -715,11 +715,12 @@ async function planModeLoop(task, backendUrl, rl, ask) {
715
715
  console.log("");
716
716
  console.log(chalk2.yellow("\u23F3 Fetching plan from backend..."));
717
717
  let steps = [];
718
+ const apiKey = process.env.ANTHROPIC_API_KEY || "";
718
719
  try {
719
720
  const response = await fetch(`${backendUrl}/api/run`, {
720
721
  method: "POST",
721
722
  headers: { "Content-Type": "application/json" },
722
- body: JSON.stringify({ task, agent_role: "engineer", agent_goal: "" })
723
+ body: JSON.stringify({ task, agent_role: "engineer", agent_goal: "", api_key: apiKey })
723
724
  });
724
725
  if (!response.ok) {
725
726
  console.error(chalk2.red("Backend error \u2014 cannot fetch plan."));
@@ -817,11 +818,12 @@ async function editPlanSteps(steps, ask) {
817
818
  async function buildModeLoop(task, backendUrl, rl, ask) {
818
819
  console.log(chalk2.bold("Task:"), chalk2.white(task));
819
820
  tui.displayConnecting();
821
+ const apiKey = process.env.ANTHROPIC_API_KEY || "";
820
822
  try {
821
823
  const response = await fetch(`${backendUrl}/api/run`, {
822
824
  method: "POST",
823
825
  headers: { "Content-Type": "application/json" },
824
- body: JSON.stringify({ task, agent_role: "engineer", agent_goal: "" })
826
+ body: JSON.stringify({ task, agent_role: "engineer", agent_goal: "", api_key: apiKey })
825
827
  });
826
828
  if (!response.ok) {
827
829
  console.error(chalk2.red("Backend error"));
@@ -887,13 +889,15 @@ async function brainstormModeLoop(task, backendUrl, rl, ask) {
887
889
  while (true) {
888
890
  console.log(chalk2.bold.blue("\u{1F4A1} Thinking..."));
889
891
  try {
892
+ const apiKey = process.env.ANTHROPIC_API_KEY || "";
890
893
  const response = await fetch(`${backendUrl}/api/run`, {
891
894
  method: "POST",
892
895
  headers: { "Content-Type": "application/json" },
893
896
  body: JSON.stringify({
894
897
  task: currentQuestion,
895
898
  agent_role: "brainstorm",
896
- agent_goal: "Generate ideas, considerations, and suggestions. Be concise and helpful."
899
+ agent_goal: "Generate ideas, considerations, and suggestions. Be concise and helpful.",
900
+ api_key: apiKey
897
901
  })
898
902
  });
899
903
  if (response.ok) {
@@ -1477,7 +1481,7 @@ import { Command as Command2 } from "commander";
1477
1481
  import chalk7 from "chalk";
1478
1482
 
1479
1483
  // src/ui/prompts.ts
1480
- import { confirm as confirm2, password } from "@inquirer/prompts";
1484
+ import { confirm as confirm2, password as password2 } from "@inquirer/prompts";
1481
1485
  import chalk6 from "chalk";
1482
1486
 
1483
1487
  // src/core/dlp.ts
@@ -1623,7 +1627,7 @@ function audit(event, detail = "") {
1623
1627
  // src/ui/prompts.ts
1624
1628
  async function promptInitConfig() {
1625
1629
  console.log(chalk6.bold("\n API Keys\n"));
1626
- const anthropicKey = await password({
1630
+ const anthropicKey = await password2({
1627
1631
  message: "Anthropic API key (required):",
1628
1632
  mask: "*",
1629
1633
  validate: (val) => {
@@ -1637,7 +1641,7 @@ async function promptInitConfig() {
1637
1641
  return true;
1638
1642
  }
1639
1643
  });
1640
- const openaiKey = await password({
1644
+ const openaiKey = await password2({
1641
1645
  message: "OpenAI API key (optional, press Enter to skip):",
1642
1646
  mask: "*",
1643
1647
  validate: (val) => {
@@ -1650,7 +1654,7 @@ async function promptInitConfig() {
1650
1654
  return true;
1651
1655
  }
1652
1656
  });
1653
- const googleKey = await password({
1657
+ const googleKey = await password2({
1654
1658
  message: "Google AI API key (optional, press Enter to skip):",
1655
1659
  mask: "*",
1656
1660
  validate: (val) => {
@@ -2398,7 +2402,7 @@ var destroyCommand = new Command9("destroy").description("Remove NEXUS VM and al
2398
2402
 
2399
2403
  // src/commands/keys.ts
2400
2404
  import { Command as Command10 } from "commander";
2401
- import { password as password2 } from "@inquirer/prompts";
2405
+ import { password as password3 } from "@inquirer/prompts";
2402
2406
  import chalk11 from "chalk";
2403
2407
  var keysCommand = new Command10("keys").description("Manage API keys");
2404
2408
  keysCommand.command("list").description("Show configured API keys (masked)").action(() => {
@@ -2433,7 +2437,7 @@ keysCommand.command("set <key>").description("Set or update an API key (e.g. ANT
2433
2437
  log.dim(`Valid keys: ${validKeys.join(", ")}`);
2434
2438
  process.exit(1);
2435
2439
  }
2436
- const value = await password2({ message: `Enter value for ${upper}:`, mask: "*" });
2440
+ const value = await password3({ message: `Enter value for ${upper}:`, mask: "*" });
2437
2441
  if (!value) {
2438
2442
  log.warn("Empty value \u2014 key not changed");
2439
2443
  return;
@@ -3466,7 +3470,7 @@ function getVersionStatic() {
3466
3470
  const packageJson = JSON.parse(readFileSync2(packagePath, "utf-8"));
3467
3471
  return packageJson.version;
3468
3472
  } catch {
3469
- return true ? "0.6.7" : "0.0.0-unknown";
3473
+ return true ? "0.6.9" : "0.0.0-unknown";
3470
3474
  }
3471
3475
  }
3472
3476
  var cli = new Command15().name("buildwithnexus").description("Auto-scaffold and launch a fully autonomous NEXUS runtime").version(getVersionStatic());
@@ -3584,7 +3588,7 @@ function printUpdateBanner(current, latest) {
3584
3588
  // src/bin.ts
3585
3589
  import dotenv from "dotenv";
3586
3590
  dotenv.config({ path: ".env.local" });
3587
- var version = true ? "0.6.7" : "0.5.17";
3591
+ var version = true ? "0.6.9" : "0.5.17";
3588
3592
  checkForUpdates(version);
3589
3593
  program.name("buildwithnexus").description("Deep Agents - AI-Powered Task Execution").version(version);
3590
3594
  program.command("da-init").description("Initialize Deep Agents (set up API keys and .env.local)").action(deepAgentsInitCommand);
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "buildwithnexus",
3
- "version": "0.6.7",
3
+ "version": "0.6.9",
4
4
  "description": "Interactive AI agent orchestrator with intent-based planning, execution, and brainstorming modes",
5
5
  "type": "module",
6
6
  "bin": {