create-merlin-brain 3.5.13 → 3.6.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.
package/bin/install.cjs CHANGED
@@ -874,6 +874,11 @@ async function install() {
874
874
  if (fs.existsSync(mainScript)) {
875
875
  fs.chmodSync(mainScript, '755');
876
876
  }
877
+ // Make session script executable
878
+ const sessionScript = path.join(LOOP_DIR, 'merlin-session.sh');
879
+ if (fs.existsSync(sessionScript)) {
880
+ fs.chmodSync(sessionScript, '755');
881
+ }
877
882
  // Make lib scripts executable
878
883
  const libDir = path.join(LOOP_DIR, 'lib');
879
884
  if (fs.existsSync(libDir)) {
@@ -885,6 +890,7 @@ async function install() {
885
890
  }
886
891
  logSuccess(`Installed ${count} loop files`);
887
892
  logSuccess(`Added 'merlin-loop' command`);
893
+ logSuccess(`Added 'merlin session' command (interactive orchestrator)`);
888
894
  } else {
889
895
  logWarn('Merlin Loop not found in package');
890
896
  }
@@ -376,27 +376,51 @@ async function inject() {
376
376
  console.log('\nCommit .merlin.json to make it available to all collaborators.');
377
377
  }
378
378
 
379
+ function startSession() {
380
+ // Launch the interactive session orchestrator
381
+ const sessionScript = path.join(process.env.HOME || '', '.claude', 'loop', 'merlin-session.sh');
382
+ if (!fs.existsSync(sessionScript)) {
383
+ console.error('Session orchestrator not installed. Run: npx create-merlin-brain');
384
+ process.exit(1);
385
+ }
386
+ try {
387
+ execSync(`bash "${sessionScript}"`, { stdio: 'inherit' });
388
+ } catch { process.exit(0); }
389
+ }
390
+
379
391
  function showHelp() {
380
392
  console.log(`
381
- Merlin CLI - Universal codebase intelligence for ALL AI agents
393
+ Merlin CLI - Interactive AI Development Orchestrator
382
394
 
383
395
  Usage:
384
- merlin status Check if current repo is connected to Sights
385
- merlin connect Connect repo to Merlin Sights
386
- merlin inject Create .merlin.json + inject into agent configs
396
+ merlin Start interactive session (DEFAULT)
397
+ merlin session Start interactive session (explicit)
398
+
387
399
  merlin context <task> Get context for a task
388
400
  merlin search <query> Search the codebase
389
401
  merlin brief Get project overview
390
402
  merlin rules Get coding rules
391
403
  merlin files <purpose> Find files by purpose
392
- merlin analytics [cmd] View session analytics (summary|compare|upload|clean)
393
- merlin agents [cmd] Manage agents (sync|list|info <name>)
404
+ merlin status Check if current repo is connected to Sights
405
+ merlin connect Connect repo to Merlin Sights
406
+ merlin inject Create .merlin.json + inject into agent configs
407
+ merlin analytics [cmd] View session analytics
408
+ merlin agents [cmd] Manage agents
409
+
410
+ Interactive Session:
411
+ Each command you type gets routed to the right specialist agent.
412
+ Each agent runs in a FRESH Claude session (200K context).
413
+ Handoffs between agents are automatic and deterministic.
414
+
415
+ Inside a session:
416
+ @agent-name task Force a specific agent
417
+ pipeline Run full pipeline (spec → arch → impl → test)
418
+ history Show agents spawned this session
419
+ exit End session
394
420
 
395
421
  Environment:
396
422
  MERLIN_API_KEY Your merlin.build API key
397
423
  MERLIN_API_URL API URL (default: https://auth.merlin.build)
398
-
399
- Works with: Claude, Cursor, Windsurf, Copilot, Aider, and any AI agent!
400
424
  `);
401
425
  }
402
426
 
@@ -409,6 +433,11 @@ async function main() {
409
433
  const command = args[0];
410
434
 
411
435
  switch (command) {
436
+ case 'session':
437
+ case 'start':
438
+ case 's':
439
+ startSession();
440
+ break;
412
441
  case 'context':
413
442
  await getContext(args.slice(1).join(' ') || 'general overview');
414
443
  break;
@@ -460,8 +489,16 @@ async function main() {
460
489
  case 'help':
461
490
  case '--help':
462
491
  case '-h':
463
- default:
464
492
  showHelp();
493
+ break;
494
+ default:
495
+ // No args = start interactive session (the main product)
496
+ if (!command) {
497
+ startSession();
498
+ } else {
499
+ console.error(`Unknown command: ${command}`);
500
+ showHelp();
501
+ }
465
502
  }
466
503
  }
467
504
 
@@ -283,6 +283,13 @@ function autoUpdateLocalFiles() {
283
283
  }
284
284
  catch { /* Windows */ }
285
285
  }
286
+ const sessionScript = join(loopDir, 'merlin-session.sh');
287
+ if (existsSync(sessionScript)) {
288
+ try {
289
+ chmodSync(sessionScript, '755');
290
+ }
291
+ catch { /* Windows */ }
292
+ }
286
293
  const libDir = join(loopDir, 'lib');
287
294
  if (existsSync(libDir)) {
288
295
  for (const file of readdirSync(libDir)) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,667 @@
1
+ #!/usr/bin/env bash
2
+ #
3
+ # ╔═══════════════════════════════════════════════════════════════════════════╗
4
+ # ║ MERLIN SESSION - Interactive Deterministic Orchestrator ║
5
+ # ║ https://merlin.build ║
6
+ # ╚═══════════════════════════════════════════════════════════════════════════╝
7
+ #
8
+ # Like merlin-loop, but interactive. The user is in the loop.
9
+ #
10
+ # KEY PRINCIPLE: This script sits OUTSIDE Claude. It controls which agent
11
+ # runs, what context they get, and how handoffs work. Each agent runs in
12
+ # a FRESH Claude session (200K context). The orchestration is CODE, not
13
+ # prompts. This is deterministic, not soft.
14
+ #
15
+ # Flow:
16
+ # 1. Boot: Connect Sights, load project status (code-level, not prompt)
17
+ # 2. Show status + options to user
18
+ # 3. User types what they want
19
+ # 4. Router picks the right agent (code-level keyword matching)
20
+ # 5. Assemble handoff context (Sights + previous outputs + task)
21
+ # 6. Spawn: claude --agent <name> -p "context"
22
+ # 7. Capture output, show to user
23
+ # 8. Offer next steps (pipeline continues or user decides)
24
+ # 9. Loop
25
+ #
26
+ # Usage:
27
+ # merlin session # Start interactive session
28
+ # merlin # Same (default command)
29
+ #
30
+ set -euo pipefail
31
+
32
+ # ═══════════════════════════════════════════════════════════════════════════════
33
+ # Configuration
34
+ # ═══════════════════════════════════════════════════════════════════════════════
35
+
36
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
37
+ SESSION_DIR="${MERLIN_SESSION_DIR:-/tmp/merlin-session-$$}"
38
+ HANDOFF_FILE="$SESSION_DIR/handoff.md"
39
+ RESULT_FILE="$SESSION_DIR/result.md"
40
+ HISTORY_FILE="$SESSION_DIR/history.jsonl"
41
+
42
+ # Load loop libraries (we reuse the existing infrastructure)
43
+ source "$SCRIPT_DIR/lib/tui.sh" 2>/dev/null || true
44
+ source "$SCRIPT_DIR/lib/agents.sh" 2>/dev/null || true
45
+ source "$SCRIPT_DIR/lib/sights.sh" 2>/dev/null || true
46
+ source "$SCRIPT_DIR/lib/boot.sh" 2>/dev/null || true
47
+
48
+ # Colors
49
+ : "${RESET:=\033[0m}"
50
+ : "${BOLD:=\033[1m}"
51
+ : "${DIM:=\033[2m}"
52
+ : "${RED:=\033[31m}"
53
+ : "${GREEN:=\033[32m}"
54
+ : "${YELLOW:=\033[33m}"
55
+ : "${BLUE:=\033[34m}"
56
+ : "${MAGENTA:=\033[35m}"
57
+ : "${CYAN:=\033[36m}"
58
+ : "${WHITE:=\033[37m}"
59
+
60
+ # Session state
61
+ SESSION_STARTED=$(date +%s)
62
+ AGENT_RUNS=0
63
+ LAST_AGENT=""
64
+ LAST_RESULT=""
65
+ PIPELINE_CONTEXT=""
66
+
67
+ # ═══════════════════════════════════════════════════════════════════════════════
68
+ # Core Functions
69
+ # ═══════════════════════════════════════════════════════════════════════════════
70
+
71
+ banner() {
72
+ clear
73
+ echo -e "${MAGENTA}${BOLD}"
74
+ echo " __ ___ ___"
75
+ echo " / |/ /__ _____/ (_)___"
76
+ echo " / /|_/ / _ \/ ___/ / / __ \\"
77
+ echo " / / / / __/ / / / / / / /"
78
+ echo "/_/ /_/\___/_/ /_/_/_/ /_/"
79
+ echo -e "${RESET}"
80
+ echo -e "${DIM}Interactive Session — Each agent = fresh Claude session${RESET}"
81
+ echo -e "${DIM}────────────────────────────────────────────────────────${RESET}"
82
+ echo ""
83
+ }
84
+
85
+ # Check if claude CLI is available
86
+ check_claude() {
87
+ if ! command -v claude &>/dev/null; then
88
+ echo -e "${RED}Error: 'claude' CLI not found.${RESET}"
89
+ echo -e "${DIM}Install: https://docs.anthropic.com/claude-code${RESET}"
90
+ exit 1
91
+ fi
92
+ }
93
+
94
+ # Check Sights connection (deterministic, not prompt-based)
95
+ boot_sights() {
96
+ echo -e "${CYAN}[1/3]${RESET} ${BOLD}Connecting to Sights...${RESET}"
97
+
98
+ # Try to get repo info via merlin CLI
99
+ if command -v merlin &>/dev/null; then
100
+ local brief
101
+ brief=$(merlin brief 2>/dev/null || echo "")
102
+ if [ -n "$brief" ] && ! echo "$brief" | grep -qi "error\|not found\|not connected"; then
103
+ echo -e " ${GREEN}✓${RESET} Sights connected"
104
+ SIGHTS_CONNECTED=true
105
+ SIGHTS_BRIEF="$brief"
106
+ return 0
107
+ fi
108
+ fi
109
+
110
+ # Try via API directly
111
+ local api_key="${MERLIN_API_KEY:-}"
112
+ if [ -z "$api_key" ]; then
113
+ # Try to read from Claude config
114
+ local config_file="$HOME/.claude/config.json"
115
+ if [ -f "$config_file" ]; then
116
+ api_key=$(python3 -c "import json; c=json.load(open('$config_file')); print(c.get('mcpServers',{}).get('merlin',{}).get('env',{}).get('MERLIN_API_KEY',''))" 2>/dev/null || echo "")
117
+ fi
118
+ fi
119
+
120
+ if [ -n "$api_key" ]; then
121
+ local api_url="${MERLIN_API_URL:-https://auth.merlin.build}"
122
+ local repo_url
123
+ repo_url=$(git remote get-url origin 2>/dev/null || echo "")
124
+
125
+ if [ -n "$repo_url" ]; then
126
+ # Quick API check
127
+ local status_code
128
+ status_code=$(curl -s -o /dev/null -w "%{http_code}" --max-time 5 \
129
+ -H "Authorization: Bearer $api_key" \
130
+ "$api_url/api/repos/my/list" 2>/dev/null || echo "000")
131
+
132
+ if [ "$status_code" = "200" ]; then
133
+ echo -e " ${GREEN}✓${RESET} Sights connected (API key valid)"
134
+ SIGHTS_CONNECTED=true
135
+ return 0
136
+ fi
137
+ fi
138
+ fi
139
+
140
+ echo -e " ${YELLOW}⚠${RESET} Sights not connected (working without cloud context)"
141
+ SIGHTS_CONNECTED=false
142
+ }
143
+
144
+ # Load project status (deterministic)
145
+ boot_project_status() {
146
+ echo -e "${CYAN}[2/3]${RESET} ${BOLD}Loading project status...${RESET}"
147
+
148
+ # Check for .planning/ directory
149
+ if [ -d ".planning" ]; then
150
+ local plan_count
151
+ plan_count=$(find .planning -name "PLAN*.md" 2>/dev/null | wc -l | tr -d ' ')
152
+ echo -e " ${GREEN}✓${RESET} Planning dir found ($plan_count plans)"
153
+ HAS_PLANNING=true
154
+ else
155
+ HAS_PLANNING=false
156
+ fi
157
+
158
+ # Check for PROJECT.md
159
+ if [ -f "PROJECT.md" ] || [ -f ".planning/PROJECT.md" ]; then
160
+ echo -e " ${GREEN}✓${RESET} PROJECT.md found"
161
+ HAS_PROJECT=true
162
+ else
163
+ HAS_PROJECT=false
164
+ fi
165
+
166
+ # Check git status
167
+ if git rev-parse --is-inside-work-tree &>/dev/null; then
168
+ local branch
169
+ branch=$(git branch --show-current 2>/dev/null || echo "unknown")
170
+ local changes
171
+ changes=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')
172
+ echo -e " ${GREEN}✓${RESET} Git: ${CYAN}$branch${RESET} ($changes uncommitted files)"
173
+ GIT_BRANCH="$branch"
174
+ fi
175
+
176
+ # Load context from Sights if available
177
+ if [ "$SIGHTS_CONNECTED" = true ] && command -v merlin &>/dev/null; then
178
+ local context
179
+ context=$(merlin context "project overview" 2>/dev/null || echo "")
180
+ if [ -n "$context" ]; then
181
+ SIGHTS_PROJECT_CONTEXT="$context"
182
+ echo -e " ${GREEN}✓${RESET} Loaded project context from Sights"
183
+ fi
184
+ fi
185
+ }
186
+
187
+ # Show status and options
188
+ boot_show_status() {
189
+ echo -e "${CYAN}[3/3]${RESET} ${BOLD}Ready${RESET}"
190
+ echo ""
191
+ echo -e "${DIM}────────────────────────────────────────────────────────${RESET}"
192
+ echo ""
193
+
194
+ if [ "$HAS_PROJECT" = false ]; then
195
+ echo -e " ${YELLOW}⚠${RESET} No PROJECT.md found."
196
+ echo ""
197
+ echo -e " ${WHITE}[1]${RESET} Map this codebase first"
198
+ echo -e " ${WHITE}[2]${RESET} Start a new project"
199
+ echo -e " ${WHITE}[3]${RESET} Just start working"
200
+ echo ""
201
+ else
202
+ echo -e " ${GREEN}Ready to work.${RESET} Tell me what you need."
203
+ echo ""
204
+ echo -e " ${DIM}Examples:${RESET}"
205
+ echo -e " ${DIM} \"add authentication to the API\"${RESET}"
206
+ echo -e " ${DIM} \"fix the payment bug\"${RESET}"
207
+ echo -e " ${DIM} \"refactor the user service\"${RESET}"
208
+ echo -e " ${DIM} \"plan the next milestone\"${RESET}"
209
+ echo ""
210
+ fi
211
+ }
212
+
213
+ # ═══════════════════════════════════════════════════════════════════════════════
214
+ # Agent Routing (Deterministic — code, not prompts)
215
+ # ═══════════════════════════════════════════════════════════════════════════════
216
+
217
+ # Route user input to the right agent
218
+ route_to_agent() {
219
+ local input="$1"
220
+ local input_lower
221
+ input_lower=$(echo "$input" | tr '[:upper:]' '[:lower:]')
222
+
223
+ # Use the loop's agent selection if available
224
+ if type select_agent &>/dev/null; then
225
+ local selected
226
+ selected=$(select_agent "$input_lower" 2>/dev/null || echo "")
227
+ if [ -n "$selected" ]; then
228
+ echo "$selected"
229
+ return 0
230
+ fi
231
+ fi
232
+
233
+ # Fallback: simple keyword routing
234
+ # Planning/spec
235
+ for word in plan spec feature idea milestone roadmap; do
236
+ if echo "$input_lower" | grep -qw "$word"; then echo "product-spec"; return 0; fi
237
+ done
238
+
239
+ # Architecture
240
+ for word in architect schema model database service design; do
241
+ if echo "$input_lower" | grep -qw "$word"; then echo "system-architect"; return 0; fi
242
+ done
243
+
244
+ # Security
245
+ for word in auth login security password token encrypt; do
246
+ if echo "$input_lower" | grep -qw "$word"; then echo "hardening-guard"; return 0; fi
247
+ done
248
+
249
+ # Testing
250
+ for word in test spec coverage unit integration e2e; do
251
+ if echo "$input_lower" | grep -qw "$word"; then echo "tests-qa"; return 0; fi
252
+ done
253
+
254
+ # Debug
255
+ for word in debug fix error bug crash issue; do
256
+ if echo "$input_lower" | grep -qw "$word"; then echo "merlin-debugger"; return 0; fi
257
+ done
258
+
259
+ # Refactor
260
+ for word in refactor cleanup dry organize split; do
261
+ if echo "$input_lower" | grep -qw "$word"; then echo "dry-refactor"; return 0; fi
262
+ done
263
+
264
+ # Frontend
265
+ for word in ui component react vue frontend css layout; do
266
+ if echo "$input_lower" | grep -qw "$word"; then echo "merlin-frontend"; return 0; fi
267
+ done
268
+
269
+ # API
270
+ for word in api endpoint route rest graphql; do
271
+ if echo "$input_lower" | grep -qw "$word"; then echo "merlin-api-designer"; return 0; fi
272
+ done
273
+
274
+ # Deploy
275
+ for word in deploy infra railway docker env pipeline; do
276
+ if echo "$input_lower" | grep -qw "$word"; then echo "ops-railway"; return 0; fi
277
+ done
278
+
279
+ # Docs
280
+ for word in docs readme documentation; do
281
+ if echo "$input_lower" | grep -qw "$word"; then echo "docs-keeper"; return 0; fi
282
+ done
283
+
284
+ # Video/Remotion
285
+ for word in video animation remotion render; do
286
+ if echo "$input_lower" | grep -qw "$word"; then echo "remotion"; return 0; fi
287
+ done
288
+
289
+ # Default: implementation
290
+ echo "implementation-dev"
291
+ }
292
+
293
+ # ═══════════════════════════════════════════════════════════════════════════════
294
+ # Handoff & Spawn
295
+ # ═══════════════════════════════════════════════════════════════════════════════
296
+
297
+ # Build handoff context for an agent
298
+ build_handoff() {
299
+ local agent="$1"
300
+ local task="$2"
301
+
302
+ local handoff="# Task\n\n$task\n"
303
+
304
+ # Add Sights context if available
305
+ if [ "$SIGHTS_CONNECTED" = true ] && command -v merlin &>/dev/null; then
306
+ local context
307
+ context=$(merlin context "$task" 2>/dev/null || echo "")
308
+ if [ -n "$context" ]; then
309
+ handoff="$handoff\n## Codebase Context (from Merlin Sights)\n\n$context\n"
310
+ fi
311
+ fi
312
+
313
+ # Add pipeline context (output from previous agents in this session)
314
+ if [ -n "$PIPELINE_CONTEXT" ]; then
315
+ handoff="$handoff\n## Previous Agent Output\n\n$PIPELINE_CONTEXT\n"
316
+ fi
317
+
318
+ # Add project context
319
+ if [ -f "PROJECT.md" ]; then
320
+ handoff="$handoff\n## Project Info\n\nSee PROJECT.md in the repo root.\n"
321
+ fi
322
+
323
+ echo -e "$handoff"
324
+ }
325
+
326
+ # Spawn a fresh Claude session with an agent
327
+ spawn_agent() {
328
+ local agent="$1"
329
+ local task="$2"
330
+
331
+ # Create session directory
332
+ mkdir -p "$SESSION_DIR"
333
+
334
+ # Build and write handoff
335
+ local handoff
336
+ handoff=$(build_handoff "$agent" "$task")
337
+ echo -e "$handoff" > "$HANDOFF_FILE"
338
+
339
+ # Show what we're doing
340
+ echo ""
341
+ echo -e "${DIM}────────────────────────────────────────────────────────${RESET}"
342
+ echo -e "${MAGENTA}${BOLD} Spawning: ${agent}${RESET}"
343
+ echo -e "${DIM} Fresh Claude session (200K context)${RESET}"
344
+ echo -e "${DIM}────────────────────────────────────────────────────────${RESET}"
345
+ echo ""
346
+
347
+ # Spawn fresh Claude with the agent
348
+ local output=""
349
+ local exit_code=0
350
+ local start_time
351
+ start_time=$(date +%s)
352
+
353
+ set +e
354
+ # The magic: fresh Claude session, specific agent, prompt via stdin
355
+ output=$(claude --agent "$agent" --output-format text -p "$(cat "$HANDOFF_FILE")" 2>&1)
356
+ exit_code=$?
357
+ set -e
358
+
359
+ local end_time
360
+ end_time=$(date +%s)
361
+ local duration=$((end_time - start_time))
362
+
363
+ # Save result
364
+ echo "$output" > "$RESULT_FILE"
365
+
366
+ # Update state
367
+ AGENT_RUNS=$((AGENT_RUNS + 1))
368
+ LAST_AGENT="$agent"
369
+ LAST_RESULT="$output"
370
+ PIPELINE_CONTEXT="$output"
371
+
372
+ # Log to history
373
+ echo "{\"agent\":\"$agent\",\"task\":\"$(echo "$task" | head -c 100)\",\"duration\":$duration,\"exit_code\":$exit_code,\"timestamp\":$(date +%s)}" >> "$HISTORY_FILE"
374
+
375
+ # Show result
376
+ echo ""
377
+ echo -e "${DIM}────────────────────────────────────────────────────────${RESET}"
378
+ if [ $exit_code -eq 0 ]; then
379
+ echo -e "${GREEN}${BOLD} ✓ ${agent} completed${RESET} ${DIM}(${duration}s)${RESET}"
380
+ else
381
+ echo -e "${RED}${BOLD} ✗ ${agent} failed${RESET} ${DIM}(exit $exit_code, ${duration}s)${RESET}"
382
+ fi
383
+ echo -e "${DIM}────────────────────────────────────────────────────────${RESET}"
384
+ echo ""
385
+
386
+ # Show the output (truncated for display)
387
+ local line_count
388
+ line_count=$(echo "$output" | wc -l | tr -d ' ')
389
+ if [ "$line_count" -gt 50 ]; then
390
+ echo "$output" | head -40
391
+ echo ""
392
+ echo -e "${DIM} ... ($((line_count - 40)) more lines — full output in $RESULT_FILE)${RESET}"
393
+ echo ""
394
+ echo "$output" | tail -10
395
+ else
396
+ echo "$output"
397
+ fi
398
+
399
+ return $exit_code
400
+ }
401
+
402
+ # ═══════════════════════════════════════════════════════════════════════════════
403
+ # Pipeline Support
404
+ # ═══════════════════════════════════════════════════════════════════════════════
405
+
406
+ # Run a pipeline of agents for a task
407
+ # Usage: run_pipeline "add authentication" spec architect implement test
408
+ run_pipeline() {
409
+ local task="$1"
410
+ shift
411
+ local agents=("$@")
412
+
413
+ echo -e "\n${MAGENTA}${BOLD}Pipeline:${RESET} ${agents[*]}"
414
+ echo -e "${DIM}Each agent runs in a fresh session and passes context to the next.${RESET}\n"
415
+
416
+ PIPELINE_CONTEXT=""
417
+
418
+ for i in "${!agents[@]}"; do
419
+ local agent="${agents[$i]}"
420
+ local step=$((i + 1))
421
+ local total=${#agents[@]}
422
+
423
+ echo -e "${CYAN}[${step}/${total}]${RESET} ${BOLD}${agent}${RESET}"
424
+
425
+ spawn_agent "$agent" "$task"
426
+ local exit_code=$?
427
+
428
+ if [ $exit_code -ne 0 ]; then
429
+ echo -e "\n${RED}Pipeline stopped at ${agent} (exit $exit_code)${RESET}"
430
+ echo -e "${YELLOW}Continue anyway? [y/N]${RESET} "
431
+ read -r continue_choice
432
+ if [ "$continue_choice" != "y" ] && [ "$continue_choice" != "Y" ]; then
433
+ return 1
434
+ fi
435
+ fi
436
+
437
+ # Between pipeline steps, ask user if they want to continue
438
+ if [ $step -lt $total ]; then
439
+ echo ""
440
+ echo -e "${WHITE}[enter]${RESET} Continue to ${agents[$((i+1))]} ${WHITE}[s]${RESET} Skip ${WHITE}[q]${RESET} Stop pipeline"
441
+ read -r pipeline_choice
442
+ case "$pipeline_choice" in
443
+ s|S) continue ;;
444
+ q|Q) echo -e "${YELLOW}Pipeline stopped by user.${RESET}"; return 0 ;;
445
+ *) ;; # continue
446
+ esac
447
+ fi
448
+ done
449
+
450
+ echo -e "\n${GREEN}${BOLD}✓ Pipeline complete${RESET}"
451
+ }
452
+
453
+ # ═══════════════════════════════════════════════════════════════════════════════
454
+ # Special Commands
455
+ # ═══════════════════════════════════════════════════════════════════════════════
456
+
457
+ handle_special_commands() {
458
+ local input="$1"
459
+
460
+ case "$input" in
461
+ exit|quit|q)
462
+ echo -e "\n${MAGENTA}Session ended.${RESET} ${DIM}($AGENT_RUNS agents spawned)${RESET}\n"
463
+ cleanup
464
+ exit 0
465
+ ;;
466
+ help|h|\?)
467
+ echo ""
468
+ echo -e "${BOLD}Commands:${RESET}"
469
+ echo -e " ${WHITE}Any text${RESET} → Routes to the best agent automatically"
470
+ echo -e " ${WHITE}@agent task${RESET} → Force a specific agent (e.g. @tests-qa add tests)"
471
+ echo -e " ${WHITE}pipeline${RESET} → Run full pipeline: spec → arch → impl → test"
472
+ echo -e " ${WHITE}history${RESET} → Show agent history this session"
473
+ echo -e " ${WHITE}result${RESET} → Show last agent's full output"
474
+ echo -e " ${WHITE}status${RESET} → Show project status"
475
+ echo -e " ${WHITE}help${RESET} → This message"
476
+ echo -e " ${WHITE}exit${RESET} → End session"
477
+ echo ""
478
+ return 0
479
+ ;;
480
+ history)
481
+ echo ""
482
+ if [ -f "$HISTORY_FILE" ]; then
483
+ echo -e "${BOLD}Session History:${RESET}"
484
+ local i=1
485
+ while IFS= read -r line; do
486
+ local agent task duration
487
+ agent=$(echo "$line" | python3 -c "import sys,json; print(json.load(sys.stdin)['agent'])" 2>/dev/null || echo "?")
488
+ task=$(echo "$line" | python3 -c "import sys,json; print(json.load(sys.stdin)['task'])" 2>/dev/null || echo "?")
489
+ duration=$(echo "$line" | python3 -c "import sys,json; print(json.load(sys.stdin)['duration'])" 2>/dev/null || echo "?")
490
+ echo -e " ${DIM}$i.${RESET} ${CYAN}$agent${RESET} (${duration}s) — $task"
491
+ i=$((i + 1))
492
+ done < "$HISTORY_FILE"
493
+ else
494
+ echo -e "${DIM}No agents spawned yet.${RESET}"
495
+ fi
496
+ echo ""
497
+ return 0
498
+ ;;
499
+ result)
500
+ if [ -f "$RESULT_FILE" ]; then
501
+ echo ""
502
+ cat "$RESULT_FILE"
503
+ echo ""
504
+ else
505
+ echo -e "${DIM}No result yet.${RESET}"
506
+ fi
507
+ return 0
508
+ ;;
509
+ status)
510
+ boot_project_status
511
+ echo ""
512
+ return 0
513
+ ;;
514
+ pipeline|pipe)
515
+ echo -e "\n${BOLD}What should the pipeline build?${RESET}"
516
+ echo -ne "${MAGENTA}❯${RESET} "
517
+ read -r pipeline_task
518
+ if [ -n "$pipeline_task" ]; then
519
+ run_pipeline "$pipeline_task" product-spec system-architect implementation-dev tests-qa
520
+ fi
521
+ return 0
522
+ ;;
523
+ 1)
524
+ # Map codebase (from boot options)
525
+ spawn_agent "merlin-codebase-mapper" "Map and document this codebase. Analyze the structure, patterns, and architecture."
526
+ return 0
527
+ ;;
528
+ 2)
529
+ # New project
530
+ spawn_agent "product-spec" "Initialize this project. Create PROJECT.md with vision, goals, architecture, and tech stack."
531
+ return 0
532
+ ;;
533
+ 3)
534
+ # Just start working — no-op, fall through to regular prompt
535
+ return 1
536
+ ;;
537
+ esac
538
+
539
+ return 1
540
+ }
541
+
542
+ # ═══════════════════════════════════════════════════════════════════════════════
543
+ # Cleanup
544
+ # ═══════════════════════════════════════════════════════════════════════════════
545
+
546
+ cleanup() {
547
+ # Keep history file, clean temp
548
+ if [ -f "$HANDOFF_FILE" ]; then rm -f "$HANDOFF_FILE"; fi
549
+ }
550
+
551
+ trap cleanup EXIT
552
+
553
+ # ═══════════════════════════════════════════════════════════════════════════════
554
+ # Main Loop
555
+ # ═══════════════════════════════════════════════════════════════════════════════
556
+
557
+ main() {
558
+ check_claude
559
+ mkdir -p "$SESSION_DIR"
560
+
561
+ banner
562
+
563
+ # Deterministic boot sequence (code, not prompts)
564
+ SIGHTS_CONNECTED=false
565
+ SIGHTS_BRIEF=""
566
+ SIGHTS_PROJECT_CONTEXT=""
567
+ HAS_PLANNING=false
568
+ HAS_PROJECT=false
569
+ GIT_BRANCH=""
570
+
571
+ boot_sights
572
+ boot_project_status
573
+ boot_show_status
574
+
575
+ # Interactive loop
576
+ while true; do
577
+ echo -ne "${MAGENTA}❯${RESET} "
578
+ read -r user_input
579
+
580
+ # Skip empty input
581
+ if [ -z "$user_input" ]; then
582
+ continue
583
+ fi
584
+
585
+ # Check for special commands first
586
+ if handle_special_commands "$user_input"; then
587
+ continue
588
+ fi
589
+
590
+ # Check for forced agent routing (@agent task)
591
+ if [[ "$user_input" == @* ]]; then
592
+ local forced_agent
593
+ forced_agent=$(echo "$user_input" | cut -d' ' -f1 | sed 's/^@//')
594
+ local forced_task
595
+ forced_task=$(echo "$user_input" | cut -d' ' -f2-)
596
+
597
+ if [ -n "$forced_task" ]; then
598
+ echo -e "${DIM}Forced routing to: ${forced_agent}${RESET}"
599
+ spawn_agent "$forced_agent" "$forced_task"
600
+ else
601
+ echo -e "${RED}Usage: @agent-name task description${RESET}"
602
+ fi
603
+ continue
604
+ fi
605
+
606
+ # Route to the right agent (deterministic)
607
+ local agent
608
+ agent=$(route_to_agent "$user_input")
609
+
610
+ echo -e "${DIM}Routed to: ${CYAN}${agent}${RESET}"
611
+
612
+ # Ask for confirmation (quick — enter to confirm, or change)
613
+ echo -ne "${DIM}[enter] Go [c] Change agent [p] Full pipeline: ${RESET}"
614
+ read -r confirm
615
+
616
+ case "$confirm" in
617
+ c|C|change)
618
+ echo -e "\n${BOLD}Available agents:${RESET}"
619
+ echo -e " product-spec, system-architect, implementation-dev, dry-refactor"
620
+ echo -e " hardening-guard, tests-qa, ops-railway, docs-keeper"
621
+ echo -e " merlin-frontend, merlin-api-designer, merlin-debugger, remotion"
622
+ echo -ne "\n${WHITE}Agent: ${RESET}"
623
+ read -r new_agent
624
+ if [ -n "$new_agent" ]; then
625
+ agent="$new_agent"
626
+ fi
627
+ ;;
628
+ p|P|pipeline)
629
+ run_pipeline "$user_input" product-spec system-architect implementation-dev tests-qa
630
+ continue
631
+ ;;
632
+ *)
633
+ ;; # proceed with auto-routed agent
634
+ esac
635
+
636
+ # Spawn the agent
637
+ spawn_agent "$agent" "$user_input"
638
+
639
+ # After agent completes, suggest next steps
640
+ echo ""
641
+ echo -e "${WHITE}What's next?${RESET}"
642
+ echo -e " ${DIM}[enter] New task [t] Test this [r] Refactor [d] Docs [q] Quit${RESET}"
643
+ echo -ne "${MAGENTA}❯${RESET} "
644
+ read -r next_choice
645
+
646
+ case "$next_choice" in
647
+ t|T|test)
648
+ spawn_agent "tests-qa" "Write tests for what was just implemented: $user_input"
649
+ ;;
650
+ r|R|refactor)
651
+ spawn_agent "dry-refactor" "Refactor and clean up the code from: $user_input"
652
+ ;;
653
+ d|D|docs)
654
+ spawn_agent "docs-keeper" "Document what was just built: $user_input"
655
+ ;;
656
+ q|Q|quit|exit)
657
+ echo -e "\n${MAGENTA}Session ended.${RESET} ${DIM}($AGENT_RUNS agents spawned)${RESET}\n"
658
+ exit 0
659
+ ;;
660
+ *)
661
+ ;; # new task — loop continues
662
+ esac
663
+ done
664
+ }
665
+
666
+ # Run
667
+ main "$@"
@@ -1 +1 @@
1
- 3.5.13
1
+ 3.6.0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-merlin-brain",
3
- "version": "3.5.13",
3
+ "version": "3.6.0",
4
4
  "description": "Merlin - The Ultimate AI Brain for Claude Code. One install: workflows, agents, loop, and Sights MCP server.",
5
5
  "type": "module",
6
6
  "main": "./dist/server/index.js",