@memnexus-ai/mx-agent-cli 0.1.44 → 0.1.46
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/__tests__/claude-sync.test.js +91 -13
- package/dist/__tests__/claude-sync.test.js.map +1 -1
- package/dist/commands/init.d.ts +9 -3
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +35 -21
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +2 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/lib/claude.d.ts +2 -3
- package/dist/lib/claude.d.ts.map +1 -1
- package/dist/lib/claude.js +166 -16
- package/dist/lib/claude.js.map +1 -1
- package/dist/lib/templates.d.ts +21 -1
- package/dist/lib/templates.d.ts.map +1 -1
- package/dist/lib/templates.js +423 -30
- package/dist/lib/templates.js.map +1 -1
- package/dist/lib/worktree.d.ts +1 -1
- package/dist/lib/worktree.js +2 -2
- package/dist/lib/worktree.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/claude.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CLAUDE.md deployment, CLAUDE.local.md generation, and session start.
|
|
3
|
-
* Mirrors the patterns in dev-tools/worktree-cli/src/operations.ts.
|
|
4
3
|
*/
|
|
5
4
|
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, unlinkSync, writeFileSync } from 'fs';
|
|
6
5
|
import { join } from 'path';
|
|
7
6
|
import { execSync, spawnSync } from 'child_process';
|
|
8
7
|
import chalk from 'chalk';
|
|
9
|
-
import { CLAUDE_MD_TEMPLATE, MCP_JSON_TEMPLATE, SETTINGS_JSON_TEMPLATE, WORKTREE_GUARD_SH_TEMPLATE } from './templates.js';
|
|
8
|
+
import { AUTO_CHECKPOINT_SH_TEMPLATE, CLAUDE_MD_TEMPLATE, MCP_JSON_TEMPLATE, MX_GUARD_HOOK_SH_TEMPLATE, RELOAD_CHECKPOINT_SH_TEMPLATE, SET_TERMINAL_APPEARANCE_SH_TEMPLATE, SETTINGS_JSON_TEMPLATE, WORKTREE_GUARD_SH_TEMPLATE } from './templates.js';
|
|
10
9
|
// ── Logging helpers ───────────────────────────────────────────────────
|
|
11
10
|
export function logSuccess(msg) {
|
|
12
11
|
console.log(chalk.green(' ✓ ' + msg));
|
|
@@ -24,7 +23,7 @@ export function logDim(msg) {
|
|
|
24
23
|
* Template resolution order:
|
|
25
24
|
* 1. origin/<baseBranch>:<configSource>/CLAUDE.md.template via git show
|
|
26
25
|
* 2. Local <configSource>/CLAUDE.md.template — offline fallback
|
|
27
|
-
* 3.
|
|
26
|
+
* 3. Embedded CLAUDE_MD_TEMPLATE constant — npm package fallback
|
|
28
27
|
* 4. Root CLAUDE.md
|
|
29
28
|
*/
|
|
30
29
|
export function deployClaudeMd(projectRoot, worktreePath, opts = {}) {
|
|
@@ -61,7 +60,6 @@ export function deployClaudeMd(projectRoot, worktreePath, opts = {}) {
|
|
|
61
60
|
if (!content) {
|
|
62
61
|
const localCandidates = [
|
|
63
62
|
join(projectRoot, configSource, 'CLAUDE.md.template'),
|
|
64
|
-
join(projectRoot, 'dev-tools/worktree-cli/templates/CLAUDE.md.template'),
|
|
65
63
|
];
|
|
66
64
|
for (const templatePath of localCandidates) {
|
|
67
65
|
if (existsSync(templatePath)) {
|
|
@@ -112,7 +110,7 @@ export function deployClaudeMd(projectRoot, worktreePath, opts = {}) {
|
|
|
112
110
|
* Matches the format produced by writeWorktreeClaudeLocal in operations.ts.
|
|
113
111
|
*
|
|
114
112
|
* If the project root has a CLAUDE.local.md, its content is prepended above
|
|
115
|
-
* the worktree isolation rules
|
|
113
|
+
* the worktree isolation rules.
|
|
116
114
|
*/
|
|
117
115
|
export function writeClaudeLocal(opts) {
|
|
118
116
|
const { projectRoot, worktreePath, worktreeName, branch, slot } = opts;
|
|
@@ -253,22 +251,139 @@ export function syncClaudeConfig(worktreePath, opts = {}) {
|
|
|
253
251
|
guardContent = WORKTREE_GUARD_SH_TEMPLATE;
|
|
254
252
|
guardSource = 'npm';
|
|
255
253
|
}
|
|
254
|
+
// auto-checkpoint.sh (PreCompact hook)
|
|
255
|
+
let checkpointContent = null;
|
|
256
|
+
let checkpointSource = 'npm';
|
|
257
|
+
if (fetchSucceeded) {
|
|
258
|
+
const r = spawnSync('git', ['show', `origin/${baseBranch}:${configSource}/hooks/auto-checkpoint.sh`], {
|
|
259
|
+
cwd: worktreePath, encoding: 'utf-8', stdio: 'pipe',
|
|
260
|
+
});
|
|
261
|
+
if (r.status === 0 && r.stdout) {
|
|
262
|
+
checkpointContent = r.stdout;
|
|
263
|
+
checkpointSource = 'remote';
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
if (!checkpointContent && projectRoot) {
|
|
267
|
+
const localPath = join(projectRoot, configSource, 'hooks', 'auto-checkpoint.sh');
|
|
268
|
+
if (existsSync(localPath)) {
|
|
269
|
+
try {
|
|
270
|
+
checkpointContent = readFileSync(localPath, 'utf-8');
|
|
271
|
+
checkpointSource = 'local';
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
// fall through to npm default
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
if (!checkpointContent) {
|
|
279
|
+
checkpointContent = AUTO_CHECKPOINT_SH_TEMPLATE;
|
|
280
|
+
checkpointSource = 'npm';
|
|
281
|
+
}
|
|
282
|
+
// reload-checkpoint.sh (SessionStart hook)
|
|
283
|
+
let reloadContent = null;
|
|
284
|
+
let reloadSource = 'npm';
|
|
285
|
+
if (fetchSucceeded) {
|
|
286
|
+
const r = spawnSync('git', ['show', `origin/${baseBranch}:${configSource}/hooks/reload-checkpoint.sh`], {
|
|
287
|
+
cwd: worktreePath, encoding: 'utf-8', stdio: 'pipe',
|
|
288
|
+
});
|
|
289
|
+
if (r.status === 0 && r.stdout) {
|
|
290
|
+
reloadContent = r.stdout;
|
|
291
|
+
reloadSource = 'remote';
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
if (!reloadContent && projectRoot) {
|
|
295
|
+
const localPath = join(projectRoot, configSource, 'hooks', 'reload-checkpoint.sh');
|
|
296
|
+
if (existsSync(localPath)) {
|
|
297
|
+
try {
|
|
298
|
+
reloadContent = readFileSync(localPath, 'utf-8');
|
|
299
|
+
reloadSource = 'local';
|
|
300
|
+
}
|
|
301
|
+
catch {
|
|
302
|
+
// fall through to npm default
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
if (!reloadContent) {
|
|
307
|
+
reloadContent = RELOAD_CHECKPOINT_SH_TEMPLATE;
|
|
308
|
+
reloadSource = 'npm';
|
|
309
|
+
}
|
|
310
|
+
// set-terminal-appearance.sh (SessionStart hook — all sessions)
|
|
311
|
+
let appearanceContent = null;
|
|
312
|
+
let appearanceSource = 'npm';
|
|
313
|
+
if (fetchSucceeded) {
|
|
314
|
+
const r = spawnSync('git', ['show', `origin/${baseBranch}:${configSource}/hooks/set-terminal-appearance.sh`], {
|
|
315
|
+
cwd: worktreePath, encoding: 'utf-8', stdio: 'pipe',
|
|
316
|
+
});
|
|
317
|
+
if (r.status === 0 && r.stdout) {
|
|
318
|
+
appearanceContent = r.stdout;
|
|
319
|
+
appearanceSource = 'remote';
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
if (!appearanceContent && projectRoot) {
|
|
323
|
+
const localPath = join(projectRoot, configSource, 'hooks', 'set-terminal-appearance.sh');
|
|
324
|
+
if (existsSync(localPath)) {
|
|
325
|
+
try {
|
|
326
|
+
appearanceContent = readFileSync(localPath, 'utf-8');
|
|
327
|
+
appearanceSource = 'local';
|
|
328
|
+
}
|
|
329
|
+
catch {
|
|
330
|
+
// fall through to npm default
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
if (!appearanceContent) {
|
|
335
|
+
appearanceContent = SET_TERMINAL_APPEARANCE_SH_TEMPLATE;
|
|
336
|
+
appearanceSource = 'npm';
|
|
337
|
+
}
|
|
338
|
+
// mx-guard-hook.sh (PreToolUse hook — pre-push enforcement)
|
|
339
|
+
let mxGuardContent = null;
|
|
340
|
+
let mxGuardSource = 'npm';
|
|
341
|
+
if (fetchSucceeded) {
|
|
342
|
+
const r = spawnSync('git', ['show', `origin/${baseBranch}:${configSource}/hooks/mx-guard-hook.sh`], {
|
|
343
|
+
cwd: worktreePath, encoding: 'utf-8', stdio: 'pipe',
|
|
344
|
+
});
|
|
345
|
+
if (r.status === 0 && r.stdout) {
|
|
346
|
+
mxGuardContent = r.stdout;
|
|
347
|
+
mxGuardSource = 'remote';
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
if (!mxGuardContent && projectRoot) {
|
|
351
|
+
const localPath = join(projectRoot, configSource, 'hooks', 'mx-guard-hook.sh');
|
|
352
|
+
if (existsSync(localPath)) {
|
|
353
|
+
try {
|
|
354
|
+
mxGuardContent = readFileSync(localPath, 'utf-8');
|
|
355
|
+
mxGuardSource = 'local';
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
// fall through to npm default
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
if (!mxGuardContent) {
|
|
363
|
+
mxGuardContent = MX_GUARD_HOOK_SH_TEMPLATE;
|
|
364
|
+
mxGuardSource = 'npm';
|
|
365
|
+
}
|
|
256
366
|
// Determine log message source label
|
|
257
|
-
|
|
258
|
-
const overallSource = (
|
|
367
|
+
const sources = [settingsSource, guardSource, checkpointSource, reloadSource, appearanceSource, mxGuardSource];
|
|
368
|
+
const overallSource = sources.every(s => s === 'remote')
|
|
259
369
|
? 'remote'
|
|
260
|
-
: (
|
|
261
|
-
? '
|
|
262
|
-
:
|
|
263
|
-
? '
|
|
370
|
+
: sources.every(s => s === 'npm')
|
|
371
|
+
? 'npm'
|
|
372
|
+
: sources.every(s => s === 'local' || s === 'npm') && sources.some(s => s === 'local')
|
|
373
|
+
? 'local'
|
|
264
374
|
: 'mixed';
|
|
265
|
-
// ── 3. Skip if
|
|
375
|
+
// ── 3. Skip if all files already exist and all resolved from npm defaults ──
|
|
266
376
|
// Avoids downgrading an existing stronger config on a transient fetch failure.
|
|
267
377
|
const settingsPath = join(worktreePath, '.claude', 'settings.json');
|
|
268
378
|
const guardPath = join(worktreePath, '.claude', 'hooks', 'worktree-guard.sh');
|
|
269
|
-
const
|
|
270
|
-
const
|
|
271
|
-
|
|
379
|
+
const checkpointPath = join(worktreePath, '.claude', 'hooks', 'auto-checkpoint.sh');
|
|
380
|
+
const reloadPath = join(worktreePath, '.claude', 'hooks', 'reload-checkpoint.sh');
|
|
381
|
+
const appearancePath = join(worktreePath, '.claude', 'hooks', 'set-terminal-appearance.sh');
|
|
382
|
+
const mxGuardPath = join(worktreePath, '.claude', 'hooks', 'mx-guard-hook.sh');
|
|
383
|
+
const allExist = existsSync(settingsPath) && existsSync(guardPath)
|
|
384
|
+
&& existsSync(checkpointPath) && existsSync(reloadPath) && existsSync(appearancePath)
|
|
385
|
+
&& existsSync(mxGuardPath);
|
|
386
|
+
if (allExist && sources.every(s => s === 'npm')) {
|
|
272
387
|
logDim('Agent config already exists — skipping npm defaults (remote fetch unavailable)');
|
|
273
388
|
return;
|
|
274
389
|
}
|
|
@@ -279,13 +394,29 @@ export function syncClaudeConfig(worktreePath, opts = {}) {
|
|
|
279
394
|
// ── 5. Write to .tmp files ────────────────────────────────────────────
|
|
280
395
|
const settingsTmp = settingsPath + '.tmp';
|
|
281
396
|
const guardTmp = guardPath + '.tmp';
|
|
397
|
+
const checkpointTmp = checkpointPath + '.tmp';
|
|
398
|
+
const reloadTmp = reloadPath + '.tmp';
|
|
399
|
+
const appearanceTmp = appearancePath + '.tmp';
|
|
400
|
+
const mxGuardTmp = mxGuardPath + '.tmp';
|
|
282
401
|
try {
|
|
283
402
|
writeFileSync(settingsTmp, settingsContent);
|
|
284
403
|
writeFileSync(guardTmp, guardContent);
|
|
285
404
|
chmodSync(guardTmp, 0o755);
|
|
286
|
-
|
|
405
|
+
writeFileSync(checkpointTmp, checkpointContent);
|
|
406
|
+
chmodSync(checkpointTmp, 0o755);
|
|
407
|
+
writeFileSync(reloadTmp, reloadContent);
|
|
408
|
+
chmodSync(reloadTmp, 0o755);
|
|
409
|
+
writeFileSync(appearanceTmp, appearanceContent);
|
|
410
|
+
chmodSync(appearanceTmp, 0o755);
|
|
411
|
+
writeFileSync(mxGuardTmp, mxGuardContent);
|
|
412
|
+
chmodSync(mxGuardTmp, 0o755);
|
|
413
|
+
// ── 6. Atomic rename all into place ──────────────────────────────────
|
|
287
414
|
renameSync(settingsTmp, settingsPath);
|
|
288
415
|
renameSync(guardTmp, guardPath);
|
|
416
|
+
renameSync(checkpointTmp, checkpointPath);
|
|
417
|
+
renameSync(reloadTmp, reloadPath);
|
|
418
|
+
renameSync(appearanceTmp, appearancePath);
|
|
419
|
+
renameSync(mxGuardTmp, mxGuardPath);
|
|
289
420
|
if (overallSource === 'remote') {
|
|
290
421
|
logSuccess(`Agent config synced from ${configSource}/`);
|
|
291
422
|
}
|
|
@@ -306,6 +437,22 @@ export function syncClaudeConfig(worktreePath, opts = {}) {
|
|
|
306
437
|
unlinkSync(guardTmp);
|
|
307
438
|
}
|
|
308
439
|
catch { /* already gone */ }
|
|
440
|
+
try {
|
|
441
|
+
unlinkSync(checkpointTmp);
|
|
442
|
+
}
|
|
443
|
+
catch { /* already gone */ }
|
|
444
|
+
try {
|
|
445
|
+
unlinkSync(reloadTmp);
|
|
446
|
+
}
|
|
447
|
+
catch { /* already gone */ }
|
|
448
|
+
try {
|
|
449
|
+
unlinkSync(appearanceTmp);
|
|
450
|
+
}
|
|
451
|
+
catch { /* already gone */ }
|
|
452
|
+
try {
|
|
453
|
+
unlinkSync(mxGuardTmp);
|
|
454
|
+
}
|
|
455
|
+
catch { /* already gone */ }
|
|
309
456
|
logWarning(`Could not write agent config: ${err instanceof Error ? err.message : String(err)}`);
|
|
310
457
|
}
|
|
311
458
|
// ── 7. Write .mcp.json (MX MCP server) ───────────────────────────────
|
|
@@ -422,12 +569,15 @@ function getAllowedTools(worktreePath) {
|
|
|
422
569
|
*/
|
|
423
570
|
export function launchClaudeSession(opts) {
|
|
424
571
|
const { worktreePath, worktreeName, branch, slot, initialPrompt, teamName } = opts;
|
|
572
|
+
const color = AGENT_COLORS[hashTeamName(teamName) % AGENT_COLORS.length];
|
|
425
573
|
const env = {
|
|
426
574
|
...process.env,
|
|
427
575
|
CLAUDE_WORKTREE_PATH: worktreePath,
|
|
428
576
|
CLAUDE_WORKTREE_NAME: worktreeName,
|
|
429
577
|
CLAUDE_WORKTREE_SLOT: String(slot),
|
|
430
578
|
CLAUDE_WORKTREE_BRANCH: branch || '',
|
|
579
|
+
CLAUDE_TEAM_NAME: teamName,
|
|
580
|
+
CLAUDE_TEAM_COLOR: color,
|
|
431
581
|
};
|
|
432
582
|
const allowedTools = getAllowedTools(worktreePath);
|
|
433
583
|
console.log();
|
package/dist/lib/claude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/lib/claude.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/lib/claude.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/templates.d.ts
CHANGED
|
@@ -9,11 +9,31 @@
|
|
|
9
9
|
* Grants bash access and restricts to the worktree directory.
|
|
10
10
|
*/
|
|
11
11
|
export declare const SETTINGS_JSON_TEMPLATE: string;
|
|
12
|
+
/**
|
|
13
|
+
* mx-guard-hook.sh — PreToolUse hook that runs mx-guard check before
|
|
14
|
+
* allowing git push commands.
|
|
15
|
+
*/
|
|
16
|
+
export declare const MX_GUARD_HOOK_SH_TEMPLATE = "#!/bin/bash\n# mx-guard pre-push enforcement hook\n# Runs mx-guard check before allowing git push commands.\n# Deployed by mx-agent create via syncClaudeConfig().\n#\n# Exit codes:\n# 0 = allow (not a push command, or mx-guard passes)\n# 2 = block (mx-guard found errors)\n\n# Read hook input from stdin\nINPUT=$(cat)\nCOMMAND=$(echo \"$INPUT\" | jq -r '.tool_input.command // empty')\n\n# Only intercept git push commands\nif [[ ! \"$COMMAND\" =~ ^git\\ push ]]; then\n exit 0\nfi\n\n# Check if mx-guard is available\nif ! command -v mx-guard &>/dev/null; then\n echo \"\u26A0 mx-guard not installed \u2014 skipping pre-push validation\"\n echo \" Install: pnpm install -g @memnexus-ai/mx-guard\"\n exit 0\nfi\n\n# Run mx-guard check (change-aware \u2014 only checks files on current branch)\necho \"Running mx-guard check before push...\"\necho \"\"\n\nmx-guard check\nGUARD_EXIT=$?\n\nif [ $GUARD_EXIT -ne 0 ]; then\n echo \"\"\n echo \"mx-guard: push blocked. Fix the errors above before pushing.\"\n echo \" To check specific rules: mx-guard check --rule <category>\"\n echo \" To see all rules: mx-guard rules\"\n exit 2\nfi\n\nexit 0\n";
|
|
12
17
|
/**
|
|
13
18
|
* Stub worktree-guard.sh hook.
|
|
14
19
|
* Blocks branch switching to main and force-pushes.
|
|
15
20
|
*/
|
|
16
|
-
export declare const WORKTREE_GUARD_SH_TEMPLATE = "#!/bin/bash\n#
|
|
21
|
+
export declare const WORKTREE_GUARD_SH_TEMPLATE = "#!/bin/bash\n# Worktree isolation guard - runs before every Bash command\n# Exit 0 = allow, Exit 2 = block (non-zero exit blocks the command)\n#\n# This hook enforces worktree isolation by:\n# 1. Blocking cd commands that leave the worktree directory\n# 2. Blocking dangerous git operations (belt-and-suspenders with settings.json)\n#\n# Requires environment variables set by `worktree start`:\n# - CLAUDE_WORKTREE_PATH: Absolute path to worktree (e.g., /workspace/.worktrees/foo)\n# - CLAUDE_WORKTREE_NAME: Worktree name (e.g., foo)\n\nset -euo pipefail\n\n# Read the tool input from stdin (JSON format)\nINPUT=$(cat)\n\n# Extract the command - handle both direct command and tool_input formats\nCOMMAND=$(echo \"$INPUT\" | jq -r '.tool_input.command // .command // empty' 2>/dev/null)\n\nif [[ -z \"$COMMAND\" ]]; then\n # Can't parse command, allow it (fail open)\n exit 0\nfi\n\n# Get worktree path from environment\nWORKTREE_PATH=\"${CLAUDE_WORKTREE_PATH:-}\"\n\n# If no worktree restriction set, allow everything\nif [[ -z \"$WORKTREE_PATH\" ]]; then\n exit 0\nfi\n\n# Normalize worktree path (remove trailing slash)\nWORKTREE_PATH=\"${WORKTREE_PATH%/}\"\n\n# Get current working directory\nCURRENT_DIR=$(pwd)\n\n# ============================================================\n# Rule 1: Block cd to paths outside worktree\n# ============================================================\nif echo \"$COMMAND\" | grep -qE '^\\s*cd\\s+' || echo \"$COMMAND\" | grep -qE '&&\\s*cd\\s+' || echo \"$COMMAND\" | grep -qE ';\\s*cd\\s+'; then\n # Extract cd target(s) from command\n # This handles: cd /path, cd path, command && cd path, etc.\n\n # Get all cd targets\n CD_TARGETS=$(echo \"$COMMAND\" | grep -oE 'cd\\s+[^;&|]+' | sed 's/cd\\s*//' | tr -d '\"'\"'\" || true)\n\n for TARGET in $CD_TARGETS; do\n # Skip empty targets\n [[ -z \"$TARGET\" ]] && continue\n\n # Resolve the path\n if [[ \"$TARGET\" == /* ]]; then\n # Absolute path\n RESOLVED=\"$TARGET\"\n elif [[ \"$TARGET\" == \"~\"* ]]; then\n # Home directory path\n RESOLVED=\"${TARGET/#\\~/$HOME}\"\n else\n # Relative path - resolve from current directory\n RESOLVED=$(cd \"$CURRENT_DIR\" 2>/dev/null && cd \"$TARGET\" 2>/dev/null && pwd) || RESOLVED=\"\"\n fi\n\n # Normalize resolved path\n RESOLVED=\"${RESOLVED%/}\"\n\n # Allow /tmp and /var/tmp\n if [[ \"$RESOLVED\" == /tmp* ]] || [[ \"$RESOLVED\" == /var/tmp* ]]; then\n continue\n fi\n\n # Allow paths within worktree\n if [[ \"$RESOLVED\" == \"$WORKTREE_PATH\"* ]]; then\n continue\n fi\n\n # Allow the scratchpad directory\n if [[ \"$RESOLVED\" == *\"/scratchpad\"* ]]; then\n continue\n fi\n\n # Allow the user's home directory (for inspecting global tools, configs, etc.)\n if [[ -n \"$HOME\" ]] && [[ \"$RESOLVED\" == \"$HOME\"* ]]; then\n continue\n fi\n\n # Block: path is outside worktree\n if [[ -n \"$RESOLVED\" ]]; then\n echo \"\"\n echo \"BLOCKED: Cannot navigate outside worktree\"\n echo \" Target: $TARGET\"\n echo \" Resolved: $RESOLVED\"\n echo \" Allowed: $WORKTREE_PATH (and /tmp)\"\n echo \"\"\n echo \"You are working in worktree: ${CLAUDE_WORKTREE_NAME:-unknown}\"\n echo \"Stay within your assigned worktree directory.\"\n echo \"\"\n exit 2\n fi\n done\nfi\n\n# ============================================================\n# Rule 2: Block git operations that could tangle state\n# (Belt-and-suspenders with settings.json deny rules)\n# ============================================================\n\n# Block checkout to main\nif echo \"$COMMAND\" | grep -qE 'git\\s+(checkout|switch)\\s+main(\\s|$)'; then\n echo \"\"\n echo \"BLOCKED: Cannot switch to main branch\"\n echo \" Command: $COMMAND\"\n echo \" Worktree: ${CLAUDE_WORKTREE_NAME:-unknown}\"\n echo \"\"\n echo \"To work on main, use a different worktree or the root workspace.\"\n echo \"\"\n exit 2\nfi\n\n# Block checkout -b (new branch creation)\nif echo \"$COMMAND\" | grep -qE 'git\\s+(checkout\\s+-b|switch\\s+(-c|--create))'; then\n echo \"\"\n echo \"BLOCKED: Cannot create new branches\"\n echo \" Command: $COMMAND\"\n echo \" Worktree: ${CLAUDE_WORKTREE_NAME:-unknown}\"\n echo \"\"\n echo \"Work on your assigned branch. Create PRs to merge changes.\"\n echo \"\"\n exit 2\nfi\n\n# Block merge\nif echo \"$COMMAND\" | grep -qE 'git\\s+merge\\s'; then\n echo \"\"\n echo \"BLOCKED: Cannot merge branches directly\"\n echo \" Command: $COMMAND\"\n echo \" Worktree: ${CLAUDE_WORKTREE_NAME:-unknown}\"\n echo \"\"\n echo \"Use pull requests to merge changes.\"\n echo \"\"\n exit 2\nfi\n\n# Block push to main\nif echo \"$COMMAND\" | grep -qE 'git\\s+push\\s+.*\\s*origin\\s+main'; then\n echo \"\"\n echo \"BLOCKED: Cannot push to main\"\n echo \" Command: $COMMAND\"\n echo \"\"\n echo \"Push to your worktree branch and create a PR.\"\n echo \"\"\n exit 2\nfi\n\n# ============================================================\n# All checks passed - allow the command\n# ============================================================\nexit 0\n";
|
|
22
|
+
/**
|
|
23
|
+
* auto-checkpoint.sh — PreCompact hook that saves a checkpoint memory
|
|
24
|
+
* before context compaction so agents can resume after losing context.
|
|
25
|
+
*/
|
|
26
|
+
export declare const AUTO_CHECKPOINT_SH_TEMPLATE = "#!/bin/bash\n# auto-checkpoint.sh \u2014 Claude Code PreCompact hook\n# Saves a checkpoint memory before context compaction so agents can resume\n# after losing context. Uses the /mx-checkpoint template format.\n#\n# Fires on: PreCompact (auto or manual compaction)\n# Input: JSON on stdin with transcript_path, session_id, trigger\n# Output: none (side-effect only \u2014 saves memory via mx CLI)\n# Exit: always 0 (never blocks compaction)\n\n# Fail-open: any error \u2192 allow compaction without saving\ntrap 'exit 0' ERR\n\n# \u2500\u2500 1. Parse hook input \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nINPUT=$(cat)\n\nTRANSCRIPT_PATH=$(echo \"$INPUT\" | jq -r '.transcript_path // empty' 2>/dev/null)\nSESSION_ID=$(echo \"$INPUT\" | jq -r '.session_id // empty' 2>/dev/null)\nTRIGGER=$(echo \"$INPUT\" | jq -r '.trigger // .source // \"auto\"' 2>/dev/null)\n\n# Skip if no transcript available or jq missing\nif [[ -z \"$TRANSCRIPT_PATH\" || ! -f \"$TRANSCRIPT_PATH\" ]]; then\n exit 0\nfi\n\ncommand -v jq >/dev/null 2>&1 || exit 0\ncommand -v mx >/dev/null 2>&1 || exit 0\n\n# \u2500\u2500 2. Extract context from transcript \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n# Recent user/assistant text (last ~200 lines of transcript, text content only)\nRECENT_TEXT=$(tail -200 \"$TRANSCRIPT_PATH\" | \\\n jq -r '\n select(.type == \"user\" or .type == \"assistant\") |\n .message.content[]? |\n select(.type == \"text\") |\n .text // empty\n ' 2>/dev/null | tail -c 8000)\n\n# Files touched (from tool_use entries: Read, Edit, Write, Glob)\nFILES_TOUCHED=$(tail -500 \"$TRANSCRIPT_PATH\" | \\\n jq -r '\n select(.type == \"assistant\") |\n .message.content[]? |\n select(.type == \"tool_use\") |\n .input.file_path // empty\n ' 2>/dev/null | grep -v '^$' | sort -u | head -30)\n\n# Git branch and PR references\nGIT_BRANCH=\"${CLAUDE_WORKTREE_BRANCH:-}\"\nif [[ -z \"$GIT_BRANCH\" ]]; then\n GIT_BRANCH=$(git branch --show-current 2>/dev/null || echo \"unknown\")\nfi\n\n# GitHub issue/PR references from recent text\nGH_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/,$//')\n\n# Worktree info\nWORKTREE_NAME=\"${CLAUDE_WORKTREE_NAME:-unknown}\"\nWORKTREE_PATH=\"${CLAUDE_WORKTREE_PATH:-$(pwd)}\"\n\n# \u2500\u2500 3. Format checkpoint memory \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n# Build files list (indented)\nFILES_LIST=\"\"\nif [[ -n \"$FILES_TOUCHED\" ]]; then\n FILES_LIST=$(echo \"$FILES_TOUCHED\" | sed 's/^/- /')\nfi\n\nCONTENT=\"[Auto-Checkpoint] Context compaction (${TRIGGER}) \u2014 ${WORKTREE_NAME}\n\nBranch: ${GIT_BRANCH}\nSession: ${SESSION_ID}\nGitHub refs: ${GH_REFS:-none detected}\n\nGoal: [Auto-captured checkpoint before context compaction]\n\nCurrent status: Context window reached capacity. This checkpoint captures the working state just before compaction so the next session can resume.\n\nKey files:\n${FILES_LIST:-No file paths detected in recent transcript.}\n\nKey terms: ${WORKTREE_NAME}, ${GIT_BRANCH}, auto-checkpoint, context-compaction\n\nNext steps: Resume work from this checkpoint. Review the recent context below to understand what was in progress.\n\n---\nRecent context (last messages before compaction):\n\n${RECENT_TEXT:-No recent text extracted from transcript.}\"\n\n# \u2500\u2500 4. Save checkpoint memory \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n# Use a named memory so it's easy to find and gets overwritten each compaction\nmx memories create \\\n --name \"auto-checkpoint-${WORKTREE_NAME}\" \\\n --conversation-id \"NEW\" \\\n --content \"$CONTENT\" \\\n --topics \"checkpoint,context-compaction\" \\\n >/dev/null 2>&1 || true\n\n# Always allow compaction to proceed\nexit 0\n";
|
|
27
|
+
/**
|
|
28
|
+
* reload-checkpoint.sh — SessionStart hook (compact) that re-injects
|
|
29
|
+
* the auto-checkpoint memory after context compaction.
|
|
30
|
+
*/
|
|
31
|
+
export declare const RELOAD_CHECKPOINT_SH_TEMPLATE = "#!/bin/bash\n# reload-checkpoint.sh \u2014 Claude Code SessionStart hook (matcher: compact)\n# Re-injects the auto-checkpoint memory after context compaction.\n#\n# Fires on: SessionStart with source=compact (after compaction)\n# Input: JSON on stdin with session_id, source\n# Output: stdout text is injected into Claude's context\n# Exit: always 0\n\n# Fail-open: any error \u2192 start session without checkpoint injection\ntrap 'exit 0' ERR\n\n# \u2500\u2500 1. Determine worktree name \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nWORKTREE_NAME=\"${CLAUDE_WORKTREE_NAME:-}\"\n\n# If no worktree env var, try to detect from cwd\nif [[ -z \"$WORKTREE_NAME\" ]]; then\n INPUT=$(cat)\n CWD=$(echo \"$INPUT\" | jq -r '.cwd // empty' 2>/dev/null)\n if [[ \"$CWD\" == */.worktrees/* ]]; then\n WORKTREE_NAME=$(echo \"$CWD\" | sed 's|.*/.worktrees/||' | cut -d'/' -f1)\n fi\nfi\n\n# Can't identify worktree \u2192 nothing to reload\nif [[ -z \"$WORKTREE_NAME\" ]]; then\n exit 0\nfi\n\ncommand -v mx >/dev/null 2>&1 || exit 0\n\n# \u2500\u2500 2. Retrieve checkpoint memory \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\nCHECKPOINT=$(mx memories get --name \"auto-checkpoint-${WORKTREE_NAME}\" 2>/dev/null)\n\nif [[ -z \"$CHECKPOINT\" || \"$CHECKPOINT\" == *\"not found\"* || \"$CHECKPOINT\" == *\"404\"* ]]; then\n exit 0\nfi\n\n# Extract just the content field from the JSON response\nCONTENT=$(echo \"$CHECKPOINT\" | jq -r '.content // empty' 2>/dev/null)\n\nif [[ -z \"$CONTENT\" ]]; then\n exit 0\nfi\n\n# \u2500\u2500 3. Output checkpoint for context injection \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n# Text written to stdout by SessionStart hooks is added to Claude's context.\n\ncat <<CHECKPOINT_EOF\n## Auto-Checkpoint Recovery\n\nThe following checkpoint was automatically saved before the last context compaction.\nUse it to resume your work. The checkpoint captures what you were working on,\nwhich files were involved, and the recent conversation context.\n\n---\n\n${CONTENT}\n\n---\n\n**Action:** Review this checkpoint and continue where you left off.\nIf you need more context, search memories with: mx memories search --query \"<topic>\" --recent 24h\nCHECKPOINT_EOF\n\nexit 0\n";
|
|
32
|
+
/**
|
|
33
|
+
* set-terminal-appearance.sh — SessionStart hook that sets VS Code terminal
|
|
34
|
+
* tab title and color via OSC escape sequences written to /dev/tty.
|
|
35
|
+
*/
|
|
36
|
+
export declare const SET_TERMINAL_APPEARANCE_SH_TEMPLATE = "#!/bin/bash\n# set-terminal-appearance.sh \u2014 Claude Code SessionStart hook\n# Sets the VS Code terminal tab title and color for the agent team.\n#\n# Fires on: SessionStart (all \u2014 no matcher filter)\n# Input: JSON on stdin (ignored)\n# Output: none (side-effect: writes OSC sequences to /dev/tty)\n# Exit: always 0\n#\n# Reads CLAUDE_TEAM_NAME and CLAUDE_TEAM_COLOR from environment\n# (set by mx-agent start via launchClaudeSession).\n# Writes escape sequences to /dev/tty to bypass Claude's stdin/stdout,\n# ensuring the tab title/color persist after Claude's TUI initializes.\n\nTEAM_NAME=\"${CLAUDE_TEAM_NAME:-}\"\nTEAM_COLOR=\"${CLAUDE_TEAM_COLOR:-}\"\n\n# Nothing to set \u2014 not launched via mx-agent\nif [[ -z \"$TEAM_NAME\" ]]; then\n exit 0\nfi\n\n# Drain stdin (hook contract requires reading input)\ncat > /dev/null 2>&1 || true\n\n# OSC 0: Set terminal tab title\nprintf '\\033]0;%s\\007' \"$TEAM_NAME\" > /dev/tty 2>/dev/null || true\n\n# OSC 633;P;tabColor: Set VS Code tab color (VS Code 1.94+ shell integration)\nif [[ -n \"$TEAM_COLOR\" ]]; then\n printf '\\033]633;P;tabColor=%s\\007' \"$TEAM_COLOR\" > /dev/tty 2>/dev/null || true\nfi\n\nexit 0\n";
|
|
17
37
|
/**
|
|
18
38
|
* Stub CLAUDE.md.template — the template that gets deployed into each worktree
|
|
19
39
|
* as CLAUDE.md when running mx-agent create / mx-agent start.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,sBAAsB,QA+GlC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,2oCAyCrC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,mkKAgKtC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,6gJAuGvC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,uqFAoEzC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mCAAmC,gqCAkC/C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,4dAkB9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,QAYtB,CAAC;AAIT,wBAAgB,4BAA4B,IAAI,MAAM,CAsBrD;AAED,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAiC9E;AAED,wBAAgB,8BAA8B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAyE1E;AAED,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAkBzE;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAwBpD;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAshBrD"}
|