@memnexus-ai/mx-agent-cli 0.1.19 → 0.1.21

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 (40) hide show
  1. package/dist/__tests__/project-config.test.d.ts +2 -0
  2. package/dist/__tests__/project-config.test.d.ts.map +1 -0
  3. package/dist/__tests__/project-config.test.js +133 -0
  4. package/dist/__tests__/project-config.test.js.map +1 -0
  5. package/dist/commands/create.d.ts.map +1 -1
  6. package/dist/commands/create.js +10 -8
  7. package/dist/commands/create.js.map +1 -1
  8. package/dist/commands/init.d.ts +26 -0
  9. package/dist/commands/init.d.ts.map +1 -0
  10. package/dist/commands/init.js +120 -0
  11. package/dist/commands/init.js.map +1 -0
  12. package/dist/commands/list.d.ts.map +1 -1
  13. package/dist/commands/list.js +4 -2
  14. package/dist/commands/list.js.map +1 -1
  15. package/dist/commands/start.d.ts.map +1 -1
  16. package/dist/commands/start.js +18 -16
  17. package/dist/commands/start.js.map +1 -1
  18. package/dist/index.js +15 -0
  19. package/dist/index.js.map +1 -1
  20. package/dist/lib/catalog.d.ts +5 -5
  21. package/dist/lib/catalog.d.ts.map +1 -1
  22. package/dist/lib/catalog.js +11 -11
  23. package/dist/lib/catalog.js.map +1 -1
  24. package/dist/lib/claude.d.ts +16 -8
  25. package/dist/lib/claude.d.ts.map +1 -1
  26. package/dist/lib/claude.js +43 -27
  27. package/dist/lib/claude.js.map +1 -1
  28. package/dist/lib/project-config.d.ts +38 -0
  29. package/dist/lib/project-config.d.ts.map +1 -0
  30. package/dist/lib/project-config.js +90 -0
  31. package/dist/lib/project-config.js.map +1 -0
  32. package/dist/lib/templates.d.ts +24 -0
  33. package/dist/lib/templates.d.ts.map +1 -0
  34. package/dist/lib/templates.js +88 -0
  35. package/dist/lib/templates.js.map +1 -0
  36. package/dist/lib/worktree.d.ts +5 -5
  37. package/dist/lib/worktree.d.ts.map +1 -1
  38. package/dist/lib/worktree.js +36 -30
  39. package/dist/lib/worktree.js.map +1 -1
  40. package/package.json +6 -3
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Embedded template strings used by `mx-agent init`.
3
+ *
4
+ * These are inline string constants — no file bundling, no network calls.
5
+ * They provide minimal-but-valid stubs that a user can customise after init.
6
+ */
7
+ /**
8
+ * Minimal settings.json for Claude Code agent permissions.
9
+ * Grants bash access and restricts to the worktree directory.
10
+ */
11
+ export const SETTINGS_JSON_TEMPLATE = JSON.stringify({
12
+ permissions: {
13
+ allow: [
14
+ 'Bash(*)',
15
+ 'Read(*)',
16
+ 'Write(*)',
17
+ 'Edit(*)',
18
+ 'Glob(*)',
19
+ 'Grep(*)',
20
+ ],
21
+ deny: [
22
+ 'Bash(git checkout main)',
23
+ 'Bash(git checkout master)',
24
+ 'Bash(git push origin main)',
25
+ 'Bash(git push origin master)',
26
+ 'Bash(git switch main)',
27
+ 'Bash(git switch master)',
28
+ ],
29
+ },
30
+ }, null, 2);
31
+ /**
32
+ * Stub worktree-guard.sh hook.
33
+ * Blocks branch switching to main and force-pushes.
34
+ */
35
+ export const WORKTREE_GUARD_SH_TEMPLATE = `#!/usr/bin/env bash
36
+ # worktree-guard.sh — Claude Code PreToolUse hook
37
+ # Blocks dangerous git operations in worktrees.
38
+ # Customise this file for your project's safety requirements.
39
+
40
+ set -euo pipefail
41
+
42
+ TOOL_NAME="\${CLAUDE_TOOL_NAME:-}"
43
+ TOOL_INPUT="\${CLAUDE_TOOL_INPUT:-}"
44
+
45
+ if [[ "\$TOOL_NAME" != "Bash" ]]; then
46
+ exit 0
47
+ fi
48
+
49
+ # Block checkout/switch to base branch
50
+ if echo "\$TOOL_INPUT" | grep -qE 'git (checkout|switch) (main|master|develop)'; then
51
+ echo "Blocked: cannot switch to base branch from a worktree." >&2
52
+ exit 1
53
+ fi
54
+
55
+ # Block force push to base branch
56
+ if echo "\$TOOL_INPUT" | grep -qE 'git push .*(--force|-f).*(main|master|develop)'; then
57
+ echo "Blocked: force push to base branch is not allowed." >&2
58
+ exit 1
59
+ fi
60
+
61
+ exit 0
62
+ `;
63
+ /**
64
+ * Stub CLAUDE.md.template — the template that gets deployed into each worktree
65
+ * as CLAUDE.md when running mx-agent create / mx-agent start.
66
+ *
67
+ * Users should replace this with project-specific instructions.
68
+ */
69
+ export const CLAUDE_MD_TEMPLATE = `# Agent Instructions
70
+
71
+ This file is deployed automatically into each agent worktree by \`mx-agent\`.
72
+ Replace the contents below with your project-specific agent instructions.
73
+
74
+ ## Project Overview
75
+
76
+ <!-- Describe your project here -->
77
+
78
+ ## Workflow
79
+
80
+ <!-- Describe the expected workflow for agents -->
81
+
82
+ ## Rules
83
+
84
+ 1. Stay within your worktree directory.
85
+ 2. Do not push to the base branch directly — create a PR.
86
+ 3. Follow the project's coding conventions.
87
+ `;
88
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAClD;IACE,WAAW,EAAE;QACX,KAAK,EAAE;YACL,SAAS;YACT,SAAS;YACT,UAAU;YACV,SAAS;YACT,SAAS;YACT,SAAS;SACV;QACD,IAAI,EAAE;YACJ,yBAAyB;YACzB,2BAA2B;YAC3B,4BAA4B;YAC5B,8BAA8B;YAC9B,uBAAuB;YACvB,yBAAyB;SAC1B;KACF;CACF,EACD,IAAI,EACJ,CAAC,CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BzC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;CAkBjC,CAAC"}
@@ -4,9 +4,9 @@
4
4
  */
