noverload-mcp 0.6.0 → 0.7.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 (125) hide show
  1. package/dist/client.d.ts +8 -0
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +77 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/llm-instructions.d.ts +87 -0
  6. package/dist/llm-instructions.d.ts.map +1 -0
  7. package/dist/llm-instructions.js +257 -0
  8. package/dist/llm-instructions.js.map +1 -0
  9. package/dist/tools/helpers/connections.d.ts +7 -0
  10. package/dist/tools/helpers/connections.d.ts.map +1 -0
  11. package/dist/tools/helpers/connections.js +85 -0
  12. package/dist/tools/helpers/connections.js.map +1 -0
  13. package/dist/tools/helpers/content-processing.d.ts +7 -0
  14. package/dist/tools/helpers/content-processing.d.ts.map +1 -0
  15. package/dist/tools/helpers/content-processing.js +136 -0
  16. package/dist/tools/helpers/content-processing.js.map +1 -0
  17. package/dist/tools/helpers/insights.d.ts +2 -0
  18. package/dist/tools/helpers/insights.d.ts.map +1 -0
  19. package/dist/tools/helpers/insights.js +62 -0
  20. package/dist/tools/helpers/insights.js.map +1 -0
  21. package/dist/tools/implementations/actions.d.ts +4 -0
  22. package/dist/tools/implementations/actions.d.ts.map +1 -0
  23. package/dist/tools/implementations/actions.js +73 -0
  24. package/dist/tools/implementations/actions.js.map +1 -0
  25. package/dist/tools/implementations/batch-get.d.ts +3 -0
  26. package/dist/tools/implementations/batch-get.d.ts.map +1 -0
  27. package/dist/tools/implementations/batch-get.js +102 -0
  28. package/dist/tools/implementations/batch-get.js.map +1 -0
  29. package/dist/tools/implementations/build-narrative.d.ts +3 -0
  30. package/dist/tools/implementations/build-narrative.d.ts.map +1 -0
  31. package/dist/tools/implementations/build-narrative.js +352 -0
  32. package/dist/tools/implementations/build-narrative.js.map +1 -0
  33. package/dist/tools/implementations/estimate-tokens.d.ts +3 -0
  34. package/dist/tools/implementations/estimate-tokens.d.ts.map +1 -0
  35. package/dist/tools/implementations/estimate-tokens.js +54 -0
  36. package/dist/tools/implementations/estimate-tokens.js.map +1 -0
  37. package/dist/tools/implementations/expand-search.d.ts +3 -0
  38. package/dist/tools/implementations/expand-search.d.ts.map +1 -0
  39. package/dist/tools/implementations/expand-search.js +223 -0
  40. package/dist/tools/implementations/expand-search.js.map +1 -0
  41. package/dist/tools/implementations/explore-topic.d.ts +3 -0
  42. package/dist/tools/implementations/explore-topic.d.ts.map +1 -0
  43. package/dist/tools/implementations/explore-topic.js +137 -0
  44. package/dist/tools/implementations/explore-topic.js.map +1 -0
  45. package/dist/tools/implementations/extract-frameworks.d.ts +3 -0
  46. package/dist/tools/implementations/extract-frameworks.d.ts.map +1 -0
  47. package/dist/tools/implementations/extract-frameworks.js +192 -0
  48. package/dist/tools/implementations/extract-frameworks.js.map +1 -0
  49. package/dist/tools/implementations/extract-insights.d.ts +3 -0
  50. package/dist/tools/implementations/extract-insights.d.ts.map +1 -0
  51. package/dist/tools/implementations/extract-insights.js +130 -0
  52. package/dist/tools/implementations/extract-insights.js.map +1 -0
  53. package/dist/tools/implementations/find-connections.d.ts +3 -0
  54. package/dist/tools/implementations/find-connections.d.ts.map +1 -0
  55. package/dist/tools/implementations/find-connections.js +106 -0
  56. package/dist/tools/implementations/find-connections.js.map +1 -0
  57. package/dist/tools/implementations/find-examples.d.ts +3 -0
  58. package/dist/tools/implementations/find-examples.d.ts.map +1 -0
  59. package/dist/tools/implementations/find-examples.js +242 -0
  60. package/dist/tools/implementations/find-examples.js.map +1 -0
  61. package/dist/tools/implementations/get-content.d.ts +3 -0
  62. package/dist/tools/implementations/get-content.d.ts.map +1 -0
  63. package/dist/tools/implementations/get-content.js +96 -0
  64. package/dist/tools/implementations/get-content.js.map +1 -0
  65. package/dist/tools/implementations/goals.d.ts +3 -0
  66. package/dist/tools/implementations/goals.d.ts.map +1 -0
  67. package/dist/tools/implementations/goals.js +22 -0
  68. package/dist/tools/implementations/goals.js.map +1 -0
  69. package/dist/tools/implementations/instructions.d.ts +3 -0
  70. package/dist/tools/implementations/instructions.d.ts.map +1 -0
  71. package/dist/tools/implementations/instructions.js +88 -0
  72. package/dist/tools/implementations/instructions.js.map +1 -0
  73. package/dist/tools/implementations/knowledge-graph.d.ts +3 -0
  74. package/dist/tools/implementations/knowledge-graph.d.ts.map +1 -0
  75. package/dist/tools/implementations/knowledge-graph.js +278 -0
  76. package/dist/tools/implementations/knowledge-graph.js.map +1 -0
  77. package/dist/tools/implementations/list-content.d.ts +3 -0
  78. package/dist/tools/implementations/list-content.d.ts.map +1 -0
  79. package/dist/tools/implementations/list-content.js +87 -0
  80. package/dist/tools/implementations/list-content.js.map +1 -0
  81. package/dist/tools/implementations/plan-query.d.ts +3 -0
  82. package/dist/tools/implementations/plan-query.d.ts.map +1 -0
  83. package/dist/tools/implementations/plan-query.js +63 -0
  84. package/dist/tools/implementations/plan-query.js.map +1 -0
  85. package/dist/tools/implementations/raw-content.d.ts +3 -0
  86. package/dist/tools/implementations/raw-content.d.ts.map +1 -0
  87. package/dist/tools/implementations/raw-content.js +208 -0
  88. package/dist/tools/implementations/raw-content.js.map +1 -0
  89. package/dist/tools/implementations/save-content.d.ts +3 -0
  90. package/dist/tools/implementations/save-content.d.ts.map +1 -0
  91. package/dist/tools/implementations/save-content.js +33 -0
  92. package/dist/tools/implementations/save-content.js.map +1 -0
  93. package/dist/tools/implementations/search.d.ts +3 -0
  94. package/dist/tools/implementations/search.d.ts.map +1 -0
  95. package/dist/tools/implementations/search.js +245 -0
  96. package/dist/tools/implementations/search.js.map +1 -0
  97. package/dist/tools/implementations/similar-content.d.ts +3 -0
  98. package/dist/tools/implementations/similar-content.d.ts.map +1 -0
  99. package/dist/tools/implementations/similar-content.js +64 -0
  100. package/dist/tools/implementations/similar-content.js.map +1 -0
  101. package/dist/tools/implementations/smart-sections.d.ts +3 -0
  102. package/dist/tools/implementations/smart-sections.d.ts.map +1 -0
  103. package/dist/tools/implementations/smart-sections.js +347 -0
  104. package/dist/tools/implementations/smart-sections.js.map +1 -0
  105. package/dist/tools/implementations/synthesize.d.ts +3 -0
  106. package/dist/tools/implementations/synthesize.d.ts.map +1 -0
  107. package/dist/tools/implementations/synthesize.js +148 -0
  108. package/dist/tools/implementations/synthesize.js.map +1 -0
  109. package/dist/tools/implementations/timeline.d.ts +3 -0
  110. package/dist/tools/implementations/timeline.d.ts.map +1 -0
  111. package/dist/tools/implementations/timeline.js +191 -0
  112. package/dist/tools/implementations/timeline.js.map +1 -0
  113. package/dist/tools/index-old.d.ts +16 -0
  114. package/dist/tools/index-old.d.ts.map +1 -0
  115. package/dist/tools/index-old.js +2176 -0
  116. package/dist/tools/index-old.js.map +1 -0
  117. package/dist/tools/index.d.ts +25 -14
  118. package/dist/tools/index.d.ts.map +1 -1
  119. package/dist/tools/index.js +57 -1079
  120. package/dist/tools/index.js.map +1 -1
  121. package/dist/tools/types.d.ts +22 -0
  122. package/dist/tools/types.d.ts.map +1 -0
  123. package/dist/tools/types.js +2 -0
  124. package/dist/tools/types.js.map +1 -0
  125. package/package.json +5 -5
