legends-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +173 -0
- package/dist/agents/guardrails.d.ts +44 -0
- package/dist/agents/guardrails.d.ts.map +1 -0
- package/dist/agents/guardrails.js +144 -0
- package/dist/agents/guardrails.js.map +1 -0
- package/dist/agents/misbehavior-prevention.d.ts +33 -0
- package/dist/agents/misbehavior-prevention.d.ts.map +1 -0
- package/dist/agents/misbehavior-prevention.js +278 -0
- package/dist/agents/misbehavior-prevention.js.map +1 -0
- package/dist/chat/handler.d.ts +13 -0
- package/dist/chat/handler.d.ts.map +1 -0
- package/dist/chat/handler.js +101 -0
- package/dist/chat/handler.js.map +1 -0
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +66 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +182 -0
- package/dist/index.js.map +1 -0
- package/dist/insights/smart-injection.d.ts +67 -0
- package/dist/insights/smart-injection.d.ts.map +1 -0
- package/dist/insights/smart-injection.js +257 -0
- package/dist/insights/smart-injection.js.map +1 -0
- package/dist/legends/character-training.d.ts +36 -0
- package/dist/legends/character-training.d.ts.map +1 -0
- package/dist/legends/character-training.js +198 -0
- package/dist/legends/character-training.js.map +1 -0
- package/dist/legends/loader.d.ts +26 -0
- package/dist/legends/loader.d.ts.map +1 -0
- package/dist/legends/loader.js +104 -0
- package/dist/legends/loader.js.map +1 -0
- package/dist/legends/personality.d.ts +24 -0
- package/dist/legends/personality.d.ts.map +1 -0
- package/dist/legends/personality.js +211 -0
- package/dist/legends/personality.js.map +1 -0
- package/dist/legends/prompt-builder.d.ts +11 -0
- package/dist/legends/prompt-builder.d.ts.map +1 -0
- package/dist/legends/prompt-builder.js +113 -0
- package/dist/legends/prompt-builder.js.map +1 -0
- package/dist/tools/chat-with-legend.d.ts +83 -0
- package/dist/tools/chat-with-legend.d.ts.map +1 -0
- package/dist/tools/chat-with-legend.js +91 -0
- package/dist/tools/chat-with-legend.js.map +1 -0
- package/dist/tools/get-legend-context.d.ts +64 -0
- package/dist/tools/get-legend-context.d.ts.map +1 -0
- package/dist/tools/get-legend-context.js +407 -0
- package/dist/tools/get-legend-context.js.map +1 -0
- package/dist/tools/get-legend-insight.d.ts +33 -0
- package/dist/tools/get-legend-insight.d.ts.map +1 -0
- package/dist/tools/get-legend-insight.js +209 -0
- package/dist/tools/get-legend-insight.js.map +1 -0
- package/dist/tools/index.d.ts +103 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +17 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/list-legends.d.ts +45 -0
- package/dist/tools/list-legends.d.ts.map +1 -0
- package/dist/tools/list-legends.js +124 -0
- package/dist/tools/list-legends.js.map +1 -0
- package/dist/types.d.ts +90 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/legends/anatoly-yakovenko/skill.yaml +534 -0
- package/legends/andre-cronje/skill.yaml +682 -0
- package/legends/andrew-carnegie/skill.yaml +499 -0
- package/legends/balaji-srinivasan/skill.yaml +706 -0
- package/legends/benjamin-graham/skill.yaml +671 -0
- package/legends/bill-gurley/skill.yaml +688 -0
- package/legends/brian-armstrong/skill.yaml +640 -0
- package/legends/brian-chesky/skill.yaml +692 -0
- package/legends/cathie-wood/skill.yaml +522 -0
- package/legends/charlie-munger/skill.yaml +694 -0
- package/legends/cz-binance/skill.yaml +545 -0
- package/legends/demis-hassabis/skill.yaml +762 -0
- package/legends/elon-musk/skill.yaml +594 -0
- package/legends/gary-vaynerchuk/skill.yaml +586 -0
- package/legends/hayden-adams/skill.yaml +591 -0
- package/legends/howard-marks/skill.yaml +767 -0
- package/legends/jack-dorsey/skill.yaml +568 -0
- package/legends/jeff-bezos/skill.yaml +623 -0
- package/legends/jensen-huang/skill.yaml +107 -0
- package/legends/marc-andreessen/skill.yaml +106 -0
- package/legends/mert-mumtaz/skill.yaml +551 -0
- package/legends/michael-heinrich/skill.yaml +425 -0
- package/legends/naval-ravikant/skill.yaml +575 -0
- package/legends/patrick-collison/skill.yaml +779 -0
- package/legends/paul-graham/skill.yaml +566 -0
- package/legends/peter-thiel/skill.yaml +741 -0
- package/legends/ray-dalio/skill.yaml +742 -0
- package/legends/reid-hoffman/skill.yaml +107 -0
- package/legends/sam-altman/skill.yaml +110 -0
- package/legends/satya-nadella/skill.yaml +751 -0
- package/legends/steve-jobs/skill.yaml +524 -0
- package/legends/sundar-pichai/skill.yaml +523 -0
- package/legends/tim-ferriss/skill.yaml +502 -0
- package/legends/tobi-lutke/skill.yaml +512 -0
- package/legends/vitalik-buterin/skill.yaml +739 -0
- package/legends/warren-buffett/skill.yaml +103 -0
- package/package.json +69 -0
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
// MCP Tool: get_legend_context
|
|
2
|
+
// Get a legend's full background, principles, and frameworks
|
|
3
|
+
// EXTREMELY DETAILED - exposes the full richness of each persona
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { getLegendById, getAllLegends } from '../legends/loader.js';
|
|
6
|
+
import { buildLegendSystemPrompt, formatLegendMarkdown } from '../legends/prompt-builder.js';
|
|
7
|
+
export const getLegendContextSchema = z.object({
|
|
8
|
+
legend_id: z.string().describe('The ID of the legend to get context for'),
|
|
9
|
+
format: z.enum(['full', 'markdown', 'system_prompt', 'frameworks', 'principles', 'voice', 'examples']).default('full')
|
|
10
|
+
.describe('Output format: full (everything), markdown (readable), system_prompt (for AI), frameworks (thinking patterns only), principles (beliefs only), voice (communication style), examples (sample conversations)'),
|
|
11
|
+
include_related: z.boolean().default(false)
|
|
12
|
+
.describe('Include related legends who complement this perspective'),
|
|
13
|
+
});
|
|
14
|
+
/**
|
|
15
|
+
* Get detailed context about a legend
|
|
16
|
+
* This provides EXTREMELY DETAILED information for maximum usefulness
|
|
17
|
+
*/
|
|
18
|
+
export function getLegendContext(input) {
|
|
19
|
+
const legend = getLegendById(input.legend_id);
|
|
20
|
+
if (!legend) {
|
|
21
|
+
throw new Error(`Legend "${input.legend_id}" not found. Use list_legends to see available legends.`);
|
|
22
|
+
}
|
|
23
|
+
let content;
|
|
24
|
+
switch (input.format) {
|
|
25
|
+
case 'full':
|
|
26
|
+
content = formatFullLegendContext(legend);
|
|
27
|
+
break;
|
|
28
|
+
case 'system_prompt':
|
|
29
|
+
content = buildLegendSystemPrompt(legend);
|
|
30
|
+
break;
|
|
31
|
+
case 'frameworks':
|
|
32
|
+
content = formatFrameworks(legend);
|
|
33
|
+
break;
|
|
34
|
+
case 'principles':
|
|
35
|
+
content = formatPrinciples(legend);
|
|
36
|
+
break;
|
|
37
|
+
case 'voice':
|
|
38
|
+
content = formatVoice(legend);
|
|
39
|
+
break;
|
|
40
|
+
case 'examples':
|
|
41
|
+
content = formatExamples(legend);
|
|
42
|
+
break;
|
|
43
|
+
case 'markdown':
|
|
44
|
+
default:
|
|
45
|
+
content = formatLegendMarkdown(legend);
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
const result = {
|
|
49
|
+
legend_id: legend.id,
|
|
50
|
+
name: legend.name,
|
|
51
|
+
format: input.format,
|
|
52
|
+
content,
|
|
53
|
+
metadata: {
|
|
54
|
+
expertise: legend.owns || [],
|
|
55
|
+
tags: legend.tags || [],
|
|
56
|
+
framework_count: legend.patterns?.length || 0,
|
|
57
|
+
principle_count: legend.principles?.length || 0,
|
|
58
|
+
example_count: legend.examples?.length || 0,
|
|
59
|
+
},
|
|
60
|
+
};
|
|
61
|
+
// Add related legends if requested
|
|
62
|
+
if (input.include_related) {
|
|
63
|
+
result.related_legends = findRelatedLegends(legend);
|
|
64
|
+
}
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Format the FULL legend context - everything we know
|
|
69
|
+
*/
|
|
70
|
+
function formatFullLegendContext(legend) {
|
|
71
|
+
const sections = [];
|
|
72
|
+
// Header with full description
|
|
73
|
+
sections.push(`# ${legend.name}`);
|
|
74
|
+
sections.push(`*${legend.description}*`);
|
|
75
|
+
sections.push('');
|
|
76
|
+
// Metadata
|
|
77
|
+
if (legend.owns?.length || legend.tags?.length) {
|
|
78
|
+
sections.push('## Quick Reference');
|
|
79
|
+
if (legend.owns?.length) {
|
|
80
|
+
sections.push(`**Areas of Expertise:** ${legend.owns.join(', ')}`);
|
|
81
|
+
}
|
|
82
|
+
if (legend.tags?.length) {
|
|
83
|
+
sections.push(`**Tags:** ${legend.tags.join(', ')}`);
|
|
84
|
+
}
|
|
85
|
+
sections.push('');
|
|
86
|
+
}
|
|
87
|
+
// Full Identity - the core persona description
|
|
88
|
+
if (legend.identity) {
|
|
89
|
+
sections.push('## Identity & Background');
|
|
90
|
+
sections.push(legend.identity.trim());
|
|
91
|
+
sections.push('');
|
|
92
|
+
}
|
|
93
|
+
// Voice & Communication Style
|
|
94
|
+
if (legend.voice) {
|
|
95
|
+
sections.push('## Voice & Communication Style');
|
|
96
|
+
sections.push(`**Tone:** ${legend.voice.tone}`);
|
|
97
|
+
if (legend.voice.style) {
|
|
98
|
+
sections.push('');
|
|
99
|
+
sections.push('**Style Guidelines:**');
|
|
100
|
+
sections.push(legend.voice.style);
|
|
101
|
+
}
|
|
102
|
+
if (legend.voice.personality?.length) {
|
|
103
|
+
sections.push('');
|
|
104
|
+
sections.push(`**Personality Traits:** ${legend.voice.personality.join(', ')}`);
|
|
105
|
+
}
|
|
106
|
+
if (legend.voice.vocabulary?.length) {
|
|
107
|
+
sections.push('');
|
|
108
|
+
sections.push('**Characteristic Vocabulary:**');
|
|
109
|
+
legend.voice.vocabulary.forEach(v => sections.push(`- "${v}"`));
|
|
110
|
+
}
|
|
111
|
+
sections.push('');
|
|
112
|
+
}
|
|
113
|
+
// Core Principles - beliefs and values
|
|
114
|
+
if (legend.principles?.length) {
|
|
115
|
+
sections.push('## Core Principles & Beliefs');
|
|
116
|
+
sections.push('These are the fundamental beliefs that guide their thinking:');
|
|
117
|
+
sections.push('');
|
|
118
|
+
legend.principles.forEach((p, i) => {
|
|
119
|
+
sections.push(`${i + 1}. ${p}`);
|
|
120
|
+
});
|
|
121
|
+
sections.push('');
|
|
122
|
+
}
|
|
123
|
+
// Thinking Frameworks - DETAILED
|
|
124
|
+
if (legend.patterns?.length) {
|
|
125
|
+
sections.push('## Thinking Frameworks');
|
|
126
|
+
sections.push('Use these frameworks to think like this legend:');
|
|
127
|
+
sections.push('');
|
|
128
|
+
legend.patterns.forEach(p => {
|
|
129
|
+
sections.push(`### ${p.name}`);
|
|
130
|
+
sections.push(`*${p.description}*`);
|
|
131
|
+
if (p.when) {
|
|
132
|
+
sections.push('');
|
|
133
|
+
sections.push(`**When to use:** ${p.when}`);
|
|
134
|
+
}
|
|
135
|
+
if (p.steps?.length) {
|
|
136
|
+
sections.push('');
|
|
137
|
+
sections.push('**Steps:**');
|
|
138
|
+
p.steps.forEach((s, i) => sections.push(`${i + 1}. ${s}`));
|
|
139
|
+
}
|
|
140
|
+
if (p.example) {
|
|
141
|
+
sections.push('');
|
|
142
|
+
sections.push(`**Example:** ${p.example}`);
|
|
143
|
+
}
|
|
144
|
+
sections.push('');
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
// Anti-Patterns - what they would NEVER do
|
|
148
|
+
if (legend.anti_patterns?.length) {
|
|
149
|
+
sections.push('## What They Would NEVER Do');
|
|
150
|
+
sections.push('Avoid these patterns when channeling this legend:');
|
|
151
|
+
sections.push('');
|
|
152
|
+
legend.anti_patterns.forEach(a => {
|
|
153
|
+
sections.push(`### ❌ ${a.pattern || a.name}`);
|
|
154
|
+
sections.push(`**Why this is wrong:** ${a.why}`);
|
|
155
|
+
sections.push(`**Instead, they would:** ${a.instead}`);
|
|
156
|
+
sections.push('');
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
// Example Conversations
|
|
160
|
+
if (legend.examples?.length) {
|
|
161
|
+
sections.push('## Example Conversations');
|
|
162
|
+
sections.push('See how they respond in character:');
|
|
163
|
+
sections.push('');
|
|
164
|
+
legend.examples.forEach((ex, i) => {
|
|
165
|
+
sections.push(`### Example ${i + 1}`);
|
|
166
|
+
sections.push(`**User asks:** "${ex.prompt}"`);
|
|
167
|
+
sections.push('');
|
|
168
|
+
sections.push(`**${legend.name} responds:**`);
|
|
169
|
+
sections.push(`> ${ex.response.split('\n').join('\n> ')}`);
|
|
170
|
+
sections.push('');
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
// Best Use Cases
|
|
174
|
+
sections.push('## When to Consult This Legend');
|
|
175
|
+
sections.push(generateUseCases(legend));
|
|
176
|
+
sections.push('');
|
|
177
|
+
// Disclaimer
|
|
178
|
+
sections.push('---');
|
|
179
|
+
sections.push('*DISCLAIMER: This is an AI persona inspired by public knowledge about this individual. It is not affiliated with, endorsed by, or representative of the real person. Use for educational and entertainment purposes.*');
|
|
180
|
+
return sections.join('\n');
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Format just the thinking frameworks
|
|
184
|
+
*/
|
|
185
|
+
function formatFrameworks(legend) {
|
|
186
|
+
const sections = [
|
|
187
|
+
`# ${legend.name}'s Thinking Frameworks`,
|
|
188
|
+
'',
|
|
189
|
+
];
|
|
190
|
+
if (!legend.patterns?.length) {
|
|
191
|
+
sections.push('No frameworks documented for this legend.');
|
|
192
|
+
return sections.join('\n');
|
|
193
|
+
}
|
|
194
|
+
legend.patterns.forEach(p => {
|
|
195
|
+
sections.push(`## ${p.name}`);
|
|
196
|
+
sections.push(`*${p.description}*`);
|
|
197
|
+
sections.push('');
|
|
198
|
+
if (p.when) {
|
|
199
|
+
sections.push(`**When to use:** ${p.when}`);
|
|
200
|
+
sections.push('');
|
|
201
|
+
}
|
|
202
|
+
if (p.steps?.length) {
|
|
203
|
+
sections.push('**How to apply:**');
|
|
204
|
+
p.steps.forEach((s, i) => sections.push(`${i + 1}. ${s}`));
|
|
205
|
+
sections.push('');
|
|
206
|
+
}
|
|
207
|
+
if (p.example) {
|
|
208
|
+
sections.push(`**Example:** ${p.example}`);
|
|
209
|
+
sections.push('');
|
|
210
|
+
}
|
|
211
|
+
sections.push('---');
|
|
212
|
+
sections.push('');
|
|
213
|
+
});
|
|
214
|
+
return sections.join('\n');
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Format just the principles
|
|
218
|
+
*/
|
|
219
|
+
function formatPrinciples(legend) {
|
|
220
|
+
const sections = [
|
|
221
|
+
`# ${legend.name}'s Core Principles`,
|
|
222
|
+
'',
|
|
223
|
+
`*${legend.description}*`,
|
|
224
|
+
'',
|
|
225
|
+
];
|
|
226
|
+
if (!legend.principles?.length) {
|
|
227
|
+
sections.push('No principles documented for this legend.');
|
|
228
|
+
return sections.join('\n');
|
|
229
|
+
}
|
|
230
|
+
sections.push('## Fundamental Beliefs');
|
|
231
|
+
legend.principles.forEach((p, i) => {
|
|
232
|
+
sections.push(`${i + 1}. **${p}**`);
|
|
233
|
+
});
|
|
234
|
+
// Add anti-patterns as "What they reject"
|
|
235
|
+
if (legend.anti_patterns?.length) {
|
|
236
|
+
sections.push('');
|
|
237
|
+
sections.push('## What They Reject');
|
|
238
|
+
legend.anti_patterns.forEach(a => {
|
|
239
|
+
sections.push(`- ❌ ${a.pattern || a.name}: ${a.why}`);
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
return sections.join('\n');
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Format just the voice/style
|
|
246
|
+
*/
|
|
247
|
+
function formatVoice(legend) {
|
|
248
|
+
const sections = [
|
|
249
|
+
`# How ${legend.name} Communicates`,
|
|
250
|
+
'',
|
|
251
|
+
];
|
|
252
|
+
if (!legend.voice) {
|
|
253
|
+
sections.push('No voice guidelines documented for this legend.');
|
|
254
|
+
return sections.join('\n');
|
|
255
|
+
}
|
|
256
|
+
sections.push(`**Overall Tone:** ${legend.voice.tone}`);
|
|
257
|
+
sections.push('');
|
|
258
|
+
if (legend.voice.style) {
|
|
259
|
+
sections.push('## Style Guidelines');
|
|
260
|
+
sections.push(legend.voice.style);
|
|
261
|
+
sections.push('');
|
|
262
|
+
}
|
|
263
|
+
if (legend.voice.personality?.length) {
|
|
264
|
+
sections.push('## Personality Traits');
|
|
265
|
+
legend.voice.personality.forEach(p => sections.push(`- ${p}`));
|
|
266
|
+
sections.push('');
|
|
267
|
+
}
|
|
268
|
+
if (legend.voice.vocabulary?.length) {
|
|
269
|
+
sections.push('## Signature Phrases & Vocabulary');
|
|
270
|
+
sections.push('Watch for these characteristic expressions:');
|
|
271
|
+
legend.voice.vocabulary.forEach(v => sections.push(`- "${v}"`));
|
|
272
|
+
sections.push('');
|
|
273
|
+
}
|
|
274
|
+
return sections.join('\n');
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Format just the examples
|
|
278
|
+
*/
|
|
279
|
+
function formatExamples(legend) {
|
|
280
|
+
const sections = [
|
|
281
|
+
`# ${legend.name} - Example Conversations`,
|
|
282
|
+
'',
|
|
283
|
+
'See how they respond to different types of questions:',
|
|
284
|
+
'',
|
|
285
|
+
];
|
|
286
|
+
if (!legend.examples?.length) {
|
|
287
|
+
sections.push('No example conversations documented for this legend.');
|
|
288
|
+
return sections.join('\n');
|
|
289
|
+
}
|
|
290
|
+
legend.examples.forEach((ex, i) => {
|
|
291
|
+
sections.push(`## Example ${i + 1}`);
|
|
292
|
+
sections.push('');
|
|
293
|
+
sections.push('**User:**');
|
|
294
|
+
sections.push(`> ${ex.prompt}`);
|
|
295
|
+
sections.push('');
|
|
296
|
+
sections.push(`**${legend.name}:**`);
|
|
297
|
+
sections.push(`> ${ex.response.split('\n').join('\n> ')}`);
|
|
298
|
+
sections.push('');
|
|
299
|
+
sections.push('---');
|
|
300
|
+
sections.push('');
|
|
301
|
+
});
|
|
302
|
+
return sections.join('\n');
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Generate use cases based on the legend's expertise
|
|
306
|
+
*/
|
|
307
|
+
function generateUseCases(legend) {
|
|
308
|
+
const lines = [];
|
|
309
|
+
// Based on expertise/owns
|
|
310
|
+
if (legend.owns?.length) {
|
|
311
|
+
lines.push(`This legend is ideal for questions about: ${legend.owns.join(', ')}.`);
|
|
312
|
+
lines.push('');
|
|
313
|
+
}
|
|
314
|
+
// Based on patterns
|
|
315
|
+
if (legend.patterns?.length) {
|
|
316
|
+
lines.push('Consider consulting them when you need to:');
|
|
317
|
+
legend.patterns.forEach(p => {
|
|
318
|
+
if (p.when) {
|
|
319
|
+
lines.push(`- ${p.when}`);
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
lines.push(`- Apply ${p.name} thinking`);
|
|
323
|
+
}
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
// Generic fallback
|
|
327
|
+
if (lines.length === 0) {
|
|
328
|
+
lines.push('Consult this legend for strategic thinking and decision-making advice.');
|
|
329
|
+
}
|
|
330
|
+
return lines.join('\n');
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Find legends with complementary or contrasting perspectives
|
|
334
|
+
*/
|
|
335
|
+
function findRelatedLegends(legend) {
|
|
336
|
+
const allLegends = getAllLegends();
|
|
337
|
+
const related = [];
|
|
338
|
+
// Define relationships based on expertise overlap
|
|
339
|
+
const legendTags = new Set(legend.tags || []);
|
|
340
|
+
const legendExpertise = new Set(legend.owns || []);
|
|
341
|
+
for (const other of allLegends) {
|
|
342
|
+
if (other.id === legend.id)
|
|
343
|
+
continue;
|
|
344
|
+
const otherTags = new Set(other.tags || []);
|
|
345
|
+
const otherExpertise = new Set(other.owns || []);
|
|
346
|
+
// Check for tag overlap
|
|
347
|
+
const tagOverlap = [...legendTags].filter(t => otherTags.has(t));
|
|
348
|
+
const expertiseOverlap = [...legendExpertise].filter(e => otherExpertise.has(e));
|
|
349
|
+
if (tagOverlap.length > 0 || expertiseOverlap.length > 0) {
|
|
350
|
+
const overlap = [...tagOverlap, ...expertiseOverlap].slice(0, 2).join(', ');
|
|
351
|
+
related.push({
|
|
352
|
+
id: other.id,
|
|
353
|
+
name: other.name,
|
|
354
|
+
relationship: `Shares expertise in: ${overlap}`,
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// Limit to top 3 related
|
|
359
|
+
return related.slice(0, 3);
|
|
360
|
+
}
|
|
361
|
+
// MCP Tool Definition
|
|
362
|
+
export const getLegendContextTool = {
|
|
363
|
+
name: 'get_legend_context',
|
|
364
|
+
description: `Get EXTREMELY DETAILED information about a legendary founder or investor.
|
|
365
|
+
|
|
366
|
+
This tool provides:
|
|
367
|
+
- **Full identity** - Who they are, their background, their worldview
|
|
368
|
+
- **Voice & style** - How they communicate, characteristic phrases
|
|
369
|
+
- **Core principles** - Their fundamental beliefs and values
|
|
370
|
+
- **Thinking frameworks** - Step-by-step methods they use for decisions
|
|
371
|
+
- **Anti-patterns** - What they would NEVER do
|
|
372
|
+
- **Example conversations** - See them respond in character
|
|
373
|
+
- **Use cases** - When to consult this legend
|
|
374
|
+
|
|
375
|
+
Formats available:
|
|
376
|
+
- \`full\` - Everything (recommended for deep understanding)
|
|
377
|
+
- \`frameworks\` - Just their thinking methods
|
|
378
|
+
- \`principles\` - Just their beliefs
|
|
379
|
+
- \`voice\` - Just their communication style
|
|
380
|
+
- \`examples\` - Just sample conversations
|
|
381
|
+
- \`system_prompt\` - For custom AI integrations
|
|
382
|
+
- \`markdown\` - Readable overview
|
|
383
|
+
|
|
384
|
+
DISCLAIMER: AI personas for educational purposes only. Not affiliated with real individuals.`,
|
|
385
|
+
inputSchema: {
|
|
386
|
+
type: 'object',
|
|
387
|
+
properties: {
|
|
388
|
+
legend_id: {
|
|
389
|
+
type: 'string',
|
|
390
|
+
description: 'The legend ID (e.g., "elon-musk", "warren-buffett", "steve-jobs")',
|
|
391
|
+
},
|
|
392
|
+
format: {
|
|
393
|
+
type: 'string',
|
|
394
|
+
enum: ['full', 'markdown', 'system_prompt', 'frameworks', 'principles', 'voice', 'examples'],
|
|
395
|
+
description: 'Output format (default: "full" for maximum detail)',
|
|
396
|
+
default: 'full',
|
|
397
|
+
},
|
|
398
|
+
include_related: {
|
|
399
|
+
type: 'boolean',
|
|
400
|
+
description: 'Include related legends with complementary perspectives',
|
|
401
|
+
default: false,
|
|
402
|
+
},
|
|
403
|
+
},
|
|
404
|
+
required: ['legend_id'],
|
|
405
|
+
},
|
|
406
|
+
};
|
|
407
|
+
//# sourceMappingURL=get-legend-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-legend-context.js","sourceRoot":"","sources":["../../src/tools/get-legend-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const getLegendInsightTool: {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
inputSchema: {
|
|
6
|
+
type: "object";
|
|
7
|
+
properties: {
|
|
8
|
+
legend_id: {
|
|
9
|
+
type: string;
|
|
10
|
+
description: string;
|
|
11
|
+
};
|
|
12
|
+
topic: {
|
|
13
|
+
type: string;
|
|
14
|
+
description: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
required: string[];
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export declare const getLegendInsightSchema: z.ZodObject<{
|
|
21
|
+
legend_id: z.ZodString;
|
|
22
|
+
topic: z.ZodOptional<z.ZodString>;
|
|
23
|
+
}, "strip", z.ZodTypeAny, {
|
|
24
|
+
legend_id: string;
|
|
25
|
+
topic?: string | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
legend_id: string;
|
|
28
|
+
topic?: string | undefined;
|
|
29
|
+
}>;
|
|
30
|
+
export type GetLegendInsightInput = z.infer<typeof getLegendInsightSchema>;
|
|
31
|
+
export declare function getLegendInsight(input: GetLegendInsightInput): string;
|
|
32
|
+
export declare function getAllLegendInsights(legendId: string): string;
|
|
33
|
+
//# sourceMappingURL=get-legend-insight.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-legend-insight.d.ts","sourceRoot":"","sources":["../../src/tools/get-legend-insight.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;CAiBhC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;EAGjC,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AA+I3E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,GAC3B,MAAM,CAyBR;AAGD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,GACf,MAAM,CAqBR"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
// Get Legend Insight - Quick wisdom from legendary figures
|
|
2
|
+
// Inspired by Claude Code's ★ Insight format
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
import { getLegendById } from '../legends/loader.js';
|
|
5
|
+
// Tool definition for MCP
|
|
6
|
+
export const getLegendInsightTool = {
|
|
7
|
+
name: 'get_legend_insight',
|
|
8
|
+
description: 'Get a quick insight or wisdom snippet from a legendary founder/investor. Returns formatted wisdom in the style of a thought leader.',
|
|
9
|
+
inputSchema: {
|
|
10
|
+
type: 'object',
|
|
11
|
+
properties: {
|
|
12
|
+
legend_id: {
|
|
13
|
+
type: 'string',
|
|
14
|
+
description: 'ID of the legend (e.g., "elon-musk", "warren-buffett", "cz-binance")',
|
|
15
|
+
},
|
|
16
|
+
topic: {
|
|
17
|
+
type: 'string',
|
|
18
|
+
description: 'Optional topic to get insight about (e.g., "hiring", "fundraising", "product")',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
required: ['legend_id'],
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
export const getLegendInsightSchema = z.object({
|
|
25
|
+
legend_id: z.string().describe('ID of the legend to get insight from (e.g., "elon-musk", "warren-buffett")'),
|
|
26
|
+
topic: z.string().optional().describe('Optional topic to get insight about (e.g., "hiring", "fundraising", "product")'),
|
|
27
|
+
});
|
|
28
|
+
// Signature insights by legend - their most iconic wisdom
|
|
29
|
+
const LEGEND_INSIGHTS = {
|
|
30
|
+
'elon-musk': {
|
|
31
|
+
quotes: [
|
|
32
|
+
'The first step is to establish that something is possible; then probability will occur.',
|
|
33
|
+
'I think it\'s important to reason from first principles rather than by analogy.',
|
|
34
|
+
'The best part is no part. The best process is no process.',
|
|
35
|
+
'If you\'re not failing, you\'re not innovating enough.',
|
|
36
|
+
'Constantly think about how you could be doing things better.',
|
|
37
|
+
],
|
|
38
|
+
frameworks: [
|
|
39
|
+
'**First Principles**: Break down to fundamental truths, rebuild from there.',
|
|
40
|
+
'**Idiot Index**: Compare final cost vs raw materials cost to find inefficiency.',
|
|
41
|
+
'**Delete First**: Before optimizing, ask if you need it at all.',
|
|
42
|
+
'**Physics Check**: What does physics allow? Start from constraints.',
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
'warren-buffett': {
|
|
46
|
+
quotes: [
|
|
47
|
+
'Price is what you pay, value is what you get.',
|
|
48
|
+
'Be fearful when others are greedy and greedy when others are fearful.',
|
|
49
|
+
'Only when the tide goes out do you discover who\'s been swimming naked.',
|
|
50
|
+
'Time is the friend of the wonderful company, the enemy of the mediocre.',
|
|
51
|
+
'The stock market is designed to transfer money from the Active to the Patient.',
|
|
52
|
+
],
|
|
53
|
+
frameworks: [
|
|
54
|
+
'**Circle of Competence**: Only invest in what you truly understand.',
|
|
55
|
+
'**Margin of Safety**: Always buy at a discount to intrinsic value.',
|
|
56
|
+
'**Moat Analysis**: Look for sustainable competitive advantages.',
|
|
57
|
+
'**10-Year Test**: Would you own this for a decade without checking the price?',
|
|
58
|
+
],
|
|
59
|
+
},
|
|
60
|
+
'steve-jobs': {
|
|
61
|
+
quotes: [
|
|
62
|
+
'Design is not just what it looks like and feels like. Design is how it works.',
|
|
63
|
+
'People don\'t know what they want until you show it to them.',
|
|
64
|
+
'Stay hungry, stay foolish.',
|
|
65
|
+
'Simplicity is the ultimate sophistication.',
|
|
66
|
+
'The journey is the reward.',
|
|
67
|
+
],
|
|
68
|
+
frameworks: [
|
|
69
|
+
'**A-Player Obsession**: A-players hire A-players. B-players hire C-players.',
|
|
70
|
+
'**Saying No**: Focus means saying no to 100 things to say yes to 1.',
|
|
71
|
+
'**Intersection Method**: Magic happens at intersection of liberal arts and technology.',
|
|
72
|
+
'**Reality Distortion**: Believe something is possible, then make it happen.',
|
|
73
|
+
],
|
|
74
|
+
},
|
|
75
|
+
'paul-graham': {
|
|
76
|
+
quotes: [
|
|
77
|
+
'Make something people want.',
|
|
78
|
+
'Do things that don\'t scale.',
|
|
79
|
+
'Launch fast and iterate.',
|
|
80
|
+
'Better to make a few users love you than a lot ambivalent.',
|
|
81
|
+
'Startups don\'t die, they commit suicide.',
|
|
82
|
+
],
|
|
83
|
+
frameworks: [
|
|
84
|
+
'**Schlep Blindness**: The best ideas are often tedious work others avoid.',
|
|
85
|
+
'**Default Alive/Dead**: Are you profitable before money runs out?',
|
|
86
|
+
'**Frighteningly Ambitious**: The best ideas seem initially crazy.',
|
|
87
|
+
'**Relentlessly Resourceful**: The 2 words that define good startup founders.',
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
'cz-binance': {
|
|
91
|
+
quotes: [
|
|
92
|
+
'Funds are SAFU.',
|
|
93
|
+
'4',
|
|
94
|
+
'Ignore FUD, focus on building.',
|
|
95
|
+
'Stay humble.',
|
|
96
|
+
'Users first.',
|
|
97
|
+
],
|
|
98
|
+
frameworks: [
|
|
99
|
+
'**Global-First**: Launch in every market from day one.',
|
|
100
|
+
'**User-First Decision Making**: Every choice should benefit users.',
|
|
101
|
+
'**BUIDL Mentality**: Keep building regardless of market conditions.',
|
|
102
|
+
'**Transparency Protocol**: When in doubt, communicate more.',
|
|
103
|
+
],
|
|
104
|
+
},
|
|
105
|
+
'michael-heinrich': {
|
|
106
|
+
quotes: [
|
|
107
|
+
'Ship it, then iterate.',
|
|
108
|
+
'Talk to users constantly.',
|
|
109
|
+
'Not financial advice.',
|
|
110
|
+
'The best infrastructure is invisible.',
|
|
111
|
+
'Make something people want - then decentralize it.',
|
|
112
|
+
],
|
|
113
|
+
frameworks: [
|
|
114
|
+
'**YC Mindset**: Talk to users, build what they want, ship fast.',
|
|
115
|
+
'**Exit Lessons**: Under-promise, over-deliver. Build trust through consistency.',
|
|
116
|
+
'**Infrastructure Layer Thinking**: Be the foundation others build on.',
|
|
117
|
+
'**Decentralized AI Thesis**: AI needs decentralized data to be trustworthy.',
|
|
118
|
+
],
|
|
119
|
+
},
|
|
120
|
+
'anatoly-yakovenko': {
|
|
121
|
+
quotes: [
|
|
122
|
+
'Performance is the only moat that matters.',
|
|
123
|
+
'We optimize for TPS, not validator count.',
|
|
124
|
+
'Hardware trends are the tailwind.',
|
|
125
|
+
'Users care about speed and cost, not decentralization theater.',
|
|
126
|
+
'If Solana goes down, I lose sleep. That\'s how you know I care.',
|
|
127
|
+
],
|
|
128
|
+
frameworks: [
|
|
129
|
+
'**Hardware Trends First**: Design for where hardware is going, not where it is.',
|
|
130
|
+
'**Pragmatic Decentralization**: Enough for security, not for theater.',
|
|
131
|
+
'**Parallel Execution**: Don\'t sequence what can run in parallel.',
|
|
132
|
+
'**Proof of History**: Solve the time problem, solve the scaling problem.',
|
|
133
|
+
],
|
|
134
|
+
},
|
|
135
|
+
'mert-mumtaz': {
|
|
136
|
+
quotes: [
|
|
137
|
+
'Developer experience is product.',
|
|
138
|
+
'Documentation is not optional, it\'s the product.',
|
|
139
|
+
'If your RPC is slow, your app is slow.',
|
|
140
|
+
'Every support ticket is a product insight.',
|
|
141
|
+
'Build for builders.',
|
|
142
|
+
],
|
|
143
|
+
frameworks: [
|
|
144
|
+
'**DX-First Development**: Developer experience determines adoption.',
|
|
145
|
+
'**Docs as Product**: Documentation quality = product quality.',
|
|
146
|
+
'**Community Feedback Loop**: Discord, Twitter, support = roadmap.',
|
|
147
|
+
'**Infrastructure Excellence**: Backend quality enables frontend magic.',
|
|
148
|
+
],
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
// Add default insights for legends without specific entries
|
|
152
|
+
const DEFAULT_INSIGHTS = {
|
|
153
|
+
quotes: [
|
|
154
|
+
'Success leaves clues.',
|
|
155
|
+
'Focus on fundamentals.',
|
|
156
|
+
'Long-term thinking wins.',
|
|
157
|
+
'Build something meaningful.',
|
|
158
|
+
'Learn from every failure.',
|
|
159
|
+
],
|
|
160
|
+
frameworks: [
|
|
161
|
+
'**First Principles**: Question assumptions, reason from ground truth.',
|
|
162
|
+
'**Long-term Thinking**: What matters in 10 years?',
|
|
163
|
+
'**Compounding**: Small consistent efforts compound over time.',
|
|
164
|
+
'**Focus**: Do fewer things better.',
|
|
165
|
+
],
|
|
166
|
+
};
|
|
167
|
+
export function getLegendInsight(input) {
|
|
168
|
+
const legend = getLegendById(input.legend_id);
|
|
169
|
+
if (!legend) {
|
|
170
|
+
return `Legend "${input.legend_id}" not found. Use list_legends to see available legends.`;
|
|
171
|
+
}
|
|
172
|
+
const insights = LEGEND_INSIGHTS[input.legend_id] || DEFAULT_INSIGHTS;
|
|
173
|
+
// Pick a random quote and format as insight block
|
|
174
|
+
const randomQuote = insights.quotes[Math.floor(Math.random() * insights.quotes.length)];
|
|
175
|
+
const randomFramework = insights.frameworks[Math.floor(Math.random() * insights.frameworks.length)];
|
|
176
|
+
const insightBlock = `
|
|
177
|
+
╭─── 💡 ${legend.name}'s Insight ──────────────────────────╮
|
|
178
|
+
|
|
179
|
+
"${randomQuote}"
|
|
180
|
+
|
|
181
|
+
${randomFramework}
|
|
182
|
+
|
|
183
|
+
╰────────────────────────────────────────────────────────╯
|
|
184
|
+
|
|
185
|
+
*Want more? Use \`chat_with_legend\` to have a full conversation.*
|
|
186
|
+
`;
|
|
187
|
+
return insightBlock.trim();
|
|
188
|
+
}
|
|
189
|
+
// Get all insights for a legend (for reference)
|
|
190
|
+
export function getAllLegendInsights(legendId) {
|
|
191
|
+
const legend = getLegendById(legendId);
|
|
192
|
+
if (!legend) {
|
|
193
|
+
return `Legend "${legendId}" not found.`;
|
|
194
|
+
}
|
|
195
|
+
const insights = LEGEND_INSIGHTS[legendId] || DEFAULT_INSIGHTS;
|
|
196
|
+
const sections = [
|
|
197
|
+
`# 💡 ${legend.name}'s Wisdom`,
|
|
198
|
+
'',
|
|
199
|
+
'## Key Quotes',
|
|
200
|
+
...insights.quotes.map((q, i) => `${i + 1}. "${q}"`),
|
|
201
|
+
'',
|
|
202
|
+
'## Thinking Frameworks',
|
|
203
|
+
...insights.frameworks,
|
|
204
|
+
'',
|
|
205
|
+
'*AI persona for educational purposes only. Not affiliated with the real person.*',
|
|
206
|
+
];
|
|
207
|
+
return sections.join('\n');
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=get-legend-insight.js.map
|