5
5
  export declare function findProjectRoot(): string;
6
6
  type SlotMap = Record<string, number>;
7
- export declare function loadSlots(projectRoot: string): SlotMap;
8
- export declare function assignSlot(projectRoot: string, worktreeName: string, maxWorktrees?: number): number;
9
- export declare function getSlot(projectRoot: string, worktreeName: string): number | null;
7
+ export declare function loadSlots(projectRoot: string, worktreeDir?: string): SlotMap;
8
+ export declare function assignSlot(projectRoot: string, worktreeName: string, worktreeDir?: string, maxWorktrees?: number): number;
9
+ export declare function getSlot(projectRoot: string, worktreeName: string, worktreeDir?: string): number | null;
10
10
  export declare function getCurrentBranch(cwd: string): string | null;
11
11
  export declare function fetchOrigin(cwd: string): void;
12
12
  /**
@@ -35,8 +35,8 @@ export declare function generateBranchName(teamSlug: string): string;
35
35
  export declare function generateWorktreeDirName(teamSlug: string): string;
36
36
  /**
37
37
  * Find the worktree directory for a team.
38
- * Looks for an exact match `<name>` or a prefix match `<name>-*` under .worktrees/.
38
+ * Looks for an exact match `<name>` or a prefix match `<name>-*` under worktreeDir/.
39
39
  */
40
- export declare function findWorktreePath(projectRoot: string, teamName: string): string | null;
40
+ export declare function findWorktreePath(projectRoot: string, teamName: string, worktreeDir?: string): string | null;
41
41
  export {};
42
42
  //# sourceMappingURL=worktree.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH,wBAAgB,eAAe,IAAI,MAAM,CAuBxC;AAMD,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAMtC,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAQtD;AAQD,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM,CAavG;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhF;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAM7C;AAeD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,IAAI,CAcN;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAUlF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAWhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4BrF"}
1
+ {"version":3,"file":"worktree.d.ts","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH,wBAAgB,eAAe,IAAI,MAAM,CAwBxC;AAMD,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAMtC,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,GAAE,MAAqB,GAAG,OAAO,CAQ1F;AAQD,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAE,MAAqB,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM,CAa3I;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAE,MAAqB,GAAG,MAAM,GAAG,IAAI,CAGpH;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAU3D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAM7C;AAiBD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,IAAI,CAiBN;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAUlF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAWhE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,GAAE,MAAqB,GAAG,MAAM,GAAG,IAAI,CAyBzH"}
@@ -2,17 +2,17 @@
2
2
  * Git worktree operations for the agent CLI.
3
3
  * Borrowed and simplified from dev-tools/worktree-cli/src/git.ts and config.ts.
4
4
  */
5
- import { execSync } from 'child_process';
6
- import { existsSync, readFileSync, writeFileSync, mkdirSync, statSync, symlinkSync } from 'fs';
5
+ import { execSync, spawnSync } from 'child_process';
6
+ import { existsSync, readFileSync, readdirSync, writeFileSync, mkdirSync, statSync, symlinkSync } from 'fs';
7
7
  import { join, dirname } from 'path';