@@ -0,0 +1,223 @@
1
+ import { z } from "zod";
2
+ const inputSchema = z.object({
3
+ originalQuery: z.string().describe("The original search query that returned few/no results"),
4
+ noResultsFound: z.boolean().optional().default(false).describe("Whether the original search returned no results"),
5
+ context: z.string().optional().describe("Additional context about what the user is looking for"),
6
+ limit: z.number().optional().default(5).describe("Maximum number of expanded queries to return"),
7
+ });
8
+ // Concept mapping for semantic expansion
9
+ const CONCEPT_MAP = {
10
+ // Business & Growth
11
+ "storytelling": ["narrative", "pitch", "story", "presentation", "messaging", "communication", "branding"],
12
+ "growth": ["scaling", "expansion", "increase", "development", "progress", "evolution", "traction"],
13
+ "marketing": ["promotion", "advertising", "branding", "outreach", "campaign", "content", "social media"],
14
+ "sales": ["selling", "revenue", "conversion", "closing", "pipeline", "deals", "customers"],
15
+ "startup": ["founder", "entrepreneur", "venture", "bootstrap", "launch", "MVP", "product-market fit"],
16
+ // Technology
17
+ "ai": ["artificial intelligence", "machine learning", "ML", "deep learning", "neural network", "LLM", "GPT"],
18
+ "framework": ["methodology", "system", "process", "structure", "approach", "model", "pattern"],
19
+ "api": ["interface", "endpoint", "integration", "webhook", "REST", "GraphQL", "service"],
20
+ "database": ["DB", "SQL", "NoSQL", "data storage", "postgres", "mongodb", "schema"],
21
+ // Content & Learning
22
+ "tutorial": ["guide", "how-to", "walkthrough", "instruction", "lesson", "course", "training"],
23
+ "example": ["case study", "instance", "sample", "demonstration", "illustration", "use case", "scenario"],
24
+ "best practices": ["guidelines", "standards", "recommendations", "tips", "advice", "patterns", "conventions"],
25
+ // Strategy & Planning
26
+ "strategy": ["plan", "approach", "tactics", "roadmap", "blueprint", "methodology", "framework"],
27
+ "metrics": ["KPIs", "analytics", "measurements", "data", "statistics", "tracking", "performance"],
28
+ "optimization": ["improvement", "enhancement", "efficiency", "performance", "refinement", "tuning"],
29
+ // Product & Development
30
+ "feature": ["functionality", "capability", "component", "module", "tool", "service", "option"],
31
+ "bug": ["issue", "problem", "error", "defect", "glitch", "fault", "failure"],
32
+ "design": ["UX", "UI", "interface", "layout", "architecture", "structure", "pattern"],
33
+ };
34
+ // Reverse mapping for bidirectional expansion
35
+ const REVERSE_MAP = new Map();
36
+ for (const [key, values] of Object.entries(CONCEPT_MAP)) {
37
+ for (const value of values) {
38
+ if (!REVERSE_MAP.has(value)) {
39
+ REVERSE_MAP.set(value, []);
40
+ }
41
+ REVERSE_MAP.get(value).push(key);
42
+ }
43
+ }
44
+ function expandConcepts(query) {
45
+ const queryLower = query.toLowerCase();
46
+ const words = queryLower.split(/\s+/);
47
+ const expandedTerms = new Set();
48
+ // For each word in the query
49
+ for (const word of words) {
50
+ // Check direct mappings
51
+ if (CONCEPT_MAP[word]) {
52
+ CONCEPT_MAP[word].forEach(term => expandedTerms.add(term));
53
+ }
54
+ // Check reverse mappings
55
+ if (REVERSE_MAP.has(word)) {
56
+ REVERSE_MAP.get(word).forEach(term => expandedTerms.add(term));
57
+ }
58
+ // Check if word is part of any concept
59
+ for (const [concept, related] of Object.entries(CONCEPT_MAP)) {
60
+ if (concept.includes(word) || word.includes(concept)) {
61
+ related.forEach(term => expandedTerms.add(term));
62
+ }
63
+ for (const rel of related) {
64
+ if (rel.includes(word) || word.includes(rel)) {
65
+ expandedTerms.add(concept);
66
+ related.forEach(term => expandedTerms.add(term));
67
+ }
68
+ }
69
+ }
70
+ }
71
+ // Remove original words and return unique expansions
72
+ words.forEach(w => expandedTerms.delete(w));
73
+ return Array.from(expandedTerms);
74
+ }
75
+ function generateRelatedQueries(originalQuery, expansions) {
76
+ const queries = [];
77
+ const words = originalQuery.toLowerCase().split(/\s+/);
78
+ // Replace each word with its expansions
79
+ for (let i = 0; i < words.length; i++) {
80
+ for (const expansion of expansions.slice(0, 3)) { // Limit to top 3 expansions per word
81
+ const newWords = [...words];
82
+ newWords[i] = expansion;
83
+ queries.push(newWords.join(' '));
84
+ }
85
+ }
86
+ // Add queries with appended expansions
87
+ for (const expansion of expansions.slice(0, 3)) {
88
+ queries.push(`${originalQuery} ${expansion}`);
89
+ queries.push(`${expansion} ${originalQuery}`);
90
+ }
91
+ // Remove duplicates and original
92
+ return [...new Set(queries)].filter(q => q.toLowerCase() !== originalQuery.toLowerCase());
93
+ }
94
+ export const expandSearchTool = {
95
+ name: "noverload_expand_search",
96
+ description: "Intelligently expand search queries to find related content when original searches return few results. Uses concept mapping and semantic expansion.",
97
+ inputSchema: inputSchema.strict(),
98
+ modifies: false,
99
+ handler: async (client, args) => {
100
+ const input = inputSchema.parse(args);
101
+ try {
102
+ // Step 1: Expand concepts from the original query
103
+ const conceptExpansions = expandConcepts(input.originalQuery);
104
+ // Step 2: Generate related queries
105
+ const expandedQueries = generateRelatedQueries(input.originalQuery, conceptExpansions);
106
+ // Step 3: Determine search strategies based on context
107
+ const strategies = [];
108
+ if (input.noResultsFound) {
109
+ strategies.push("Try broader terms");
110
+ strategies.push("Check for typos or alternative spellings");
111
+ strategies.push("Use category searches instead of specific terms");
112
+ }
113
+ else {
114
+ strategies.push("Add more specific terms");
115
+ strategies.push("Try related concepts");
116
+ strategies.push("Search by content type");
117
+ }
118
+ // Step 4: Generate smart suggestions
119
+ const suggestions = [];
120
+ // Add top expanded queries with rationale
121
+ for (const query of expandedQueries.slice(0, input.limit)) {
122
+ // Determine why this expansion might help
123
+ let rationale = "Related concept that might have relevant content";
124
+ let confidence = "medium";
125
+ // Check if this expansion is a direct concept mapping
126
+ const queryWords = query.toLowerCase().split(/\s+/);
127
+ for (const word of queryWords) {
128
+ if (CONCEPT_MAP[word]) {
129
+ rationale = `Expands to related ${word} concepts`;
130
+ confidence = "high";
131
+ break;
132
+ }
133
+ }
134
+ suggestions.push({ query, rationale, confidence });
135
+ }
136
+ // Step 5: Try to understand intent and add specific suggestions
137
+ const queryLower = input.originalQuery.toLowerCase();
138
+ if (queryLower.includes("how") || queryLower.includes("guide") || queryLower.includes("tutorial")) {
139
+ suggestions.push({
140
+ query: `${input.originalQuery} step by step`,
141
+ rationale: "Looking for instructional content",
142
+ confidence: "high"
143
+ });
144
+ }
145
+ if (queryLower.includes("example") || queryLower.includes("case")) {
146
+ suggestions.push({
147
+ query: `${input.originalQuery} case study success story`,
148
+ rationale: "Looking for real-world examples",
149
+ confidence: "high"
150
+ });
151
+ }
152
+ if (queryLower.includes("best") || queryLower.includes("top")) {
153
+ suggestions.push({
154
+ query: `${input.originalQuery} recommendations tips`,
155
+ rationale: "Looking for curated advice",
156
+ confidence: "medium"
157
+ });
158
+ }
159
+ // Format response
160
+ let responseText = `šŸ” **Search Expansion for: "${input.originalQuery}"**\n\n`;
161
+ if (input.noResultsFound) {
162
+ responseText += `āš ļø Original search returned no results. Here are alternative searches:\n\n`;
163
+ }
164
+ else {
165
+ responseText += `šŸ’” Expanding your search to find more relevant content:\n\n`;
166
+ }
167
+ // Add expanded concepts
168
+ if (conceptExpansions.length > 0) {
169
+ responseText += `**Related Concepts Found:**\n`;
170
+ responseText += `${conceptExpansions.slice(0, 10).join(', ')}\n\n`;
171
+ }
172
+ // Add suggested queries
173
+ responseText += `**Suggested Searches:**\n\n`;
174
+ for (const suggestion of suggestions.slice(0, input.limit)) {
175
+ const icon = suggestion.confidence === "high" ? "šŸŽÆ" :
176
+ suggestion.confidence === "medium" ? "šŸ”¹" : "ā—½";
177
+ responseText += `${icon} **"${suggestion.query}"**\n`;
178
+ responseText += ` *${suggestion.rationale}*\n\n`;
179
+ }
180
+ // Add search strategies
181
+ responseText += `**Search Strategies:**\n`;
182
+ for (const strategy of strategies) {
183
+ responseText += `- ${strategy}\n`;
184
+ }
185
+ // Add tips
186
+ responseText += `\n**šŸ’” Pro Tips:**\n`;
187
+ responseText += `- Use quotes for exact phrases: "${input.originalQuery}"\n`;
188
+ responseText += `- Try content type filters: YouTube, Articles, Reddit\n`;
189
+ responseText += `- Search by tags or categories instead of keywords\n`;
190
+ if (input.context) {
191
+ responseText += `\n**Context considered:** ${input.context}\n`;
192
+ }
193
+ return {
194
+ content: [
195
+ {
196
+ type: "text",
197
+ text: responseText
198
+ }
199
+ ],
200
+ data: {
201
+ originalQuery: input.originalQuery,
202
+ expandedConcepts: conceptExpansions,
203
+ suggestedQueries: suggestions,
204
+ totalExpansions: expandedQueries.length,
205
+ strategies: strategies
206
+ }
207
+ };
208
+ }
209
+ catch (error) {
210
+ console.error("Search expansion error:", error);
211
+ return {
212
+ content: [
213
+ {
214
+ type: "text",
215
+ text: `āŒ Error expanding search: ${error instanceof Error ? error.message : 'Unknown error'}`
216
+ }
217
+ ],
218
+ error: true
219
+ };
220
+ }
221
+ }
222
+ };
223
+ //# sourceMappingURL=expand-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand-search.js","sourceRoot":"","sources":["../../../src/tools/implementations/expand-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from "../types.js";
2
+ export declare const exploreTopicTool: Tool;
3
+ //# sourceMappingURL=explore-topic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explore-topic.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/explore-topic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,eAAO,MAAM,gBAAgB,EAAE,IA6I9B,CAAC"}
@@ -0,0 +1,137 @@
1
+ import { z } from "zod";
2
+ export const exploreTopicTool = {
3
+ name: "explore_topic",
4
+ description: "Deep exploration of a topic across all saved content. Provides comprehensive understanding with multiple perspectives, evolution over time, and key concepts.",
5
+ inputSchema: {
6
+ type: "object",
7
+ properties: {
8
+ topic: {
9
+ type: "string",
10
+ description: "The topic to explore comprehensively",
11
+ },
12
+ depth: {
13
+ type: "string",
14
+ enum: ["surface", "comprehensive", "expert"],
15
+ description: "Depth of exploration",
16
+ default: "comprehensive",
17
+ },
18
+ includeTimeline: {
19
+ type: "boolean",
20
+ description: "Include chronological evolution of the topic",
21
+ default: true,
22
+ },
23
+ includeConnections: {
24
+ type: "boolean",
25
+ description: "Find connections to related topics",
26
+ default: true,
27
+ },
28
+ maxSources: {
29
+ type: "number",
30
+ description: "Maximum number of sources to analyze",
31
+ default: 20,
32
+ },
33
+ },
34
+ required: ["topic"],
35
+ },
36
+ modifies: false,
37
+ handler: async (client, args) => {
38
+ const schema = z.object({
39
+ topic: z.string(),
40
+ depth: z.enum(["surface", "comprehensive", "expert"]).optional().default("comprehensive"),
41
+ includeTimeline: z.boolean().optional().default(true),
42
+ includeConnections: z.boolean().optional().default(true),
43
+ maxSources: z.number().optional().default(20),
44
+ });
45
+ const params = schema.parse(args);
46
+ // Search for all content related to the topic
47
+ const searchResults = await client.searchContent(params.topic, {
48
+ limit: params.maxSources,
49
+ enableConceptExpansion: true,
50
+ fuzzyMatch: true,
51
+ });
52
+ if (!searchResults || searchResults.length === 0) {
53
+ return {
54
+ content: [
55
+ {
56
+ type: "text",
57
+ text: `No content found for topic: "${params.topic}". Try saving relevant content first or use a different search term.`,
58
+ },
59
+ ],
60
+ data: null,
61
+ };
62
+ }
63
+ // Synthesize the content for deep understanding
64
+ const synthesis = await client.synthesizeContent({
65
+ query: `Comprehensive exploration of ${params.topic}`,
66
+ contentIds: searchResults.slice(0, params.maxSources).map((r) => r.id),
67
+ synthesisMode: params.depth === "expert" ? "deep" : params.depth === "surface" ? "overview" : "actionable",
68
+ findConnections: params.includeConnections,
69
+ findContradictions: true,
70
+ });
71
+ let responseText = `# šŸ” Topic Exploration: "${params.topic}"\n`;
72
+ responseText += `**Depth:** ${params.depth} | **Sources Analyzed:** ${searchResults.length}\n\n`;
73
+ // Overview Section
74
+ responseText += `## šŸ“‹ Overview\n`;
75
+ if (synthesis.synthesis?.summary) {
76
+ responseText += `${synthesis.synthesis.summary}\n\n`;
77
+ }
78
+ else {
79
+ responseText += `Analysis of ${searchResults.length} pieces of content about ${params.topic}.\n\n`;
80
+ }
81
+ // Key Insights
82
+ if (synthesis.synthesis?.insights && synthesis.synthesis.insights.length > 0) {
83
+ responseText += `## šŸ’” Key Insights\n`;
84
+ synthesis.synthesis.insights.slice(0, 10).forEach((insight, idx) => {
85
+ const text = typeof insight === 'string' ? insight : insight.text;
86
+ responseText += `${idx + 1}. ${text}\n`;
87
+ });
88
+ responseText += `\n`;
89
+ }
90
+ // Connections (if found)
91
+ if (params.includeConnections && synthesis.synthesis?.connections) {
92
+ responseText += `## šŸ”— Related Topics & Connections\n`;
93
+ synthesis.synthesis.connections.slice(0, 8).forEach((conn) => {
94
+ if (typeof conn === 'string') {
95
+ responseText += `- ${conn}\n`;
96
+ }
97
+ else if (conn.concept) {
98
+ responseText += `- **${conn.concept}**`;
99
+ if (conn.strength) {
100
+ responseText += ` (strength: ${conn.strength})`;
101
+ }
102
+ responseText += `\n`;
103
+ }
104
+ });
105
+ responseText += `\n`;
106
+ }
107
+ // Sources
108
+ responseText += `## šŸ“š Top Sources\n`;
109
+ searchResults.slice(0, 5).forEach((source, idx) => {
110
+ const typeIcons = {
111
+ youtube: "šŸ“ŗ",
112
+ x_twitter: "š•",
113
+ reddit: "šŸ”—",
114
+ article: "šŸ“„",
115
+ pdf: "šŸ“‘"
116
+ };
117
+ const icon = typeIcons[source.contentType] || "šŸ“„";
118
+ responseText += `${idx + 1}. ${icon} [${source.title || "Untitled"}](${source.url})\n`;
119
+ });
120
+ return {
121
+ content: [
122
+ {
123
+ type: "text",
124
+ text: responseText,
125
+ },
126
+ ],
127
+ data: {
128
+ topic: params.topic,
129
+ depth: params.depth,
130
+ sourcesAnalyzed: searchResults.length,
131
+ synthesis: synthesis.synthesis,
132
+ sources: searchResults,
133
+ },
134
+ };
135
+ },
136
+ };
137
+ //# sourceMappingURL=explore-topic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explore-topic.js","sourceRoot":"","sources":["../../../src/tools/implementations/explore-topic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from "../types.js";
2
+ export declare const extractFrameworksTool: Tool;
3
+ //# sourceMappingURL=extract-frameworks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-frameworks.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/extract-frameworks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AA0CnC,eAAO,MAAM,qBAAqB,EAAE,IA+MnC,CAAC"}
@@ -0,0 +1,192 @@
1
+ import { z } from "zod";
2
+ const inputSchema = z.object({
3
+ query: z.string().optional().describe("Optional: specific framework type to find"),
4
+ contentTypes: z.array(z.enum(["youtube", "x_twitter", "reddit", "article", "pdf"]))
5
+ .optional()
6
+ .describe("Filter by content types"),
7
+ minConfidence: z.number().min(0).max(1).optional().default(0.7)
8
+ .describe("Minimum confidence score for frameworks (0-1)"),
9
+ limit: z.number().optional().default(20)
10
+ .describe("Maximum number of frameworks to return"),
11
+ });
12
+ export const extractFrameworksTool = {
13
+ name: "noverload_extract_frameworks",
14
+ description: "Extract methodologies, frameworks, and step-by-step processes from your saved content. Finds structured approaches, patterns, and repeatable techniques.",
15
+ inputSchema: inputSchema.strict(),
16
+ modifies: false,
17
+ handler: async (client, args) => {
18
+ const input = inputSchema.parse(args);
19
+ try {
20
+ // First, get content that might contain frameworks
21
+ const searchQuery = input.query || "framework methodology process steps guide how to tutorial";
22
+ // Search for relevant content
23
+ const searchResults = await client.searchContentV2({
24
+ query: searchQuery,
25
+ mode: "any",
26
+ limit: 30, // Get more results to find frameworks
27
+ contentTypes: input.contentTypes,
28
+ });
29
+ if (!searchResults.results || searchResults.results.length === 0) {
30
+ return {
31
+ content: [
32
+ {
33
+ type: "text",
34
+ text: "šŸ” No content found that might contain frameworks. Try saving content about methodologies, tutorials, or how-to guides first."
35
+ }
36
+ ],
37
+ data: {
38
+ frameworks: [],
39
+ totalFound: 0,
40
+ searchQuery: searchQuery
41
+ }
42
+ };
43
+ }
44
+ // Collect all frameworks from content with ai_insights
45
+ const allFrameworks = [];
46
+ const contentWithFrameworks = [];
47
+ for (const result of searchResults.results) {
48
+ // Check if this content has ai_insights with frameworks
49
+ if (result.aiInsights?.frameworks) {
50
+ const frameworks = result.aiInsights.frameworks;
51
+ for (const fw of frameworks) {
52
+ if (fw.confidence >= input.minConfidence) {
53
+ allFrameworks.push({
54
+ ...fw,
55
+ sourceContent: {
56
+ id: result.id,
57
+ title: result.title || "Untitled",
58
+ url: result.url,
59
+ type: result.contentType
60
+ }
61
+ });
62
+ }
63
+ }
64
+ if (frameworks.length > 0) {
65
+ contentWithFrameworks.push(result.id);
66
+ }
67
+ }
68
+ }
69
+ // If no frameworks found in ai_insights, trigger extraction for top results
70
+ if (allFrameworks.length === 0) {
71
+ // Extract frameworks from top 5 most relevant results
72
+ const topResults = searchResults.results.slice(0, 5);
73
+ let extractionMessage = "šŸ”„ No pre-extracted frameworks found. Analyzing content for frameworks...\n\n";
74
+ for (const content of topResults) {
75
+ if (!content.rawText && !content.summary) {
76
+ continue;
77
+ }
78
+ // Note: In production, this would call the extract-frameworks Edge Function
79
+ // For now, we'll indicate that extraction is needed
80
+ extractionMessage += `šŸ“ ${content.title} - Needs framework extraction\n`;
81
+ }
82
+ return {
83
+ content: [
84
+ {
85
+ type: "text",
86
+ text: extractionMessage + "\nšŸ’” Tip: Content processing will extract frameworks automatically. Try again in a few moments, or use the 'noverload_process_content' tool to trigger processing."
87
+ }
88
+ ],
89
+ data: {
90
+ frameworks: [],
91
+ totalFound: 0,
92
+ contentNeedingExtraction: topResults.map((r) => r.id),
93
+ searchQuery: searchQuery
94
+ }
95
+ };
96
+ }
97
+ // Sort frameworks by confidence and limit
98
+ allFrameworks.sort((a, b) => b.confidence - a.confidence);
99
+ const limitedFrameworks = allFrameworks.slice(0, input.limit);
100
+ // Format response
101
+ let responseText = `šŸŽÆ **Found ${allFrameworks.length} frameworks**\n\n`;
102
+ if (input.query) {
103
+ responseText += `Search: "${input.query}"\n`;
104
+ }
105
+ responseText += `Minimum confidence: ${input.minConfidence}\n\n`;
106
+ // Group frameworks by type
107
+ const byType = limitedFrameworks.reduce((acc, fw) => {
108
+ if (!acc[fw.type])
109
+ acc[fw.type] = [];
110
+ acc[fw.type].push(fw);
111
+ return acc;
112
+ }, {});
113
+ for (const [type, frameworks] of Object.entries(byType)) {
114
+ responseText += `\n## ${type.charAt(0).toUpperCase() + type.slice(1)}s\n\n`;
115
+ for (const fw of frameworks) {
116
+ responseText += `### šŸ“‹ ${fw.name}\n`;
117
+ responseText += `*Confidence: ${(fw.confidence * 100).toFixed(0)}%*\n`;
118
+ responseText += `${fw.description}\n\n`;
119
+ // Add steps if available
120
+ if (fw.steps && fw.steps.length > 0) {
121
+ responseText += `**Steps:**\n`;
122
+ for (const step of fw.steps) {
123
+ responseText += `${step.order}. **${step.title}**: ${step.description}\n`;
124
+ if (step.example) {
125
+ responseText += ` *Example: ${step.example}*\n`;
126
+ }
127
+ }
128
+ responseText += `\n`;
129
+ }
130
+ // Add components if available
131
+ if (fw.components && fw.components.length > 0) {
132
+ responseText += `**Components:**\n`;
133
+ for (const comp of fw.components) {
134
+ const importance = comp.importance === 'critical' ? 'šŸ”“' :
135
+ comp.importance === 'important' ? '🟔' : '⚪';
136
+ responseText += `- ${importance} **${comp.name}**: ${comp.description}\n`;
137
+ }
138
+ responseText += `\n`;
139
+ }
140
+ // Add use cases
141
+ if (fw.useCases && fw.useCases.length > 0) {
142
+ responseText += `**Use Cases:** ${fw.useCases.join(', ')}\n`;
143
+ }
144
+ // Add source
145
+ if (fw.sourceContent) {
146
+ const icon = fw.sourceContent.type === 'youtube' ? 'šŸ“ŗ' :
147
+ fw.sourceContent.type === 'x_twitter' ? 'š•' :
148
+ fw.sourceContent.type === 'reddit' ? '🟠' :
149
+ fw.sourceContent.type === 'pdf' ? 'šŸ“„' : 'šŸ“–';
150
+ responseText += `*Source: ${icon} [${fw.sourceContent.title}](${fw.sourceContent.url})*\n\n`;
151
+ }
152
+ }
153
+ }
154
+ // Add summary statistics
155
+ responseText += `\n---\nšŸ“Š **Summary:**\n`;
156
+ responseText += `- Total frameworks found: ${allFrameworks.length}\n`;
157
+ responseText += `- High confidence (>90%): ${allFrameworks.filter(f => f.confidence > 0.9).length}\n`;
158
+ responseText += `- Content sources analyzed: ${contentWithFrameworks.length}\n`;
159
+ if (allFrameworks.length > input.limit) {
160
+ responseText += `\n*Showing top ${input.limit} frameworks. Increase limit to see more.*`;
161
+ }
162
+ return {
163
+ content: [
164
+ {
165
+ type: "text",
166
+ text: responseText
167
+ }
168
+ ],
169
+ data: {
170
+ frameworks: limitedFrameworks,
171
+ totalFound: allFrameworks.length,
172
+ byType: Object.fromEntries(Object.entries(byType).map(([type, fws]) => [type, fws.length])),
173
+ contentSources: contentWithFrameworks,
174
+ searchQuery: searchQuery
175
+ }
176
+ };
177
+ }
178
+ catch (error) {
179
+ console.error("Framework extraction error:", error);
180
+ return {
181
+ content: [
182
+ {
183
+ type: "text",
184
+ text: `āŒ Error extracting frameworks: ${error instanceof Error ? error.message : 'Unknown error'}`
185
+ }
186
+ ],
187
+ error: true
188
+ };
189
+ }
190
+ }
191
+ };
192
+ //# sourceMappingURL=extract-frameworks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-frameworks.js","sourceRoot":"","sources":["../../../src/tools/implementations/extract-frameworks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Tool } from "../types.js";
2
+ export declare const extractInsightsTool: Tool;
3
+ //# sourceMappingURL=extract-insights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-insights.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/extract-insights.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnC,eAAO,MAAM,mBAAmB,EAAE,IAsIjC,CAAC"}