livepilot 1.9.22 → 1.9.24

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 (118) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.mcpbignore +40 -0
  3. package/AGENTS.md +3 -3
  4. package/CHANGELOG.md +84 -0
  5. package/CONTRIBUTING.md +1 -1
  6. package/README.md +141 -72
  7. package/bin/livepilot.js +135 -0
  8. package/livepilot/.Codex-plugin/plugin.json +2 -2
  9. package/livepilot/.claude-plugin/plugin.json +2 -2
  10. package/livepilot/agents/livepilot-producer/AGENT.md +13 -0
  11. package/livepilot/commands/arrange.md +42 -23
  12. package/livepilot/commands/mix.md +34 -19
  13. package/livepilot/commands/perform.md +31 -19
  14. package/livepilot/commands/sounddesign.md +38 -25
  15. package/livepilot/skills/livepilot-arrangement/SKILL.md +2 -1
  16. package/livepilot/skills/livepilot-composition-engine/references/transition-archetypes.md +2 -2
  17. package/livepilot/skills/livepilot-core/SKILL.md +60 -4
  18. package/livepilot/skills/livepilot-core/references/device-atlas/distortion-and-character.md +11 -11
  19. package/livepilot/skills/livepilot-core/references/device-atlas/drums-and-percussion.md +25 -25
  20. package/livepilot/skills/livepilot-core/references/device-atlas/dynamics-and-punch.md +21 -21
  21. package/livepilot/skills/livepilot-core/references/device-atlas/eq-and-filtering.md +13 -13
  22. package/livepilot/skills/livepilot-core/references/device-atlas/midi-tools.md +13 -13
  23. package/livepilot/skills/livepilot-core/references/device-atlas/movement-and-modulation.md +5 -5
  24. package/livepilot/skills/livepilot-core/references/device-atlas/space-and-depth.md +16 -16
  25. package/livepilot/skills/livepilot-core/references/device-atlas/spectral-and-weird.md +40 -40
  26. package/livepilot/skills/livepilot-core/references/m4l-devices.md +3 -3
  27. package/livepilot/skills/livepilot-core/references/overview.md +4 -4
  28. package/livepilot/skills/livepilot-evaluation/SKILL.md +12 -8
  29. package/livepilot/skills/livepilot-evaluation/references/memory-promotion.md +2 -2
  30. package/livepilot/skills/livepilot-mix-engine/SKILL.md +1 -1
  31. package/livepilot/skills/livepilot-mix-engine/references/mix-moves.md +2 -2
  32. package/livepilot/skills/livepilot-mixing/SKILL.md +3 -1
  33. package/livepilot/skills/livepilot-notes/SKILL.md +2 -1
  34. package/livepilot/skills/livepilot-release/SKILL.md +29 -15
  35. package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +2 -2
  36. package/livepilot/skills/livepilot-wonder/SKILL.md +62 -0
  37. package/livepilot.mcpb +0 -0
  38. package/manifest.json +91 -0
  39. package/mcp_server/__init__.py +1 -1
  40. package/mcp_server/creative_constraints/__init__.py +6 -0
  41. package/mcp_server/creative_constraints/engine.py +277 -0
  42. package/mcp_server/creative_constraints/models.py +75 -0
  43. package/mcp_server/creative_constraints/tools.py +341 -0
  44. package/mcp_server/experiment/__init__.py +6 -0
  45. package/mcp_server/experiment/engine.py +213 -0
  46. package/mcp_server/experiment/models.py +120 -0
  47. package/mcp_server/experiment/tools.py +263 -0
  48. package/mcp_server/hook_hunter/__init__.py +5 -0
  49. package/mcp_server/hook_hunter/analyzer.py +365 -0
  50. package/mcp_server/hook_hunter/models.py +58 -0
  51. package/mcp_server/hook_hunter/tools.py +588 -0
  52. package/mcp_server/memory/taste_graph.py +328 -0
  53. package/mcp_server/memory/tools.py +99 -0
  54. package/mcp_server/mix_engine/critics.py +2 -2
  55. package/mcp_server/mix_engine/models.py +1 -1
  56. package/mcp_server/mix_engine/state_builder.py +2 -2
  57. package/mcp_server/musical_intelligence/__init__.py +8 -0
  58. package/mcp_server/musical_intelligence/detectors.py +434 -0
  59. package/mcp_server/musical_intelligence/phrase_critic.py +163 -0
  60. package/mcp_server/musical_intelligence/tools.py +224 -0
  61. package/mcp_server/persistence/__init__.py +1 -0
  62. package/mcp_server/persistence/base_store.py +82 -0
  63. package/mcp_server/persistence/project_store.py +106 -0
  64. package/mcp_server/persistence/taste_store.py +122 -0
  65. package/mcp_server/preview_studio/__init__.py +5 -0
  66. package/mcp_server/preview_studio/engine.py +280 -0
  67. package/mcp_server/preview_studio/models.py +74 -0
  68. package/mcp_server/preview_studio/tools.py +466 -0
  69. package/mcp_server/runtime/capability.py +66 -0
  70. package/mcp_server/runtime/capability_probe.py +118 -0
  71. package/mcp_server/runtime/execution_router.py +139 -0
  72. package/mcp_server/runtime/remote_commands.py +82 -0
  73. package/mcp_server/runtime/session_kernel.py +96 -0
  74. package/mcp_server/runtime/tools.py +90 -1
  75. package/mcp_server/semantic_moves/__init__.py +13 -0
  76. package/mcp_server/semantic_moves/compiler.py +116 -0
  77. package/mcp_server/semantic_moves/mix_compilers.py +291 -0
  78. package/mcp_server/semantic_moves/mix_moves.py +157 -0
  79. package/mcp_server/semantic_moves/models.py +46 -0
  80. package/mcp_server/semantic_moves/performance_compilers.py +208 -0
  81. package/mcp_server/semantic_moves/performance_moves.py +81 -0
  82. package/mcp_server/semantic_moves/registry.py +32 -0
  83. package/mcp_server/semantic_moves/resolvers.py +126 -0
  84. package/mcp_server/semantic_moves/sound_design_compilers.py +266 -0
  85. package/mcp_server/semantic_moves/sound_design_moves.py +78 -0
  86. package/mcp_server/semantic_moves/tools.py +205 -0
  87. package/mcp_server/semantic_moves/transition_compilers.py +222 -0
  88. package/mcp_server/semantic_moves/transition_moves.py +76 -0
  89. package/mcp_server/server.py +10 -0
  90. package/mcp_server/services/__init__.py +1 -0
  91. package/mcp_server/services/motif_service.py +67 -0
  92. package/mcp_server/session_continuity/__init__.py +6 -0
  93. package/mcp_server/session_continuity/models.py +86 -0
  94. package/mcp_server/session_continuity/tools.py +230 -0
  95. package/mcp_server/session_continuity/tracker.py +263 -0
  96. package/mcp_server/song_brain/__init__.py +6 -0
  97. package/mcp_server/song_brain/builder.py +504 -0
  98. package/mcp_server/song_brain/models.py +136 -0
  99. package/mcp_server/song_brain/tools.py +312 -0
  100. package/mcp_server/stuckness_detector/__init__.py +5 -0
  101. package/mcp_server/stuckness_detector/detector.py +400 -0
  102. package/mcp_server/stuckness_detector/models.py +66 -0
  103. package/mcp_server/stuckness_detector/tools.py +195 -0
  104. package/mcp_server/tools/_conductor.py +104 -6
  105. package/mcp_server/tools/analyzer.py +1 -1
  106. package/mcp_server/tools/devices.py +34 -0
  107. package/mcp_server/wonder_mode/__init__.py +6 -0
  108. package/mcp_server/wonder_mode/diagnosis.py +84 -0
  109. package/mcp_server/wonder_mode/engine.py +493 -0
  110. package/mcp_server/wonder_mode/session.py +114 -0
  111. package/mcp_server/wonder_mode/tools.py +290 -0
  112. package/package.json +2 -2
  113. package/remote_script/LivePilot/__init__.py +1 -1
  114. package/remote_script/LivePilot/browser.py +4 -1
  115. package/remote_script/LivePilot/devices.py +29 -0
  116. package/remote_script/LivePilot/tracks.py +11 -4
  117. package/scripts/generate_tool_catalog.py +131 -0
  118. package/scripts/sync_metadata.py +132 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
