create-merlin-brain 3.10.0 → 3.12.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.
Files changed (151) hide show
  1. package/bin/install.cjs +146 -22
  2. package/bin/runtime-adapters.cjs +396 -0
  3. package/dist/server/cost/tracker.d.ts +38 -2
  4. package/dist/server/cost/tracker.d.ts.map +1 -1
  5. package/dist/server/cost/tracker.js +87 -15
  6. package/dist/server/cost/tracker.js.map +1 -1
  7. package/dist/server/server.d.ts.map +1 -1
  8. package/dist/server/server.js +74 -30
  9. package/dist/server/server.js.map +1 -1
  10. package/dist/server/tools/adaptive.js +1 -1
  11. package/dist/server/tools/adaptive.js.map +1 -1
  12. package/dist/server/tools/agents-index.js +3 -3
  13. package/dist/server/tools/agents-index.js.map +1 -1
  14. package/dist/server/tools/agents.js +5 -5
  15. package/dist/server/tools/agents.js.map +1 -1
  16. package/dist/server/tools/behaviors.js +4 -4
  17. package/dist/server/tools/behaviors.js.map +1 -1
  18. package/dist/server/tools/context.js +7 -7
  19. package/dist/server/tools/context.js.map +1 -1
  20. package/dist/server/tools/cost.d.ts +3 -1
  21. package/dist/server/tools/cost.d.ts.map +1 -1
  22. package/dist/server/tools/cost.js +66 -13
  23. package/dist/server/tools/cost.js.map +1 -1
  24. package/dist/server/tools/discoveries.js +6 -6
  25. package/dist/server/tools/discoveries.js.map +1 -1
  26. package/dist/server/tools/index.d.ts +4 -0
  27. package/dist/server/tools/index.d.ts.map +1 -1
  28. package/dist/server/tools/index.js +4 -0
  29. package/dist/server/tools/index.js.map +1 -1
  30. package/dist/server/tools/learning.d.ts +12 -0
  31. package/dist/server/tools/learning.d.ts.map +1 -0
  32. package/dist/server/tools/learning.js +269 -0
  33. package/dist/server/tools/learning.js.map +1 -0
  34. package/dist/server/tools/project.js +7 -7
  35. package/dist/server/tools/project.js.map +1 -1
  36. package/dist/server/tools/promote.d.ts +11 -0
  37. package/dist/server/tools/promote.d.ts.map +1 -0
  38. package/dist/server/tools/promote.js +315 -0
  39. package/dist/server/tools/promote.js.map +1 -0
  40. package/dist/server/tools/route.d.ts.map +1 -1
  41. package/dist/server/tools/route.js +65 -24
  42. package/dist/server/tools/route.js.map +1 -1
  43. package/dist/server/tools/session-restore.d.ts +18 -0
  44. package/dist/server/tools/session-restore.d.ts.map +1 -0
  45. package/dist/server/tools/session-restore.js +154 -0
  46. package/dist/server/tools/session-restore.js.map +1 -0
  47. package/dist/server/tools/session-search.d.ts +16 -0
  48. package/dist/server/tools/session-search.d.ts.map +1 -0
  49. package/dist/server/tools/session-search.js +240 -0
  50. package/dist/server/tools/session-search.js.map +1 -0
  51. package/dist/server/tools/sights-index.js +2 -2
  52. package/dist/server/tools/sights-index.js.map +1 -1
  53. package/dist/server/tools/smart-route.d.ts.map +1 -1
  54. package/dist/server/tools/smart-route.js +4 -5
  55. package/dist/server/tools/smart-route.js.map +1 -1
  56. package/dist/server/tools/verification.js +1 -1
  57. package/dist/server/tools/verification.js.map +1 -1
  58. package/files/agents/code-organization-supervisor.md +9 -0
  59. package/files/agents/context-guardian.md +9 -0
  60. package/files/agents/docs-keeper.md +11 -1
  61. package/files/agents/dry-refactor.md +12 -1
  62. package/files/agents/elite-code-refactorer.md +10 -0
  63. package/files/agents/hardening-guard.md +13 -1
  64. package/files/agents/implementation-dev.md +12 -1
  65. package/files/agents/merlin-access-control-reviewer.md +248 -0
  66. package/files/agents/merlin-api-designer.md +9 -0
  67. package/files/agents/merlin-codebase-mapper.md +9 -1
  68. package/files/agents/merlin-debugger.md +10 -0
  69. package/files/agents/merlin-dependency-auditor.md +216 -0
  70. package/files/agents/merlin-executor.md +12 -1
  71. package/files/agents/merlin-frontend.md +9 -0
  72. package/files/agents/merlin-input-validator.md +247 -0
  73. package/files/agents/merlin-integration-checker.md +9 -1
  74. package/files/agents/merlin-migrator.md +9 -0
  75. package/files/agents/merlin-milestone-auditor.md +8 -0
  76. package/files/agents/merlin-performance.md +8 -0
  77. package/files/agents/merlin-planner.md +10 -0
  78. package/files/agents/merlin-researcher.md +10 -0
  79. package/files/agents/merlin-reviewer.md +42 -7
  80. package/files/agents/merlin-sast-reviewer.md +182 -0
  81. package/files/agents/merlin-secret-scanner.md +203 -0
  82. package/files/agents/merlin-security.md +9 -0
  83. package/files/agents/merlin-verifier.md +9 -0
  84. package/files/agents/merlin-work-verifier.md +9 -0
  85. package/files/agents/merlin.md +10 -0
  86. package/files/agents/ops-railway.md +11 -1
  87. package/files/agents/orchestrator-retrofit.md +9 -1
  88. package/files/agents/product-spec.md +11 -1
  89. package/files/agents/remotion.md +8 -0
  90. package/files/agents/system-architect.md +11 -1
  91. package/files/agents/tests-qa.md +12 -1
  92. package/files/commands/merlin/course-correct.md +219 -0
  93. package/files/commands/merlin/debug.md +2 -2
  94. package/files/commands/merlin/execute-phase.md +96 -199
  95. package/files/commands/merlin/execute-plan.md +118 -182
  96. package/files/commands/merlin/health.md +385 -0
  97. package/files/commands/merlin/loop-recipes.md +93 -36
  98. package/files/commands/merlin/map-codebase.md +4 -4
  99. package/files/commands/merlin/next.md +240 -0
  100. package/files/commands/merlin/optimize-prompts.md +158 -0
  101. package/files/commands/merlin/plan-phase.md +1 -1
  102. package/files/commands/merlin/profiles.md +215 -0
  103. package/files/commands/merlin/promote.md +176 -0
  104. package/files/commands/merlin/quick.md +229 -0
  105. package/files/commands/merlin/readiness-gate.md +208 -0
  106. package/files/commands/merlin/research-phase.md +2 -2
  107. package/files/commands/merlin/research-project.md +4 -4
  108. package/files/commands/merlin/resume-work.md +27 -1
  109. package/files/commands/merlin/route.md +43 -1
  110. package/files/commands/merlin/sandbox.md +359 -0
  111. package/files/commands/merlin/usage.md +55 -0
  112. package/files/commands/merlin/verify-work.md +1 -1
  113. package/files/docker/Dockerfile.merlin +20 -0
  114. package/files/docker/docker-compose.merlin.yml +23 -0
  115. package/files/hook-templates/auto-commit.sh +64 -0
  116. package/files/hook-templates/auto-format.sh +95 -0
  117. package/files/hook-templates/auto-test.sh +117 -0
  118. package/files/hook-templates/branch-protection.sh +72 -0
  119. package/files/hook-templates/changelog-reminder.sh +76 -0
  120. package/files/hook-templates/complexity-check.sh +112 -0
  121. package/files/hook-templates/import-audit.sh +83 -0
  122. package/files/hook-templates/license-header.sh +84 -0
  123. package/files/hook-templates/pr-description.sh +100 -0
  124. package/files/hook-templates/todo-tracker.sh +80 -0
  125. package/files/hooks/check-file-size.sh +17 -4
  126. package/files/hooks/config-change.sh +44 -16
  127. package/files/hooks/instructions-loaded.sh +22 -5
  128. package/files/hooks/notify-desktop.sh +157 -0
  129. package/files/hooks/notify-webhook.sh +141 -0
  130. package/files/hooks/pre-edit-sights-check.sh +76 -9
  131. package/files/hooks/security-scanner.sh +153 -0
  132. package/files/hooks/session-end-memory-sync.sh +97 -0
  133. package/files/hooks/session-end.sh +274 -1
  134. package/files/hooks/session-start.sh +19 -6
  135. package/files/hooks/smart-approve.sh +270 -0
  136. package/files/hooks/teammate-idle-verify.sh +87 -12
  137. package/files/hooks/worktree-create.sh +20 -3
  138. package/files/hooks/worktree-remove.sh +21 -3
  139. package/files/merlin/references/plan-format.md +37 -9
  140. package/files/merlin/sandbox.json +9 -0
  141. package/files/merlin/security.json +11 -0
  142. package/files/merlin/templates/ci/docs-update.yml +81 -0
  143. package/files/merlin/templates/ci/pr-review.yml +50 -0
  144. package/files/merlin/templates/ci/security-audit.yml +74 -0
  145. package/files/merlin/templates/config.json +9 -1
  146. package/files/rules/api-rules.md +30 -0
  147. package/files/rules/frontend-rules.md +25 -0
  148. package/files/rules/hooks-rules.md +36 -0
  149. package/files/rules/mcp-rules.md +30 -0
  150. package/files/rules/worker-rules.md +29 -0
  151. package/package.json +1 -1
