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 +24 -20
- package/dist/nexus-release.tar.gz +0 -0
- package/package.json +1 -1
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
|
|
41
|
+
const anthropicKey = await password({
|
|
42
42
|
message: "ANTHROPIC_API_KEY (Claude)",
|
|
43
|
-
default: "",
|
|
44
43
|
validate: (val) => {
|
|
45
44
|
if (!val) {
|
|
46
|
-
return "
|
|
45
|
+
return "API key is required";
|
|
47
46
|
}
|
|
48
47
|
return true;
|
|
49
48
|
}
|
|
50
49
|
});
|
|
51
|
-
const openaiKey = await
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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.
|
|
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
|