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.
- package/dist/client.d.ts +8 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +77 -0
- package/dist/client.js.map +1 -1
- package/dist/llm-instructions.d.ts +87 -0
- package/dist/llm-instructions.d.ts.map +1 -0
- package/dist/llm-instructions.js +257 -0
- package/dist/llm-instructions.js.map +1 -0
- package/dist/tools/helpers/connections.d.ts +7 -0
- package/dist/tools/helpers/connections.d.ts.map +1 -0
- package/dist/tools/helpers/connections.js +85 -0
- package/dist/tools/helpers/connections.js.map +1 -0
- package/dist/tools/helpers/content-processing.d.ts +7 -0
- package/dist/tools/helpers/content-processing.d.ts.map +1 -0
- package/dist/tools/helpers/content-processing.js +136 -0
- package/dist/tools/helpers/content-processing.js.map +1 -0
- package/dist/tools/helpers/insights.d.ts +2 -0
- package/dist/tools/helpers/insights.d.ts.map +1 -0
- package/dist/tools/helpers/insights.js +62 -0
- package/dist/tools/helpers/insights.js.map +1 -0
- package/dist/tools/implementations/actions.d.ts +4 -0
- package/dist/tools/implementations/actions.d.ts.map +1 -0
- package/dist/tools/implementations/actions.js +73 -0
- package/dist/tools/implementations/actions.js.map +1 -0
- package/dist/tools/implementations/batch-get.d.ts +3 -0
- package/dist/tools/implementations/batch-get.d.ts.map +1 -0
- package/dist/tools/implementations/batch-get.js +102 -0
- package/dist/tools/implementations/batch-get.js.map +1 -0
- package/dist/tools/implementations/build-narrative.d.ts +3 -0
- package/dist/tools/implementations/build-narrative.d.ts.map +1 -0
- package/dist/tools/implementations/build-narrative.js +352 -0
- package/dist/tools/implementations/build-narrative.js.map +1 -0
- package/dist/tools/implementations/estimate-tokens.d.ts +3 -0
- package/dist/tools/implementations/estimate-tokens.d.ts.map +1 -0
- package/dist/tools/implementations/estimate-tokens.js +54 -0
- package/dist/tools/implementations/estimate-tokens.js.map +1 -0
- package/dist/tools/implementations/expand-search.d.ts +3 -0
- package/dist/tools/implementations/expand-search.d.ts.map +1 -0
- package/dist/tools/implementations/expand-search.js +223 -0
- package/dist/tools/implementations/expand-search.js.map +1 -0
- package/dist/tools/implementations/explore-topic.d.ts +3 -0
- package/dist/tools/implementations/explore-topic.d.ts.map +1 -0
- package/dist/tools/implementations/explore-topic.js +137 -0
- package/dist/tools/implementations/explore-topic.js.map +1 -0
- package/dist/tools/implementations/extract-frameworks.d.ts +3 -0
- package/dist/tools/implementations/extract-frameworks.d.ts.map +1 -0
- package/dist/tools/implementations/extract-frameworks.js +192 -0
- package/dist/tools/implementations/extract-frameworks.js.map +1 -0
- package/dist/tools/implementations/extract-insights.d.ts +3 -0
- package/dist/tools/implementations/extract-insights.d.ts.map +1 -0
- package/dist/tools/implementations/extract-insights.js +130 -0
- package/dist/tools/implementations/extract-insights.js.map +1 -0
- package/dist/tools/implementations/find-connections.d.ts +3 -0
- package/dist/tools/implementations/find-connections.d.ts.map +1 -0
- package/dist/tools/implementations/find-connections.js +106 -0
- package/dist/tools/implementations/find-connections.js.map +1 -0
- package/dist/tools/implementations/find-examples.d.ts +3 -0
- package/dist/tools/implementations/find-examples.d.ts.map +1 -0
- package/dist/tools/implementations/find-examples.js +242 -0
- package/dist/tools/implementations/find-examples.js.map +1 -0
- package/dist/tools/implementations/get-content.d.ts +3 -0
- package/dist/tools/implementations/get-content.d.ts.map +1 -0
- package/dist/tools/implementations/get-content.js +96 -0
- package/dist/tools/implementations/get-content.js.map +1 -0
- package/dist/tools/implementations/goals.d.ts +3 -0
- package/dist/tools/implementations/goals.d.ts.map +1 -0
- package/dist/tools/implementations/goals.js +22 -0
- package/dist/tools/implementations/goals.js.map +1 -0
- package/dist/tools/implementations/instructions.d.ts +3 -0
- package/dist/tools/implementations/instructions.d.ts.map +1 -0
- package/dist/tools/implementations/instructions.js +88 -0
- package/dist/tools/implementations/instructions.js.map +1 -0
- package/dist/tools/implementations/knowledge-graph.d.ts +3 -0
- package/dist/tools/implementations/knowledge-graph.d.ts.map +1 -0
- package/dist/tools/implementations/knowledge-graph.js +278 -0
- package/dist/tools/implementations/knowledge-graph.js.map +1 -0
- package/dist/tools/implementations/list-content.d.ts +3 -0
- package/dist/tools/implementations/list-content.d.ts.map +1 -0
- package/dist/tools/implementations/list-content.js +87 -0
- package/dist/tools/implementations/list-content.js.map +1 -0
- package/dist/tools/implementations/plan-query.d.ts +3 -0
- package/dist/tools/implementations/plan-query.d.ts.map +1 -0
- package/dist/tools/implementations/plan-query.js +63 -0
- package/dist/tools/implementations/plan-query.js.map +1 -0
- package/dist/tools/implementations/raw-content.d.ts +3 -0
- package/dist/tools/implementations/raw-content.d.ts.map +1 -0
- package/dist/tools/implementations/raw-content.js +208 -0
- package/dist/tools/implementations/raw-content.js.map +1 -0
- package/dist/tools/implementations/save-content.d.ts +3 -0
- package/dist/tools/implementations/save-content.d.ts.map +1 -0
- package/dist/tools/implementations/save-content.js +33 -0
- package/dist/tools/implementations/save-content.js.map +1 -0
- package/dist/tools/implementations/search.d.ts +3 -0
- package/dist/tools/implementations/search.d.ts.map +1 -0
- package/dist/tools/implementations/search.js +245 -0
- package/dist/tools/implementations/search.js.map +1 -0
- package/dist/tools/implementations/similar-content.d.ts +3 -0
- package/dist/tools/implementations/similar-content.d.ts.map +1 -0
- package/dist/tools/implementations/similar-content.js +64 -0
- package/dist/tools/implementations/similar-content.js.map +1 -0
- package/dist/tools/implementations/smart-sections.d.ts +3 -0
- package/dist/tools/implementations/smart-sections.d.ts.map +1 -0
- package/dist/tools/implementations/smart-sections.js +347 -0
- package/dist/tools/implementations/smart-sections.js.map +1 -0
- package/dist/tools/implementations/synthesize.d.ts +3 -0
- package/dist/tools/implementations/synthesize.d.ts.map +1 -0
- package/dist/tools/implementations/synthesize.js +148 -0
- package/dist/tools/implementations/synthesize.js.map +1 -0
- package/dist/tools/implementations/timeline.d.ts +3 -0
- package/dist/tools/implementations/timeline.d.ts.map +1 -0
- package/dist/tools/implementations/timeline.js +191 -0
- package/dist/tools/implementations/timeline.js.map +1 -0
- package/dist/tools/index-old.d.ts +16 -0
- package/dist/tools/index-old.d.ts.map +1 -0
- package/dist/tools/index-old.js +2176 -0
- package/dist/tools/index-old.js.map +1 -0
- package/dist/tools/index.d.ts +25 -14
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +57 -1079
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.d.ts +22 -0
- package/dist/tools/types.d.ts.map +1 -0
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -0
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goals.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/goals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,eAAO,MAAM,aAAa,EAAE,IAoB3B,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const listGoalsTool = {
|
|
2
|
+
name: "list_goals",
|
|
3
|
+
description: "List user's goals (Health, Wealth, Relationships)",
|
|
4
|
+
inputSchema: {
|
|
5
|
+
type: "object",
|
|
6
|
+
properties: {},
|
|
7
|
+
},
|
|
8
|
+
modifies: false,
|
|
9
|
+
handler: async (client) => {
|
|
10
|
+
const goals = await client.listGoals();
|
|
11
|
+
return {
|
|
12
|
+
content: [
|
|
13
|
+
{
|
|
14
|
+
type: "text",
|
|
15
|
+
text: `Found ${goals.length} goals`,
|
|
16
|
+
},
|
|
17
|
+
],
|
|
18
|
+
data: goals,
|
|
19
|
+
};
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=goals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goals.js","sourceRoot":"","sources":["../../../src/tools/implementations/goals.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAS;IACjC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,mDAAmD;IAChE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;KACf;IACD,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACxB,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QACvC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,SAAS,KAAK,CAAC,MAAM,QAAQ;iBACpC;aACF;YACD,IAAI,EAAE,KAAK;SACZ,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/instructions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnC,eAAO,MAAM,mBAAmB,EAAE,IA2FjC,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { generateLLMInstructions } from "../../llm-instructions.js";
|
|
3
|
+
export const getInstructionsTool = {
|
|
4
|
+
name: "get_instructions",
|
|
5
|
+
description: "Get instructions for optimal MCP usage, including capabilities, best practices, and example workflows",
|
|
6
|
+
inputSchema: {
|
|
7
|
+
type: "object",
|
|
8
|
+
properties: {
|
|
9
|
+
topic: {
|
|
10
|
+
type: "string",
|
|
11
|
+
description: "Specific topic for instructions (optional)",
|
|
12
|
+
enum: ["search", "synthesis", "retrieval", "general"],
|
|
13
|
+
},
|
|
14
|
+
includeExamples: {
|
|
15
|
+
type: "boolean",
|
|
16
|
+
description: "Include workflow examples",
|
|
17
|
+
default: true,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
modifies: false,
|
|
22
|
+
handler: async (client, args) => {
|
|
23
|
+
const schema = z.object({
|
|
24
|
+
topic: z.enum(["search", "synthesis", "retrieval", "general"]).optional(),
|
|
25
|
+
includeExamples: z.boolean().optional().default(true),
|
|
26
|
+
});
|
|
27
|
+
const params = schema.parse(args);
|
|
28
|
+
const instructions = generateLLMInstructions();
|
|
29
|
+
let responseText = `# Noverload MCP Usage Instructions\n\n`;
|
|
30
|
+
responseText += `## Version: ${instructions.version}\n\n`;
|
|
31
|
+
if (!params.topic || params.topic === "general") {
|
|
32
|
+
// Show all capabilities
|
|
33
|
+
responseText += `## Capabilities Overview\n\n`;
|
|
34
|
+
for (const [key, capability] of Object.entries(instructions.capabilities)) {
|
|
35
|
+
responseText += `### ${key.charAt(0).toUpperCase() + key.slice(1)}\n`;
|
|
36
|
+
responseText += `${capability.description}\n\n`;
|
|
37
|
+
responseText += `**Strengths:**\n`;
|
|
38
|
+
capability.strengths.forEach((s) => responseText += `- ${s}\n`);
|
|
39
|
+
responseText += `\n**When to use:**\n`;
|
|
40
|
+
capability.whenToUse.forEach((w) => responseText += `- ${w}\n`);
|
|
41
|
+
responseText += `\n`;
|
|
42
|
+
}
|
|
43
|
+
responseText += `## Best Practices\n\n`;
|
|
44
|
+
for (const [scenario, practice] of Object.entries(instructions.bestPractices)) {
|
|
45
|
+
responseText += `**${scenario.replace(/([A-Z])/g, ' $1').toLowerCase()}:** ${practice}\n`;
|
|
46
|
+
}
|
|
47
|
+
responseText += `\n`;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Show specific capability
|
|
51
|
+
const capability = instructions.capabilities[params.topic];
|
|
52
|
+
if (capability) {
|
|
53
|
+
responseText += `## ${params.topic.charAt(0).toUpperCase() + params.topic.slice(1)} Capability\n\n`;
|
|
54
|
+
responseText += `${capability.description}\n\n`;
|
|
55
|
+
responseText += `### Strengths\n`;
|
|
56
|
+
capability.strengths.forEach(s => responseText += `- ${s}\n`);
|
|
57
|
+
responseText += `\n### Limitations\n`;
|
|
58
|
+
capability.limitations.forEach(l => responseText += `- ${l}\n`);
|
|
59
|
+
responseText += `\n### When to Use\n`;
|
|
60
|
+
capability.whenToUse.forEach(w => responseText += `- ${w}\n`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (params.includeExamples && instructions.exampleWorkflows.length > 0) {
|
|
64
|
+
responseText += `\n## Example Workflows\n\n`;
|
|
65
|
+
instructions.exampleWorkflows.forEach((example, idx) => {
|
|
66
|
+
responseText += `### ${idx + 1}. ${example.scenario}\n`;
|
|
67
|
+
responseText += `**Steps:**\n`;
|
|
68
|
+
example.steps.forEach((step, i) => responseText += `${i + 1}. ${step}\n`);
|
|
69
|
+
responseText += `**Expected Outcome:** ${example.expectedOutcome}\n\n`;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
responseText += `## Token Management\n\n`;
|
|
73
|
+
responseText += `- Search results limit: ${instructions.tokenManagement.searchResultsLimit}\n`;
|
|
74
|
+
responseText += `- Use chunking: ${instructions.tokenManagement.useChunking ? 'Yes' : 'No'}\n`;
|
|
75
|
+
responseText += `- Get summaries first: ${instructions.tokenManagement.summaryFirst ? 'Yes' : 'No'}\n`;
|
|
76
|
+
responseText += `- Max content per query: ${instructions.tokenManagement.maxContentPerQuery.toLocaleString()} tokens\n`;
|
|
77
|
+
return {
|
|
78
|
+
content: [
|
|
79
|
+
{
|
|
80
|
+
type: "text",
|
|
81
|
+
text: responseText,
|
|
82
|
+
},
|
|
83
|
+
],
|
|
84
|
+
data: instructions,
|
|
85
|
+
};
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../src/tools/implementations/instructions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-graph.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/knowledge-graph.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,eAAO,MAAM,uBAAuB,EAAE,IAyTrC,CAAC"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const buildKnowledgeGraphTool = {
|
|
3
|
+
name: "build_knowledge_graph",
|
|
4
|
+
description: "Create a knowledge graph showing relationships between concepts, topics, and content in your saved knowledge base",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
type: "object",
|
|
7
|
+
properties: {
|
|
8
|
+
topic: {
|
|
9
|
+
type: "string",
|
|
10
|
+
description: "Central topic for the knowledge graph",
|
|
11
|
+
},
|
|
12
|
+
maxNodes: {
|
|
13
|
+
type: "number",
|
|
14
|
+
description: "Maximum number of nodes in the graph",
|
|
15
|
+
default: 20,
|
|
16
|
+
},
|
|
17
|
+
depth: {
|
|
18
|
+
type: "number",
|
|
19
|
+
description: "How many levels of connections to explore (1-3)",
|
|
20
|
+
default: 2,
|
|
21
|
+
},
|
|
22
|
+
includeStats: {
|
|
23
|
+
type: "boolean",
|
|
24
|
+
description: "Include statistics about connections",
|
|
25
|
+
default: true,
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
required: ["topic"],
|
|
29
|
+
},
|
|
30
|
+
modifies: false,
|
|
31
|
+
handler: async (client, args) => {
|
|
32
|
+
const schema = z.object({
|
|
33
|
+
topic: z.string(),
|
|
34
|
+
maxNodes: z.number().optional().default(20),
|
|
35
|
+
depth: z.number().min(1).max(3).optional().default(2),
|
|
36
|
+
includeStats: z.boolean().optional().default(true),
|
|
37
|
+
});
|
|
38
|
+
const params = schema.parse(args);
|
|
39
|
+
// Search for content related to the topic
|
|
40
|
+
const searchResults = await client.searchContent(params.topic, {
|
|
41
|
+
limit: params.maxNodes * 2, // Get extra for better graph
|
|
42
|
+
enableConceptExpansion: true,
|
|
43
|
+
});
|
|
44
|
+
if (!searchResults || searchResults.length === 0) {
|
|
45
|
+
return {
|
|
46
|
+
content: [
|
|
47
|
+
{
|
|
48
|
+
type: "text",
|
|
49
|
+
text: `No content found for topic: "${params.topic}". Cannot build knowledge graph without saved content.`,
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
data: null,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// Build the graph structure
|
|
56
|
+
const nodes = new Map();
|
|
57
|
+
const edges = new Map();
|
|
58
|
+
// Add central topic node
|
|
59
|
+
nodes.set(params.topic.toLowerCase(), {
|
|
60
|
+
id: params.topic.toLowerCase(),
|
|
61
|
+
label: params.topic,
|
|
62
|
+
type: "central",
|
|
63
|
+
weight: searchResults.length,
|
|
64
|
+
});
|
|
65
|
+
// Process search results to extract concepts and relationships
|
|
66
|
+
searchResults.forEach((item) => {
|
|
67
|
+
// Add content as a node
|
|
68
|
+
const contentId = `content_${item.id}`;
|
|
69
|
+
nodes.set(contentId, {
|
|
70
|
+
id: contentId,
|
|
71
|
+
label: item.title || "Untitled",
|
|
72
|
+
type: "content",
|
|
73
|
+
contentType: item.contentType,
|
|
74
|
+
url: item.url,
|
|
75
|
+
weight: 1,
|
|
76
|
+
});
|
|
77
|
+
// Connect content to central topic
|
|
78
|
+
if (!edges.has(params.topic.toLowerCase())) {
|
|
79
|
+
edges.set(params.topic.toLowerCase(), new Set());
|
|
80
|
+
}
|
|
81
|
+
edges.get(params.topic.toLowerCase()).add(contentId);
|
|
82
|
+
// Extract and add concept nodes from tags and summary
|
|
83
|
+
if (item.tags && Array.isArray(item.tags)) {
|
|
84
|
+
item.tags.forEach((tag) => {
|
|
85
|
+
const tagId = `tag_${tag.toLowerCase()}`;
|
|
86
|
+
if (!nodes.has(tagId)) {
|
|
87
|
+
nodes.set(tagId, {
|
|
88
|
+
id: tagId,
|
|
89
|
+
label: tag,
|
|
90
|
+
type: "concept",
|
|
91
|
+
weight: 0,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
// Increase weight for repeated concepts
|
|
95
|
+
nodes.get(tagId).weight++;
|
|
96
|
+
// Connect tag to content
|
|
97
|
+
if (!edges.has(contentId)) {
|
|
98
|
+
edges.set(contentId, new Set());
|
|
99
|
+
}
|
|
100
|
+
edges.get(contentId).add(tagId);
|
|
101
|
+
// Connect tag to central topic
|
|
102
|
+
edges.get(params.topic.toLowerCase()).add(tagId);
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
// Extract key concepts from summary if available
|
|
106
|
+
if (item.summary) {
|
|
107
|
+
const summary = typeof item.summary === 'string'
|
|
108
|
+
? item.summary
|
|
109
|
+
: item.summary.one_sentence || item.summary.text || "";
|
|
110
|
+
// Simple concept extraction (words that appear to be important)
|
|
111
|
+
const words = summary.toLowerCase().split(/\s+/);
|
|
112
|
+
const importantWords = words
|
|
113
|
+
.filter((w) => w.length > 6 && !['through', 'between', 'because', 'without'].includes(w))
|
|
114
|
+
.slice(0, 3);
|
|
115
|
+
importantWords.forEach((word) => {
|
|
116
|
+
const conceptId = `concept_${word}`;
|
|
117
|
+
if (!nodes.has(conceptId) && nodes.size < params.maxNodes) {
|
|
118
|
+
nodes.set(conceptId, {
|
|
119
|
+
id: conceptId,
|
|
120
|
+
label: word,
|
|
121
|
+
type: "derived",
|
|
122
|
+
weight: 1,
|
|
123
|
+
});
|
|
124
|
+
// Connect to content
|
|
125
|
+
if (!edges.has(contentId)) {
|
|
126
|
+
edges.set(contentId, new Set());
|
|
127
|
+
}
|
|
128
|
+
edges.get(contentId).add(conceptId);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
// For depth > 1, find second-level connections
|
|
134
|
+
if (params.depth > 1) {
|
|
135
|
+
const firstLevelNodes = Array.from(edges.get(params.topic.toLowerCase()) || []);
|
|
136
|
+
for (const nodeId of firstLevelNodes.slice(0, 10)) { // Limit for performance
|
|
137
|
+
if (nodeId.startsWith('tag_') || nodeId.startsWith('concept_')) {
|
|
138
|
+
// Find content that shares this concept
|
|
139
|
+
const concept = nodes.get(nodeId)?.label;
|
|
140
|
+
if (concept) {
|
|
141
|
+
const relatedResults = await client.searchContent(concept, {
|
|
142
|
+
limit: 5,
|
|
143
|
+
enableConceptExpansion: false,
|
|
144
|
+
});
|
|
145
|
+
relatedResults?.forEach((item) => {
|
|
146
|
+
const relatedId = `related_${item.id}`;
|
|
147
|
+
if (!nodes.has(relatedId) && nodes.size < params.maxNodes) {
|
|
148
|
+
nodes.set(relatedId, {
|
|
149
|
+
id: relatedId,
|
|
150
|
+
label: item.title || "Related Content",
|
|
151
|
+
type: "related",
|
|
152
|
+
contentType: item.contentType,
|
|
153
|
+
url: item.url,
|
|
154
|
+
weight: 1,
|
|
155
|
+
});
|
|
156
|
+
// Connect to the concept
|
|
157
|
+
if (!edges.has(nodeId)) {
|
|
158
|
+
edges.set(nodeId, new Set());
|
|
159
|
+
}
|
|
160
|
+
edges.get(nodeId).add(relatedId);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
// Format response
|
|
168
|
+
let responseText = `# 🕸️ Knowledge Graph: "${params.topic}"\n`;
|
|
169
|
+
responseText += `**Nodes:** ${nodes.size} | **Depth:** ${params.depth}\n\n`;
|
|
170
|
+
// Node breakdown
|
|
171
|
+
const nodeTypes = new Map();
|
|
172
|
+
nodes.forEach(node => {
|
|
173
|
+
nodeTypes.set(node.type, (nodeTypes.get(node.type) || 0) + 1);
|
|
174
|
+
});
|
|
175
|
+
responseText += `## 📊 Graph Structure\n`;
|
|
176
|
+
responseText += `- **Central Topic:** ${params.topic}\n`;
|
|
177
|
+
nodeTypes.forEach((count, type) => {
|
|
178
|
+
const typeEmoji = {
|
|
179
|
+
content: "📄",
|
|
180
|
+
concept: "💡",
|
|
181
|
+
derived: "🔍",
|
|
182
|
+
related: "🔗",
|
|
183
|
+
central: "🎯",
|
|
184
|
+
};
|
|
185
|
+
responseText += `- **${typeEmoji[type] || "•"} ${type}:** ${count} nodes\n`;
|
|
186
|
+
});
|
|
187
|
+
responseText += `\n`;
|
|
188
|
+
// Key concepts (highest weight nodes)
|
|
189
|
+
const conceptNodes = Array.from(nodes.values())
|
|
190
|
+
.filter(n => n.type === 'concept' || n.type === 'derived')
|
|
191
|
+
.sort((a, b) => b.weight - a.weight)
|
|
192
|
+
.slice(0, 10);
|
|
193
|
+
if (conceptNodes.length > 0) {
|
|
194
|
+
responseText += `## 💡 Key Concepts\n`;
|
|
195
|
+
conceptNodes.forEach((node, idx) => {
|
|
196
|
+
responseText += `${idx + 1}. **${node.label}** (strength: ${node.weight})\n`;
|
|
197
|
+
});
|
|
198
|
+
responseText += `\n`;
|
|
199
|
+
}
|
|
200
|
+
// Content clusters
|
|
201
|
+
const contentNodes = Array.from(nodes.values())
|
|
202
|
+
.filter(n => n.type === 'content')
|
|
203
|
+
.slice(0, 10);
|
|
204
|
+
if (contentNodes.length > 0) {
|
|
205
|
+
responseText += `## 📚 Core Content\n`;
|
|
206
|
+
contentNodes.forEach((node, idx) => {
|
|
207
|
+
const typeIcons = {
|
|
208
|
+
youtube: "📺",
|
|
209
|
+
x_twitter: "𝕏",
|
|
210
|
+
reddit: "🔗",
|
|
211
|
+
article: "📄",
|
|
212
|
+
pdf: "📑"
|
|
213
|
+
};
|
|
214
|
+
const icon = typeIcons[node.contentType] || "📄";
|
|
215
|
+
responseText += `${idx + 1}. ${icon} [${node.label}](${node.url})\n`;
|
|
216
|
+
});
|
|
217
|
+
responseText += `\n`;
|
|
218
|
+
}
|
|
219
|
+
// Connection statistics
|
|
220
|
+
if (params.includeStats) {
|
|
221
|
+
responseText += `## 🔗 Connection Statistics\n`;
|
|
222
|
+
// Find most connected nodes
|
|
223
|
+
const connectionCounts = new Map();
|
|
224
|
+
edges.forEach((connections, nodeId) => {
|
|
225
|
+
connectionCounts.set(nodeId, connections.size);
|
|
226
|
+
});
|
|
227
|
+
const mostConnected = Array.from(connectionCounts.entries())
|
|
228
|
+
.sort((a, b) => b[1] - a[1])
|
|
229
|
+
.slice(0, 5);
|
|
230
|
+
responseText += `**Most Connected Nodes:**\n`;
|
|
231
|
+
mostConnected.forEach(([nodeId, count]) => {
|
|
232
|
+
const node = nodes.get(nodeId);
|
|
233
|
+
if (node) {
|
|
234
|
+
responseText += `- ${node.label}: ${count} connections\n`;
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
responseText += `\n`;
|
|
238
|
+
// Graph density
|
|
239
|
+
const possibleEdges = nodes.size * (nodes.size - 1) / 2;
|
|
240
|
+
const actualEdges = Array.from(edges.values()).reduce((sum, set) => sum + set.size, 0);
|
|
241
|
+
const density = ((actualEdges / possibleEdges) * 100).toFixed(1);
|
|
242
|
+
responseText += `**Graph Metrics:**\n`;
|
|
243
|
+
responseText += `- Density: ${density}%\n`;
|
|
244
|
+
responseText += `- Average connections: ${(actualEdges / nodes.size).toFixed(1)}\n`;
|
|
245
|
+
responseText += `- Total edges: ${actualEdges}\n`;
|
|
246
|
+
}
|
|
247
|
+
// Visualization suggestion
|
|
248
|
+
responseText += `\n## 🎨 Visualization\n`;
|
|
249
|
+
responseText += `The knowledge graph contains:\n`;
|
|
250
|
+
responseText += `- ${nodes.size} nodes representing concepts and content\n`;
|
|
251
|
+
responseText += `- ${Array.from(edges.values()).reduce((sum, set) => sum + set.size, 0)} edges showing relationships\n\n`;
|
|
252
|
+
responseText += `💡 **Tip:** Use the graph data in the response to create visual representations with tools like D3.js or Graphviz.\n`;
|
|
253
|
+
// Convert to serializable format
|
|
254
|
+
const graphData = {
|
|
255
|
+
nodes: Array.from(nodes.values()),
|
|
256
|
+
edges: Array.from(edges.entries()).flatMap(([source, targets]) => Array.from(targets).map(target => ({ source, target }))),
|
|
257
|
+
};
|
|
258
|
+
return {
|
|
259
|
+
content: [
|
|
260
|
+
{
|
|
261
|
+
type: "text",
|
|
262
|
+
text: responseText,
|
|
263
|
+
},
|
|
264
|
+
],
|
|
265
|
+
data: {
|
|
266
|
+
topic: params.topic,
|
|
267
|
+
graph: graphData,
|
|
268
|
+
statistics: {
|
|
269
|
+
nodeCount: nodes.size,
|
|
270
|
+
edgeCount: graphData.edges.length,
|
|
271
|
+
nodeTypes: Object.fromEntries(nodeTypes),
|
|
272
|
+
depth: params.depth,
|
|
273
|
+
},
|
|
274
|
+
},
|
|
275
|
+
};
|
|
276
|
+
},
|
|
277
|
+
};
|
|
278
|
+
//# sourceMappingURL=knowledge-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"knowledge-graph.js","sourceRoot":"","sources":["../../../src/tools/implementations/knowledge-graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-content.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/list-content.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnC,eAAO,MAAM,oBAAoB,EAAE,IAuFlC,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const listSavedContentTool = {
|
|
3
|
+
name: "list_saved_content",
|
|
4
|
+
description: "List saved content from Noverload with full details including titles, summaries, and insights. Optionally filter by status or content type.",
|
|
5
|
+
inputSchema: {
|
|
6
|
+
type: "object",
|
|
7
|
+
properties: {
|
|
8
|
+
status: {
|
|
9
|
+
type: "string",
|
|
10
|
+
enum: ["pending", "processing", "completed", "failed"],
|
|
11
|
+
description: "Filter by processing status",
|
|
12
|
+
},
|
|
13
|
+
contentType: {
|
|
14
|
+
type: "string",
|
|
15
|
+
enum: ["youtube", "x_twitter", "reddit", "article", "pdf"],
|
|
16
|
+
description: "Filter by content type",
|
|
17
|
+
},
|
|
18
|
+
limit: {
|
|
19
|
+
type: "number",
|
|
20
|
+
description: "Maximum number of items to return",
|
|
21
|
+
default: 20,
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
modifies: false,
|
|
26
|
+
handler: async (client, args) => {
|
|
27
|
+
const schema = z.object({
|
|
28
|
+
status: z.enum(["pending", "processing", "completed", "failed"]).optional(),
|
|
29
|
+
contentType: z.enum(["youtube", "x_twitter", "reddit", "article", "pdf"]).optional(),
|
|
30
|
+
limit: z.number().optional().default(20),
|
|
31
|
+
});
|
|
32
|
+
const params = schema.parse(args);
|
|
33
|
+
const content = await client.listContent(params);
|
|
34
|
+
// Build detailed response
|
|
35
|
+
let responseText = `# Saved Content Library\n`;
|
|
36
|
+
responseText += `Found ${content.length} items`;
|
|
37
|
+
const filters = [];
|
|
38
|
+
if (params.status)
|
|
39
|
+
filters.push(`status: ${params.status}`);
|
|
40
|
+
if (params.contentType)
|
|
41
|
+
filters.push(`type: ${params.contentType}`);
|
|
42
|
+
if (filters.length > 0) {
|
|
43
|
+
responseText += ` (filtered by ${filters.join(', ')})`;
|
|
44
|
+
}
|
|
45
|
+
responseText += `\n\n`;
|
|
46
|
+
if (content.length > 0) {
|
|
47
|
+
content.forEach((item, idx) => {
|
|
48
|
+
responseText += `## ${idx + 1}. ${item.title || 'Untitled'}\n`;
|
|
49
|
+
responseText += `**ID:** ${item.id}\n`;
|
|
50
|
+
responseText += `**Type:** ${item.contentType} | **Status:** ${item.status}`;
|
|
51
|
+
if (item.tokenCount) {
|
|
52
|
+
responseText += ` | **Size:** ${item.tokenCount.toLocaleString()} tokens`;
|
|
53
|
+
if (item.tokenCount > 50000) {
|
|
54
|
+
responseText += ` 🚨`;
|
|
55
|
+
}
|
|
56
|
+
else if (item.tokenCount > 10000) {
|
|
57
|
+
responseText += ` ⚠️`;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
responseText += `\n**URL:** ${item.url}\n`;
|
|
61
|
+
if (item.summary) {
|
|
62
|
+
const summaryObj = typeof item.summary === 'string'
|
|
63
|
+
? { text: item.summary }
|
|
64
|
+
: item.summary;
|
|
65
|
+
if (summaryObj.one_sentence) {
|
|
66
|
+
responseText += `**Summary:** ${summaryObj.one_sentence}\n`;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
responseText += `**Saved:** ${new Date(item.createdAt).toLocaleDateString()}\n`;
|
|
70
|
+
responseText += '\n---\n\n';
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
responseText += "No content found matching the specified filters.";
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
content: [
|
|
78
|
+
{
|
|
79
|
+
type: "text",
|
|
80
|
+
text: responseText,
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
data: content,
|
|
84
|
+
};
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=list-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-content.js","sourceRoot":"","sources":["../../../src/tools/implementations/list-content.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-query.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/plan-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnC,eAAO,MAAM,aAAa,EAAE,IAiE3B,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { planQueryStrategy, estimateTokenUsage } from "../../llm-instructions.js";
|
|
3
|
+
export const planQueryTool = {
|
|
4
|
+
name: "plan_query",
|
|
5
|
+
description: "Plan an optimal query strategy for complex requests, with token estimates",
|
|
6
|
+
inputSchema: {
|
|
7
|
+
type: "object",
|
|
8
|
+
properties: {
|
|
9
|
+
request: {
|
|
10
|
+
type: "string",
|
|
11
|
+
description: "The user's request to plan for",
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
required: ["request"],
|
|
15
|
+
},
|
|
16
|
+
modifies: false,
|
|
17
|
+
handler: async (client, args) => {
|
|
18
|
+
const schema = z.object({
|
|
19
|
+
request: z.string(),
|
|
20
|
+
});
|
|
21
|
+
const { request } = schema.parse(args);
|
|
22
|
+
const availableTools = [
|
|
23
|
+
"search_content",
|
|
24
|
+
"get_content_details",
|
|
25
|
+
"synthesize_content",
|
|
26
|
+
"find_similar_content",
|
|
27
|
+
"list_saved_content"
|
|
28
|
+
];
|
|
29
|
+
const plan = planQueryStrategy(request, availableTools);
|
|
30
|
+
let responseText = `# Query Plan for: "${request}"\n\n`;
|
|
31
|
+
responseText += `## Strategy: ${plan.strategy}\n`;
|
|
32
|
+
responseText += `## Estimated Tokens: ~${plan.estimatedTokens.toLocaleString()}\n\n`;
|
|
33
|
+
responseText += `## Execution Steps:\n\n`;
|
|
34
|
+
plan.steps.forEach((step, idx) => {
|
|
35
|
+
responseText += `### Step ${idx + 1}: ${step.tool}\n`;
|
|
36
|
+
responseText += `**Purpose:** ${step.purpose}\n`;
|
|
37
|
+
responseText += `**Parameters:**\n`;
|
|
38
|
+
for (const [key, value] of Object.entries(step.params)) {
|
|
39
|
+
responseText += `- ${key}: ${JSON.stringify(value)}\n`;
|
|
40
|
+
}
|
|
41
|
+
const tokenEstimate = estimateTokenUsage({ tool: step.tool, params: step.params });
|
|
42
|
+
responseText += `**Estimated Tokens:** ~${tokenEstimate.estimated.toLocaleString()}`;
|
|
43
|
+
if (tokenEstimate.warning) {
|
|
44
|
+
responseText += ` ⚠️ ${tokenEstimate.warning}`;
|
|
45
|
+
}
|
|
46
|
+
responseText += `\n`;
|
|
47
|
+
if (tokenEstimate.suggestion) {
|
|
48
|
+
responseText += `**Suggestion:** ${tokenEstimate.suggestion}\n`;
|
|
49
|
+
}
|
|
50
|
+
responseText += `\n`;
|
|
51
|
+
});
|
|
52
|
+
return {
|
|
53
|
+
content: [
|
|
54
|
+
{
|
|
55
|
+
type: "text",
|
|
56
|
+
text: responseText,
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
data: plan,
|
|
60
|
+
};
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=plan-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plan-query.js","sourceRoot":"","sources":["../../../src/tools/implementations/plan-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAElF,MAAM,CAAC,MAAM,aAAa,GAAS;IACjC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,2EAA2E;IACxF,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gCAAgC;aAC9C;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;SACpB,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,cAAc,GAAG;YACrB,gBAAgB;YAChB,qBAAqB;YACrB,oBAAoB;YACpB,sBAAsB;YACtB,oBAAoB;SACrB,CAAC;QAEF,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAExD,IAAI,YAAY,GAAG,sBAAsB,OAAO,OAAO,CAAC;QACxD,YAAY,IAAI,gBAAgB,IAAI,CAAC,QAAQ,IAAI,CAAC;QAClD,YAAY,IAAI,yBAAyB,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC;QACrF,YAAY,IAAI,yBAAyB,CAAC;QAE1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC/B,YAAY,IAAI,YAAY,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;YACtD,YAAY,IAAI,gBAAgB,IAAI,CAAC,OAAO,IAAI,CAAC;YACjD,YAAY,IAAI,mBAAmB,CAAC;YACpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,YAAY,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;YACzD,CAAC;YAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACnF,YAAY,IAAI,0BAA0B,aAAa,CAAC,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC;YACrF,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1B,YAAY,IAAI,OAAO,aAAa,CAAC,OAAO,EAAE,CAAC;YACjD,CAAC;YACD,YAAY,IAAI,IAAI,CAAC;YACrB,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;gBAC7B,YAAY,IAAI,mBAAmB,aAAa,CAAC,UAAU,IAAI,CAAC;YAClE,CAAC;YACD,YAAY,IAAI,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY;iBACnB;aACF;YACD,IAAI,EAAE,IAAI;SACX,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-content.d.ts","sourceRoot":"","sources":["../../../src/tools/implementations/raw-content.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnC,eAAO,MAAM,iBAAiB,EAAE,IAqO/B,CAAC"}
|