claude-nexus 0.26.0 → 0.26.1
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/VERSION +1 -1
- package/bridge/mcp-server.cjs +11 -15
- package/bridge/mcp-server.cjs.map +2 -2
- package/package.json +2 -2
- package/scripts/gate.cjs +10 -6
- package/scripts/gate.cjs.map +2 -2
- package/scripts/statusline.cjs +2 -0
- package/scripts/statusline.cjs.map +2 -2
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.26.
|
|
1
|
+
0.26.1
|
package/bridge/mcp-server.cjs
CHANGED
|
@@ -21020,6 +21020,8 @@ function findProjectRoot(startDir) {
|
|
|
21020
21020
|
var PROJECT_ROOT = findProjectRoot();
|
|
21021
21021
|
var NEXUS_ROOT = process.env.NEXUS_RUNTIME_ROOT || (0, import_path2.join)(PROJECT_ROOT, ".nexus");
|
|
21022
21022
|
var STATE_ROOT = (0, import_path2.join)(NEXUS_ROOT, "state");
|
|
21023
|
+
var HARNESS_ID = "claude-nexus";
|
|
21024
|
+
var HARNESS_STATE_ROOT = (0, import_path2.join)(STATE_ROOT, HARNESS_ID);
|
|
21023
21025
|
var MEMORY_ROOT = (0, import_path2.join)(NEXUS_ROOT, "memory");
|
|
21024
21026
|
var CONTEXT_ROOT = (0, import_path2.join)(NEXUS_ROOT, "context");
|
|
21025
21027
|
function ensureDir(dir) {
|
|
@@ -21056,6 +21058,7 @@ function registerContextTool(server2) {
|
|
|
21056
21058
|
{},
|
|
21057
21059
|
async () => {
|
|
21058
21060
|
let teamStatus = { activeMode: null };
|
|
21061
|
+
let decisions = [];
|
|
21059
21062
|
const tasksFile = (0, import_path3.join)(STATE_ROOT, "tasks.json");
|
|
21060
21063
|
if ((0, import_fs3.existsSync)(tasksFile)) {
|
|
21061
21064
|
try {
|
|
@@ -21063,20 +21066,12 @@ function registerContextTool(server2) {
|
|
|
21063
21066
|
const tasks = Array.isArray(data.tasks) ? data.tasks : [];
|
|
21064
21067
|
const total = tasks.length;
|
|
21065
21068
|
const completed = tasks.filter((t) => t.status === "completed").length;
|
|
21066
|
-
const pending =
|
|
21069
|
+
const pending = tasks.filter((t) => t.status === "pending").length;
|
|
21067
21070
|
teamStatus = {
|
|
21068
21071
|
activeMode: "team",
|
|
21069
21072
|
goal: data.goal ?? "",
|
|
21070
21073
|
tasksSummary: { total, completed, pending }
|
|
21071
21074
|
};
|
|
21072
|
-
} catch {
|
|
21073
|
-
}
|
|
21074
|
-
}
|
|
21075
|
-
let decisions = [];
|
|
21076
|
-
const decisionsFile = (0, import_path3.join)(STATE_ROOT, "decisions.json");
|
|
21077
|
-
if ((0, import_fs3.existsSync)(decisionsFile)) {
|
|
21078
|
-
try {
|
|
21079
|
-
const data = JSON.parse(await (0, import_promises.readFile)(decisionsFile, "utf-8"));
|
|
21080
21075
|
decisions = Array.isArray(data.decisions) ? data.decisions : [];
|
|
21081
21076
|
} catch {
|
|
21082
21077
|
}
|
|
@@ -22039,12 +22034,12 @@ function registerPlanTools(server2) {
|
|
|
22039
22034
|
"\uC548\uAC74 \uACB0\uC815 \uAE30\uB85D \u2014 [d] \uD0DC\uADF8\uB85C \uD2B8\uB9AC\uAC70",
|
|
22040
22035
|
{
|
|
22041
22036
|
issue_id: external_exports.number().describe("\uACB0\uC815\uD560 \uC548\uAC74 ID"),
|
|
22042
|
-
|
|
22037
|
+
decision: external_exports.string().describe("\uACB0\uC815 \uB0B4\uC6A9"),
|
|
22043
22038
|
how_agents: external_exports.array(external_exports.string()).optional().describe('\uC774\uC288 \uBD84\uC11D\uC5D0 \uCC38\uC5EC\uD55C HOW \uC5D0\uC774\uC804\uD2B8 \uC774\uB984 \uBAA9\uB85D (\uC608: ["architect", "designer"])'),
|
|
22044
22039
|
how_summary: external_exports.record(external_exports.string(), external_exports.string()).optional().describe('\uC5D0\uC774\uC804\uD2B8\uBCC4 \uD575\uC2EC \uC758\uACAC \uC694\uC57D (\uC608: { "architect": "...", "designer": "..." })'),
|
|
22045
22040
|
how_agent_ids: external_exports.record(external_exports.string(), external_exports.string()).optional().describe('\uC5D0\uC774\uC804\uD2B8 \uC774\uB984 \u2192 agentId \uB9E4\uD551 (resume\uC6A9). \uC608: { "architect": "ac01819f1cd295cb8" }')
|
|
22046
22041
|
},
|
|
22047
|
-
async ({ issue_id,
|
|
22042
|
+
async ({ issue_id, decision, how_agents, how_summary, how_agent_ids }) => {
|
|
22048
22043
|
const data = await readPlan();
|
|
22049
22044
|
if (!data) {
|
|
22050
22045
|
return textResult({ error: "No active plan session" });
|
|
@@ -22054,7 +22049,7 @@ function registerPlanTools(server2) {
|
|
|
22054
22049
|
return textResult({ error: `Issue ${issue_id} not found` });
|
|
22055
22050
|
}
|
|
22056
22051
|
issue2.status = "decided";
|
|
22057
|
-
issue2.decision =
|
|
22052
|
+
issue2.decision = decision;
|
|
22058
22053
|
if (how_agents !== void 0) issue2.how_agents = how_agents;
|
|
22059
22054
|
if (how_summary !== void 0) issue2.how_summary = how_summary;
|
|
22060
22055
|
if (how_agent_ids !== void 0) issue2.how_agent_ids = how_agent_ids;
|
|
@@ -22201,12 +22196,13 @@ function registerTaskTools(server2) {
|
|
|
22201
22196
|
const tasksData = await readTasks();
|
|
22202
22197
|
const tasks = tasksData?.tasks ?? [];
|
|
22203
22198
|
const branch = getCurrentBranch();
|
|
22204
|
-
let history = { cycles: [] };
|
|
22199
|
+
let history = { schema_version: "0.5", cycles: [] };
|
|
22205
22200
|
if ((0, import_fs8.existsSync)(projectHistoryPath)) {
|
|
22206
22201
|
const raw = await (0, import_promises3.readFile)(projectHistoryPath, "utf-8");
|
|
22207
22202
|
history = JSON.parse(raw);
|
|
22208
22203
|
}
|
|
22209
22204
|
const cycle = {
|
|
22205
|
+
schema_version: "0.5",
|
|
22210
22206
|
completed_at: (/* @__PURE__ */ new Date()).toISOString(),
|
|
22211
22207
|
branch,
|
|
22212
22208
|
plan,
|
|
@@ -22258,7 +22254,7 @@ function registerTaskTools(server2) {
|
|
|
22258
22254
|
},
|
|
22259
22255
|
async ({ query, last_n }) => {
|
|
22260
22256
|
const historyPath = (0, import_path8.join)(NEXUS_ROOT, "history.json");
|
|
22261
|
-
if (!(0, import_fs8.existsSync)(historyPath)) return textResult({ cycles: [], total: 0 });
|
|
22257
|
+
if (!(0, import_fs8.existsSync)(historyPath)) return textResult({ cycles: [], total: 0, showing: 0 });
|
|
22262
22258
|
const raw = await (0, import_promises3.readFile)(historyPath, "utf-8");
|
|
22263
22259
|
const history = JSON.parse(raw);
|
|
22264
22260
|
let cycles = history.cycles || [];
|
|
@@ -22292,7 +22288,7 @@ function registerArtifactTools(server2) {
|
|
|
22292
22288
|
content: external_exports.string().describe("File content to write")
|
|
22293
22289
|
},
|
|
22294
22290
|
async ({ filename, content }) => {
|
|
22295
|
-
const artifactsDir = (0, import_path9.join)(
|
|
22291
|
+
const artifactsDir = (0, import_path9.join)(HARNESS_STATE_ROOT, "artifacts");
|
|
22296
22292
|
ensureDir(artifactsDir);
|
|
22297
22293
|
const path = (0, import_path9.join)(artifactsDir, filename);
|
|
22298
22294
|
await (0, import_promises4.writeFile)(path, content);
|