claude-nexus 0.15.2 → 0.16.0

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.
@@ -7,7 +7,7 @@
7
7
  {
8
8
  "name": "claude-nexus",
9
9
  "description": "Agent orchestration plugin for Claude Code. Injects optimized context per agent role with minimal overhead.",
10
- "version": "0.15.2",
10
+ "version": "0.16.0",
11
11
  "author": {
12
12
  "name": "kih"
13
13
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-nexus",
3
- "version": "0.15.2",
3
+ "version": "0.16.0",
4
4
  "description": "Agent orchestration plugin for Claude Code — optimized context injection per role",
5
5
  "author": {
6
6
  "name": "kih"
package/README.en.md CHANGED
@@ -80,7 +80,7 @@ Typical flow: use `[consult]` to discuss and align → decide → use `[dev]` or
80
80
 
81
81
  Claude-callable tools exposed by the Nexus MCP server.
82
82
 
83
- ### Core (13 tools)
83
+ ### Core (14 tools)
84
84
 
85
85
  | Tool | Purpose |
86
86
  |------|---------|
@@ -94,6 +94,7 @@ Claude-callable tools exposed by the Nexus MCP server.
94
94
  | `nx_consult_status` | Query consultation state (with decisions join) |
95
95
  | `nx_consult_decide` | Record issue decision (consult.json + decisions.json) |
96
96
  | `nx_consult_update` | Modify consultation issues (add/remove/edit/reopen) |
97
+ | `nx_branch_migrate` | Migrate state files (consult/decisions) across branches |
97
98
 
98
99
  ### Code Intelligence (10 tools)
99
100
 
package/README.md CHANGED
@@ -78,7 +78,7 @@ claude plugin install claude-nexus@nexus
78
78
 
79
79
  Claude가 직접 호출하는 도구입니다.
80
80
 
81
- ### Core (13개)
81
+ ### Core (14개)
82
82
 
83
83
  | 도구 | 용도 |
84
84
  |------|------|
@@ -92,6 +92,7 @@ Claude가 직접 호출하는 도구입니다.
92
92
  | `nx_consult_status` | 상담 상태 조회 (decisions.json join) |
93
93
  | `nx_consult_decide` | 논점 결정 처리 (consult.json + decisions.json) |
94
94
  | `nx_consult_update` | 상담 논점 수정 (add/remove/edit/reopen) |
95
+ | `nx_branch_migrate` | 브랜치 전환 시 상태 파일 이동 (consult/decisions) |
95
96
 
96
97
  ### Code Intelligence (10개)
97
98
 
package/VERSION CHANGED
@@ -1 +1 @@
1
- 0.15.2
1
+ 0.16.0
@@ -22408,8 +22408,51 @@ function registerArtifactTools(server2) {
22408
22408
  );
22409
22409
  }
22410
22410
 
22411
- // src/mcp/server.ts
22411
+ // src/mcp/tools/branch.ts
22412
+ var import_fs11 = require("fs");
22412
22413
  var import_path12 = require("path");
22414
+ var MIGRATE_FILES = ["consult.json", "decisions.json"];
22415
+ function registerBranchTools(server2) {
22416
+ server2.tool(
22417
+ "nx_branch_migrate",
22418
+ "Migrate state files (consult.json, decisions.json) from another branch folder into the current branch folder",
22419
+ {
22420
+ from_branch: external_exports.string().describe('Source branch name to migrate files from (e.g. "main")')
22421
+ },
22422
+ ({ from_branch }) => {
22423
+ const fromDir = (0, import_path12.join)(RUNTIME_ROOT, "branches", sanitizeBranch(from_branch));
22424
+ const toDir = getBranchRoot();
22425
+ if (fromDir === toDir) {
22426
+ return textResult({ error: "Source and current branch are the same" });
22427
+ }
22428
+ if (!(0, import_fs11.existsSync)(fromDir)) {
22429
+ return textResult({ migrated: [], skipped: [], from: from_branch, to: getCurrentBranch(), message: "nothing to migrate" });
22430
+ }
22431
+ ensureDir(toDir);
22432
+ const migrated = [];
22433
+ const skipped = [];
22434
+ for (const file of MIGRATE_FILES) {
22435
+ const src = (0, import_path12.join)(fromDir, file);
22436
+ const dst = (0, import_path12.join)(toDir, file);
22437
+ if (!(0, import_fs11.existsSync)(src)) continue;
22438
+ if ((0, import_fs11.existsSync)(dst)) {
22439
+ skipped.push(file);
22440
+ continue;
22441
+ }
22442
+ (0, import_fs11.renameSync)(src, dst);
22443
+ migrated.push(file);
22444
+ }
22445
+ try {
22446
+ (0, import_fs11.rmdirSync)(fromDir);
22447
+ } catch {
22448
+ }
22449
+ return textResult({ migrated, skipped, from: from_branch, to: getCurrentBranch() });
22450
+ }
22451
+ );
22452
+ }
22453
+
22454
+ // src/mcp/server.ts
22455
+ var import_path13 = require("path");
22413
22456
  var server = new McpServer({
22414
22457
  name: "nx",
22415
22458
  version: getCurrentVersion() || "0.0.0"
@@ -22417,7 +22460,7 @@ var server = new McpServer({
22417
22460
  registerMarkdownStore(server, {
22418
22461
  toolPrefix: "nx_knowledge",
22419
22462
  entityName: "topic",
22420
- dirPath: (0, import_path12.join)(KNOWLEDGE_ROOT, "knowledge"),
22463
+ dirPath: (0, import_path13.join)(KNOWLEDGE_ROOT, "knowledge"),
22421
22464
  pathFn: knowledgePath,
22422
22465
  listKey: "topics",
22423
22466
  cache: true
@@ -22425,7 +22468,7 @@ registerMarkdownStore(server, {
22425
22468
  registerMarkdownStore(server, {
22426
22469
  toolPrefix: "nx_rules",
22427
22470
  entityName: "name",
22428
- dirPath: (0, import_path12.join)(KNOWLEDGE_ROOT, "rules"),
22471
+ dirPath: (0, import_path13.join)(KNOWLEDGE_ROOT, "rules"),
22429
22472
  pathFn: rulesPath,
22430
22473
  listKey: "rules",
22431
22474
  cache: false
@@ -22437,6 +22480,7 @@ registerTaskTools(server);
22437
22480
  registerDecisionTools(server);
22438
22481
  registerArtifactTools(server);
22439
22482
  registerConsultTools(server);
22483
+ registerBranchTools(server);
22440
22484
  async function main() {
22441
22485
  const transport = new StdioServerTransport();
22442
22486
  await server.connect(transport);