3
  "name": "dreamrec-LivePilot",
4
- "description": "Agentic MCP production system for Ableton Live 12 — 237 tools, 32 domains",
4
+ "description": "Agentic MCP production system for Ableton Live 12 — 293 tools, 39 domains",
5
5
  "owner": {
6
6
  "name": "dreamrec",
7
7
  "email": "dreamrec@users.noreply.github.com"
@@ -9,8 +9,8 @@
9
9
  "plugins": [
10
10
  {
11
11
  "name": "livepilot",
12
- "description": "Agentic production system for Ableton Live 12 — 237 tools, 32 domains, device atlas, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
13
- "version": "1.9.22",
12
+ "description": "Agentic production system for Ableton Live 12 — 293 tools, 39 domains, device atlas, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
13
+ "version": "1.9.24",
14
14
  "author": {
15
15
  "name": "Pilot Studio"
16
16
  },
package/.mcpbignore ADDED
@@ -0,0 +1,40 @@
1
+ # Development files
2
+ .git
3
+ .git-backup-full
4
+ .github
5
+ .claude
6
+ .playwright-mcp
7
+ .pytest_cache
8
+ .venv
9
+ __pycache__
10
+
11
+ # Test and CI
12
+ tests/
13
+ scripts/
14
+ .github/
15
+
16
+ # Build artifacts
17
+ *.pyc
18
+ .DS_Store
19
+ *.egg-info
20
+
21
+ # Credentials and tokens
22
+ .mcpregistry_*
23
+ .env
24
+ .npmrc
25
+
26
+ # Docs and marketing (not needed at runtime)
27
+ docs/specs/
28
+ docs/social-banner.*
29
+ docs/screenshots/
30
+
31
+ # Large binary already in User Library after install
32
+ # m4l_device/LivePilot_Analyzer.amxd
33
+
34
+ # Dev config
35
+ .mcp.json
36
+ .npmignore
37
+ .editorconfig
38
+ CODE_OF_CONDUCT.md
39
+ CONTRIBUTING.md
40
+ SECURITY.md
package/AGENTS.md CHANGED
@@ -1,4 +1,4 @@
1
- # LivePilot v1.9.18 — Ableton Live 12
1
+ # LivePilot v1.9.24 — Ableton Live 12
2
2
 
3
3
  ## Project
4
4
  - **Repo:** This directory (LivePilot)
@@ -22,7 +22,7 @@
22
22
  ## Key Rules
23
23
  - ALL Live Object Model (LOM) calls must execute on Ableton's main thread via schedule_message queue
24
24
  - Live 12 minimum — use modern note API (add_new_notes, get_notes_extended, apply_note_modifications)
25
- - 236 tools across 31 domains: transport, tracks, clips, notes, devices, scenes, mixing, browser, arrangement, memory, analyzer, automation, theory, generative, harmony, midi_io, perception, agent_os, composition, motif, research, planner, project_brain, runtime, evaluation, mix_engine, sound_design, transition_engine, reference_engine, translation_engine, performance_engine
25
+ - 293 tools across 39 domains: transport, tracks, clips, notes, devices, scenes, mixing, browser, arrangement, memory, analyzer, automation, theory, generative, harmony, midi_io, perception, agent_os, composition, motif, research, planner, project_brain, runtime, evaluation, mix_engine, sound_design, transition_engine, reference_engine, translation_engine, performance_engine
26
26
  - JSON over TCP, newline-delimited, port 9878
27
27
  - Structured errors with codes: INDEX_ERROR, NOT_FOUND, INVALID_PARAM, STATE_ERROR, TIMEOUT, INTERNAL
28
28
 
@@ -43,4 +43,4 @@ When modifying .amxd attributes that Max editor won't persist (e.g., `openinpres
43
43
  4. Structure: 24-byte `ampf` header + `ptch` chunk + `mx@c` header + JSON patcher + frozen deps
44
44
 
45
45
  ## Tool Count
46
- Currently 236 tools. If adding/removing tools, update: README.md, package.json description, livepilot/.Codex-plugin/plugin.json, server.json, livepilot/skills/livepilot-core/SKILL.md, livepilot/skills/livepilot-core/references/overview.md, AGENTS.md, CHANGELOG.md, tests/test_tools_contract.py, docs/manual/index.md, docs/manual/tool-reference.md
46
+ Currently 293 tools. If adding/removing tools, update: README.md, package.json description, livepilot/.Codex-plugin/plugin.json, livepilot/.claude-plugin/plugin.json, server.json, livepilot/skills/livepilot-core/SKILL.md, livepilot/skills/livepilot-core/references/overview.md, AGENTS.md, CLAUDE.md, CHANGELOG.md, tests/test_tools_contract.py, docs/manual/index.md, docs/manual/tool-reference.md
package/CHANGELOG.md CHANGED
@@ -1,5 +1,89 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.9.24 — Stability & Intelligence Upgrade (April 2026)
4
+
5
+ ### Truth and Boundaries (Wave 1)
6
+ - **feat(runtime):** Capability contract — every advanced tool reports `full/fallback/analytical_only/unavailable` with confidence scores
7
+ - **feat(runtime):** Command boundary audit — CI catches any `send_command()` targeting a non-existent Remote Script command
8
+ - **fix(song_brain):** `get_motif_graph` now uses pure-Python engine instead of invalid TCP call
9
+ - **fix(hook_hunter):** Same motif routing fix
10
+ - **fix(musical_intelligence):** Same motif routing fix + `analyze_phrase_arc` now calls perception engine directly
11
+ - **fix(memory):** `record_positive_preference` actually updates taste dimensions (was a silent no-op due to key mismatch)
12
+ - **fix(metadata):** AGENTS.md synced to v1.9.23/293 tools, test docstring corrected
13
+
14
+ ### Unified Execution Layer (Wave 2)
15
+ - **feat(runtime):** Execution router — classifies steps as `remote_command/bridge_command/mcp_tool/unknown`, dispatches correctly
16
+ - **feat(semantic_moves):** `apply_semantic_move` explore mode uses execution router
17
+ - **feat(preview_studio):** `render_preview_variant` uses execution router
18
+
19
+ ### Persistent Memory (Waves 2-3)
20
+ - **feat(persistence):** Base persistent JSON store (atomic write, corruption recovery, thread-safe)
21
+ - **feat(persistence):** Taste store at `~/.livepilot/taste.json` — move outcomes, novelty band, device affinity, anti-preferences survive restart
22
+ - **feat(persistence):** Project store at `~/.livepilot/projects/<hash>/state.json` — threads, turns, Wonder outcomes per song
23
+ - **feat(memory):** TasteGraph.record_move_outcome writes to persistent backing
24
+ - **feat(session_continuity):** tracker flushes threads and turns to project store on write
25
+
26
+ ### Move Annotations (Wave 3)
27
+ - **feat(semantic_moves):** All 20 moves annotated with explicit `backend` per compile_plan step
28
+ - **test:** Static audit verifies all annotations match the execution router classifier
29
+
30
+ ### Intelligence Upgrade (Waves 3-4)
31
+ - **feat(services):** Shared motif service — one entry point consumed by SongBrain, HookHunter, musical_intelligence
32
+ - **feat(song_brain):** Evidence-weighted identity confidence (motif=0.4, composition=0.2, roles=0.15, scenes=0.15, moves=0.1)
33
+ - **feat(song_brain):** `evidence_breakdown` field shows per-source contributions
34
+ - **feat(hook_hunter):** Hooks carry `evidence_sources` (motif_recurrence, track_name, clip_reuse)
35
+ - **feat(hook_hunter):** Section-placement analysis boosts hooks recurring across sections
36
+ - **feat(detectors):** Motif appearing in >60% of sections triggers fatigue signal
37
+
38
+ ### Preview and Doctor (Wave 4)
39
+ - **feat(preview_studio):** Three explicit preview modes: `audible_preview` (M4L+spectrum), `metadata_only_preview`, `analytical_preview`
40
+ - **feat(preview_studio):** `bars` parameter used for audible preview playback duration
41
+ - **feat(preview_studio):** `preview_mode` field in response — no ambiguity about what was measured
42
+ - **feat(runtime):** Capability probe — 6-area runtime detection (Ableton, Remote Script, M4L, numpy, persistence, tier)
43
+
44
+ ### Release Infrastructure (Wave 5)
45
+ - **feat(scripts):** `sync_metadata.py` — single source of truth for version and tool count, CI-checkable
46
+ - **docs:** README Intelligence Layer section with all 12 engines described
47
+ - **docs:** Manual index rewritten with three-layer architecture and 39-domain map
48
+
49
+ ## 1.9.23-wonder-v1.5 — Wonder Mode V1.5: Stuck-Rescue Workflow (April 2026)
50
+
51
+ ### Wonder Mode Redesign (292->293 tools)
52
+ - **feat(wonder_mode):** Diagnosis-first workflow — stuckness detection drives variant generation
53
+ - **feat(wonder_mode):** Honest variant labeling — `analytical_only: true` for non-executable variants
54
+ - **feat(wonder_mode):** Real distinctness enforcement — variants must differ by move, family, or plan shape
55
+ - **feat(wonder_mode):** WonderSession lifecycle — diagnosis -> variants -> preview -> commit/discard
56
+ - **feat(wonder_mode):** `discard_wonder_session` tool — reject all variants, keep creative thread open
57
+ - **feat(preview_studio):** Wonder-aware preview — accepts `wonder_session_id`, refuses analytical variants
58
+ - **feat(preview_studio):** Commit lifecycle hooks — records outcome to continuity and taste
59
+ - **feat(session_continuity):** No more premature turn recording — only commit/reject record turns
60
+ - **feat(skills):** New `livepilot-wonder` skill with trigger conditions and honesty rules
61
+
62
+ ## 1.9.23 — Stage 2: The Magic Layer (April 2026)
63
+
64
+ ### Wonder Mode Rebuild
65
+ - **feat(wonder_mode):** Full engine rebuild — variants now built from real semantic moves matched by keyword+taste scoring, not templates
66
+ - **feat(wonder_mode):** Ranking uses bell-curve novelty centered on user's novelty_band, sacred element penalty, and coherence scoring
67
+ - **feat(wonder_mode):** Taste fit uses full TasteGraph (family preference, dimension alignment, anti-preferences, risk alignment)
68
+ - **feat(wonder_mode):** Each variant carries `targets_snapshot`, `compiled_plan`, and `score_breakdown` with all 4 component scores
69
+ - **breaking(wonder_mode):** Removed `generate_wonder_variants` tool (redundant with `enter_wonder_mode`)
70
+
71
+ ### New Tools (10 new, -1 removed = net +9, 283→292)
72
+ - **feat(preview_studio):** `render_preview_variant` — render a short preview of a variant using Ableton's undo system
73
+ - **feat(hook_hunter):** `detect_hook_neglect` — check if a strong hook is underused across sections
74
+ - **feat(hook_hunter):** `compare_phrase_impact` — compare emotional impact across multiple sections
75
+ - **feat(stuckness_detector):** `start_rescue_workflow` — structured step-by-step rescue plan for a specific stuckness type
76
+ - **feat(wonder_mode):** `rank_wonder_variants` — rank wonder variants by taste + identity + phrase impact
77
+ - **feat(session_continuity):** `open_creative_thread` — open a new creative thread for exploration
78
+ - **feat(session_continuity):** `list_open_creative_threads` — list all open non-stale creative threads
79
+ - **feat(session_continuity):** `explain_preference_vs_identity` — explain taste vs identity tension for a candidate
80
+ - **feat(creative_constraints):** `generate_constrained_variants` — generate triptych variants under active constraints
81
+ - **feat(creative_constraints):** `generate_reference_inspired_variants` — generate variants inspired by distilled reference principles
82
+
83
+ ### Fixes
84
+ - **fix(wonder_mode):** Fixed taste graph access to use session-scoped lifespan context instead of creating fresh stores
85
+ - **fix(session_continuity):** Fixed taste graph access to match preview_studio pattern
86
+
3
87
  ## 1.9.22 — Skill & Command Overhaul (April 2026)
4
88
 
5
89
  ### Skill Updates
package/CONTRIBUTING.md CHANGED
@@ -98,7 +98,7 @@ Prefix with `fix:`, `feat:`, `docs:`, `refactor:`, `test:`, or `chore:`.
98
98
 
99
99
  ## Tool Count Discipline
100
100
 
101
- Currently **236 tools**. If you add or remove a `@mcp.tool()` decorator, update all of these files:
101
+ Currently **293 tools**. If you add or remove a `@mcp.tool()` decorator, update all of these files:
102
102
 
103
103
  - `README.md`
104
104
  - `CLAUDE.md`
package/README.md CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  <p align="center">
19
19
  An agentic production system for Ableton Live 12.<br>
20
- 236 tools. Device atlas. Spectral perception. Technique memory.
20
+ 293 tools. Device atlas. Spectral perception. Technique memory.
21
21
  </p>
22
22
 
23
23
  <br>
@@ -49,8 +49,8 @@
49
49
  │ └───────────────────┼───────────────────┘ │
50
50
  │ ▼ │
51
51
  │ ┌─────────────────┐ │
52
- │ │ 236 MCP Tools │ │
53
- │ │ 31 domains │ │
52
+ │ │ 293 MCP Tools │ │
53
+ │ │ 39 domains │ │
54
54
  │ └────────┬────────┘ │
55
55
  │ │ │
56
56
  │ Remote Script ──┤── TCP 9878 │
@@ -71,7 +71,78 @@ via a Max for Live device.
71
71
  The **memory** gives it history — a searchable library of production decisions
72
72
  that persists across sessions.
73
73
 
74
- All three feed into 236 deterministic tools that execute on Ableton's main thread.
74
+ All three feed into 293 deterministic tools that execute on Ableton's main thread.
75
+
76
+ <br>
77
+
78
+ ---
79
+
80
+ ## The Intelligence Layer
81
+
82
+ Most MCP servers are tool collections — they execute commands. LivePilot is an **agentic production system** — it understands what a song is becoming, diagnoses when a session is stuck, generates real creative options, learns from your decisions, and tracks its own impact.
83
+
84
+ This is the V2 intelligence layer: 12 engines that sit on top of the 293 tools and give the AI musical judgment, not just musical execution.
85
+
86
+ ### SongBrain — What the Song Is
87
+
88
+ SongBrain builds a real-time model of the current session: what the defining idea is (identity core), what elements must not be casually damaged (sacred elements), what each section is trying to do emotionally (section purposes), and where the energy arc is heading. It answers the question every producer asks: *"What is this track?"*
89
+
90
+ It detects when the song's identity is drifting — when recent edits are pulling the track away from what made it work. When identity confidence is high, the system makes bolder suggestions. When it's fragile, it protects what's there.
91
+
92
+ ### Taste Graph — What You Like
93
+
94
+ The Taste Graph learns your production preferences across sessions. Not just "prefers reverb" — it tracks which move families you keep vs. undo (mix moves? arrangement moves?), which devices you gravitate toward, how experimental you want suggestions to be (your novelty band), and which dimensions you actively avoid.
95
+
96
+ Every time you accept or reject a suggestion, the graph updates. Over time, it personalizes which creative options are offered and how they're ranked. Two producers using the same tools get different recommendations.
97
+
98
+ ### Semantic Moves — Musical Actions, Not Parameters
99
+
100
+ A semantic move is a high-level musical intent — "add contrast," "tighten the low end," "build tension toward the chorus" — that compiles into a specific sequence of tool calls. The system has 20 moves across 4 families (mix, arrangement, transition, sound design), each with an executable plan.
101
+
102
+ Moves carry risk levels, target dimensions, and protection thresholds. "Add a filter sweep build" targets energy and tension while protecting clarity. The AI doesn't just know what to do — it knows what it's risking.
103
+
104
+ ### Wonder Mode — Stuck-Rescue Workflow
105
+
106
+ When a session is stuck — too many undos, polishing the same loop, no structural progress — Wonder Mode activates. It's not "surprise me." It's a structured diagnosis-and-rescue workflow:
107
+
108
+ 1. **Diagnose** — Why is the session stuck? Repeated undos? Overpolished loop? Missing contrast? Identity unclear? The stuckness detector analyzes the action history and classifies the problem.
109
+
110
+ 2. **Generate** — Based on the diagnosis, Wonder searches for semantic moves that address the specific problem. It enforces real distinctness — each variant must differ by move family or execution approach. If only one real option exists, it says so honestly instead of relabeling the same idea three times.
111
+
112
+ 3. **Preview** — Each executable variant can be applied, captured, and undone using Ableton's undo system. You hear what each option would actually sound like before committing.
113
+
114
+ 4. **Commit or Reject** — Choose one, and the system records it into taste and session continuity. Reject all, and the creative thread stays open for another attempt. No fake outcomes are recorded.
115
+
116
+ ### Creative Engines
117
+
118
+ Six specialized engines handle different aspects of production intelligence:
119
+
120
+ | Engine | What it does |
121
+ |--------|-------------|
122
+ | **Mix Engine** | Critic-driven mix analysis. Identifies masking, headroom issues, stereo problems. Plans corrective moves with before/after evaluation. |
123
+ | **Sound Design Engine** | Analyzes patches for static timbre, missing modulation, weak transients. Suggests parameter moves and evaluates the result. |
124
+ | **Transition Engine** | Classifies transition types (drop, build, breakdown). Scores transition quality and plans improvements using archetypes. |
125
+ | **Composition Engine** | Analyzes song structure, detects motifs, infers section purposes, scores emotional arcs. Plans arrangement moves. |
126
+ | **Performance Engine** | Safety-constrained suggestions for live performance. Knows which moves are safe during playback and which risk audio dropouts. |
127
+ | **Reference Engine** | Distills principles from reference tracks. Maps those principles to your current session as concrete, actionable moves. |
128
+
129
+ ### Hook Hunter — Finding What Matters
130
+
131
+ The Hook Hunter identifies the most salient musical idea in a session — the element listeners would remember. It ranks candidates by rhythmic distinctiveness, melodic contour, and repetition. Then it tracks whether hooks are being developed, neglected, or undermined by arrangement choices.
132
+
133
+ When the hook is strong but underused, it flags it. When a transition fails to deliver the expected payoff, it diagnoses why.
134
+
135
+ ### Session Continuity — The Story of Your Session
136
+
137
+ Session Continuity tracks what happened, what changed, and what's still unresolved. It maintains creative threads (open questions like "the chorus needs more lift") and records turn resolutions (what you tried, whether you kept it, how it affected identity).
138
+
139
+ When you return to a project, the session story tells the AI: *"Last time, you were working on making the bridge darker. You tried three approaches and kept the filter sweep. The chorus lift thread is still open."*
140
+
141
+ ### Evaluation Loop — Verify Before Claiming Success
142
+
143
+ Every creative engine follows the same discipline: **measure before, act, measure after, compare**. The evaluation system captures session state snapshots, runs the change, captures again, and scores the difference. If the change made things worse — more masking, lost headroom, identity drift — the system flags it before you move on.
144
+
145
+ This closes the gap between "the AI did something" and "the AI did something that actually helped."
75
146
 
76
147
  <br>
77
148
 
@@ -79,7 +150,7 @@ All three feed into 236 deterministic tools that execute on Ableton's main threa
79
150
 
80
151
  ## Tools
81
152
 
82
- 236 tools across 31 domains. Highlights below — [full catalog here](docs/manual/tool-catalog.md).
153
+ 293 tools across 39 domains. Highlights below — [full catalog here](docs/manual/tool-catalog.md).
83
154
 
84
155
  <br>
85
156
 
@@ -99,13 +170,13 @@ All three feed into 236 deterministic tools that execute on Ableton's main threa
99
170
 
100
171
  <br>
101
172
 
102
- ### Perception — 29 tools `[M4L]`
173
+ ### Perception — 30 tools `[M4L]`
103
174
 
104
175
  The M4L Analyzer sits on the master track. UDP 9880 carries spectral data
105
176
  from Max to the server. OSC 9881 sends commands back.
106
177
 
107
178
  > [!TIP]
108
- > All 207 core tools work without the analyzer — it adds 29 more and closes the feedback loop.
179
+ > All 207 core tools work without the analyzer — it adds 30 more and closes the feedback loop.
109
180
 
110
181
  ```
111
182
  SPECTRAL ─────── 8-band frequency decomposition (sub → air)
@@ -322,7 +393,30 @@ read_audio_metadata Format, duration, sample rate, tags
322
393
 
323
394
  <br>
324
395
 
325
- > **[View all 236 tools →](docs/manual/tool-catalog.md)**
396
+ ### Agentic Intelligence 83 tools
397
+
398
+ The V2 intelligence layer. These tools don't just execute commands — they analyze, diagnose, plan, evaluate, and learn.
399
+
400
+ | Domain | # | What it does |
401
+ |--------|:-:|-------------|
402
+ | Agent OS | 8 | session kernel, action ledger, capability state, routing, turn budget |
403
+ | Composition | 9 | section analysis, motif detection, emotional arc, form planning, section transforms |
404
+ | Evaluation | 1 | before/after evaluation with structured scoring |
405
+ | Mix Engine | 6 | critic-driven mix analysis, issue detection, move planning, masking reports |
406
+ | Sound Design | 5 | patch analysis, modulation planning, timbre scoring |
407
+ | Transition Engine | 5 | transition classification, scoring, archetype-based planning |
408
+ | Reference Engine | 5 | reference profiling, principle distillation, gap analysis, move mapping |
409
+ | Translation Engine | 3 | cross-domain translation, issue detection |
410
+ | Performance Engine | 5 | safety-constrained suggestions, safe move lists, scene handoff planning |
411
+ | Song Brain | 4 | identity inference, sacred element detection, drift monitoring, section purposes |
412
+ | Hook Hunter | 9 | hook detection, salience scoring, development strategies, neglect detection, phrase impact |
413
+ | Stuckness Detector | 3 | momentum analysis, rescue classification, structured rescue workflows |
414
+ | Wonder Mode | 3 | diagnosis-driven variant generation, taste-aware ranking, session discard |
415
+ | Session Continuity | 7 | creative threads, turn resolution, taste vs identity ranking, session story |
416
+ | Creative Constraints | 5 | constraint activation, reference-inspired variants, constrained generation |
417
+ | Preview Studio | 5 | variant creation, preview rendering, comparison, commit, discard |
418
+
419
+ > **[View all 293 tools →](docs/manual/tool-catalog.md)**
326
420
 
327
421
  <br>
328
422
 
@@ -330,123 +424,98 @@ read_audio_metadata Format, duration, sample rate, tags
330
424
 
331
425
  ## Install
332
426
 
333
- ### 1. Remote Script
427
+ ### Easiest: Claude Desktop Extension (1 click)
334
428
 
335
- ```bash
336
- npx livepilot --install
337
- ```
429
+ Download [`livepilot.mcpb`](https://github.com/dreamrec/LivePilot/releases/latest) and double-click it.
430
+ Claude Desktop installs everything automatically. Then:
338
431
 
339
- Restart Ableton Preferences → Link, Tempo & MIDI → Control Surface → **LivePilot**
432
+ 1. Open Ableton Live 12
433
+ 2. Preferences → Link, Tempo & MIDI → Control Surface → **LivePilot**
434
+ 3. Start chatting
340
435
 
341
- ### 2. MCP Client
436
+ > [!TIP]
437
+ > The Desktop Extension auto-installs the Remote Script and M4L Analyzer on first launch.
342
438
 
343
- <details open>
344
- <summary><strong>Claude Code</strong></summary>
439
+ ### Quick: One Command Setup
345
440
 
346
441
  ```bash
347
- claude mcp add LivePilot -- npx livepilot
442
+ npx livepilot --setup
348
443
  ```
349
444
 
350
- Plugin (adds skills, slash commands, producer agent):
445
+ This runs the full setup wizard: checks Python, installs the Remote Script, creates the Python environment, copies the M4L Analyzer, and tests the Ableton connection.
446
+
447
+ ### Manual: Step by Step
448
+
449
+ <details>
450
+ <summary><strong>1. Remote Script</strong></summary>
351
451
 
352
452
  ```bash
353
- claude plugin add github:dreamrec/LivePilot/plugin
453
+ npx livepilot --install
354
454
  ```
355
455
 
456
+ Restart Ableton → Preferences → Link, Tempo & MIDI → Control Surface → **LivePilot**
457
+
356
458
  </details>
357
459
 
358
460
  <details>
359
- <summary><strong>Claude Desktop (macOS)</strong></summary>
461
+ <summary><strong>2. MCP Client</strong></summary>
360
462
 
361
- `~/Library/Application Support/Claude/claude_desktop_config.json`:
463
+ **Claude Code:**
464
+ ```bash
465
+ claude mcp add LivePilot -- npx livepilot
466
+ claude plugin add github:dreamrec/LivePilot/plugin
467
+ ```
362
468
 
469
+ **Claude Desktop (macOS)** — `~/Library/Application Support/Claude/claude_desktop_config.json`:
363
470
  ```json
364
471
  {
365
472
  "mcpServers": {
366
- "LivePilot": {
367
- "command": "npx",
368
- "args": ["livepilot"]
369
- }
473
+ "LivePilot": { "command": "npx", "args": ["livepilot"] }
370
474
  }
371
475
  }
372
476
  ```
373
477
 
374
- </details>
375
-
376
- <details>
377
- <summary><strong>Claude Desktop (Windows)</strong></summary>
378
-
478
+ **Claude Desktop (Windows):**
379
479
  ```cmd
380
480
  npm install -g livepilot
381
481
  livepilot --install
382
482
  ```
383
-
384
483
  `%APPDATA%\Claude\claude_desktop_config.json`:
385
-
386
484
  ```json
387
485
  {
388
486
  "mcpServers": {
389
- "LivePilot": {
390
- "command": "livepilot"
391
- }
487
+ "LivePilot": { "command": "livepilot" }
392
488
  }
393
489
  }
394
490
  ```
395
491
 
396
- </details>
397
-
398
- <details>
399
- <summary><strong>Cursor</strong></summary>
400
-
401
- `.cursor/mcp.json`:
402
-
492
+ **Cursor** — `.cursor/mcp.json`:
403
493
  ```json
404
494
  {
405
495
  "mcpServers": {
406
- "LivePilot": {
407
- "command": "npx",
408
- "args": ["livepilot"]
409
- }
496
+ "LivePilot": { "command": "npx", "args": ["livepilot"] }
410
497
  }
411
498
  }
412
499
  ```
413
500
 
414
- </details>
415
-
416
- <details>
417
- <summary><strong>VS Code / Windsurf</strong></summary>
418
-
419
- VS Code — `.vscode/mcp.json`:
420
-
501
+ **VS Code** — `.vscode/mcp.json`:
421
502
  ```json
422
503
  {
423
504
  "servers": {
424
- "LivePilot": {
425
- "command": "npx",
426
- "args": ["livepilot"]
427
- }
428
- }
429
- }
430
- ```
431
-
432
- Windsurf — `~/.codeium/windsurf/mcp_config.json`:
433
-
434
- ```json
435
- {
436
- "mcpServers": {
437
- "LivePilot": {
438
- "command": "npx",
439
- "args": ["livepilot"]
440
- }
505
+ "LivePilot": { "command": "npx", "args": ["livepilot"] }
441
506
  }
442
507
  }
443
508
  ```
444
509
 
445
510
  </details>
446
511
 
447
- ### 3. M4L Analyzer (optional)
512
+ <details>
513
+ <summary><strong>3. M4L Analyzer (optional)</strong></summary>
514
+
515
+ Drag `LivePilot_Analyzer.amxd` onto the master track for real-time spectral analysis.
516
+ The `--setup` wizard and Desktop Extension do this automatically.
448
517
 
449
- Drag `LivePilot_Analyzer.amxd` onto the master track.
518
+ </details>
450
519
 
451
520
  Unlocks 29 additional tools: spectral analysis, key detection,
452
521
  sample manipulation, deep device introspection, plugin parameter mapping.
package/bin/livepilot.js CHANGED
@@ -485,6 +485,109 @@ async function setupFlucoma() {
485
485
  }
486
486
  }
487
487
 
488
+ // ---------------------------------------------------------------------------
489
+ // Setup wizard — unified installer
490
+ // ---------------------------------------------------------------------------
491
+
492
+ async function setup() {
493
+ console.log("LivePilot Setup Wizard v%s", PKG.version);
494
+ console.log("═".repeat(50));
495
+ console.log("");
496
+
497
+ let ok = true;
498
+
499
+ // 1. Python
500
+ console.log("Step 1/5: Checking Python...");
501
+ const pyInfo = findPython();
502
+ if (pyInfo) {
503
+ console.log(" ✓ %s", pyInfo.version);
504
+ } else {
505
+ console.log(" ✗ Python >= 3.9 not found");
506
+ console.log(" Install: brew install python@3.12 (macOS) or python.org (Windows)");
507
+ ok = false;
508
+ }
509
+
510
+ // 2. Install Remote Script
511
+ console.log("");
512
+ console.log("Step 2/5: Installing Remote Script...");
513
+ try {
514
+ const { install } = require(path.join(ROOT, "installer", "install.js"));
515
+ install();
516
+ console.log(" ✓ Remote Script installed");
517
+ } catch (err) {
518
+ console.log(" ✗ Failed: %s", err.message);
519
+ ok = false;
520
+ }
521
+
522
+ // 3. Bootstrap Python venv
523
+ console.log("");
524
+ console.log("Step 3/5: Setting up Python environment...");
525
+ if (pyInfo) {
526
+ try {
527
+ ensureVenv(pyInfo.cmd, pyInfo.prefixArgs);
528
+ console.log(" ✓ Virtual environment ready");
529
+ } catch (err) {
530
+ console.log(" ✗ Failed: %s", err.message);
531
+ ok = false;
532
+ }
533
+ } else {
534
+ console.log(" ⊘ Skipped (no Python)");
535
+ }
536
+
537
+ // 4. Copy M4L Analyzer to User Library
538
+ console.log("");
539
+ console.log("Step 4/5: Installing M4L Analyzer...");
540
+ const analyzerSrc = path.join(ROOT, "m4l_device", "LivePilot_Analyzer.amxd");
541
+ if (fs.existsSync(analyzerSrc)) {
542
+ const home = require("os").homedir();
543
+ let dest;
544
+ if (process.platform === "darwin") {
545
+ dest = path.join(home, "Music", "Ableton", "User Library", "Presets",
546
+ "Audio Effects", "Max Audio Effect");
547
+ } else {
548
+ dest = path.join(home, "Documents", "Ableton", "User Library", "Presets",
549
+ "Audio Effects", "Max Audio Effect");
550
+ }
551
+ try {
552
+ fs.mkdirSync(dest, { recursive: true });
553
+ fs.copyFileSync(analyzerSrc, path.join(dest, "LivePilot_Analyzer.amxd"));
554
+ console.log(" ✓ Analyzer copied to %s", dest);
555
+ } catch (err) {
556
+ console.log(" ✗ Failed: %s", err.message);
557
+ }
558
+ } else {
559
+ console.log(" ⊘ Analyzer not found in package (optional)");
560
+ }
561
+
562
+ // 5. Connection test
563
+ console.log("");
564
+ console.log("Step 5/5: Testing Ableton connection...");
565
+ const reachable = await checkStatus();
566
+ if (reachable) {
567
+ console.log(" ✓ Ableton Live is running and reachable");
568
+ } else {
569
+ console.log(" ⊘ Ableton not running (start it and select LivePilot as Control Surface)");
570
+ }
571
+
572
+ // Summary
573
+ console.log("");
574
+ console.log("═".repeat(50));
575
+ if (ok) {
576
+ console.log("✓ Setup complete! Next steps:");
577
+ console.log("");
578
+ console.log(" 1. Open Ableton Live 12");
579
+ console.log(" 2. Go to Preferences → Link, Tempo & MIDI");
580
+ console.log(" 3. Set Control Surface to 'LivePilot'");
581
+ console.log(" 4. Start making music with AI!");
582
+ console.log("");
583
+ console.log(" Claude Code: claude mcp add LivePilot -- npx livepilot");
584
+ console.log(" Claude Desktop: Already configured if using Desktop Extension");
585
+ } else {
586
+ console.log("⚠ Setup completed with issues. Run 'npx livepilot --doctor' for details.");
587
+ }
588
+ }
589
+
590
+
488
591
  // ---------------------------------------------------------------------------
489
592
  // Main
490
593
  // ---------------------------------------------------------------------------
@@ -507,6 +610,7 @@ async function main() {
507
610
  console.log("");
508
611
  console.log("Commands:");
509
612
  console.log(" (none) Start the MCP server");
613
+ console.log(" --setup Full setup wizard (install + configure + test)");
510
614
  console.log(" --install Install Remote Script into Ableton Live");
511
615
  console.log(" --uninstall Remove Remote Script from Ableton Live");
512
616
  console.log(" --status Check if Ableton Live is reachable");
@@ -553,6 +657,37 @@ async function main() {
553
657
  process.exit(passed ? 0 : 1);
554
658
  }
555
659
 
660
+ // --setup (unified installer wizard)
661
+ if (flag === "--setup") {
662
+ await setup();
663
+ return;
664
+ }
665
+
666
+ // Auto-install Remote Script when launched from Desktop Extension
667
+ if (process.env.LIVEPILOT_AUTO_INSTALL === "true") {
668
+ try {
669
+ const { install } = require(path.join(ROOT, "installer", "install.js"));
670
+ const { findAbletonPaths } = require(path.join(ROOT, "installer", "paths.js"));
671
+ const candidates = findAbletonPaths();
672
+ if (candidates.length > 0) {
673
+ // Check if already installed
674
+ const target = path.join(candidates[0].path, "LivePilot");
675
+ if (!fs.existsSync(target)) {
676
+ console.error("LivePilot: auto-installing Remote Script to %s", candidates[0].path);
677
+ install();
678
+ console.error("LivePilot: Remote Script installed. Select 'LivePilot' in Ableton > Preferences > Link, Tempo & MIDI > Control Surface.");
679
+ }
680
+ }
681
+ } catch (err) {
682
+ console.error("LivePilot: auto-install skipped (%s)", err.message);
683
+ }
684
+ }
685
+
686
+ // Custom TCP port from Desktop Extension config
687
+ if (process.env.LIVEPILOT_TCP_PORT && process.env.LIVEPILOT_TCP_PORT !== "9878") {
688
+ process.env.LIVE_MCP_PORT = process.env.LIVEPILOT_TCP_PORT;
689
+ }
690
+
556
691
  // Default: start MCP server
557
692
  const pyInfo = findPython();
558
693
  if (!pyInfo) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "livepilot",
3
- "version": "1.9.22",
4
- "description": "Agentic production system for Ableton Live 12 — 237 tools, 32 domains, device atlas, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
3
+ "version": "1.9.24",
4
+ "description": "Agentic production system for Ableton Live 12 — 293 tools, 39 domains, device atlas, spectral perception, technique memory, neo-Riemannian harmony, Euclidean rhythm, species counterpoint, MIDI I/O",
5
5
  "author": {
6
6
  "name": "Pilot Studio"
7
7
  }