legends-mcp 1.1.1 → 1.1.3

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 (59) hide show
  1. package/LICENSE +21 -0
  2. package/dist/index.js +22 -8
  3. package/dist/index.js.map +1 -1
  4. package/dist/legends/prompt-builder.d.ts.map +1 -1
  5. package/dist/legends/prompt-builder.js +23 -0
  6. package/dist/legends/prompt-builder.js.map +1 -1
  7. package/dist/tools/get-legend-insight.d.ts +5 -1
  8. package/dist/tools/get-legend-insight.d.ts.map +1 -1
  9. package/dist/tools/get-legend-insight.js +69 -7
  10. package/dist/tools/get-legend-insight.js.map +1 -1
  11. package/dist/tools/index.d.ts +14 -0
  12. package/dist/tools/index.d.ts.map +1 -1
  13. package/dist/tools/index.js +3 -0
  14. package/dist/tools/index.js.map +1 -1
  15. package/dist/tools/list-legends.d.ts +1 -1
  16. package/dist/tools/list-legends.d.ts.map +1 -1
  17. package/dist/tools/list-legends.js +1 -1
  18. package/dist/tools/list-legends.js.map +1 -1
  19. package/dist/tools/search-legends.d.ts +36 -0
  20. package/dist/tools/search-legends.d.ts.map +1 -0
  21. package/dist/tools/search-legends.js +73 -0
  22. package/dist/tools/search-legends.js.map +1 -0
  23. package/dist/tools/summon-legend.d.ts +2 -0
  24. package/dist/tools/summon-legend.d.ts.map +1 -1
  25. package/dist/tools/summon-legend.js +21 -6
  26. package/dist/tools/summon-legend.js.map +1 -1
  27. package/legends/charlie-munger/skill.yaml +1 -0
  28. package/legends/elon-musk/skill.yaml +1 -0
  29. package/legends/jeff-bezos/skill.yaml +1 -0
  30. package/legends/jensen-huang/skill.yaml +4 -0
  31. package/legends/marc-andreessen/skill.yaml +4 -0
  32. package/legends/naval-ravikant/skill.yaml +1 -0
  33. package/legends/paul-graham/skill.yaml +1 -0
  34. package/legends/peter-thiel/skill.yaml +1 -0
  35. package/legends/reid-hoffman/skill.yaml +4 -0
  36. package/legends/sam-altman/skill.yaml +4 -0
  37. package/legends/steve-jobs/skill.yaml +1 -0
  38. package/legends/warren-buffett/skill.yaml +4 -0
  39. package/package.json +4 -2
  40. package/dist/agents/guardrails.d.ts +0 -44
  41. package/dist/agents/guardrails.d.ts.map +0 -1
  42. package/dist/agents/guardrails.js +0 -144
  43. package/dist/agents/guardrails.js.map +0 -1
  44. package/dist/agents/misbehavior-prevention.d.ts +0 -33
  45. package/dist/agents/misbehavior-prevention.d.ts.map +0 -1
  46. package/dist/agents/misbehavior-prevention.js +0 -278
  47. package/dist/agents/misbehavior-prevention.js.map +0 -1
  48. package/dist/config.d.ts +0 -4
  49. package/dist/config.d.ts.map +0 -1
  50. package/dist/config.js +0 -27
  51. package/dist/config.js.map +0 -1
  52. package/dist/insights/smart-injection.d.ts +0 -67
  53. package/dist/insights/smart-injection.d.ts.map +0 -1
  54. package/dist/insights/smart-injection.js +0 -257
  55. package/dist/insights/smart-injection.js.map +0 -1
  56. package/dist/legends/personality.d.ts +0 -24
  57. package/dist/legends/personality.d.ts.map +0 -1
  58. package/dist/legends/personality.js +0 -211
  59. package/dist/legends/personality.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  id: elon-musk
2
+ category: legends
2
3
  name: Elon Musk Mind
3
4
  version: 1.0.0
4
5
  layer: 0
@@ -1,4 +1,5 @@
1
1
  id: jeff-bezos
2
+ category: legends
2
3
  name: Jeff Bezos Mind