@@ -0,0 +1,315 @@
1
+ /**
2
+ * Behavior → Skill Promotion
3
+ * MCP tool for promoting high-confidence learned behaviors into reusable skills/agents.
4
+ * Behaviors at confidence >= 0.85 are flagged as promotion candidates.
5
+ *
6
+ * Clustering: behaviors with overlapping trigger keywords are grouped into
7
+ * a single skill with multiple actions, keeping the agent catalog focused.
8
+ */
9
+ import { z } from 'zod';
10
+ /** Promotion confidence threshold — behaviors above this are ready */
11
+ const PROMOTION_THRESHOLD = 0.85;
12
+ // ── Clustering helpers ───────────────────────────────────────────────────────
13
+ /**
14
+ * Extract meaningful keywords from pattern text.
15
+ * Strips stop words and short tokens.
16
+ */
17
+ function extractKeywords(text) {
18
+ const STOP_WORDS = new Set([
19
+ 'the', 'a', 'an', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
20
+ 'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'should',
21
+ 'can', 'could', 'may', 'might', 'must', 'shall', 'to', 'of', 'in',
22
+ 'on', 'at', 'by', 'for', 'with', 'about', 'and', 'or', 'but', 'not',
23
+ 'this', 'that', 'these', 'those', 'it', 'its', 'user', 'always',
24
+ 'when', 'after', 'before', 'if', 'then', 'any', 'all', 'new',
25
+ ]);
26
+ return text
27
+ .toLowerCase()
28
+ .replace(/[^a-z0-9\s\/\-_]/g, ' ')
29
+ .split(/\s+/)
30
+ .filter(w => w.length > 2 && !STOP_WORDS.has(w));
31
+ }
32
+ /**
33
+ * Compute Jaccard similarity between two keyword sets.
34
+ * Returns 0–1 where 1 = identical.
35
+ */
36
+ function jaccardSimilarity(a, b) {
37
+ const setA = new Set(a);
38
+ const setB = new Set(b);
39
+ const intersection = [...setA].filter(w => setB.has(w));
40
+ const union = new Set([...setA, ...setB]);
41
+ return union.size === 0 ? 0 : intersection.length / union.size;
42
+ }
43
+ /**
44
+ * Cluster behaviors by keyword overlap.
45
+ * Threshold of 0.3 similarity puts behaviors into the same cluster.
46
+ * Single-item clusters remain as standalone skills.
47
+ */
48
+ function clusterBehaviors(behaviors) {
49
+ const SIMILARITY_THRESHOLD = 0.3;
50
+ const keywords = behaviors.map(b => extractKeywords(`${b.pattern} ${b.action} ${b.context ?? ''}`));
51
+ const assigned = new Set();
52
+ const clusters = [];
53
+ for (let i = 0; i < behaviors.length; i++) {
54
+ if (assigned.has(i))
55
+ continue;
56
+ const cluster = {
57
+ behaviors: [behaviors[i]],
58
+ sharedKeywords: keywords[i],
59
+ };
60
+ assigned.add(i);
61
+ for (let j = i + 1; j < behaviors.length; j++) {
62
+ if (assigned.has(j))
63
+ continue;
64
+ const sim = jaccardSimilarity(keywords[i], keywords[j]);
65
+ if (sim >= SIMILARITY_THRESHOLD) {
66
+ cluster.behaviors.push(behaviors[j]);
67
+ // Intersect shared keywords to keep only truly common terms
68
+ const setJ = new Set(keywords[j]);
69
+ cluster.sharedKeywords = cluster.sharedKeywords.filter(w => setJ.has(w));
70
+ assigned.add(j);
71
+ }
72
+ }
73
+ clusters.push(cluster);
74
+ }
75
+ return clusters;
76
+ }
77
+ // ── Skill draft generation ───────────────────────────────────────────────────
78
+ /**
79
+ * Derive a PascalCase skill name from shared keywords.
80
+ */
81
+ function deriveSkillName(cluster) {
82
+ const topWords = cluster.sharedKeywords.slice(0, 3);
83
+ if (topWords.length === 0) {
84
+ // Fallback: use first few words of the primary pattern
85
+ const fallback = extractKeywords(cluster.behaviors[0].pattern).slice(0, 2);
86
+ return fallback.map(w => w.charAt(0).toUpperCase() + w.slice(1)).join('') || 'LearnedSkill';
87
+ }
88
+ return topWords.map(w => w.charAt(0).toUpperCase() + w.slice(1)).join('');
89
+ }
90
+ /**
91
+ * Determine trigger conditions from cluster behavior patterns.
92
+ */
93
+ function deriveTriggers(cluster) {
94
+ if (cluster.behaviors.length === 1) {
95
+ return cluster.behaviors[0].pattern;
96
+ }
97
+ const triggers = cluster.behaviors.map(b => `- ${b.pattern}`).join('\n');
98
+ return `Any of the following:\n${triggers}`;
99
+ }
100
+ /**
101
+ * Determine the context scope for the skill.
102
+ */
103
+ function deriveContext(cluster) {
104
+ const contexts = cluster.behaviors
105
+ .map(b => b.context)
106
+ .filter((c) => Boolean(c));
107
+ if (contexts.length === 0)
108
+ return 'General development tasks';
109
+ if (contexts.length === 1)
110
+ return contexts[0];
111
+ return contexts.join('; ');
112
+ }
113
+ /**
114
+ * Generate a SKILL.md draft from a behavior cluster.
115
+ */
116
+ function generateSkillDraft(cluster) {
117
+ const name = deriveSkillName(cluster);
118
+ const avgConfidence = cluster.behaviors.reduce((s, b) => s + b.confidence, 0) / cluster.behaviors.length;
119
+ const totalApplications = cluster.behaviors.reduce((s, b) => s + b.timesApplied, 0);
120
+ const behaviorIds = cluster.behaviors.map(b => b.id).join(', ');
121
+ const actions = cluster.behaviors.length === 1
122
+ ? cluster.behaviors[0].action
123
+ : cluster.behaviors.map((b, i) => `${i + 1}. ${b.action}`).join('\n');
124
+ const exampleUsage = cluster.behaviors[0].pattern;
125
+ return `---
126
+ name: ${name}
127
+ type: skill
128
+ promoted-from-behaviors: [${behaviorIds}]
129
+ avg-confidence: ${avgConfidence.toFixed(2)}
130
+ total-applications: ${totalApplications}
131
+ created: ${new Date().toISOString().slice(0, 10)}
132
+ ---
133
+
134
+ # ${name}
135
+
136
+ ## Description
137
+ A reusable skill promoted from ${cluster.behaviors.length} learned behavior pattern${cluster.behaviors.length > 1 ? 's' : ''} that proved effective (avg confidence: ${(avgConfidence * 100).toFixed(0)}%).
138
+
139
+ ## Trigger Conditions
140
+ ${deriveTriggers(cluster)}
141
+
142
+ ## Actions
143
+ ${actions}
144
+
145
+ ## Context / Scope
146
+ ${deriveContext(cluster)}
147
+
148
+ ## Example Usage
149
+ > "${exampleUsage}"
150
+ ${cluster.behaviors.length > 1 ? '\n## Source Behaviors\n' + cluster.behaviors.map(b => `- **${b.pattern}** → ${b.action} _(confidence: ${b.confidence})_`).join('\n') : ''}
151
+
152
+ ## Notes
153
+ - Promoted from learned behaviors — edit to refine trigger conditions or actions.
154
+ - Re-save to the agent catalog via merlin_promote_behavior if you make changes.
155
+ `;
156
+ }
157
+ // ── Tool registration ────────────────────────────────────────────────────────
158
+ export function registerPromoteTools(ctx) {
159
+ const { server, client, resolveRepoId } = ctx;
160
+ // ── DEFERRED tool: loaded on-demand for skill promotion workflow ──────────
161
+ // Tool: merlin_promote_behavior
162
+ server.tool('merlin_promote_behavior', 'Promote a learned behavior into a reusable skill or agent. Use when a behavior pattern has proven effective (confidence >= 0.85) and should become a permanent tool. Generates SKILL.md from behavior data. Accepts a behavior ID or a pattern keyword to find matching candidates. Related behaviors are automatically clustered into a single skill. Returns the draft for user review.', {
163
+ behaviorId: z.string().optional().describe('ID of the specific behavior to promote'),
164
+ patternKeyword: z.string().optional().describe('Keyword to search for in behavior patterns (if no ID)'),
165
+ approved: z.boolean().optional().describe('Set true to finalize and save the skill draft (after reviewing)'),
166
+ skillDraft: z.string().optional().describe('Edited skill draft to save (used with approved=true)'),
167
+ repoUrl: z.string().optional().describe('GitHub URL of the repository'),
168
+ }, async ({ behaviorId, patternKeyword, approved, skillDraft, repoUrl }) => {
169
+ try {
170
+ const repoId = await resolveRepoId(repoUrl);
171
+ if (!repoId) {
172
+ return {
173
+ content: [{ type: 'text', text: 'Could not find repository. Select a repo first.' }],
174
+ isError: true,
175
+ };
176
+ }
177
+ // ── Approval path: save an already-reviewed draft ──────────────────
178
+ if (approved && skillDraft) {
179
+ // Extract skill name from frontmatter for a stable filename
180
+ const nameMatch = skillDraft.match(/^name:\s*(.+)$/m);
181
+ const skillName = nameMatch ? nameMatch[1].trim() : `promoted-skill-${Date.now()}`;
182
+ const fileName = `${skillName.toLowerCase().replace(/[^a-z0-9]+/g, '-')}.md`;
183
+ // Extract description from the draft body
184
+ const descSection = skillDraft.split('## Description\n')[1];
185
+ const description = descSection
186
+ ? descSection.split('\n\n')[0]?.trim() ?? skillName
187
+ : skillName;
188
+ // Persist skill via Sights discovery endpoint.
189
+ // We encode the full SKILL.md as the "summary" and tag the query so it's
190
+ // retrievable later with merlin_get_context("skill: <name>").
191
+ await client.saveDiscovery(repoId, {
192
+ query: `skill: ${skillName}`,
193
+ summary: skillDraft,
194
+ patterns: [`promoted-skill`, `skill:${skillName}`, fileName],
195
+ relatedTopics: ['skills', 'promoted-behaviors', 'agent-catalog'],
196
+ agentId: 'merlin-promote',
197
+ });
198
+ let response = `# Skill Saved: ${skillName}\n\n`;
199
+ response += `${description}\n\n`;
200
+ response += `**Catalog file:** ${fileName}\n`;
201
+ response += `**Retrievable via:** merlin_get_context("skill: ${skillName}")\n`;
202
+ response += `\nThe skill is now part of this project's Sights index.`;
203
+ return { content: [{ type: 'text', text: response }] };
204
+ }
205
+ // ── Discovery path: find and draft the skill ───────────────────────
206
+ const allResult = await client.getBehaviors(repoId, { minConfidence: PROMOTION_THRESHOLD });
207
+ const candidates = allResult.behaviors;
208
+ if (candidates.length === 0) {
209
+ return {
210
+ content: [{
211
+ type: 'text',
212
+ text: `No behaviors have reached the promotion threshold (confidence >= ${PROMOTION_THRESHOLD}) yet.\n\nKeep applying behaviors — confidence grows by +0.05 per successful application.`,
213
+ }],
214
+ };
215
+ }
216
+ // Filter to the requested behavior or keyword
217
+ let selected = candidates;
218
+ if (behaviorId) {
219
+ selected = candidates.filter(b => b.id === behaviorId);
220
+ if (selected.length === 0) {
221
+ return {
222
+ content: [{ type: 'text', text: `Behavior "${behaviorId}" not found or has not reached confidence >= ${PROMOTION_THRESHOLD}.` }],
223
+ isError: true,
224
+ };
225
+ }
226
+ }
227
+ else if (patternKeyword) {
228
+ const kw = patternKeyword.toLowerCase();
229
+ selected = candidates.filter(b => b.pattern.toLowerCase().includes(kw) ||
230
+ b.action.toLowerCase().includes(kw) ||
231
+ (b.context ?? '').toLowerCase().includes(kw));
232
+ if (selected.length === 0) {
233
+ return {
234
+ content: [{ type: 'text', text: `No promotion-ready behaviors matched keyword "${patternKeyword}".` }],
235
+ };
236
+ }
237
+ }
238
+ // Cluster and generate drafts
239
+ const clusters = clusterBehaviors(selected);
240
+ const drafts = clusters.map(generateSkillDraft);
241
+ let response = `# Skill Promotion Draft${drafts.length > 1 ? 's' : ''}\n\n`;
242
+ response += `Found **${selected.length}** promotion-ready behavior${selected.length > 1 ? 's' : ''} clustered into **${clusters.length}** skill${clusters.length > 1 ? 's' : ''}.\n\n`;
243
+ response += `---\n\n`;
244
+ drafts.forEach((draft, i) => {
245
+ const cluster = clusters[i];
246
+ response += `## Draft ${i + 1}${drafts.length > 1 ? ` of ${drafts.length}` : ''}\n`;
247
+ if (cluster.behaviors.length > 1) {
248
+ response += `_Clusters ${cluster.behaviors.length} related behaviors._\n`;
249
+ }
250
+ response += `\n\`\`\`markdown\n${draft}\n\`\`\`\n\n`;
251
+ });
252
+ response += `---\n`;
253
+ response += `**To save:** Call merlin_promote_behavior again with:\n`;
254
+ response += `- \`approved: true\`\n`;
255
+ response += `- \`skillDraft\`: the markdown above (edit first if needed)\n`;
256
+ return { content: [{ type: 'text', text: response }] };
257
+ }
258
+ catch (error) {
259
+ return {
260
+ content: [{ type: 'text', text: `Error in promote_behavior: ${error instanceof Error ? error.message : 'Unknown'}` }],
261
+ isError: true,
262
+ };
263
+ }
264
+ });
265
+ // ── DEFERRED tool: list all promotion candidates ──────────────────────────
266
+ // Tool: merlin_list_promotion_candidates
267
+ server.tool('merlin_list_promotion_candidates', 'List all learned behaviors that have reached the promotion threshold (confidence >= 0.85) and are ready to become permanent skills. Shows behavior ID, pattern, confidence, and application count. Use before running /merlin:promote to see what is available.', {
268
+ repoUrl: z.string().optional().describe('GitHub URL of the repository'),
269
+ }, async ({ repoUrl }) => {
270
+ try {
271
+ const repoId = await resolveRepoId(repoUrl);
272
+ if (!repoId) {
273
+ return {
274
+ content: [{ type: 'text', text: 'Could not find repository. Select a repo first.' }],
275
+ isError: true,
276
+ };
277
+ }
278
+ const result = await client.getBehaviors(repoId, { minConfidence: PROMOTION_THRESHOLD });
279
+ const candidates = result.behaviors;
280
+ if (candidates.length === 0) {
281
+ return {
282
+ content: [{
283
+ type: 'text',
284
+ text: `No behaviors have reached the promotion threshold yet (confidence >= ${PROMOTION_THRESHOLD}).\n\nCurrent highest-confidence behaviors:\n_Run merlin_get_behaviors to see all patterns._`,
285
+ }],
286
+ };
287
+ }
288
+ let response = `# Promotion Candidates\n\n`;
289
+ response += `_${candidates.length} behavior${candidates.length > 1 ? 's' : ''} ready for promotion (confidence >= ${PROMOTION_THRESHOLD})_\n\n`;
290
+ candidates.forEach((b, i) => {
291
+ response += `### ${i + 1}. ${b.pattern}\n`;
292
+ response += `**ID:** \`${b.id}\`\n`;
293
+ response += `**Action:** ${b.action}\n`;
294
+ if (b.context)
295
+ response += `**Context:** ${b.context}\n`;
296
+ response += `**Confidence:** ${b.confidence} | **Applied:** ${b.timesApplied}x | **Corrected:** ${b.timesCorrected}x\n\n`;
297
+ });
298
+ // Show clustering preview
299
+ const clusters = clusterBehaviors(candidates);
300
+ if (clusters.length < candidates.length) {
301
+ response += `---\n`;
302
+ response += `_These ${candidates.length} behaviors will be clustered into ${clusters.length} skill${clusters.length > 1 ? 's' : ''} on promotion._\n`;
303
+ }
304
+ response += `\nRun \`/merlin:promote\` or call \`merlin_promote_behavior\` to generate skill drafts.`;
305
+ return { content: [{ type: 'text', text: response }] };
306
+ }
307
+ catch (error) {
308
+ return {
309
+ content: [{ type: 'text', text: `Error listing candidates: ${error instanceof Error ? error.message : 'Unknown'}` }],
310
+ isError: true,
311
+ };
312
+ }
313
+ });
314
+ }
315
+ //# sourceMappingURL=promote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promote.js","sourceRoot":"","sources":["../../../src/server/tools/promote.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/server/tools/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA2M9C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,QAgRlD"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/server/tools/route.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAgP9C,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,QAuRlD"}
@@ -21,26 +21,53 @@ import { homedir } from 'os';
21
21
  import { classifyTask } from '../cost/classifier.js';
