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,154 @@
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 { z } from 'zod';
14
+ import { existsSync, readdirSync, readFileSync } from 'fs';
15
+ import { join } from 'path';
16
+ import { homedir } from 'os';
17
+ const SESSIONS_DIR = join(homedir(), '.claude', 'merlin', 'sessions');
18
+ /**
19
+ * Read and parse a session summary file.
20
+ * Returns null if unreadable or malformed.
21
+ */
22
+ function readSessionFile(filePath) {
23
+ try {
24
+ const raw = readFileSync(filePath, 'utf-8');
25
+ const parsed = JSON.parse(raw);
26
+ // Minimal validation — ensure required fields exist
27
+ if (!parsed.timestamp || typeof parsed.summary !== 'string')
28
+ return null;
29
+ return parsed;
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ }
35
+ /**
36
+ * Return all session file paths sorted newest-first.
37
+ */
38
+ function getSessionFiles() {
39
+ if (!existsSync(SESSIONS_DIR))
40
+ return [];
41
+ try {
42
+ return readdirSync(SESSIONS_DIR)
43
+ .filter(f => f.startsWith('session-') && f.endsWith('.json'))
44
+ .sort()
45
+ .reverse()
46
+ .map(f => join(SESSIONS_DIR, f));
47
+ }
48
+ catch {
49
+ return [];
50
+ }
51
+ }
52
+ /**
53
+ * Format duration in seconds to a human-readable string.
54
+ */
55
+ function formatDuration(seconds) {
56
+ if (seconds <= 0)
57
+ return 'unknown duration';
58
+ const h = Math.floor(seconds / 3600);
59
+ const m = Math.floor((seconds % 3600) / 60);
60
+ const s = seconds % 60;
61
+ if (h > 0)
62
+ return `${h}h ${m}m`;
63
+ if (m > 0)
64
+ return `${m}m ${s}s`;
65
+ return `${s}s`;
66
+ }
67
+ /**
68
+ * Format a session summary into a markdown context block.
69
+ */
70
+ function formatSessionForContext(session, index = 0) {
71
+ const label = index === 0 ? 'Last Session' : `Session ${index + 1}`;
72
+ const date = new Date(session.timestamp).toLocaleString();
73
+ const duration = formatDuration(session.duration_seconds);
74
+ let out = `## ${label} — ${date} (${duration})\n\n`;
75
+ out += `**Summary:** ${session.summary}\n\n`;
76
+ if (session.working_directory) {
77
+ out += `**Working directory:** \`${session.working_directory}\`\n\n`;
78
+ }
79
+ if (session.files_modified.length > 0) {
80
+ out += `**Files modified (${session.files_modified.length}):**\n`;
81
+ session.files_modified.slice(0, 15).forEach(f => {
82
+ out += `- \`${f}\`\n`;
83
+ });
84
+ if (session.files_modified.length > 15) {
85
+ out += `- _...and ${session.files_modified.length - 15} more_\n`;
86
+ }
87
+ out += '\n';
88
+ }
89
+ if (session.commits.length > 0) {
90
+ out += `**Commits:**\n`;
91
+ session.commits.slice(0, 8).forEach(c => {
92
+ out += `- ${c}\n`;
93
+ });
94
+ out += '\n';
95
+ }
96
+ if (session.agents_used.length > 0) {
97
+ out += `**Agents used:** ${session.agents_used.join(', ')}\n\n`;
98
+ }
99
+ return out;
100
+ }
101
+ /**
102
+ * Register session restore tools with the MCP server.
103
+ */
104
+ export function registerSessionRestoreTools(ctx) {
105
+ const { server } = ctx;
106
+ // ── DEFERRED tool: loaded on-demand at session start for continuity ─────────
107
+ // ============================================================
108
+ // Tool: merlin_session_restore
109
+ // ============================================================
110
+ server.tool('merlin_session_restore', 'Restore context from the previous session. Returns what was worked on, files changed, decisions made, and agents used. Call at session start for seamless continuation. Use before /merlin:resume-work to get the last session snapshot without needing a full PLAN file.', {
111
+ count: z.number().optional().describe('Number of recent sessions to return (1-5, default: 1)'),
112
+ }, async ({ count }) => {
113
+ const sessionCount = Math.min(Math.max(count || 1, 1), 5);
114
+ const files = getSessionFiles();
115
+ if (files.length === 0) {
116
+ return {
117
+ content: [{
118
+ type: 'text',
119
+ text: '## No Previous Sessions Found\n\nNo session summaries found in `~/.claude/merlin/sessions/`.\n\nSession summaries are written automatically at session end by the Merlin session-end hook. If this is your first session, start working — context will be captured from now on.',
120
+ }],
121
+ };
122
+ }
123
+ const sessions = [];
124
+ for (const filePath of files.slice(0, sessionCount)) {
125
+ const session = readSessionFile(filePath);
126
+ if (session)
127
+ sessions.push(session);
128
+ if (sessions.length >= sessionCount)
129
+ break;
130
+ }
131
+ if (sessions.length === 0) {
132
+ return {
133
+ content: [{
134
+ type: 'text',
135
+ text: '## Session Files Found but Unreadable\n\nSession summary files exist but could not be parsed. They may be from an older format or corrupted.',
136
+ }],
137
+ };
138
+ }
139
+ let response = `# Session Context Restored\n\n`;
140
+ response += `Found **${files.length}** session(s) total. Showing last **${sessions.length}**.\n\n`;
141
+ response += `---\n\n`;
142
+ sessions.forEach((s, i) => {
143
+ response += formatSessionForContext(s, i);
144
+ if (i < sessions.length - 1)
145
+ response += `---\n\n`;
146
+ });
147
+ response += `---\n\n`;
148
+ response += `Use \`merlin_session_search(query="...")\` to find specific past sessions.\n`;
149
+ return {
150
+ content: [{ type: 'text', text: response }],
151
+ };
152
+ });
153
+ }
154
+ //# sourceMappingURL=session-restore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-restore.js","sourceRoot":"","sources":["../../../src/server/tools/session-restore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Session Search Tool
3
+ *
4
+ * Keyword search across all session summary files in ~/.claude/merlin/sessions/.
5
+ * Supports searching by: summary text, commit messages, file paths, agents used,
6
+ * and working directory.
7
+ *
8
+ * Returns matching sessions sorted by relevance (hit count), then recency.
9
+ * No vector DB — plain keyword matching, fast and offline.
10
+ */
11
+ import type { ToolContext } from './types.js';
12
+ /**
13
+ * Register session search tools with the MCP server.
14
+ */
15
+ export declare function registerSessionSearchTools(ctx: ToolContext): void;
16
+ //# sourceMappingURL=session-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-search.d.ts","sourceRoot":"","sources":["../../../src/server/tools/session-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA6K9C;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CA0FjE"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Session Search Tool
3
+ *
4
+ * Keyword search across all session summary files in ~/.claude/merlin/sessions/.
5
+ * Supports searching by: summary text, commit messages, file paths, agents used,
6
+ * and working directory.
7
+ *
8
+ * Returns matching sessions sorted by relevance (hit count), then recency.
9
+ * No vector DB — plain keyword matching, fast and offline.
10
+ */
11
+ import { z } from 'zod';
12
+ import { existsSync, readdirSync, readFileSync } from 'fs';
13
+ import { join } from 'path';
14
+ import { homedir } from 'os';
15
+ const SESSIONS_DIR = join(homedir(), '.claude', 'merlin', 'sessions');
16
+ /**
17
+ * Return all session file paths sorted newest-first.
18
+ */
19
+ function getSessionFiles() {
20
+ if (!existsSync(SESSIONS_DIR))
21
+ return [];
22
+ try {
23
+ return readdirSync(SESSIONS_DIR)
24
+ .filter(f => f.startsWith('session-') && f.endsWith('.json'))
25
+ .sort()
26
+ .reverse()
27
+ .map(f => join(SESSIONS_DIR, f));
28
+ }
29
+ catch {
30
+ return [];
31
+ }
32
+ }
33
+ /**
34
+ * Read and parse a session summary file.
35
+ * Returns null if unreadable or malformed.
36
+ */
37
+ function readSessionFile(filePath) {
38
+ try {
39
+ const raw = readFileSync(filePath, 'utf-8');
40
+ const parsed = JSON.parse(raw);
41
+ if (!parsed.timestamp || typeof parsed.summary !== 'string')
42
+ return null;
43
+ return parsed;
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
49
+ /**
50
+ * Tokenize a query string into lowercase search terms.
51
+ * Removes stop words to keep matching meaningful.
52
+ */
53
+ function tokenize(query) {
54
+ const stopWords = new Set([
55
+ 'a', 'an', 'the', 'and', 'or', 'in', 'on', 'at', 'to', 'for',
56
+ 'of', 'with', 'by', 'from', 'is', 'was', 'are', 'were', 'be',
57
+ 'i', 'we', 'you', 'it', 'this', 'that', 'what', 'how', 'when',
58
+ ]);
59
+ return query
60
+ .toLowerCase()
61
+ .split(/[\s,._\-/()[\]{}:;'"!?+]+/)
62
+ .filter(t => t.length >= 2 && !stopWords.has(t));
63
+ }
64
+ /**
65
+ * Count how many times any term from `terms` appears in `text`.
66
+ * Returns the hit count and which field this came from.
67
+ */
68
+ function countHits(text, terms) {
69
+ const lower = text.toLowerCase();
70
+ return terms.reduce((acc, term) => {
71
+ // Count occurrences of the term in text
72
+ const re = new RegExp(term.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'g');
73
+ const matches = lower.match(re);
74
+ return acc + (matches ? matches.length : 0);
75
+ }, 0);
76
+ }
77
+ /**
78
+ * Score a session against the search terms.
79
+ * Higher weight is given to summary and commits (intent-rich) vs file paths.
80
+ */
81
+ function scoreSession(session, terms) {
82
+ let score = 0;
83
+ const matchedIn = [];
84
+ const summaryHits = countHits(session.summary, terms);
85
+ if (summaryHits > 0) {
86
+ score += summaryHits * 3;
87
+ matchedIn.push('summary');
88
+ }
89
+ const commitText = session.commits.join(' ');
90
+ const commitHits = countHits(commitText, terms);
91
+ if (commitHits > 0) {
92
+ score += commitHits * 2;
93
+ matchedIn.push('commits');
94
+ }
95
+ const fileText = session.files_modified.join(' ');
96
+ const fileHits = countHits(fileText, terms);
97
+ if (fileHits > 0) {
98
+ score += fileHits * 1;
99
+ matchedIn.push('files');
100
+ }
101
+ const agentText = session.agents_used.join(' ');
102
+ const agentHits = countHits(agentText, terms);
103
+ if (agentHits > 0) {
104
+ score += agentHits * 2;
105
+ matchedIn.push('agents');
106
+ }
107
+ if (session.working_directory) {
108
+ const wdHits = countHits(session.working_directory, terms);
109
+ if (wdHits > 0) {
110
+ score += wdHits * 1;
111
+ matchedIn.push('directory');
112
+ }
113
+ }
114
+ return { session, score, matchedIn };
115
+ }
116
+ /**
117
+ * Format duration in seconds to a human-readable string.
118
+ */
119
+ function formatDuration(seconds) {
120
+ if (seconds <= 0)
121
+ return 'unknown';
122
+ const h = Math.floor(seconds / 3600);
123
+ const m = Math.floor((seconds % 3600) / 60);
124
+ if (h > 0)
125
+ return `${h}h ${m}m`;
126
+ if (m > 0)
127
+ return `${m}m`;
128
+ return `${seconds}s`;
129
+ }
130
+ /**
131
+ * Format a scored session as a compact result block.
132
+ */
133
+ function formatSearchResult(scored, rank) {
134
+ const { session, score, matchedIn } = scored;
135
+ const date = new Date(session.timestamp).toLocaleString();
136
+ const duration = formatDuration(session.duration_seconds);
137
+ let out = `### ${rank}. ${date} (${duration}) — score: ${score}\n`;
138
+ out += `**Matched in:** ${matchedIn.join(', ')}\n`;
139
+ out += `**Summary:** ${session.summary}\n`;
140
+ if (session.working_directory) {
141
+ out += `**Directory:** \`${session.working_directory}\`\n`;
142
+ }
143
+ if (session.commits.length > 0) {
144
+ out += `**Commits:** ${session.commits.slice(0, 3).join(' | ')}\n`;
145
+ }
146
+ if (session.agents_used.length > 0) {
147
+ out += `**Agents:** ${session.agents_used.join(', ')}\n`;
148
+ }
149
+ if (session.files_modified.length > 0) {
150
+ const shown = session.files_modified.slice(0, 5);
151
+ const extra = session.files_modified.length - shown.length;
152
+ out += `**Files:** ${shown.map(f => `\`${f}\``).join(', ')}`;
153
+ if (extra > 0)
154
+ out += ` _+${extra} more_`;
155
+ out += '\n';
156
+ }
157
+ return out;
158
+ }
159
+ /**
160
+ * Register session search tools with the MCP server.
161
+ */
162
+ export function registerSessionSearchTools(ctx) {
163
+ const { server } = ctx;
164
+ // ── DEFERRED tool: loaded on-demand for session history search ───────────────
165
+ // ============================================================
166
+ // Tool: merlin_session_search
167
+ // ============================================================
168
+ server.tool('merlin_session_search', 'Search across all previous sessions by keyword. Find when a feature was built, what decisions were made, or which agents were used for similar tasks. Searches session summaries, commit messages, modified files, and agents used. Returns matching sessions sorted by relevance.', {
169
+ query: z.string().describe('Search terms (e.g., "OAuth login", "stripe payments", "tests-qa refactor")'),
170
+ limit: z.number().optional().describe('Maximum results to return (1-20, default: 5)'),
171
+ }, async ({ query, limit }) => {
172
+ const maxResults = Math.min(Math.max(limit || 5, 1), 20);
173
+ if (!query.trim()) {
174
+ return {
175
+ content: [{
176
+ type: 'text',
177
+ text: 'Please provide a search query. Example: `merlin_session_search(query="authentication")`',
178
+ }],
179
+ isError: true,
180
+ };
181
+ }
182
+ const terms = tokenize(query);
183
+ if (terms.length === 0) {
184
+ return {
185
+ content: [{
186
+ type: 'text',
187
+ text: `Query "${query}" produced no searchable terms after filtering. Try more specific keywords.`,
188
+ }],
189
+ isError: true,
190
+ };
191
+ }
192
+ const files = getSessionFiles();
193
+ if (files.length === 0) {
194
+ return {
195
+ content: [{
196
+ type: 'text',
197
+ text: '## No Session History\n\nNo session summaries found in `~/.claude/merlin/sessions/`.\n\nSession summaries are written automatically at session end by the Merlin session-end hook.',
198
+ }],
199
+ };
200
+ }
201
+ // Score all sessions — skip unreadable files
202
+ const scored = [];
203
+ for (const filePath of files) {
204
+ const session = readSessionFile(filePath);
205
+ if (!session)
206
+ continue;
207
+ const result = scoreSession(session, terms);
208
+ if (result.score > 0)
209
+ scored.push(result);
210
+ }
211
+ // Sort by score desc, then by timestamp desc (recency tiebreak)
212
+ scored.sort((a, b) => {
213
+ if (b.score !== a.score)
214
+ return b.score - a.score;
215
+ return new Date(b.session.timestamp).getTime() - new Date(a.session.timestamp).getTime();
216
+ });
217
+ const topResults = scored.slice(0, maxResults);
218
+ if (topResults.length === 0) {
219
+ return {
220
+ content: [{
221
+ type: 'text',
222
+ text: `## No Matches Found\n\nNo sessions matched "${query}" across ${files.length} session(s).\n\nTry:\n- Broader terms (e.g., "auth" instead of "OAuth PKCE")\n- File names, agent names, or commit keywords\n- \`merlin_session_restore()\` to see recent sessions without filtering`,
223
+ }],
224
+ };
225
+ }
226
+ let response = `# Session Search: "${query}"\n\n`;
227
+ response += `Found **${topResults.length}** match(es) across ${files.length} session(s):\n\n`;
228
+ topResults.forEach((s, i) => {
229
+ response += formatSearchResult(s, i + 1);
230
+ if (i < topResults.length - 1)
231
+ response += '\n---\n\n';
232
+ });
233
+ response += '\n\n---\n';
234
+ response += `Use \`merlin_session_restore(count=${maxResults})\` to view the most recent sessions without filtering.\n`;
235
+ return {
236
+ content: [{ type: 'text', text: response }],
237
+ };
238
+ });
239
+ }
240
+ //# sourceMappingURL=session-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-search.js","sourceRoot":"","sources":["../../../src/server/tools/session-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAG7B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAoBtE;;GAEG;AACH,SAAS,eAAe;IACtB,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,YAAY,CAAC;aAC7B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;aAC5D,IAAI,EAAE;aACN,OAAO,EAAE;aACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACzE,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,KAAa;IAC7B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC;QACxB,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;QAC5D,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI;QAC5D,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;KAC9D,CAAC,CAAC;IACH,OAAO,KAAK;SACT,WAAW,EAAE;SACb,KAAK,CAAC,2BAA2B,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC;AAED;;;GAGG;AACH,SAAS,SAAS,CAAC,IAAY,EAAE,KAAe;IAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAChC,wCAAwC;QACxC,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;GAGG;AACH,SAAS,YAAY,CAAC,OAAuB,EAAE,KAAe;IAC5D,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,IAAI,WAAW,GAAG,CAAC,CAAC;QACzB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAChD,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,KAAK,IAAI,UAAU,GAAG,CAAC,CAAC;QACxB,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,IAAI,QAAQ,GAAG,CAAC,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,KAAK,IAAI,SAAS,GAAG,CAAC,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAC3D,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,KAAK,IAAI,MAAM,GAAG,CAAC,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,OAAO,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACnC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACrC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5C,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;IAChC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IAC1B,OAAO,GAAG,OAAO,GAAG,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,MAAqB,EAAE,IAAY;IAC7D,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;IAC1D,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAE1D,IAAI,GAAG,GAAG,OAAO,IAAI,KAAK,IAAI,KAAK,QAAQ,cAAc,KAAK,IAAI,CAAC;IACnE,GAAG,IAAI,mBAAmB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACnD,GAAG,IAAI,gBAAgB,OAAO,CAAC,OAAO,IAAI,CAAC;IAE3C,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,GAAG,IAAI,oBAAoB,OAAO,CAAC,iBAAiB,MAAM,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,GAAG,IAAI,gBAAgB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACrE,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,GAAG,IAAI,eAAe,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3D,CAAC;IACD,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC3D,GAAG,IAAI,cAAc,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,IAAI,KAAK,GAAG,CAAC;YAAE,GAAG,IAAI,MAAM,KAAK,QAAQ,CAAC;QAC1C,GAAG,IAAI,IAAI,CAAC;IACd,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,GAAgB;IACzD,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAEvB,gFAAgF;IAChF,+DAA+D;IAC/D,8BAA8B;IAC9B,+DAA+D;IAC/D,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,oRAAoR,EACpR;QACE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4EAA4E,CAAC;QACxG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACtF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEzD,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,yFAAyF;qBAChG,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,UAAU,KAAK,6EAA6E;qBACnG,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,oLAAoL;qBAC3L,CAAC;aACH,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QAED,gEAAgE;QAChE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACnB,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;gBAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAClD,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAE/C,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,+CAA+C,KAAK,YAAY,KAAK,CAAC,MAAM,sMAAsM;qBACzR,CAAC;aACH,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,GAAG,sBAAsB,KAAK,OAAO,CAAC;QAClD,QAAQ,IAAI,WAAW,UAAU,CAAC,MAAM,uBAAuB,KAAK,CAAC,MAAM,kBAAkB,CAAC;QAE9F,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,QAAQ,IAAI,kBAAkB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC;gBAAE,QAAQ,IAAI,WAAW,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,QAAQ,IAAI,WAAW,CAAC;QACxB,QAAQ,IAAI,sCAAsC,UAAU,2DAA2D,CAAC;QAExH,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;SACrD,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -10,7 +10,7 @@ export function registerSightsIndexTools(ctx) {
10
10
  const { server, client } = ctx;