3
4
  version: 1.0.0
4
5
  layer: 0
@@ -3,6 +3,10 @@ id: jensen-huang
3
3
  layer: 1
4
4
  category: legends
5
5
  description: Think like the leather jacket-wearing CEO of the AI era. Accelerated computing, betting the company, and relentless execution. Jensen's philosophies on technology vision, company building, and staying ahead of the curve.
6
+ tags:
7
+ - persona
8
+ - AI
9
+ - hardware
6
10
 
7
11
  identity: |
8
12
  You are Jensen Huang, founder and CEO of NVIDIA. You started the company in a Denny's
@@ -3,6 +3,10 @@ id: marc-andreessen
3
3
  layer: 1
4
4
  category: legends
5
5
  description: Think like the godfather of modern venture capital. Software eating the world, techno-optimism, and building the future. Marc's aggressive takes on technology, markets, and the builder mindset.
6
+ tags:
7
+ - persona
8
+ - VC
9
+ - technology
6
10
 
7
11
  identity: |
8
12
  You are Marc Andreessen, co-founder of Netscape, co-founder of a16z, and one of the
@@ -1,4 +1,5 @@
1
1
  id: naval-ravikant
2
+ category: legends
2
3
  name: Naval Ravikant Mind
3
4
  version: 1.0.0
4
5
  layer: 0
@@ -1,4 +1,5 @@
1
1
  id: paul-graham
2
+ category: legends
2
3
  name: Paul Graham Mind
3
4
  version: 1.0.0
4
5
  layer: 0
@@ -1,4 +1,5 @@
1
1
  id: peter-thiel
2
+ category: legends
2
3
  name: Peter Thiel Mind
3
4
  version: 1.0.0
4
5
  layer: 0
@@ -3,6 +3,10 @@ id: reid-hoffman
3
3
  layer: 1
4
4
  category: legends
5
5
  description: Think like the network philosopher of Silicon Valley. Professional identity as a startup, the power of networks, and blitzscaling. Reid's frameworks for career, relationships, and building at speed.
6
+ tags:
7
+ - persona
8
+ - networking
9
+ - VC
6
10
 
7
11
  identity: |
8
12
  You are Reid Hoffman, co-founder of LinkedIn, partner at Greylock, and one of the
@@ -3,6 +3,10 @@ id: sam-altman
3
3
  layer: 1
4
4
  category: legends
5
5
  description: Think like the architect of the AI age. Startup fundamentals from YC, the long game of AGI development, and navigating the intersection of technology and society.
6
+ tags:
7
+ - persona
8
+ - AI
9
+ - startup
6
10
 
7
11
  identity: |
8
12
  You are Sam Altman, CEO of OpenAI and former president of Y Combinator. You're at the
@@ -1,4 +1,5 @@
1
1
  id: steve-jobs
2
+ category: legends
2
3
  name: Steve Jobs Mind
3
4
  version: 1.0.0
4
5
  layer: 0
@@ -3,6 +3,10 @@ id: warren-buffett
3
3
  layer: 1
4
4
  category: legends
5
5
  description: Think like the Oracle of Omaha. Long-term value investing, circle of competence, and the power of compound returns. Warren's folksy wisdom on business, markets, and life.
6
+ tags:
7
+ - persona
8
+ - investing
9
+ - value
6
10
 
7
11
  identity: |
8
12
  You are Warren Buffett, the Oracle of Omaha. You've been investing for over 70 years
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "legends-mcp",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "mcpName": "io.github.cryptosquanch/legends-mcp",
5
5
  "description": "Chat with legendary founders & investors via MCP. Elon, Buffett, Jobs, CZ, and more. No API key required!",
6
6
  "main": "dist/index.js",
@@ -20,7 +20,9 @@
20
20
  "dev": "tsc --watch",
21
21
  "start": "node dist/index.js",
22
22
  "bundle": "node scripts/bundle-legends.js",
23
- "prepublishOnly": "npm run build"
23
+ "validate": "node scripts/validate-legends.js",
24
+ "validate:verbose": "node scripts/validate-legends.js --verbose",
25
+ "prepublishOnly": "npm run validate && npm run build"
24
26
  },
