crawlforge-mcp-server 3.0.13 → 3.0.15
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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "crawlforge-mcp-server",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.15",
|
|
4
4
|
"description": "CrawlForge MCP Server - Professional Model Context Protocol server with 19 comprehensive web scraping, crawling, and content processing tools.",
|
|
5
5
|
"main": "server.js",
|
|
6
6
|
"bin": {
|
|
@@ -738,14 +738,16 @@ export class ResearchOrchestrator extends EventEmitter {
|
|
|
738
738
|
}
|
|
739
739
|
});
|
|
740
740
|
|
|
741
|
-
|
|
742
|
-
|
|
741
|
+
// Handle both keypoints (tool output) and keyPoints (legacy) property names
|
|
742
|
+
const keyPoints = summary.keypoints || summary.keyPoints || [];
|
|
743
|
+
if (keyPoints.length > 0) {
|
|
744
|
+
keyPoints.forEach((point, index) => {
|
|
743
745
|
claims.push({
|
|
744
746
|
id: `${source.link}_claim_${index}`,
|
|
745
747
|
claim: point,
|
|
746
748
|
source: source.link,
|
|
747
749
|
sourceTitle: source.title,
|
|
748
|
-
credibility: source.overallCredibility || 0.
|
|
750
|
+
credibility: source.overallCredibility || 0.65,
|
|
749
751
|
context: summary.supporting?.[index] || '',
|
|
750
752
|
extractedAt: new Date().toISOString()
|
|
751
753
|
});
|
|
@@ -1080,7 +1082,7 @@ export class ResearchOrchestrator extends EventEmitter {
|
|
|
1080
1082
|
|
|
1081
1083
|
generateKeyFindings(claimGroups, sources) {
|
|
1082
1084
|
return claimGroups
|
|
1083
|
-
.filter(group => group.avgCredibility >= 0.
|
|
1085
|
+
.filter(group => group.avgCredibility >= 0.3)
|
|
1084
1086
|
.sort((a, b) => b.consensusStrength - a.consensusStrength)
|
|
1085
1087
|
.slice(0, 10)
|
|
1086
1088
|
.map(group => ({
|
|
@@ -1093,7 +1095,7 @@ export class ResearchOrchestrator extends EventEmitter {
|
|
|
1093
1095
|
|
|
1094
1096
|
compileSupportingEvidence(sources) {
|
|
1095
1097
|
return sources
|
|
1096
|
-
.filter(source => source.overallCredibility >= 0.
|
|
1098
|
+
.filter(source => source.overallCredibility >= 0.3)
|
|
1097
1099
|
.map(source => ({
|
|
1098
1100
|
title: source.title,
|
|
1099
1101
|
url: source.link,
|
|
@@ -219,8 +219,8 @@ export class SnapshotManager extends EventEmitter {
|
|
|
219
219
|
let isCompressed = false;
|
|
220
220
|
let isDelta = false;
|
|
221
221
|
|
|
222
|
-
// Apply delta storage if similar snapshot found
|
|
223
|
-
if (deltaInfo && deltaInfo.similarity > this.retentionPolicy.deltaThreshold) {
|
|
222
|
+
// Apply delta storage if similar snapshot found (skip if base content is null, e.g. exact hash match)
|
|
223
|
+
if (deltaInfo && deltaInfo.content && deltaInfo.similarity > this.retentionPolicy.deltaThreshold) {
|
|
224
224
|
const deltaData = this.createDelta(deltaInfo.content, content);
|
|
225
225
|
if (deltaData.length < content.length * 0.7) { // Only use delta if it's significantly smaller
|
|
226
226
|
finalContent = deltaData;
|
|
@@ -389,7 +389,7 @@ export class ContentAnalyzer {
|
|
|
389
389
|
summarySentences = await this.createAbstractiveSummary(text, targetSentences);
|
|
390
390
|
}
|
|
391
391
|
|
|
392
|
-
const summaryText = summarySentences.join('. ').trim() + '.';
|
|
392
|
+
const summaryText = summarySentences.map(s => s.replace(/[.!?]+$/, '').trim()).join('. ').trim() + '.';
|
|
393
393
|
const compressionRatio = summaryText.length / text.length;
|
|
394
394
|
|
|
395
395
|
return {
|
|
@@ -411,8 +411,8 @@ export class ContentAnalyzer {
|
|
|
411
411
|
type: 'fallback',
|
|
412
412
|
length: 'short',
|
|
413
413
|
sentences: fallbackSentences,
|
|
414
|
-
text: fallbackSentences.join('. ').trim() + '.',
|
|
415
|
-
compressionRatio: fallbackSentences.join('. ').length / text.length
|
|
414
|
+
text: fallbackSentences.map(s => s.replace(/[.!?]+$/, '').trim()).join('. ').trim() + '.',
|
|
415
|
+
compressionRatio: fallbackSentences.map(s => s.replace(/[.!?]+$/, '').trim()).join('. ').length / text.length
|
|
416
416
|
};
|
|
417
417
|
}
|
|
418
418
|
}
|