8
8
  // ── Project root detection ────────────────────────────────────────────
9
9
  /**
10
10
  * Walk up from cwd to find the repo root (directory containing .git).
11
11
  *
12
12
  * Strategy:
13
- * 1. Walk up from cwd looking for a directory with both .git AND mx-agent-system/ or worktree.toml.
14
- * This finds the actual "agent platform" project root even when running from inside a
15
- * nested .worktrees/ sub-path.
13
+ * 1. Walk up from cwd looking for a directory with both .git AND mx-agent-system/ or worktree.toml
14
+ * or mx-agent.config.json. This finds the actual "agent platform" project root even when
15
+ * running from inside a nested .worktrees/ sub-path.
16
16
  * 2. If no such directory found, any directory with .git qualifies.
17
17
  */
18
18
  /**
@@ -40,7 +40,8 @@ export function findProjectRoot() {
40
40
  if (firstMainGit === null)
41
41
  firstMainGit = candidate;
42
42
  if (existsSync(join(candidate, 'mx-agent-system')) ||
43
- existsSync(join(candidate, 'worktree.toml'))) {
43
+ existsSync(join(candidate, 'worktree.toml')) ||
44
+ existsSync(join(candidate, 'mx-agent.config.json'))) {
44
45
  return candidate;
45
46
  }
46
47
  }
@@ -52,11 +53,11 @@ export function findProjectRoot() {
52
53
  }
53
54
  // ── Slot management (mirrors dev-tools/worktree-cli/src/ports.ts) ─────
54
55
  const SLOTS_FILENAME = '.slots.json';
55
- function getSlotsPath(projectRoot) {
56
- return join(projectRoot, '.worktrees', SLOTS_FILENAME);
56
+ function getSlotsPath(projectRoot, worktreeDir = '.worktrees') {
57
+ return join(projectRoot, worktreeDir, SLOTS_FILENAME);
57
58
  }
58
- export function loadSlots(projectRoot) {
59
- const filePath = getSlotsPath(projectRoot);
59
+ export function loadSlots(projectRoot, worktreeDir = '.worktrees') {
60
+ const filePath = getSlotsPath(projectRoot, worktreeDir);
60
61
  if (!existsSync(filePath))
61
62
  return {};
62
63
  try {
@@ -66,28 +67,28 @@ export function loadSlots(projectRoot) {
66
67
  return {};
67
68
  }
68
69
  }
69
- function saveSlots(projectRoot, slots) {
70
- const dir = join(projectRoot, '.worktrees');
70
+ function saveSlots(projectRoot, worktreeDir = '.worktrees', slots) {
71
+ const dir = join(projectRoot, worktreeDir);
71
72
  if (!existsSync(dir))
72
73
  mkdirSync(dir, { recursive: true });
73
- writeFileSync(getSlotsPath(projectRoot), JSON.stringify(slots, null, 2));
74
+ writeFileSync(getSlotsPath(projectRoot, worktreeDir), JSON.stringify(slots, null, 2));
74
75
  }
75
- export function assignSlot(projectRoot, worktreeName, maxWorktrees = 25) {
76
- const slots = loadSlots(projectRoot);
76
+ export function assignSlot(projectRoot, worktreeName, worktreeDir = '.worktrees', maxWorktrees = 25) {
77
+ const slots = loadSlots(projectRoot, worktreeDir);
77
78
  if (slots[worktreeName] !== undefined)
78
79
  return slots[worktreeName];
79
80
  const used = new Set(Object.values(slots));
80
81
  for (let i = 1; i <= maxWorktrees; i++) {
81
82
  if (!used.has(i)) {
82
83
  slots[worktreeName] = i;
83
- saveSlots(projectRoot, slots);
84
+ saveSlots(projectRoot, worktreeDir, slots);
84
85
  return i;
85
86
  }
86
87
  }
87
88
  throw new Error(`No available slots (max: ${maxWorktrees}). Remove a worktree first.`);
88
89
  }
89
- export function getSlot(projectRoot, worktreeName) {
90
- const slots = loadSlots(projectRoot);
90
+ export function getSlot(projectRoot, worktreeName, worktreeDir = '.worktrees') {
91
+ const slots = loadSlots(projectRoot, worktreeDir);
91
92
  return slots[worktreeName] ?? null;
92
93
  }
93
94
  // ── Git helpers ───────────────────────────────────────────────────────
@@ -116,8 +117,10 @@ export function fetchOrigin(cwd) {
116
117
  */