25
27
  "keywords": [
26
28
  "mcp",
@@ -1,44 +0,0 @@
1
- import type { LegendSkill } from '../types.js';
2
- export interface GuardrailResult {
3
- passed: boolean;
4
- violations: string[];
5
- sanitizedResponse?: string;
6
- }
7
- export declare function buildLegendGuardrails(legend: LegendSkill): RegExp[];
8
- /**
9
- * Check if a response violates any guardrails
10
- * Returns violations if any, or empty array if passed
11
- */
12
- export declare function checkGuardrails(response: string, legend: LegendSkill, context?: {
13
- topic?: string;
14
- }): GuardrailResult;
15
- /**
16
- * Add required disclaimers to response if missing
17
- */
18
- export declare function addRequiredDisclaimers(response: string, legend: LegendSkill, context?: {
19
- topic?: string;
20
- }): string;
21
- /**
22
- * Validate response before returning to user
23
- * This is the main guardrail enforcement function
24
- */
25
- export declare function enforceGuardrails(response: string, legend: LegendSkill, context?: {
26
- topic?: string;
27
- }): {
28
- response: string;
29
- warnings: string[];
30
- };
31
- /**
32
- * Pre-check user input for topics that require extra care
33
- */
34
- export declare function detectSensitiveTopics(userMessage: string): {
35
- isFinancial: boolean;
36
- isInvestmentAdvice: boolean;
37
- requiresNFA: boolean;
38
- };
39
- /**
40
- * Generate pre-prompt injection for sensitive topics
41
- * This adds extra instructions before the user's message
42
- */
43
- export declare function generateSensitivityPreamble(userMessage: string, legend: LegendSkill): string | null;
44
- //# sourceMappingURL=guardrails.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guardrails.d.ts","sourceRoot":"","sources":["../../src/agents/guardrails.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAwBD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAenE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,eAAe,CAgCjB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B,MAAM,CAcR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC3B;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAqB1C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG;IAC1D,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,EAAE,OAAO,CAAC;CACtB,CASA;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,WAAW,GAClB,MAAM,GAAG,IAAI,CAqBf"}
@@ -1,144 +0,0 @@
1
- // Agent Guardrails - Enforce character consistency with code, not just prompts
2
- // This prevents legends from saying things they would NEVER say
3
- // Universal guardrails for ALL crypto legends
4
- const UNIVERSAL_CRYPTO_GUARDRAILS = [
5
- {
6
- pattern: /\b(buy|sell|invest in|purchase)\s+(this\s+)?token/i,
7
- message: 'Financial advice detected - legends never give investment advice',
8
- },
9
- {
10
- pattern: /\b(guaranteed|certain|definitely|100%)\s+(returns?|profit|gains?)/i,
11
- message: 'Guaranteed returns claim detected - never promise financial outcomes',
12
- },
13
- {
14
- pattern: /\b(price|token)\s+will\s+(go|reach|hit)\s+\$?\d+/i,
15
- message: 'Price prediction detected - legends never predict prices',
16
- },
17
- {
18
- pattern: /\bnot financial advice\b/i,
19
- invert: true, // This should be PRESENT when discussing finance
20
- context: 'finance',
21
- },
22
- ];
23
- // Legend-specific guardrails loaded from YAML
24
- export function buildLegendGuardrails(legend) {
25
- const patterns = [];
26
- // Convert never_say to regex patterns
27
- if (legend.never_say) {
28
- for (const item of legend.never_say) {
29
- // Extract the quoted phrase if present
30
- const match = item.match(/"([^"]+)"/);
31
- if (match) {
32
- patterns.push(new RegExp(match[1], 'i'));
33
- }
34
- }
35
- }
36
- return patterns;
37
- }
38
- /**
39
- * Check if a response violates any guardrails
40
- * Returns violations if any, or empty array if passed
41
- */
42
- export function checkGuardrails(response, legend, context) {
43
- const violations = [];
44
- // Check universal crypto guardrails for crypto legends
45
- const isCryptoLegend = legend.tags?.includes('crypto');
46
- if (isCryptoLegend) {
47
- for (const guardrail of UNIVERSAL_CRYPTO_GUARDRAILS) {
48
- if (guardrail.invert) {
49
- // This pattern SHOULD be present in certain contexts
50
- if (context?.topic === guardrail.context && !guardrail.pattern.test(response)) {
51
- violations.push(`Missing required disclaimer for ${guardrail.context} topic`);
52
- }
53
- }
54
- else {
55
- if (guardrail.pattern.test(response) && guardrail.message) {
56
- violations.push(guardrail.message);
57
- }
58
- }
59
- }
60
- }
61
- // Check legend-specific guardrails
62
- const legendPatterns = buildLegendGuardrails(legend);
63
- for (const pattern of legendPatterns) {
64
- if (pattern.test(response)) {
65
- violations.push(`Response contains forbidden phrase: ${pattern.source}`);
66
- }
67
- }
68
- return {
69
- passed: violations.length === 0,
70
- violations,
71
- };
72
- }
73
- /**
74
- * Add required disclaimers to response if missing
75
- */
76
- export function addRequiredDisclaimers(response, legend, context) {
77
- const isCryptoLegend = legend.tags?.includes('crypto');
78
- // Add NFA disclaimer for crypto legends discussing anything financial
79
- if (isCryptoLegend) {
80
- const financialKeywords = /\b(token|invest|price|trading|portfolio|returns?|profits?)\b/i;
81
- const hasNFA = /not financial advice|nfa|dyor/i.test(response);
82
- if (financialKeywords.test(response) && !hasNFA) {
83
- response += '\n\n---\n*Not financial advice. Always DYOR.*';
84
- }
85
- }
86
- return response;
87
- }
88
- /**
89
- * Validate response before returning to user
90
- * This is the main guardrail enforcement function
91
- */
92
- export function enforceGuardrails(response, legend, context) {
93
- const warnings = [];
94
- // Check for violations
95
- const result = checkGuardrails(response, legend, context);
96
- if (!result.passed) {
97
- // Log violations (don't block, but warn)
98
- warnings.push(...result.violations);
99
- // For severe violations, we could block or sanitize
100
- // For now, we add disclaimers and warn
101
- }
102
- // Add required disclaimers
103
- const enhancedResponse = addRequiredDisclaimers(response, legend, context);
104
- return {
105
- response: enhancedResponse,
106
- warnings,
107
- };
108
- }
109
- /**
110
- * Pre-check user input for topics that require extra care
111
- */
112
- export function detectSensitiveTopics(userMessage) {
113
- const isFinancial = /\b(token|price|invest|trading|portfolio|buy|sell)\b/i.test(userMessage);
114
- const isInvestmentAdvice = /\b(should i (buy|sell|invest)|is .+ a good investment|price prediction)\b/i.test(userMessage);
115
- return {
116
- isFinancial,
117
- isInvestmentAdvice,
118
- requiresNFA: isFinancial || isInvestmentAdvice,
119
- };
120
- }
121
- /**
122
- * Generate pre-prompt injection for sensitive topics
123
- * This adds extra instructions before the user's message
124
- */
125
- export function generateSensitivityPreamble(userMessage, legend) {
126
- const sensitivity = detectSensitiveTopics(userMessage);
127
- if (sensitivity.isInvestmentAdvice) {
128
- return `[SYSTEM: The user is asking for investment advice. Remember:
129
- 1. You NEVER give financial advice
130
- 2. Always include "Not financial advice" disclaimer
131
- 3. Redirect to technology and fundamentals
132
- 4. Remind them to do their own research (DYOR)
133
- 5. Never predict prices or promise returns]
134
-
135
- `;
136
- }
137
- if (sensitivity.isFinancial) {
138
- return `[SYSTEM: Financial topic detected. Include NFA disclaimer in your response.]
139
-
140
- `;
141
- }
142
- return null;
143
- }
144
- //# sourceMappingURL=guardrails.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"guardrails.js","sourceRoot":"","sources":["../../src/agents/guardrails.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAC/E,gEAAgE;AAUhE,8CAA8C;AAC9C,MAAM,2BAA2B,GAAG;IAClC;QACE,OAAO,EAAE,oDAAoD;QAC7D,OAAO,EAAE,kEAAkE;KAC5E;IACD;QACE,OAAO,EAAE,oEAAoE;QAC7E,OAAO,EAAE,sEAAsE;KAChF;IACD;QACE,OAAO,EAAE,mDAAmD;QAC5D,OAAO,EAAE,0DAA0D;KACpE;IACD;QACE,OAAO,EAAE,2BAA2B;QACpC,MAAM,EAAE,IAAI,EAAE,iDAAiD;QAC/D,OAAO,EAAE,SAAS;KACnB;CACF,CAAC;AAEF,8CAA8C;AAC9C,MAAM,UAAU,qBAAqB,CAAC,MAAmB;IACvD,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,sCAAsC;IACtC,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACpC,uCAAuC;YACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACtC,IAAI,KAAK,EAAE,CAAC;gBACV,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,MAAmB,EACnB,OAA4B;IAE5B,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,uDAAuD;IACvD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,MAAM,SAAS,IAAI,2BAA2B,EAAE,CAAC;YACpD,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;gBACrB,qDAAqD;gBACrD,IAAI,OAAO,EAAE,KAAK,KAAK,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9E,UAAU,CAAC,IAAI,CAAC,mCAAmC,SAAS,CAAC,OAAO,QAAQ,CAAC,CAAC;gBAChF,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;oBAC1D,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,MAAM,cAAc,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrD,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;QACrC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3B,UAAU,CAAC,IAAI,CAAC,uCAAuC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;QAC/B,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAgB,EAChB,MAAmB,EACnB,OAA4B;IAE5B,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEvD,sEAAsE;IACtE,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,iBAAiB,GAAG,+DAA+D,CAAC;QAC1F,MAAM,MAAM,GAAG,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/D,IAAI,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAChD,QAAQ,IAAI,+CAA+C,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,QAAgB,EAChB,MAAmB,EACnB,OAA4B;IAE5B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,uBAAuB;IACvB,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAE1D,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACnB,yCAAyC;QACzC,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEpC,oDAAoD;QACpD,uCAAuC;IACzC,CAAC;IAED,2BAA2B;IAC3B,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAE3E,OAAO;QACL,QAAQ,EAAE,gBAAgB;QAC1B,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IAKvD,MAAM,WAAW,GAAG,sDAAsD,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC7F,MAAM,kBAAkB,GAAG,4EAA4E,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAE1H,OAAO;QACL,WAAW;QACX,kBAAkB;QAClB,WAAW,EAAE,WAAW,IAAI,kBAAkB;KAC/C,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CACzC,WAAmB,EACnB,MAAmB;IAEnB,MAAM,WAAW,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACnC,OAAO;;;;;;;CAOV,CAAC;IACA,CAAC;IAED,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO;;CAEV,CAAC;IACA,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,33 +0,0 @@
1
- import type { LegendSkill } from '../types.js';
2
- export interface MisbehaviorCheck {
3
- passed: boolean;
4
- issues: MisbehaviorIssue[];
5
- severity: 'low' | 'medium' | 'high' | 'critical';
6
- suggestions: string[];
7
- }
8
- export interface MisbehaviorIssue {
9
- type: 'character_break' | 'generic' | 'harmful' | 'quality' | 'annoying';
10
- message: string;
11
- severity: 'low' | 'medium' | 'high' | 'critical';
12
- matched?: string;
13
- }
14
- /**
15
- * Check response for misbehavior
16
- */
17
- export declare function checkMisbehavior(response: string, legend: LegendSkill): MisbehaviorCheck;
18
- /**
19
- * Pre-check user input for potential issues
20
- */
21
- export declare function preCheckUserInput(message: string, legend: LegendSkill): {
22
- needsWarning: boolean;
23
- warnings: string[];
24
- };
25
- /**
26
- * Sanitize response to remove problematic content
27
- */
28
- export declare function sanitizeResponse(response: string, legend: LegendSkill): string;
29
- /**
30
- * Generate quality improvement suggestions
31
- */
32
- export declare function getSuggestions(response: string, legend: LegendSkill): string[];
33
- //# sourceMappingURL=misbehavior-prevention.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"misbehavior-prevention.d.ts","sourceRoot":"","sources":["../../src/agents/misbehavior-prevention.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAwF/C,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IACzE,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,gBAAgB,CAuHlB;AAoCD;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,WAAW,GAClB;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA4B/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,WAAW,GAClB,MAAM,EAAE,CAGV"}
@@ -1,278 +0,0 @@
1
- // Misbehavior Prevention System
2
- // Ensures legends stay in character and don't go rogue
3
- /**
4
- * MISBEHAVIOR CATEGORIES:
5
- *
6
- * 1. BREAKING CHARACTER
7
- * - Saying "As an AI" or "I'm an AI"
8
- * - Generic chatbot responses
9
- * - Inconsistent personality
10
- *
11
- * 2. HARMFUL CONTENT
12
- * - Financial advice (especially crypto)
13
- * - Medical/legal advice
14
- * - Harmful instructions
15
- *
16
- * 3. QUALITY ISSUES
17
- * - Too long/rambling responses
18
- * - Off-topic tangents
19
- * - Repetitive content
20
- * - Hallucinated quotes/facts
21
- *
22
- * 4. ANNOYING BEHAVIORS
23
- * - Being preachy/condescending
24
- * - Excessive disclaimers
25
- * - Over-explaining
26
- * - Unsolicited opinions
27
- */
28
- // Character breaking patterns
29
- const CHARACTER_BREAK_PATTERNS = [
30
- /\bas an ai\b/i,
31
- /\bi('m| am) an? (ai|artificial|language model|llm|chatbot)/i,
32
- /\bi cannot (actually|really|truly)/i,
33
- /\bi don't have (personal|real|actual) (opinions|feelings|experiences)/i,
34
- /\bbased on my training/i,
35
- /\bmy knowledge (cutoff|was trained)/i,
36
- /\bi was (created|trained|developed) by/i,
37
- /\bi'm (just|only) a (program|model|ai)/i,
38
- /\baccording to my programming/i,
39
- /\bi lack the ability to/i,
40
- ];
41
- // Generic chatbot responses (avoid these)
42
- const GENERIC_PATTERNS = [
43
- /\bi'd be happy to help/i,
44
- /\bthat's a great question/i,
45
- /\bcertainly! (here|let me)/i,
46
- /\babsolutely! (i|let)/i,
47
- /\bi understand (you're|your)/i,
48
- /\bthank you for (sharing|asking)/i,
49
- /\bi appreciate (you|your)/i,
50
- /\blet me think about that/i,
51
- /\bthat's an interesting (question|point)/i,
52
- ];
53
- // Harmful advice patterns
54
- const HARMFUL_PATTERNS = [
55
- // Financial advice
56
- /\byou should (buy|sell|invest in)/i,
57
- /\bi (recommend|suggest) (buying|selling|investing)/i,
58
- /\bguaranteed (returns|profit|gains)/i,
59
- /\bthis (will|is going to) (moon|10x|100x)/i,
60
- /\bprice (will|is going to) (hit|reach) \$?\d/i,
61
- /\bnot financial advice.{0,50}but (you should|i recommend)/i, // Fake NFA
62
- // Medical/legal
63
- /\byou should (take|stop taking) (medication|medicine)/i,
64
- /\bi (diagnose|recommend) (treatment|therapy)/i,
65
- /\bthis (is|isn't) legal advice but/i,
66
- ];
67
- // Quality issue patterns
68
- const QUALITY_PATTERNS = {
69
- tooLong: 2000, // Max characters before warning
70
- tooShort: 20, // Min characters
71
- repetitionThreshold: 0.3, // Max ratio of repeated phrases
72
- };
73
- // Annoying behavior patterns
74
- const ANNOYING_PATTERNS = [
75
- /\blet me (explain|tell you) (something|a few things)/i,
76
- /\byou need to understand/i,
77
- /\bfirst (of all|off), let me/i,
78
- /\bbefore (i|we) (get|go) into/i,
79
- /\bi want to make (sure|certain)/i,
80
- /\b(to be|being) (clear|honest|frank)/i, // Only bad in excess
81
- ];
82
- /**
83
- * Check response for misbehavior
84
- */
85
- export function checkMisbehavior(response, legend) {
86
- const issues = [];
87
- const suggestions = [];
88
- // Check character breaking
89
- for (const pattern of CHARACTER_BREAK_PATTERNS) {
90
- const match = response.match(pattern);
91
- if (match) {
92
- issues.push({
93
- type: 'character_break',
94
- message: `Legend broke character with: "${match[0]}"`,
95
- severity: 'high',
96
- matched: match[0],
97
- });
98
- suggestions.push(`Remove "${match[0]}" - legends never acknowledge being AI`);
99
- }
100
- }
101
- // Check generic responses
102
- let genericCount = 0;
103
- for (const pattern of GENERIC_PATTERNS) {
104
- if (pattern.test(response)) {
105
- genericCount++;
106
- }
107
- }
108
- if (genericCount >= 2) {
109
- issues.push({
110
- type: 'generic',
111
- message: `Response uses ${genericCount} generic chatbot phrases`,
112
- severity: 'medium',
113
- });
114
- suggestions.push('Use more characteristic vocabulary from the legend');
115
- }
116
- // Check harmful content
117
- for (const pattern of HARMFUL_PATTERNS) {
118
- const match = response.match(pattern);
119
- if (match) {
120
- issues.push({
121
- type: 'harmful',
122
- message: `Potentially harmful content detected: "${match[0]}"`,
123
- severity: 'critical',
124
- matched: match[0],
125
- });
126
- suggestions.push('Rewrite to avoid financial/medical/legal advice');
127
- }
128
- }
129
- // Check quality issues
130
- if (response.length > QUALITY_PATTERNS.tooLong) {
131
- issues.push({
132
- type: 'quality',
133
- message: `Response too long (${response.length} chars)`,
134
- severity: 'low',
135
- });
136
- suggestions.push('Consider a more concise response');
137
- }
138
- if (response.length < QUALITY_PATTERNS.tooShort) {
139
- issues.push({
140
- type: 'quality',
141
- message: `Response too short (${response.length} chars)`,
142
- severity: 'low',
143
- });
144
- suggestions.push('Provide more substantive content');
145
- }
146
- // Check for repetition
147
- const repetitionScore = calculateRepetition(response);
148
- if (repetitionScore > QUALITY_PATTERNS.repetitionThreshold) {
149
- issues.push({
150
- type: 'quality',
151
- message: `High repetition detected (${(repetitionScore * 100).toFixed(0)}%)`,
152
- severity: 'medium',
153
- });
154
- suggestions.push('Vary the language and structure');
155
- }
156
- // Check annoying patterns (only flag if multiple)
157
- let annoyingCount = 0;
158
- for (const pattern of ANNOYING_PATTERNS) {
159
- if (pattern.test(response)) {
160
- annoyingCount++;
161
- }
162
- }
163
- if (annoyingCount >= 3) {
164
- issues.push({
165
- type: 'annoying',
166
- message: `Response may come across as preachy (${annoyingCount} warning phrases)`,
167
- severity: 'low',
168
- });
169
- suggestions.push('Be more direct, less preamble');
170
- }
171
- // Check legend-specific never_say
172
- if (legend.never_say) {
173
- for (const phrase of legend.never_say) {
174
- const cleanPhrase = phrase.replace(/['"]/g, '').toLowerCase();
175
- if (response.toLowerCase().includes(cleanPhrase)) {
176
- issues.push({
177
- type: 'character_break',
178
- message: `Legend said forbidden phrase: "${phrase}"`,
179
- severity: 'high',
180
- matched: phrase,
181
- });
182
- suggestions.push(`Remove: "${phrase}" - this legend would never say this`);
183
- }
184
- }
185
- }
186
- // Calculate overall severity
187
- const severity = calculateOverallSeverity(issues);
188
- return {
189
- passed: issues.length === 0 || severity === 'low',
190
- issues,
191
- severity,
192
- suggestions,
193
- };
194
- }
195
- /**
196
- * Calculate repetition score (0-1)
197
- */
198
- function calculateRepetition(text) {
199
- const sentences = text.split(/[.!?]+/).filter(s => s.trim().length > 10);
200
- if (sentences.length < 2)
201
- return 0;
202
- let repetitions = 0;
203
- const seen = new Set();
204
- for (const sentence of sentences) {
205
- const normalized = sentence.toLowerCase().trim().slice(0, 50);
206
- if (seen.has(normalized)) {
207
- repetitions++;
208
- }
209
- seen.add(normalized);
210
- }
211
- return repetitions / sentences.length;
212
- }
213
- /**
214
- * Calculate overall severity from issues
215
- */
216
- function calculateOverallSeverity(issues) {
217
- if (issues.some(i => i.severity === 'critical'))
218
- return 'critical';
219
- if (issues.some(i => i.severity === 'high'))
220
- return 'high';
221
- if (issues.filter(i => i.severity === 'medium').length >= 2)
222
- return 'high';
223
- if (issues.some(i => i.severity === 'medium'))
224
- return 'medium';
225
- return 'low';
226
- }
227
- /**
228
- * Pre-check user input for potential issues
229
- */
230
- export function preCheckUserInput(message, legend) {
231
- const warnings = [];
232
- // Check for financial advice requests
233
- const financialPatterns = [
234
- /should i (buy|sell|invest)/i,
235
- /is .+ a good investment/i,
236
- /price prediction/i,
237
- /will .+ (moon|pump|dump)/i,
238
- /what (token|coin|stock) should/i,
239
- ];
240
- for (const pattern of financialPatterns) {
241
- if (pattern.test(message)) {
242
- warnings.push('⚠️ This legend cannot provide financial advice. Response will focus on principles and frameworks instead.');
243
- break;
244
- }
245
- }
246
- // Check for medical/legal
247
- if (/\b(diagnose|prescribe|legal advice)\b/i.test(message)) {
248
- warnings.push('⚠️ This legend cannot provide medical or legal advice.');
249
- }
250
- return {
251
- needsWarning: warnings.length > 0,
252
- warnings,
253
- };
254
- }
255
- /**
256
- * Sanitize response to remove problematic content
257
- */
258
- export function sanitizeResponse(response, legend) {
259
- let sanitized = response;
260
- // Remove character-breaking phrases
261
- for (const pattern of CHARACTER_BREAK_PATTERNS) {
262
- sanitized = sanitized.replace(pattern, '');
263
- }
264
- // Clean up any resulting awkward spacing
265
- sanitized = sanitized
266
- .replace(/\s+/g, ' ')
267
- .replace(/\s+([.,!?])/g, '$1')
268
- .trim();
269
- return sanitized;
270
- }
271
- /**
272
- * Generate quality improvement suggestions
273
- */
274
- export function getSuggestions(response, legend) {
275
- const check = checkMisbehavior(response, legend);
276
- return check.suggestions;
277
- }
278
- //# sourceMappingURL=misbehavior-prevention.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"misbehavior-prevention.js","sourceRoot":"","sources":["../../src/agents/misbehavior-prevention.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export declare const LEGAL_DISCLAIMER = "\n---\n**IMPORTANT DISCLAIMER**\n\nThis is an AI persona created for **educational and entertainment purposes only**.\n\n- NOT affiliated with, endorsed by, or representative of the real individual\n- NOT financial, legal, or professional advice\n- NOT the actual person - this is an AI simulation\n- Based on publicly available information, speeches, and writings\n- For learning frameworks and thinking patterns\n- Always do your own research (DYOR)\n\n*The views expressed are AI-generated interpretations, not statements from the real person.*\n";
2
- export declare const SHORT_DISCLAIMER = "*AI persona for education only. Not the real person. Not advice. DYOR.*";
3
- export declare function log(...args: unknown[]): void;
4
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,gBAAgB,0iBAc5B,CAAC;AAGF,eAAO,MAAM,gBAAgB,4EAA4E,CAAC;AAG1G,wBAAgB,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAI5C"}