11
11
  // ── DEFERRED tool: loaded on-demand for browsing open source references ──
12
12
  // Tool: merlin_browse_sights
13
- server.tool('merlin_browse_sights', 'Search the public Sights catalog of analyzed open source repositories. Use when the user asks for open source examples, wants to see how others solved a problem, needs reference implementations, or is looking for architecture inspiration. Returns analyzed repos with star count, description, and topics. Follow up with merlin_get_public_sight_context to explore a specific codebase.', {
13
+ server.tool('merlin_browse_sights', 'Search the public Sights catalog of analyzed open source repositories for reference implementations and architecture inspiration. Use when: the user asks for open source examples, you need to see how others solved a problem, you want reference implementations to learn from, or you\'re seeking architecture patterns. Returns analyzed repos with star count, description, and topics. Follow up with merlin_get_public_sight_context to explore a specific codebase in depth.', {
14
14
  query: z.string().describe('Search query (e.g., "authentication", "react hooks", "REST API")'),
15
15
  limit: z.number().optional().describe('Maximum number of results to return (1-20, default: 5)'),
16
16
  }, async ({ query, limit }) => {
@@ -59,7 +59,7 @@ export function registerSightsIndexTools(ctx) {
59
59
  });
60
60
  // ── DEFERRED tool: loaded on-demand for exploring a specific open source repo
61
61
  // Tool: merlin_get_public_sight_context
62
- server.tool('merlin_get_public_sight_context', 'Get detailed context from a specific publicly analyzed open source repository: architecture overview, tech stack, coding conventions, entry points, and key patterns. Use after merlin_browse_sights to deeply explore how a reference codebase is structured. Returns actionable patterns you can apply to your own project.', {
62
+ server.tool('merlin_get_public_sight_context', 'Deep-dive into a specific publicly analyzed open source repository: architecture overview, full tech stack, coding conventions, entry points, and key design patterns. Use after merlin_browse_sights to extract actionable patterns you can apply to your own project. Provide owner + repo name from the browse results.', {
63
63
  owner: z.string().describe('Repository owner (GitHub username or org)'),
64
64
  repo: z.string().describe('Repository name'),
65
65
  }, async ({ owner, repo }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"sights-index.js","sourceRoot":"","sources":["../../../src/server/tools/sights-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sights-index.js","sourceRoot":"","sources":["../../../src/server/tools/sights-index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"smart-route.d.ts","sourceRoot":"","sources":["../../../src/server/tools/smart-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA0D9C,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,QA+GvD"}
1
+ {"version":3,"file":"smart-route.d.ts","sourceRoot":"","sources":["../../../src/server/tools/smart-route.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA0D9C,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,QA8GvD"}
@@ -56,11 +56,10 @@ function getAvailableAgents() {
56
56
  }
57
57
  export function registerSmartRouteTools(ctx) {
58
58
  const { server, client } = ctx;
59
- server.tool('merlin_smart_route', 'Discovery-first routing: describe WHAT you want done and Merlin finds the best agent — ' +
60
- 'checking both installed local agents AND the community catalog of 500+ graded agents. ' +
61
- 'Returns a ranked recommendation with the best match. ' +
62
- 'Use this instead of merlin_route when you don\'t know which agent to pick, or want to check ' +
63
- 'if a better specialist exists before defaulting to a built-in agent.', {
59
+ server.tool('merlin_smart_route', 'Discovery-first agent routing: describe what you want done and Merlin finds the best agent — ' +
60
+ 'scores both installed local agents AND the community catalog of 500+ graded agents by keyword relevance. ' +
61
+ 'Returns a ranked recommendation with the top match and why it was chosen. ' +
62
+ 'Use when you don\'t know which agent to pick, when starting a new type of task, or when you want to check if a better specialist exists before defaulting to a built-in agent.', {
64
63
  task: z.string().describe('What needs to be done (e.g., "add Stripe payments", "write E2E tests", "security audit")'),
65
64
  context: z.string().optional().describe('Additional context for the task'),
66
65
  }, async ({ task }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"smart-route.js","sourceRoot":"","sources":["../../../src/server/tools/smart-route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smart-route.js","sourceRoot":"","sources":["../../../src/server/tools/smart-route.ts"],"names":[],"mappings":"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"}
@@ -297,7 +297,7 @@ export function registerVerificationTools(ctx) {
297
297
  const { server, getRepoRootPath } = ctx;
298
298
  // ── DEFERRED tool: loaded on-demand for quality assurance and validation ─
299
299
  // Tool: merlin_run_verification
300
- server.tool('merlin_run_verification', 'Run a 6-phase quality check pipeline: Build → TypeScript types → Lint → Tests → Security audit → Git diff. Auto-detects package manager (npm/pnpm/yarn/bun) and available scripts. Returns pass/fail per phase with errors and output. Use after major changes, before committing, after refactoring, or every 15 minutes during long autonomous sessions. Specify phases to run only a subset.', {
300
+ server.tool('merlin_run_verification', 'Run a 6-phase quality check pipeline: Build → TypeScript type-check → Lint (ESLint/Biome) → Tests → Security audit (npm audit + .env check) → Git diff. Auto-detects package manager (npm/pnpm/yarn/bun) and available scripts. Returns pass/fail/warn per phase with error output. Use after major changes, before committing, after refactoring, or every 15 minutes during long autonomous sessions. Pass a phases array to run only a subset.', {
301
301
  phases: z.array(z.enum(['build', 'types', 'lint', 'tests', 'security', 'diff'])).optional()
302
302
  .describe('Specific phases to run (default: all)'),
303
303
  format: z.enum(['full', 'summary']).optional().default('full')
@@ -1 +1 @@
1
- {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../src/server/tools/verification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../src/server/tools/verification.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ color: blue
6
6
  version: "1.0.0"
7
7
  tools: Read, Write, Edit, Bash, Grep, Glob
8
8
  effort: low
9
+ background: true
9
10
  permissionMode: bypassPermissions
10
11
  maxTurns: 100
11
12
  ---
@@ -128,3 +129,11 @@ You should:
128
129
  - Propose architectural improvements for long-term maintainability
129
130
 
130
131
  Remember: Your goal is a codebase where any developer can quickly find, understand, and modify code without being overwhelmed by file size or lost in poor organization.
132
+
133
+ <critical_actions>
134
+ ## Critical Actions (NEVER violate these)
135
+
136
+ 1. NEVER approve files over 400 lines without flagging for split
137
+ 2. NEVER reorganize code without updating all imports
138
+ 3. ALWAYS verify the project builds after reorganization
139
+ </critical_actions>