@memnexus-ai/mx-agent-cli 0.1.44 → 0.1.45

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.
@@ -9,6 +9,7 @@
9
9
  * Grants bash access and restricts to the worktree directory.
10
10
  */
11
11
  export const SETTINGS_JSON_TEMPLATE = JSON.stringify({
12
+ CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: '1',
12
13
  hooks: {
13
14
  PreToolUse: [
14
15
  {
@@ -16,19 +17,25 @@ export const SETTINGS_JSON_TEMPLATE = JSON.stringify({
16
17
  hooks: [{ type: 'command', command: '.claude/hooks/worktree-guard.sh' }],
17
18
  },
18
19
  ],
20
+ PreCompact: [
21
+ {
22
+ matcher: '',
23
+ hooks: [{ type: 'command', command: '.claude/hooks/auto-checkpoint.sh' }],
24
+ },
25
+ ],
26
+ SessionStart: [
27
+ {
28
+ matcher: 'compact',
29
+ hooks: [{ type: 'command', command: '.claude/hooks/reload-checkpoint.sh' }],
30
+ },
31
+ {
32
+ matcher: '',
33
+ hooks: [{ type: 'command', command: '.claude/hooks/set-terminal-appearance.sh' }],
34
+ },
35
+ ],
19
36
  },
20
37
  permissions: {
21
38
  allow: [
22
- 'Bash',
23
- 'Read',
24
- 'Edit',
25
- 'Write',
26
- 'Glob',
27
- 'Grep',
28
- 'WebFetch',
29
- 'WebSearch',
30
- 'Task',
31
- 'NotebookEdit',
32
39
  'mcp__MX__search_memories',
33
40
  'mcp__MX__create_memory',
34
41
  'mcp__MX__retrieve_episodic_memory',
@@ -40,6 +47,16 @@ export const SETTINGS_JSON_TEMPLATE = JSON.stringify({
40
47
  'mcp__MX__graphrag_query',
41
48
  'mcp__MX__get_memory_usage',
42
49
  'mcp__MX__list_conversations',
50
+ 'Bash',
51
+ 'Read',
52
+ 'Edit',
53
+ 'Write',
54
+ 'Glob',
55
+ 'Grep',
56
+ 'WebFetch',
57
+ 'WebSearch',
58
+ 'Task',
59
+ 'NotebookEdit',
43
60
  ],
44
61
  deny: [
45
62
  'Bash(rm -rf /*)',
@@ -52,6 +69,12 @@ export const SETTINGS_JSON_TEMPLATE = JSON.stringify({
52
69
  'Bash(git reset --hard *)',
53
70
  'Bash(git clean -fd *)',
54
71
  'Bash(git clean -fdx *)',
72
+ 'Bash(kubectl delete namespace *)',
73
+ 'Bash(kubectl delete node *)',
74
+ 'Bash(helm uninstall *)',
75
+ 'Bash(az group delete *)',
76
+ 'Bash(az aks delete *)',
77
+ 'Bash(az deployment group delete *)',
55
78
  'Bash(git checkout main)',
56
79
  'Bash(git checkout main *)',
57
80
  'Bash(git checkout -)',
@@ -75,6 +98,18 @@ export const SETTINGS_JSON_TEMPLATE = JSON.stringify({
75
98
  'Bash(docker kill *)',
76
99
  'Bash(docker rm *)',
77
100
  'Bash(docker rmi *)',
101
+ 'Bash(kubectl delete pod *)',
102
+ 'Bash(kubectl delete deployment *)',
103
+ 'Bash(kubectl delete service *)',
104
+ 'Bash(kubectl drain *)',
105
+ 'Bash(kubectl taint *)',
106
+ 'Bash(helm upgrade *)',
107
+ 'Bash(helm rollback *)',
108
+ 'Bash(az aks upgrade *)',
109
+ 'Bash(az aks scale *)',
110
+ 'Bash(az deployment group create *)',
111
+ 'Bash(az vm delete *)',
112
+ 'Bash(az storage account delete *)',
78
113
  ],
79
114
  },
80
115
  }, null, 2);
@@ -83,22 +118,31 @@ export const SETTINGS_JSON_TEMPLATE = JSON.stringify({
83
118
  * Blocks branch switching to main and force-pushes.
84
119
  */
85
120
  export const WORKTREE_GUARD_SH_TEMPLATE = `#!/bin/bash
86
- # worktree-guard.sh Claude Code PreToolUse hook
87
- # Blocks dangerous git operations and directory escapes in worktrees.
88
- # Customize for your project's safety requirements.
121
+ # Worktree isolation guard - runs before every Bash command
122
+ # Exit 0 = allow, Exit 2 = block (non-zero exit blocks the command)
89
123
  #
90
- # Exit 0 = allow, Exit 2 = block
124
+ # This hook enforces worktree isolation by:
125
+ # 1. Blocking cd commands that leave the worktree directory
126
+ # 2. Blocking dangerous git operations (belt-and-suspenders with settings.json)
127
+ #
128
+ # Requires environment variables set by \`worktree start\`:
129
+ # - CLAUDE_WORKTREE_PATH: Absolute path to worktree (e.g., /workspace/.worktrees/foo)
130
+ # - CLAUDE_WORKTREE_NAME: Worktree name (e.g., foo)
91
131
 
92
132
  set -euo pipefail
93
133
 
94
- # Read tool input from stdin (JSON format)
134
+ # Read the tool input from stdin (JSON format)
95
135
  INPUT=$(cat)
136
+
137
+ # Extract the command - handle both direct command and tool_input formats
96
138
  COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // .command // empty' 2>/dev/null)
97
139
 
98
140
  if [[ -z "$COMMAND" ]]; then
141
+ # Can't parse command, allow it (fail open)
99
142
  exit 0
100
143
  fi
101
144
 
145
+ # Get worktree path from environment
102
146
  WORKTREE_PATH="\${CLAUDE_WORKTREE_PATH:-}"
103
147
 
104
148
  # If no worktree restriction set, allow everything
@@ -106,52 +150,352 @@ if [[ -z "$WORKTREE_PATH" ]]; then
106
150
  exit 0
107
151
  fi
108
152
 
153
+ # Normalize worktree path (remove trailing slash)
109
154
  WORKTREE_PATH="\${WORKTREE_PATH%/}"
110
155
 
111
- # Block cd outside worktree
112
- if echo "$COMMAND" | grep -qE '(^|&&|;)\\s*cd\\s+'; then
113
- CD_TARGETS=$(echo "$COMMAND" | grep -oE 'cd\\s+[^;&|]+' | sed 's/cd\\s*//' | tr -d '"'"'"' || true)
156
+ # Get current working directory
157
+ CURRENT_DIR=$(pwd)
158
+
159
+ # ============================================================
160
+ # Rule 1: Block cd to paths outside worktree
161
+ # ============================================================
162
+ if echo "$COMMAND" | grep -qE '^\\s*cd\\s+' || echo "$COMMAND" | grep -qE '&&\\s*cd\\s+' || echo "$COMMAND" | grep -qE ';\\s*cd\\s+'; then
163
+ # Extract cd target(s) from command
164
+ # This handles: cd /path, cd path, command && cd path, etc.
165
+
166
+ # Get all cd targets
167
+ CD_TARGETS=$(echo "$COMMAND" | grep -oE 'cd\\s+[^;&|]+' | sed 's/cd\\s*//' | tr -d '"'"'" || true)
168
+
114
169
  for TARGET in $CD_TARGETS; do
170
+ # Skip empty targets
115
171
  [[ -z "$TARGET" ]] && continue
172
+
173
+ # Resolve the path
116
174
  if [[ "$TARGET" == /* ]]; then
175
+ # Absolute path
117
176
  RESOLVED="$TARGET"
177
+ elif [[ "$TARGET" == "~"* ]]; then
178
+ # Home directory path
179
+ RESOLVED="\${TARGET/#\\~/$HOME}"
118
180
  else
119
- RESOLVED=$(cd "$(pwd)" 2>/dev/null && cd "$TARGET" 2>/dev/null && pwd) || RESOLVED=""
181
+ # Relative path - resolve from current directory
182
+ RESOLVED=$(cd "$CURRENT_DIR" 2>/dev/null && cd "$TARGET" 2>/dev/null && pwd) || RESOLVED=""
120
183
  fi
184
+
185
+ # Normalize resolved path
121
186
  RESOLVED="\${RESOLVED%/}"
122
- [[ "$RESOLVED" == /tmp* ]] && continue
123
- [[ "$RESOLVED" == "$WORKTREE_PATH"* ]] && continue
187
+
188
+ # Allow /tmp and /var/tmp
189
+ if [[ "$RESOLVED" == /tmp* ]] || [[ "$RESOLVED" == /var/tmp* ]]; then
190
+ continue
191
+ fi
192
+
193
+ # Allow paths within worktree
194
+ if [[ "$RESOLVED" == "$WORKTREE_PATH"* ]]; then
195
+ continue
196
+ fi
197
+
198
+ # Allow the scratchpad directory
199
+ if [[ "$RESOLVED" == *"/scratchpad"* ]]; then
200
+ continue
201
+ fi
202
+
203
+ # Allow the user's home directory (for inspecting global tools, configs, etc.)
204
+ if [[ -n "$HOME" ]] && [[ "$RESOLVED" == "$HOME"* ]]; then
205
+ continue
206
+ fi
207
+
208
+ # Block: path is outside worktree
124
209
  if [[ -n "$RESOLVED" ]]; then
125
- echo "BLOCKED: Cannot navigate outside worktree (target: $TARGET)" >&2
210
+ echo ""
211
+ echo "BLOCKED: Cannot navigate outside worktree"
212
+ echo " Target: $TARGET"
213
+ echo " Resolved: $RESOLVED"
214
+ echo " Allowed: $WORKTREE_PATH (and /tmp)"
215
+ echo ""
216
+ echo "You are working in worktree: \${CLAUDE_WORKTREE_NAME:-unknown}"
217
+ echo "Stay within your assigned worktree directory."
218
+ echo ""
126
219
  exit 2
127
220
  fi
128
221
  done
129
222
  fi
130
223
 
131
- # Block checkout/switch to main
224
+ # ============================================================
225
+ # Rule 2: Block git operations that could tangle state
226
+ # (Belt-and-suspenders with settings.json deny rules)
227
+ # ============================================================
228
+
229
+ # Block checkout to main
132
230
  if echo "$COMMAND" | grep -qE 'git\\s+(checkout|switch)\\s+main(\\s|$)'; then
133
- echo "BLOCKED: Cannot switch to main branch" >&2
231
+ echo ""
232
+ echo "BLOCKED: Cannot switch to main branch"
233
+ echo " Command: $COMMAND"
234
+ echo " Worktree: \${CLAUDE_WORKTREE_NAME:-unknown}"
235
+ echo ""
236
+ echo "To work on main, use a different worktree or the root workspace."
237
+ echo ""
134
238
  exit 2
135
239
  fi
136
240
 
137
- # Block new branch creation
241
+ # Block checkout -b (new branch creation)
138
242
  if echo "$COMMAND" | grep -qE 'git\\s+(checkout\\s+-b|switch\\s+(-c|--create))'; then
139
- echo "BLOCKED: Cannot create new branches from a worktree" >&2
243
+ echo ""
244
+ echo "BLOCKED: Cannot create new branches"
245
+ echo " Command: $COMMAND"
246
+ echo " Worktree: \${CLAUDE_WORKTREE_NAME:-unknown}"
247
+ echo ""
248
+ echo "Work on your assigned branch. Create PRs to merge changes."
249
+ echo ""
140
250
  exit 2
141
251
  fi
142
252
 
143
253
  # Block merge
144
254
  if echo "$COMMAND" | grep -qE 'git\\s+merge\\s'; then
145
- echo "BLOCKED: Cannot merge branches directly — use a PR" >&2
255
+ echo ""
256
+ echo "BLOCKED: Cannot merge branches directly"
257
+ echo " Command: $COMMAND"
258
+ echo " Worktree: \${CLAUDE_WORKTREE_NAME:-unknown}"
259
+ echo ""
260
+ echo "Use pull requests to merge changes."
261
+ echo ""
146
262
  exit 2
147
263
  fi
148
264
 
149
265
  # Block push to main
150
- if echo "$COMMAND" | grep -qE 'git\\s+push\\s+.*origin\\s+main'; then
151
- echo "BLOCKED: Cannot push to main" >&2
266
+ if echo "$COMMAND" | grep -qE 'git\\s+push\\s+.*\\s*origin\\s+main'; then
267
+ echo ""
268
+ echo "BLOCKED: Cannot push to main"
269
+ echo " Command: $COMMAND"
270
+ echo ""
271
+ echo "Push to your worktree branch and create a PR."
272
+ echo ""
152
273
  exit 2
153
274
  fi
154
275
 
276
+ # ============================================================
277
+ # All checks passed - allow the command
278
+ # ============================================================
279
+ exit 0
280
+ `;
281
+ /**
282
+ * auto-checkpoint.sh — PreCompact hook that saves a checkpoint memory
283
+ * before context compaction so agents can resume after losing context.
284
+ */
285
+ export const AUTO_CHECKPOINT_SH_TEMPLATE = `#!/bin/bash
286
+ # auto-checkpoint.sh — Claude Code PreCompact hook
287
+ # Saves a checkpoint memory before context compaction so agents can resume
288
+ # after losing context. Uses the /mx-checkpoint template format.
289
+ #
290
+ # Fires on: PreCompact (auto or manual compaction)
291
+ # Input: JSON on stdin with transcript_path, session_id, trigger
292
+ # Output: none (side-effect only — saves memory via mx CLI)
293
+ # Exit: always 0 (never blocks compaction)
294
+
295
+ # Fail-open: any error → allow compaction without saving
296
+ trap 'exit 0' ERR
297
+
298
+ # ── 1. Parse hook input ──────────────────────────────────────────────────
299
+ INPUT=$(cat)
300
+
301
+ TRANSCRIPT_PATH=$(echo "$INPUT" | jq -r '.transcript_path // empty' 2>/dev/null)
302
+ SESSION_ID=$(echo "$INPUT" | jq -r '.session_id // empty' 2>/dev/null)
303
+ TRIGGER=$(echo "$INPUT" | jq -r '.trigger // .source // "auto"' 2>/dev/null)
304
+
305
+ # Skip if no transcript available or jq missing
306
+ if [[ -z "$TRANSCRIPT_PATH" || ! -f "$TRANSCRIPT_PATH" ]]; then
307
+ exit 0
308
+ fi
309
+
310
+ command -v jq >/dev/null 2>&1 || exit 0
311
+ command -v mx >/dev/null 2>&1 || exit 0
312
+
313
+ # ── 2. Extract context from transcript ───────────────────────────────────
314
+
315
+ # Recent user/assistant text (last ~200 lines of transcript, text content only)
316
+ RECENT_TEXT=$(tail -200 "$TRANSCRIPT_PATH" | \\
317
+ jq -r '
318
+ select(.type == "user" or .type == "assistant") |
319
+ .message.content[]? |
320
+ select(.type == "text") |
321
+ .text // empty
322
+ ' 2>/dev/null | tail -c 8000)
323
+
324
+ # Files touched (from tool_use entries: Read, Edit, Write, Glob)
325
+ FILES_TOUCHED=$(tail -500 "$TRANSCRIPT_PATH" | \\
326
+ jq -r '
327
+ select(.type == "assistant") |
328
+ .message.content[]? |
329
+ select(.type == "tool_use") |
330
+ .input.file_path // empty
331
+ ' 2>/dev/null | grep -v '^\$' | sort -u | head -30)
332
+
333
+ # Git branch and PR references
334
+ GIT_BRANCH="\${CLAUDE_WORKTREE_BRANCH:-}"
335
+ if [[ -z "$GIT_BRANCH" ]]; then
336
+ GIT_BRANCH=$(git branch --show-current 2>/dev/null || echo "unknown")
337
+ fi
338
+
339
+ # GitHub issue/PR references from recent text
340
+ GH_REFS=$(echo "$RECENT_TEXT" | grep -oE '#[0-9]+|PR #[0-9]+|issue #[0-9]+' 2>/dev/null | sort -u | head -10 | tr '\\n' ', ' | sed 's/,\$//')
341
+
342
+ # Worktree info
343
+ WORKTREE_NAME="\${CLAUDE_WORKTREE_NAME:-unknown}"
344
+ WORKTREE_PATH="\${CLAUDE_WORKTREE_PATH:-$(pwd)}"
345
+
346
+ # ── 3. Format checkpoint memory ─────────────────────────────────────────
347
+
348
+ # Build files list (indented)
349
+ FILES_LIST=""
350
+ if [[ -n "$FILES_TOUCHED" ]]; then
351
+ FILES_LIST=$(echo "$FILES_TOUCHED" | sed 's/^/- /')
352
+ fi
353
+
354
+ CONTENT="[Auto-Checkpoint] Context compaction (\${TRIGGER}) — \${WORKTREE_NAME}
355
+
356
+ Branch: \${GIT_BRANCH}
357
+ Session: \${SESSION_ID}
358
+ GitHub refs: \${GH_REFS:-none detected}
359
+
360
+ Goal: [Auto-captured checkpoint before context compaction]
361
+
362
+ Current status: Context window reached capacity. This checkpoint captures the working state just before compaction so the next session can resume.
363
+
364
+ Key files:
365
+ \${FILES_LIST:-No file paths detected in recent transcript.}
366
+
367
+ Key terms: \${WORKTREE_NAME}, \${GIT_BRANCH}, auto-checkpoint, context-compaction
368
+
369
+ Next steps: Resume work from this checkpoint. Review the recent context below to understand what was in progress.
370
+
371
+ ---
372
+ Recent context (last messages before compaction):
373
+
374
+ \${RECENT_TEXT:-No recent text extracted from transcript.}"
375
+
376
+ # ── 4. Save checkpoint memory ───────────────────────────────────────────
377
+
378
+ # Use a named memory so it's easy to find and gets overwritten each compaction
379
+ mx memories create \\
380
+ --name "auto-checkpoint-\${WORKTREE_NAME}" \\
381
+ --conversation-id "NEW" \\
382
+ --content "$CONTENT" \\
383
+ --topics "checkpoint,context-compaction" \\
384
+ >/dev/null 2>&1 || true
385
+
386
+ # Always allow compaction to proceed
387
+ exit 0
388
+ `;
389
+ /**
390
+ * reload-checkpoint.sh — SessionStart hook (compact) that re-injects
391
+ * the auto-checkpoint memory after context compaction.
392
+ */
393
+ export const RELOAD_CHECKPOINT_SH_TEMPLATE = `#!/bin/bash
394
+ # reload-checkpoint.sh — Claude Code SessionStart hook (matcher: compact)
395
+ # Re-injects the auto-checkpoint memory after context compaction.
396
+ #
397
+ # Fires on: SessionStart with source=compact (after compaction)
398
+ # Input: JSON on stdin with session_id, source
399
+ # Output: stdout text is injected into Claude's context
400
+ # Exit: always 0
401
+
402
+ # Fail-open: any error → start session without checkpoint injection
403
+ trap 'exit 0' ERR
404
+
405
+ # ── 1. Determine worktree name ──────────────────────────────────────────
406
+
407
+ WORKTREE_NAME="\${CLAUDE_WORKTREE_NAME:-}"
408
+
409
+ # If no worktree env var, try to detect from cwd
410
+ if [[ -z "$WORKTREE_NAME" ]]; then
411
+ INPUT=$(cat)
412
+ CWD=$(echo "$INPUT" | jq -r '.cwd // empty' 2>/dev/null)
413
+ if [[ "$CWD" == */.worktrees/* ]]; then
414
+ WORKTREE_NAME=$(echo "$CWD" | sed 's|.*/.worktrees/||' | cut -d'/' -f1)
415
+ fi
416
+ fi
417
+
418
+ # Can't identify worktree → nothing to reload
419
+ if [[ -z "$WORKTREE_NAME" ]]; then
420
+ exit 0
421
+ fi
422
+
423
+ command -v mx >/dev/null 2>&1 || exit 0
424
+
425
+ # ── 2. Retrieve checkpoint memory ───────────────────────────────────────
426
+
427
+ CHECKPOINT=$(mx memories get --name "auto-checkpoint-\${WORKTREE_NAME}" 2>/dev/null)
428
+
429
+ if [[ -z "$CHECKPOINT" || "$CHECKPOINT" == *"not found"* || "$CHECKPOINT" == *"404"* ]]; then
430
+ exit 0
431
+ fi
432
+
433
+ # Extract just the content field from the JSON response
434
+ CONTENT=$(echo "$CHECKPOINT" | jq -r '.content // empty' 2>/dev/null)
435
+
436
+ if [[ -z "$CONTENT" ]]; then
437
+ exit 0
438
+ fi
439
+
440
+ # ── 3. Output checkpoint for context injection ──────────────────────────
441
+ # Text written to stdout by SessionStart hooks is added to Claude's context.
442
+
443
+ cat <<CHECKPOINT_EOF
444
+ ## Auto-Checkpoint Recovery
445
+
446
+ The following checkpoint was automatically saved before the last context compaction.
447
+ Use it to resume your work. The checkpoint captures what you were working on,
448
+ which files were involved, and the recent conversation context.
449
+
450
+ ---
451
+
452
+ \${CONTENT}
453
+
454
+ ---
455
+
456
+ **Action:** Review this checkpoint and continue where you left off.
457
+ If you need more context, search memories with: mx memories search --query "<topic>" --recent 24h
458
+ CHECKPOINT_EOF
459
+
460
+ exit 0
461
+ `;
462
+ /**
463
+ * set-terminal-appearance.sh — SessionStart hook that sets VS Code terminal
464
+ * tab title and color via OSC escape sequences written to /dev/tty.
465
+ */
466
+ export const SET_TERMINAL_APPEARANCE_SH_TEMPLATE = `#!/bin/bash
467
+ # set-terminal-appearance.sh — Claude Code SessionStart hook
468
+ # Sets the VS Code terminal tab title and color for the agent team.
469
+ #
470
+ # Fires on: SessionStart (all — no matcher filter)
471
+ # Input: JSON on stdin (ignored)
472
+ # Output: none (side-effect: writes OSC sequences to /dev/tty)
473
+ # Exit: always 0
474
+ #
475
+ # Reads CLAUDE_TEAM_NAME and CLAUDE_TEAM_COLOR from environment
476
+ # (set by mx-agent start via launchClaudeSession).
477
+ # Writes escape sequences to /dev/tty to bypass Claude's stdin/stdout,
478
+ # ensuring the tab title/color persist after Claude's TUI initializes.
479
+
480
+ TEAM_NAME="\${CLAUDE_TEAM_NAME:-}"
481
+ TEAM_COLOR="\${CLAUDE_TEAM_COLOR:-}"
482
+
483
+ # Nothing to set — not launched via mx-agent
484
+ if [[ -z "$TEAM_NAME" ]]; then
485
+ exit 0
486
+ fi
487
+
488
+ # Drain stdin (hook contract requires reading input)
489
+ cat > /dev/null 2>&1 || true
490
+
491
+ # OSC 0: Set terminal tab title
492
+ printf '\\033]0;%s\\007' "$TEAM_NAME" > /dev/tty 2>/dev/null || true
493
+
494
+ # OSC 633;P;tabColor: Set VS Code tab color (VS Code 1.94+ shell integration)
495
+ if [[ -n "$TEAM_COLOR" ]]; then
496
+ printf '\\033]633;P;tabColor=%s\\007' "$TEAM_COLOR" > /dev/tty 2>/dev/null || true
497
+ fi
498
+
155
499
  exit 0
156
500
  `;
157
501
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.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.44",
3
+ "version": "0.1.45",
4
4
  "description": "CLI for creating and managing AI agent teams",
5
5
  "type": "module",
6
6
  "bin": {