117
118
  function branchExists(branch, cwd) {
118
119
  try {
119
- const local = execSync(`git branch --list ${branch}`, { cwd, encoding: 'utf-8', stdio: 'pipe' }).trim();
120
- const remote = execSync(`git branch -r --list origin/${branch}`, { cwd, encoding: 'utf-8', stdio: 'pipe' }).trim();
120
+ const localR = spawnSync('git', ['branch', '--list', branch], { cwd, encoding: 'utf-8', stdio: 'pipe' });
121
+ const remoteR = spawnSync('git', ['branch', '-r', '--list', `origin/${branch}`], { cwd, encoding: 'utf-8', stdio: 'pipe' });
122
+ const local = localR.status === 0 ? localR.stdout.trim() : '';
123
+ const remote = remoteR.status === 0 ? remoteR.stdout.trim() : '';
121
124
  return Boolean(local || remote);
122
125
  }
123
126
  catch {
@@ -134,15 +137,21 @@ export function createGitWorktree(worktreePath, branch, baseBranch, cwd) {
134
137
  }
135
138
  catch { /* non-fatal */ }
136
139
  if (branchExists(branch, cwd)) {
137
- execSync(`git worktree add "${worktreePath}" "${branch}"`, { cwd, stdio: 'inherit' });
140
+ const r = spawnSync('git', ['worktree', 'add', worktreePath, branch], { cwd, stdio: 'inherit' });
141
+ if (r.status !== 0)
142
+ throw new Error(`git worktree add failed with status ${r.status}`);
138
143
  }
139
144
  else {
140
145
  try {
141
- execSync(`git worktree add "${worktreePath}" -b "${branch}" "origin/${baseBranch}"`, { cwd, stdio: 'inherit' });
146
+ const r = spawnSync('git', ['worktree', 'add', worktreePath, '-b', branch, `origin/${baseBranch}`], { cwd, stdio: 'inherit' });
147
+ if (r.status !== 0)
148
+ throw new Error(`git worktree add failed with status ${r.status}`);
142
149
  }
143
150
  catch {
144
151
  // Fall back to local branch if origin doesn't have it
145
- execSync(`git worktree add "${worktreePath}" -b "${branch}" "${baseBranch}"`, { cwd, stdio: 'inherit' });
152
+ const r = spawnSync('git', ['worktree', 'add', worktreePath, '-b', branch, baseBranch], { cwd, stdio: 'inherit' });
153
+ if (r.status !== 0)
154
+ throw new Error(`git worktree add failed with status ${r.status}`);
146
155
  }
147
156
  }
148
157
  }
@@ -199,10 +208,10 @@ export function generateWorktreeDirName(teamSlug) {
199
208
  }
200
209
  /**
201
210
  * Find the worktree directory for a team.
202
- * Looks for an exact match `<name>` or a prefix match `<name>-*` under .worktrees/.
211
+ * Looks for an exact match `<name>` or a prefix match `<name>-*` under worktreeDir/.
203
212
  */
204
- export function findWorktreePath(projectRoot, teamName) {
205
- const worktreesDir = join(projectRoot, '.worktrees');
213
+ export function findWorktreePath(projectRoot, teamName, worktreeDir = '.worktrees') {
214
+ const worktreesDir = join(projectRoot, worktreeDir);
206
215
  if (!existsSync(worktreesDir))
207
216
  return null;
208
217
  // Try exact match first
@@ -211,10 +220,7 @@ export function findWorktreePath(projectRoot, teamName) {
211
220
  return exact;
212
221
  // Prefix match: teamName-YYYYMMDD
213
222
  try {
214
- const entries = execSync(`ls "${worktreesDir}"`, { encoding: 'utf-8', stdio: 'pipe' })
215
- .trim()
216
- .split('\n')
217
- .filter(Boolean);
223
+ const entries = readdirSync(worktreesDir);
218
224
  for (const entry of entries) {
219
225
  if (entry === teamName || entry.startsWith(`${teamName}-`)) {
220
226
  const candidate = join(worktreesDir, entry);
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/lib/worktree.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memnexus-ai/mx-agent-cli",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "description": "CLI for creating and managing AI agent teams",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,7 +10,9 @@
10
10
  "build": "tsc",
11
11
  "dev": "tsc --watch",
12
12
  "start": "node dist/index.js",
13
- "prepublishOnly": "npm run build"
13
+ "prepublishOnly": "npm run build",
14
+ "test": "vitest run",
15
+ "test:watch": "vitest"
14
16
  },
15
17
  "files": [
16
18
  "dist/",
@@ -39,7 +41,8 @@
39
41
  },
40
42
  "devDependencies": {
41
43
  "@types/node": "^20.11.0",
42
- "typescript": "^5.3.0"
44
+ "typescript": "^5.3.0",
45
+ "vitest": "^2.0.0"
43
46
  },
44
47
  "engines": {
45
48
  "node": ">=18.0.0"