22
22
  import { recordRouting } from '../cost/tracker.js';
23
23
  /**
24
- * Read the effort field from an agent's .md frontmatter.
25
- * Returns 'medium' as the safe default if not found or unreadable.
24
+ * Parse the YAML frontmatter block from an agent .md file.
25
+ * Returns the raw frontmatter string or null if not present.
26
26
  */
27
- function readAgentEffort(agentPath) {
27
+ function parseFrontmatter(agentPath) {
28
28
  try {
29
29
  const content = readFileSync(agentPath, 'utf-8');
30
- // Extract YAML frontmatter between --- markers
31
30
  const match = content.match(/^---\n([\s\S]*?)\n---/);
32
- if (!match)
33
- return 'medium';
34
- const frontmatter = match[1];
35
- const effortMatch = frontmatter.match(/^effort:\s*(high|medium|low)\s*$/m);
36
- if (!effortMatch)
37
- return 'medium';
38
- return effortMatch[1];
31
+ return match ? match[1] : null;
39
32
  }
40
33
  catch {
41
- return 'medium';
34
+ return null;
42
35
  }
43
36
  }
37
+ /**
38
+ * Read the effort field from an agent's .md frontmatter.
39
+ * Returns 'medium' as the safe default if not found or unreadable.
40
+ */
41
+ function readAgentEffort(agentPath) {
42
+ const frontmatter = parseFrontmatter(agentPath);
43
+ if (!frontmatter)
44
+ return 'medium';
45
+ const match = frontmatter.match(/^effort:\s*(high|medium|low)\s*$/m);
46
+ if (!match)
47
+ return 'medium';
48
+ return match[1];
49
+ }
50
+ /**
51
+ * Read the isolation field from an agent's .md frontmatter.
52
+ * Returns 'worktree' if isolation: worktree is set, otherwise null.
53
+ */
54
+ function readAgentIsolation(agentPath) {
55
+ const frontmatter = parseFrontmatter(agentPath);
56
+ if (!frontmatter)
57
+ return null;
58
+ const match = frontmatter.match(/^isolation:\s*(worktree)\s*$/m);
59
+ return match ? match[1] : null;
60
+ }
61
+ /**
62
+ * Read the background field from an agent's .md frontmatter.
63
+ * Returns true if background: true is set.
64
+ */
65
+ function readAgentBackground(agentPath) {
66
+ const frontmatter = parseFrontmatter(agentPath);
67
+ if (!frontmatter)
68
+ return false;
69
+ return /^background:\s*true\s*$/m.test(frontmatter);
70
+ }
44
71
  /**
45
72
  * Build the task prompt prefix based on effort level.
46
73
  * - high: prepend ultrathink for deep reasoning
@@ -83,7 +110,7 @@ const MAX_OUTPUT_SIZE = 100 * 1024;
83
110
  /**
84
111
  * Spawn a fresh Claude process and capture its output
85
112
  */
86
- function spawnAgent(agent, input, timeoutMs, model) {
113
+ function spawnAgent(agent, input, timeoutMs, model, isolation) {
87
114
  return new Promise((resolve, reject) => {
88
115
  let settled = false;
89
116
  const settle = (fn, value) => {
@@ -104,6 +131,10 @@ function spawnAgent(agent, input, timeoutMs, model) {
104
131
  '--permission-mode', 'acceptEdits',
105
132
  '--output-format', 'text',
106
133
  ];
134
+ // Add worktree isolation flag for risky agents (hardening, refactoring, implementation)
135
+ if (isolation === 'worktree') {
136
+ spawnArgs.push('--worktree');
137
+ }
107
138
  // Add model flag if specified
108
139
  if (model) {
109
140
  spawnArgs.push('--model', model);
@@ -199,12 +230,12 @@ export function registerRouteTools(ctx) {
199
230
  // ===================================================================
200
231
  // merlin_route — Spawn a fresh Claude process for a specialist agent
201
232
  // ===================================================================
202
- server.tool('merlin_route', 'Route and delegate a task to a specialist agent running in a FRESH Claude process with full 200K context window. ' +
203
- 'Automatically pre-fetches Sights codebase context, checks the agent catalog for better-fit specialists, ' +
204
- 'builds a structured handoff, spawns the agent via `claude --agent`, and captures the result. ' +
205
- 'Use for: implementation, architecture design, testing, security hardening, documentation, DRY refactoring, deployment, ops. ' +
206
- 'Available agents: product-spec, system-architect, implementation-dev, dry-refactor, hardening-guard, tests-qa, ops-railway, docs-keeper. ' +
207
- 'Also supports any agent installed in ~/.claude/agents/ or discovered via merlin_discover_agents.', {
233
+ server.tool('merlin_route', 'Delegate a task to a specialist agent in a FRESH Claude process with full 200K context. ' +
234
+ 'Pre-fetches Sights codebase context, builds a structured handoff, applies effort-level routing (ultrathink for high-effort agents), and captures the result. ' +
235
+ 'Use when you need a specialist: code implementation, architecture design, test writing, security hardening, DRY refactoring, documentation, deployment/ops. ' +
236
+ 'Built-in agents: product-spec, system-architect, implementation-dev, dry-refactor, hardening-guard, tests-qa, ops-railway, docs-keeper. ' +
237
+ 'Also routes to any agent in ~/.claude/agents/ or discovered via merlin_discover_agents. ' +
238
+ 'NEVER run `claude --agent` via Bash always use this tool instead.', {
208
239
  agent: z.string().describe('Agent name: product-spec, system-architect, implementation-dev, dry-refactor, ' +
209
240
  'hardening-guard, tests-qa, ops-railway, docs-keeper, or any installed/discovered agent'),
210
241
  task: z.string().describe('What the agent should do (be specific about files, features, scope)'),
@@ -293,10 +324,16 @@ export function registerRouteTools(ctx) {
293
324
  if (discoveryHint) {
294
325
  console.error(`[merlin_route] Discovery hint: "${discoveryHint.name}" (${discoveryHint.grade}) may be a better fit — slug: ${discoveryHint.slug}`);
295
326
  }
296
- // 4. Read effort level from agent frontmatter
327
+ // 4. Read effort level, isolation mode, and background flag from agent frontmatter
297
328
  const effort = readAgentEffort(agentPath);
329
+ const isolation = readAgentIsolation(agentPath);
330
+ const isBackground = readAgentBackground(agentPath);
298
331
  const { prefix: effortPrefix, suffix: effortSuffix } = buildEffortPrefix(effort);
299
332
  console.error(`[merlin_route] Effort level: ${effort}${effort === 'high' ? ' (ultrathink enabled)' : effort === 'low' ? ' (concise mode)' : ''}`);
333
+ if (isolation)
334
+ console.error(`[merlin_route] Isolation: ${isolation}`);
335
+ if (isBackground)
336
+ console.error(`[merlin_route] Mode: background (non-blocking)`);
300
337
  // 5. Build the handoff
301
338
  const handoffParts = [
302
339
  `# Agent Task: ${agent}`,
@@ -322,12 +359,12 @@ export function registerRouteTools(ctx) {
322
359
  // 7. Classify task complexity and select model
323
360
  const classification = classifyTask(task, agent);
324
361
  console.error(`[merlin_route] Model selected: ${classification.model} (${classification.complexity}) — ${classification.reason}`);
325
- // Record cost tracking before spawning
326
- recordRouting(classification.model, classification.complexity);
362
+ // Record cost tracking before spawning (agent name tracked for per-agent breakdown)
363
+ recordRouting(classification.model, classification.complexity, { agent });
327
364
  // 8. Spawn fresh Claude process
328
365
  console.error(`[merlin_route] Spawning agent "${agent}" for task: ${task.slice(0, 100)}...`);
329
366
  try {
330
- const result = await spawnAgent(agent, handoff, timeout, classification.model);
367
+ const result = await spawnAgent(agent, handoff, timeout, classification.model, isolation);
331
368
  const elapsed = ((Date.now() - startTime) / 1000).toFixed(1);
332
369
  const output = truncateOutput(result.stdout || '');
333
370
  if (result.exitCode !== 0 && !output) {
@@ -347,6 +384,10 @@ export function registerRouteTools(ctx) {
347
384
  let response = `## Agent: ${agent} (${elapsed}s)\n`;
348
385
  response += `> Model: \`${classification.model}\` (${classification.complexity}) — ${classification.reason}\n`;
349
386
  response += `> Effort: \`${effort}\`${effort === 'high' ? ' — ultrathink enabled' : effort === 'low' ? ' — concise mode' : ''}\n`;
387
+ if (isolation)
388
+ response += `> Isolation: \`${isolation}\` — running in fresh worktree\n`;
389
+ if (isBackground)
390
+ response += `> Mode: background — non-blocking execution\n`;
350
391
  // Discovery hint: suggest a better-fit agent from the catalog
351
392
  if (discoveryHint) {
352
393
  response += `\n> 💡 **Catalog match:** \`${discoveryHint.name}\` (${discoveryHint.grade}) — ${discoveryHint.description}\n`;
@@ -376,7 +417,7 @@ export function registerRouteTools(ctx) {
376
417
  // ===================================================================
377
418
  // merlin_list_agents — List available specialist agents
378
419
  // ===================================================================
379
- server.tool('merlin_list_agents', 'List all installed specialist agents available for routing via merlin_route. Shows agent names, roles, and descriptions for product-spec, system-architect, implementation-dev, dry-refactor, hardening-guard, tests-qa, ops-railway, docs-keeper, and any custom agents. Use to discover what agents are installed before delegating a task.', {}, async () => {
420
+ server.tool('merlin_list_agents', 'List all installed specialist agents available for routing via merlin_route. Returns agent names, roles, effort levels, and descriptions for all built-in agents (product-spec, system-architect, implementation-dev, dry-refactor, hardening-guard, tests-qa, ops-railway, docs-keeper) plus any custom agents in ~/.claude/agents/. Use before delegating to confirm which agents are available.', {}, async () => {
380
421
  const available = getAvailableAgents();
381
422
  let response = `# Available Agents\n\n`;
382
423
  // Specialists
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/server/tools/route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../../../src/server/tools/route.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Session Restore Tool
3
+ *
4
+ * Reads the most recent session summary from ~/.claude/merlin/sessions/
5
+ * and returns it formatted for context injection at session start.
6
+ *
7
+ * Session summaries are written by the session-end.sh hook and contain:
8
+ * - Files modified (git diff)
9
+ * - Commit messages from that session
10
+ * - Agents used
11
+ * - Session duration and working directory
12
+ */
13
+ import type { ToolContext } from './types.js';
14
+ /**
15
+ * Register session restore tools with the MCP server.
16
+ */
17
+ export declare function registerSessionRestoreTools(ctx: ToolContext): void;
18
+ //# sourceMappingURL=session-restore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-restore.d.ts","sourceRoot":"","sources":["../../../src/server/tools/session-restore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAqG9C;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CA2DlE"}